|
|
@@ -8,29 +8,29 @@
|
|
|
|
|
|
using iterator::recursive_iterator;
|
|
|
|
|
|
+using testing::ElementsAreArray;
|
|
|
+
|
|
|
TEST(RecursiveIteratorMapVectorTest, IterDistanceIsSumOfInnerContainerSizes) {
|
|
|
std::map<int, std::vector<int>> const obj{{1, {1, 2}}, {2, {3, 4, 5}}};
|
|
|
auto rit = recursive_iterator(obj);
|
|
|
|
|
|
- EXPECT_EQ(ranges::distance(rit, iterator::sentinel), 5);
|
|
|
+ EXPECT_THAT(ranges::distance(rit, iterator::sentinel), 5);
|
|
|
}
|
|
|
|
|
|
TEST(RecursiveIteratorMapVectorTest, ElementsAreUnwrappedAsATuple) {
|
|
|
std::map<int, std::vector<int>> const obj{{1, {1, 2}}, {2, {3, 4, 5}}};
|
|
|
std::vector<std::tuple<int, int>> const expected{
|
|
|
{1, 1}, {1, 2}, {2, 3}, {2, 4}, {2, 5}};
|
|
|
- auto rit = recursive_iterator(obj);
|
|
|
|
|
|
- EXPECT_EQ(
|
|
|
- (ranges::to<std::vector<std::tuple<int, int>>>(rit, iterator::sentinel)),
|
|
|
- expected);
|
|
|
+ EXPECT_THAT(obj | views::recursive | ranges::to<std::vector>(),
|
|
|
+ ElementsAreArray(expected));
|
|
|
}
|
|
|
|
|
|
TEST(RecursiveIteratorMapVectorTest, CanMutatePointedToData) {
|
|
|
std::map<int, std::vector<int>> obj{{1, {1, 2}}, {2, {3, 4, 5}}};
|
|
|
auto rit = recursive_iterator(obj);
|
|
|
std::get<1>(*rit) = 6;
|
|
|
- EXPECT_EQ(obj[1][0], 6);
|
|
|
+ EXPECT_THAT(obj[1][0], 6);
|
|
|
}
|
|
|
|
|
|
TEST(RecursiveIteratorMapMapVectorTest, CanMutatePointedToData) {
|
|
|
@@ -38,7 +38,7 @@ TEST(RecursiveIteratorMapMapVectorTest, CanMutatePointedToData) {
|
|
|
{2, {{1, {3, 4, 5}}}}};
|
|
|
auto rit = recursive_iterator(obj);
|
|
|
std::get<2>(*rit) = 6;
|
|
|
- EXPECT_EQ(obj[1][1][0], 6);
|
|
|
+ EXPECT_THAT(obj[1][1][0], 6);
|
|
|
}
|
|
|
|
|
|
TEST(RecursiveIteratorVectorMapTest, IterDistanceIsSumOfInnerContainerSizes) {
|
|
|
@@ -46,7 +46,7 @@ TEST(RecursiveIteratorVectorMapTest, IterDistanceIsSumOfInnerContainerSizes) {
|
|
|
{{3, 3}, {4, 4}, {5, 5}}};
|
|
|
auto rit = recursive_iterator(obj);
|
|
|
|
|
|
- EXPECT_EQ(ranges::distance(rit, iterator::sentinel), 5);
|
|
|
+ EXPECT_THAT(ranges::distance(rit, iterator::sentinel), 5);
|
|
|
}
|
|
|
|
|
|
TEST(RecursiveIteratorVectorMapTest, ElementsAreUnwrappedAsATuple) {
|
|
|
@@ -54,11 +54,9 @@ TEST(RecursiveIteratorVectorMapTest, ElementsAreUnwrappedAsATuple) {
|
|
|
{{3, 3}, {4, 4}, {5, 5}}};
|
|
|
std::vector<std::pair<int, int>> const expected{
|
|
|
{1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5}};
|
|
|
- auto rit = recursive_iterator(obj);
|
|
|
|
|
|
- EXPECT_EQ(
|
|
|
- (ranges::to<std::vector<std::pair<int, int>>>(rit, iterator::sentinel)),
|
|
|
- expected);
|
|
|
+ EXPECT_THAT(obj | views::recursive | ranges::to<std::vector>(),
|
|
|
+ ElementsAreArray(expected));
|
|
|
}
|
|
|
|
|
|
TEST(RecursiveIteratorVectorMapTest, CanMutatePointedToData) {
|
|
|
@@ -66,7 +64,7 @@ TEST(RecursiveIteratorVectorMapTest, CanMutatePointedToData) {
|
|
|
{{3, 3}, {4, 4}, {5, 5}}};
|
|
|
auto rit = recursive_iterator(obj);
|
|
|
std::get<1>(*rit) = 6;
|
|
|
- EXPECT_EQ(obj[0][1], 6);
|
|
|
+ EXPECT_THAT(obj[0][1], 6);
|
|
|
}
|
|
|
|
|
|
TEST(RecursiveIteratorMapVecMapTest, IterDistanceIsSumOfInnerContainerSizes) {
|
|
|
@@ -75,7 +73,7 @@ TEST(RecursiveIteratorMapVecMapTest, IterDistanceIsSumOfInnerContainerSizes) {
|
|
|
std::vector<std::tuple<int, int, int>> const expected{{1, 1, 1}, {1, 2, 2}};
|
|
|
auto rit = recursive_iterator(obj);
|
|
|
|
|
|
- EXPECT_EQ(ranges::distance(rit, iterator::sentinel), expected.size());
|
|
|
+ EXPECT_THAT(ranges::distance(rit, iterator::sentinel), expected.size());
|
|
|
}
|
|
|
|
|
|
TEST(RecursiveIteratorMapVecMapTest, ElementsAreUnwrappedAsATuple) {
|
|
|
@@ -84,16 +82,15 @@ TEST(RecursiveIteratorMapVecMapTest, ElementsAreUnwrappedAsATuple) {
|
|
|
std::vector<std::tuple<int, int, int>> const expected{{1, 1, 1}, {1, 2, 2}};
|
|
|
auto rit = recursive_iterator(obj);
|
|
|
|
|
|
- EXPECT_EQ((ranges::to<std::vector<std::tuple<int, int, int>>>(
|
|
|
- rit, iterator::sentinel)),
|
|
|
- expected);
|
|
|
+ EXPECT_THAT(obj | views::recursive | ranges::to<std::vector>(),
|
|
|
+ ElementsAreArray(expected));
|
|
|
}
|
|
|
|
|
|
TEST(RecursiveIteratorMapVecMapTest, CanMutatePointedToData) {
|
|
|
std::map<int, std::vector<std::map<int, int>>> obj{{1, {{{1, 1}, {2, 2}}}}};
|
|
|
auto rit = recursive_iterator(obj);
|
|
|
std::get<2>(*rit) = 4;
|
|
|
- EXPECT_EQ(obj[1][0][1], 4);
|
|
|
+ EXPECT_THAT(obj[1][0][1], 4);
|
|
|
}
|
|
|
|
|
|
TEST(RecursiveIteratorVecMapVecTest, IterDistanceIsSumOfInnerContainerSizes) {
|
|
|
@@ -101,7 +98,7 @@ TEST(RecursiveIteratorVecMapVecTest, IterDistanceIsSumOfInnerContainerSizes) {
|
|
|
{{1, {1, 2}}, {2, {3, 4, 5}}}, {{1, {3, 4}}}};
|
|
|
auto rit = recursive_iterator(obj);
|
|
|
|
|
|
- EXPECT_EQ(ranges::distance(rit, iterator::sentinel), 7);
|
|
|
+ EXPECT_THAT(ranges::distance(rit, iterator::sentinel), 7);
|
|
|
}
|
|
|
|
|
|
TEST(RecursiveIteratorVecMapVecTest, ElementsAreUnwrappedAsATuple) {
|
|
|
@@ -109,11 +106,9 @@ TEST(RecursiveIteratorVecMapVecTest, ElementsAreUnwrappedAsATuple) {
|
|
|
{{1, {1, 2}}, {2, {3, 4, 5}}}, {{1, {3, 4}}}};
|
|
|
std::vector<std::tuple<int, int>> const expected{
|
|
|
{1, 1}, {1, 2}, {2, 3}, {2, 4}, {2, 5}, {1, 3}, {1, 4}};
|
|
|
- auto rit = recursive_iterator(obj);
|
|
|
|
|
|
- EXPECT_EQ(
|
|
|
- (ranges::to<std::vector<std::tuple<int, int>>>(rit, iterator::sentinel)),
|
|
|
- expected);
|
|
|
+ EXPECT_THAT(obj | views::recursive | ranges::to<std::vector>(),
|
|
|
+ ElementsAreArray(expected));
|
|
|
}
|
|
|
|
|
|
TEST(RecursiveIteratorVecMapVecTest, CanMutatePointedToData) {
|
|
|
@@ -121,5 +116,6 @@ TEST(RecursiveIteratorVecMapVecTest, CanMutatePointedToData) {
|
|
|
{{1, {1, 2}}, {2, {3, 4, 5}}}, {{1, {3, 4}}}};
|
|
|
auto rit = recursive_iterator(obj);
|
|
|
std::get<1>(*rit) = 6;
|
|
|
- EXPECT_EQ(obj[0][1][0], 6);
|
|
|
+
|
|
|
+ EXPECT_THAT(obj[0][1][0], 6);
|
|
|
}
|