static void TestUTF(skiatest::Reporter* reporter) { static const struct { const char* fUtf8; SkUnichar fUni; } gTest[] = { { "a", 'a' }, { "\x7f", 0x7f }, { "\xC2\x80", 0x80 }, { "\xC3\x83", (3 << 6) | 3 }, { "\xDF\xBF", 0x7ff }, { "\xE0\xA0\x80", 0x800 }, { "\xE0\xB0\xB8", 0xC38 }, { "\xE3\x83\x83", (3 << 12) | (3 << 6) | 3 }, { "\xEF\xBF\xBF", 0xFFFF }, { "\xF0\x90\x80\x80", 0x10000 }, { "\xF3\x83\x83\x83", (3 << 18) | (3 << 12) | (3 << 6) | 3 } }; for (size_t i = 0; i < SK_ARRAY_COUNT(gTest); i++) { const char* p = gTest[i].fUtf8; int n = SkUTF8_CountUnichars(p); SkUnichar u0 = SkUTF8_ToUnichar(gTest[i].fUtf8); SkUnichar u1 = SkUTF8_NextUnichar(&p); REPORTER_ASSERT(reporter, n == 1); REPORTER_ASSERT(reporter, u0 == u1); REPORTER_ASSERT(reporter, u0 == gTest[i].fUni); REPORTER_ASSERT(reporter, p - gTest[i].fUtf8 == (int)strlen(gTest[i].fUtf8)); } test_utf16(reporter); test_search(reporter); test_refptr(reporter); }
void feed_codepoint(unsigned codepoint, TranscodedFn transcoded_fn) const { feed_codepoint(codepoint, transcoded_fn, test_utf16()); }
void transcode_codepoint(Iterator& cur, Sentinel end, TranscodedFn transcoded_fn, EncodingErrorFn error_fn) const { return transcode_codepoint(cur, end, transcoded_fn, error_fn, test_utf16()); }