diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-06-27 11:35:42 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-06-28 00:05:09 -0400 |
commit | 80b191f0a5c2b0b9e7f38d87c7851ba2ae64c0cb (patch) | |
tree | a1f0649e77c097e9cb6ff4b441194565e6e23205 /tests | |
parent | b6b937e294593c461c5bd6d36e858e5845ff9331 (diff) | |
download | pango-80b191f0a5c2b0b9e7f38d87c7851ba2ae64c0cb.tar.gz |
tests: Add some bidi api tests
Diffstat (limited to 'tests')
-rw-r--r-- | tests/testmisc.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/testmisc.c b/tests/testmisc.c index e241c56f..eb5c16e7 100644 --- a/tests/testmisc.c +++ b/tests/testmisc.c @@ -233,6 +233,68 @@ test_gravity_for_script (void) } } +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + +static void +test_bidi_type_for_unichar (void) +{ + /* one representative from each class we support */ + g_assert_true (pango_bidi_type_for_unichar ('a') == PANGO_BIDI_TYPE_L); + g_assert_true (pango_bidi_type_for_unichar (0x202a) == PANGO_BIDI_TYPE_LRE); + g_assert_true (pango_bidi_type_for_unichar (0x202d) == PANGO_BIDI_TYPE_LRO); + g_assert_true (pango_bidi_type_for_unichar (0x05d0) == PANGO_BIDI_TYPE_R); + g_assert_true (pango_bidi_type_for_unichar (0x0627) == PANGO_BIDI_TYPE_AL); + g_assert_true (pango_bidi_type_for_unichar (0x202b) == PANGO_BIDI_TYPE_RLE); + g_assert_true (pango_bidi_type_for_unichar (0x202e) == PANGO_BIDI_TYPE_RLO); + g_assert_true (pango_bidi_type_for_unichar (0x202c) == PANGO_BIDI_TYPE_PDF); + g_assert_true (pango_bidi_type_for_unichar ('0') == PANGO_BIDI_TYPE_EN); + g_assert_true (pango_bidi_type_for_unichar ('+') == PANGO_BIDI_TYPE_ES); + g_assert_true (pango_bidi_type_for_unichar ('#') == PANGO_BIDI_TYPE_ET); + g_assert_true (pango_bidi_type_for_unichar (0x601) == PANGO_BIDI_TYPE_AN); + g_assert_true (pango_bidi_type_for_unichar (',') == PANGO_BIDI_TYPE_CS); + g_assert_true (pango_bidi_type_for_unichar (0x0301) == PANGO_BIDI_TYPE_NSM); + g_assert_true (pango_bidi_type_for_unichar (0x200d) == PANGO_BIDI_TYPE_BN); + g_assert_true (pango_bidi_type_for_unichar (0x2029) == PANGO_BIDI_TYPE_B); + g_assert_true (pango_bidi_type_for_unichar (0x000b) == PANGO_BIDI_TYPE_S); + g_assert_true (pango_bidi_type_for_unichar (' ') == PANGO_BIDI_TYPE_WS); + g_assert_true (pango_bidi_type_for_unichar ('!') == PANGO_BIDI_TYPE_ON); + /* this should be FSI */ + g_assert_true (pango_bidi_type_for_unichar (0x2026) == PANGO_BIDI_TYPE_ON); +} + +static void +test_bidi_mirror_char (void) +{ + /* just some samples */ + struct { + gunichar a; + gunichar b; + } tests[] = { + { '(', ')' }, + { '<', '>' }, + { '[', ']' }, + { '{', '}' }, + { 0x00ab, 0x00bb }, + { 0x2045, 0x2046 }, + { 0x226e, 0x226f }, + }; + + for (int i = 0; i < G_N_ELEMENTS (tests); i++) + { + gboolean ret; + gunichar ch; + + ret = pango_get_mirror_char (tests[i].a, &ch); + g_assert_true (ret); + g_assert_true (ch == tests[i].b); + ret = pango_get_mirror_char (tests[i].b, &ch); + g_assert_true (ret); + g_assert_true (ch == tests[i].a); + } +} + +G_GNUC_END_IGNORE_DEPRECATIONS + int main (int argc, char *argv[]) { @@ -250,6 +312,8 @@ main (int argc, char *argv[]) g_test_add_func ("/gravity/to-rotation", test_gravity_to_rotation); g_test_add_func ("/gravity/from-matrix", test_gravity_from_matrix); g_test_add_func ("/gravity/for-script", test_gravity_for_script); + g_test_add_func ("/bidi/type-for-unichar", test_bidi_type_for_unichar); + g_test_add_func ("/bidi/mirror-char", test_bidi_mirror_char); return g_test_run (); } |