Skip to content

Commit 86a0d4b

Browse files
committed
Add more tests for mb_convert_kana
1 parent 92fb3de commit 86a0d4b

File tree

1 file changed

+134
-20
lines changed

1 file changed

+134
-20
lines changed

ext/mbstring/tests/mb_convert_kana.phpt

Lines changed: 134 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,79 @@ $hanKakuB = 'ーアイウエオカキクケコサシスセソ';
1616
$hanKakuC = 'タチツテトナニヌネノハヒフヘホマ';
1717
$hanKakuD = 'ミムメモヤユヨラリルレロワン゙゚';
1818

19+
echo $zenKakuA . ' => ' . mb_convert_kana($zenKakuA, 'AZKH', 'utf-8'), "\n";
20+
echo $zenKakuB . ' => ' . mb_convert_kana($zenKakuB, 'azkh', 'utf-8'), "\n";
21+
echo $zenKakuC . ' => ' . mb_convert_kana($zenKakuC, 'azkh', 'utf-8'), "\n";
22+
echo $zenKakuD . ' => ' . mb_convert_kana($zenKakuD, 'azkh', 'utf-8'), "\n";
23+
echo $zenKakuE . ' => ' . mb_convert_kana($zenKakuE, 'azkh', 'utf-8'), "\n";
24+
echo $zenKakuF . ' => ' . mb_convert_kana($zenKakuF, 'azkh', 'utf-8'), "\n\n";
1925

