| 1234567891011121314151617181920212223242526272829303132 |
- #include "iterator/join_iterator.hpp"
- #include <vector>
- #include <gmock/gmock.h>
- using join_iterator = iterator::joining_iterator<std::vector<std::vector<int>>::iterator>;
- TEST(JoinIteratorTest, FirstDereferencedElemIsTheFirstInTheChain) {
- std::vector<std::vector<int>> mv{{1,2,3},{4,5,6}};
- EXPECT_THAT(*join_iterator(make_end_aware_iterator(mv)), mv[0][0]);
- }
- TEST(JoinIteratorTest, EmptyConstructorEqualsEnd) {
- std::vector<std::vector<int>> mv{{1,2,3},{4,5,6}};
- join_iterator it({ mv.end(), mv.end() }, { mv.back().end(), mv.back().end() } );
- EXPECT_THAT(it, join_iterator());
- }
- TEST(JoinIteratorTest, MovesFromListToListWhenReachingEnd) {
- std::vector<std::vector<int>> mv{{1,2,3},{4,5,6}};
- join_iterator it(make_end_aware_iterator(mv), { mv[0].end(), mv[0].end() });
- EXPECT_THAT(*++it, mv[1][0]);
- }
- TEST(JoinIteratorTest, IncrementEndIsNoOp) {
- std::vector<std::vector<int>> mv{{1,2,3},{4,5,6}};
- join_iterator it( { mv.end(), mv.end() }, { mv.back().end(), mv.back().end() });
- join_iterator const cp = it;
- ++it;
- EXPECT_THAT(it, cp);
- }
|