MCPcopy Create free account
hub / github.com/catboost/catboost / TestDecodingMethodsMixedStr

Method TestDecodingMethodsMixedStr

util/generic/string_ut.cpp:985–1055  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

983 }
984
985 void TestDecodingMethodsMixedStr() {
986 UNIT_ASSERT(TUtf32String::FromAscii("").empty());
987 UNIT_ASSERT(TUtf32String::FromAscii("abc") == ASCIIToUTF32("abc"));
988
989 const char* text = "123kx83abcd ej)#$%ddja&%J&";
990 TUtf32String wtext = ASCIIToUTF32(text);
991
992 UNIT_ASSERT(wtext == TUtf32String::FromAscii(text));
993
994 TString strtext(text);
995 UNIT_ASSERT(wtext == TUtf32String::FromAscii(strtext));
996
997 TStringBuf strbuftext(text);
998 UNIT_ASSERT(wtext == TUtf32String::FromAscii(strbuftext));
999
1000 UNIT_ASSERT(wtext.substr(5) == TUtf32String::FromAscii(text + 5));
1001
1002 const wchar32 cyrilicAndLatinWide[] = {
1003 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
1004 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
1005 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
1006 wchar32('z'),
1007 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
1008 wchar32('z'),
1009 0x00};
1010
1011 TUtf32String strWide(cyrilicAndLatinWide);
1012 TString strUtf8 = WideToUTF8(strWide);
1013
1014 UNIT_ASSERT(strWide == TUtf32String::FromUtf8(strUtf8.c_str()));
1015 UNIT_ASSERT(strWide == TUtf32String::FromUtf8(strUtf8));
1016 UNIT_ASSERT(strWide == UTF8ToUTF32<true>(strUtf8));
1017 UNIT_ASSERT(strWide == UTF8ToUTF32<false>(strUtf8));
1018 UNIT_ASSERT(strWide == TUtf32String::FromUtf8(TStringBuf(strUtf8)));
1019
1020 // assign
1021
1022 TUtf32String s1;
1023 s1.AssignAscii("1234");
1024 UNIT_ASSERT(s1 == ASCIIToUTF32("1234"));
1025
1026 s1.AssignUtf8(strUtf8);
1027 UNIT_ASSERT(s1 == strWide);
1028
1029 s1.AssignAscii(text);
1030 UNIT_ASSERT(s1 == wtext);
1031
1032 // append
1033
1034 TUtf32String s2;
1035 TUtf32String testAppend = strWide;
1036 s2.AppendUtf16(UTF8ToWide(strUtf8));
1037 UNIT_ASSERT(testAppend == s2);
1038
1039 testAppend += ' ';
1040 s2.AppendAscii(" ");
1041 UNIT_ASSERT(testAppend == s2);
1042

Callers

nothing calls this directly

Calls 8

ASCIIToUTF32Function · 0.85
WideToUTF8Function · 0.85
FromAsciiFunction · 0.70
FromUtf8Function · 0.70
UTF8ToWideFunction · 0.50
emptyMethod · 0.45
substrMethod · 0.45
c_strMethod · 0.45

Tested by

no test coverage detected