20-
echo $zenKakuA . ' => ' . mb_convert_kana($zenKakuA, 'AZKH', 'utf-8');
21-
echo "\n";
22-
echo $zenKakuB . ' => ' . mb_convert_kana($zenKakuB, 'azkh', 'utf-8');
23-
echo "\n";
24-
echo $zenKakuC . ' => ' . mb_convert_kana($zenKakuC, 'azkh', 'utf-8');
25-
echo "\n";
26-
echo $zenKakuD . ' => ' . mb_convert_kana($zenKakuD, 'azkh', 'utf-8');
27-
echo "\n";
28-
echo $zenKakuE . ' => ' . mb_convert_kana($zenKakuE, 'azkh', 'utf-8');
29-
echo "\n";
30-
echo $zenKakuF . ' => ' . mb_convert_kana($zenKakuF, 'azkh', 'utf-8');
31-
echo "\n";
32-
echo "\n";
33-
echo $hanKakuA . ' => ' . mb_convert_kana($hanKakuA, 'AZKH', 'utf-8');
34-
echo "\n";
35-
echo $hanKakuB . ' => ' . mb_convert_kana($hanKakuB, 'AZKH', 'utf-8');
36-
echo "\n";
37-
echo $hanKakuC . ' => ' . mb_convert_kana($hanKakuC, 'AZKH', 'utf-8');
38-
echo "\n";
39-
echo $hanKakuD . ' => ' . mb_convert_kana($hanKakuD, 'AZKH', 'utf-8');
26+
echo $hanKakuA . ' => ' . mb_convert_kana($hanKakuA, 'AZKH', 'utf-8'), "\n";
27+
echo $hanKakuB . ' => ' . mb_convert_kana($hanKakuB, 'AZKH', 'utf-8'), "\n";
28+
echo $hanKakuC . ' => ' . mb_convert_kana($hanKakuC, 'AZKH', 'utf-8'), "\n";
29+
echo $hanKakuD . ' => ' . mb_convert_kana($hanKakuD, 'AZKH', 'utf-8'), "\n\n";
30+
31+
echo "Convert ASCII letter to full-width: A -> ", bin2hex(mb_convert_kana("\x00A", 'A', 'UTF-16BE')), "\n";
32+
echo "Convert ASCII letter to full-width: A -> ", bin2hex(mb_convert_kana("\x00A", 'R', 'UTF-16BE')), "\n";
33+
echo "Convert ASCII numeral to full-width: 1 -> ", bin2hex(mb_convert_kana("\x001", 'N', 'UTF-16BE')), "\n";
34+
echo "Convert ASCII space to full-width: ", bin2hex(mb_convert_kana("\x00 ", 'S', 'UTF-16BE')), "\n\n";
35+
36+
echo "Convert hankaku kana to zenkaku kana:\n";
37+
echo "Using 'glue' mode:\n";
38+
echo bin2hex(mb_convert_kana("\xFF\x76\xFF\x9E", 'KV', 'UTF-16BE')), "\n";
39+
echo bin2hex(mb_convert_kana("\xFF\x73\xFF\x9E", 'KV', 'UTF-16BE')), "\n";
40+
echo bin2hex(mb_convert_kana("\xFF\x8A\xFF\x9F", 'KV', 'UTF-16BE')), "\n";
41+
echo bin2hex(mb_convert_kana("\xFF\x8A\x00A", 'KV', 'UTF-16BE')), "\n";
42+
echo bin2hex(mb_convert_kana("\xFF\x76\xFF\x9E", 'HV', 'UTF-16BE')), "\n";
43+
echo bin2hex(mb_convert_kana("\xFF\x8A\xFF\x9F", 'HV', 'UTF-16BE')), "\n";
44+
echo bin2hex(mb_convert_kana("\xFF\x8A\x00A", 'HV', 'UTF-16BE')), "\n";
45+
echo "Not using 'glue' mode:\n";
46+
echo bin2hex(mb_convert_kana("\xFF\x70", 'K', 'UTF-16BE')), "\n";
47+
echo bin2hex(mb_convert_kana("\xFF\x70", 'H', 'UTF-16BE')), "\n\n";
48+
49+
echo "Convert selected punctuation/symbols to full-width and back:\n";
50+
echo bin2hex(mb_convert_kana("\x00\x5C\x00\xA5\x00\x7E\x20\x3E\x00\x27\x00\x22", 'M', 'UTF-16BE')), "\n";
51+
echo bin2hex(mb_convert_kana("\xFF\xE5\xFF\x3C\xFF\xE3\x20\x3E\x20\x18\x20\x19\x20\x1C\x20\x1D", 'm', 'UTF-16BE')), "\n\n";
52+
53+
echo "Convert various full-width characters to half-width:\n";
54+
echo bin2hex(mb_convert_kana("\xFF\x01", 'a', 'UTF-16BE')), "\n";
55+
echo bin2hex(mb_convert_kana("\xFF\x21", 'r', 'UTF-16BE')), "\n";
56+
echo bin2hex(mb_convert_kana("\xFF\x10", 'n', 'UTF-16BE')), "\n";
57+
echo bin2hex(mb_convert_kana("\x30\x00", 's', 'UTF-16BE')), "\n";
58+
echo bin2hex(mb_convert_kana("\x22\x12", 'a', 'UTF-16BE')), "\n\n";
59+
60+
echo "Convert full-width kana to half-width:\n";
61+
echo bin2hex(mb_convert_kana("\x30\x41", 'h', 'UTF-16BE')), "\n";
62+
echo bin2hex(mb_convert_kana("\x30\x01", 'h', 'UTF-16BE')), "\n";
63+
echo bin2hex(mb_convert_kana("\x30\x02", 'h', 'UTF-16BE')), "\n";
64+
echo bin2hex(mb_convert_kana("\x30\x0C", 'h', 'UTF-16BE')), "\n";
65+
echo bin2hex(mb_convert_kana("\x30\x0D", 'h', 'UTF-16BE')), "\n";
66+
echo bin2hex(mb_convert_kana("\x30\x9B", 'h', 'UTF-16BE')), "\n";
67+
echo bin2hex(mb_convert_kana("\x30\x9C", 'h', 'UTF-16BE')), "\n";
68+
echo bin2hex(mb_convert_kana("\x30\xFC", 'h', 'UTF-16BE')), "\n";
69+
echo bin2hex(mb_convert_kana("\x30\xFB", 'h', 'UTF-16BE')), "\n";
70+
echo bin2hex(mb_convert_kana("\x30\x01", 'k', 'UTF-16BE')), "\n";
71+
echo bin2hex(mb_convert_kana("\x30\x02", 'k', 'UTF-16BE')), "\n";
72+
echo bin2hex(mb_convert_kana("\x30\x0C", 'k', 'UTF-16BE')), "\n";
73+
echo bin2hex(mb_convert_kana("\x30\x0D", 'k', 'UTF-16BE')), "\n";
74+
echo bin2hex(mb_convert_kana("\x30\x9B", 'k', 'UTF-16BE')), "\n";
75+
echo bin2hex(mb_convert_kana("\x30\x9C", 'k', 'UTF-16BE')), "\n";
76+
echo bin2hex(mb_convert_kana("\x30\xFC", 'k', 'UTF-16BE')), "\n";
77+
echo bin2hex(mb_convert_kana("\x30\xFB", 'k', 'UTF-16BE')), "\n";
78+
echo "Including one which will expand to two codepoints:\n";
79+
echo bin2hex(mb_convert_kana("\x30\x52", 'h', 'UTF-16BE')), "\n\n";
80+
81+
echo "Convert full-width hiragana to full-width katakana:\n";
82+
echo bin2hex(mb_convert_kana("\x30\x41", 'C', 'UTF-16BE')), "\n";
83+
echo bin2hex(mb_convert_kana("\x30\x9D", 'C', 'UTF-16BE')), "\n";
84+
echo bin2hex(mb_convert_kana("\x30\x9E", 'C', 'UTF-16BE')), "\n\n";
85+
86+
echo "Convert full-width katakana to full-width hiragana:\n";
87+
echo bin2hex(mb_convert_kana("\x30\xA1", 'c', 'UTF-16BE')), "\n";
88+
echo bin2hex(mb_convert_kana("\x30\xFD", 'c', 'UTF-16BE')), "\n";
89+
echo bin2hex(mb_convert_kana("\x30\xFE", 'c', 'UTF-16BE')), "\n\n";
90+
91+
echo bin2hex(mb_convert_kana("\x00\x00", 'A', 'UTF-16BE')), "\n";
4092
?>
4193
--EXPECT--
4294
ァアィイゥウェエォオカガキギク => ァアィイゥウェエォオカガキギク
@@ -50,6 +102,68 @@ echo $hanKakuD . ' => ' . mb_convert_kana($hanKakuD, 'AZKH', 'utf-8');
50102
ーアイウエオカキクケコサシスセソ => ーアイウエオカキクケコサシスセソ
51103
タチツテトナニヌネノハヒフヘホマ => タチツテトナニヌネノハヒフヘホマ
52104
ミムメモヤユヨラリルレロワン゙゚ => ミムメモヤユヨラリルレロワン゛゜
105+
106+
Convert ASCII letter to full-width: A -> ff21
107+
Convert ASCII letter to full-width: A -> ff21
108+
Convert ASCII numeral to full-width: 1 -> ff11
109+
Convert ASCII space to full-width: 3000
110+
111+
Convert hankaku kana to zenkaku kana:
112+
Using 'glue' mode:
113+
30ac
114+
30f4
115+
30d1
116+
30cf0041
117+
304c
118+
3071
119+
306f0041
120+
Not using 'glue' mode:
121+
30fc
122+
30fc
123+
124+
Convert selected punctuation/symbols to full-width and back:
125+
ffe5ffe5ffe3ffe32019201d
126+
005c005c007e007e0027002700220022
127+
128+
Convert various full-width characters to half-width:
129+
0021
130+
0041
131+
0030
132+
0020
133+
002d
134+
135+
Convert full-width kana to half-width:
136+
ff67
137+
ff64
138+
ff61
139+
ff62
140+
ff63
141+
ff9e
142+
ff9f
143+
ff70
144+
ff65
145+
ff64
146+
ff61
147+
ff62
148+
ff63
149+
ff9e
150+
ff9f
151+
ff70
152+
ff65
153+
Including one which will expand to two codepoints:
154+
ff79ff9e
155+
156+
Convert full-width hiragana to full-width katakana:
157+
30a1
158+
30fd
159+
30fe
160+
161+
Convert full-width katakana to full-width hiragana:
162+
3041
163+
309d
164+
309e
165+
166+
0000
53167
--CREDITS--
54168
Jason Easter <easter@phpug-wuerzburg.de>
55169
PHPUG Würzburg <phpug-wuerzburg.de>

0 commit comments

Comments
 (0)