diff options
Diffstat (limited to 'test/u.cc')
| -rw-r--r-- | test/u.cc | 122 |
1 files changed, 89 insertions, 33 deletions
@@ -6,6 +6,13 @@ #include <vector> +namespace { + +class UnicodeVersionTest : public testing::TestWithParam<u::Version> { +}; + +} // namespace + TEST(u8, empty) { std::vector<uint8_t> empty; auto it = empty.begin(); @@ -682,44 +689,93 @@ TEST(u16, invalid) { } } -TEST(u, lookup_gc) { - EXPECT_EQ(u::lookup_gc(0x41), u::GeneralCategory::LETTER_UPPERCASE); - EXPECT_EQ(u::lookup_gc(0x61), u::GeneralCategory::LETTER_LOWERCASE); - EXPECT_EQ(u::lookup_gc(0x1c5), u::GeneralCategory::LETTER_TITLECASE); - EXPECT_EQ(u::lookup_gc(0x374), u::GeneralCategory::LETTER_MODIFIER); - EXPECT_EQ(u::lookup_gc(0x34ff), u::GeneralCategory::LETTER_OTHER); +TEST_P(UnicodeVersionTest, lookup_gc) { + EXPECT_EQ(u::lookup_gc(0x41, GetParam()), + u::GeneralCategory::LETTER_UPPERCASE); + EXPECT_EQ(u::lookup_gc(0x61, GetParam()), + u::GeneralCategory::LETTER_LOWERCASE); + EXPECT_EQ(u::lookup_gc(0x1c5, GetParam()), + u::GeneralCategory::LETTER_TITLECASE); + EXPECT_EQ(u::lookup_gc(0x374, GetParam()), + u::GeneralCategory::LETTER_MODIFIER); + EXPECT_EQ(u::lookup_gc(0x34ff, GetParam()), + u::GeneralCategory::LETTER_OTHER); - EXPECT_EQ(u::lookup_gc(0x483), u::GeneralCategory::MARK_NONSPACING); - EXPECT_EQ(u::lookup_gc(0x93b), u::GeneralCategory::MARK_SPACING_COMBINDING); - EXPECT_EQ(u::lookup_gc(0x20de), u::GeneralCategory::MARK_SPACING_ENCLOSING); + EXPECT_EQ(u::lookup_gc(0x483, GetParam()), + u::GeneralCategory::MARK_NONSPACING); + EXPECT_EQ(u::lookup_gc(0x93b, GetParam()), + u::GeneralCategory::MARK_SPACING_COMBINDING); + EXPECT_EQ(u::lookup_gc(0x20de, GetParam()), + u::GeneralCategory::MARK_SPACING_ENCLOSING); - EXPECT_EQ(u::lookup_gc(0xa620), u::GeneralCategory::NUMBER_DIGIT); - EXPECT_EQ(u::lookup_gc(0xa6e6), u::GeneralCategory::NUMBER_LETTER); - EXPECT_EQ(u::lookup_gc(0xa830), u::GeneralCategory::NUMBER_OTHER); + EXPECT_EQ(u::lookup_gc(0xa620, GetParam()), + u::GeneralCategory::NUMBER_DIGIT); + EXPECT_EQ(u::lookup_gc(0xa6e6, GetParam()), + u::GeneralCategory::NUMBER_LETTER); + EXPECT_EQ(u::lookup_gc(0xa830, GetParam()), + u::GeneralCategory::NUMBER_OTHER); - EXPECT_EQ(u::lookup_gc(0xfe33), u::GeneralCategory::PUNCTUATION_CONNECTOR); - EXPECT_EQ(u::lookup_gc(0xfe58), u::GeneralCategory::PUNCTUATION_DASH); - EXPECT_EQ(u::lookup_gc(0xff08), u::GeneralCategory::PUNCTUATION_OPEN); - EXPECT_EQ(u::lookup_gc(0xff09), u::GeneralCategory::PUNCTUATION_CLOSE); - EXPECT_EQ(u::lookup_gc(0xab), u::GeneralCategory::PUNCTUATION_INITIAL_QUOTE); - EXPECT_EQ(u::lookup_gc(0xbb), u::GeneralCategory::PUNCTUATION_FINAL_QUOTE); - EXPECT_EQ(u::lookup_gc(0xff1a), u::GeneralCategory::PUNCTUATION_OTHER); + EXPECT_EQ(u::lookup_gc(0xfe33, GetParam()), + u::GeneralCategory::PUNCTUATION_CONNECTOR); + EXPECT_EQ(u::lookup_gc(0xfe58, GetParam()), + u::GeneralCategory::PUNCTUATION_DASH); + EXPECT_EQ(u::lookup_gc(0xff08, GetParam()), + u::GeneralCategory::PUNCTUATION_OPEN); + EXPECT_EQ(u::lookup_gc(0xff09, GetParam()), + u::GeneralCategory::PUNCTUATION_CLOSE); + EXPECT_EQ(u::lookup_gc(0xab, GetParam()), + u::GeneralCategory::PUNCTUATION_INITIAL_QUOTE); + EXPECT_EQ(u::lookup_gc(0xbb, GetParam()), + u::GeneralCategory::PUNCTUATION_FINAL_QUOTE); + EXPECT_EQ(u::lookup_gc(0xff1a, GetParam()), + u::GeneralCategory::PUNCTUATION_OTHER); - EXPECT_EQ(u::lookup_gc(0xd7), u::GeneralCategory::SYMBOL_MATH); - EXPECT_EQ(u::lookup_gc(0x58f), u::GeneralCategory::SYMBOL_CURRENCY); - EXPECT_EQ(u::lookup_gc(0x5e), u::GeneralCategory::SYMBOL_MODIFIER); - EXPECT_EQ(u::lookup_gc(0xf03), u::GeneralCategory::SYMBOL_OTHER); + EXPECT_EQ(u::lookup_gc(0xd7, GetParam()), + u::GeneralCategory::SYMBOL_MATH); + EXPECT_EQ(u::lookup_gc(0x58f, GetParam()), + u::GeneralCategory::SYMBOL_CURRENCY); + EXPECT_EQ(u::lookup_gc(0x5e, GetParam()), + u::GeneralCategory::SYMBOL_MODIFIER); + EXPECT_EQ(u::lookup_gc(0xf03, GetParam()), + u::GeneralCategory::SYMBOL_OTHER); - EXPECT_EQ(u::lookup_gc(0x20), u::GeneralCategory::SEPARATOR_SPACE); - EXPECT_EQ(u::lookup_gc(0x2028), u::GeneralCategory::SEPARATOR_LINE); - EXPECT_EQ(u::lookup_gc(0x2029), u::GeneralCategory::SEPARATOR_PARAGRAPH); + EXPECT_EQ(u::lookup_gc(0x20, GetParam()), + u::GeneralCategory::SEPARATOR_SPACE); + EXPECT_EQ(u::lookup_gc(0x2028, GetParam()), + u::GeneralCategory::SEPARATOR_LINE); + EXPECT_EQ(u::lookup_gc(0x2029, GetParam()), + u::GeneralCategory::SEPARATOR_PARAGRAPH); - EXPECT_EQ(u::lookup_gc(0xa), u::GeneralCategory::OTHER_CONTROL); - EXPECT_EQ(u::lookup_gc(0x202d), u::GeneralCategory::OTHER_FORMAT); - EXPECT_EQ(u::lookup_gc(0xd800), u::GeneralCategory::OTHER_SURROGATE); - EXPECT_EQ(u::lookup_gc(0xdbff), u::GeneralCategory::OTHER_SURROGATE); - EXPECT_EQ(u::lookup_gc(0xdfff), u::GeneralCategory::OTHER_SURROGATE); - EXPECT_EQ(u::lookup_gc(0xe000), u::GeneralCategory::OTHER_PRIVATE_USE); + EXPECT_EQ(u::lookup_gc(0xa, GetParam()), + u::GeneralCategory::OTHER_CONTROL); + EXPECT_EQ(u::lookup_gc(0x202d, GetParam()), + u::GeneralCategory::OTHER_FORMAT); + EXPECT_EQ(u::lookup_gc(0xd800, GetParam()), + u::GeneralCategory::OTHER_SURROGATE); + EXPECT_EQ(u::lookup_gc(0xdbff, GetParam()), + u::GeneralCategory::OTHER_SURROGATE); + EXPECT_EQ(u::lookup_gc(0xdfff, GetParam()), + u::GeneralCategory::OTHER_SURROGATE); + EXPECT_EQ(u::lookup_gc(0xe000, GetParam()), + u::GeneralCategory::OTHER_PRIVATE_USE); - EXPECT_EQ(u::lookup_gc(0xffffffff), u::GeneralCategory::OTHER_UNASSIGNED); + EXPECT_EQ(u::lookup_gc(0xffffffff, GetParam()), + u::GeneralCategory::OTHER_UNASSIGNED); } + +INSTANTIATE_TEST_SUITE_P( + AllVersions, + UnicodeVersionTest, + testing::Values( + u::Version::u6_2_0, + u::Version::u8_0_0, + u::Version::u10_0_0, + u::Version::u11_0_0, + u::Version::u12_1_0, + u::Version::u13_0_0, + u::Version::u14_0_0, + u::Version::u15_0_0, + u::Version::u15_1_0, + u::Version::u16_0_0 + ) +); |
