mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 21:00:17 +02:00
110 lines
4.4 KiB
C++
110 lines
4.4 KiB
C++
#include <catch2/catch_test_macros.hpp>
|
|
#include <FEXCore/Utils/StringUtils.h>
|
|
|
|
using namespace FEXCore::StringUtils;
|
|
|
|
TEST_CASE("ltrim") {
|
|
CHECK(LeftTrim("") == "");
|
|
CHECK(LeftTrim(" ") == "");
|
|
CHECK(LeftTrim(" \t\n\r\f\v") == "");
|
|
CHECK(LeftTrim("FEXInterpreter") == "FEXInterpreter");
|
|
|
|
CHECK(LeftTrim("FEXInterpreter\n") == "FEXInterpreter\n");
|
|
CHECK(LeftTrim("FEXInterpreter\r") == "FEXInterpreter\r");
|
|
CHECK(LeftTrim("FEXInterpreter\f") == "FEXInterpreter\f");
|
|
CHECK(LeftTrim("FEXInterpreter\t") == "FEXInterpreter\t");
|
|
CHECK(LeftTrim("FEXInterpreter\v") == "FEXInterpreter\v");
|
|
CHECK(LeftTrim("FEXInterpreter ") == "FEXInterpreter ");
|
|
|
|
CHECK(LeftTrim("\nFEXInterpreter") == "FEXInterpreter");
|
|
CHECK(LeftTrim("\rFEXInterpreter") == "FEXInterpreter");
|
|
CHECK(LeftTrim("\fFEXInterpreter") == "FEXInterpreter");
|
|
CHECK(LeftTrim("\tFEXInterpreter") == "FEXInterpreter");
|
|
CHECK(LeftTrim("\vFEXInterpreter") == "FEXInterpreter");
|
|
CHECK(LeftTrim(" FEXInterpreter") == "FEXInterpreter");
|
|
|
|
CHECK(LeftTrim("\nFEXInterpreter\n") == "FEXInterpreter\n");
|
|
CHECK(LeftTrim("\rFEXInterpreter\r") == "FEXInterpreter\r");
|
|
CHECK(LeftTrim("\fFEXInterpreter\f") == "FEXInterpreter\f");
|
|
CHECK(LeftTrim("\tFEXInterpreter\t") == "FEXInterpreter\t");
|
|
CHECK(LeftTrim("\vFEXInterpreter\v") == "FEXInterpreter\v");
|
|
CHECK(LeftTrim(" FEXInterpreter ") == "FEXInterpreter ");
|
|
}
|
|
|
|
TEST_CASE("rtrim") {
|
|
CHECK(RightTrim("") == "");
|
|
CHECK(RightTrim(" ") == "");
|
|
CHECK(RightTrim(" \t\n\r\f\v") == "");
|
|
CHECK(RightTrim("FEXInterpreter") == "FEXInterpreter");
|
|
|
|
CHECK(RightTrim("FEXInterpreter\n") == "FEXInterpreter");
|
|
CHECK(RightTrim("FEXInterpreter\r") == "FEXInterpreter");
|
|
CHECK(RightTrim("FEXInterpreter\f") == "FEXInterpreter");
|
|
CHECK(RightTrim("FEXInterpreter\t") == "FEXInterpreter");
|
|
CHECK(RightTrim("FEXInterpreter\v") == "FEXInterpreter");
|
|
CHECK(RightTrim("FEXInterpreter ") == "FEXInterpreter");
|
|
|
|
CHECK(RightTrim("\nFEXInterpreter") == "\nFEXInterpreter");
|
|
CHECK(RightTrim("\rFEXInterpreter") == "\rFEXInterpreter");
|
|
CHECK(RightTrim("\fFEXInterpreter") == "\fFEXInterpreter");
|
|
CHECK(RightTrim("\tFEXInterpreter") == "\tFEXInterpreter");
|
|
CHECK(RightTrim("\vFEXInterpreter") == "\vFEXInterpreter");
|
|
CHECK(RightTrim(" FEXInterpreter") == " FEXInterpreter");
|
|
|
|
CHECK(RightTrim("\nFEXInterpreter\n") == "\nFEXInterpreter");
|
|
CHECK(RightTrim("\rFEXInterpreter\r") == "\rFEXInterpreter");
|
|
CHECK(RightTrim("\fFEXInterpreter\f") == "\fFEXInterpreter");
|
|
CHECK(RightTrim("\tFEXInterpreter\t") == "\tFEXInterpreter");
|
|
CHECK(RightTrim("\vFEXInterpreter\v") == "\vFEXInterpreter");
|
|
CHECK(RightTrim(" FEXInterpreter ") == " FEXInterpreter");
|
|
}
|
|
|
|
TEST_CASE("trim") {
|
|
CHECK(Trim("") == "");
|
|
CHECK(Trim(" ") == "");
|
|
CHECK(Trim(" \t\n\r\f\v") == "");
|
|
CHECK(Trim("FEXInterpreter") == "FEXInterpreter");
|
|
|
|
CHECK(Trim("FEXInterpreter\n") == "FEXInterpreter");
|
|
CHECK(Trim("FEXInterpreter\r") == "FEXInterpreter");
|
|
CHECK(Trim("FEXInterpreter\f") == "FEXInterpreter");
|
|
CHECK(Trim("FEXInterpreter\t") == "FEXInterpreter");
|
|
CHECK(Trim("FEXInterpreter\v") == "FEXInterpreter");
|
|
CHECK(Trim("FEXInterpreter ") == "FEXInterpreter");
|
|
|
|
CHECK(Trim("\nFEXInterpreter") == "FEXInterpreter");
|
|
CHECK(Trim("\rFEXInterpreter") == "FEXInterpreter");
|
|
CHECK(Trim("\fFEXInterpreter") == "FEXInterpreter");
|
|
CHECK(Trim("\tFEXInterpreter") == "FEXInterpreter");
|
|
CHECK(Trim("\vFEXInterpreter") == "FEXInterpreter");
|
|
CHECK(Trim(" FEXInterpreter") == "FEXInterpreter");
|
|
|
|
CHECK(Trim("\nFEXInterpreter\n") == "FEXInterpreter");
|
|
CHECK(Trim("\rFEXInterpreter\r") == "FEXInterpreter");
|
|
CHECK(Trim("\fFEXInterpreter\f") == "FEXInterpreter");
|
|
CHECK(Trim("\tFEXInterpreter\t") == "FEXInterpreter");
|
|
CHECK(Trim("\vFEXInterpreter\v") == "FEXInterpreter");
|
|
CHECK(Trim(" FEXInterpreter ") == "FEXInterpreter");
|
|
}
|
|
|
|
TEST_CASE("InPlaceReplace") {
|
|
auto ReplaceAll = [](fextl::string Str, auto Token, auto New) {
|
|
ReplaceAllInPlace(Str, Token, New);
|
|
return Str;
|
|
};
|
|
CHECK(ReplaceAll("", "@", "#") == "");
|
|
// Replace with shorter.
|
|
CHECK(ReplaceAll("@Test@", "@Test@", "Yes") == "Yes");
|
|
CHECK(ReplaceAll("@Test@@Test@", "@Test@", "Yes") == "YesYes");
|
|
|
|
// Replace with longer.
|
|
CHECK(ReplaceAll("@Test@", "@Test@", "ThisOne") == "ThisOne");
|
|
CHECK(ReplaceAll("@Test@@Test@", "@Test@", "ThisOne") == "ThisOneThisOne");
|
|
|
|
// Replace token with more tokens.
|
|
CHECK(ReplaceAll("@@@", "@", "@@") == "@@@@@@");
|
|
|
|
// Remove tokens.
|
|
CHECK(ReplaceAll("@@@", "@", "") == "");
|
|
}
|