libmrbesen/tests/utilstest.cpp

195 lines
3.7 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;
}
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;
}