| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- //
- // recursive_iterator_single_level_test.cxx
- // iterator-test
- //
- // Created by Sam Jaffe on 8/11/20.
- // Copyright © 2020 Sam Jaffe. All rights reserved.
- //
- #include "iterator/recursive_iterator.hpp"
- #include <map>
- #include <vector>
- #include "xcode_gtest_helper.h"
- TEST(RecursiveIteratorSingleVectorTest, IterDistanceIsContainerSize) {
- std::vector<int> const vec{1, 2, 3, 4, 5};
- auto rit = make_recursive_iterator(vec);
- decltype(rit) end{};
- EXPECT_THAT(std::distance(rit, end), vec.size());
- }
- TEST(RecursiveIteratorSingleVectorTest, DataMatchesContainerIterator) {
- std::vector<int> const vec{1, 2, 3, 4, 5};
- auto rit = make_recursive_iterator(vec);
- decltype(vec) result(rit, decltype(rit)());
- EXPECT_THAT(result, vec);
- }
- TEST(RecursiveIteratorSingleVectorTest, CanMutatePointedToData) {
- std::vector<int> vec{1, 2, 3, 4, 5};
- auto rit = make_recursive_iterator(vec);
- *rit = 6;
- EXPECT_THAT(vec[0], 6);
- }
- TEST(RecursiveIteratorSingleMapTest, IterDistanceIsContainerSize) {
- std::map<int, int> const map{{1, 1}, {2, 2}, {3, 3}};
- auto rit = make_recursive_iterator(map);
- decltype(rit) end{};
- EXPECT_THAT(std::distance(rit, end), map.size());
- }
- TEST(RecursiveIteratorSingleMapTest, DataMatchesContainerIterator) {
- std::map<int, int> const map{{1, 1}, {2, 2}, {3, 3}};
- auto rit = make_recursive_iterator(map);
- decltype(map) result(rit, decltype(rit)());
- EXPECT_THAT(result, map);
- }
- TEST(RecursiveIteratorSingleMapTest, CanMutatePointedToData) {
- std::map<int, int> map{{1, 1}, {2, 2}, {3, 3}};
- auto rit = make_recursive_iterator(map);
- std::get<1>(*rit) = 4;
- EXPECT_THAT(map[1], 4);
- }
|