Added tests for char tools
This commit is contained in:
69
Test/Char__CopySign.cpp
Normal file
69
Test/Char__CopySign.cpp
Normal file
@@ -0,0 +1,69 @@
|
||||
#include <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);
|
||||
}
|
||||
Reference in New Issue
Block a user