Add few utf8_string unit tests.

This commit is contained in:
Yury Melnichek 2011-05-18 22:33:58 +02:00 committed by Alex Zolotarev
parent 29f44e0589
commit f69f8c9785

View file

@ -34,13 +34,28 @@ UNIT_TEST(Utf8_Split)
TEST_EQUAL(result[6], "city", ());
// Доллар подорожал на 500 рублей ̶копеек
char const * s = "- \xD0\x94\xD0\xBE\xD0\xBB\xD0\xBB\xD0\xB0\xD1\x80\x20\xD0\xBF\xD0\xBE\xD0\xB4\xD0"
"\xBE\xD1\x80\xD0\xBE\xD0\xB6\xD0\xB0\xD0\xBB\x20\xD0\xBD\xD0\xB0\x20\x35\x30\x30"
"\x20\xD1\x80\xD1\x83\xD0\xB1\xD0\xBB\xD0\xB5\xD0\xB9\x20\xCC\xB6\xD0\xBA\xD0\xBE"
"\xD0\xBF\xD0\xB5\xD0\xB5\xD0\xBA -";
char const * s =
"- \xD0\x94\xD0\xBE\xD0\xBB\xD0\xBB\xD0\xB0\xD1\x80\x20\xD0\xBF\xD0\xBE\xD0\xB4\xD0"
"\xBE\xD1\x80\xD0\xBE\xD0\xB6\xD0\xB0\xD0\xBB\x20\xD0\xBD\xD0\xB0\x20\x35\x30\x30"
"\x20\xD1\x80\xD1\x83\xD0\xB1\xD0\xBB\xD0\xB5\xD0\xB9\x20\xCC\xB6\xD0\xBA\xD0\xBE"
"\xD0\xBF\xD0\xB5\xD0\xB5\xD0\xBA -";
TEST(Split(s, result, &IsDelimeter), ());
TEST_EQUAL(result.size(), 6, ());
TEST_EQUAL(result[3], "500", ());
TEST_EQUAL(result[4], "\xD1\x80\xD1\x83\xD0\xB1\xD0\xBB\xD0\xB5\xD0\xB9", ());
TEST_EQUAL(result[5], "\xD0\xBA\xD0\xBE\xD0\xBF\xD0\xB5\xD0\xB5\xD0\xBA", ());
}
UNIT_TEST(Utf8_Split_MultipleDelimeters)
{
vector<string> result;
TEST(Split("A B C .,D", result, &IsDelimeter), ());
char const * expected [] = {"A", "B", "C", "D"};
TEST_EQUAL(result, vector<string>(&expected[0], &expected[0] + ARRAY_SIZE(expected)), ());
}
UNIT_TEST(Utf8_IsSearchDelimiter)
{
TEST(utf8_string::IsSearchDelimiter(static_cast<uint8_t>('~')), ());
TEST(utf8_string::IsSearchDelimiter(static_cast<uint8_t>('`')), ());
}