#include "util.h" #include "test.h" using namespace mrbesen::util; int testUtil_Count() { std::string test1 = "ababababa"; std::string a; ASSERT(count(test1, 'a') == 5, ""); ASSERT(count(test1, 'b') == 4, ""); ASSERT(count("", 'a') == 0, ""); ASSERT(count("abcdef", 'g') == 0, ""); return TESTGOOD; } int testUtil_equalsIgnoreCase() { std::string a = "abcdefg"; std::string b = "AbCdEHI"; std::string c = "AbCdEHIJ"; std::string d = "aBcDeFg"; ASSERT(!equalsIgnoreCase(a, b), ""); ASSERT(!equalsIgnoreCase(a, b, 10000), ""); ASSERT(equalsIgnoreCase(a, b, 0), ""); ASSERT(equalsIgnoreCase(a, b, 5), ""); ASSERT(!equalsIgnoreCase(a, b, 6), ""); ASSERT(!equalsIgnoreCase(a, b, 7), ""); ASSERT(!equalsIgnoreCase(a, b, 8), ""); //eins länger als die strings sind ASSERT(!equalsIgnoreCase(a, c, 8), ""); ASSERT(equalsIgnoreCase(a, c, 5), ""); ASSERT(equalsIgnoreCase(a, d), ""); return TESTGOOD; } int testUtil_toLower() { std::string a = "abc"; std::string out; toLower(a, out); ASSERT(out == a, ""); toLower("", out); ASSERT(out == "", ""); toLower("ABC", out); ASSERT(out == a, ""); toLower("123", out); ASSERT(out == "123", ""); toLower("._:DAd-", out); ASSERT(out == "._:dad-", ""); //inplace testen toLower(a, a); ASSERT(a == "abc", ""); a = "ABC"; toLower(a); ASSERT(a == "abc", ""); return TESTGOOD; } int testUtil_start_endWith() { std::string a = "abcdefghijklm"; ASSERT(startsWith(a, ""), ""); ASSERT(startsWith(a, "a"), ""); ASSERT(!startsWith(a, "b"), ""); ASSERT(!startsWith(a, "abcdefghijklmn"), ""); ASSERT(!startsWith(a, "abcdefhhijklm"), ""); ASSERT(startsWith(a, a), ""); ASSERT(endsWith(a, ""), ""); ASSERT(endsWith(a, "m"), ""); ASSERT(!endsWith(a, "n"), ""); ASSERT(!endsWith(a, "abcdefghijklmn"), ""); ASSERT(!endsWith(a, "abcdefhhijklm"), ""); ASSERT(endsWith(a, a), ""); return TESTGOOD; } int testUtil_removeStart_End() { std::string a = "abcdefg"; ASSERT(!removeStart(a, ""), ""); ASSERT(a == "abcdefg", ""); ASSERT(!removeStart(a, "b"), ""); ASSERT(a == "abcdefg", ""); ASSERT(removeStart(a, "a"), ""); ASSERT(a == "bcdefg", ""); ASSERT(removeStart(a, "bcd"), ""); ASSERT(a == "efg", ""); ASSERT(!removeEnd(a, "xyz"), ""); ASSERT(a == "efg", ""); ASSERT(!removeEnd(a, ""), ""); ASSERT(a == "efg", ""); ASSERT(removeEnd(a, "fg"), ""); ASSERT(a == "e", ""); ASSERT(removeEnd(a, "e"), ""); ASSERT(a == "", ""); return TESTGOOD; } int testUtil_insertStart_End() { std::string a = ""; ASSERT(!insertStart(a, ""), ""); ASSERT(a == "", a); ASSERT(insertStart(a, "abc"), ""); ASSERT(a == "abc", a); ASSERT(!insertStart(a, "a"), ""); ASSERT(a == "abc", a); ASSERT(insertStart(a, "bc"), ""); ASSERT(a == "bcabc", a); ASSERT(!insertStart(a, ""), ""); ASSERT(a == "bcabc", a); ASSERT(!insertEnd(a, ""), ""); ASSERT(a == "bcabc", a); ASSERT(!insertEnd(a, "bc"), ""); ASSERT(a == "bcabc", a); ASSERT(insertEnd(a, "def"), ""); ASSERT(a == "bcabcdef", a); return TESTGOOD; } int testUtil_trim() { std::string a = " abc def "; ASSERT(trim(a), ""); ASSERT(a == "abc def", a); ASSERT(!trim(a, '_'), ""); ASSERT(a == "abc def", a); ASSERT(trim(a, 'f'), ""); ASSERT(a == "abc de", a); a = " "; ASSERT(trim(a), ""); ASSERT(a == "", a); ASSERT(!trim(a), ""); ASSERT(a == "", a); return TESTGOOD; } int testUtil_trimOnce() { std::string a = " abcd "; ASSERT(!trimOnce(a, 'a'), ""); ASSERT(a == " abcd ", a); ASSERT(trimOnce(a), ""); ASSERT(a == " abcd ", a); ASSERT(trimOnce(a), ""); ASSERT(a == "abcd ", a); ASSERT(trimOnce(a), ""); ASSERT(a == "abcd", a); ASSERT(!trimOnce(a), ""); ASSERT(a == "abcd", a); ASSERT(!trimOnce(a, 'b'), ""); ASSERT(a == "abcd", a); ASSERT(trimOnce(a, 'a'), ""); ASSERT(a == "bcd", a); a = " "; ASSERT(trimOnce(a), ""); ASSERT(a == " ", a); ASSERT(trimOnce(a), ""); ASSERT(a == "", a); ASSERT(!trimOnce(a), ""); ASSERT(a == "", a); ASSERT(!trimOnce(a, 'a'), ""); ASSERT(a == "", a); return TESTGOOD; } int testUtil_base() { char buf[] {0, (char) 0xAB, (char) 0x12, (char) 0xCD, (char) 0x34, (char) 0xFF}; std::string ret = bytesToBase16(buf, 5); ASSERT(ret == "00ab12cd34", ret); ret = bytesToBase64(buf, 5); ASSERT(ret == "AKsSzTQ=", ret); ret = bytesToBase64(buf, 4); ASSERT(ret == "AKsSzQ==", ret); ret = bytesToBase64(buf, 3); ASSERT(ret == "AKsS", ret); ret = bytesToBase64(buf, 0); ASSERT(ret == "", ret); ret = bytesToBase64(buf, 6); ASSERT(ret == "AKsSzTT_", ret); return TESTGOOD; } int testUtil_replace() { std::string test = "#abc#def#"; ASSERT(!replace(test, "", ' '), ""); ASSERT(test == "#abc#def#", test); ASSERT(!replace(test, "xyz", ' '), ""); ASSERT(test == "#abc#def#", test); ASSERT(replace(test, "af", ' '), ""); ASSERT(test == "# bc#de #", test); ASSERT(replace(test, "#q ", ' '), ""); ASSERT(test == " bc de ", test); return TESTGOOD; } int testUtil_replace2() { std::string test = "#abc#def#"; ASSERT(!replace(test, "", ""), ""); ASSERT(test == "#abc#def#", test); ASSERT(!replace(test, "#z", ""), ""); ASSERT(test == "#abc#def#", test); ASSERT(replace(test, "#", "+"), ""); ASSERT(test == "+abc+def+", test); ASSERT(replace(test, "+", ""), ""); ASSERT(test == "abcdef", test); ASSERT(replace(test, "ab", "de"), ""); ASSERT(test == "decdef", test); ASSERT(replace(test, "de", ""), ""); ASSERT(test == "cf", test); ASSERT(replace(test, "cf", ""), ""); ASSERT(test == "", test); ASSERT(!replace(test, "cf", ""), ""); ASSERT(test == "", test); return TESTGOOD; }