Added more unit tests for String insert and join.

This commit is contained in:
Mika Viskari 2024-08-29 20:05:44 +03:00
parent fd7239cfab
commit 3153e9afda
1 changed files with 28 additions and 3 deletions

View File

@ -433,6 +433,19 @@ TEST_CASE("[String] Insertion") {
String s = "Who is Frederic?"; String s = "Who is Frederic?";
s = s.insert(s.find("?"), " Chopin"); s = s.insert(s.find("?"), " Chopin");
CHECK(s == "Who is Frederic Chopin?"); CHECK(s == "Who is Frederic Chopin?");
s = "foobar";
CHECK(s.insert(0, "X") == "Xfoobar");
CHECK(s.insert(-100, "X") == "foobar");
CHECK(s.insert(6, "X") == "foobarX");
CHECK(s.insert(100, "X") == "foobarX");
CHECK(s.insert(2, "") == "foobar");
s = "";
CHECK(s.insert(0, "abc") == "abc");
CHECK(s.insert(100, "abc") == "abc");
CHECK(s.insert(-100, "abc") == "");
CHECK(s.insert(0, "") == "");
} }
TEST_CASE("[String] Erasing") { TEST_CASE("[String] Erasing") {
@ -1811,13 +1824,25 @@ TEST_CASE("[String] SHA1/SHA256/MD5") {
} }
TEST_CASE("[String] Join") { TEST_CASE("[String] Join") {
String s = ", "; String comma = ", ";
String empty = "";
Vector<String> parts; Vector<String> parts;
CHECK(comma.join(parts) == "");
CHECK(empty.join(parts) == "");
parts.push_back("One"); parts.push_back("One");
CHECK(comma.join(parts) == "One");
CHECK(empty.join(parts) == "One");
parts.push_back("B"); parts.push_back("B");
parts.push_back("C"); parts.push_back("C");
String t = s.join(parts); CHECK(comma.join(parts) == "One, B, C");
CHECK(t == "One, B, C"); CHECK(empty.join(parts) == "OneBC");
parts.push_back("");
CHECK(comma.join(parts) == "One, B, C, ");
CHECK(empty.join(parts) == "OneBC");
} }
TEST_CASE("[String] Is_*") { TEST_CASE("[String] Is_*") {