Skip to content

Commit c3e46f3

Browse files
authored
Merge pull request #13 from jay-tux/fix/misc
Fix/misc
2 parents 3b07e7f + 1950f8c commit c3e46f3

File tree

10 files changed

+171
-202
lines changed

10 files changed

+171
-202
lines changed

Doxyfile.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2102,7 +2102,7 @@ MAN_LINKS = NO
21022102
# captures the structure of the code including all documentation.
21032103
# The default value is: NO.
21042104

2105-
GENERATE_XML = NO
2105+
GENERATE_XML = YES
21062106

21072107
# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
21082108
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of

inc/fpgen.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,5 @@
55
#include "generator.hpp"
66
#include "manipulators.hpp"
77
#include "sources.hpp"
8-
#include "stream.hpp"
98

109
#endif

test/Makefile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ DEPS=$(SOURCES:$(SRCD)/%.cpp=$(OBJD)/%.d)
33
TESTS=generator sources manip aggreg chain
44
TESTOBJ=$(TESTS:%=$(OBJD)/test_%.o)
55

6-
CONAN_PKG_OVERRIDE=gtest
6+
CONAN_PKG_OVERRIDE=
77
CONAN_MODIFY=$(CONAN_PKG_OVERRIDE:%=-s %:compiler.version=11.2)
88

99
all: dirs conan/conanbuildinfo.mak $(BIND)/_test
@@ -18,19 +18,19 @@ dirs:
1818
@([ ! -d $(OBJD)/sources ] && mkdir -p $(OBJD)/sources) || true
1919

2020
$(BIND)/_test: $(TESTOBJ) $(OBJD)/test_main.o
21-
$(CC) $(LDXTRA) $(LDARGS) $^ -o $@
21+
$(CC) $(LDARGS) $(LDXTRA) $^ -o $@
2222
$(BIND)/_test
2323

2424
$(OBJD)/%.o: $(SRCD)/%.cpp Makefile
2525
$(CC) $(CXXARGS) $(CXXXTRA) $< -o $@
2626

2727
conan/conanbuildinfo.mak: conanfile.txt
2828
@([ ! -d conan/ ] && mkdir -p conan/) || true
29-
cd conan && CC=gcc CXX=$(CC) conan install .. $(CONAN_MODIFY) --build=gtest
29+
cd conan && CC=gcc CXX=$(CC) conan install .. $(CONAN_MODIFY)
3030

3131
clean:
3232
find ./bin/ -type f | grep -v '.gitkeep' | xargs rm -rf
3333
find ./obj/ -type f | grep -v '.gitkeep' | xargs rm -rf
3434
find ./conan/ -type f | grep -v '.gitkeep' | xargs rm -rf
3535

36-
.PHONY: all dirs clean $(TESTS:%=$(BIND)/%)
36+
.PHONY: all dirs clean $(TESTS:%=$(BIND)/%) $(BIND)/_test

test/conanfile.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[requires]
2-
gtest/cci.20210126
2+
doctest/2.4.8
33

44
[generators]
55
make

test/src/test_aggreg.cpp

Lines changed: 62 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
#include "aggregators.hpp"
2+
#include "doctest/doctest.h"
23
#include "generator.hpp"
34
#include "manipulators.hpp"
45
#include "sources.hpp"
5-
#include "gmock/gmock.h"
6-
#include "gtest/gtest.h"
76

87
#include <map>
98
#include <sstream>
@@ -46,165 +45,159 @@ size_t sum_ref(size_t &old, size_t in) {
4645
return old;
4746
}
4847

