libmrbesen/tests/utilstest.cpp

267 lines
5.4 KiB
C++

#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;
}