| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- //
- // iterator.t.h
- // iterator
- //
- // Created by Sam Jaffe on 2/7/17.
- //
- #pragma once
- #include <cxxtest/TestSuite.h>
- #include "join_iterator.hpp"
- class join_iterator_TestSuite : public CxxTest::TestSuite {
- public:
- using vec_t = std::vector<int>;
- using meta_vec_t = std::vector<vec_t>;
- using jn_iter = iterator::joining_iterator<meta_vec_t::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(make_end_aware_iterator(mv)), mv[0][0]);
- }
-
- void test_empty_constructor_is_end() {
- meta_vec_t mv{{1,2,3},{4,5,6}};
- jn_iter it( { mv.end(), mv.end() }, { mv.back().end(), mv.back().end() } );
- TS_ASSERT_EQUALS(it, jn_iter());
- }
-
- void test_steps_to_next_list() {
- meta_vec_t mv{{1,2,3},{4,5,6}};
- jn_iter it(make_end_aware_iterator(mv), { mv[0].end(), mv[0].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);
- }
- };
|