|
6 | 6 | #include "gtest/gtest.h" |
7 | 7 |
|
8 | 8 | #include <map> |
| 9 | +#include <sstream> |
9 | 10 | #include <vector> |
10 | 11 |
|
11 | 12 | fpgen::generator<size_t> a_empty() { co_return; } |
@@ -170,3 +171,40 @@ TEST(foreach, normal) { |
170 | 171 | fpgen::foreach (gen, [&res](size_t val) { res += val; }); |
171 | 172 | EXPECT_EQ(res, fpgen::sum(gen2)); |
172 | 173 | } |
| 174 | + |
| 175 | +TEST(stream, nosep) { |
| 176 | + std::vector<int> vals = {1, 2, 3, 4, 5, 6}; |
| 177 | + auto gen = fpgen::from(vals); |
| 178 | + std::stringstream strm; |
| 179 | + fpgen::to_stream(gen, strm); |
| 180 | + EXPECT_EQ(strm.str(), "123456"); |
| 181 | +} |
| 182 | + |
| 183 | +TEST(stream, sep) { |
| 184 | + std::vector<int> vals = {1, 2, 3, 4, 5, 6, 7}; |
| 185 | + auto gen = fpgen::from(vals); |
| 186 | + std::stringstream strm; |
| 187 | + fpgen::to_stream(gen, strm, " "); |
| 188 | + EXPECT_EQ(strm.str(), "1 2 3 4 5 6 7"); |
| 189 | +} |
| 190 | + |
| 191 | +TEST(stream, lines_trail) { |
| 192 | + std::vector<int> vals = {1, 2, 3, 4}; |
| 193 | + auto gen = fpgen::from(vals); |
| 194 | + std::stringstream strm; |
| 195 | + std::stringstream expect; |
| 196 | + for (auto v : vals) |
| 197 | + expect << v << std::endl; |
| 198 | + fpgen::to_lines(gen, strm); |
| 199 | + EXPECT_EQ(strm.str(), expect.str()); |
| 200 | +} |
| 201 | + |
| 202 | +TEST(stream, lines_no_trail) { |
| 203 | + std::vector<int> vals = {1, 2, 3, 4}; |
| 204 | + auto gen = fpgen::from(vals); |
| 205 | + std::stringstream strm; |
| 206 | + std::stringstream expect; |
| 207 | + expect << 1 << std::endl << 2 << std::endl << 3 << std::endl << 4; |
| 208 | + fpgen::to_lines_no_trail(gen, strm); |
| 209 | + EXPECT_EQ(strm.str(), expect.str()); |
| 210 | +} |
0 commit comments