1
2BEGIN { $| = 1; print "1..13\n"; }
3END {print "not ok 1\n" unless $loaded;}
4use String::Multibyte;
5$^W = 1;
6$loaded = 1;
7print "ok 1\n";
8
9$mb = String::Multibyte->new({
10	charset => 'sjis_grapheme',
11	regexp => '[\xB3\xB6-\xC4]\xDE|[\xCA-\xCE][\xDE\xDF]|' .
12	    '[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]',
13    }, 1);
14
15$NG = 0;
16for ("�����e�X�g", "abc", "�����", "�߰�=Perl",
17	"\001\002\003\000\n", "", " ", '�@') {
18    $NG++ unless $mb->islegal($_);
19}
20print !$NG ? "ok" : "not ok", " 2\n";
21
22for ("�����������\xFF\xFF", "�ǂ��ɂ������ɂ�\x81\x39",
23	"\x91\x00", "�����\xFF�ǂ�����") {
24    $NG++ unless ! $mb->islegal($_);
25}
26print !$NG ? "ok" : "not ok", " 3\n";
27
28print $mb->islegal("��", "P", "", "�ݼ� test")
29    && ! $mb->islegal("���{","��kanji","\xA0","PERL")
30  ? "ok" : "not ok", " 4\n";
31
32print 0 eq $mb->length("")
33  &&  3 eq $mb->length("abc")
34  &&  4 eq $mb->length("abc\n")
35  &&  5 eq $mb->length("�����")
36  &&  3 eq $mb->length("�߰�")
37  &&  6 eq $mb->length("�޷޸޹޺޳�")
38  && 10 eq $mb->length("���������Ȃ͂܂���")
39  && 14 eq $mb->length("����������\n\n�͂܂���\n\n")
40  &&  9 eq $mb->length('AIUEO���{����')
41  ? "ok" : "not ok", " 5\n";
42
43$ref = '�����{�������OEUIAoeuia����������';
44$str = '����������aiueoAIUEO��������{����';
45
46print $ref eq $mb->strrev($str)
47  ? "ok" : "not ok", " 6\n";
48
49$ref = '�߰ق��g���ı���ϼ��';
50$str = '�����޿��Ă��g��ٰ��';
51
52print $ref eq $mb->strrev($str)
53  ? "ok" : "not ok", " 7\n";
54
55print $mb->strspn ("XZ\0Z\0Y", "\0X\0YZ") == 6
56   && $mb->strcspn("Perl�͖ʔ����B", "XY\0r") == 2
57   && $mb->strspn ("+0.12345*12", "+-.0123456789") == 8
58   && $mb->strcspn("Perl�͖ʔ����B", "�Ԑ‰�����") == 6
59   && $mb->strspn ("", "123") == 0
60   && $mb->strcspn("", "123") == 0
61   && $mb->strspn ("����������", "") == 0
62   && $mb->strcspn("����������", "") == 5
63   && $mb->strspn ("���������", "����������") == 2
64   && $mb->strcspn("��ɺ����", "�޷޸޹޺�") == 3
65   && $mb->strspn ("���������", "�����") == 0
66   && $mb->strcspn("���������", "�����") == 2
67   && $mb->strspn ("��ɺ����", "�����") == 1
68   && $mb->strcspn("��ɺ����", "�����") == 0
69   && $mb->strspn ("", "") == 0
70   && $mb->strcspn("", "") == 0
71 ? "ok" : "not ok", " 8\n";
72
73$str = "�Ȃ�Ƃ�������";
74print 3 eq $mb->strtr(\$str,"����������", "�A�C�E�G�I")
75    && $str eq "�Ȃ�ƃC�I�E��"
76    ? "ok" : "not ok", " 9\n";
77
78$digit_tr = $mb->trclosure(
79    "1234567890-", "���O�l�ܘZ������Z�|");
80
81$frstr1 = "TEL�F0124-45-6789\n";
82$tostr1 = "TEL�F�Z���l�|�l�܁|�Z������\n";
83$frstr2 = "FAX�F0124-51-5368\n";
84$tostr2 = "FAX�F�Z���l�|�܈�|�܎O�Z��\n";
85
86$restr1 = &$digit_tr($frstr1);
87$restr2 = &$digit_tr($frstr2);
88
89print $tostr1 eq $restr1 && $tostr2 eq $restr2
90    ? "ok" : "not ok", " 10\n";
91
92print $mb->index("", "") == 0
93   && $mb->index("", "a") == -1
94   && $mb->index(" ", "") == 0
95   && $mb->index(" ", "", 1) == 1
96   && $mb->index("", " ", 1) == -1
97   && $mb->index(" ", "a", -1) == -1
98   && $mb->index("\x81\x81\x40\x81\x40", "\x81\x40") == 2
99   && $mb->index("�Ĥ���", "���") == 3
100   && $mb->index("�Ĥ��", "���") == -1
101   && $mb->index("�Ĥ���", "��") == 0
102   && $mb->index("��ޤ��", "��") == 3
103   && $mb->index("Ŷ�ޤŶ�", "Ŷ�") == 4
104   && $mb->index("Ŷ�ޤŶ�", "Ŷ��") == 0
105    ? "ok" : "not ok", " 11\n";
106
107print $mb->rindex("", "") == 0
108   && $mb->rindex("", "a") == -1
109   && $mb->rindex(" ", "") == 1
110   && $mb->rindex(" ", "", 1) == 1
111   && $mb->rindex("", " ", 1) == -1
112   && $mb->rindex(" ", "a", -1) == -1
113   && $mb->rindex("\x81\x81\x40\x81\x40", "\x81\x40") == 2
114   && $mb->rindex("�Ĥ���", "���") == 3
115   && $mb->rindex("�Ĥ��", "���") == -1
116   && $mb->rindex("�Ĥ���", "��") == 0
117   && $mb->rindex("��ޤ��", "��") == 3
118   && $mb->rindex("Ŷ�ޤŶ�", "Ŷ�") == 4
119   && $mb->rindex("Ŷ�ޤŶ�", "Ŷ��") == 0
120    ? "ok" : "not ok", " 12\n";
121
122print "�޶޶޶޶�:�޶޶޶�:�޶޶�" eq
123	join(':', $mb->strsplit("�", "�޶޶޶޶޶�޶޶޶޶�޶޶�"))
124   && "�޶޶޶޶޶�޶޶޶޶�޶޶�" eq
125	join(':', $mb->strsplit("�", "�޶޶޶޶޶�޶޶޶޶�޶޶�", 1))
126   && "�޶޶޶޶�:�޶޶޶޶�޶޶�" eq
127	join(':', $mb->strsplit("�", "�޶޶޶޶޶�޶޶޶޶�޶޶�", 2))
128   && "�޶޶޶޶�:�޶޶޶�:�޶޶�" eq
129	join(':', $mb->strsplit("�", "�޶޶޶޶޶�޶޶޶޶�޶޶�", 3))
130   && "�޶޶�:�޶�:�޶޶�" eq
131	join(':', $mb->strsplit("�޶޶", "�޶޶޶޶޶�޶޶޶޶�޶޶�"))
132   && "�޶޶�::��:�޶�" eq
133	join(':', $mb->strsplit("�޶޶", "�޶޶޶޶޶�޶޶�޶޶޶�޶�"))
134   && "�޶�:�޶޶:�޶�" eq
135	join(':', $mb->strsplit("�޶޶޶", "�޶޶޶޶޶�޶޶�޶޶޶�޶�"))
136    ? "ok" : "not ok", " 13\n";
137
1381;
139__END__
140
141