Line | Branch | Exec | Source |
---|---|---|---|
1 | #include <iostream> | ||
2 | #include <vector> | ||
3 | #include <functional> | ||
4 | #include <string> | ||
5 | #include <optional> | ||
6 | #include <set> | ||
7 | #include <map> | ||
8 | #include <list> | ||
9 | #include <deque> | ||
10 | #include <unordered_set> | ||
11 | #include <unordered_map> | ||
12 | |||
13 | #include "TestCommon.h" | ||
14 | |||
15 | // ################################################################################################ | ||
16 | // CONSUMERS | ||
17 | // ################################################################################################ | ||
18 | 8 | TEST(CXXIter, iterator) { | |
19 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<size_t> input = {1, 3, 3, 7}; |
20 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | auto iter = CXXIter::from(input) |
21 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
6 | .map([](size_t item) { return (item + 1); }) |
22 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
6 | .filter([](size_t item) { return (item >= 4); }) |
23 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .skip(1); |
24 | |||
25 | 2 | std::vector<size_t> output; | |
26 |
6/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 1 times.
|
6 | for(size_t item : iter) { |
27 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | output.push_back(item); |
28 | } | ||
29 |
3/12✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
|
2 | ASSERT_EQ(output.size(), 2); |
30 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
|
2 | ASSERT_THAT(output, ElementsAre(4, 8)); |
31 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
32 | |||
33 | 8 | TEST(CXXIter, forEach) { | |
34 | // additional container type parameters | ||
35 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"1337", "42", "64"}; |
36 | 2 | std::vector<std::string> output; | |
37 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | CXXIter::from(input) |
38 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
5 | .forEach([&output](std::string& item) { |
39 | 3 | output.push_back(std::forward<std::string>(item)); | |
40 | 3 | }); | |
41 |
3/12✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
|
2 | ASSERT_EQ(output.size(), 3); |
42 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
|
2 | ASSERT_THAT(output, ElementsAre("1337", "42", "64")); |
43 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
44 | |||
45 | 8 | TEST(CXXIter, fold) { | |
46 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<double> input = {1.331335363800390, 1.331335363800390, 1.331335363800390, 1.331335363800390}; |
47 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | double output = CXXIter::from(input) |
48 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
6 | .fold(1.0, [](double& workingValue, double item) { |
49 | 4 | workingValue *= item; | |
50 | 4 | }); | |
51 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_NEAR(output, 3.141592653589793, 0.0000000005); |
52 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
53 | |||
54 | 8 | TEST(CXXIter, all) { | |
55 | 7 | auto boolTester = [](const std::vector<bool>& input) -> bool { | |
56 |
2/4✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 7 times.
✗ Branch 6 not taken.
|
7 | return CXXIter::from(input).copied().all(); |
57 | }; | ||
58 | |||
59 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_FALSE(boolTester({false, false, false, false})); |
60 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_FALSE(boolTester({true, true, true, false})); |
61 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_FALSE(boolTester({false, true, true, true})); |
62 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_FALSE(boolTester({false, false, true, true})); |
63 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_FALSE(boolTester({true, true, false, true})); |
64 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_TRUE(boolTester({true, true, true, true})); |
65 | |||
66 | 10 | auto intAsBoolFn = [](uint32_t item) -> bool { return (item != 0); }; | |
67 | 5 | auto intTester = [&intAsBoolFn](const std::vector<uint32_t>& input) -> bool { | |
68 |
2/4✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 5 times.
✗ Branch 6 not taken.
|
5 | return CXXIter::from(input).copied().all(intAsBoolFn); |
69 | 2 | }; | |
70 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_FALSE(intTester({0, 0, 0, 0})); |
71 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_FALSE(intTester({1, 1, 1, 0})); |
72 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_FALSE(intTester({0, 1, 1, 1})); |
73 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_FALSE(intTester({0, 0, 1, 1})); |
74 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_FALSE(intTester({1, 1, 0, 1})); |
75 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_TRUE(boolTester({1, 1, 1, 1})); |
76 | } | ||
77 | |||
78 | 8 | TEST(CXXIter, any) { | |
79 | 7 | auto boolTester = [](const std::vector<bool>& input) -> bool { | |
80 |
2/4✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 7 times.
✗ Branch 6 not taken.
|
7 | return CXXIter::from(input).copied().any(); |
81 | }; | ||
82 | |||
83 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_FALSE(boolTester({false, false, false, false})); |
84 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_TRUE(boolTester({true, true, true, false})); |
85 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_TRUE(boolTester({false, true, true, true})); |
86 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_TRUE(boolTester({false, false, true, true})); |
87 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_TRUE(boolTester({true, true, false, true})); |
88 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_TRUE(boolTester({true, true, true, true})); |
89 | |||
90 | 11 | auto intAsBoolFn = [](uint32_t item) -> bool { return (item != 0); }; | |
91 | 5 | auto intTester = [&intAsBoolFn](const std::vector<uint32_t>& input) -> bool { | |
92 |
2/4✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 5 times.
✗ Branch 6 not taken.
|
5 | return CXXIter::from(input).copied().any(intAsBoolFn); |
93 | 2 | }; | |
94 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_FALSE(intTester({0, 0, 0, 0})); |
95 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_TRUE(intTester({1, 1, 1, 0})); |
96 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_TRUE(intTester({0, 1, 1, 1})); |
97 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_TRUE(intTester({0, 0, 1, 1})); |
98 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_TRUE(intTester({1, 1, 0, 1})); |
99 |
4/16✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
|
2 | ASSERT_TRUE(boolTester({1, 1, 1, 1})); |
100 | } | ||
101 | |||
102 | 8 | TEST(CXXIter, findIdx) { | |
103 | { // item | ||
104 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {42, 1337, 52}; |
105 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<size_t> output = CXXIter::from(input).findIdx(1337); |
106 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
107 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 1); |
108 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
109 | { | ||
110 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"42", "1337", "52"}; |
111 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
2 | std::optional<size_t> output = CXXIter::from(input).findIdx("42"); |
112 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
113 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 0); |
114 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
115 | { | ||
116 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"42", "1337", "52"}; |
117 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
2 | std::optional<size_t> output = CXXIter::from(input).findIdx("not found"); |
118 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
119 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
120 | { // searchFn | ||
121 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {1337, 31337, 41, 43, 42, 64}; |
122 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<size_t> output = CXXIter::from(input) |
123 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
7 | .findIdx([](int item) { return (item % 2 == 0); }); |
124 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
125 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 4); |
126 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
127 | { | ||
128 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {1337, 31337, 41, 43}; |
129 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<size_t> output = CXXIter::from(input) |
130 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
6 | .findIdx([](int item) { return (item % 2 == 0); }); |
131 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
132 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
133 | } | ||
134 | |||
135 | 8 | TEST(CXXIter, find) { | |
136 | { | ||
137 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"42", "1337", "52"}; |
138 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | CXXIter::IterValue<std::string&> output = CXXIter::from(input) |
139 | 2 | .find([](const std::string& item) { | |
140 | 2 | return item.size() == 4; | |
141 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | }); |
142 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
143 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), "1337"); |
144 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
145 | { | ||
146 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"42", "1337", "52"}; |
147 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | CXXIter::IterValue<std::string&> output = CXXIter::from(input) |
148 | 3 | .find([](const std::string& item) { | |
149 | 3 | return item.size() == 3; | |
150 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | }); |
151 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
152 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
153 | } | ||
154 | |||
155 | 8 | TEST(CXXIter, count) { | |
156 | { | ||
157 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {42, 1337, 52}; |
158 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | size_t output = CXXIter::from(input).count(); |
159 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, 3); |
160 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
161 | { | ||
162 | 2 | std::vector<int> input = {}; | |
163 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | size_t output = CXXIter::from(input).count(); |
164 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, 0); |
165 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
166 | { | ||
167 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; |
168 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | size_t output = CXXIter::from(input) |
169 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
13 | .count([](int item){ return (item % 2 == 0); }); |
170 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, 5); |
171 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
172 | { | ||
173 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {1, 3, 5, 7, 9, 11}; |
174 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | size_t output = CXXIter::from(input) |
175 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
8 | .count([](int item){ return (item % 2 == 0); }); |
176 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, 0); |
177 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
178 | { | ||
179 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; |
180 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | size_t output = CXXIter::from(input) |
181 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
13 | .map([](int item) { return (item % 2 == 0); }) |
182 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .count(true); |
183 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, 5); |
184 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
185 | { | ||
186 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {1, 3, 5, 7, 9, 11}; |
187 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | size_t output = CXXIter::from(input) |
188 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
8 | .map([](int item) { return (item % 2 == 0); }) |
189 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .count(true); |
190 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, 0); |
191 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
192 | } | ||
193 | |||
194 | 8 | TEST(CXXIter, sum) { | |
195 | { // default startValue | ||
196 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {42, 1337, 52}; |
197 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | int output = CXXIter::from(input).sum(); |
198 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, 1431); |
199 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
200 | { // custom startValue | ||
201 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {42, 1337, 52}; |
202 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | int output = CXXIter::from(input).sum(29906); |
203 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, 31337); |
204 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
205 | { // default startValue, empty iterator | ||
206 | 2 | std::vector<int> input = {}; | |
207 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | int output = CXXIter::from(input).sum(); |
208 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, 0); |
209 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
210 | { // custom startValue, empty iterator | ||
211 | 2 | std::vector<int> input = {}; | |
212 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | int output = CXXIter::from(input).sum(31337); |
213 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, 31337); |
214 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
215 | } | ||
216 | |||
217 | 8 | TEST(CXXIter, stringJoin) { | |
218 | { // non-empty input | ||
219 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {42, 1337, 64}; |
220 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::string output = CXXIter::from(input) |
221 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
5 | .map([](const auto& item) { return std::to_string(item); }) |
222 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
4 | .stringJoin(", "); |
223 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, "42, 1337, 64"); |
224 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
225 | { // empty input | ||
226 | 2 | std::vector<int> input = {}; | |
227 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::string output = CXXIter::from(input) |
228 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .map([](const auto& item) { return std::to_string(item); }) |
229 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
4 | .stringJoin(", "); |
230 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, ""); |
231 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
232 | } | ||
233 | |||
234 | 8 | TEST(CXXIter, mean) { | |
235 | { // non-empty input | ||
236 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<float> input = {1.0f, 2.0f, 3.0f}; |
237 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<float> output = CXXIter::from(input).mean(); |
238 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
239 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_NEAR(output.value(), 2.0f, 0.0000000005); |
240 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
241 | { // non-empty input, Norm::N_MINUS_ONE | ||
242 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<float> input = {1.0f, 2.0f, 3.0f}; |
243 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<float> output = CXXIter::from(input) |
244 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .mean<CXXIter::StatisticNormalization::N_MINUS_ONE>(); |
245 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
246 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_NEAR(output.value(), 3.0f, 0.0000000005); |
247 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
248 | { // empty input, Norm::N | ||
249 | 2 | std::vector<float> input = {}; | |
250 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<float> output = CXXIter::from(input).mean(); |
251 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
252 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
253 | |||
254 | // structure with retarded default ctor, that initializes internal value with weird value | ||
255 | // Have to provide sumStart to mean() to get meaningful results | ||
256 | // - This unit-test was definitely not added because a certain c++ math vector template | ||
257 | // library has a retarded default ctor that doesn't initialize values... | ||
258 | struct VecWithDumbDefaultCtor { | ||
259 | double val; | ||
260 | 8 | VecWithDumbDefaultCtor(double val = 1.0) : val(val) {} | |
261 | 6 | VecWithDumbDefaultCtor& operator +=(const VecWithDumbDefaultCtor& o) { val += o.val; return *this; } | |
262 | 2 | VecWithDumbDefaultCtor& operator /=(double div) { val /= div; return *this; } | |
263 | 2 | VecWithDumbDefaultCtor operator/ (double div) { VecWithDumbDefaultCtor tmp = *this; tmp /= div; return tmp; } | |
264 | }; | ||
265 | { // using sumStart from default ctor | ||
266 |
1/2✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
2 | std::vector<VecWithDumbDefaultCtor> input = {1.0, 2.0, 3.0}; |
267 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<VecWithDumbDefaultCtor> output = CXXIter::from(input) |
268 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | .mean<CXXIter::StatisticNormalization::N_MINUS_ONE, VecWithDumbDefaultCtor, double>(); |
269 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
270 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_NEAR(output.value().val, 3.5f, 0.0000000005); |
271 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
272 | { // using sumStart from passed initial value | ||
273 |
1/2✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
2 | std::vector<VecWithDumbDefaultCtor> input = {1.0, 2.0, 3.0}; |
274 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<VecWithDumbDefaultCtor> output = CXXIter::from(input) |
275 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | .mean<CXXIter::StatisticNormalization::N_MINUS_ONE, VecWithDumbDefaultCtor, double>({0.0}); |
276 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
277 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_NEAR(output.value().val, 3.0f, 0.0000000005); |
278 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
279 | } | ||
280 | |||
281 | 8 | TEST(CXXIter, variance) { | |
282 | { // empty input | ||
283 | 2 | std::vector<float> input = {}; | |
284 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<float> output = CXXIter::from(input).variance(); |
285 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
286 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
287 | { // input (too few elements) | ||
288 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<float> input = { 1.0f }; |
289 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<float> output = CXXIter::from(input).variance(); |
290 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
291 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
292 | { // non-empty input, Norm::N | ||
293 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<float> input = {1.0f, 2.0f, 3.0f}; |
294 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<float> output = CXXIter::from(input).variance(); |
295 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
296 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_NEAR(output.value(), 0.6666666f, 0.00001f); |
297 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
298 | { // non-empty input, Norm::N_MINUS_ONE | ||
299 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<float> input = {1.0f, 2.0f, 3.0f}; |
300 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<float> output = CXXIter::from(input) |
301 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .variance<CXXIter::StatisticNormalization::N_MINUS_ONE>(); |
302 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
303 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_NEAR(output.value(), 1.0f, 0.00001f); |
304 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
305 | { // non-empty input, Norm::N | ||
306 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<float> input = {2.0f, 4.0f, 4.0f, 4.0f, 5.0f, 5.0f, 7.0f, 9.0f}; |
307 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<float> output = CXXIter::from(input).variance(); |
308 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
309 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_NEAR(output.value(), 4.0f, 0.0001f); |
310 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
311 | { // non-empty input, Norm::N_MINUS_ONE | ||
312 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<float> input = {2.0f, 4.0f, 4.0f, 4.0f, 5.0f, 5.0f, 7.0f, 9.0f}; |
313 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<float> output = CXXIter::from(input) |
314 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .variance<CXXIter::StatisticNormalization::N_MINUS_ONE>(); |
315 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
316 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_NEAR(output.value(), 4.5714f, 0.0001f); |
317 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
318 | } | ||
319 | |||
320 | 8 | TEST(CXXIter, stddev) { | |
321 | { // empty input | ||
322 | 2 | std::vector<float> input = {}; | |
323 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<float> output = CXXIter::from(input).stddev(); |
324 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
325 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
326 | { // input (too few elements) | ||
327 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<float> input = { 1.0f }; |
328 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<float> output = CXXIter::from(input).stddev(); |
329 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
330 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
331 | { // non-empty input, Norm::N | ||
332 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<float> input = {1.0f, 2.0f, 3.0f}; |
333 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<float> output = CXXIter::from(input).stddev(); |
334 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
335 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_NEAR(output.value(), 0.816496, 0.00001f); |
336 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
337 | { // non-empty input, Norm::N_MINUS_ONE | ||
338 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<float> input = {1.0f, 2.0f, 3.0f}; |
339 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<float> output = CXXIter::from(input) |
340 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .stddev<CXXIter::StatisticNormalization::N_MINUS_ONE>(); |
341 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
342 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_NEAR(output.value(), 1.0f, 0.00001f); |
343 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
344 | { // non-empty input, Norm::N | ||
345 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<float> input = {2.0f, 4.0f, 4.0f, 4.0f, 5.0f, 5.0f, 7.0f, 9.0f}; |
346 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<float> output = CXXIter::from(input).stddev(); |
347 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
348 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_NEAR(output.value(), 2.0f, 0.00000005f); |
349 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
350 | } | ||
351 | |||
352 | 8 | TEST(CXXIter, last) { | |
353 | { | ||
354 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {42, 1337, 52}; |
355 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<int> output = CXXIter::from(input).last().toStdOptional(); |
356 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
357 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 52); |
358 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
359 | { | ||
360 | 2 | std::vector<int> input = {}; | |
361 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<int> output = CXXIter::from(input).last().toStdOptional(); |
362 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
363 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
364 | } | ||
365 | |||
366 | 8 | TEST(CXXIter, nth) { | |
367 | { | ||
368 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {42, 1337, 52}; |
369 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<int> output = CXXIter::from(input).nth(1).toStdOptional(); |
370 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
371 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 1337); |
372 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
373 | { | ||
374 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {42, 1337, 52}; |
375 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<int> output = CXXIter::from(input).nth(10).toStdOptional(); |
376 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
377 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
378 | { | ||
379 | 2 | std::vector<int> input = {}; | |
380 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<int> output = CXXIter::from(input).nth(0).toStdOptional(); |
381 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
382 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
383 | } | ||
384 | |||
385 | 8 | TEST(CXXIter, min) { | |
386 | { | ||
387 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {42, 1337, 52}; |
388 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | std::optional<int> output = CXXIter::from(input).copied().min().toStdOptional(); |
389 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
390 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 42); |
391 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
392 | { | ||
393 | 2 | std::vector<int> input = {}; | |
394 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | std::optional<int> output = CXXIter::from(input).copied().min().toStdOptional(); |
395 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
396 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
397 | } | ||
398 | |||
399 | 8 | TEST(CXXIter, minIdx) { | |
400 | { | ||
401 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {1337, 42, 52}; |
402 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<size_t> output = CXXIter::from(input).minIdx(); |
403 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
404 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 1); |
405 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
406 | { | ||
407 | 2 | std::vector<int> input = {}; | |
408 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<size_t> output = CXXIter::from(input).minIdx(); |
409 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
410 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
411 | } | ||
412 | |||
413 | 8 | TEST(CXXIter, minBy) { | |
414 | { | ||
415 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | const std::vector<std::string> input = {"middle", "smol", "largeString"}; |
416 | ✗ | std::optional<std::string> output = CXXIter::SrcCRef(input) | |
417 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
5 | .minBy([](const std::string& str) { return str.size(); }) |
418 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
4 | .toStdOptional(); |
419 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
420 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), "smol"); |
421 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
|
2 | ASSERT_THAT(input, ElementsAre("middle", "smol", "largeString")); |
422 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
423 | { | ||
424 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"middle", "smol", "largeString"}; |
425 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<std::string> output = CXXIter::SrcRef(input) |
426 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
5 | .minBy([](const std::string& str) { return str.size(); }) |
427 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | .toStdOptional(); |
428 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
429 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), "smol"); |
430 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
|
2 | ASSERT_THAT(input, ElementsAre("middle", "smol", "largeString")); |
431 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
432 | { | ||
433 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"middle", "smol", "largeString"}; |
434 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::optional<std::string> output = CXXIter::SrcMov(std::move(input)) |
435 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
7 | .minBy([](std::string&& str) { return str.size(); }) |
436 | 2 | .toStdOptional(); | |
437 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_TRUE(output.has_value()); |
438 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), "smol"); |
439 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
440 | { | ||
441 | 2 | std::vector<std::string> input = {}; | |
442 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<std::string> output = CXXIter::from(input) |
443 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .minBy([](const std::string& str) { return str.size(); }) |
444 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | .toStdOptional(); |
445 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
446 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
447 | } | ||
448 | |||
449 | 8 | TEST(CXXIter, minIdxBy) { | |
450 | { | ||
451 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | const std::vector<std::string> input = {"middle", "smol", "largeString"}; |
452 | ✗ | std::optional<size_t> output = CXXIter::SrcCRef(input) | |
453 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
5 | .minIdxBy([](const std::string& str) { return str.size(); }); |
454 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 1); |
455 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
|
2 | ASSERT_THAT(input, ElementsAre("middle", "smol", "largeString")); |
456 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
457 | { | ||
458 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"middle", "smol", "largeString"}; |
459 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<size_t> output = CXXIter::SrcRef(input) |
460 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
5 | .minIdxBy([](const std::string& str) { return str.size(); }); |
461 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 1); |
462 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
|
2 | ASSERT_THAT(input, ElementsAre("middle", "smol", "largeString")); |
463 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
464 | { | ||
465 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"middle", "smol", "largeString"}; |
466 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
4 | std::optional<size_t> output = CXXIter::SrcMov(std::move(input)) |
467 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
5 | .minIdxBy([](std::string&& str) { return str.size(); }); |
468 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 1); |
469 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
470 | { | ||
471 | 2 | std::vector<std::string> input = {}; | |
472 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<size_t> output = CXXIter::from(input) |
473 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .minIdxBy([](const std::string& str) { return str.size(); }); |
474 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
475 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
476 | } | ||
477 | |||
478 | 8 | TEST(CXXIter, max) { | |
479 | { | ||
480 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {42, 1337, 52}; |
481 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | std::optional<int> output = CXXIter::from(input).copied().max().toStdOptional(); |
482 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 1337); |
483 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
484 | { | ||
485 | 2 | std::vector<int> input = {}; | |
486 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | std::optional<int> output = CXXIter::from(input).copied().max().toStdOptional(); |
487 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
488 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
489 | } | ||
490 | |||
491 | 8 | TEST(CXXIter, maxIdx) { | |
492 | { | ||
493 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::vector<int> input = {42, 1337, 52}; |
494 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<size_t> output = CXXIter::from(input).maxIdx(); |
495 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 1); |
496 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
497 | { | ||
498 | 2 | std::vector<int> input = {}; | |
499 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | std::optional<size_t> output = CXXIter::from(input).maxIdx(); |
500 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
501 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
502 | } | ||
503 | |||
504 | 8 | TEST(CXXIter, maxBy) { | |
505 | { | ||
506 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | const std::vector<std::string> input = {"smol", "middle", "largeString"}; |
507 | ✗ | std::optional<std::string> output = CXXIter::SrcCRef(input) | |
508 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
5 | .maxBy([](const std::string& str) { return str.size(); }) |
509 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | .toStdOptional(); |
510 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), "largeString"); |
511 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
|
2 | ASSERT_THAT(input, ElementsAre("smol", "middle", "largeString")); |
512 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
513 | { | ||
514 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"smol", "middle", "largeString"}; |
515 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<std::string> output = CXXIter::SrcRef(input) |
516 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
5 | .maxBy([](std::string& str) { return str.size(); }) |
517 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | .toStdOptional(); |
518 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), "largeString"); |
519 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
|
2 | ASSERT_THAT(input, ElementsAre("smol", "middle", "largeString")); |
520 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
521 | { | ||
522 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"smol", "middle", "largeString"}; |
523 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::optional<std::string> output = CXXIter::SrcMov(std::move(input)) |
524 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
7 | .maxBy([](std::string&& str) { return str.size(); }) |
525 | 2 | .toStdOptional(); | |
526 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), "largeString"); |
527 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
528 | { | ||
529 | 2 | std::vector<std::string> input = {}; | |
530 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<std::string> output = CXXIter::from(input) |
531 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .maxBy([](const std::string& str) { return str.size(); }) |
532 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | .toStdOptional(); |
533 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
534 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
535 | } | ||
536 | |||
537 | 8 | TEST(CXXIter, maxIdxBy) { | |
538 | { | ||
539 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | const std::vector<std::string> input = {"smol", "middle", "largeString"}; |
540 | ✗ | std::optional<size_t> output = CXXIter::SrcCRef(input) | |
541 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
5 | .maxIdxBy([](const std::string& str) { return str.size(); }); |
542 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 2); |
543 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
|
2 | ASSERT_THAT(input, ElementsAre("smol", "middle", "largeString")); |
544 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
545 | { | ||
546 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"smol", "middle", "largeString"}; |
547 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<size_t> output = CXXIter::SrcRef(input) |
548 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
5 | .maxIdxBy([](std::string& str) { return str.size(); }); |
549 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 2); |
550 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
|
2 | ASSERT_THAT(input, ElementsAre("smol", "middle", "largeString")); |
551 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
552 | { | ||
553 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"smol", "middle", "largeString"}; |
554 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
4 | std::optional<size_t> output = CXXIter::SrcMov(std::move(input)) |
555 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
5 | .maxIdxBy([](std::string&& str) { return str.size(); }); |
556 |
4/14✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_EQ(output.value(), 2); |
557 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
558 | { | ||
559 | 2 | std::vector<std::string> input = {}; | |
560 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::optional<size_t> output = CXXIter::from(input) |
561 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .maxIdxBy([](const std::string& str) { return str.size(); }); |
562 |
2/12✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
2 | ASSERT_FALSE(output.has_value()); |
563 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | } |
564 | } | ||
565 | |||
566 | 8 | TEST(CXXIter, collect) { | |
567 | { // additional container type parameters | ||
568 |
4/8✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
12 | std::vector<std::string> input = {"1337", "42", "64"}; |
569 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::vector<std::string, std::allocator<std::string>> output = CXXIter::from(input) |
570 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .collect<std::vector, std::allocator<std::string>>(); |
571 |
3/12✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
|
2 | ASSERT_EQ(output.size(), 3); |
572 |
5/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
|
2 | ASSERT_THAT(output, ElementsAre("1337", "42", "64")); |
573 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
574 | { // collect to string | ||
575 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::string input = "ceasarencrypt"; |
576 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::string output = CXXIter::from(input) |
577 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
15 | .map([](char c) -> char { return (c + 1); }) |
578 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .collect<std::basic_string>(); |
579 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, "dfbtbsfodszqu"); |
580 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
581 | |||
582 | // test as many permutations of items to target collections | ||
583 | |||
584 | #define COLLECTOR_TEST_FOR_CONTAINER(TARGET_CONTAINER) { \ | ||
585 | std::vector<std::string> input = {"1337", "42", "64"}; \ | ||
586 | auto output = CXXIter::from(input).collect<TARGET_CONTAINER>(); \ | ||
587 | ASSERT_EQ(output.size(), 3); \ | ||
588 | } \ | ||
589 | |||
590 | #define PAIR_COLLECTOR_TEST_FOR_CONTAINER(TARGET_CONTAINER) { \ | ||
591 | std::vector<TestPair> input = {{"1337", 1337}, {"42", 42}, {"64", 64}}; \ | ||
592 | auto output = CXXIter::from(input).collect<TARGET_CONTAINER>(); \ | ||
593 | ASSERT_EQ(output.size(), 3); \ | ||
594 | } | ||
595 | |||
596 | // CustomContainer | ||
597 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(CustomContainer); PAIR_COLLECTOR_TEST_FOR_CONTAINER(CustomContainer); |
598 | |||
599 | // back-inserter containers | ||
600 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::vector); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::vector); |
601 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::list); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::list); |
602 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::deque); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::deque); |
603 | |||
604 | // insert containers | ||
605 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::set); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::set); |
606 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::multiset); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::multiset); |
607 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::unordered_set); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::unordered_set); |
608 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::unordered_multiset); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::unordered_multiset); |
609 | |||
610 | // associative containers | ||
611 |
11/28✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
|
14 | PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::map); |
612 |
11/28✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
|
14 | PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::multimap); |
613 |
11/28✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
|
14 | PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::unordered_map); |
614 |
11/28✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
|
14 | PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::unordered_multimap); |
615 | |||
616 | #undef COLLECTOR_TEST_FOR_CONTAINER | ||
617 | #undef PAIR_COLLECTOR_TEST_FOR_CONTAINER | ||
618 | } | ||
619 | |||
620 | 8 | TEST(CXXIter, collect2) { | |
621 | { // collect to string | ||
622 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | std::string input = "ceasarencrypt"; |
623 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::string output = CXXIter::from(input) |
624 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
15 | .map([](char c) -> char { return (c + 1); }) |
625 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | .collect<std::string>(); |
626 |
3/12✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
2 | ASSERT_EQ(output, "dfbtbsfodszqu"); |
627 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | } |
628 | |||
629 | // test as many permutations of items to target collections | ||
630 | |||
631 | #define COLLECTOR_TEST_FOR_CONTAINER(...) { \ | ||
632 | std::vector<std::string> input = {"1337", "42", "64"}; \ | ||
633 | auto output = CXXIter::from(input).collect<__VA_ARGS__>(); \ | ||
634 | ASSERT_EQ(output.size(), 3); \ | ||
635 | } | ||
636 | |||
637 | #define PAIR_COLLECTOR_TEST_FOR_CONTAINER(...) { \ | ||
638 | std::vector<TestPair> input = {{"1337", 1337}, {"42", 42}, {"64", 64}}; \ | ||
639 | auto output = CXXIter::from(input).collect<__VA_ARGS__>(); \ | ||
640 | ASSERT_EQ(output.size(), 3); \ | ||
641 | } | ||
642 | |||
643 | // CustomContainer | ||
644 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(CustomContainer<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(CustomContainer<TestPair>); |
645 | |||
646 | // back-inserter containers | ||
647 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::vector<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::vector<TestPair>); |
648 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::list<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::list<TestPair>); |
649 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::deque<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::deque<TestPair>); |
650 | |||
651 | // insert containers | ||
652 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::set<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::set<TestPair>); |
653 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::multiset<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::multiset<TestPair>); |
654 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::unordered_set<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::unordered_set<TestPair>); |
655 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::unordered_multiset<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::unordered_multiset<TestPair>); |
656 | |||
657 | // associative containers | ||
658 |
11/28✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
|
14 | PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::map<std::string, int>); |
659 |
11/28✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
|
14 | PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::multimap<std::string, int>); |
660 |
11/28✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
|
14 | PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::unordered_map<std::string, int>); |
661 |
11/28✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
|
14 | PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::unordered_multimap<std::string, int>); |
662 | |||
663 | // std::array | ||
664 |
22/56✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
|
28 | COLLECTOR_TEST_FOR_CONTAINER(std::array<std::string, 3>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::array<TestPair, 3>); |
665 | |||
666 | #undef COLLECTOR_TEST_FOR_CONTAINER | ||
667 | #undef PAIR_COLLECTOR_TEST_FOR_CONTAINER | ||
668 | } | ||
669 | |||
670 | 4 | TEST(CXXIter, collectInto) { | |
671 | { // additional container type parameters | ||
672 | 6 | std::vector<std::string> input = {"1337", "42", "64"}; | |
673 | 1 | std::vector<std::string, std::allocator<std::string>> output; | |
674 | 1 | CXXIter::from(input).collectInto(output); | |
675 | 1 | ASSERT_EQ(output.size(), 3); | |
676 | 1 | ASSERT_THAT(output, ElementsAre("1337", "42", "64")); | |
677 | 1 | } | |
678 | { // collect to string | ||
679 | 1 | std::string input = "ceasarencrypt"; | |
680 | 1 | std::string output; | |
681 | 1 | CXXIter::from(input) | |
682 | 14 | .map([](char c) -> char { return (c + 1); }) | |
683 | 1 | .collectInto(output); | |
684 | 1 | ASSERT_EQ(output, "dfbtbsfodszqu"); | |
685 | 1 | } | |
686 | { // collect to std::array | ||
687 | 1 | std::vector<float> input = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0}; | |
688 | std::array<float, 3> output; | ||
689 | 1 | CXXIter::from(input).copied() | |
690 | 4 | .filter([](float item) { return item < 3.5; }) | |
691 | 1 | .collectInto(output); | |
692 | 1 | ASSERT_EQ(output.size(), 3); | |
693 | 1 | ASSERT_THAT(output, ElementsAre(1.0, 2.0, 3.0)); | |
694 | 1 | } | |
695 | |||
696 | // test as many permutations of items to target collections | ||
697 | |||
698 | #define COLLECTOR_TEST_FOR_CONTAINER(...) { \ | ||
699 | std::vector<std::string> input = {"1337", "42", "64"}; \ | ||
700 | __VA_ARGS__ output = {"pre-existing item in output"}; \ | ||
701 | CXXIter::from(input).collectInto(output); \ | ||
702 | ASSERT_EQ(output.size(), 3 + 1); \ | ||
703 | } \ | ||
704 | |||
705 | #define PAIR_COLLECTOR_TEST_FOR_CONTAINER(...) { \ | ||
706 | std::vector<TestPair> input = {{"1337", 1337}, {"42", 42}, {"64", 64}}; \ | ||
707 | __VA_ARGS__ output = { std::make_pair(std::string("pre-existing"), 5)}; \ | ||
708 | CXXIter::from(input).collectInto(output); \ | ||
709 | ASSERT_EQ(output.size(), 3 + 1); \ | ||
710 | } | ||
711 | |||
712 | // CustomContainer | ||
713 | 18 | COLLECTOR_TEST_FOR_CONTAINER(CustomContainer<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(CustomContainer<TestPair>); | |
714 | |||
715 | // back-inserter containers | ||
716 | 20 | COLLECTOR_TEST_FOR_CONTAINER(std::vector<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::vector<TestPair>); | |
717 | 20 | COLLECTOR_TEST_FOR_CONTAINER(std::list<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::list<TestPair>); | |
718 | 20 | COLLECTOR_TEST_FOR_CONTAINER(std::deque<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::deque<TestPair>); | |
719 | |||
720 | // insert containers | ||
721 | 20 | COLLECTOR_TEST_FOR_CONTAINER(std::set<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::set<TestPair>); | |
722 | 20 | COLLECTOR_TEST_FOR_CONTAINER(std::multiset<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::multiset<TestPair>); | |
723 | 20 | COLLECTOR_TEST_FOR_CONTAINER(std::unordered_set<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::unordered_set<TestPair>); | |
724 | 20 | COLLECTOR_TEST_FOR_CONTAINER(std::unordered_multiset<std::string>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::unordered_multiset<TestPair>); | |
725 | |||
726 | // associative containers | ||
727 | 10 | PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::map<std::string, int>); | |
728 | 10 | PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::multimap<std::string, int>); | |
729 | 10 | PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::unordered_map<std::string, int>); | |
730 | 10 | PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::unordered_multimap<std::string, int>); | |
731 | |||
732 | // std::array | ||
733 | 14 | COLLECTOR_TEST_FOR_CONTAINER(std::array<std::string, 4>); PAIR_COLLECTOR_TEST_FOR_CONTAINER(std::array<TestPair, 4>); | |
734 | |||
735 | #undef COLLECTOR_TEST_FOR_CONTAINER | ||
736 | #undef PAIR_COLLECTOR_TEST_FOR_CONTAINER | ||
737 | } | ||
738 |