join_iterator.t.h 974 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //
  2. // iterator.t.h
  3. // iterator
  4. //
  5. // Created by Sam Jaffe on 2/7/17.
  6. //
  7. #pragma once
  8. #include <cxxtest/TestSuite.h>
  9. #include "join_iterator.hpp"
  10. class join_iterator_TestSuite : public CxxTest::TestSuite {
  11. public:
  12. using vec_t = std::vector<int>;
  13. using meta_vec_t = std::vector<vec_t>;
  14. using jn_iter = joining_iterator<meta_vec_t::iterator>;
  15. // vec_t v{1,2,3,4,5,6};
  16. // meta_vec_t mv{{1,2,3},{4,5,6}};
  17. public:
  18. void test_points_to_beginning() {
  19. meta_vec_t mv{{1,2,3},{4,5,6}};
  20. TS_ASSERT_EQUALS(*jn_iter(mv.begin(), mv.end()), mv[0][0]);
  21. }
  22. void test_steps_to_next_list() {
  23. meta_vec_t mv{{1,2,3},{4,5,6}};
  24. jn_iter it(mv.begin(), mv.end(), mv.front().end(), mv.front().end());
  25. TS_ASSERT_EQUALS(*++it, mv[1][0]);
  26. }
  27. void test_cannot_go_past_end() {
  28. meta_vec_t mv{{1,2,3},{4,5,6}};
  29. jn_iter it(mv.end(), mv.end(), mv.back().end(), mv.back().end());
  30. jn_iter const cp = it;
  31. ++it;
  32. TS_ASSERT_EQUALS(it, cp);
  33. }
  34. };