OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 static UChar c4[] = { 0x36F, 0x330 }; | 158 static UChar c4[] = { 0x36F, 0x330 }; |
159 EXPECT_EQ(ComplexPath, Character::characterRangeCodePath(c4, 2)); | 159 EXPECT_EQ(ComplexPath, Character::characterRangeCodePath(c4, 2)); |
160 // Surrogate-Complex is Complex | 160 // Surrogate-Complex is Complex |
161 static UChar c5[] = { 0xD83C, 0xDDE5, 0x330 }; | 161 static UChar c5[] = { 0xD83C, 0xDDE5, 0x330 }; |
162 EXPECT_EQ(ComplexPath, Character::characterRangeCodePath(c5, 3)); | 162 EXPECT_EQ(ComplexPath, Character::characterRangeCodePath(c5, 3)); |
163 // Complex-Surrogate is Complex | 163 // Complex-Surrogate is Complex |
164 static UChar c6[] = { 0x330, 0xD83C, 0xDDE5 }; | 164 static UChar c6[] = { 0x330, 0xD83C, 0xDDE5 }; |
165 EXPECT_EQ(ComplexPath, Character::characterRangeCodePath(c6, 3)); | 165 EXPECT_EQ(ComplexPath, Character::characterRangeCodePath(c6, 3)); |
166 } | 166 } |
167 | 167 |
168 static void TestSpecificUChar32RangeIdeograph(UChar32 rangeStart, UChar32 rangeE
nd) | 168 static void TestSpecificUChar32RangeIdeograph(UChar32 rangeStart, UChar32 rangeE
nd, bool before = true) |
169 { | 169 { |
170 EXPECT_FALSE(Character::isCJKIdeograph(rangeStart - 1)); | 170 if (before) |
171 EXPECT_TRUE(Character::isCJKIdeograph(rangeStart)); | 171 EXPECT_FALSE(Character::isCJKIdeographOrSymbol(rangeStart - 1)); |
172 EXPECT_TRUE(Character::isCJKIdeograph((UChar32)((uint64_t)rangeStart + (uint
64_t)rangeEnd) / 2)); | 172 EXPECT_TRUE(Character::isCJKIdeographOrSymbol(rangeStart)); |
173 EXPECT_TRUE(Character::isCJKIdeograph(rangeEnd)); | 173 EXPECT_TRUE(Character::isCJKIdeographOrSymbol((UChar32)((uint64_t)rangeStart
+ (uint64_t)rangeEnd) / 2)); |
174 EXPECT_FALSE(Character::isCJKIdeograph(rangeEnd + 1)); | 174 EXPECT_TRUE(Character::isCJKIdeographOrSymbol(rangeEnd)); |
| 175 EXPECT_FALSE(Character::isCJKIdeographOrSymbol(rangeEnd + 1)); |
175 } | 176 } |
176 | 177 |
177 TEST(FontTest, TestIsCJKIdeograph) | 178 TEST(FontTest, TestIsCJKIdeograph) |
178 { | 179 { |
179 // The basic CJK Unified Ideographs block. | 180 // The basic CJK Unified Ideographs block. |
180 TestSpecificUChar32RangeIdeograph(0x4E00, 0x9FFF); | 181 TestSpecificUChar32RangeIdeograph(0x4E00, 0x9FFF); |
181 // CJK Unified Ideographs Extension A. | 182 // CJK Unified Ideographs Extension A. |
182 TestSpecificUChar32RangeIdeograph(0x3400, 0x4DBF); | 183 TestSpecificUChar32RangeIdeograph(0x3400, 0x4DBF, false); |
183 // CJK Unified Ideographs Extension A and Kangxi Radicals. | 184 // CJK Unified Ideographs Extension A and Kangxi Radicals. |
184 TestSpecificUChar32RangeIdeograph(0x2E80, 0x2FDF); | 185 TestSpecificUChar32RangeIdeograph(0x2E80, 0x2FDF); |
185 // CJK Strokes. | 186 // CJK Strokes. |
186 TestSpecificUChar32RangeIdeograph(0x31C0, 0x31EF); | 187 TestSpecificUChar32RangeIdeograph(0x31C0, 0x31EF, false); |
187 // CJK Compatibility Ideographs. | 188 // CJK Compatibility Ideographs. |
188 TestSpecificUChar32RangeIdeograph(0xF900, 0xFAFF); | 189 TestSpecificUChar32RangeIdeograph(0xF900, 0xFAFF); |
189 // CJK Unified Ideographs Extension B. | 190 // CJK Unified Ideographs Extension B. |
190 TestSpecificUChar32RangeIdeograph(0x20000, 0x2A6DF); | 191 TestSpecificUChar32RangeIdeograph(0x20000, 0x2A6DF); |
191 // CJK Unified Ideographs Extension C. | 192 // CJK Unified Ideographs Extension C. |
192 // CJK Unified Ideographs Extension D. | 193 // CJK Unified Ideographs Extension D. |
193 TestSpecificUChar32RangeIdeograph(0x2A700, 0x2B81F); | 194 TestSpecificUChar32RangeIdeograph(0x2A700, 0x2B81F); |
194 // CJK Compatibility Ideographs Supplement. | 195 // CJK Compatibility Ideographs Supplement. |
195 TestSpecificUChar32RangeIdeograph(0x2F800, 0x2FA1F); | 196 TestSpecificUChar32RangeIdeograph(0x2F800, 0x2FA1F); |
196 } | 197 } |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 | 344 |
344 TestSpecificUChar32RangeIdeographSymbol(0x1F110, 0x1F129); | 345 TestSpecificUChar32RangeIdeographSymbol(0x1F110, 0x1F129); |
345 TestSpecificUChar32RangeIdeographSymbol(0x1F130, 0x1F149); | 346 TestSpecificUChar32RangeIdeographSymbol(0x1F130, 0x1F149); |
346 TestSpecificUChar32RangeIdeographSymbol(0x1F150, 0x1F169); | 347 TestSpecificUChar32RangeIdeographSymbol(0x1F150, 0x1F169); |
347 TestSpecificUChar32RangeIdeographSymbol(0x1F170, 0x1F189); | 348 TestSpecificUChar32RangeIdeographSymbol(0x1F170, 0x1F189); |
348 TestSpecificUChar32RangeIdeographSymbol(0x1F200, 0x1F6FF); | 349 TestSpecificUChar32RangeIdeographSymbol(0x1F200, 0x1F6FF); |
349 } | 350 } |
350 | 351 |
351 } // namespace blink | 352 } // namespace blink |
352 | 353 |
OLD | NEW |