OSDN Git Service

* merge from nkf32.dll
[nkf/nkf.git] / nkf_test.pl
1 #!/usr/local/bin/perl
2 #
3 # nkf test program for nkf-2
4 #
5 # $Id: nkf_test.pl,v 1.10 2005/01/02 05:46:25 naruse Exp $
6 #
7 #    Shinji KONO <kono@ie.u-ryukyu.ac.jp>
8 # Sun Aug 18 12:25:40 JST 1996
9 # Sun Nov  8 00:16:06 JST 1998
10 #
11 # This is useful when you add new patch on nkf.
12 # Since this test is too strict, faileurs may not mean
13 # wrong conversion. 
14 #
15 # nkf 1.5 differs on MIME decoding
16 # nkf 1.4 passes Basic Conversion tests
17 # nkf PDS version passes Basic Conversion tests  using "nkf -iB -oB "
18 #
19
20 # Basic Conversion
21 print "\nBasic Conversion test\n\n";
22
23 # I gave up simple literal quote because there are big difference
24 # on perl4 and perl5 on literal quote. Of course we cannot use
25 # jperl.
26
27 $example{'jis'} = unpack('u',<<'eofeof');
28 M1FER<W0@4W1A9V4@&R1"(3DQ(3%^2R%+?D]3&RA"(%-E8V]N9"!3=&%G92`;
29 M)$)0)TU:&RA"($AI<F%G86YA(!LD0B0B)"0D)B0H)"HD;R1R)',;*$(*2V%T
30 M86MA;F$@&R1")2(E)"4F)2@E*B5O)7(E<QLH0B!+:6=O=2`;)$(A)B%G(S`C
31 /029!)E@G(B=!*$`;*$(*
32 eofeof
33
34 $example{'sjis'} = unpack('u',<<'eofeof');
35 M1FER<W0@4W1A9V4@@5B)0(F>ED"6GIAR(%-E8V]N9"!3=&%G92"8I9=Y($AI
36 M<F%G86YA((*@@J*"I(*F@JB"[8+P@O$*2V%T86MA;F$@@T&#0X-%@T>#28./
37 >@Y*#DR!+:6=O=2"!18&'@D^"8(._@]:$081@A+X*
38 eofeof
39
40 $example{'euc'} = unpack('u',<<'eofeof');
41 M1FER<W0@4W1A9V4@H;FQH;'^RZ'+_L_3(%-E8V]N9"!3=&%G92#0I\W:($AI
42 M<F%G86YA(*2BI*2DIJ2HI*JD[Z3RI/,*2V%T86MA;F$@I:*EI*6FI:BEJJ7O
43 >I?*E\R!+:6=O=2"AIJ'GH["CP:;!IMBGHJ?!J,`*
44 eofeof
45
46 $example{'utf8'} = unpack('u',<<'eofeof');
47 M[[N_1FER<W0@4W1A9V4@XX"%Z9FBY;^<YK.5YKJ`Z(65(%-E8V]N9"!3=&%G
48 M92#DN+SI@:4@2&ER86=A;F$@XX&"XX&$XX&&XX&(XX&*XX*/XX*2XX*3"DMA
49 M=&%K86YA(.."HN."I.."IN."J.."JN.#K^.#LN.#LR!+:6=O=2#C@[OBB)[O
50 1O)#OO*'.L<^)T)'0K^*5@@H`
51 eofeof
52
53 $example{'utf8N'} = unpack('u',<<'eofeof');
54 M1FER<W0@4W1A9V4@XX"%Z9FBY;^<YK.5YKJ`Z(65(%-E8V]N9"!3=&%G92#D
55 MN+SI@:4@2&ER86=A;F$@XX&"XX&$XX&&XX&(XX&*XX*/XX*2XX*3"DMA=&%K
56 M86YA(.."HN."I.."IN."J.."JN.#K^.#LN.#LR!+:6=O=2#C@[OBB)[OO)#O
57 .O*'.L<^)T)'0K^*5@@H`
58 eofeof
59
60 $example{'u16L'} = unpack('u',<<'eofeof');
61 M__Y&`&D`<@!S`'0`(`!3`'0`80!G`&4`(``%,&*6W%_5;(!N58$@`%,`90!C
62 M`&\`;@!D`"``4P!T`&$`9P!E`"``/$YED"``2`!I`'(`80!G`&$`;@!A`"``
63 M0C!$,$8P2#!*,(\PDC"3,`H`2P!A`'0`80!K`&$`;@!A`"``HC"D,*8PJ#"J
64 I,.\P\C#S,"``2P!I`&<`;P!U`"``^S`>(A#_(?^Q`\D#$00O!$(E"@``
65 eofeof
66
67 $example{'u16L0'} = unpack('u',<<'eofeof');
68 M1@!I`'(`<P!T`"``4P!T`&$`9P!E`"``!3!BEMQ?U6R`;E6!(`!3`&4`8P!O
69 M`&X`9``@`%,`=`!A`&<`90`@`#Q.99`@`$@`:0!R`&$`9P!A`&X`80`@`$(P
70 M1#!&,$@P2C"/,)(PDS`*`$L`80!T`&$`:P!A`&X`80`@`*(PI#"F,*@PJC#O
71 G,/(P\S`@`$L`:0!G`&\`=0`@`/LP'B(0_R'_L0/)`Q$$+P1")0H`
72 eofeof
73
74 $example{'u16B'} = unpack('u',<<'eofeof');
75 M_O\`1@!I`'(`<P!T`"``4P!T`&$`9P!E`"`P!99B7]QLU6Z`@54`(`!3`&4`
76 M8P!O`&X`9``@`%,`=`!A`&<`90`@3CR090`@`$@`:0!R`&$`9P!A`&X`80`@
77 M,$(P1#!&,$@P2C"/,)(PDP`*`$L`80!T`&$`:P!A`&X`80`@,*(PI#"F,*@P
78 IJC#O,/(P\P`@`$L`:0!G`&\`=0`@,/LB'O\0_R$#L0/)!!$$+R5"``H`
79 eofeof
80
81 $example{'u16B0'} = unpack('u',<<'eofeof');
82 M`$8`:0!R`',`=``@`%,`=`!A`&<`90`@,`668E_<;-5N@(%5`"``4P!E`&,`
83 M;P!N`&0`(`!3`'0`80!G`&4`($X\D&4`(`!(`&D`<@!A`&<`80!N`&$`(#!"
84 M,$0P1C!(,$HPCS"2,),`"@!+`&$`=`!A`&L`80!N`&$`(#"B,*0PIC"H,*HP
85 G[S#R,/,`(`!+`&D`9P!O`'4`(##[(A[_$/\A`[$#R001!"\E0@`*
86 eofeof
87
88 $example{'jis1'} = unpack('u',<<'eofeof');
89 M&R1";3%Q<$$L&RA""ALD0F4Z3F\;*$(*&R1"<FT;*$()&R1"/F5.3D]+&RA"
90 #"0D*
91 eofeof
92
93 $example{'sjis1'} = unpack('u',<<'eofeof');
94 8YU#ID)%+"N-9E^T*Z>L)C^.7S)AJ"0D*
95 eofeof
96
97 $example{'euc1'} = unpack('u',<<'eofeof');
98 8[;'Q\,&L"N6ZSN\*\NT)ON7.SL_+"0D*
99 eofeof
100
101 $example{'utf1'} = unpack('u',<<'eofeof');
102 AZ+J%Z:N/Z8JM"N>VNNFZEPKIM(D)Y+B*Z:"8Y+J8"0D*
103 eofeof
104
105 $example{'jis2'} = unpack('u',<<'eofeof');
106 +&R1".EA&(QLH0@H`
107 eofeof
108
109 $example{'sjis2'} = unpack('u',<<'eofeof');
110 %C=:3H0H`
111 eofeof
112
113 $example{'euc2'} = unpack('u',<<'eofeof');
114 %NMC&HPH`
115 eofeof
116
117 $example{'utf2'} = unpack('u',<<'eofeof');
118 'YI:.Z)>D"@``
119 eofeof
120
121 # From JIS
122
123 print "JIS  to JIS ... ";&test("$nkf -j",$example{'jis'},$example{'jis'});
124 print "JIS  to SJIS... ";&test("$nkf -s",$example{'jis'},$example{'sjis'});
125 print "JIS  to EUC ... ";&test("$nkf -e",$example{'jis'},$example{'euc'});
126 print "JIS  to UTF8... ";&test("$nkf -w",$example{'jis'},$example{'utf8N'});
127 print "JIS  to U16L... ";&test("$nkf -w16L",$example{'jis'},$example{'u16L'});
128 print "JIS  to U16B... ";&test("$nkf -w16B",$example{'jis'},$example{'u16B'});
129
130 # From SJIS
131
132 print "SJIS to JIS ... ";&test("$nkf -j",$example{'sjis'},$example{'jis'});
133 print "SJIS to SJIS... ";&test("$nkf -s",$example{'sjis'},$example{'sjis'});
134 print "SJIS to EUC ... ";&test("$nkf -e",$example{'sjis'},$example{'euc'});
135 print "SJIS to UTF8... ";&test("$nkf -w",$example{'sjis'},$example{'utf8N'});
136 print "SJIS to U16L... ";&test("$nkf -w16L",$example{'sjis'},$example{'u16L'});
137 print "SJIS to U16B... ";&test("$nkf -w16B",$example{'sjis'},$example{'u16B'});
138
139 # From EUC
140
141 print "EUC  to JIS ... ";&test("$nkf -j",$example{'euc'},$example{'jis'});
142 print "EUC  to SJIS... ";&test("$nkf -s",$example{'euc'},$example{'sjis'});
143 print "EUC  to EUC ... ";&test("$nkf -e",$example{'euc'},$example{'euc'});
144 print "EUC  to UTF8... ";&test("$nkf -w",$example{'euc'},$example{'utf8N'});
145 print "EUC  to U16L... ";&test("$nkf -w16L",$example{'euc'},$example{'u16L'});
146 print "EUC  to U16B... ";&test("$nkf -w16B",$example{'euc'},$example{'u16B'});
147
148 # From UTF8
149
150 print "UTF8 to JIS ... ";&test("$nkf -j",       $example{'utf8N'},$example{'jis'});
151 print "UTF8 to SJIS... ";&test("$nkf -s",       $example{'utf8N'},$example{'sjis'});
152 print "UTF8 to EUC ... ";&test("$nkf -e",       $example{'utf8N'},$example{'euc'});
153 print "UTF8 to UTF8N.. ";&test("$nkf -w",       $example{'utf8N'},$example{'utf8N'});
154 print "UTF8 to UTF8... ";&test("$nkf -w8",      $example{'utf8N'},$example{'utf8'});
155 print "UTF8 to UTF8N.. ";&test("$nkf -w80",     $example{'utf8N'},$example{'utf8N'});
156 print "UTF8 to U16L... ";&test("$nkf -w16L",    $example{'utf8N'},$example{'u16L'});
157 print "UTF8 to U16L0.. ";&test("$nkf -w16L0",   $example{'utf8N'},$example{'u16L0'});
158 print "UTF8 to U16B... ";&test("$nkf -w16B",    $example{'utf8N'},$example{'u16B'});
159 print "UTF8 to U16B0.. ";&test("$nkf -w16B0",   $example{'utf8N'},$example{'u16B0'});
160
161
162
163 # From JIS
164
165 print "JIS  to JIS ... ";&test("$nkf -j",$example{'jis1'},$example{'jis1'});
166 print "JIS  to SJIS... ";&test("$nkf -s",$example{'jis1'},$example{'sjis1'});
167 print "JIS  to EUC ... ";&test("$nkf -e",$example{'jis1'},$example{'euc1'});
168 print "JIS  to UTF8... ";&test("$nkf -w",$example{'jis1'},$example{'utf1'});
169
170 # From SJIS
171
172 print "SJIS to JIS ... ";&test("$nkf -j",$example{'sjis1'},$example{'jis1'});
173 print "SJIS to SJIS... ";&test("$nkf -s",$example{'sjis1'},$example{'sjis1'});
174 print "SJIS to EUC ... ";&test("$nkf -e",$example{'sjis1'},$example{'euc1'});
175 print "SJIS to UTF8... ";&test("$nkf -w",$example{'sjis1'},$example{'utf1'});
176
177 # From EUC
178
179 print "EUC  to JIS ... ";&test("$nkf -j",$example{'euc1'},$example{'jis1'});
180 print "EUC  to SJIS... ";&test("$nkf -s",$example{'euc1'},$example{'sjis1'});
181 print "EUC  to EUC ... ";&test("$nkf -e",$example{'euc1'},$example{'euc1'});
182 print "EUC  to UTF8... ";&test("$nkf -w",$example{'euc1'},$example{'utf1'});
183
184 # From UTF8
185
186 print "UTF8 to JIS ... ";&test("$nkf -j",$example{'utf1'},$example{'jis1'});
187 print "UTF8 to SJIS... ";&test("$nkf -s",$example{'utf1'},$example{'sjis1'});
188 print "UTF8 to EUC ... ";&test("$nkf -e",$example{'utf1'},$example{'euc1'});
189 print "UTF8 to UTF8... ";&test("$nkf -w",$example{'utf1'},$example{'utf1'});
190
191 # Ambigous Case
192
193 $example{'amb'} = unpack('u',<<'eofeof');
194 MI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&E
195 MPK"QI<*PL:7"L+&EPK"QI<(*I<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*P
196 ML:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<(*I<*PL:7"L+&E
197 MPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"
198 ML+&EPK"QI<(*I<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"Q
199 MI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<(*I<*PL:7"L+&EPK"QI<*PL:7"
200 ML+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<(*
201 eofeof
202
203 $example{'amb.euc'} = unpack('u',<<'eofeof');
204 M&R1")4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25"
205 M,#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&R1")4(P,25",#$E0C`Q)4(P,25"
206 M,#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;
207 M*$(*&R1")4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P
208 M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&R1")4(P,25",#$E0C`Q)4(P
209 M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q
210 M)4(;*$(*&R1")4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q
211 >)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*
212 eofeof
213
214 $example{'amb.sjis'} = unpack('u',<<'eofeof');
215 M&RA))4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25"
216 M,#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&RA))4(P,25",#$E0C`Q)4(P,25"
217 M,#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;
218 M*$(*&RA))4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P
219 M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&RA))4(P,25",#$E0C`Q)4(P
220 M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q
221 M)4(;*$(*&RA))4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q
222 >)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*
223 eofeof
224
225 print "Ambiguous Case. ";
226     &test("$nkf -j",$example{'amb'},$example{'amb.euc'});
227
228 # Input assumption
229
230 print "SJIS  Input assumption ";
231     &test("$nkf -jSx",$example{'amb'},$example{'amb.sjis'});
232
233 # Broken JIS
234
235 print "Broken JIS ";
236     $input = $example{'jis'};
237     $input =~ s/\033//g;
238     &test("$nkf -Be",$input,$example{'euc'});
239 print "Broken JIS is safe on Normal JIS? ";
240     $input = $example{'jis'};
241     &test("$nkf -Be",$input,$example{'euc'});
242
243 # test_data/cp932
244
245 $example{'test_data/cp932'} = unpack('u',<<'eofeof');
246 %^D`@_$L`
247 eofeof
248
249 $example{'test_data/cp932.ans'} = unpack('u',<<'eofeof');
250 %_/$@_.X`
251 eofeof
252
253 print "test_data/cp932    ";
254     &test("$nkf -eS",$example{'test_data/cp932'},$example{'test_data/cp932.ans'});
255
256 # test_data/cp932inv
257 print "test_data/cp932inv    ";
258     &test("$nkf -sE --cp932inv",$example{'test_data/cp932.ans'},$example{'test_data/cp932'});
259
260 # test_data/no-cp932inv
261
262 $example{'test_data/no-cp932inv.ans'} = unpack('u',<<'eofeof');
263 %[N\@[NP`
264 eofeof
265
266 print "test_data/no-cp932inv    ";
267     &test("$nkf -sE --no-cp932",$example{'test_data/cp932.ans'},$example{'test_data/no-cp932inv.ans'});
268
269 # test_data/irv
270
271 # $example{'test_data/irv'} = unpack('u',<<'eofeof');
272 # %#B`/(!L`
273 # eofeof
274
275 # $example{'test_data/irv.ans'} = unpack('u',<<'eofeof');
276 # %#B`/(!L`
277 # eofeof
278
279 # print "test_data/irv    ";
280 #    &test("$nkf -wE",$example{'test_data/irv'},$example{'test_data/irv.ans'});
281
282
283 # UCS Mapping Test
284 print "\n\nUCS Mapping Test\n";
285
286 print "Shift_JIS to UTF-16\n";
287 $example{'ms_ucs_map_1_sjis'} = "\x81\x60\x81\x61\x81\x7C\x81\x91\x81\x92\x81\xCA";
288 $example{'ms_ucs_map_1_utf16'} = "\x30\x1C\x20\x16\x22\x12\x00\xA2\x00\xA3\x00\xAC";
289 $example{'ms_ucs_map_1_utf16_ms'} = "\xFF\x5E\x22\x25\xFF\x0D\xFF\xE0\xFF\xE1\xFF\xE2";
290
291 print "Normal UCS Mapping : ";
292     &test("$nkf -w16B0 -S",$example{'ms_ucs_map_1_sjis'},$example{'ms_ucs_map_1_utf16'});
293
294 print "Microsoft UCS Mapping : ";
295     &test("$nkf -w16B0 -S --ms-ucs-map",$example{'ms_ucs_map_1_sjis'},$example{'ms_ucs_map_1_utf16_ms'});
296
297 print"\n";
298
299 # X0201 \e$B2>L>\e(B
300 # X0201->X0208 conversion
301 # X0208 aphabet -> ASCII
302 # X0201 \e$BAj8_JQ49\e(B
303
304 print "\nX0201 test\n\n";
305
306 $example{'x0201.sjis'} = unpack('u',<<'eofeof');
307 MD5.*<(-*@TR#3H-0@U*#2X--@T^#48-3"I%3B7""8()A@F*"8X)D@F6"9H*!
308 M@H*"@X*$@H6"AH*'"I%3BTR-AH%)@9>!E(&0@9.!3X&5@9:!:8%J@7R!>X&!
309 M@6V!;H%O@7"!CPJ4O(IPMK>X/;FZMMZWWKC>N=ZZWH+&"I2\BG#*W\O?S-_-
310 MW\[?M]^QW@K*W\O?S`IH86YK86MU(,K?R]_,I`K*W\O?S-VA"I2\BG""S(SC
311 !"@!"
312 eofeof
313
314 $example{'x0201.euc'} = unpack('u',<<'eofeof');
315 MP;2ST:6KI:VEKZ6QI;.EK*6NI;"ELJ6T"L&TL=&CP:/"H\.CQ*/%H\:CQZ/A
316 MH^*CXZ/DH^6CYJ/G"L&TM:VYYJ&JH?>A]*'PH?.AL*'UH?:ARJ'+H=VAW*'A
317 MH<ZASZ'0H=&A[PK(OK/1CK:.MXZX/8ZYCKJ.MH[>CK>.WHZXCMZ.N8[>CKJ.
318 MWJ3("LB^L]&.RH[?CLN.WX[,CM^.S8[?CLZ.WXZWCM^.L8[>"H[*CM^.RX[?
319 MCLP*:&%N:V%K=2".RH[?CLN.WX[,CJ0*CLJ.WX[+CM^.S([=CJ$*R+ZST:3.
320 #N.4*
321 eofeof
322
323 $example{'x0201.utf'} = unpack('u',<<'eofeof');
324 MY86HZ*>2XX*KXX*MXX*OXX*QXX*SXX*LXX*NXX*PXX*RXX*T"N6%J.B+L>^\
325 MH>^\HN^\H^^\I.^\I>^\IN^\I^^]@>^]@N^]@^^]A.^]A>^]AN^]APKEA:CH
326 MJ)CEC[?OO('OO*#OO(/OO(3OO(7OO+[OO(;OO(KOO(COO(GBB)+OO(OOO)WO
327 MO+OOO+WOO9OOO9WOOZ4*Y8V*Z*>2[[VV[[VW[[VX/>^]N>^]NN^]MN^^GN^]
328 MM^^^GN^]N.^^GN^]N>^^GN^]NN^^GN.!J`KEC8KHIY+OOHKOOI_OOHOOOI_O
329 MOHSOOI_OOHWOOI_OOH[OOI_OO;?OOI_OO;'OOIX*[[Z*[[Z?[[Z+[[Z?[[Z,
330 M"FAA;FMA:W4@[[Z*[[Z?[[Z+[[Z?[[Z,[[VD"N^^BN^^G^^^B^^^G^^^C.^^
331 2G>^]H0KEC8KHIY+C@:[EOHP*
332 eofeof
333
334 $example{'x0201.jis'} = unpack('u',<<'eofeof');
335 M&R1"030S424K)2TE+R4Q)3,E+"4N)3`E,B4T&RA""ALD0D$T,5$C02-"(T,C
336 M1"-%(T8C1R-A(V(C8R-D(V4C9B-G&RA""ALD0D$T-2TY9B$J(7<A="%P(7,A
337 M,"%U(78A2B%+(5TA7"%A(4XA3R%0(5$A;QLH0@H;)$)(/C-1&RA)-C<X&RA"
338 M/1LH23DZ-EXW7CA>.5XZ7ALD0B1(&RA""ALD0D@^,U$;*$E*7TM?3%]-7TY?
339 M-U\Q7ALH0@H;*$E*7TM?3!LH0@IH86YK86MU(!LH24I?2U],)!LH0@H;*$E*
340 97TM?3%TA&RA""ALD0D@^,U$D3CAE&RA""@``
341 eofeof
342
343 $example{'x0201.sosi'} = unpack('u',<<'eofeof');
344 M&R1"030S424K)2TE+R4Q)3,E+"4N)3`E,B4T&RA*"ALD0D$T,5$C02-"(T,C
345 M1"-%(T8C1R-A(V(C8R-D(V4C9B-G&RA*"ALD0D$T-2TY9B$J(7<A="%P(7,A
346 M,"%U(78A2B%+(5TA7"%A(4XA3R%0(5$A;QLH2@H;)$)(/C-1&RA*#C8W.`\;
347 M*$H]#CDZ-EXW7CA>.5XZ7@\;)$(D2!LH2@H;)$)(/C-1&RA*#DI?2U],7TU?
348 M3E\W7S%>#PH.2E]+7TP/&RA*"FAA;FMA:W4@#DI?2U],)`\;*$H*#DI?2U],
349 672$/&RA*"ALD0D@^,U$D3CAE&RA""@``
350 eofeof
351
352 $example{'x0201.x0208'} = unpack('u',<<'eofeof');
353 M&R1"030S424K)2TE+R4Q)3,E+"4N)3`E,B4T&RA""ALD0D$T,5$;*$)!0D-$
354 M149'86)C9&5F9PH;)$)!-#4M.68;*$(A0",D)5XF*B@I+2L]6UU[?1LD0B%O
355 M&RA""ALD0D@^,U$E*R4M)2\;*$(]&R1")3$E,R4L)2XE,"4R)30D2!LH0@H;
356 M)$)(/C-1)5$E5"57)5HE724M(2PE(B$K&RA""ALD0B51)50E51LH0@IH86YK
357 M86MU(!LD0B51)50E52$B&RA""ALD0B51)50E525S(2,;*$(*&R1"2#XS421.
358 &.&4;*$(*
359 eofeof
360
361 # -X is necessary to allow X0201 in SJIS
362 # -Z convert X0208 alphabet to ASCII
363 print "X0201 conversion: SJIS ";
364     &test("$nkf -jXZ",$example{'x0201.sjis'},$example{'x0201.x0208'});
365 print "X0201 conversion: JIS  ";
366     &test("$nkf -jZ",$example{'x0201.jis'},$example{'x0201.x0208'});
367 print "X0201 conversion:SI/SO ";
368     &test("$nkf -jZ",$example{'x0201.sosi'},$example{'x0201.x0208'});
369 print "X0201 conversion: EUC  ";
370     &test("$nkf -jZ",$example{'x0201.euc'},$example{'x0201.x0208'});
371 print "X0201 conversion: UTF8 ";
372     &test("$nkf -jZ",$example{'x0201.utf'},$example{'x0201.x0208'});
373 # -x means X0201 output
374 print "X0201 output: SJIS     ";
375     &test("$nkf -xs",$example{'x0201.euc'},$example{'x0201.sjis'});
376 print "X0201 output: JIS      ";
377     &test("$nkf -xj",$example{'x0201.sjis'},$example{'x0201.jis'});
378 print "X0201 output: EUC      ";
379     &test("$nkf -xe",$example{'x0201.jis'},$example{'x0201.euc'});
380 print "X0201 output: UTF8     ";
381     &test("$nkf -xw",$example{'x0201.jis'},$example{'x0201.utf'});
382
383 # MIME decode
384
385 print "\nMIME test\n\n";
386
387 # MIME ISO-2022-JP
388
389 $example{'mime.iso2022'} = unpack('u',<<'eofeof');
390 M/3])4T\M,C`R,BU*4#]"/T=Y4D%.144W96E23TI566Q/4U9)1WEH2S\]"CT_
391 M:7-O+3(P,C(M2E`_0C]'>5)!3D5%-V5I4D]*55EL3U-624=Y:$L_/0H]/VES
392 M;RTR,#(R+4I0/U$_/3%")$(D1B11/3%"*$)?96YD/ST*&R1`)#TD)B0K)$H;
393 M*$H@/3])4T\M,C`R,BU*4#]"/T=Y4D%.144W96E23U!Y:S=D:'-O4V<]/3\]
394 M(&5N9"!O9B!L:6YE"CT_25-/+3(P,C(M2E`_0C]'>5)!3D5%-V5I4D]0>6LW
395 M9&AS;U-G/3T_/2`]/TE33RTR,#(R+4I0/T(_1WE204Y%13=E:5)/4'EK-V1H
396 M<V]39ST]/ST*0G)O:V5N(&-A<V4*/3])4T\M,C`R,BU*4#]"/T=Y4D%.144W
397 M96E23U!Y:S=D"FAS;U-G/3T_/2`]/TE33RTR,`HR,BU*4#]"/T=Y4D%.144W
398 M96E23U!Y:S=D:'-O4V<]/3\]"CT_25-/+3(P,C(M2E`_0C]'>5)!3D5%-V5I
399 44D]*55EL3QM;2U-624=Y:$L_/0H_
400 eofeof
401
402 $example{'mime.ans.strict'} = unpack('u',<<'eofeof');
403 M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11
404 M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F
405 M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-A<V4*
406 M/3])4T\M,C`R,BU*4#]"/T=Y4D%.144W96E23U!Y:S=D"FAS;U-G/3T_/2`]
407 M/TE33RTR,`HR,BU*4#]"/T=Y4D%.144W96E23U!Y:S=D:'-O4V<]/3\]"CT_
408 L25-/+3(P,C(M2E`_0C]'>5)!3D5%-V5I4D]*55EL3QM;2U-624=Y:$L_/0H_
409 eofeof
410
411 $example{'mime.unbuf.strict'} = unpack('u',<<'eofeof');
412 M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11
413 M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F
414 M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-A<V4*
415 M&R1"-$$[>B1./RD;*$)H<V]39ST]/ST@/3])4T\M,C`*,C(M2E`_0C]'>5)!
416 M3D5%-V5I4D]0>6LW9&AS;U-G/3T_/0H;)$(T03MZ)$XE1ALH0EM+4U9)1WEH
417 $2S\]"F5I
418 eofeof
419
420 $example{'mime.ans'} = unpack('u',<<'eofeof');
421 M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11
422 M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F
423 M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-A<V4*
424 M&R1"-$$[>B1./RD;*$)H<V]39ST]/ST@&R1"-$$[>B1./RD[=ALH0@H;)$(T
425 603MZ)$XE1ALH0EM+4U9)1WEH2S\]"@`*
426 eofeof
427
428 $example{'mime.unbuf'} = unpack('u',<<'eofeof');
429 M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11
430 M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F
431 M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-A<V4*
432 M&R1"-$$[>B1./RD;*$)H<V]39ST]/ST@&R1"-$$[>B1./RD[=ALH0@H;)$(T
433 603MZ)$XE1ALH0EM+4U9)1WEH2S\]"@`*
434 eofeof
435
436 $example{'mime.base64'} = unpack('u',<<'eofeof');
437 M9W-M5"])3&YG<FU#>$I+-&=Q=4,S24LS9W%Q0E%:3TUI-39,,S0Q-&=S5T)1
438 M43!+9VUA1%9O3T@*9S)+1%1O3'=K8C)1;$E+;V=Q2T-X24MG9W5M0W%*3EEG
439 <<T=#>$E+9V=U;4,X64Q&9W)70S592VMG<6U""F=Q
440 eofeof
441
442 $example{'mime.base64.ans'} = unpack('u',<<'eofeof');
443 M&R1")$M&?B1I)#LD1D0Z)"TD7B0Y)"PA(D5L-7XV83E9)$<A(ALH0@T*&R1"
444 M(T<E-R5G)4,E+R1R0C\_="0J)"0D1B0B)&LD*D4Y)$,D1B0B)&LD<R1')#<D
445 (9R0F)"L;*$(E
446 eofeof
447
448 # print "Next test is expected to Fail.\n";
449 print "MIME decode (strict)   ";
450     $tmp = &test("$nkf -jmS",$example{'mime.iso2022'},$example{'mime.ans.strict'});
451
452 $example{'mime.ans.alt'} = unpack('u',<<'eofeof');
453 M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11
454 M&RA"96YD"ALD0B0])"8D*R1*&RA"&R1"-$$[>B1./RD[=ALH0F5N9&]F;&EN
455 M90H;)$(T03MZ)$X_*3MV-$$[>B1./RD[=ALH0@I"<F]K96YC87-E"ALD0C1!
456 H.WHD3C\I.W8T03MZ)$X_*3MV&RA""ALD0C1!.WHD3B5&)3DE)!LH0@``
457 eofeof
458
459 $example{'mime.unbuf.alt'} = unpack('u',<<'eofeof');
460 M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11
461 M&RA"96YD"ALD0B0])"8D*R1*&RA"&R1"-$$[>B1./RD[=ALH0F5N9&]F;&EN
462 M90H;)$(T03MZ)$X_*3MV-$$[>B1./RD[=ALH0@I"<F]K96YC87-E"ALD0C1!
463 H.WHD3C\I.W8T03MZ)$X_*3MV&RA""ALD0C1!.WHD3B5&)3DE)!LH0@``
464 eofeof
465
466 print "MIME decode (nonstrict)";
467     $tmp = &test("$nkf -jmN",$example{'mime.iso2022'},$example{'mime.ans'},$example{'mime.ans.alt'});
468     # open(OUT,">tmp1");print OUT pack('u',$tmp);close(OUT);
469 # unbuf mode implies more pessimistic decode
470 print "MIME decode (unbuf)    ";
471     $tmp = &test("$nkf -jmNu",$example{'mime.iso2022'},$example{'mime.unbuf'},$example{'mime.unbuf.alt'});
472     # open(OUT,">tmp2");print OUT pack('u',$tmp);close(OUT);
473 print "MIME decode (base64)   ";
474     &test("$nkf -jmB",$example{'mime.base64'},$example{'mime.base64.ans'});
475 #MIME BASE64 must be LF?
476
477 # MIME ISO-8859-1
478
479 $example{'mime.is8859'} = unpack('u',<<'eofeof');
480 M/3])4T\M.#@U.2TQ/U$_*CU#-V%V83\_/2`*4&5E<B!4]G)N9W)E;@I,87-S
481 M92!(:6QL97+X92!0971E<G-E;B`@7"`B36EN(&MA97!H97-T(&AA<B!F86%E
482 M="!E="!F;V5L(2(*06%R:'5S(%5N:79E<G-I='DL($1%3DU!4DL@(%P@(DUI
483 <;B!KYG!H97-T(&AA<B!FY65T(&5T(&;X;"$B"@!K
484 eofeof
485
486 $example{'mime.is8859.ans'} = unpack('u',<<'eofeof');
487 M*L=A=F$_(`I0965R(%3V<FYG<F5N"DQA<W-E($AI;&QE<OAE(%!E=&5R<V5N
488 M("!<(")-:6X@:V%E<&AE<W0@:&%R(&9A865T(&5T(&9O96PA(@I!87)H=7,@
489 M56YI=F5R<VET>2P@1$5.34%22R`@7"`B36EN(&OF<&AE<W0@:&%R(&;E970@
490 )970@9OAL(2(*
491 eofeof
492
493 # Without -l, ISO-8859-1 was handled as X0201.
494
495 print "MIME ISO-8859-1 (Q)    ";
496     &test("$nkf -ml",$example{'mime.is8859'},$example{'mime.is8859.ans'});
497
498 # test for -f is not so simple.
499
500 print "\nBug Fixes\n\n";
501
502 # test_data/cr
503
504 $example{'test_data/cr'} = unpack('u',<<'eofeof');
505 1I,:DN:3(#71E<W0-=&5S=`T`
506 eofeof
507
508 $example{'test_data/cr.ans'} = unpack('u',<<'eofeof');
509 7&R1")$8D.21(&RA""G1E<W0*=&5S=`H`
510 eofeof
511
512 print "test_data/cr    ";
513     &test("$nkf -jd",$example{'test_data/cr'},$example{'test_data/cr.ans'});
514 # test_data/fixed-qencode
515
516 $example{'test_data/fixed-qencode'} = unpack('u',<<'eofeof');
517 M("`@("`@("`],4(D0CYE/STS1#TQ0BA""B`@("`@("`@/3%")$(^93TS1CTS
518 '1#TQ0BA""@``
519 eofeof
520
521 $example{'test_data/fixed-qencode.ans'} = unpack('u',<<'eofeof');
522 F("`@("`@("`;)$(^93\]&RA""B`@("`@("`@&R1"/F4_/1LH0@H`
523 eofeof
524
525 print "test_data/fixed-qencode    ";
526     &test("$nkf -jmQ",$example{'test_data/fixed-qencode'},$example{'test_data/fixed-qencode.ans'});
527 # test_data/long-fold-1
528
529 $example{'test_data/long-fold-1'} = unpack('u',<<'eofeof');
530 MI,JDK*2DI,JDK*2DI,JDK*'!I*2DKJ3GI*:DK*2BI.JDWJ2WI,:AHJ2SI.RD
531 M\J2]I,ZDWJ3>I**DQ*2KI*:DR*&BI,FDIJ3BI-^DT*2HI*RD[Z3KI*2DMZ&B
532 MI,BDP:3EI*:DQZ3!I.>D\Z2NI.RDZZ2KI.*DMZ3SI,JDI*&C"J2SI+.DSR!#
533 M4B],1B"DSKG4H:,-"J2SI+.DSR!#4B"DSKG4H:,-I+.DLZ3/($Q&+T-2(*3.
534 9N=2AHPH-"J2SI+.DSR!,1B"DSKG4H:,*"@``
535 eofeof
536
537 $example{'test_data/long-fold-1.ans'} = unpack('u',<<'eofeof');
538 M&R1")$HD+"0D)$HD+"0D)$HD+"%!)"0D+B1G)"8D+"0B)&HD7B0W)$8A(B0S
539 M)&PD<B0])$XD7B1>)"(D1"0K&RA""ALD0B0F)$@A(B1))"8D8B1?)%`D*"0L
540 M)&\D:R0D)#<A(B1()$$D920F)$<D021G)',D+B1L)&LD*R1B)#<D<QLH0@H;
541 M)$(D2B0D(2,;*$(*&R1")#,D,R1/&RA"($-2+TQ&(!LD0B1..50A(QLH0@H;
542 M)$(D,R0S)$\;*$(@0U(@&R1")$XY5"$C&RA""ALD0B0S)#,D3QLH0B!,1B]#
543 M4B`;)$(D3CE4(2,;*$(*"ALD0B0S)#,D3QLH0B!,1B`;)$(D3CE4(2,;*$(*
544 !"@``
545 eofeof
546
547 print "test_data/long-fold-1    ";
548     &test("$nkf -jF60",$example{'test_data/long-fold-1'},$example{'test_data/long-fold-1.ans'});
549 # test_data/long-fold
550
551 $example{'test_data/long-fold'} = unpack('u',<<'eofeof');
552 MI,JDK*2DI,JDK*2DI,JDK*'!I*2DKJ3GI*:DK*2BI.JDWJ2WI,:AHJ2SI.RD
553 M\J2]I,ZDWJ3>I**DQ*2KI*:DR*&BI,FDIJ3BI-^DT*2HI*RD[Z3KI*2DMZ&B
554 MI,BDP:3EI*:DQZ3!I.>D\Z2NI.RDZZ2KI.*DMZ3SI,JDI*&C"J2SI+.DS\.[
555 'I*2YU*&C"@``
556 eofeof
557
558 $example{'test_data/long-fold.ans'} = unpack('u',<<'eofeof');
559 M&R1")$HD+"0D)$HD+"0D)$HD+"%!)"0D+B1G)"8D+"0B)&HD7B0W)$8A(B0S
560 M)&PD<B0])$XD7B1>)"(D1"0K&RA""ALD0B0F)$@A(B1))"8D8B1?)%`D*"0L
561 M)&\D:R0D)#<A(B1()$$D920F)$<D021G)',D+B1L)&LD*R1B)#<D<QLH0@H;
562 :)$(D2B0D(2,D,R0S)$]#.R0D.50A(QLH0@H`
563 eofeof
564
565 print "test_data/long-fold    ";
566     &test("$nkf -jf60",$example{'test_data/long-fold'},$example{'test_data/long-fold.ans'});
567 # test_data/mime_out
568
569 $example{'test_data/mime_out'} = unpack('u',<<'eofeof');
570 M"BTM+2T*4W5B:F5C=#H@86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@
571 M86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@86%A82!A86%A"BTM+2T*
572 M4W5B:F5C=#H@I**DI*2FI*BDJJ2KI*VDKZ2QI+.DM:2WI+FDNZ2]I+^DP:3$
573 MI,:DR*3*I,NDS*3-I,ZDSZ32I-6DV*3;I-ZDWZ3@I.&DXJ3DI*2DYJ2HI.@*
574 M+2TM+0I3=6)J96-T.B!A86%A(&%A86$@86%A82!A86%A(&%A86$@86%A82!A
575 I86%A(*2BI*2DIJ2HI*H@86%A82!A86%A(&%A86$@86%A80HM+2TM"@H`
576 eofeof
577
578 $example{'test_data/mime_out.ans'} = unpack('u',<<'eofeof');
579 M"BTM+2T*4W5B:F5C=#H@86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@
580 M86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@86%A80H@86%A80HM+2TM
581 M"E-U8FIE8W0Z(#T_25-/+3(P,C(M2E`_0C]'>5)#2D-):TI#46U*0V=K2VE1
582 M<DI#,&M,>5%X2D1-:TY343-*1&MB2T5)/3\]"B`]/TE33RTR,#(R+4I0/T(_
583 M1WE20TI$<VM04U$O2D5%:U)#4D=*16=K4VE23$I%=VM44U)/2D4X:U5I4E9*
584 M1F=B2T5)/3\]"B`]/TE33RTR,#(R+4I0/T(_1WE20TI&<VM8:5)F2D=!:UE3
585 M4FE*1U%K2D-2;4I#9VMA0G-O46<]/3\]"BTM+2T*4W5B:F5C=#H@86%A82!A
586 M86%A(&%A86$@86%A82!A86%A(&%A86$@86%A80H@/3])4T\M,C`R,BU*4#]"
587 M/T=Y4D-*0TEK2D-1;4I#9VM+:'-O46<]/3\](&%A86$@86%A82!A86%A(&%A
588 )86$*+2TM+0H*
589 eofeof
590
591 $example{'test_data/mime_out.ans.alt'} = unpack('u',<<'eofeof');
592 M"BTM+2T*4W5B:F5C=#H@86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@
593 M86%A82!A86%A(&%A86$*(&%A86$@86%A82!A86%A(&%A86$@86%A80HM+2TM
594 M"E-U8FIE8W0Z(#T_25-/+3(P,C(M2E`_0C]'>5)#2D-):TI#46U*0V=K2VE1
595 M<DI#,&M,>5%X2D1-:TY343-'>6A#/ST*(#T_25-/+3(P,C(M2E`_0C]'>5)#
596 M2D1K:T]Y43E*1#AK45-214I%66M30U)+2D5S:U1#4DY*131K5'E24TI&56M7
597 M0U)B1WEH0S\]"B`]/TE33RTR,#(R+4I0/T(_1WE20TI&-&M8>5)G2D=%:UEI
598 M4FM*0U%K6FE1;TI'9V)+14D]/ST*+2TM+0I3=6)J96-T.B!A86%A(&%A86$@
599 M86%A82!A86%A(&%A86$@86%A82!A86%A"B`]/TE33RTR,#(R+4I0/T(_1WE2
600 M0TI#26M*0U%M2D-G:TMH<V]19ST]/ST@86%A82!A86%A(&%A86$*(&%A86$*
601 &+2TM+0H*
602 eofeof
603
604 print "test_data/mime_out    ";
605     &test("$nkf -jM",$example{'test_data/mime_out'},$example{'test_data/mime_out.ans'},$example{'test_data/mime_out.ans.alt'});
606 # test_data/mime_out2
607
608 $example{'test_data/mime_out2'} = unpack('u',<<'eofeof');
609 M5&AI<R!M96UO(&1E<V-R:6)E<R!S:6UI;&%R('1E8VAN:7%U97,@=&\@86QL\
610 M;W<@=&AE(&5N8V]D:6YG(&]F(&YO;BU!4T-)22!T97AT(&EN('9A<FEO=7,@
611 M<&]R=&EO;G,@;V8@82!21D,@.#(R(%LR72!M97-S86=E(&AE861E<BP@:6X@
612 M82!M86YN97(@=VAI8V@@:7,@=6YL:6ME;'D@=&\@8V]N9G5S92!E>&ES=&EN
613 M9R!M97-S86=E(&AA;F1L:6YG('-O9G1W87)E+@H*4W5B:F5C=#H@=&5S=#$@
614 M=&5S=#(@@L2"MX+&@J<@=&5S=#,@@L2"MX+&@O$@=&5S=#0*"E-U8FIE8W0Z
615 M('1E<W0Q("!T97-T,B""Q"""MR""QB""IR!T97-T,R`@@L2"MX+&@O$@('1E
616 M<W0T"@I!4T-)22"3^I9[C.H@05-#24D@05-#24D@D_J6>XSJ()/ZEGN,ZB!!
617 M4T-)22!!4T-)29/ZEGN,ZB!!4T-)20H*@J`@@J(@@J0@@J8@@J@@@JD@@JL@
618 M@JT@@J\@@K$@@K,@@K4@@K<@@KD@@KL@@KT@@K\@@L(@@L0@@L8@@L@@@LD@
619 8@LH@@LL@@LP*"@H*"@H*"@H*"@H*"@H*
620 eofeof
621
622 $example{'test_data/mime_out2.ans'} = unpack('u',<<'eofeof');
623 M5&AI<R!M96UO(&1E<V-R:6)E<R!S:6UI;&%R('1E8VAN:7%U97,@=&\@86QL
624 M;W<@=&AE(&5N8V]D:6YG(&]F(&YO;BU!4T-)20H@=&5X="!I;B!V87)I;W5S
625 M('!O<G1I;VYS(&]F(&$@4D9#(#@R,B!;,ET@;65S<V%G92!H96%D97(L(&EN
626 M(&$@;6%N;F5R"B!W:&EC:"!I<R!U;FQI:V5L>2!T;R!C;VYF=7-E(&5X:7-T
627 M:6YG(&UE<W-A9V4@:&%N9&QI;F<@<V]F='=A<F4N"@I3=6)J96-T.B!T97-T
628 M,2!T97-T,B`]/TE33RTR,#(R+4I0/T(_1WE20TI%66M/4U))2D-K8DM%23T_
629 M/2!T97-T,PH@/3])4T\M,C`R,BU*4#]"/T=Y4D-*15EK3U-224I(36)+14D]
630 M/ST@=&5S=#0*"E-U8FIE8W0Z('1E<W0Q("!T97-T,B`]/TE33RTR,#(R+4I0
631 M/T(_1WE20TI%66)+14EG1WE20TI$:V)+14D]/ST*(#T_25-/+3(P,C(M2E`_
632 M0C]'>5)#2D5G8DM%26='>5)#2D-K8DM%23T_/2!T97-T,R`*(#T_25-/+3(P
633 M,C(M2E`_0C]'>5)#2D59:T]34DE*2$UB2T5)/3\]("!T97-T-`H*05-#24D@
634 M/3])4T\M,C`R,BU*4#]"/T=Y4D-2;GA,6$1H<T=Y:$,_/2!!4T-)22!!4T-)
635 M20H@/3])4T\M,C`R,BU*4#]"/T=Y4D-2;GA,6$1H<T=Y:$-)0G-K46M:.%,Q
636 M=S1B0G-O46<]/3\]($%30TE)"B`]/TE33RTR,#(R+4I0/T(_459.1%-5:V)*
637 M14I'9D5T8T]'=V)+14D]/ST@05-#24D*"CT_25-/+3(P,C(M2E`_0C]'>5)#
638 M2D-)8DM%26='>5)#2D-18DM%26='>5)#2D-98DM%26='>5)#2D-G8DM%26<_
639 M/0H@/3])4T\M,C`R,BU*4#]"/T=Y4D-*0V]B2T5)9T=Y4D-*0W-B2T5)9T=Y
640 M4D-*0S!B2T5)9T=Y4D-*0SAB2T5)9S\]"B`]/TE33RTR,#(R+4I0/T(_1WE2
641 M0TI$16)+14EG1WE20TI$36)+14EG1WE20TI$56)+14EG1WE20TI$8V)+14EG
642 M/ST*(#T_25-/+3(P,C(M2E`_0C]'>5)#2D1K8DM%26='>5)#2D1S8DM%26='
643 M>5)#2D0P8DM%26='>5)#2D0X8DM%26<_/0H@/3])4T\M,C`R,BU*4#]"/T=Y
644 M4D-*145B2T5)9T=Y4D-*15%B2T5)9T=Y4D-*15EB2T5)9T=Y4D-*16=B2T5)
645 M9S\]"B`]/TE33RTR,#(R+4I0/T(_1WE20TI%;V)+14EG1WE20TI%<V)+14EG
646 M1WE20TI%=V)+14EG1WE20TI%,&)+14EG/ST*(#T_25-/+3(P,C(M2E`_0C]'
647 =>5)#2D4T8DM%23T_/0H*"@H*"@H*"@H*"@H*"@H`
648 eofeof
649
650 $example{'test_data/mime_out2.ans.alt'} = unpack('u',<<'eofeof');
651 M5&AI<R!M96UO(&1E<V-R:6)E<R!S:6UI;&%R('1E8VAN:7%U97,@=&\@86QL
652 M;W<@=&AE(&5N8V]D:6YG"B!O9B!N;VXM05-#24D@=&5X="!I;B!V87)I;W5S
653 M('!O<G1I;VYS(&]F(&$@4D9#(#@R,B!;,ET*(&UE<W-A9V4@:&5A9&5R+"!I
654 M;B!A(&UA;FYE<B!W:&EC:"!I<R!U;FQI:V5L>2!T;R!C;VYF=7-E(&5X:7-T
655 M:6YG"B!M97-S86=E(&AA;F1L:6YG('-O9G1W87)E+@H*4W5B:F5C=#H@=&5S
656 M=#$@=&5S=#(@/3])4T\M,C`R,BU*4#]"/T=Y4D-*15EK3U-224I#:V)+14D]
657 M/ST@=&5S=#,*(#T_25-/+3(P,C(M2E`_0C]'>5)#2D59:T]34DE*2$UB2T5)
658 M/3\]('1E<W0T"@I3=6)J96-T.B!T97-T,2`@=&5S=#(@/3])4T\M,C`R,BU*
659 M4#]"/T=Y4D-*15EB2T5)9T=Y4D-*1&MB2T5)9T=Y4D-*16=B2T5)/3\]"B`]
660 M/TE33RTR,#(R+4I0/T(_1WE20T=Y:$-)0G-K46E1<$=Y:$,_/2!T97-T,R`*
661 M(#T_25-/+3(P,C(M2E`_0C]'>5)#2D59:T]34DE*2$UB2T5)/3\]("!T97-T
662 M-`H*05-#24D@/3])4T\M,C`R,BU*4#]"/T=Y4D-2;GA,6$1H<T=Y:$,_/2!!
663 M4T-)22!!4T-)20H@/3])4T\M,C`R,BU*4#]"/T=Y4D-2;GA,6$1H<T=Y:$-)
664 M0G-K46M:.%,Q=S1B0G-O46<]/3\]($%30TE)"B`]/TE33RTR,#(R+4I0/T(_
665 M459.1%-5:V)*14I'9D5T8T]'=V)+14D]/ST@05-#24D*"CT_25-/+3(P,C(M
666 M2E`_0C]'>5)#2D-)8DM%26='>5)#2D-18DM%26='>5)#2D-98DM%26='>5)#
667 M2D-G8DM%26='>5)#2D-O8DM%23T_/0H@/3])4T\M,C`R,BU*4#]"/T=Y4D-'
668 M>6A#24)S:U%I47)'>6A#24)S:U%I471'>6A#24)S:U%I479'>6A#24)S:U%I
669 M47A'>6A#/ST*(#T_25-/+3(P,C(M2E`_0C]'>5)#1WEH0TE"<VM1:5%Z1WEH
670 M0TE"<VM1:5$Q1WEH0TE"<VM1:5$S1WEH0TE"<VM1:5$U1WEH0S\]"B`]/TE3
671 M3RTR,#(R+4I0/T(_1WE20T=Y:$-)0G-K46E1-T=Y:$-)0G-K46E1.4=Y:$-)
672 M0G-K46E1+T=Y:$-)0G-K46E20D=Y:$,_/0H@/3])4T\M,C`R,BU*4#]"/T=Y
673 M4D-'>6A#24)S:U%I4D5'>6A#24)S:U%I4D='>6A#24)S:U%I4DE'>6A#24)S
674 M:U%I4DM'>6A#/ST*(#T_25-/+3(P,C(M2E`_0C]'>5)#1WEH0TE"<VM1:5),
675 M1WEH0TE"<VM1:5)-1WEH0TE"<VM1:5).1WEH0TE"<VM1:5)/1WEH0S\]"B`]
676 I/TE33RTR,#(R+4I0/T(_1WE20T=Y:$,_/0H*"@H*"@H*"@H*"@H*"@H`
677 eofeof
678
679 print "test_data/mime_out2    ";
680     &test("$nkf -jM",$example{'test_data/mime_out2'},$example{'test_data/mime_out2.ans'},$example{'test_data/mime_out2.ans.alt'});
681 # test_data/multi-line
682
683 $example{'test_data/multi-line'} = unpack('u',<<'eofeof');
684 MI,JDK*2DI,JDK*2DI,JDK*'!I*2DKJ3GI*:DK*2BI.JDWJ2WI,:AH@"DLZ3L
685 MI/*DO:3.I-ZDWJ2BI,2DJZ2FI,BAHJ3)I*:DXJ3?I-"DJ*2LI.^DZZ2DI+>A
686 MHJ3(I,&DY:2FI,>DP:3GI/.DKJ3LI.NDJZ3BI+>D\Z3*I*2AHPJDLZ2SI,_#
687 8NZ2DN=2AHP`*I+.DLZ3/P[NDI+G4H:,*
688 eofeof
689
690 $example{'test_data/multi-line.ans'} = unpack('u',<<'eofeof');
691 MI,JDK*2DI,JDK*2DI,JDK*'!I*2DKJ3GI*:DK*2BI.JDWJ2WI,:AH@"DLZ3L
692 MI/*DO:3.I-ZDWJ2BI,2DJZ2FI,BAHJ3)I*:DXJ3?I-"DJ*2LI.^DZZ2DI+>A
693 MHJ3(I,&DY:2FI,>DP:3GI/.DKJ3LI.NDJZ3BI+>D\Z3*I*2AHPJDLZ2SI,_#
694 8NZ2DN=2AHP`*I+.DLZ3/P[NDI+G4H:,*
695 eofeof
696
697 print "test_data/multi-line    ";
698     &test("$nkf -e",$example{'test_data/multi-line'},$example{'test_data/multi-line.ans'});
699 # test_data/nkf-19-bug-1
700
701 $example{'test_data/nkf-19-bug-1'} = unpack('u',<<'eofeof');
702 ,I*:DJZ2D"KK8QJ,*
703 eofeof
704
705 $example{'test_data/nkf-19-bug-1.ans'} = unpack('u',<<'eofeof');
706 8&R1")"8D*R0D&RA""ALD0CI81B,;*$(*
707 eofeof
708
709 print "test_data/nkf-19-bug-1    ";
710     &test("$nkf -Ej",$example{'test_data/nkf-19-bug-1'},$example{'test_data/nkf-19-bug-1.ans'});
711 # test_data/nkf-19-bug-2
712
713 $example{'test_data/nkf-19-bug-2'} = unpack('u',<<'eofeof');
714 %I-NDL@H`
715 eofeof
716
717 $example{'test_data/nkf-19-bug-2.ans'} = unpack('u',<<'eofeof');
718 %I-NDL@H`
719 eofeof
720
721 print "test_data/nkf-19-bug-2    ";
722     &test("$nkf -Ee",$example{'test_data/nkf-19-bug-2'},$example{'test_data/nkf-19-bug-2.ans'});
723 # test_data/nkf-19-bug-3
724
725 $example{'test_data/nkf-19-bug-3'} = unpack('u',<<'eofeof');
726 8[;'Q\,&L"N6ZSN\*\NT)ON7.SL_+"0D*
727 eofeof
728
729 $example{'test_data/nkf-19-bug-3.ans'} = unpack('u',<<'eofeof');
730 8[;'Q\,&L"N6ZSN\*\NT)ON7.SL_+"0D*
731 eofeof
732
733 print "test_data/nkf-19-bug-3    ";
734     &test("$nkf -e",$example{'test_data/nkf-19-bug-3'},$example{'test_data/nkf-19-bug-3.ans'});
735 # test_data/non-strict-mime
736
737 $example{'test_data/non-strict-mime'} = unpack('u',<<'eofeof');
738 M/3])4T\M,C`R,BU*4#]"/PIG<U-#;V]+.6=R-D-O;TQ%9W1Y0W0T1D-$46].
739 M0V\V16=S,D]N;T999S1Y1%=)3$IG=4-0:UD*2W!G<FU#>$E+:6=R,D-V;TMI
740 ,9W-30V]O3&,*/ST*
741 eofeof
742
743 $example{'test_data/non-strict-mime.ans'} = unpack('u',<<'eofeof');
744 M&R1")$8D)"0_)$`D)"1&)%XD.2$C&RA"#0H-"ALD0CMD)$\[?B$Y)6PE.21+
745 <)&(]<20K)#LD1B0D)#\D0"0D)$8D)"1>&RA""@``
746 eofeof
747
748 print "test_data/non-strict-mime    ";
749     &test("$nkf -jmN",$example{'test_data/non-strict-mime'},$example{'test_data/non-strict-mime.ans'});
750 # test_data/q-encode-softrap
751
752 $example{'test_data/q-encode-softrap'} = unpack('u',<<'eofeof');
753 H/3%")$(T03MZ)3T*,R$\)4DD3CTQ0BA""CTQ0B1"2E$T.3TQ0BA""@``
754 eofeof
755
756 $example{'test_data/q-encode-softrap.ans'} = unpack('u',<<'eofeof');
757 >&R1"-$$[>B4S(3PE221.&RA""ALD0DI1-#D;*$(*
758 eofeof
759
760 print "test_data/q-encode-softrap    ";
761     &test("$nkf -jmQ",$example{'test_data/q-encode-softrap'},$example{'test_data/q-encode-softrap.ans'});
762 # test_data/rot13
763
764 $example{'test_data/rot13'} = unpack('u',<<'eofeof');
765 MI+.D\Z3+I,&DSZ&BS:W"]*3(I*2DI*3>I+FAHPH*;FMF('9E<BXQ+CDR(*3R
766 MS?C-T:2UI+NDQJ2DI+^DP*2DI,:DI*3>I+FDK*&B05-#24D@I,O"T*2WI,8@
767 M4D]4,3,@I*P*P+6DMZ2OQK"DI*3&I*2DRJ2DI.BDIJ3'H:*PRK*\I,ZDZ*2F
768 MI,O*T;2YI+6D[*3>I+ND\Z&C"@HE(&5C:&\@)VAO9V4G('P@;FMF("UR"FAO
769 #9V4*
770 eofeof
771
772 $example{'test_data/rot13.ans'} = unpack('u',<<'eofeof');
773 M&R1"4V)31%-Z4W!3?E!1?%QQ15-W4U-34U,O4VA04ALH0@H*87AS(&ER92XQ
774 M+CDR(!LD0E-#?$E\(E-D4VI3=5-34VY3;U-34W534U,O4VA36U!1&RA"3D90
775 M5E8@&R1"4WIQ(5-F4W4;*$(@14)',3,@&R1"4UL;*$(*&R1";V139E->=5]3
776 M4U-U4U-3>5-34SE355-V4%%?>6%K4WU3.5-54WIY(F-H4V13/5,O4VI31%!2
777 A&RA""@HE(')P=6(@)W5B='(G('P@87AS("UE"G5B='(*
778 eofeof
779
780 print "test_data/rot13    ";
781     &test("$nkf -jr",$example{'test_data/rot13'},$example{'test_data/rot13.ans'});
782 # test_data/slash
783
784 $example{'test_data/slash'} = unpack('u',<<'eofeof');
785 7("`]/U8\5"U5.5=%2RTK.U<U32LE+PH`
786 eofeof
787
788 $example{'test_data/slash.ans'} = unpack('u',<<'eofeof');
789 7("`]/U8\5"U5.5=%2RTK.U<U32LE+PH`
790 eofeof
791
792 print "test_data/slash    ";
793     &test("$nkf  ",$example{'test_data/slash'},$example{'test_data/slash.ans'});
794 # test_data/z1space-0
795
796 $example{'test_data/z1space-0'} = unpack('u',<<'eofeof');
797 "H:$`
798 eofeof
799
800 $example{'test_data/z1space-0.ans'} = unpack('u',<<'eofeof');
801 "H:$`
802 eofeof
803
804 print "test_data/z1space-0    ";
805     &test("$nkf -e -Z",$example{'test_data/z1space-0'},$example{'test_data/z1space-0.ans'});
806 # test_data/z1space-1
807
808 $example{'test_data/z1space-1'} = unpack('u',<<'eofeof');
809 "H:$`
810 eofeof
811
812 $example{'test_data/z1space-1.ans'} = unpack('u',<<'eofeof');
813 !(```
814 eofeof
815
816 print "test_data/z1space-1    ";
817     &test("$nkf -e -Z1",$example{'test_data/z1space-1'},$example{'test_data/z1space-1.ans'});
818 # test_data/z1space-2
819
820 $example{'test_data/z1space-2'} = unpack('u',<<'eofeof');
821 "H:$`
822 eofeof
823
824 $example{'test_data/z1space-2.ans'} = unpack('u',<<'eofeof');
825 "("``
826 eofeof
827
828 print "test_data/z1space-2    ";
829     &test("$nkf -e -Z2",$example{'test_data/z1space-2'},$example{'test_data/z1space-2.ans'});
830
831
832 # end