2626
2727namespace McBopomofo {
2828
29- constexpr std::string_view kTestVariantsData =
29+ static const char8_t kTestVariantsData [] =
3030 u8" # format org.openvanilla.mcbopomofo.sorted\n "
3131 u8" 一-na 一\U000E01E0\n "
3232 u8" 一-ㄧ 一\n "
@@ -37,17 +37,20 @@ constexpr std::string_view kTestVariantsData =
3737 u8" 個-ㄍㄜˋ 個\n "
3838 u8" 個-ㄍㄜ˙ 個\U000E01E1 " ;
3939
40- constexpr std::string_view kTestPUAData =
40+ static const char8_t kTestPUAData [] =
4141 u8" # format org.openvanilla.mcbopomofo.sorted\n "
4242 u8" ㄍㄚˋ \uF145\n "
4343 u8" ㄧㄚˊ \uF4BB " ;
4444
4545static std::unique_ptr<VariantAnnotator> CreateLoadedAnnotator () {
4646 auto annotator = std::make_unique<VariantAnnotator>();
47- annotator->loadVariantsMap (ParselessPhraseDB::CreateValidatedDB (
48- kTestVariantsData .data (), kTestVariantsData .length ()));
49- annotator->loadPUAMap (ParselessPhraseDB::CreateValidatedDB (
50- kTestPUAData .data (), kTestPUAData .length ()));
47+
48+ const char * variantsData = reinterpret_cast <const char *>(kTestVariantsData );
49+ const char * puaData = reinterpret_cast <const char *>(kTestPUAData );
50+ annotator->loadVariantsMap (
51+ ParselessPhraseDB::CreateValidatedDB (variantsData, strlen (variantsData)));
52+ annotator->loadPUAMap (
53+ ParselessPhraseDB::CreateValidatedDB (puaData, strlen (puaData)));
5154 EXPECT_TRUE (annotator->loaded ());
5255 return annotator;
5356}
@@ -82,7 +85,8 @@ TEST(VariantAnnotatorTest, SingleCharacterAnnotationWithVariantSelector) {
8285 auto annotator = CreateLoadedAnnotator ();
8386 VariantAnnotator::Result result =
8487 annotator->annotateSingleCharacter (" 個" , " ㄍㄜ˙" );
85- EXPECT_EQ (result.annotatedString , u8" 個\U000E01E1 " );
88+ EXPECT_EQ (result.annotatedString ,
89+ reinterpret_cast <const char *>(u8" 個\U000E01E1 " ));
8690 EXPECT_TRUE (result.hasVariantSelectors );
8791 EXPECT_FALSE (result.hasPUACodePoints );
8892}
@@ -91,7 +95,8 @@ TEST(VariantAnnotatorTest, SingleCharacterAnnotationWithVariant0AndPUA) {
9195 auto annotator = CreateLoadedAnnotator ();
9296 VariantAnnotator::Result result =
9397 annotator->annotateSingleCharacter (" 個" , " ㄍㄚˋ" );
94- EXPECT_EQ (result.annotatedString , u8" 個\U000E01E0\uF145 " );
98+ EXPECT_EQ (result.annotatedString ,
99+ reinterpret_cast <const char *>(u8" 個\U000E01E0\uF145 " ));
95100 EXPECT_TRUE (result.hasVariantSelectors );
96101 EXPECT_TRUE (result.hasPUACodePoints );
97102}
@@ -100,7 +105,8 @@ TEST(VariantAnnotatorTest, SingleCharacterAnnotationWithVariant0AndNoPUA) {
100105 auto annotator = CreateLoadedAnnotator ();
101106 VariantAnnotator::Result result =
102107 annotator->annotateSingleCharacter (" 個" , " ㄍ" );
103- EXPECT_EQ (result.annotatedString , u8" 個\U000E01E0 " );
108+ EXPECT_EQ (result.annotatedString ,
109+ reinterpret_cast <const char *>(u8" 個\U000E01E0 " ));
104110 EXPECT_TRUE (result.hasVariantSelectors );
105111 EXPECT_FALSE (result.hasPUACodePoints );
106112}
@@ -109,7 +115,7 @@ TEST(VariantAnnotatorTest, SingleCharacterAnnotationWithUnknownCharacter) {
109115 auto annotator = CreateLoadedAnnotator ();
110116 VariantAnnotator::Result result =
111117 annotator->annotateSingleCharacter (" 人" , " ㄖㄣˊ" );
112- EXPECT_EQ (result.annotatedString , u8" 人" );
118+ EXPECT_EQ (result.annotatedString , reinterpret_cast < const char *>( u8" 人" ) );
113119 EXPECT_FALSE (result.hasVariantSelectors );
114120 EXPECT_FALSE (result.hasPUACodePoints );
115121}
@@ -120,15 +126,19 @@ TEST(VariantAnnotatorTest, AnnotateCharacters) {
120126 {" 個" , " 人" , " 一" , " 個" , " 人" , " 一" , " 個" },
121127 {" ㄍㄜˋ" , " ㄖㄣˊ" , " ㄧˊ" , " ㄍㄜ˙" , " ㄖㄣˊ" , " ㄧ" , " ㄍㄚˋ" });
122128 EXPECT_EQ (result.annotatedString ,
123- u8" 個人一\U000E01E1 個\U000E01E1 人一個\U000E01E0\uF145 " );
129+ reinterpret_cast <const char *>(
130+ u8" 個人一\U000E01E1 個\U000E01E1 人一個\U000E01E0\uF145 " ));
124131 EXPECT_TRUE (result.hasVariantSelectors );
125132 EXPECT_TRUE (result.hasPUACodePoints );
126133 EXPECT_EQ (result.accumulatedStringLength .size (), 8 );
127134 EXPECT_EQ (result.accumulatedStringLength [0 ], 0 );
128- EXPECT_EQ (result.accumulatedStringLength [1 ], strlen (u8" 個" ));
129- EXPECT_EQ (result.accumulatedStringLength [3 ], strlen (u8" 個人一\U000E01E1 " ));
135+ EXPECT_EQ (result.accumulatedStringLength [1 ],
136+ strlen (reinterpret_cast <const char *>(u8" 個" )));
137+ EXPECT_EQ (result.accumulatedStringLength [3 ],
138+ strlen (reinterpret_cast <const char *>(u8" 個人一\U000E01E1 " )));
130139 EXPECT_EQ (result.accumulatedStringLength [6 ],
131- strlen (u8" 個人一\U000E01E1 個\U000E01E1 人一" ));
140+ strlen (reinterpret_cast <const char *>(
141+ u8" 個人一\U000E01E1 個\U000E01E1 人一" )));
132142 EXPECT_EQ (result.accumulatedStringLength [7 ], result.annotatedString .size ());
133143}
134144
@@ -158,7 +168,8 @@ TEST(VariantAnnotatorTest, AnnotateCharactersWithVariant0AndPUA) {
158168 VariantAnnotator::CombinedResult result = annotator->annotate (
159169 {" 個" , " 人" , " 一" , " 個" , " 人" , " 一" , " 個" },
160170 {" ㄍㄜˋ" , " ㄖㄣˊ" , " ㄧ" , " ㄍㄜˋ" , " ㄖㄣˊ" , " ㄧ" , " ㄍㄚˋ" });
161- EXPECT_EQ (result.annotatedString , u8" 個人一個人一個\U000E01E0\uF145 " );
171+ EXPECT_EQ (result.annotatedString ,
172+ reinterpret_cast <const char *>(u8" 個人一個人一個\U000E01E0\uF145 " ));
162173 EXPECT_TRUE (result.hasVariantSelectors );
163174 EXPECT_TRUE (result.hasPUACodePoints );
164175}
@@ -168,7 +179,8 @@ TEST(VariantAnnotatorTest, AnnotateCharactersWithVariant0ButNoPUA) {
168179 VariantAnnotator::CombinedResult result = annotator->annotate (
169180 {" 個" , " 人" , " 一" , " 個" , " 人" , " 一" , " 個" },
170181 {" ㄍㄜˋ" , " ㄖㄣˊ" , " ㄧ" , " ㄍㄜˋ" , " ㄖㄣˊ" , " ㄧ" , " ㄍ" });
171- EXPECT_EQ (result.annotatedString , u8" 個人一個人一個\U000E01E0 " );
182+ EXPECT_EQ (result.annotatedString ,
183+ reinterpret_cast <const char *>(u8" 個人一個人一個\U000E01E0 " ));
172184 EXPECT_TRUE (result.hasVariantSelectors );
173185 EXPECT_FALSE (result.hasPUACodePoints );
174186}
0 commit comments