49-
TEST(aggregate, empty) {
48+
TEST_CASE("Aggregate empty generator") {
5049
auto gen = a_empty();
51-
// gen();
5250
std::vector<size_t> res;
53-
EXPECT_EQ(0, fpgen::aggregate_to(gen, res).size());
51+
CHECK(0 == fpgen::aggregate_to(gen, res).size());
5452
}
5553

56-
TEST(aggregate, vector) {
54+
TEST_CASE("Aggregate to std::vector") {
5755
auto gen = values();
5856
std::vector<size_t> res;
5957
fpgen::aggregate_to(gen, res);
6058

61-
EXPECT_EQ(0, res[0]);
62-
EXPECT_EQ(1, res[1]);
63-
EXPECT_EQ(1, res[2]);
64-
EXPECT_EQ(2, res[3]);
65-
EXPECT_EQ(3, res[4]);
66-
EXPECT_EQ(5, res[5]);
67-
EXPECT_EQ(8, res[6]);
68-
EXPECT_EQ(13, res[7]);
69-
EXPECT_EQ(21, res[8]);
70-
EXPECT_EQ(34, res[9]);
71-
EXPECT_EQ(res.size(), 10);
59+
CHECK(0 == res[0]);
60+
CHECK(1 == res[1]);
61+
CHECK(1 == res[2]);
62+
CHECK(2 == res[3]);
63+
CHECK(3 == res[4]);
64+
CHECK(5 == res[5]);
65+
CHECK(8 == res[6]);
66+
CHECK(13 == res[7]);
67+
CHECK(21 == res[8]);
68+
CHECK(34 == res[9]);
69+
CHECK(res.size() == 10);
7270
}
7371

74-
TEST(aggregate, vec_to_vec) {
72+
TEST_CASE("Aggregate: std::vector to generator to std::vector") {
7573
std::vector<size_t> in = {0, 1, 2, 3, 4, 5, 6};
7674
std::vector<size_t> out = {};
7775
auto gen = fpgen::from(in);
7876
out = fpgen::aggregate_to(gen, out);
79-
EXPECT_EQ(in, out);
77+
CHECK(in == out);
8078
}
8179

82-
TEST(aggregate, map) {
80+
TEST_CASE("Aggregate to std::map") {
8381
fpgen::generator<size_t> sources[2] = {values(), values()};
8482
auto gen = fpgen::zip(sources[0], sources[1]);
8583
std::map<size_t, size_t> res;
8684
fpgen::tup_aggregate_to(gen, res);
8785

88-
EXPECT_EQ(0, res[0]);
89-
EXPECT_EQ(1, res[1]);
90-
EXPECT_EQ(2, res[2]);
91-
EXPECT_EQ(3, res[3]);
92-
EXPECT_EQ(5, res[5]);
93-
EXPECT_EQ(8, res[8]);
94-
EXPECT_EQ(13, res[13]);
95-
EXPECT_EQ(21, res[21]);
96-
EXPECT_EQ(34, res[34]);
97-
EXPECT_EQ(res.size(), 9);
86+
CHECK(0 == res[0]);
87+
CHECK(1 == res[1]);
88+
CHECK(2 == res[2]);
89+
CHECK(3 == res[3]);
90+
CHECK(5 == res[5]);
91+
CHECK(8 == res[8]);
92+
CHECK(13 == res[13]);
93+
CHECK(21 == res[21]);
94+
CHECK(34 == res[34]);
95+
CHECK(res.size() == 9);
9896
}
9997

100-
TEST(aggregate, count_empty) {
98+
TEST_CASE("Count empty generator") {
10199
auto gen = a_empty();
102-
// gen();
103-
EXPECT_EQ(0, fpgen::count(gen));
100+
CHECK(0 == fpgen::count(gen));
104101
}
105102

106-
TEST(aggregate, count) {
103+
TEST_CASE("Count generator") {
107104
auto gen = values();
108-
EXPECT_EQ(10, fpgen::count(gen));
105+
CHECK(10 == fpgen::count(gen));
109106
}
110107

111-
TEST(fold, fold_noin_empty) {
108+
TEST_CASE("Fold [using no-input, empty generator]") {
112109
auto gen = a_empty();
113-
// gen();
114-
EXPECT_EQ(0, fpgen::fold<size_t>(gen, sum));
110+
CHECK(0 == fpgen::fold<size_t>(gen, sum));
115111
}
116112

117-
TEST(fold, fold_noin) {
113+
TEST_CASE("Fold [using no-input, non-empty generator]") {
118114
auto gen = values();
119-
EXPECT_EQ(calc_sum(), fpgen::fold<size_t>(gen, sum));
115+
CHECK(calc_sum() == fpgen::fold<size_t>(gen, sum));
120116
}
121117

122-
TEST(fold, fold_in_noref_empty) {
118+
TEST_CASE("Fold [using input, empty generator]") {
123119
auto gen = a_empty();
124-
// gen();
125-
EXPECT_EQ(7, fpgen::fold<size_t>(gen, sum, 7));
120+
CHECK(7 == fpgen::fold<size_t>(gen, sum, 7));
126121
}
127122

128-
TEST(fold, fold_in_noref) {
123+
TEST_CASE("Fold [using input, non-empty generator]") {
129124
auto gen = values();
130-
EXPECT_EQ(calc_sum() + 7, fpgen::fold<size_t>(gen, sum, 7));
125+
CHECK(calc_sum() + 7 == fpgen::fold<size_t>(gen, sum, 7));
131126
}
132127

133-
TEST(fold, fold_in_ref_empty) {
128+
TEST_CASE("Fold [using ref input, empty generator]") {
134129
auto gen = a_empty();
135-
// gen();
136130
size_t res = 7;
137-
EXPECT_EQ(7, fpgen::fold_ref<size_t>(gen, sum, res));
138-
EXPECT_EQ(7, res);
131+
CHECK(7 == fpgen::fold_ref<size_t>(gen, sum, res));
132+
CHECK(7 == res);
139133
}
140134

141-
TEST(fold, fold_in_ref) {
135+
TEST_CASE("Fold [using ref input, non-epty generator]") {
142136
auto gen = values();
143137
size_t res = 7;
144-
EXPECT_EQ(calc_sum() + 7, fpgen::fold_ref<size_t>(gen, sum, res));
145-
EXPECT_EQ(calc_sum() + 7, res);
138+
CHECK(calc_sum() + 7 == fpgen::fold_ref<size_t>(gen, sum, res));
139+
CHECK(calc_sum() + 7 == res);
146140
}
147141

148-
TEST(sum, empty) {
142+
TEST_CASE("Sum empty generator") {
149143
auto gen = a_empty();
150-
// gen();
151-
EXPECT_EQ(0, fpgen::sum(gen));
144+
CHECK(0 == fpgen::sum(gen));
152145
}
153146

154-
TEST(sum, normal) {
147+
TEST_CASE("Sum over generator") {
155148
auto gen = values();
156-
EXPECT_EQ(calc_sum(), fpgen::sum(gen));
149+
CHECK(calc_sum() == fpgen::sum(gen));
157150
}
158151

159-
TEST(foreach, empty) {
152+
TEST_CASE("Foreach over empty generator") {
160153
auto gen = a_empty();
161154
// gen();
162155
size_t res = 0;
163156
fpgen::foreach (gen, [&res](size_t val) { res += val; });
164-
EXPECT_EQ(res, 0);
157+
CHECK(res == 0);
165158
}
166159

167-
TEST(foreach, normal) {
160+
TEST_CASE("Foreach over non-empty generator") {
168161
auto gen = values();
169162
auto gen2 = values();
170163
size_t res = 0;
171164
fpgen::foreach (gen, [&res](size_t val) { res += val; });
172-
EXPECT_EQ(res, fpgen::sum(gen2));
165+
CHECK(res == fpgen::sum(gen2));
173166
}
174167

175-
TEST(stream, nosep) {
168+
TEST_CASE("Output to stream, no separator") {
176169
std::vector<int> vals = {1, 2, 3, 4, 5, 6};
177170
auto gen = fpgen::from(vals);
178171
std::stringstream strm;
179172
fpgen::to_stream(gen, strm);
180-
EXPECT_EQ(strm.str(), "123456");
173+
CHECK(strm.str() == "123456");
181174
}
182175

183-
TEST(stream, sep) {
176+
TEST_CASE("Output to stream, with separator") {
184177
std::vector<int> vals = {1, 2, 3, 4, 5, 6, 7};
185178
auto gen = fpgen::from(vals);
186179
std::stringstream strm;
187180
fpgen::to_stream(gen, strm, " ");
188-
EXPECT_EQ(strm.str(), "1 2 3 4 5 6 7");
181+
CHECK(strm.str() == "1 2 3 4 5 6 7");
189182
}
190183

191-
TEST(stream, lines_trail) {
184+
TEST_CASE("Output to stream (by lines), with trailing line") {
192185
std::vector<int> vals = {1, 2, 3, 4};
193186
auto gen = fpgen::from(vals);
194187
std::stringstream strm;
195188
std::stringstream expect;
196189
for (auto v : vals)
197190
expect << v << std::endl;
198191
fpgen::to_lines(gen, strm);
199-
EXPECT_EQ(strm.str(), expect.str());
192+
CHECK(strm.str() == expect.str());
200193
}
201194

202-
TEST(stream, lines_no_trail) {
195+
TEST_CASE("Output to stream (by lines), without trailing line") {
203196
std::vector<int> vals = {1, 2, 3, 4};
204197
auto gen = fpgen::from(vals);
205198
std::stringstream strm;
206199
std::stringstream expect;
207200
expect << 1 << std::endl << 2 << std::endl << 3 << std::endl << 4;
208201
fpgen::to_lines_no_trail(gen, strm);
209-
EXPECT_EQ(strm.str(), expect.str());
202+
CHECK(strm.str() == expect.str());
210203
}

test/src/test_chain.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
#include "aggregators.hpp"
2+
#include "doctest/doctest.h"
23
#include "generator.hpp"
34
#include "manipulators.hpp"
45
#include "sources.hpp"
5-
#include "gmock/gmock.h"
6-
#include "gtest/gtest.h"
76

87
using namespace fpgen;
98

@@ -12,7 +11,7 @@ std::ostream &operator<<(std::ostream &in, std::tuple<T1, T2> &other) {
1211
return in << "{ " << std::get<0>(other) << ", " << std::get<1>(other) << " }";
1312
}
1413

15-
TEST(chain, simple_chain) {
14+
TEST_CASE("Simple chain check") {
1615
/*
1716
Chain:
1817
-> [0..] -> [5..] -> [5..13] -> [15...169] \
@@ -27,10 +26,10 @@ TEST(chain, simple_chain) {
2726

2827
size_t value = 5;
2928
for (auto v : zip(gen, second)) {
30-
EXPECT_EQ(value * value, std::get<0>(v));
31-
EXPECT_EQ('a' + 2 + value, std::get<1>(v));
32-
EXPECT_TRUE(value <= 13);
29+
CHECK(value * value == std::get<0>(v));
30+
CHECK('a' + 2 + value == std::get<1>(v));
31+
CHECK(value <= 13);
3332
value++;
3433
}
35-
EXPECT_EQ(value, 14);
34+
CHECK(value == 14);
3635
}

test/src/test_generator.cpp

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1+
#include "doctest/doctest.h"
12
#include "generator.hpp"
2-
#include "gmock/gmock.h"
3-
#include "gtest/gtest.h"
43
#include <iostream>
54

65
fpgen::generator<float> empty() { co_return; }
@@ -20,46 +19,43 @@ fpgen::generator<long> finite_squares(int min, int max) {
2019
co_return; // max *max;
2120
}
2221

23-
TEST(generator, accept_empty_gen) {
24-
auto emptygen = empty();
25-
SUCCEED();
26-
}
22+
TEST_CASE("Generator accepts empty generator") { auto emptygen = empty(); }
2723

28-
TEST(generator, iterator_empty_gen) {
24+
TEST_CASE("Iterator over an empty generator") {
2925
auto gen = empty();
30-
// gen();
3126
for (auto v : gen) {
32-
FAIL();
27+
CHECK(false); // should fail
3328
}
34-
SUCCEED();
3529
}
3630

37-
TEST(generator, can_call_and_continue) {
31+
TEST_CASE("Call-and-continue for a generator") {
3832
auto intgen = infinite();
3933
int value = intgen();
40-
EXPECT_EQ(0, value);
34+
CHECK(0 == value);
4135
value = intgen();
42-
EXPECT_EQ(1, value);
36+
CHECK(1 == value);
4337
}
4438

45-
TEST(generator, can_while_over) {
39+
TEST_CASE("Use while over a generator") {
4640
int value;
4741
int expect = 0;
4842
auto intgen2 = finite_squares(0, 12);
4943
while (intgen2) {
5044
value = intgen2();
51-
EXPECT_THAT(expect, testing::AllOf(testing::Le(12), testing::Ge(0)));
52-
EXPECT_EQ(expect * expect, value);
45+
CHECK(expect <= 12);
46+
CHECK(expect >= 0);
47+
CHECK(expect * expect == value);
5348
expect++;
5449
}
5550
}
5651

57-
TEST(generator, iterator) {
52+
TEST_CASE("Iterate over a generator") {
5853
int expect = -4;
5954
auto intgen3 = finite_squares(-4, 8);
6055
for (auto value : intgen3) {
61-
EXPECT_THAT(expect, testing::AllOf(testing::Le(8), testing::Ge(-4)));
62-
EXPECT_EQ(expect * expect, value);
56+
CHECK(expect <= 8);
57+
CHECK(expect >= -4);
58+
CHECK(expect * expect == value);
6359
expect++;
6460
}
6561
}

0 commit comments

Comments
 (0)