// // iterator.t.h // iterator // // Created by Sam Jaffe on 2/7/17. // #pragma once #include #include "join_iterator.hpp" class join_iterator_TestSuite : public CxxTest::TestSuite { public: using vec_t = std::vector; using meta_vec_t = std::vector; using jn_iter = iterator::joining_iterator; // vec_t v{1,2,3,4,5,6}; // meta_vec_t mv{{1,2,3},{4,5,6}}; public: void test_points_to_beginning() { meta_vec_t mv{{1,2,3},{4,5,6}}; TS_ASSERT_EQUALS(*jn_iter(mv.begin(), mv.end()), mv[0][0]); } void test_steps_to_next_list() { meta_vec_t mv{{1,2,3},{4,5,6}}; jn_iter it(mv.begin(), mv.end(), mv.front().end(), mv.front().end()); TS_ASSERT_EQUALS(*++it, mv[1][0]); } void test_cannot_go_past_end() { meta_vec_t mv{{1,2,3},{4,5,6}}; jn_iter it(mv.end(), mv.end(), mv.back().end(), mv.back().end()); jn_iter const cp = it; ++it; TS_ASSERT_EQUALS(it, cp); } };