Download build/_deps/catch2-src/projects/SelfTest/IntrospectiveTests/StringManip.tests.cpp from camenduru/thrust: direct link, hf CLI and curl.
- Browser
- Download file 2.86 kB
-
https://huggingface.co/camenduru/thrust/resolve/main/build/_deps/catch2-src/projects/SelfTest/IntrospectiveTests/StringManip.tests.cpp
- Command line
-
hf download hf://camenduru/thrust/build/_deps/catch2-src/projects/SelfTest/IntrospectiveTests/StringManip.tests.cpp
-
curl -L -o StringManip.tests.cpp https://huggingface.co/camenduru/thrust/resolve/main/build/_deps/catch2-src/projects/SelfTest/IntrospectiveTests/StringManip.tests.cpp
2.86 kB
| static const char * const no_whitespace = "There is no extra whitespace here"; | |
| static const char * const leading_whitespace = " \r \t\n There is no extra whitespace here"; | |
| static const char * const trailing_whitespace = "There is no extra whitespace here \t \n \r "; | |
| static const char * const whitespace_at_both_ends = " \r\n \t There is no extra whitespace here \t\t\t \n"; | |
| TEST_CASE("Trim strings", "[string-manip]") { | |
| using Catch::trim; using Catch::StringRef; | |
| static_assert(std::is_same<std::string, decltype(trim(std::string{}))>::value, "Trimming std::string should return std::string"); | |
| static_assert(std::is_same<StringRef, decltype(trim(StringRef{}))>::value, "Trimming StringRef should return StringRef"); | |
| REQUIRE(trim(std::string(no_whitespace)) == no_whitespace); | |
| REQUIRE(trim(std::string(leading_whitespace)) == no_whitespace); | |
| REQUIRE(trim(std::string(trailing_whitespace)) == no_whitespace); | |
| REQUIRE(trim(std::string(whitespace_at_both_ends)) == no_whitespace); | |
| REQUIRE(trim(StringRef(no_whitespace)) == StringRef(no_whitespace)); | |
| REQUIRE(trim(StringRef(leading_whitespace)) == StringRef(no_whitespace)); | |
| REQUIRE(trim(StringRef(trailing_whitespace)) == StringRef(no_whitespace)); | |
| REQUIRE(trim(StringRef(whitespace_at_both_ends)) == StringRef(no_whitespace)); | |
| } | |
| TEST_CASE("replaceInPlace", "[string-manip]") { | |
| std::string letters = "abcdefcg"; | |
| SECTION("replace single char") { | |
| CHECK(Catch::replaceInPlace(letters, "b", "z")); | |
| CHECK(letters == "azcdefcg"); | |
| } | |
| SECTION("replace two chars") { | |
| CHECK(Catch::replaceInPlace(letters, "c", "z")); | |
| CHECK(letters == "abzdefzg"); | |
| } | |
| SECTION("replace first char") { | |
| CHECK(Catch::replaceInPlace(letters, "a", "z")); | |
| CHECK(letters == "zbcdefcg"); | |
| } | |
| SECTION("replace last char") { | |
| CHECK(Catch::replaceInPlace(letters, "g", "z")); | |
| CHECK(letters == "abcdefcz"); | |
| } | |
| SECTION("replace all chars") { | |
| CHECK(Catch::replaceInPlace(letters, letters, "replaced")); | |
| CHECK(letters == "replaced"); | |
| } | |
| SECTION("replace no chars") { | |
| CHECK_FALSE(Catch::replaceInPlace(letters, "x", "z")); | |
| CHECK(letters == letters); | |
| } | |
| SECTION("escape '") { | |
| std::string s = "didn't"; | |
| CHECK(Catch::replaceInPlace(s, "'", "|'")); | |
| CHECK(s == "didn|'t"); | |
| } | |
| } | |
| TEST_CASE("splitString", "[string-manip]") { | |
| using namespace Catch::Matchers; | |
| using Catch::splitStringRef; | |
| using Catch::StringRef; | |
| CHECK_THAT(splitStringRef("", ','), Equals(std::vector<StringRef>())); | |
| CHECK_THAT(splitStringRef("abc", ','), Equals(std::vector<StringRef>{"abc"})); | |
| CHECK_THAT(splitStringRef("abc,def", ','), Equals(std::vector<StringRef>{"abc", "def"})); | |
| } | |