From 7726d64530f82fc9b8ac08f484491335bd7ca2a4 Mon Sep 17 00:00:00 2001 From: Leonetienne Date: Sat, 12 Feb 2022 16:04:48 +0100 Subject: Optimized directory structure --- Test/Replace_Char.cpp | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 Test/Replace_Char.cpp (limited to 'Test/Replace_Char.cpp') diff --git a/Test/Replace_Char.cpp b/Test/Replace_Char.cpp new file mode 100644 index 0000000..72d5622 --- /dev/null +++ b/Test/Replace_Char.cpp @@ -0,0 +1,156 @@ +#include +#include "Catch2.h" + +// Tests that replacing something in an empty string returns an empty string +TEST_CASE(__FILE__"/EmptyString", "[ReplaceChar]") +{ + // Setup + const std::string in = ""; + + // Exercise + const std::string out = StringTools::Replace(in, 'a', "Subst"); + + // Verify + REQUIRE(out == ""); + return; +} + +// Tests that replacing a char to an empty string works +TEST_CASE(__FILE__"/Single_ReplaceToEmpty", "[ReplaceChar]") +{ + // Setup + const std::string in = "i"; + + // Exercise + const std::string out = StringTools::Replace(in, 'i', ""); + + // Verify + REQUIRE(out == ""); + return; +} + +// Tests that replacing to a single char works +TEST_CASE(__FILE__"/Single_ReplaceToSingleChar", "[ReplaceChar]") +{ + // Setup + const std::string in = "a"; + + // Exercise + const std::string out = StringTools::Replace(in, 'a', "i"); + + // Verify + REQUIRE(out == "i"); + return; +} + +// Tests that replacing to a single char works, passing a char +TEST_CASE(__FILE__"/Single_ReplaceToSingleChar_AsChar", "[ReplaceChar]") +{ + // Setup + const std::string in = "Oilbanger"; + + // Exercise + const std::string out = StringTools::Replace(in, 'a', 'i'); + + // Verify + REQUIRE(out == "Oilbinger"); + return; +} + +// Tests that replacing the find to something longer works +TEST_CASE(__FILE__"/Single_ReplaceToLonger", "[ReplaceChar]") +{ + // Setup + const std::string in = "Littled"; + + // Exercise + const std::string out = StringTools::Replace(in, 'd', "binger"); + + // Verify + REQUIRE(out == "Littlebinger"); + return; +} + +// Tests that replacing a char to an empty string works +TEST_CASE(__FILE__"/Multiple_ReplaceToEmpty", "[ReplaceChar]") +{ + // Setup + const std::string in = "dirty dogs dig dirt daringly"; + + // Exercise + const std::string out = StringTools::Replace(in, 'd', ""); + + // Verify + REQUIRE(out == "irty ogs ig irt aringly"); + return; +} + +// Tests that replacing to a single char works +TEST_CASE(__FILE__"/Multiple_ReplaceToSingleChar", "[ReplaceChar]") +{ + // Setup + const std::string in = "Oilbanger, Bangerfanger, Lattle brattle oaly skattle."; + + // Exercise + const std::string out = StringTools::Replace(in, 'a', "i"); + + // Verify + REQUIRE(out == "Oilbinger, Bingerfinger, Little brittle oily skittle."); + return; +} + +// Tests that replacing to a single char works, passing a char +TEST_CASE(__FILE__"/Multiple_ReplaceToSingleChar_AsChar", "[ReplaceChar]") +{ + // Setup + const std::string in = "Oilbanger, Bangerfanger, Lattle brattle oaly skattle."; + + // Exercise + const std::string out = StringTools::Replace(in, 'a', 'i'); + + // Verify + REQUIRE(out == "Oilbinger, Bingerfinger, Little brittle oily skittle."); + return; +} + +// Tests that replacing the find to something longer works +TEST_CASE(__FILE__"/Multiple_ReplaceToLonger", "[ReplaceChar]") +{ + // Setup + const std::string in = "d d d d d d d d"; + + // Exercise + const std::string out = StringTools::Replace(in, 'd', "bla"); + + // Verify + REQUIRE(out == "bla bla bla bla bla bla bla bla"); + return; +} + +// Tests that the replacer ignores chars put in by the replacer +TEST_CASE(__FILE__"/ReplacerIgnoresReplaced", "[ReplaceChar]") +{ + // Setup + const std::string in = "b b b b b b b b"; + + // Exercise + const std::string out = StringTools::Replace(in, 'b', "bla"); + + // Verify + REQUIRE(out == "bla bla bla bla bla bla bla bla"); + return; +} + +// Tests that replacing succesive findings works +TEST_CASE(__FILE__"/Replace_Successive", "[ReplaceChar]") +{ + // Setup + const std::string in = "bbbbbbbb"; + + // Exercise + const std::string out = StringTools::Replace(in, 'b', "bla"); + + // Verify + REQUIRE(out == "blablablablablablablabla"); + return; +} -- cgit v1.2.3