-TEST(StringGen, Resplit) {
- auto collect = eachTo<std::string>() | as<vector>();
- {
- auto pieces = from({"hello,, world, goodbye, meow"}) |
- resplit(',') | collect;
- EXPECT_EQ(5, pieces.size());
- EXPECT_EQ("hello", pieces[0]);
- EXPECT_EQ("", pieces[1]);
- EXPECT_EQ(" world", pieces[2]);
- EXPECT_EQ(" goodbye", pieces[3]);
- EXPECT_EQ(" meow", pieces[4]);
- }
- {
- auto pieces = from({"hel", "lo,", ", world", ", goodbye, m", "eow"}) |
- resplit(',') | collect;
- EXPECT_EQ(5, pieces.size());
- EXPECT_EQ("hello", pieces[0]);
- EXPECT_EQ("", pieces[1]);
- EXPECT_EQ(" world", pieces[2]);
- EXPECT_EQ(" goodbye", pieces[3]);
- EXPECT_EQ(" meow", pieces[4]);
- }
-}
-
-TEST(StringGen, ResplitKeepDelimiter) {
- auto collect = eachTo<std::string>() | as<vector>();
- {
- auto pieces =
- from({"hello,, world, goodbye, meow"}) | resplit(',', true) | collect;
- ASSERT_EQ(5, pieces.size());
- EXPECT_EQ("hello,", pieces[0]);
- EXPECT_EQ(",", pieces[1]);
- EXPECT_EQ(" world,", pieces[2]);
- EXPECT_EQ(" goodbye,", pieces[3]);
- EXPECT_EQ(" meow", pieces[4]);
- }
- {
- auto pieces = from({"hel", "lo,", ", world", ", goodbye, m", "eow"}) |
- resplit(',', true) | collect;
- ASSERT_EQ(5, pieces.size());
- EXPECT_EQ("hello,", pieces[0]);
- EXPECT_EQ(",", pieces[1]);
- EXPECT_EQ(" world,", pieces[2]);
- EXPECT_EQ(" goodbye,", pieces[3]);
- EXPECT_EQ(" meow", pieces[4]);
- }
-}
-