2023-12-18 10:16:31 +00:00
|
|
|
#include "String.h"
|
2022-12-05 17:50:49 +00:00
|
|
|
|
|
|
|
#include "TestFramework.h"
|
2023-12-18 10:16:31 +00:00
|
|
|
//#include "TestUtils.h"
|
|
|
|
#include <iostream>
|
2022-12-05 17:50:49 +00:00
|
|
|
|
2023-12-20 16:58:22 +00:00
|
|
|
TEST_CASE(String_Append, "core")
|
2023-12-18 10:16:31 +00:00
|
|
|
{
|
|
|
|
String str;
|
|
|
|
str += 'a';
|
|
|
|
str += 'b';
|
|
|
|
str += 'c';
|
|
|
|
str += 'd';
|
|
|
|
REQUIRE(str == "abcd");
|
2023-12-20 16:58:22 +00:00
|
|
|
String long_string("abc/def/ghi/jkl");
|
2023-12-18 10:16:31 +00:00
|
|
|
}
|
|
|
|
|
2023-12-20 16:58:22 +00:00
|
|
|
TEST_CASE(String_Reverse, "core")
|
2023-12-18 10:16:31 +00:00
|
|
|
{
|
|
|
|
String str0;
|
|
|
|
str0.reverse();
|
|
|
|
REQUIRE(str0.empty());
|
|
|
|
|
|
|
|
String str1("a");
|
|
|
|
str1.reverse();
|
|
|
|
REQUIRE(str1 == "a");
|
|
|
|
|
|
|
|
String str2("ab");
|
|
|
|
str2.reverse();
|
|
|
|
REQUIRE(str2 == "ba");
|
|
|
|
|
|
|
|
String str3("abc");
|
|
|
|
str3.reverse();
|
|
|
|
REQUIRE(str3 == "cba");
|
|
|
|
|
|
|
|
String str4("abcd");
|
|
|
|
str4.reverse();
|
|
|
|
REQUIRE(str4 == "dcba");
|
|
|
|
}
|
|
|
|
|
2023-12-20 16:58:22 +00:00
|
|
|
TEST_CASE(String_Extend, "core")
|
|
|
|
{
|
|
|
|
String str("/home/jgrogan/code/compilz/src/src");
|
|
|
|
auto str_cpy = str;
|
|
|
|
str += "/";
|
|
|
|
str += "test";
|
|
|
|
REQUIRE(str == String("/home/jgrogan/code/compilz/src/src/test"));
|
|
|
|
|
|
|
|
str_cpy += "/";
|
|
|
|
str_cpy += "test";
|
|
|
|
REQUIRE(str == str_cpy);
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_CASE(String_Slice, "core")
|
|
|
|
{
|
|
|
|
String str("test.dat");
|
|
|
|
const auto rindex = str.rindex('.');
|
|
|
|
REQUIRE(rindex.valid());
|
|
|
|
REQUIRE(rindex.value() == 4);
|
|
|
|
|
|
|
|
String right;
|
|
|
|
str.slice(rindex.value(), str.size(), right);
|
|
|
|
REQUIRE(right == ".dat");
|
|
|
|
|
|
|
|
const auto split = str.rsplit('.');
|
|
|
|
REQUIRE(split.first() == "test");
|
|
|
|
REQUIRE(split.second() == "dat");
|
|
|
|
}
|
|
|
|
|
2023-12-18 10:16:31 +00:00
|
|
|
/*
|
2022-12-06 18:02:43 +00:00
|
|
|
TEST_CASE(TestStringUtils_StripSurroundingWhitepsace, "core")
|
2022-12-05 17:50:49 +00:00
|
|
|
{
|
2023-12-21 09:18:44 +00:00
|
|
|
String input = " super() ";
|
|
|
|
String stripped = StringUtils::stripSurroundingWhitepsace(input);
|
2022-12-06 18:02:43 +00:00
|
|
|
REQUIRE(stripped == "super()");
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_CASE(TestStringUtils_RemoveUpTo, "core")
|
|
|
|
{
|
2023-12-21 09:18:44 +00:00
|
|
|
String input = "def{filename}abc/123/456";
|
|
|
|
String removed = StringUtils::removeUpTo(input, "{filename}");
|
2022-12-06 18:02:43 +00:00
|
|
|
REQUIRE(removed == "abc/123/456");
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_CASE(TestStringUtils_startsWith, "core")
|
|
|
|
{
|
2023-12-21 09:18:44 +00:00
|
|
|
String input = " ```some triple ticks ";
|
2022-12-06 18:02:43 +00:00
|
|
|
bool ignore_whitespace{false};
|
|
|
|
auto starts_with = StringUtils::startsWith(input, "```", ignore_whitespace);
|
|
|
|
REQUIRE(!starts_with);
|
2022-12-05 17:50:49 +00:00
|
|
|
|
2022-12-06 18:02:43 +00:00
|
|
|
ignore_whitespace = true;
|
|
|
|
starts_with = StringUtils::startsWith(input, "```", ignore_whitespace);
|
|
|
|
REQUIRE(starts_with);
|
2022-12-05 17:50:49 +00:00
|
|
|
}
|
2023-12-18 10:16:31 +00:00
|
|
|
|
|
|
|
*/
|