diff options
Diffstat (limited to 'StringTools/test/Char__CopySign.cpp')
| -rw-r--r-- | StringTools/test/Char__CopySign.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/StringTools/test/Char__CopySign.cpp b/StringTools/test/Char__CopySign.cpp new file mode 100644 index 0000000..177e718 --- /dev/null +++ b/StringTools/test/Char__CopySign.cpp @@ -0,0 +1,69 @@ +#include <StringTools/CharTools.h> +#include "Catch2.h" + +TEST_CASE(__FILE__"/JustChars", "[Char][CopySign]") +{ + // Setup + // Correct letters + const std::string in = "tHEEuEUROPEanunioNCOnsiStsOFStATESIncLudingGERmanySWedenAndfRanCE"; + // Correct signs + const std::string signs = "AaaAAApqlkzicZnionceroigjreiojiopjaopickwapPjfipojWqfpohoijFucmwp"; + // Correct signs and letters + const std::string expected = "TheEUEuropeanUnionconsistsofstatesincludingGermanySwedenandFrance"; + + // Exercise + std::string out = in; + for (std::size_t i = 0; i < in.size(); i++) + { + const char cs = signs[i]; + char& co = out[i]; + co = CharTools::CopySign(cs, co); + } + + // Verify: + REQUIRE(out == expected); +} + +TEST_CASE(__FILE__"/WithSymbols", "[Char][CopySign]") +{ + // Setup + // Correct letters + const std::string in = "ThE eu (euRoPeAN uNIon) cONsiSts Of 20 STAtes, iNCLUDInG GeRMAnY, sweden, aND fRancE."; + // Correct signs + const std::string signs = "DwefOPerKofkaqdioJeriofgjqeiopqwqefijoqgehjloivxcvmopfkuoQpwfioqjiOqgjeprjgnvqPemrqij"; + // Correct signs and letters + const std::string expected = "The EU (European Union) consists of 20 states, including Germany, Sweden, and France."; + + // Exercise + std::string out = in; + for (std::size_t i = 0; i < in.size(); i++) + { + const char cs = signs[i]; + char& co = out[i]; + co = CharTools::CopySign(cs, co); + } + + // Verify: + REQUIRE(out == expected); +} + +TEST_CASE(__FILE__"/DoesntChangeSignsIfSymbolSupplied", "[Char][CopySign]") +{ + // Setup + const std::string in = "ThE eu (euRoPeAN uNIon) cONsiSts Of 20 STAtes, iNCLUDInG GeRMAnY, sweden, aND fRancE."; + const std::string signs = "!§$)=%164)';:'*?)/!?/&()()?)*'_;:_,.93ß04750928372!!$==)()/!§$)=%)*'';:'*?)/!1572?/&("; + const std::string expected = in; + + // Exercise + std::string out = in; + for (std::size_t i = 0; i < in.size(); i++) + { + const char cs = signs[i]; + + char& co = out[i]; + co = CharTools::CopySign(cs, co); + } + + // Verify: + REQUIRE(out == expected); +} |
