forked from MrBesen/libmrbesen
264 lines
5.4 KiB
C++
264 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";
|
|
|
|
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), "");
|
|
|
|
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;
|
|
} |