summaryrefslogtreecommitdiffstats
path: root/src/base/intern_string.tests.cc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/base/intern_string.tests.cc44
1 files changed, 39 insertions, 5 deletions
diff --git a/src/base/intern_string.tests.cc b/src/base/intern_string.tests.cc
index 8816803..71ff7c2 100644
--- a/src/base/intern_string.tests.cc
+++ b/src/base/intern_string.tests.cc
@@ -43,6 +43,15 @@ TEST_CASE("string_fragment::startswith")
CHECK_FALSE(sf.startswith("abc"));
}
+TEST_CASE("string_fragment::lt")
+{
+ auto sf1 = string_fragment::from_const("abc");
+ auto sf2 = string_fragment::from_const("abcdef");
+
+ CHECK(sf1 < sf2);
+ CHECK_FALSE(sf2 < sf1);
+}
+
TEST_CASE("split_lines")
{
std::string in1 = "Hello, World!";
@@ -129,6 +138,12 @@ TEST_CASE("find_left_boundary")
auto world_sf = sf.find_left_boundary(
in1.length() - 3, [](auto ch) { return ch == '\n'; });
CHECK(world_sf.to_string() == "World!\n");
+ auto world_sf2 = sf.find_left_boundary(
+ in1.length() - 3, [](auto ch) { return ch == '\n'; }, 2);
+ CHECK(world_sf2.to_string() == "Hello,\nWorld!\n");
+ auto world_sf3 = sf.find_left_boundary(
+ in1.length() - 3, [](auto ch) { return ch == '\n'; }, 3);
+ CHECK(world_sf3.to_string() == "Hello,\nWorld!\n");
auto full_sf
= sf.find_left_boundary(3, [](auto ch) { return ch == '\n'; });
CHECK(full_sf.to_string() == in1);
@@ -137,16 +152,35 @@ TEST_CASE("find_left_boundary")
TEST_CASE("find_right_boundary")
{
- std::string in1 = "Hello,\nWorld!\n";
-
{
- auto sf = string_fragment{in1};
+ const auto sf = string_fragment::from_const("Hello,\nWorld!\n");
- auto world_sf = sf.find_right_boundary(
- in1.length() - 3, [](auto ch) { return ch == '\n'; });
+ auto world_sf = sf.find_right_boundary(sf.length() - 3,
+ string_fragment::tag1{'\n'});
CHECK(world_sf.to_string() == "Hello,\nWorld!");
auto hello_sf
= sf.find_right_boundary(3, [](auto ch) { return ch == '\n'; });
CHECK(hello_sf.to_string() == "Hello,");
+ auto hello_sf2
+ = sf.find_right_boundary(3, string_fragment::tag1{'\n'}, 2);
+ CHECK(hello_sf2.to_string() == "Hello,\nWorld!");
+ }
+}
+
+TEST_CASE("find_boundaries_around")
+{
+ {
+ const auto sf = string_fragment::from_const(
+ R"(Hello,
+World!
+Goodbye,
+World!)");
+
+ auto all_sf1
+ = sf.find_boundaries_around(3, string_fragment::tag1{'\n'});
+ CHECK(all_sf1 == "Hello,");
+ auto all_sf2
+ = sf.find_boundaries_around(3, string_fragment::tag1{'\n'}, 2);
+ CHECK(all_sf2 == "Hello,\nWorld!");
}
}