|
|
@@ -11,7 +11,7 @@ bool is_even(int i) { return i % 2 == 0; }
|
|
|
|
|
|
TEST(FilterIterator, CanPerformSkipsOnData) {
|
|
|
std::vector<int> const data = {1, 2, 3, 4, 5};
|
|
|
- filter_iterator it(is_even, data);
|
|
|
+ filter_iterator it(data, is_even);
|
|
|
|
|
|
EXPECT_EQ(ranges::distance(it, iterator::sentinel), 2);
|
|
|
EXPECT_EQ(*it++, 2);
|
|
|
@@ -21,7 +21,7 @@ TEST(FilterIterator, CanPerformSkipsOnData) {
|
|
|
// TODO: Maybe this should actually move
|
|
|
TEST(FilterIterator, MutatingContainerDoesNotMoveIterator) {
|
|
|
std::vector<int> data = {1, 2, 3, 4, 5};
|
|
|
- filter_iterator it(is_even, data);
|
|
|
+ filter_iterator it(data, is_even);
|
|
|
|
|
|
EXPECT_EQ(ranges::distance(it, iterator::sentinel), 2);
|
|
|
|
|
|
@@ -32,21 +32,21 @@ TEST(FilterIterator, MutatingContainerDoesNotMoveIterator) {
|
|
|
|
|
|
TEST(FilterIterator, CanConstructFilterFromSubRange) {
|
|
|
std::vector<int> data = {1, 2, 3, 4, 5};
|
|
|
- filter_iterator it(is_even, data.begin(), data.begin() + 3);
|
|
|
+ filter_iterator it(data.begin(), data.begin() + 3, is_even);
|
|
|
|
|
|
EXPECT_EQ(ranges::distance(it, iterator::sentinel), 1);
|
|
|
}
|
|
|
|
|
|
TEST(FilterIterator, IfNonMatchThenStartIsEnd) {
|
|
|
std::vector<int> const data = {1, 3, 5};
|
|
|
- filter_iterator it(is_even, data);
|
|
|
+ filter_iterator it(data, is_even);
|
|
|
|
|
|
EXPECT_EQ(it, iterator::sentinel);
|
|
|
}
|
|
|
|
|
|
TEST(FilterIterator, CapsIterationAtEnd) {
|
|
|
std::vector<int> const data = {1, 2, 3, 4, 5};
|
|
|
- filter_iterator it(is_even, data);
|
|
|
+ filter_iterator it(data, is_even);
|
|
|
|
|
|
++ ++it;
|
|
|
EXPECT_EQ(it, iterator::sentinel);
|
|
|
@@ -58,7 +58,7 @@ TEST(FilterIterator, CapsIterationAtEnd) {
|
|
|
TEST(FilterIterator, CanIterateWithSentinel) {
|
|
|
std::vector<int> v{1, 2, 3, 4, 5};
|
|
|
size_t count{0};
|
|
|
- for (filter_iterator it(is_even, v); it != iterator::sentinel; ++it) {
|
|
|
+ for (filter_iterator it(v, is_even); it != iterator::sentinel; ++it) {
|
|
|
++count;
|
|
|
}
|
|
|
|