mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-26 07:26:15 +01:00
unicode: tests: More script to/from ISO-15924 tests
This commit is contained in:
parent
58b4cdd38b
commit
8280a8ee36
@ -678,13 +678,151 @@ test_fully_decompose_len (void)
|
|||||||
static void
|
static void
|
||||||
test_iso15924 (void)
|
test_iso15924 (void)
|
||||||
{
|
{
|
||||||
|
const struct {
|
||||||
|
GUnicodeScript script;
|
||||||
|
char four_letter_code[5];
|
||||||
|
} data[] = {
|
||||||
|
{ G_UNICODE_SCRIPT_COMMON, "Zyyy" },
|
||||||
|
{ G_UNICODE_SCRIPT_INHERITED, "Zinh" },
|
||||||
|
{ G_UNICODE_SCRIPT_ARABIC, "Arab" },
|
||||||
|
{ G_UNICODE_SCRIPT_ARMENIAN, "Armn" },
|
||||||
|
{ G_UNICODE_SCRIPT_BENGALI, "Beng" },
|
||||||
|
{ G_UNICODE_SCRIPT_BOPOMOFO, "Bopo" },
|
||||||
|
{ G_UNICODE_SCRIPT_CHEROKEE, "Cher" },
|
||||||
|
{ G_UNICODE_SCRIPT_COPTIC, "Copt" },
|
||||||
|
{ G_UNICODE_SCRIPT_CYRILLIC, "Cyrl" },
|
||||||
|
{ G_UNICODE_SCRIPT_DESERET, "Dsrt" },
|
||||||
|
{ G_UNICODE_SCRIPT_DEVANAGARI, "Deva" },
|
||||||
|
{ G_UNICODE_SCRIPT_ETHIOPIC, "Ethi" },
|
||||||
|
{ G_UNICODE_SCRIPT_GEORGIAN, "Geor" },
|
||||||
|
{ G_UNICODE_SCRIPT_GOTHIC, "Goth" },
|
||||||
|
{ G_UNICODE_SCRIPT_GREEK, "Grek" },
|
||||||
|
{ G_UNICODE_SCRIPT_GUJARATI, "Gujr" },
|
||||||
|
{ G_UNICODE_SCRIPT_GURMUKHI, "Guru" },
|
||||||
|
{ G_UNICODE_SCRIPT_HAN, "Hani" },
|
||||||
|
{ G_UNICODE_SCRIPT_HANGUL, "Hang" },
|
||||||
|
{ G_UNICODE_SCRIPT_HEBREW, "Hebr" },
|
||||||
|
{ G_UNICODE_SCRIPT_HIRAGANA, "Hira" },
|
||||||
|
{ G_UNICODE_SCRIPT_KANNADA, "Knda" },
|
||||||
|
{ G_UNICODE_SCRIPT_KATAKANA, "Kana" },
|
||||||
|
{ G_UNICODE_SCRIPT_KHMER, "Khmr" },
|
||||||
|
{ G_UNICODE_SCRIPT_LAO, "Laoo" },
|
||||||
|
{ G_UNICODE_SCRIPT_LATIN, "Latn" },
|
||||||
|
{ G_UNICODE_SCRIPT_MALAYALAM, "Mlym" },
|
||||||
|
{ G_UNICODE_SCRIPT_MONGOLIAN, "Mong" },
|
||||||
|
{ G_UNICODE_SCRIPT_MYANMAR, "Mymr" },
|
||||||
|
{ G_UNICODE_SCRIPT_OGHAM, "Ogam" },
|
||||||
|
{ G_UNICODE_SCRIPT_OLD_ITALIC, "Ital" },
|
||||||
|
{ G_UNICODE_SCRIPT_ORIYA, "Orya" },
|
||||||
|
{ G_UNICODE_SCRIPT_RUNIC, "Runr" },
|
||||||
|
{ G_UNICODE_SCRIPT_SINHALA, "Sinh" },
|
||||||
|
{ G_UNICODE_SCRIPT_SYRIAC, "Syrc" },
|
||||||
|
{ G_UNICODE_SCRIPT_TAMIL, "Taml" },
|
||||||
|
{ G_UNICODE_SCRIPT_TELUGU, "Telu" },
|
||||||
|
{ G_UNICODE_SCRIPT_THAANA, "Thaa" },
|
||||||
|
{ G_UNICODE_SCRIPT_THAI, "Thai" },
|
||||||
|
{ G_UNICODE_SCRIPT_TIBETAN, "Tibt" },
|
||||||
|
{ G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, "Cans" },
|
||||||
|
{ G_UNICODE_SCRIPT_YI, "Yiii" },
|
||||||
|
{ G_UNICODE_SCRIPT_TAGALOG, "Tglg" },
|
||||||
|
{ G_UNICODE_SCRIPT_HANUNOO, "Hano" },
|
||||||
|
{ G_UNICODE_SCRIPT_BUHID, "Buhd" },
|
||||||
|
{ G_UNICODE_SCRIPT_TAGBANWA, "Tagb" },
|
||||||
|
|
||||||
|
/* Unicode-4.0 additions */
|
||||||
|
{ G_UNICODE_SCRIPT_BRAILLE, "Brai" },
|
||||||
|
{ G_UNICODE_SCRIPT_CYPRIOT, "Cprt" },
|
||||||
|
{ G_UNICODE_SCRIPT_LIMBU, "Limb" },
|
||||||
|
{ G_UNICODE_SCRIPT_OSMANYA, "Osma" },
|
||||||
|
{ G_UNICODE_SCRIPT_SHAVIAN, "Shaw" },
|
||||||
|
{ G_UNICODE_SCRIPT_LINEAR_B, "Linb" },
|
||||||
|
{ G_UNICODE_SCRIPT_TAI_LE, "Tale" },
|
||||||
|
{ G_UNICODE_SCRIPT_UGARITIC, "Ugar" },
|
||||||
|
|
||||||
|
/* Unicode-4.1 additions */
|
||||||
|
{ G_UNICODE_SCRIPT_NEW_TAI_LUE, "Talu" },
|
||||||
|
{ G_UNICODE_SCRIPT_BUGINESE, "Bugi" },
|
||||||
|
{ G_UNICODE_SCRIPT_GLAGOLITIC, "Glag" },
|
||||||
|
{ G_UNICODE_SCRIPT_TIFINAGH, "Tfng" },
|
||||||
|
{ G_UNICODE_SCRIPT_SYLOTI_NAGRI, "Sylo" },
|
||||||
|
{ G_UNICODE_SCRIPT_OLD_PERSIAN, "Xpeo" },
|
||||||
|
{ G_UNICODE_SCRIPT_KHAROSHTHI, "Khar" },
|
||||||
|
|
||||||
|
/* Unicode-5.0 additions */
|
||||||
|
{ G_UNICODE_SCRIPT_UNKNOWN, "Zzzz" },
|
||||||
|
{ G_UNICODE_SCRIPT_BALINESE, "Bali" },
|
||||||
|
{ G_UNICODE_SCRIPT_CUNEIFORM, "Xsux" },
|
||||||
|
{ G_UNICODE_SCRIPT_PHOENICIAN, "Phnx" },
|
||||||
|
{ G_UNICODE_SCRIPT_PHAGS_PA, "Phag" },
|
||||||
|
{ G_UNICODE_SCRIPT_NKO, "Nkoo" },
|
||||||
|
|
||||||
|
/* Unicode-5.1 additions */
|
||||||
|
{ G_UNICODE_SCRIPT_KAYAH_LI, "Kali" },
|
||||||
|
{ G_UNICODE_SCRIPT_LEPCHA, "Lepc" },
|
||||||
|
{ G_UNICODE_SCRIPT_REJANG, "Rjng" },
|
||||||
|
{ G_UNICODE_SCRIPT_SUNDANESE, "Sund" },
|
||||||
|
{ G_UNICODE_SCRIPT_SAURASHTRA, "Saur" },
|
||||||
|
{ G_UNICODE_SCRIPT_CHAM, "Cham" },
|
||||||
|
{ G_UNICODE_SCRIPT_OL_CHIKI, "Olck" },
|
||||||
|
{ G_UNICODE_SCRIPT_VAI, "Vaii" },
|
||||||
|
{ G_UNICODE_SCRIPT_CARIAN, "Cari" },
|
||||||
|
{ G_UNICODE_SCRIPT_LYCIAN, "Lyci" },
|
||||||
|
{ G_UNICODE_SCRIPT_LYDIAN, "Lydi" },
|
||||||
|
|
||||||
|
/* Unicode-5.2 additions */
|
||||||
|
{ G_UNICODE_SCRIPT_AVESTAN, "Avst" },
|
||||||
|
{ G_UNICODE_SCRIPT_BAMUM, "Bamu" },
|
||||||
|
{ G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS, "Egyp" },
|
||||||
|
{ G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC, "Armi" },
|
||||||
|
{ G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI, "Phli" },
|
||||||
|
{ G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN, "Prti" },
|
||||||
|
{ G_UNICODE_SCRIPT_JAVANESE, "Java" },
|
||||||
|
{ G_UNICODE_SCRIPT_KAITHI, "Kthi" },
|
||||||
|
{ G_UNICODE_SCRIPT_LISU, "Lisu" },
|
||||||
|
{ G_UNICODE_SCRIPT_MEETEI_MAYEK, "Mtei" },
|
||||||
|
{ G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN, "Sarb" },
|
||||||
|
{ G_UNICODE_SCRIPT_OLD_TURKIC, "Orkh" },
|
||||||
|
{ G_UNICODE_SCRIPT_SAMARITAN, "Samr" },
|
||||||
|
{ G_UNICODE_SCRIPT_TAI_THAM, "Lana" },
|
||||||
|
{ G_UNICODE_SCRIPT_TAI_VIET, "Tavt" },
|
||||||
|
|
||||||
|
/* Unicode-6.0 additions */
|
||||||
|
{ G_UNICODE_SCRIPT_BATAK, "Batk" },
|
||||||
|
{ G_UNICODE_SCRIPT_BRAHMI, "Brah" },
|
||||||
|
{ G_UNICODE_SCRIPT_MANDAIC, "Mand" },
|
||||||
|
|
||||||
|
/* Unicode-6.1 additions */
|
||||||
|
{ G_UNICODE_SCRIPT_CHAKMA, "Cakm" },
|
||||||
|
{ G_UNICODE_SCRIPT_MEROITIC_CURSIVE, "Merc" },
|
||||||
|
{ G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS, "Mero" },
|
||||||
|
{ G_UNICODE_SCRIPT_MIAO, "Plrd" },
|
||||||
|
{ G_UNICODE_SCRIPT_SHARADA, "Shrd" },
|
||||||
|
{ G_UNICODE_SCRIPT_SORA_SOMPENG, "Sora" },
|
||||||
|
{ G_UNICODE_SCRIPT_TAKRI, "Takr" },
|
||||||
|
};
|
||||||
|
guint i;
|
||||||
|
|
||||||
g_assert_cmphex (0, ==, g_unicode_script_to_iso15924 (G_UNICODE_SCRIPT_INVALID_CODE));
|
g_assert_cmphex (0, ==, g_unicode_script_to_iso15924 (G_UNICODE_SCRIPT_INVALID_CODE));
|
||||||
g_assert_cmphex (0x5A7A7A7A, ==, g_unicode_script_to_iso15924 (1000));
|
g_assert_cmphex (0x5A7A7A7A, ==, g_unicode_script_to_iso15924 (1000));
|
||||||
g_assert_cmphex (0x41726162, ==, g_unicode_script_to_iso15924 (G_UNICODE_SCRIPT_ARABIC));
|
g_assert_cmphex (0x41726162, ==, g_unicode_script_to_iso15924 (G_UNICODE_SCRIPT_ARABIC));
|
||||||
|
|
||||||
g_assert_cmphex (G_UNICODE_SCRIPT_INVALID_CODE, ==, g_unicode_script_from_iso15924 (0));
|
g_assert_cmphex (G_UNICODE_SCRIPT_INVALID_CODE, ==, g_unicode_script_from_iso15924 (0));
|
||||||
g_assert_cmphex (G_UNICODE_SCRIPT_UNKNOWN, ==, g_unicode_script_from_iso15924 (0x12345678));
|
g_assert_cmphex (G_UNICODE_SCRIPT_UNKNOWN, ==, g_unicode_script_from_iso15924 (0x12345678));
|
||||||
g_assert_cmphex (G_UNICODE_SCRIPT_ARABIC, ==, g_unicode_script_from_iso15924 (0x41726162));
|
|
||||||
|
#define PACK(a,b,c,d) ((guint32)((((guint8)(a))<<24)|(((guint8)(b))<<16)|(((guint8)(c))<<8)|((guint8)(d))))
|
||||||
|
|
||||||
|
for (i = 0; i < G_N_ELEMENTS (data); i++)
|
||||||
|
{
|
||||||
|
guint32 code = PACK (data[i].four_letter_code[0],
|
||||||
|
data[i].four_letter_code[1],
|
||||||
|
data[i].four_letter_code[2],
|
||||||
|
data[i].four_letter_code[3]);
|
||||||
|
|
||||||
|
g_assert_cmphex (g_unicode_script_to_iso15924 (data[i].script), ==, code);
|
||||||
|
g_assert_cmpint (g_unicode_script_from_iso15924 (code), ==, data[i].script);
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef PACK
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
Loading…
Reference in New Issue
Block a user