UCD.pm: if at first you don't succeed, croak?
[p5sagit/p5-mst-13.2.git] / lib / Unicode / UCD.t
1 use Unicode::UCD 3.1.0;
2
3 use Test;
4 use strict;
5
6 BEGIN { plan tests => 81 };
7
8 use Unicode::UCD 'charinfo';
9
10 my %charinfo;
11
12 %charinfo = charinfo(0x41);
13
14 ok($charinfo{code},           '0041');
15 ok($charinfo{name},           'LATIN CAPITAL LETTER A');
16 ok($charinfo{category},       'Lu');
17 ok($charinfo{combining},      '0');
18 ok($charinfo{bidi},           'L');
19 ok($charinfo{decomposition},  '');
20 ok($charinfo{decimal},        '');
21 ok($charinfo{digit},          '');
22 ok($charinfo{numeric},        '');
23 ok($charinfo{mirrored},       'N');
24 ok($charinfo{unicode10},      '');
25 ok($charinfo{comment},        '');
26 ok($charinfo{upper},          '');
27 ok($charinfo{lower},          '0061');
28 ok($charinfo{title},          '');
29 ok($charinfo{block},          'Basic Latin');
30
31 %charinfo = charinfo(0x100);
32
33 ok($charinfo{code},           '0100');
34 ok($charinfo{name},           'LATIN CAPITAL LETTER A WITH MACRON');
35 ok($charinfo{category},       'Lu');
36 ok($charinfo{combining},      '0');
37 ok($charinfo{bidi},           'L');
38 ok($charinfo{decomposition},  '0041 0304');
39 ok($charinfo{decimal},        '');
40 ok($charinfo{digit},          '');
41 ok($charinfo{numeric},        '');
42 ok($charinfo{mirrored},       'N');
43 ok($charinfo{unicode10},      'LATIN CAPITAL LETTER A MACRON');
44 ok($charinfo{comment},        '');
45 ok($charinfo{upper},          '');
46 ok($charinfo{lower},          '0101');
47 ok($charinfo{title},          '');
48 ok($charinfo{block},          'Latin Extended-A');
49
50 %charinfo = charinfo(0x590);
51
52 ok($charinfo{code},          undef);
53 ok($charinfo{name},          undef);
54 ok($charinfo{category},      undef);
55 ok($charinfo{combining},     undef);
56 ok($charinfo{bidi},          undef);
57 ok($charinfo{decomposition}, undef);
58 ok($charinfo{decimal},       undef);
59 ok($charinfo{digit},         undef);
60 ok($charinfo{numeric},       undef);
61 ok($charinfo{mirrored},      undef);
62 ok($charinfo{unicode10},     undef);
63 ok($charinfo{comment},       undef);
64 ok($charinfo{upper},         undef);
65 ok($charinfo{lower},         undef);
66 ok($charinfo{title},         undef);
67 ok($charinfo{block},         undef);
68
69 %charinfo = charinfo(0x5d0);
70
71 ok($charinfo{code},           '05D0');
72 ok($charinfo{name},           'HEBREW LETTER ALEF');
73 ok($charinfo{category},       'Lo');
74 ok($charinfo{combining},      '0');
75 ok($charinfo{bidi},           'R');
76 ok($charinfo{decomposition},  '');
77 ok($charinfo{decimal},        '');
78 ok($charinfo{digit},          '');
79 ok($charinfo{numeric},        '');
80 ok($charinfo{mirrored},       'N');
81 ok($charinfo{unicode10},      '');
82 ok($charinfo{comment},        '');
83 ok($charinfo{upper},          '');
84 ok($charinfo{lower},          '');
85 ok($charinfo{title},          '');
86 ok($charinfo{block},          'Hebrew');
87
88 use Unicode::UCD 'charblock';
89
90 ok(charblock(0x590),          'Hebrew');
91
92 %charinfo = charinfo(0xbe);
93
94 ok($charinfo{code},           '00BE');
95 ok($charinfo{name},           'VULGAR FRACTION THREE QUARTERS');
96 ok($charinfo{category},       'No');
97 ok($charinfo{combining},      '0');
98 ok($charinfo{bidi},           'ON');
99 ok($charinfo{decomposition},  '<fraction> 0033 2044 0034');
100 ok($charinfo{decimal},        '');
101 ok($charinfo{digit},          '');
102 ok($charinfo{numeric},        '3/4');
103 ok($charinfo{mirrored},       'N');
104 ok($charinfo{unicode10},      'FRACTION THREE QUARTERS');
105 ok($charinfo{comment},        '');
106 ok($charinfo{upper},          '');
107 ok($charinfo{lower},          '');
108 ok($charinfo{title},          '');
109 ok($charinfo{block},          'Latin-1 Supplement');
110