12 #define CHECK_IS_NORMALIZED(_codepoint, _nfd, _nfc, _nfkd, _nfkc, _name) { \
13 ::helpers::CheckEntry e; \
14 e.codepoint = _codepoint; \
16 e.nfd = UTF8_NORMALIZATION_RESULT_ ## _nfd; \
17 e.nfc = UTF8_NORMALIZATION_RESULT_ ## _nfc; \
18 e.nfkd = UTF8_NORMALIZATION_RESULT_ ## _nfkd; \
19 e.nfkc = UTF8_NORMALIZATION_RESULT_ ## _nfkc; \
20 ::helpers::CheckEntry a; \
21 a.nfd = ::helpers::isNfd(_codepoint); \
22 a.nfc = ::helpers::isNfc(_codepoint); \
23 a.nfkd = ::helpers::isNfkd(_codepoint); \
24 a.nfkc = ::helpers::isNfkc(_codepoint); \
25 EXPECT_PRED_FORMAT2(::helpers::CompareNormalizationCheck, e, a); \
28 #define CHECK_NORMALIZE_CODEPOINT(_codepoint, _decomposed, _composed, _decomposedCompatibility, _composedCompatibility, _name) { \
29 ::helpers::NormalizationEntry e; \
30 e.codepoint = _codepoint; \
32 e.decomposed = _decomposed; \
33 e.composed = _composed; \
34 e.decomposedCompatibility = _decomposedCompatibility; \
35 e.composedCompatibility = _composedCompatibility; \
36 ::helpers::NormalizationEntry a; \
37 a.decomposed = helpers::nfd(_codepoint); \
38 a.composed = helpers::nfc(_codepoint); \
39 a.decomposedCompatibility = helpers::nfkd(_codepoint); \
40 a.composedCompatibility = helpers::nfkc(_codepoint); \
41 EXPECT_PRED_FORMAT2(::helpers::CompareNormalizationCodepoint, e, a); \
44 #define CHECK_NORMALIZE_SEQUENCE(_sequence, _decomposed, _composed, _decomposedCompatibility, _composedCompatibility) { \
45 ::helpers::NormalizationEntry e; \
46 e.sequence = _sequence; \
47 e.decomposed = _decomposed; \
48 e.composed = _composed; \
49 e.decomposedCompatibility = _decomposedCompatibility; \
50 e.composedCompatibility = _composedCompatibility; \
51 ::helpers::NormalizationEntry a; \
52 a.decomposed = helpers::nfd(_sequence); \
53 a.composed = helpers::nfc(_sequence); \
54 a.decomposedCompatibility = helpers::nfkd(_sequence); \
55 a.composedCompatibility = helpers::nfkc(_sequence); \
56 EXPECT_PRED_FORMAT2(::helpers::CompareNormalizationSequence, e, a); \
61 std::string normalizationResult(uint8_t result);
64 uint8_t isNfc(
const std::string& text);
67 std::string nfc(
const std::string& text);
70 uint8_t isNfd(
const std::string& text);
73 std::string nfd(
const std::string& text);
76 uint8_t isNfkc(
const std::string& text);
79 std::string nfkc(
const std::string& text);
82 uint8_t isNfkd(
const std::string& text);
85 std::string nfkd(
const std::string& text);
97 ::testing::AssertionResult CompareNormalizationCheck(
98 const char* expressionExpected,
const char* expressionActual,
99 const CheckEntry& entryExpected,
const CheckEntry& entryActual);
101 struct NormalizationEntry
109 std::string sequence;
111 std::string decomposed;
112 std::string composed;
113 std::string decomposedCompatibility;
114 std::string composedCompatibility;
117 ::testing::AssertionResult CompareNormalizationCodepoint(
118 const char* expressionExpected,
const char* expressionActual,
119 const NormalizationEntry& entryExpected,
const NormalizationEntry& entryActual);
121 ::testing::AssertionResult CompareNormalizationSequence(
122 const char* expressionExpected,
const char* expressionActual,
123 const NormalizationEntry& entryExpected,
const NormalizationEntry& entryActual);
uint32_t unicode_t
UTF-32 encoded code point.
Definition: utf8rewind.h:235
Base includes for helper methods.