14 #define EXPECT_CASEMAPPING_CODEPOINT_NUL_EQ(_codepoint, _name, _locale) { \
15 ::helpers::CaseMappingEntry e; \
16 e.codepoint = _codepoint; \
17 e.lowercase = std::string(1, '\0'); \
18 e.uppercase = std::string(1, '\0'); \
19 e.titlecase = std::string(1, '\0'); \
21 ::helpers::CaseMappingEntry a; \
22 std::string text = ::helpers::utf8(_codepoint); \
23 a.lowercase = ::helpers::lowercase(text, (_locale)); \
24 a.uppercase = ::helpers::uppercase(text, (_locale)); \
25 a.titlecase = ::helpers::titlecase(text, (_locale)); \
26 EXPECT_PRED_FORMAT2(::helpers::CompareCodepoint, e, a); \
29 #define EXPECT_CASEMAPPING_CODEPOINT_EQ(_codepoint, _lowercase, _uppercase, _titlecase, _name, _locale) { \
30 ::helpers::CaseMappingEntry e; \
31 e.codepoint = _codepoint; \
32 e.lowercase = _lowercase; \
33 e.uppercase = _uppercase; \
34 e.titlecase = _titlecase; \
36 ::helpers::CaseMappingEntry a; \
37 std::string text = ::helpers::utf8(_codepoint); \
38 a.lowercase = ::helpers::lowercase(text, (_locale)); \
39 a.uppercase = ::helpers::uppercase(text, (_locale)); \
40 a.titlecase = ::helpers::titlecase(text, (_locale)); \
41 EXPECT_PRED_FORMAT2(::helpers::CompareCodepoint, e, a); \
44 #define EXPECT_CASEMAPPING_EQ(_input, _lowercase, _uppercase, _titlecase, _locale) { \
45 ::helpers::CaseMappingEntry e; \
46 e.lowercase = _lowercase; \
47 e.uppercase = _uppercase; \
48 e.titlecase = _titlecase; \
49 ::helpers::CaseMappingEntry a; \
51 a.lowercase = ::helpers::lowercase((_input), (_locale)); \
52 a.uppercase = ::helpers::uppercase((_input), (_locale)); \
53 a.titlecase = ::helpers::titlecase((_input), (_locale)); \
54 EXPECT_PRED_FORMAT2(::helpers::CompareCaseMapping, e, a); \
57 #if UTF8_VERSION_GUARD(1, 4, 0)
58 #define EXPECT_CASEFOLDING_EQ(_codepoint, _folded, _name, _locale) { \
59 ::helpers::CaseFoldingEntry e; \
60 e.codePoint = _codepoint; \
63 ::helpers::CaseFoldingEntry a; \
64 a.folded = ::helpers::casefold(::helpers::utf8(_codepoint), (_locale)); \
65 EXPECT_PRED_FORMAT2(::helpers::CompareCaseFolding, e, a); \
69 #if UTF8_VERSION_GUARD(1, 5, 0)
70 #define CM_CALL(_function, _input, _inputSize, _output, _outputSize, _locale, _errors) \
71 _function ((_input), (_inputSize), (_output), (_outputSize), (_locale), (_errors))
73 #define CM_CALL(_function, _input, _inputSize, _output, _outputSize, _locale, _errors) \
74 _function ((_input), (_inputSize), (_output), (_outputSize), (_errors))
79 std::string uppercase(
const std::string& text,
size_t locale);
81 std::string lowercase(
const std::string& text,
size_t locale);
83 std::string titlecase(
const std::string& text,
size_t locale);
85 #if UTF8_VERSION_GUARD(1, 4, 0)
86 std::string casefold(
const std::string& text,
size_t locale);
89 struct CaseMappingEntry
99 std::string lowercase;
100 std::string uppercase;
101 std::string titlecase;
104 ::testing::AssertionResult CompareCodepoint(
105 const char* expressionExpected,
const char* expressionActual,
106 const CaseMappingEntry& entryExpected,
const CaseMappingEntry& entryActual);
108 ::testing::AssertionResult CompareCaseMapping(
109 const char* expressionExpected,
const char* expressionActual,
110 const CaseMappingEntry& entryExpected,
const CaseMappingEntry& entryActual);
112 #if UTF8_VERSION_GUARD(1, 4, 0)
113 struct CaseFoldingEntry
120 ::testing::AssertionResult CompareCaseFolding(
121 const char* expressionExpected,
const char* expressionActual,
122 const CaseFoldingEntry& entryExpected,
const CaseFoldingEntry& entryActual);
Base includes for helper methods.
uint32_t unicode_t
UTF-32 encoded code point.
Definition: utf8rewind.h:698