aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/words.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/words.cc b/tests/words.cc
index ff1d854..bfe61b9 100644
--- a/tests/words.cc
+++ b/tests/words.cc
@@ -40,6 +40,39 @@ TEST_CASE(charsep) {
ATF_REQUIRE_EQ("baz", vec[2]);
}
+TEST_CASE(as_view) {
+ auto vec = "foo bar baz"s
+ | words()
+ | std::ranges::to<std::vector>();
+
+ ATF_REQUIRE_EQ(vec.size(), 3);
+ ATF_REQUIRE_EQ("foo", vec[0]);
+ ATF_REQUIRE_EQ("bar", vec[1]);
+ ATF_REQUIRE_EQ("baz", vec[2]);
+}
+
+TEST_CASE(as_view_char) {
+ auto vec = "foo*bar*baz"s
+ | words('*')
+ | std::ranges::to<std::vector>();
+
+ ATF_REQUIRE_EQ(vec.size(), 3);
+ ATF_REQUIRE_EQ("foo", vec[0]);
+ ATF_REQUIRE_EQ("bar", vec[1]);
+ ATF_REQUIRE_EQ("baz", vec[2]);
+}
+
+TEST_CASE(as_view_pred) {
+ auto vec = "foo bar baz"s
+ | words(is_c_space)
+ | std::ranges::to<std::vector>();
+
+ ATF_REQUIRE_EQ(vec.size(), 3);
+ ATF_REQUIRE_EQ("foo", vec[0]);
+ ATF_REQUIRE_EQ("bar", vec[1]);
+ ATF_REQUIRE_EQ("baz", vec[2]);
+}
+
TEST_CASE(empty) {
auto vec = words(""s) | std::ranges::to<std::vector>();
@@ -107,6 +140,9 @@ TEST_CASE(trailing_whitespace) {
ATF_INIT_TEST_CASES(tcs) {
ATF_ADD_TEST_CASE(tcs, basic);
ATF_ADD_TEST_CASE(tcs, charsep);
+ ATF_ADD_TEST_CASE(tcs, as_view);
+ ATF_ADD_TEST_CASE(tcs, as_view_pred);
+ ATF_ADD_TEST_CASE(tcs, as_view_char);
ATF_ADD_TEST_CASE(tcs, empty);
ATF_ADD_TEST_CASE(tcs, temporary);
ATF_ADD_TEST_CASE(tcs, range_for);