forked from MrBesen/libmrbesen
171 lines
3.2 KiB
C++
171 lines
3.2 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 ";
|
|
|
|
trim(a);
|
|
ASSERT(a == "abc def", a);
|
|
|
|
trim(a, '_');
|
|
ASSERT(a == "abc def", a);
|
|
|
|
trim(a, 'f');
|
|
ASSERT(a == "abc de", a);
|
|
|
|
a = " ";
|
|
trim(a);
|
|
ASSERT(a == "", a);
|
|
trim(a);
|
|
ASSERT(a == "", a);
|
|
|
|
return TESTGOOD;
|
|
} |