Commit b0931420 authored by Dominik Röttsches's avatar Dominik Röttsches Committed by Commit Bot

Remove initializer list compiler workarounds in segmentation tests

We don't need to compiler workarounds for initializing text runs
anymore.

Also, harmonize escaped notation: Replace \x notation with using full
length \U universal character names.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I020cb509bf3a89eebbf9629da45a26061e4ac04c
Reviewed-on: https://chromium-review.googlesource.com/1091461
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: default avatarEmil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565384}
parent 76257d1a
......@@ -57,6 +57,14 @@ class RunSegmenterTest : public testing::Test {
VerifyRuns(&run_segmenter, expect);
}
void CheckRunsMixed(const Vector<SegmenterTestRun>& runs) {
CheckRuns(runs, FontOrientation::kVerticalMixed);
}
void CheckRunsHorizontal(const Vector<SegmenterTestRun>& runs) {
CheckRuns(runs, FontOrientation::kHorizontal);
}
void VerifyRuns(RunSegmenter* run_segmenter,
const Vector<SegmenterExpectedRun>& expect) {
RunSegmenter::RunSegmenterRange segmenter_range;
......@@ -78,20 +86,6 @@ class RunSegmenterTest : public testing::Test {
}
};
// Some of our compilers cannot initialize a vector from an array yet.
#define DECLARE_SEGMENTER_RUNSVECTOR(...) \
static const SegmenterTestRun kRunsArray[] = __VA_ARGS__; \
Vector<SegmenterTestRun> runs; \
runs.Append(kRunsArray, sizeof(kRunsArray) / sizeof(*kRunsArray));
#define CHECK_RUNS_MIXED(...) \
DECLARE_SEGMENTER_RUNSVECTOR(__VA_ARGS__); \
CheckRuns(runs, FontOrientation::kVerticalMixed);
#define CHECK_RUNS_HORIZONTAL(...) \
DECLARE_SEGMENTER_RUNSVECTOR(__VA_ARGS__); \
CheckRuns(runs, FontOrientation::kHorizontal);
TEST_F(RunSegmenterTest, Empty) {
String empty(g_empty_string16_bit);
RunSegmenter::RunSegmenterRange segmenter_range = {
......@@ -109,19 +103,19 @@ TEST_F(RunSegmenterTest, Empty) {
}
TEST_F(RunSegmenterTest, LatinPunctuationSideways) {
CHECK_RUNS_MIXED({{"Abc.;?Xyz", USCRIPT_LATIN,
CheckRunsMixed({{"Abc.;?Xyz", USCRIPT_LATIN,
OrientationIterator::kOrientationRotateSideways,
FontFallbackPriority::kText}});
}
TEST_F(RunSegmenterTest, OneSpace) {
CHECK_RUNS_MIXED(
CheckRunsMixed(
{{" ", USCRIPT_COMMON, OrientationIterator::kOrientationRotateSideways,
FontFallbackPriority::kText}});
}
TEST_F(RunSegmenterTest, ArabicHangul) {
CHECK_RUNS_MIXED(
CheckRunsMixed(
{{"نص", USCRIPT_ARABIC, OrientationIterator::kOrientationRotateSideways,
FontFallbackPriority::kText},
{"키스의", USCRIPT_HANGUL, OrientationIterator::kOrientationKeep,
......@@ -129,7 +123,7 @@ TEST_F(RunSegmenterTest, ArabicHangul) {
}
TEST_F(RunSegmenterTest, JapaneseHindiEmojiMix) {
CHECK_RUNS_MIXED(
CheckRunsMixed(
{{"百家姓", USCRIPT_HAN, OrientationIterator::kOrientationKeep,
FontFallbackPriority::kText},
{"ऋषियों", USCRIPT_DEVANAGARI,
......@@ -144,13 +138,13 @@ TEST_F(RunSegmenterTest, JapaneseHindiEmojiMix) {
}
TEST_F(RunSegmenterTest, CombiningCirlce) {
CHECK_RUNS_HORIZONTAL(
CheckRunsHorizontal(
{{"◌́◌̀◌̈◌̂◌̄◌̊", USCRIPT_COMMON, OrientationIterator::kOrientationKeep,
FontFallbackPriority::kText}});
}
TEST_F(RunSegmenterTest, HangulSpace) {
CHECK_RUNS_MIXED(
CheckRunsMixed(
{{"키스의", USCRIPT_HANGUL, OrientationIterator::kOrientationKeep,
FontFallbackPriority::kText},
{" ", USCRIPT_HANGUL, OrientationIterator::kOrientationRotateSideways,
......@@ -160,19 +154,18 @@ TEST_F(RunSegmenterTest, HangulSpace) {
}
TEST_F(RunSegmenterTest, TechnicalCommonUpright) {
CHECK_RUNS_MIXED(
{{"⌀⌁⌂", USCRIPT_COMMON, OrientationIterator::kOrientationKeep,
CheckRunsMixed({{"⌀⌁⌂", USCRIPT_COMMON, OrientationIterator::kOrientationKeep,
FontFallbackPriority::kText}});
}
TEST_F(RunSegmenterTest, PunctuationCommonSideways) {
CHECK_RUNS_MIXED(
CheckRunsMixed(
{{".…¡", USCRIPT_COMMON, OrientationIterator::kOrientationRotateSideways,
FontFallbackPriority::kText}});
}
TEST_F(RunSegmenterTest, JapanesePunctuationMixedInside) {
CHECK_RUNS_MIXED(
CheckRunsMixed(
{{"いろはに", USCRIPT_HIRAGANA, OrientationIterator::kOrientationKeep,
FontFallbackPriority::kText},
{".…¡", USCRIPT_HIRAGANA,
......@@ -183,19 +176,19 @@ TEST_F(RunSegmenterTest, JapanesePunctuationMixedInside) {
}
TEST_F(RunSegmenterTest, JapanesePunctuationMixedInsideHorizontal) {
CHECK_RUNS_HORIZONTAL(
CheckRunsHorizontal(
{{"いろはに.…¡ほへと", USCRIPT_HIRAGANA,
OrientationIterator::kOrientationKeep, FontFallbackPriority::kText}});
}
TEST_F(RunSegmenterTest, PunctuationDevanagariCombining) {
CHECK_RUNS_HORIZONTAL(
CheckRunsHorizontal(
{{"क+े", USCRIPT_DEVANAGARI, OrientationIterator::kOrientationKeep,
FontFallbackPriority::kText}});
}
TEST_F(RunSegmenterTest, EmojiZWJSequences) {
CHECK_RUNS_HORIZONTAL(
CheckRunsHorizontal(
{{"👩‍👩‍👧‍👦👩‍❤️‍💋‍👨", USCRIPT_LATIN,
OrientationIterator::kOrientationKeep,
FontFallbackPriority::kEmojiEmoji},
......@@ -208,7 +201,7 @@ TEST_F(RunSegmenterTest, EmojiZWJSequences) {
}
TEST_F(RunSegmenterTest, JapaneseLetterlikeEnd) {
CHECK_RUNS_MIXED(
CheckRunsMixed(
{{"いろは", USCRIPT_HIRAGANA, OrientationIterator::kOrientationKeep,
FontFallbackPriority::kText},
{"ℐℒℐℒℐℒℐℒℐℒℐℒℐℒ", USCRIPT_HIRAGANA,
......@@ -217,7 +210,7 @@ TEST_F(RunSegmenterTest, JapaneseLetterlikeEnd) {
}
TEST_F(RunSegmenterTest, JapaneseCase) {
CHECK_RUNS_MIXED(
CheckRunsMixed(
{{"いろは", USCRIPT_HIRAGANA, OrientationIterator::kOrientationKeep,
FontFallbackPriority::kText},
{"aaAA", USCRIPT_LATIN, OrientationIterator::kOrientationRotateSideways,
......@@ -227,13 +220,13 @@ TEST_F(RunSegmenterTest, JapaneseCase) {
}
TEST_F(RunSegmenterTest, DingbatsMiscSymbolsModifier) {
CHECK_RUNS_HORIZONTAL({{"⛹🏻✍🏻✊🏼", USCRIPT_COMMON,
CheckRunsHorizontal({{"⛹🏻✍🏻✊🏼", USCRIPT_COMMON,
OrientationIterator::kOrientationKeep,
FontFallbackPriority::kEmojiEmoji}});
}
TEST_F(RunSegmenterTest, ArmenianCyrillicCase) {
CHECK_RUNS_HORIZONTAL(
CheckRunsHorizontal(
{{"աբգ", USCRIPT_ARMENIAN, OrientationIterator::kOrientationKeep,
FontFallbackPriority::kText},
{"αβγ", USCRIPT_GREEK, OrientationIterator::kOrientationKeep,
......@@ -243,7 +236,7 @@ TEST_F(RunSegmenterTest, ArmenianCyrillicCase) {
}
TEST_F(RunSegmenterTest, EmojiSubdivisionFlags) {
CHECK_RUNS_HORIZONTAL(
CheckRunsHorizontal(
{{"🏴󠁧󠁢󠁷󠁬󠁳󠁿🏴󠁧󠁢󠁳󠁣󠁴󠁿🏴󠁧󠁢"
"󠁥󠁮󠁧󠁿",
USCRIPT_COMMON, OrientationIterator::kOrientationKeep,
......
......@@ -53,16 +53,6 @@ class SymbolsIteratorTest : public testing::Test {
}
};
// Some of our compilers cannot initialize a vector from an array yet.
#define DECLARE_FALLBACK_RUNSVECTOR(...) \
static const FallbackTestRun kRunsArray[] = __VA_ARGS__; \
Vector<FallbackTestRun> runs; \
runs.Append(kRunsArray, sizeof(kRunsArray) / sizeof(*kRunsArray));
#define CHECK_RUNS(...) \
DECLARE_FALLBACK_RUNSVECTOR(__VA_ARGS__); \
CheckRuns(runs);
TEST_F(SymbolsIteratorTest, Empty) {
String empty(g_empty_string16_bit);
SymbolsIterator symbols_iterator(empty.Characters16(), empty.length());
......@@ -74,59 +64,59 @@ TEST_F(SymbolsIteratorTest, Empty) {
}
TEST_F(SymbolsIteratorTest, Space) {
CHECK_RUNS({{" ", FontFallbackPriority::kText}});
CheckRuns({{" ", FontFallbackPriority::kText}});
}
TEST_F(SymbolsIteratorTest, Latin) {
CHECK_RUNS({{"Aa", FontFallbackPriority::kText}});
CheckRuns({{"Aa", FontFallbackPriority::kText}});
}
TEST_F(SymbolsIteratorTest, LatinColorEmojiTextEmoji) {
CHECK_RUNS({{"a", FontFallbackPriority::kText},
CheckRuns({{"a", FontFallbackPriority::kText},
{"⌚", FontFallbackPriority::kEmojiEmoji},
{"☎", FontFallbackPriority::kEmojiText}});
}
TEST_F(SymbolsIteratorTest, IgnoreVSInMath) {
CHECK_RUNS({{"⊆⊇⊈\xEF\xB8\x8E⊙⊚⊚", FontFallbackPriority::kText}});
CheckRuns({{u8"⊆⊇⊈\U0000FE0E⊙⊚⊚", FontFallbackPriority::kText}});
}
TEST_F(SymbolsIteratorTest, IgnoreVS15InText) {
CHECK_RUNS({{"abcdef\xEF\xB8\x8Eghji", FontFallbackPriority::kText}});
CheckRuns({{u8"abcdef\U0000FE0Eghji", FontFallbackPriority::kText}});
}
TEST_F(SymbolsIteratorTest, IgnoreVS16InText) {
CHECK_RUNS({{"abcdef\xEF\xB8\x8Fghji", FontFallbackPriority::kText}});
CheckRuns({{u8"abcdef\U0000FE0Fghji", FontFallbackPriority::kText}});
}
TEST_F(SymbolsIteratorTest, AllHexValuesText) {
// Helps with detecting incorrect emoji pattern definitions which are
// missing a \U000... prefix for example.
CHECK_RUNS({{"abcdef0123456789ABCDEF", FontFallbackPriority::kText}});
CheckRuns({{"abcdef0123456789ABCDEF", FontFallbackPriority::kText}});
}
TEST_F(SymbolsIteratorTest, NumbersAndHashNormalAndEmoji) {
CHECK_RUNS({{"0123456789#*", FontFallbackPriority::kText},
CheckRuns({{"0123456789#*", FontFallbackPriority::kText},
{"0⃣1⃣2⃣3⃣4⃣5⃣6⃣7⃣8⃣9⃣*⃣", FontFallbackPriority::kEmojiEmoji},
{"0123456789#*", FontFallbackPriority::kText}});
}
TEST_F(SymbolsIteratorTest, VS16onDigits) {
CHECK_RUNS({{"#", FontFallbackPriority::kText},
CheckRuns({{"#", FontFallbackPriority::kText},
{"#\uFE0F#\uFE0F\u20E3", FontFallbackPriority::kEmojiEmoji},
{"#", FontFallbackPriority::kText}});
}
TEST_F(SymbolsIteratorTest, SingleFlag) {
CHECK_RUNS({{"🇺", FontFallbackPriority::kText}});
CheckRuns({{"🇺", FontFallbackPriority::kText}});
}
TEST_F(SymbolsIteratorTest, CombiningCircle) {
CHECK_RUNS({{"◌́◌̀◌̈◌̂◌̄◌̊", FontFallbackPriority::kText}});
CheckRuns({{"◌́◌̀◌̈◌̂◌̄◌̊", FontFallbackPriority::kText}});
}
TEST_F(SymbolsIteratorTest, CombiningEnclosingCircleBackslash) {
CHECK_RUNS({{"A⃠B⃠C⃠", FontFallbackPriority::kText},
CheckRuns({{"A⃠B⃠C⃠", FontFallbackPriority::kText},
{"🚷🚯🚱🔞📵🚭🚫", FontFallbackPriority::kEmojiEmoji},
{"🎙⃠", FontFallbackPriority::kEmojiText},
{"📸⃠🔫⃠", FontFallbackPriority::kEmojiEmoji},
......@@ -136,7 +126,7 @@ TEST_F(SymbolsIteratorTest, CombiningEnclosingCircleBackslash) {
// TODO: Perhaps check for invalid country indicator combinations?
TEST_F(SymbolsIteratorTest, FlagsVsNonFlags) {
CHECK_RUNS({{"🇺🇸🇸", FontFallbackPriority::kEmojiEmoji}, // "US"
CheckRuns({{"🇺🇸🇸", FontFallbackPriority::kEmojiEmoji}, // "US"
{"abc", FontFallbackPriority::kText},
{"🇺🇸", FontFallbackPriority::kEmojiEmoji},
{"a🇿", FontFallbackPriority::kText}});
......@@ -144,12 +134,12 @@ TEST_F(SymbolsIteratorTest, FlagsVsNonFlags) {
TEST_F(SymbolsIteratorTest, EmojiVS15) {
// A VS15 after the anchor must trigger text display.
CHECK_RUNS({{"⚓\xEF\xB8\x8E", FontFallbackPriority::kEmojiText},
CheckRuns({{"⚓\U0000FE0E", FontFallbackPriority::kEmojiText},
{"⛵", FontFallbackPriority::kEmojiEmoji}});
}
TEST_F(SymbolsIteratorTest, EmojiZWSSequences) {
CHECK_RUNS({{"👩‍👩‍👧‍👦👩‍❤️‍💋‍👨",
CheckRuns({{"👩‍👩‍👧‍👦👩‍❤️‍💋‍👨",
FontFallbackPriority::kEmojiEmoji},
{"abcd", FontFallbackPriority::kText},
{"👩‍👩‍", FontFallbackPriority::kEmojiEmoji},
......@@ -159,7 +149,7 @@ TEST_F(SymbolsIteratorTest, EmojiZWSSequences) {
TEST_F(SymbolsIteratorTest, AllEmojiZWSSequences) {
// clang-format gets confused by Emojis, http://llvm.org/PR30530
// clang-format off
CHECK_RUNS(
CheckRuns(
{{"💏👩‍❤️‍💋‍👨👨‍❤️‍💋‍👨👩‍❤️‍💋‍👩💑👩‍❤️‍👨👨‍❤"
"️"
"‍👨👩‍❤️"
......@@ -176,50 +166,49 @@ TEST_F(SymbolsIteratorTest, AllEmojiZWSSequences) {
}
TEST_F(SymbolsIteratorTest, ModifierPlusGender) {
CHECK_RUNS({{"⛹🏻‍♂", FontFallbackPriority::kEmojiEmoji}});
CheckRuns({{"⛹🏻‍♂", FontFallbackPriority::kEmojiEmoji}});
}
TEST_F(SymbolsIteratorTest, TextMemberZwjSequence) {
CHECK_RUNS({{"👨‍⚕", FontFallbackPriority::kEmojiEmoji}});
CheckRuns({{"👨‍⚕", FontFallbackPriority::kEmojiEmoji}});
}
TEST_F(SymbolsIteratorTest, FacepalmCartwheelShrugModifierFemale) {
CHECK_RUNS({{"🤦‍♀🤸‍♀🤷‍♀🤷🏾‍♀",
CheckRuns({{"🤦‍♀🤸‍♀🤷‍♀🤷🏾‍♀",
FontFallbackPriority::kEmojiEmoji}});
}
TEST_F(SymbolsIteratorTest, AesculapiusMaleFemalEmoji) {
// Emoji Data 4 has upgraded those three characters to Emoji.
CHECK_RUNS({{"a", FontFallbackPriority::kText},
CheckRuns({{"a", FontFallbackPriority::kText},
{"⚕♀♂", FontFallbackPriority::kEmojiText}});
}
TEST_F(SymbolsIteratorTest, EyeSpeechBubble) {
CHECK_RUNS({{"👁‍🗨", FontFallbackPriority::kEmojiEmoji}});
CheckRuns({{"👁‍🗨", FontFallbackPriority::kEmojiEmoji}});
}
TEST_F(SymbolsIteratorTest, Modifier) {
CHECK_RUNS({{"👶🏿", FontFallbackPriority::kEmojiEmoji}});
CheckRuns({{"👶🏿", FontFallbackPriority::kEmojiEmoji}});
}
TEST_F(SymbolsIteratorTest, DingbatsMiscSymbolsModifier) {
CHECK_RUNS({{"⛹🏻✍🏻✊🏼", FontFallbackPriority::kEmojiEmoji}});
CheckRuns({{"⛹🏻✍🏻✊🏼", FontFallbackPriority::kEmojiEmoji}});
}
TEST_F(SymbolsIteratorTest, ExtraZWJPrefix) {
CHECK_RUNS({{"\xE2\x80\x8D", FontFallbackPriority::kText},
{"\xF0\x9F\x91\xA9\xE2\x80\x8D\xE2"
"\x9D\xA4\xEF\xB8\x8F\xE2\x80\x8D"
"\xF0\x9F\x92\x8B\xE2\x80\x8D\xF0\x9F\x91\xA8",
CheckRuns({{u8"\U0000200D", FontFallbackPriority::kText},
{u8"\U0001F469\U0000200D\U00002764\U0000FE0F\U0000200D\U0001F48B"
u8"\U0000200D\U0001F468",
FontFallbackPriority::kEmojiEmoji}});
}
TEST_F(SymbolsIteratorTest, Arrows) {
CHECK_RUNS({{"x→←x←↑↓→", FontFallbackPriority::kText}});
CheckRuns({{"x→←x←↑↓→", FontFallbackPriority::kText}});
}
TEST_F(SymbolsIteratorTest, JudgePilot) {
CHECK_RUNS({{"👨‍⚖️👩‍⚖️👨🏼‍⚖️👩🏼‍⚖️",
CheckRuns({{"👨‍⚖️👩‍⚖️👨🏼‍⚖️👩🏼‍⚖️",
FontFallbackPriority::kEmojiEmoji}});
}
......@@ -230,146 +219,119 @@ TEST_F(SymbolsIteratorTest, JudgePilot) {
// cannot form the right glyph from the emoji font. Running this as one run in
// one test ensures that the new emoji form an unbroken emoji-type sequence.
TEST_F(SymbolsIteratorTest, Emoji5AdditionsExceptFlags) {
CHECK_RUNS(
{{"\xF0\x9F\xA7\x94\xF0\x9F\x8F\xBB\xF0\x9F\xA7\x94\xF0\x9F\x8F\xBC\xF0"
"\x9F\xA7\x94\xF0\x9F\x8F\xBD\xF0\x9F\xA7\x94\xF0\x9F\x8F\xBE\xF0\x9F"
"\xA7\x94\xF0\x9F\x8F\xBF\xF0\x9F\xA4\xB1\xF0\x9F\xA4\xB1\xF0\x9F\x8F"
"\xBB\xF0\x9F\xA4\xB1\xF0\x9F\x8F\xBC\xF0\x9F\xA4\xB1\xF0\x9F\x8F\xBD"
"\xF0\x9F\xA4\xB1\xF0\x9F\x8F\xBE\xF0\x9F\xA4\xB1\xF0\x9F\x8F\xBF\xF0"
"\x9F\xA7\x99\xF0\x9F\xA7\x99\xF0\x9F\x8F\xBB\xF0\x9F\xA7\x99\xF0\x9F"
"\x8F\xBC\xF0\x9F\xA7\x99\xF0\x9F\x8F\xBD\xF0\x9F\xA7\x99\xF0\x9F\x8F"
"\xBE\xF0\x9F\xA7\x99\xF0\x9F\x8F\xBF\xF0\x9F\xA7\x99\xE2\x80\x8D\xE2"
"\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x99\xF0\x9F\x8F\xBB\xE2\x80\x8D\xE2"
"\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x99\xF0\x9F\x8F\xBC\xE2\x80\x8D\xE2"
"\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x99\xF0\x9F\x8F\xBD\xE2\x80\x8D\xE2"
"\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x99\xF0\x9F\x8F\xBE\xE2\x80\x8D\xE2"
"\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x99\xF0\x9F\x8F\xBF\xE2\x80\x8D\xE2"
"\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x99\xE2\x80\x8D\xE2\x99\x82\xEF\xB8"
"\x8F\xF0\x9F\xA7\x99\xF0\x9F\x8F\xBB\xE2\x80\x8D\xE2\x99\x82\xEF\xB8"
"\x8F\xF0\x9F\xA7\x99\xF0\x9F\x8F\xBC\xE2\x80\x8D\xE2\x99\x82\xEF\xB8"
"\x8F\xF0\x9F\xA7\x99\xF0\x9F\x8F\xBD\xE2\x80\x8D\xE2\x99\x82\xEF\xB8"
"\x8F\xF0\x9F\xA7\x99\xF0\x9F\x8F\xBE\xE2\x80\x8D\xE2\x99\x82\xEF\xB8"
"\x8F\xF0\x9F\xA7\x99\xF0\x9F\x8F\xBF\xE2\x80\x8D\xE2\x99\x82\xEF\xB8"
"\x8F\xF0\x9F\xA7\x9A\xF0\x9F\xA7\x9A\xF0\x9F\x8F\xBB\xF0\x9F\xA7\x9A"
"\xF0\x9F\x8F\xBC\xF0\x9F\xA7\x9A\xF0\x9F\x8F\xBD\xF0\x9F\xA7\x9A\xF0"
"\x9F\x8F\xBE\xF0\x9F\xA7\x9A\xF0\x9F\x8F\xBF\xF0\x9F\xA7\x9A\xE2\x80"
"\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9A\xF0\x9F\x8F\xBB\xE2\x80"
"\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9A\xF0\x9F\x8F\xBC\xE2\x80"
"\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9A\xF0\x9F\x8F\xBD\xE2\x80"
"\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9A\xF0\x9F\x8F\xBE\xE2\x80"
"\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9A\xF0\x9F\x8F\xBF\xE2\x80"
"\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9A\xE2\x80\x8D\xE2\x99\x82"
"\xEF\xB8\x8F\xF0\x9F\xA7\x9A\xF0\x9F\x8F\xBB\xE2\x80\x8D\xE2\x99\x82"
"\xEF\xB8\x8F\xF0\x9F\xA7\x9A\xF0\x9F\x8F\xBC\xE2\x80\x8D\xE2\x99\x82"
"\xEF\xB8\x8F\xF0\x9F\xA7\x9A\xF0\x9F\x8F\xBD\xE2\x80\x8D\xE2\x99\x82"
"\xEF\xB8\x8F\xF0\x9F\xA7\x9A\xF0\x9F\x8F\xBE\xE2\x80\x8D\xE2\x99\x82"
"\xEF\xB8\x8F\xF0\x9F\xA7\x9A\xF0\x9F\x8F\xBF\xE2\x80\x8D\xE2\x99\x82"
"\xEF\xB8\x8F\xF0\x9F\xA7\x9B\xF0\x9F\xA7\x9B\xF0\x9F\x8F\xBB\xF0\x9F"
"\xA7\x9B\xF0\x9F\x8F\xBC\xF0\x9F\xA7\x9B\xF0\x9F\x8F\xBD\xF0\x9F\xA7"
"\x9B\xF0\x9F\x8F\xBE\xF0\x9F\xA7\x9B\xF0\x9F\x8F\xBF\xF0\x9F\xA7\x9B"
"\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9B\xF0\x9F\x8F\xBB"
"\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9B\xF0\x9F\x8F\xBC"
"\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9B\xF0\x9F\x8F\xBD"
"\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9B\xF0\x9F\x8F\xBE"
"\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9B\xF0\x9F\x8F\xBF"
"\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9B\xE2\x80\x8D\xE2"
"\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9B\xF0\x9F\x8F\xBB\xE2\x80\x8D\xE2"
"\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9B\xF0\x9F\x8F\xBC\xE2\x80\x8D\xE2"
"\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9B\xF0\x9F\x8F\xBD\xE2\x80\x8D\xE2"
"\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9B\xF0\x9F\x8F\xBE\xE2\x80\x8D\xE2"
"\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9B\xF0\x9F\x8F\xBF\xE2\x80\x8D\xE2"
"\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9C\xF0\x9F\xA7\x9C\xF0\x9F\x8F\xBB"
"\xF0\x9F\xA7\x9C\xF0\x9F\x8F\xBC\xF0\x9F\xA7\x9C\xF0\x9F\x8F\xBD\xF0"
"\x9F\xA7\x9C\xF0\x9F\x8F\xBE\xF0\x9F\xA7\x9C\xF0\x9F\x8F\xBF\xF0\x9F"
"\xA7\x9C\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9C\xF0\x9F"
"\x8F\xBB\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9C\xF0\x9F"
"\x8F\xBC\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9C\xF0\x9F"
"\x8F\xBD\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9C\xF0\x9F"
"\x8F\xBE\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9C\xF0\x9F"
"\x8F\xBF\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9C\xE2\x80"
"\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9C\xF0\x9F\x8F\xBB\xE2\x80"
"\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9C\xF0\x9F\x8F\xBC\xE2\x80"
"\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9C\xF0\x9F\x8F\xBD\xE2\x80"
"\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9C\xF0\x9F\x8F\xBE\xE2\x80"
"\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9C\xF0\x9F\x8F\xBF\xE2\x80"
"\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9D\xF0\x9F\xA7\x9D\xF0\x9F"
"\x8F\xBB\xF0\x9F\xA7\x9D\xF0\x9F\x8F\xBC\xF0\x9F\xA7\x9D\xF0\x9F\x8F"
"\xBD\xF0\x9F\xA7\x9D\xF0\x9F\x8F\xBE\xF0\x9F\xA7\x9D\xF0\x9F\x8F\xBF"
"\xF0\x9F\xA7\x9D\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9D"
"\xF0\x9F\x8F\xBB\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9D"
"\xF0\x9F\x8F\xBC\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9D"
"\xF0\x9F\x8F\xBD\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9D"
"\xF0\x9F\x8F\xBE\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9D"
"\xF0\x9F\x8F\xBF\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9D"
"\xE2\x80\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9D\xF0\x9F\x8F\xBB"
"\xE2\x80\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9D\xF0\x9F\x8F\xBC"
"\xE2\x80\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9D\xF0\x9F\x8F\xBD"
"\xE2\x80\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9D\xF0\x9F\x8F\xBE"
"\xE2\x80\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9D\xF0\x9F\x8F\xBF"
"\xE2\x80\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9E\xF0\x9F\xA7\x9E"
"\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9E\xE2\x80\x8D\xE2"
"\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x9F\xF0\x9F\xA7\x9F\xE2\x80\x8D\xE2"
"\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x9F\xE2\x80\x8D\xE2\x99\x82\xEF\xB8"
"\x8F\xF0\x9F\xA7\x96\xF0\x9F\xA7\x96\xF0\x9F\x8F\xBB\xF0\x9F\xA7\x96"
"\xF0\x9F\x8F\xBC\xF0\x9F\xA7\x96\xF0\x9F\x8F\xBD\xF0\x9F\xA7\x96\xF0"
"\x9F\x8F\xBE\xF0\x9F\xA7\x96\xF0\x9F\x8F\xBF\xF0\x9F\xA7\x96\xE2\x80"
"\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x96\xF0\x9F\x8F\xBB\xE2\x80"
"\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x96\xF0\x9F\x8F\xBC\xE2\x80"
"\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x96\xF0\x9F\x8F\xBD\xE2\x80"
"\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x96\xF0\x9F\x8F\xBE\xE2\x80"
"\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x96\xF0\x9F\x8F\xBF\xE2\x80"
"\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x96\xE2\x80\x8D\xE2\x99\x82"
"\xEF\xB8\x8F\xF0\x9F\xA7\x96\xF0\x9F\x8F\xBB\xE2\x80\x8D\xE2\x99\x82"
"\xEF\xB8\x8F\xF0\x9F\xA7\x96\xF0\x9F\x8F\xBC\xE2\x80\x8D\xE2\x99\x82"
"\xEF\xB8\x8F\xF0\x9F\xA7\x96\xF0\x9F\x8F\xBD\xE2\x80\x8D\xE2\x99\x82"
"\xEF\xB8\x8F\xF0\x9F\xA7\x96\xF0\x9F\x8F\xBE\xE2\x80\x8D\xE2\x99\x82"
"\xEF\xB8\x8F\xF0\x9F\xA7\x96\xF0\x9F\x8F\xBF\xE2\x80\x8D\xE2\x99\x82"
"\xEF\xB8\x8F\xF0\x9F\xA7\x97\xF0\x9F\xA7\x97\xF0\x9F\x8F\xBB\xF0\x9F"
"\xA7\x97\xF0\x9F\x8F\xBC\xF0\x9F\xA7\x97\xF0\x9F\x8F\xBD\xF0\x9F\xA7"
"\x97\xF0\x9F\x8F\xBE\xF0\x9F\xA7\x97\xF0\x9F\x8F\xBF\xF0\x9F\xA7\x97"
"\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x97\xF0\x9F\x8F\xBB"
"\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x97\xF0\x9F\x8F\xBC"
"\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x97\xF0\x9F\x8F\xBD"
"\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x97\xF0\x9F\x8F\xBE"
"\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x97\xF0\x9F\x8F\xBF"
"\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x97\xE2\x80\x8D\xE2"
"\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x97\xF0\x9F\x8F\xBB\xE2\x80\x8D\xE2"
"\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x97\xF0\x9F\x8F\xBC\xE2\x80\x8D\xE2"
"\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x97\xF0\x9F\x8F\xBD\xE2\x80\x8D\xE2"
"\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x97\xF0\x9F\x8F\xBE\xE2\x80\x8D\xE2"
"\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x97\xF0\x9F\x8F\xBF\xE2\x80\x8D\xE2"
"\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x98\xF0\x9F\xA7\x98\xF0\x9F\x8F\xBB"
"\xF0\x9F\xA7\x98\xF0\x9F\x8F\xBC\xF0\x9F\xA7\x98\xF0\x9F\x8F\xBD\xF0"
"\x9F\xA7\x98\xF0\x9F\x8F\xBE\xF0\x9F\xA7\x98\xF0\x9F\x8F\xBF\xF0\x9F"
"\xA7\x98\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x98\xF0\x9F"
"\x8F\xBB\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x98\xF0\x9F"
"\x8F\xBC\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x98\xF0\x9F"
"\x8F\xBD\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x98\xF0\x9F"
"\x8F\xBE\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x98\xF0\x9F"
"\x8F\xBF\xE2\x80\x8D\xE2\x99\x80\xEF\xB8\x8F\xF0\x9F\xA7\x98\xE2\x80"
"\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x98\xF0\x9F\x8F\xBB\xE2\x80"
"\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x98\xF0\x9F\x8F\xBC\xE2\x80"
"\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x98\xF0\x9F\x8F\xBD\xE2\x80"
"\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x98\xF0\x9F\x8F\xBE\xE2\x80"
"\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA7\x98\xF0\x9F\x8F\xBF\xE2\x80"
"\x8D\xE2\x99\x82\xEF\xB8\x8F\xF0\x9F\xA4\x9F\xF0\x9F\xA4\x9F\xF0\x9F"
"\x8F\xBB\xF0\x9F\xA4\x9F\xF0\x9F\x8F\xBC\xF0\x9F\xA4\x9F\xF0\x9F\x8F"
"\xBD\xF0\x9F\xA4\x9F\xF0\x9F\x8F\xBE\xF0\x9F\xA4\x9F\xF0\x9F\x8F\xBF"
"\xF0\x9F\xA4\xB2\xF0\x9F\xA4\xB2\xF0\x9F\x8F\xBB\xF0\x9F\xA4\xB2\xF0"
"\x9F\x8F\xBC\xF0\x9F\xA4\xB2\xF0\x9F\x8F\xBD\xF0\x9F\xA4\xB2\xF0\x9F"
"\x8F\xBE\xF0\x9F\xA4\xB2\xF0\x9F\x8F\xBF\xF0\x9F\xA7\xA0\xF0\x9F\xA7"
"\xA1\xF0\x9F\xA7\xA3\xF0\x9F\xA7\xA4\xF0\x9F\xA7\xA5\xF0\x9F\xA7\xA6"
"\xF0\x9F\xA7\xA2\xF0\x9F\xA6\x93\xF0\x9F\xA6\x92\xF0\x9F\xA6\x94\xF0"
"\x9F\xA6\x95\xF0\x9F\xA6\x96\xF0\x9F\xA6\x97\xF0\x9F\xA5\xA5\xF0\x9F"
"\xA5\xA6\xF0\x9F\xA5\xA8\xF0\x9F\xA5\xA9\xF0\x9F\xA5\xAA\xF0\x9F\xA5"
"\xA3\xF0\x9F\xA5\xAB\xF0\x9F\xA5\x9F\xF0\x9F\xA5\xA0\xF0\x9F\xA5\xA1"
"\xF0\x9F\xA5\xA7\xF0\x9F\xA5\xA4\xF0\x9F\xA5\xA2\xF0\x9F\x9B\xB8\xF0"
"\x9F\x9B\xB7\xF0\x9F\xA5\x8C",
CheckRuns(
{{u8"\U0001F9D4\U0001F3FB\U0001F9D4\U0001F3FC\U0001F9D4\U0001F3FD"
u8"\U0001F9D4\U0001F3FE\U0001F9D4\U0001F3FF\U0001F931\U0001F931"
u8"\U0001F3FB\U0001F931\U0001F3FC\U0001F931\U0001F3FD\U0001F931"
u8"\U0001F3FE\U0001F931\U0001F3FF\U0001F9D9\U0001F9D9\U0001F3FB"
u8"\U0001F9D9\U0001F3FC\U0001F9D9\U0001F3FD\U0001F9D9\U0001F3FE"
u8"\U0001F9D9\U0001F3FF\U0001F9D9\U0000200D\U00002640\U0000FE0F"
u8"\U0001F9D9\U0001F3FB\U0000200D\U00002640\U0000FE0F\U0001F9D9"
u8"\U0001F3FC\U0000200D\U00002640\U0000FE0F\U0001F9D9\U0001F3FD"
u8"\U0000200D\U00002640\U0000FE0F\U0001F9D9\U0001F3FE\U0000200D"
u8"\U00002640\U0000FE0F\U0001F9D9\U0001F3FF\U0000200D\U00002640"
u8"\U0000FE0F\U0001F9D9\U0000200D\U00002642\U0000FE0F\U0001F9D9"
u8"\U0001F3FB\U0000200D\U00002642\U0000FE0F\U0001F9D9\U0001F3FC"
u8"\U0000200D\U00002642\U0000FE0F\U0001F9D9\U0001F3FD\U0000200D"
u8"\U00002642\U0000FE0F\U0001F9D9\U0001F3FE\U0000200D\U00002642"
u8"\U0000FE0F\U0001F9D9\U0001F3FF\U0000200D\U00002642\U0000FE0F"
u8"\U0001F9DA\U0001F9DA\U0001F3FB\U0001F9DA\U0001F3FC\U0001F9DA"
u8"\U0001F3FD\U0001F9DA\U0001F3FE\U0001F9DA\U0001F3FF\U0001F9DA"
u8"\U0000200D\U00002640\U0000FE0F\U0001F9DA\U0001F3FB\U0000200D"
u8"\U00002640\U0000FE0F\U0001F9DA\U0001F3FC\U0000200D\U00002640"
u8"\U0000FE0F\U0001F9DA\U0001F3FD\U0000200D\U00002640\U0000FE0F"
u8"\U0001F9DA\U0001F3FE\U0000200D\U00002640\U0000FE0F\U0001F9DA"
u8"\U0001F3FF\U0000200D\U00002640\U0000FE0F\U0001F9DA\U0000200D"
u8"\U00002642\U0000FE0F\U0001F9DA\U0001F3FB\U0000200D\U00002642"
u8"\U0000FE0F\U0001F9DA\U0001F3FC\U0000200D\U00002642\U0000FE0F"
u8"\U0001F9DA\U0001F3FD\U0000200D\U00002642\U0000FE0F\U0001F9DA"
u8"\U0001F3FE\U0000200D\U00002642\U0000FE0F\U0001F9DA\U0001F3FF"
u8"\U0000200D\U00002642\U0000FE0F\U0001F9DB\U0001F9DB\U0001F3FB"
u8"\U0001F9DB\U0001F3FC\U0001F9DB\U0001F3FD\U0001F9DB\U0001F3FE"
u8"\U0001F9DB\U0001F3FF\U0001F9DB\U0000200D\U00002640\U0000FE0F"
u8"\U0001F9DB\U0001F3FB\U0000200D\U00002640\U0000FE0F\U0001F9DB"
u8"\U0001F3FC\U0000200D\U00002640\U0000FE0F\U0001F9DB\U0001F3FD"
u8"\U0000200D\U00002640\U0000FE0F\U0001F9DB\U0001F3FE\U0000200D"
u8"\U00002640\U0000FE0F\U0001F9DB\U0001F3FF\U0000200D\U00002640"
u8"\U0000FE0F\U0001F9DB\U0000200D\U00002642\U0000FE0F\U0001F9DB"
u8"\U0001F3FB\U0000200D\U00002642\U0000FE0F\U0001F9DB\U0001F3FC"
u8"\U0000200D\U00002642\U0000FE0F\U0001F9DB\U0001F3FD\U0000200D"
u8"\U00002642\U0000FE0F\U0001F9DB\U0001F3FE\U0000200D\U00002642"
u8"\U0000FE0F\U0001F9DB\U0001F3FF\U0000200D\U00002642\U0000FE0F"
u8"\U0001F9DC\U0001F9DC\U0001F3FB\U0001F9DC\U0001F3FC\U0001F9DC"
u8"\U0001F3FD\U0001F9DC\U0001F3FE\U0001F9DC\U0001F3FF\U0001F9DC"
u8"\U0000200D\U00002640\U0000FE0F\U0001F9DC\U0001F3FB\U0000200D"
u8"\U00002640\U0000FE0F\U0001F9DC\U0001F3FC\U0000200D\U00002640"
u8"\U0000FE0F\U0001F9DC\U0001F3FD\U0000200D\U00002640\U0000FE0F"
u8"\U0001F9DC\U0001F3FE\U0000200D\U00002640\U0000FE0F\U0001F9DC"
u8"\U0001F3FF\U0000200D\U00002640\U0000FE0F\U0001F9DC\U0000200D"
u8"\U00002642\U0000FE0F\U0001F9DC\U0001F3FB\U0000200D\U00002642"
u8"\U0000FE0F\U0001F9DC\U0001F3FC\U0000200D\U00002642\U0000FE0F"
u8"\U0001F9DC\U0001F3FD\U0000200D\U00002642\U0000FE0F\U0001F9DC"
u8"\U0001F3FE\U0000200D\U00002642\U0000FE0F\U0001F9DC\U0001F3FF"
u8"\U0000200D\U00002642\U0000FE0F\U0001F9DD\U0001F9DD\U0001F3FB"
u8"\U0001F9DD\U0001F3FC\U0001F9DD\U0001F3FD\U0001F9DD\U0001F3FE"
u8"\U0001F9DD\U0001F3FF\U0001F9DD\U0000200D\U00002640\U0000FE0F"
u8"\U0001F9DD\U0001F3FB\U0000200D\U00002640\U0000FE0F\U0001F9DD"
u8"\U0001F3FC\U0000200D\U00002640\U0000FE0F\U0001F9DD\U0001F3FD"
u8"\U0000200D\U00002640\U0000FE0F\U0001F9DD\U0001F3FE\U0000200D"
u8"\U00002640\U0000FE0F\U0001F9DD\U0001F3FF\U0000200D\U00002640"
u8"\U0000FE0F\U0001F9DD\U0000200D\U00002642\U0000FE0F\U0001F9DD"
u8"\U0001F3FB\U0000200D\U00002642\U0000FE0F\U0001F9DD\U0001F3FC"
u8"\U0000200D\U00002642\U0000FE0F\U0001F9DD\U0001F3FD\U0000200D"
u8"\U00002642\U0000FE0F\U0001F9DD\U0001F3FE\U0000200D\U00002642"
u8"\U0000FE0F\U0001F9DD\U0001F3FF\U0000200D\U00002642\U0000FE0F"
u8"\U0001F9DE\U0001F9DE\U0000200D\U00002640\U0000FE0F\U0001F9DE"
u8"\U0000200D\U00002642\U0000FE0F\U0001F9DF\U0001F9DF\U0000200D"
u8"\U00002640\U0000FE0F\U0001F9DF\U0000200D\U00002642\U0000FE0F"
u8"\U0001F9D6\U0001F9D6\U0001F3FB\U0001F9D6\U0001F3FC\U0001F9D6"
u8"\U0001F3FD\U0001F9D6\U0001F3FE\U0001F9D6\U0001F3FF\U0001F9D6"
u8"\U0000200D\U00002640\U0000FE0F\U0001F9D6\U0001F3FB\U0000200D"
u8"\U00002640\U0000FE0F\U0001F9D6\U0001F3FC\U0000200D\U00002640"
u8"\U0000FE0F\U0001F9D6\U0001F3FD\U0000200D\U00002640\U0000FE0F"
u8"\U0001F9D6\U0001F3FE\U0000200D\U00002640\U0000FE0F\U0001F9D6"
u8"\U0001F3FF\U0000200D\U00002640\U0000FE0F\U0001F9D6\U0000200D"
u8"\U00002642\U0000FE0F\U0001F9D6\U0001F3FB\U0000200D\U00002642"
u8"\U0000FE0F\U0001F9D6\U0001F3FC\U0000200D\U00002642\U0000FE0F"
u8"\U0001F9D6\U0001F3FD\U0000200D\U00002642\U0000FE0F\U0001F9D6"
u8"\U0001F3FE\U0000200D\U00002642\U0000FE0F\U0001F9D6\U0001F3FF"
u8"\U0000200D\U00002642\U0000FE0F\U0001F9D7\U0001F9D7\U0001F3FB"
u8"\U0001F9D7\U0001F3FC\U0001F9D7\U0001F3FD\U0001F9D7\U0001F3FE"
u8"\U0001F9D7\U0001F3FF\U0001F9D7\U0000200D\U00002640\U0000FE0F"
u8"\U0001F9D7\U0001F3FB\U0000200D\U00002640\U0000FE0F\U0001F9D7"
u8"\U0001F3FC\U0000200D\U00002640\U0000FE0F\U0001F9D7\U0001F3FD"
u8"\U0000200D\U00002640\U0000FE0F\U0001F9D7\U0001F3FE\U0000200D"
u8"\U00002640\U0000FE0F\U0001F9D7\U0001F3FF\U0000200D\U00002640"
u8"\U0000FE0F\U0001F9D7\U0000200D\U00002642\U0000FE0F\U0001F9D7"
u8"\U0001F3FB\U0000200D\U00002642\U0000FE0F\U0001F9D7\U0001F3FC"
u8"\U0000200D\U00002642\U0000FE0F\U0001F9D7\U0001F3FD\U0000200D"
u8"\U00002642\U0000FE0F\U0001F9D7\U0001F3FE\U0000200D\U00002642"
u8"\U0000FE0F\U0001F9D7\U0001F3FF\U0000200D\U00002642\U0000FE0F"
u8"\U0001F9D8\U0001F9D8\U0001F3FB\U0001F9D8\U0001F3FC\U0001F9D8"
u8"\U0001F3FD\U0001F9D8\U0001F3FE\U0001F9D8\U0001F3FF\U0001F9D8"
u8"\U0000200D\U00002640\U0000FE0F\U0001F9D8\U0001F3FB\U0000200D"
u8"\U00002640\U0000FE0F\U0001F9D8\U0001F3FC\U0000200D\U00002640"
u8"\U0000FE0F\U0001F9D8\U0001F3FD\U0000200D\U00002640\U0000FE0F"
u8"\U0001F9D8\U0001F3FE\U0000200D\U00002640\U0000FE0F\U0001F9D8"
u8"\U0001F3FF\U0000200D\U00002640\U0000FE0F\U0001F9D8\U0000200D"
u8"\U00002642\U0000FE0F\U0001F9D8\U0001F3FB\U0000200D\U00002642"
u8"\U0000FE0F\U0001F9D8\U0001F3FC\U0000200D\U00002642\U0000FE0F"
u8"\U0001F9D8\U0001F3FD\U0000200D\U00002642\U0000FE0F\U0001F9D8"
u8"\U0001F3FE\U0000200D\U00002642\U0000FE0F\U0001F9D8\U0001F3FF"
u8"\U0000200D\U00002642\U0000FE0F\U0001F91F\U0001F91F\U0001F3FB"
u8"\U0001F91F\U0001F3FC\U0001F91F\U0001F3FD\U0001F91F\U0001F3FE"
u8"\U0001F91F\U0001F3FF\U0001F932\U0001F932\U0001F3FB\U0001F932"
u8"\U0001F3FC\U0001F932\U0001F3FD\U0001F932\U0001F3FE\U0001F932"
u8"\U0001F3FF\U0001F9E0\U0001F9E1\U0001F9E3\U0001F9E4\U0001F9E5"
u8"\U0001F9E6\U0001F9E2\U0001F993\U0001F992\U0001F994\U0001F995"
u8"\U0001F996\U0001F997\U0001F965\U0001F966\U0001F968\U0001F969"
u8"\U0001F96A\U0001F963\U0001F96B\U0001F95F\U0001F960\U0001F961"
u8"\U0001F967\U0001F964\U0001F962\U0001F6F8\U0001F6F7\U0001F94C",
FontFallbackPriority::kEmojiEmoji}});
}
TEST_F(SymbolsIteratorTest, EmojiSubdivisionFlags) {
CHECK_RUNS(
CheckRuns(
{{"🏴󠁧󠁢󠁷󠁬󠁳󠁿🏴󠁧󠁢󠁳󠁣󠁴󠁿🏴󠁧󠁢",
FontFallbackPriority::kEmojiEmoji}});
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment