OSDN Git Service

cp932inv_f is FALSE if output is ISO-2022-JP.
[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.31 2008/11/18 21:43:19 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 print "JIS  to JIS ...";&test("$nkf --ic=iso-2022-jp --oc=iso-2022-jp"  ,$example{'jis'},$example{'jis'});
130 print "JIS  to SJIS...";&test("$nkf --ic=iso-2022-jp --oc=shift_jis"    ,$example{'jis'},$example{'sjis'});
131 print "JIS  to EUC ...";&test("$nkf --ic=iso-2022-jp --oc=euc-jp"       ,$example{'jis'},$example{'euc'});
132 print "JIS  to UTF8...";&test("$nkf --ic=iso-2022-jp --oc=utf-8n"       ,$example{'jis'},$example{'utf8N'});
133 print "JIS  to U16L...";&test("$nkf --ic=iso-2022-jp --oc=utf-16le-bom",$example{'jis'},$example{'u16L'});
134 print "JIS  to U16B...";&test("$nkf --ic=iso-2022-jp --oc=utf-16be-bom",$example{'jis'},$example{'u16B'});
135
136 # From SJIS
137
138 print "SJIS to JIS ...";&test("$nkf -j",$example{'sjis'},$example{'jis'});
139 print "SJIS to SJIS...";&test("$nkf -s",$example{'sjis'},$example{'sjis'});
140 print "SJIS to EUC ...";&test("$nkf -e",$example{'sjis'},$example{'euc'});
141 print "SJIS to UTF8...";&test("$nkf -w",$example{'sjis'},$example{'utf8N'});
142 print "SJIS to U16L...";&test("$nkf -w16L",$example{'sjis'},$example{'u16L'});
143 print "SJIS to U16B...";&test("$nkf -w16B",$example{'sjis'},$example{'u16B'});
144 print "SJIS to JIS ...";&test("$nkf --ic=shift_jis --oc=iso-2022-jp"    ,$example{'sjis'},$example{'jis'});
145 print "SJIS to SJIS...";&test("$nkf --ic=shift_jis --oc=shift_jis"      ,$example{'sjis'},$example{'sjis'});
146 print "SJIS to EUC ...";&test("$nkf --ic=shift_jis --oc=euc-jp" ,$example{'sjis'},$example{'euc'});
147 print "SJIS to UTF8...";&test("$nkf --ic=shift_jis --oc=utf-8n" ,$example{'sjis'},$example{'utf8N'});
148 print "SJIS to U16L...";&test("$nkf --ic=shift_jis --oc=utf-16le-bom"   ,$example{'sjis'},$example{'u16L'});
149 print "SJIS to U16B...";&test("$nkf --ic=shift_jis --oc=utf-16be-bom"   ,$example{'sjis'},$example{'u16B'});
150
151 # From EUC
152
153 print "EUC  to JIS ...";&test("$nkf -j",$example{'euc'},$example{'jis'});
154 print "EUC  to SJIS...";&test("$nkf -s",$example{'euc'},$example{'sjis'});
155 print "EUC  to EUC ...";&test("$nkf -e",$example{'euc'},$example{'euc'});
156 print "EUC  to UTF8...";&test("$nkf -w",$example{'euc'},$example{'utf8N'});
157 print "EUC  to U16L...";&test("$nkf -w16L",$example{'euc'},$example{'u16L'});
158 print "EUC  to U16B...";&test("$nkf -w16B",$example{'euc'},$example{'u16B'});
159 print "EUC  to JIS ...";&test("$nkf --ic=euc-jp --oc=iso-2022-jp"       ,$example{'euc'},$example{'jis'});
160 print "EUC  to SJIS...";&test("$nkf --ic=euc-jp --oc=shift_jis" ,$example{'euc'},$example{'sjis'});
161 print "EUC  to EUC ...";&test("$nkf --ic=euc-jp --oc=euc-jp"    ,$example{'euc'},$example{'euc'});
162 print "EUC  to UTF8...";&test("$nkf --ic=euc-jp --oc=utf-8n"    ,$example{'euc'},$example{'utf8N'});
163 print "EUC  to U16L...";&test("$nkf --ic=euc-jp --oc=utf-16le-bom"      ,$example{'euc'},$example{'u16L'});
164 print "EUC  to U16B...";&test("$nkf --ic=euc-jp --oc=utf-16be-bom"      ,$example{'euc'},$example{'u16B'});
165
166 # From UTF8
167
168 print "UTF8 to JIS ...";&test("$nkf -j",        $example{'utf8N'},$example{'jis'});
169 print "UTF8 to SJIS...";&test("$nkf -s",        $example{'utf8N'},$example{'sjis'});
170 print "UTF8 to EUC ...";&test("$nkf -e",        $example{'utf8N'},$example{'euc'});
171 print "UTF8 to UTF8N..";&test("$nkf -w",        $example{'utf8N'},$example{'utf8N'});
172 print "UTF8 to UTF8...";&test("$nkf -w8",       $example{'utf8N'},$example{'utf8'});
173 print "UTF8 to UTF8N..";&test("$nkf -w80",      $example{'utf8N'},$example{'utf8N'});
174 print "UTF8 to U16L...";&test("$nkf -w16L",     $example{'utf8N'},$example{'u16L'});
175 print "UTF8 to U16L0..";&test("$nkf -w16L0",    $example{'utf8N'},$example{'u16L0'});
176 print "UTF8 to U16B...";&test("$nkf -w16B",     $example{'utf8N'},$example{'u16B'});
177 print "UTF8 to U16B0..";&test("$nkf -w16B0",    $example{'utf8N'},$example{'u16B0'});
178 print "UTF8 to JIS ...";&test("$nkf --ic=utf-8 --oc=iso-2022-jp",       $example{'utf8N'},$example{'jis'});
179 print "UTF8 to SJIS...";&test("$nkf --ic=utf-8 --oc=shift_jis", $example{'utf8N'},$example{'sjis'});
180 print "UTF8 to EUC ...";&test("$nkf --ic=utf-8 --oc=euc-jp",            $example{'utf8N'},$example{'euc'});
181 print "UTF8 to UTF8N..";&test("$nkf --ic=utf-8 --oc=utf-8",             $example{'utf8N'},$example{'utf8N'});
182 print "UTF8 to UTF8BOM";&test("$nkf --ic=utf-8 --oc=utf-8-bom", $example{'utf8N'},$example{'utf8'});
183 print "UTF8 to UTF8N..";&test("$nkf --ic=utf-8 --oc=utf-8n",            $example{'utf8N'},$example{'utf8N'});
184 print "UTF8 to U16L...";&test("$nkf --ic=utf-8 --oc=utf-16le-bom",      $example{'utf8N'},$example{'u16L'});
185 print "UTF8 to U16L0..";&test("$nkf --ic=utf-8 --oc=utf-16le",          $example{'utf8N'},$example{'u16L0'});
186 print "UTF8 to U16B...";&test("$nkf --ic=utf-8 --oc=utf-16be-bom",      $example{'utf8N'},$example{'u16B'});
187 print "UTF8 to U16B0..";&test("$nkf --ic=utf-8 --oc=utf-16be",          $example{'utf8N'},$example{'u16B0'});
188
189 print "UTF8 to UTF8...";&test("$nkf -w","\xf0\xa0\x80\x8b","\xf0\xa0\x80\x8b");
190
191 # From JIS
192
193 print "JIS  to JIS ...";&test("$nkf -j",$example{'jis1'},$example{'jis1'});
194 print "JIS  to SJIS...";&test("$nkf -s",$example{'jis1'},$example{'sjis1'});
195 print "JIS  to EUC ...";&test("$nkf -e",$example{'jis1'},$example{'euc1'});
196 print "JIS  to UTF8...";&test("$nkf -w",$example{'jis1'},$example{'utf1'});
197
198 # From SJIS
199
200 print "SJIS to JIS ...";&test("$nkf -j",$example{'sjis1'},$example{'jis1'});
201 print "SJIS to SJIS...";&test("$nkf -s",$example{'sjis1'},$example{'sjis1'});
202 print "SJIS to EUC ...";&test("$nkf -e",$example{'sjis1'},$example{'euc1'});
203 print "SJIS to UTF8...";&test("$nkf -w",$example{'sjis1'},$example{'utf1'});
204
205 # From EUC
206
207 print "EUC  to JIS ...";&test("$nkf -j",$example{'euc1'},$example{'jis1'});
208 print "EUC  to SJIS...";&test("$nkf -s",$example{'euc1'},$example{'sjis1'});
209 print "EUC  to EUC ...";&test("$nkf -e",$example{'euc1'},$example{'euc1'});
210 print "EUC  to UTF8...";&test("$nkf -w",$example{'euc1'},$example{'utf1'});
211
212 # From UTF8
213
214 print "UTF8 to JIS ...";&test("$nkf -j",$example{'utf1'},$example{'jis1'});
215 print "UTF8 to SJIS...";&test("$nkf -s",$example{'utf1'},$example{'sjis1'});
216 print "UTF8 to EUC ...";&test("$nkf -e",$example{'utf1'},$example{'euc1'});
217 print "UTF8 to UTF8...";&test("$nkf -w",$example{'utf1'},$example{'utf1'});
218
219 # UTF
220 sub h {pack("H*",shift)}
221 print "SJIS to -w...          ";&test("$nkf -w",h("82A0"),h("E38182"));
222 print "SJIS to -w8...         ";&test("$nkf -w8",h("82A0"),h("EFBBBFE38182"));
223 print "SJIS to -w80...        ";&test("$nkf -w80",h("82A0"),h("E38182"));
224 print "SJIS to UTF-8...       ";&test("$nkf --oc=UTF-8",h("82A0"),h("E38182"));
225 print "SJIS to UTF-8N...      ";&test("$nkf --oc=UTF-8N",h("82A0"),h("E38182"));
226 print "SJIS to UTF-8-BOM...   ";&test("$nkf --oc=UTF-8-BOM",h("82A0"),h("EFBBBFE38182"));
227 print "SJIS to -w16...        ";&test("$nkf -w16",h("82A0"),h("FEFF3042"));
228 print "SJIS to UTF-16...      ";&test("$nkf --oc=UTF-16",h("82A0"),h("FEFF3042"));
229 print "SJIS to -w16B...       ";&test("$nkf -w16B",h("82A0"),h("FEFF3042"));
230 print "SJIS to -w16B0...      ";&test("$nkf -w16B0",h("82A0"),h("3042"));
231 print "SJIS to UTF-16BE...    ";&test("$nkf --oc=UTF-16BE",h("82A0"),h("3042"));
232 print "SJIS to UTF-16BE-BOM...";&test("$nkf --oc=UTF-16BE-BOM",h("82A0"),h("FEFF3042"));
233 print "SJIS to -w16L...       ";&test("$nkf -w16L",h("82A0"),h("FFFE4230"));
234 print "SJIS to -w16L0...      ";&test("$nkf -w16L0",h("82A0"),h("4230"));
235 print "SJIS to UTF-16LE...    ";&test("$nkf --oc=UTF-16LE",h("82A0"),h("4230"));
236 print "SJIS to UTF-16LE-BOM...";&test("$nkf --oc=UTF-16LE-BOM",h("82A0"),h("FFFE4230"));
237 print "SJIS to -w32...        ";&test("$nkf -w32",h("82A0"),h("0000FEFF00003042"));
238 print "SJIS to UTF-32...      ";&test("$nkf --oc=UTF-32",h("82A0"),h("0000FEFF00003042"));
239 print "SJIS to -w32B...       ";&test("$nkf -w32B",h("82A0"),h("0000FEFF00003042"));
240 print "SJIS to -w32B0...      ";&test("$nkf -w32B0",h("82A0"),h("00003042"));
241 print "SJIS to UTF-32BE...    ";&test("$nkf --oc=UTF-32BE",h("82A0"),h("00003042"));
242 print "SJIS to UTF-32BE-BOM...";&test("$nkf --oc=UTF-32BE-BOM",h("82A0"),h("0000FEFF00003042"));
243 print "SJIS to -w32L...       ";&test("$nkf -w32L",h("82A0"),h("FFFE000042300000"));
244 print "SJIS to -w32L0...      ";&test("$nkf -w32L0",h("82A0"),h("42300000"));
245 print "SJIS to UTF-32LE...    ";&test("$nkf --oc=UTF-32LE",h("82A0"),h("42300000"));
246 print "SJIS to UTF-32LE-BOM...";&test("$nkf --oc=UTF-32LE-BOM",h("82A0"),h("FFFE000042300000"));
247
248
249 print "\nOther Features\n\n";
250 # Ambigous Case
251
252 $example{'amb'} = unpack('u',<<'eofeof');
253 MI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&E
254 MPK"QI<*PL:7"L+&EPK"QI<(*I<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*P
255 ML:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<(*I<*PL:7"L+&E
256 MPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"
257 ML+&EPK"QI<(*I<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"Q
258 MI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<(*I<*PL:7"L+&EPK"QI<*PL:7"
259 ML+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<(*
260 eofeof
261
262 $example{'amb.euc'} = unpack('u',<<'eofeof');
263 M&R1")4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25"
264 M,#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&R1")4(P,25",#$E0C`Q)4(P,25"
265 M,#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;
266 M*$(*&R1")4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P
267 M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&R1")4(P,25",#$E0C`Q)4(P
268 M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q
269 M)4(;*$(*&R1")4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q
270 >)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*
271 eofeof
272
273 $example{'amb.sjis'} = unpack('u',<<'eofeof');
274 M&RA))4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25"
275 M,#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&RA))4(P,25",#$E0C`Q)4(P,25"
276 M,#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;
277 M*$(*&RA))4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P
278 M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&RA))4(P,25",#$E0C`Q)4(P
279 M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q
280 M)4(;*$(*&RA))4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q
281 >)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*
282 eofeof
283
284 printf "%-40s", "Ambiguous Case.";
285     &test("$nkf -j",$example{'amb'},$example{'amb.euc'});
286
287 # Input assumption
288
289 printf "%-40s", "SJIS  Input assumption";
290     &test("$nkf -jSx",$example{'amb'},$example{'amb.sjis'});
291
292 # UTF8_STR_OF_JIS_SECOND_LEVEL_KANJI
293 $example{'utf8_str_of_jis_second_level_kanji'} = "\xe9\xa4\x83\xe5\xad\x90";
294
295 printf "%-40s", "UTF8_STR_OF_JIS_SECOND_LEVEL_KANJI";
296     &test("$nkf -w",$example{'utf8_str_of_jis_second_level_kanji'},
297             $example{'utf8_str_of_jis_second_level_kanji'});
298
299 # Broken JIS
300
301 printf "%-40s", "Broken JIS";
302     $input = $example{'jis'};
303     $input =~ s/\033//g;
304     &test("$nkf -Be",$input,$example{'euc'});
305 printf "%-40s", "Broken JIS is safe on Normal JIS?";
306     $input = $example{'jis'};
307     &test("$nkf -Be",$input,$example{'euc'});
308
309 # test_data/cp932
310
311 $example{'test_data/cp932'} = unpack('u',<<'eofeof');
312 %^D`@_$L`
313 eofeof
314
315 $example{'test_data/cp932.ans'} = unpack('u',<<'eofeof');
316 %_/$@_.X`
317 eofeof
318
319 printf "%-40s", "test_data/cp932";
320     &test("$nkf -eS",$example{'test_data/cp932'},$example{'test_data/cp932.ans'});
321 printf "%-40s", "test_data/cp51932";
322     &test("$nkf --ic=cp932 --oc=cp51932",$example{'test_data/cp932'},$example{'test_data/cp932.ans'});
323
324 # test_data/cp932inv
325 printf "%-40s", "test_data/cp932inv";
326     &test("$nkf -sE --cp932",$example{'test_data/cp932.ans'},$example{'test_data/cp932'});
327
328 # test_data/no-cp932inv
329
330 $example{'test_data/no-cp932inv.ans'} = unpack('u',<<'eofeof');
331 %[N\@[NP`
332 eofeof
333
334 printf "%-40s", "test_data/no-cp932inv";
335     &test("$nkf -sE --no-cp932",$example{'test_data/cp932.ans'},$example{'test_data/no-cp932inv.ans'});
336 # JIS X 0212
337 $example{'jisx0212_euc'} = "\x8F\xA2\xAF\x8F\xED\xE3";
338 $example{'jisx0212_jis'} = "\x1b\x24\x28\x44\x22\x2f\x6d\x63\x1b\x28\x42";
339
340 printf "%-40s", "ISO-2022-JP-1 to EUC-JP";
341     &test("$nkf --ic=ISO-2022-JP-1 --oc=EUC-JP",$example{'jisx0212_jis'},$example{'jisx0212_euc'});
342
343 printf "%-40s", "EUC-JP to ISO-2022-JP-1";
344     &test("$nkf --ic=EUC-JP --oc=ISO-2022-JP-1",$example{'jisx0212_euc'},$example{'jisx0212_jis'});
345 # JIS X 0213
346
347 $example{'jisx0213_sjis'} = unpack('u',<<'eofeof');
348 0@:V(G9ATF)WJIN_W\$#\]```
349 eofeof
350
351 $example{'jisx0213_euc'} = unpack('u',<<'eofeof');
352 2HJ^O_<_5S_WTJ/[YCZ&AC_[V
353 eofeof
354
355 $example{'jisx0213_jis2000'} = unpack('u',<<'eofeof');
356 ;&R0H3R(O+WU/54]]="A^>1LD*%`A(7YV&RA"
357 eofeof
358 $example{'jisx0213_jis2004'} = unpack('u',<<'eofeof');
359 ;&R0H42(O+WU/54]]="A^>1LD*%`A(7YV&RA"
360 eofeof
361
362 printf "%-40s", "Shift_JISX0213 to EUC-JISX0213";
363     &test("$nkf --ic=Shift_JISX0213 --oc=EUC-JISX0213",$example{'jisx0213_sjis'},$example{'jisx0213_euc'});
364
365 printf "%-40s", "EUC-JISX0213 to Shift_JISX0213";
366     &test("$nkf --ic=EUC-JISX0213 --oc=Shift_JISX0213",$example{'jisx0213_euc'},$example{'jisx0213_sjis'});
367
368 printf "%-40s", "ISO-2022-JP-3 to EUC-JISX0213";
369     &test("$nkf --ic=ISO-2022-JP-3 --oc=EUC-JISX0213",$example{'jisx0213_jis2000'},$example{'jisx0213_euc'});
370
371 printf "%-40s", "ISO-2022-JP-2004 to EUC-JISX0213";
372     &test("$nkf --ic=ISO-2022-JP-2004 --oc=EUC-JISX0213",$example{'jisx0213_jis2004'},$example{'jisx0213_euc'});
373
374 printf "%-40s", "EUC-JISX0213 to ISO-2022-JP-2004";
375     &test("$nkf --ic=EUC-JISX0213 --oc=ISO-2022-JP-2004",$example{'jisx0213_euc'},$example{'jisx0213_jis2004'});
376 # test_data/no_best_fit_chars
377
378 $example{'test_data/no_best_fit_chars'} = unpack('u',<<'eofeof');
379 ;XH"5XHBE[[R-[[^@[[^A[[^B[[^C[[^D[[^E
380 eofeof
381
382 printf "%-40s", "no_best_fit_chars (eucJP-ascii)";
383     &test("$nkf -W --oc=eucJP-ascii --no-best-fit-chars",$example{'test_data/no_best_fit_chars'},'');
384
385 $example{'test_data/no_best_fit_chars_ms'} = unpack('u',<<'eofeof');
386 9PJ+"H\*EPJ;"K.*`E.*`EN*`ON*(DN.`G```
387 eofeof
388
389 printf "%-40s", "no_best_fit_chars (eucJP-ms)";
390     &test("$nkf -W --oc=eucJP-ms --no-best-fit-chars",$example{'test_data/no_best_fit_chars_ms'},'');
391
392 $example{'test_data/no_best_fit_chars_cp932'} = unpack('u',<<'eofeof');
393 MPJ'"HL*CPJ7"IL*IPJK"J\*LPJW"KL*OPK+"L\*UPK?"N,*YPKK"N\.`PX'#
394 M@L.#PX3#A<.&PX?#B,.)PXK#B\.,PXW#CL./PY##D<.2PY/#E,.5PY;#F,.9
395 MPYK#F\.<PYW#GL.?PZ##H<.BPZ/#I,.EPZ;#I\.HPZG#JL.KPZS#K<.NPZ_#
396 @L,.QP[+#L\.TP[7#ML.XP[G#NL.[P[S#O<.^P[_C@I0`
397 eofeof
398
399 printf "%-40s", "no_best_fit_chars (cp932)";
400     &test("$nkf -W --oc=CP932 --no-best-fit-chars",$example{'test_data/no_best_fit_chars_cp932'},'');
401 # test_data/irv
402
403 # $example{'test_data/irv'} = unpack('u',<<'eofeof');
404 # %#B`/(!L`
405 # eofeof
406
407 # $example{'test_data/irv.ans'} = unpack('u',<<'eofeof');
408 # %#B`/(!L`
409 # eofeof
410
411 # printf "%-40s", "test_data/irv";
412 #    &test("$nkf -wE",$example{'test_data/irv'},$example{'test_data/irv.ans'});
413
414
415 # UCS Mapping Test
416 print "\nUCS Mapping Test\n\n";
417
418 print "Shift_JIS to UTF-16\n";
419 $example{'ms_ucs_map_1_sjis'} = "\x81\x60\x81\x61\x81\x7C\x81\x91\x81\x92\x81\xCA";
420 $example{'ms_ucs_map_1_utf16'} = "\x30\x1C\x20\x16\x22\x12\x00\xA2\x00\xA3\x00\xAC";
421 $example{'ms_ucs_map_1_utf16_ms'} = "\xFF\x5E\x22\x25\xFF\x0D\xFF\xE0\xFF\xE1\xFF\xE2";
422
423 printf "%-40s", "Normal UCS Mapping :";
424     &test("$nkf -w16B0 --ic=Shift_JIS",$example{'ms_ucs_map_1_sjis'},$example{'ms_ucs_map_1_utf16'});
425
426 printf "%-40s", "Microsoft UCS Mapping :";
427     &test("$nkf -w16B0 -S --ms-ucs-map",$example{'ms_ucs_map_1_sjis'},$example{'ms_ucs_map_1_utf16_ms'});
428 printf "%-40s", "CP932 to UTF-16BE :";
429     &test("$nkf --ic=cp932 --oc=utf-16be",$example{'ms_ucs_map_1_sjis'},$example{'ms_ucs_map_1_utf16_ms'});
430
431 # X0201 \e$B2>L>\e(B
432 # X0201->X0208 conversion
433 # X0208 aphabet -> ASCII
434 # X0201 \e$BAj8_JQ49\e(B
435
436 print "\nX0201 test\n\n";
437
438 $example{'x0201.sjis'} = unpack('u',<<'eofeof');
439 MD5.*<(-*@TR#3H-0@U*#2X--@T^#48-3"I%3B7""8()A@F*"8X)D@F6"9H*!
440 M@H*"@X*$@H6"AH*'"I%3BTR-AH%)@9>!E(&0@9.!3X&5@9:!:8%J@7R!>X&!
441 M@6V!;H%O@7"!CPJ4O(IPMK>X/;FZMMZWWKC>N=ZZWH+&"I2\BG#*W\O?S-_-
442 MW\[?M]^QW@K*W\O?S`IH86YK86MU(,K?R]_,I`K*W\O?S-VA"I2\BG""S(SC
443 !"@!"
444 eofeof
445
446 $example{'x0201.euc'} = unpack('u',<<'eofeof');
447 MP;2ST:6KI:VEKZ6QI;.EK*6NI;"ELJ6T"L&TL=&CP:/"H\.CQ*/%H\:CQZ/A
448 MH^*CXZ/DH^6CYJ/G"L&TM:VYYJ&JH?>A]*'PH?.AL*'UH?:ARJ'+H=VAW*'A
449 MH<ZASZ'0H=&A[PK(OK/1CK:.MXZX/8ZYCKJ.MH[>CK>.WHZXCMZ.N8[>CKJ.
450 MWJ3("LB^L]&.RH[?CLN.WX[,CM^.S8[?CLZ.WXZWCM^.L8[>"H[*CM^.RX[?
451 MCLP*:&%N:V%K=2".RH[?CLN.WX[,CJ0*CLJ.WX[+CM^.S([=CJ$*R+ZST:3.
452 #N.4*
453 eofeof
454
455 $example{'x0201.utf'} = unpack('u',<<'eofeof');
456 MY86HZ*>2XX*KXX*MXX*OXX*QXX*SXX*LXX*NXX*PXX*RXX*T"N6%J.B+L>^\
457 MH>^\HN^\H^^\I.^\I>^\IN^\I^^]@>^]@N^]@^^]A.^]A>^]AN^]APKEA:CH
458 MJ)CEC[?OO('OO*#OO(/OO(3OO(7OO+[OO(;OO(KOO(COO(GBB)+OO(OOO)WO
459 MO+OOO+WOO9OOO9W"I0KEC8KHIY+OO;;OO;?OO;@][[VY[[VZ[[VV[[Z>[[VW
460 M[[Z>[[VX[[Z>[[VY[[Z>[[VZ[[Z>XX&H"N6-BNBGDN^^BN^^G^^^B^^^G^^^
461 MC.^^G^^^C>^^G^^^CN^^G^^]M^^^G^^]L>^^G@KOOHKOOI_OOHOOOI_OOHP*
462 M:&%N:V%K=2#OOHKOOI_OOHOOOI_OOHSOO:0*[[Z*[[Z?[[Z+[[Z?[[Z,[[Z=
463 1[[VA"N6-BNBGDN.!KN6^C`H`
464 eofeof
465
466 $example{'x0201.jis'} = unpack('u',<<'eofeof');
467 M&R1"030S424K)2TE+R4Q)3,E+"4N)3`E,B4T&RA""ALD0D$T,5$C02-"(T,C
468 M1"-%(T8C1R-A(V(C8R-D(V4C9B-G&RA""ALD0D$T-2TY9B$J(7<A="%P(7,A
469 M,"%U(78A2B%+(5TA7"%A(4XA3R%0(5$A;QLH0@H;)$)(/C-1&RA)-C<X&RA"
470 M/1LH23DZ-EXW7CA>.5XZ7ALD0B1(&RA""ALD0D@^,U$;*$E*7TM?3%]-7TY?
471 M-U\Q7ALH0@H;*$E*7TM?3!LH0@IH86YK86MU(!LH24I?2U],)!LH0@H;*$E*
472 97TM?3%TA&RA""ALD0D@^,U$D3CAE&RA""@``
473 eofeof
474
475 $example{'x0201.sosi'} = unpack('u',<<'eofeof');
476 M&R1"030S424K)2TE+R4Q)3,E+"4N)3`E,B4T&RA*"ALD0D$T,5$C02-"(T,C
477 M1"-%(T8C1R-A(V(C8R-D(V4C9B-G&RA*"ALD0D$T-2TY9B$J(7<A="%P(7,A
478 M,"%U(78A2B%+(5TA7"%A(4XA3R%0(5$A;QLH2@H;)$)(/C-1&RA*#C8W.`\;
479 M*$H]#CDZ-EXW7CA>.5XZ7@\;)$(D2!LH2@H;)$)(/C-1&RA*#DI?2U],7TU?
480 M3E\W7S%>#PH.2E]+7TP/&RA*"FAA;FMA:W4@#DI?2U],)`\;*$H*#DI?2U],
481 672$/&RA*"ALD0D@^,U$D3CAE&RA""@``
482 eofeof
483
484 $example{'x0201.x0208'} = unpack('u',<<'eofeof');
485 M&R1"030S424K)2TE+R4Q)3,E+"4N)3`E,B4T&RA""ALD0D$T,5$;*$)!0D-$
486 M149'86)C9&5F9PH;)$)!-#4M.68;*$(A0",D)5XF*B@I+2L]6UU[?1LD0B%O
487 M&RA""ALD0D@^,U$E*R4M)2\;*$(]&R1")3$E,R4L)2XE,"4R)30D2!LH0@H;
488 M)$)(/C-1)5$E5"57)5HE724M(2PE(B$K&RA""ALD0B51)50E51LH0@IH86YK
489 M86MU(!LD0B51)50E52$B&RA""ALD0B51)50E525S(2,;*$(*&R1"2#XS421.
490 &.&4;*$(*
491 eofeof
492
493 # -X is necessary to allow X0201 in SJIS
494 # -Z convert X0208 alphabet to ASCII
495 printf "%-40s", "X0201 conversion: SJIS";
496     &test("$nkf -jXZ",$example{'x0201.sjis'},$example{'x0201.x0208'});
497 printf "%-40s", "X0201 conversion: JIS";
498     &test("$nkf -jZ",$example{'x0201.jis'},$example{'x0201.x0208'});
499 printf "%-40s", "X0201 conversion: SI/SO";
500     &test("$nkf -jZ",$example{'x0201.sosi'},$example{'x0201.x0208'});
501 printf "%-40s", "X0201 conversion: EUC";
502     &test("$nkf -jZ",$example{'x0201.euc'},$example{'x0201.x0208'});
503 printf "%-40s", "X0201 conversion: UTF8";
504     &test("$nkf -jZ",$example{'x0201.utf'},$example{'x0201.x0208'});
505 # -x means X0201 output
506 printf "%-40s", "X0201 output: SJIS";
507     &test("$nkf -xs",$example{'x0201.euc'},$example{'x0201.sjis'});
508 printf "%-40s", "X0201 output: JIS";
509     &test("$nkf -xj",$example{'x0201.sjis'},$example{'x0201.jis'});
510 printf "%-40s", "X0201 output: EUC";
511     &test("$nkf -xe",$example{'x0201.jis'},$example{'x0201.euc'});
512 printf "%-40s", "X0201 output: UTF8";
513     &test("$nkf -xw",$example{'x0201.jis'},$example{'x0201.utf'});
514
515 # MIME decode
516
517 print "\nMIME test\n\n";
518
519 # MIME ISO-2022-JP
520
521 $example{'mime.iso2022'} = unpack('u',<<'eofeof');
522 M/3])4T\M,C`R,BU*4#]"/T=Y4D%.144W96E23TI566Q/4U9)1WEH2S\]"CT_
523 M:7-O+3(P,C(M2E`_0C]'>5)!3D5%-V5I4D]*55EL3U-624=Y:$L_/0H]/VES
524 M;RTR,#(R+4I0/U$_/3%")$(D1B11/3%"*$)?96YD/ST*&R1`)#TD)B0K)$H;
525 M*$H@/3])4T\M,C`R,BU*4#]"/T=Y4D%.144W96E23U!Y:S=D:'-O4V<]/3\]
526 M(&5N9"!O9B!L:6YE"CT_25-/+3(P,C(M2E`_0C]'>5)!3D5%-V5I4D]0>6LW
527 M9&AS;U-G/3T_/2`]/TE33RTR,#(R+4I0/T(_1WE204Y%13=E:5)/4'EK-V1H
528 M<V]39ST]/ST*0G)O:V5N(&-A<V4*/3])4T\M,C`R,BU*4#]"/T=Y4D%.144W
529 M96E23U!Y:S=D"FAS;U-G/3T_/2`]/TE33RTR,`HR,BU*4#]"/T=Y4D%.144W
530 M96E23U!Y:S=D:'-O4V<]/3\]"CT_25-/+3(P,C(M2E`_0C]'>5)!3D5%-V5I
531 44D]*55EL3QM;2U-624=Y:$L_/0H_
532 eofeof
533
534 $example{'mime.ans.strict'} = unpack('u',<<'eofeof');
535 M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11
536 M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F
537 M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-A<V4*
538 M/3])4T\M,C`R,BU*4#]"/T=Y4D%.144W96E23U!Y:S=D"FAS;U-G/3T_/2`]
539 M/TE33RTR,`HR,BU*4#]"/T=Y4D%.144W96E23U!Y:S=D:'-O4V<]/3\]"CT_
540 L25-/+3(P,C(M2E`_0C]'>5)!3D5%-V5I4D]*55EL3QM;2U-624=Y:$L_/0H_
541 eofeof
542
543 $example{'mime.unbuf.strict'} = unpack('u',<<'eofeof');
544 M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11
545 M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F
546 M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-A<V4*
547 M&R1"-$$[>B1./RD;*$)H<V]39ST]/ST@/3])4T\M,C`*,C(M2E`_0C]'>5)!
548 M3D5%-V5I4D]0>6LW9&AS;U-G/3T_/0H;)$(T03MZ)$XE1ALH0EM+4U9)1WEH
549 $2S\]"F5I
550 eofeof
551
552 $example{'mime.ans'} = unpack('u',<<'eofeof');
553 M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11
554 M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F
555 M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-A<V4*
556 M&R1"-$$[>B1./RD;*$)H<V]39ST]/ST@&R1"-$$[>B1./RD[=ALH0@H;)$(T
557 603MZ)$XE1ALH0EM+4U9)1WEH2S\]"@`*
558 eofeof
559
560 $example{'mime.unbuf'} = unpack('u',<<'eofeof');
561 M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11
562 M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F
563 M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-A<V4*
564 M&R1"-$$[>B1./RD;*$)H<V]39ST]/ST@&R1"-$$[>B1./RD[=ALH0@H;)$(T
565 603MZ)$XE1ALH0EM+4U9)1WEH2S\]"@`*
566 eofeof
567
568 $example{'mime.base64'} = unpack('u',<<'eofeof');
569 M9W-M5"])3&YG<FU#>$I+-&=Q=4,S24LS9W%Q0E%:3TUI-39,,S0Q-&=S5T)1
570 M43!+9VUA1%9O3T@*9S)+1%1O3'=K8C)1;$E+;V=Q2T-X24MG9W5M0W%*3EEG
571 <<T=#>$E+9V=U;4,X64Q&9W)70S592VMG<6U""F=Q
572 eofeof
573
574 $example{'mime.base64.ans'} = unpack('u',<<'eofeof');
575 M&R1")$M&?B1I)#LD1D0Z)"TD7B0Y)"PA(D5L-7XV83E9)$<A(ALH0@T*&R1"
576 M(T<E-R5G)4,E+R1R0C\_="0J)"0D1B0B)&LD*D4Y)$,D1B0B)&LD<R1')#<D
577 (9R0F)"L;*$(E
578 eofeof
579
580 # printf "%-40s", "Next test is expected to Fail.\n";
581 printf "%-40s", "MIME decode (strict)";
582     $tmp = &test("$nkf -jmS",$example{'mime.iso2022'},$example{'mime.ans.strict'});
583
584 $example{'mime.ans.alt'} = unpack('u',<<'eofeof');
585 M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11
586 M&RA"96YD"ALD0B0])"8D*R1*&RA"&R1"-$$[>B1./RD[=ALH0F5N9&]F;&EN
587 M90H;)$(T03MZ)$X_*3MV-$$[>B1./RD[=ALH0@I"<F]K96YC87-E"ALD0C1!
588 H.WHD3C\I.W8T03MZ)$X_*3MV&RA""ALD0C1!.WHD3B5&)3DE)!LH0@``
589 eofeof
590
591 $example{'mime.unbuf.alt'} = unpack('u',<<'eofeof');
592 M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11
593 M&RA"96YD"ALD0B0])"8D*R1*&RA"&R1"-$$[>B1./RD[=ALH0F5N9&]F;&EN
594 M90H;)$(T03MZ)$X_*3MV-$$[>B1./RD[=ALH0@I"<F]K96YC87-E"ALD0C1!
595 H.WHD3C\I.W8T03MZ)$X_*3MV&RA""ALD0C1!.WHD3B5&)3DE)!LH0@``
596 eofeof
597
598 printf "%-40s", "MIME decode (nonstrict)";
599     $tmp = &test("$nkf -jmN",$example{'mime.iso2022'},$example{'mime.ans'},$example{'mime.ans.alt'});
600     # open(OUT,">tmp1");printf "%-40s", OUT pack('u',$tmp);close(OUT);
601 # unbuf mode implies more pessimistic decode
602 printf "%-40s", "MIME decode (unbuf)";
603     $tmp = &test("$nkf -jmNu",$example{'mime.iso2022'},$example{'mime.unbuf'},$example{'mime.unbuf.alt'});
604     # open(OUT,">tmp2");printf "%-40s", OUT pack('u',$tmp);close(OUT);
605 printf "%-40s", "MIME decode (base64)";
606     &test("$nkf -jmB",$example{'mime.base64'},$example{'mime.base64.ans'});
607 #MIME BASE64 must be LF?
608
609 # MIME ISO-8859-1
610
611 $example{'mime.is8859'} = unpack('u',<<'eofeof');
612 M/3])4T\M.#@U.2TQ/U$_*CU#-V%V83\_/2`*4&5E<B!4]G)N9W)E;@I,87-S
613 M92!(:6QL97+X92!0971E<G-E;B`@7"`B36EN(&MA97!H97-T(&AA<B!F86%E
614 M="!E="!F;V5L(2(*06%R:'5S(%5N:79E<G-I='DL($1%3DU!4DL@(%P@(DUI
615 <;B!KYG!H97-T(&AA<B!FY65T(&5T(&;X;"$B"@!K
616 eofeof
617
618 $example{'mime.is8859.ans'} = unpack('u',<<'eofeof');
619 M*L=A=F$_(`I0965R(%3V<FYG<F5N"DQA<W-E($AI;&QE<OAE(%!E=&5R<V5N
620 M("!<(")-:6X@:V%E<&AE<W0@:&%R(&9A865T(&5T(&9O96PA(@I!87)H=7,@
621 M56YI=F5R<VET>2P@1$5.34%22R`@7"`B36EN(&OF<&AE<W0@:&%R(&;E970@
622 )970@9OAL(2(*
623 eofeof
624
625 # Without -l, ISO-8859-1 was handled as X0201.
626
627 printf "%-40s", "MIME ISO-8859-1 (Q)";
628     &test("$nkf -jml",$example{'mime.is8859'},$example{'mime.is8859.ans'});
629
630 # test for -f is not so simple.
631
632 print "\nBug Fixes\n\n";
633
634 # test_data/cr
635
636 $example{'test_data/cr'} = unpack('u',<<'eofeof');
637 1I,:DN:3(#71E<W0-=&5S=`T`
638 eofeof
639
640 $example{'test_data/cr.ans'} = unpack('u',<<'eofeof');
641 7&R1")$8D.21(&RA""G1E<W0*=&5S=`H`
642 eofeof
643
644 printf "%-40s", "test_data/cr";
645     &test("$nkf -jd",$example{'test_data/cr'},$example{'test_data/cr.ans'});
646 # test_data/fixed-qencode
647
648 $example{'test_data/fixed-qencode'} = unpack('u',<<'eofeof');
649 M("`@("`@("`],4(D0CYE/STS1#TQ0BA""B`@("`@("`@/3%")$(^93TS1CTS
650 '1#TQ0BA""@``
651 eofeof
652
653 $example{'test_data/fixed-qencode.ans'} = unpack('u',<<'eofeof');
654 F("`@("`@("`;)$(^93\]&RA""B`@("`@("`@&R1"/F4_/1LH0@H`
655 eofeof
656
657 printf "%-40s", "test_data/fixed-qencode";
658     &test("$nkf -jmQ",$example{'test_data/fixed-qencode'},$example{'test_data/fixed-qencode.ans'});
659 # test_data/long-fold-1
660
661 $example{'test_data/long-fold-1'} = unpack('u',<<'eofeof');
662 MI,JDK*2DI,JDK*2DI,JDK*'!I*2DKJ3GI*:DK*2BI.JDWJ2WI,:AHJ2SI.RD
663 M\J2]I,ZDWJ3>I**DQ*2KI*:DR*&BI,FDIJ3BI-^DT*2HI*RD[Z3KI*2DMZ&B
664 MI,BDP:3EI*:DQZ3!I.>D\Z2NI.RDZZ2KI.*DMZ3SI,JDI*&C"J2SI+.DSR!#
665 M4B],1B"DSKG4H:,-"J2SI+.DSR!#4B"DSKG4H:,-I+.DLZ3/($Q&+T-2(*3.
666 9N=2AHPH-"J2SI+.DSR!,1B"DSKG4H:,*"@``
667 eofeof
668
669 $example{'test_data/long-fold-1.ans'} = unpack('u',<<'eofeof');
670 M&R1")$HD+"0D)$HD+"0D)$HD+"%!)"0D+B1G)"8D+"0B)&HD7B0W)$8A(B0S
671 M)&PD<B0])$XD7B1>)"(D1"0K&RA""ALD0B0F)$@A(B1))"8D8B1?)%`D*"0L
672 M)&\D:R0D)#<A(B1()$$D920F)$<D021G)',D+B1L)&LD*R1B)#<D<QLH0@H;
673 M)$(D2B0D(2,;*$(*&R1")#,D,R1/&RA"($-2+TQ&(!LD0B1..50A(QLH0@H;
674 M)$(D,R0S)$\;*$(@0U(@&R1")$XY5"$C&RA""ALD0B0S)#,D3QLH0B!,1B]#
675 M4B`;)$(D3CE4(2,;*$(*"ALD0B0S)#,D3QLH0B!,1B`;)$(D3CE4(2,;*$(*
676 !"@``
677 eofeof
678
679 printf "%-40s", "test_data/long-fold-1";
680     &test("$nkf -jF60",$example{'test_data/long-fold-1'},$example{'test_data/long-fold-1.ans'});
681 # test_data/long-fold
682
683 $example{'test_data/long-fold'} = unpack('u',<<'eofeof');
684 MI,JDK*2DI,JDK*2DI,JDK*'!I*2DKJ3GI*:DK*2BI.JDWJ2WI,:AHJ2SI.RD
685 M\J2]I,ZDWJ3>I**DQ*2KI*:DR*&BI,FDIJ3BI-^DT*2HI*RD[Z3KI*2DMZ&B
686 MI,BDP:3EI*:DQZ3!I.>D\Z2NI.RDZZ2KI.*DMZ3SI,JDI*&C"J2SI+.DS\.[
687 'I*2YU*&C"@``
688 eofeof
689
690 $example{'test_data/long-fold.ans'} = unpack('u',<<'eofeof');
691 M&R1")$HD+"0D)$HD+"0D)$HD+"%!)"0D+B1G)"8D+"0B)&HD7B0W)$8A(B0S
692 M)&PD<B0])$XD7B1>)"(D1"0K&RA""ALD0B0F)$@A(B1))"8D8B1?)%`D*"0L
693 M)&\D:R0D)#<A(B1()$$D920F)$<D021G)',D+B1L)&LD*R1B)#<D<QLH0@H;
694 :)$(D2B0D(2,D,R0S)$]#.R0D.50A(QLH0@H`
695 eofeof
696
697 printf "%-40s", "test_data/long-fold";
698     &test("$nkf -jf60",$example{'test_data/long-fold'},$example{'test_data/long-fold.ans'});
699 # test_data/mime_out
700
701 $example{'test_data/mime_out'} = unpack('u',<<'eofeof');
702 M"BTM+2T*4W5B:F5C=#H@86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@
703 M86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@86%A82!A86%A"BTM+2T*
704 M4W5B:F5C=#H@I**DI*2FI*BDJJ2KI*VDKZ2QI+.DM:2WI+FDNZ2]I+^DP:3$
705 MI,:DR*3*I,NDS*3-I,ZDSZ32I-6DV*3;I-ZDWZ3@I.&DXJ3DI*2DYJ2HI.@*
706 M+2TM+0I3=6)J96-T.B!A86%A(&%A86$@86%A82!A86%A(&%A86$@86%A82!A
707 I86%A(*2BI*2DIJ2HI*H@86%A82!A86%A(&%A86$@86%A80HM+2TM"@H`
708 eofeof
709
710 $example{'test_data/mime_out.ans'} = unpack('u',<<'eofeof');
711 M"BTM+2T*4W5B:F5C=#H@86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@
712 M86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@86%A80H@86%A80HM+2TM
713 M"E-U8FIE8W0Z(#T_25-/+3(P,C(M2E`_0C]'>5)#2D-):TI#46U*0V=K2VE1
714 M<DI#,&M,>5%X2D1-:TY343-*1&MB2T5)/3\]"B`]/TE33RTR,#(R+4I0/T(_
715 M1WE20TI$<VM04U$O2D5%:U)#4D=*16=K4VE23$I%=VM44U)/2D4X:U5I4E9*
716 M1F=B2T5)/3\]"B`]/TE33RTR,#(R+4I0/T(_1WE20TI&<VM8:5)F2D=!:UE3
717 M4FE*1U%K2D-2;4I#9VMA0G-O46<]/3\]"BTM+2T*4W5B:F5C=#H@86%A82!A
718 M86%A(&%A86$@86%A82!A86%A(&%A86$@86%A80H@/3])4T\M,C`R,BU*4#]"
719 M/T=Y4D-*0TEK2D-1;4I#9VM+:'-O46<]/3\](&%A86$@86%A82!A86%A(&%A
720 )86$*+2TM+0H*
721 eofeof
722
723 $example{'test_data/mime_out.ans.alt'} = unpack('u',<<'eofeof');
724 M"BTM+2T*4W5B:F5C=#H@86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@
725 M86%A82!A86%A(&%A86$*(&%A86$@86%A82!A86%A(&%A86$@86%A80HM+2TM
726 M"E-U8FIE8W0Z(#T_25-/+3(P,C(M2E`_0C]'>5)#2D-):TI#46U*0V=K2VE1
727 M<DI#,&M,>5%X2D1-:TY343-'>6A#/ST*(#T_25-/+3(P,C(M2E`_0C]'>5)#
728 M2D1K:T]Y43E*1#AK45-214I%66M30U)+2D5S:U1#4DY*131K5'E24TI&56M7
729 M0U)B1WEH0S\]"B`]/TE33RTR,#(R+4I0/T(_1WE20TI&-&M8>5)G2D=%:UEI
730 M4FM*0U%K6FE1;TI'9V)+14D]/ST*+2TM+0I3=6)J96-T.B!A86%A(&%A86$@
731 M86%A82!A86%A(&%A86$@86%A82!A86%A"B`]/TE33RTR,#(R+4I0/T(_1WE2
732 M0TI#26M*0U%M2D-G:TMH<V]19ST]/ST@86%A82!A86%A(&%A86$*(&%A86$*
733 &+2TM+0H*
734 eofeof
735
736 $example{'test_data/mime_out.ans.alt2'} = unpack('u',<<'eofeof');
737 M"BTM+2T*4W5B:F5C=#H@86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@
738 M86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@86%A80H@86%A80HM+2TM
739 M"E-U8FIE8W0Z(#T_25-/+3(P,C(M2E`_0C]'>5)#2D-):TI#46U*0V=K2VE1
740 M<DI#,&M,>5%X2D1-:TY343-*1&MK3WE1.4=Y:$,_/0H@/3])4T\M,C`R,BU*
741 M4#]"/T=Y4D-*1#AK45-214I%66M30U)+2D5S:U1#4DY*131K5'E24TI&56M7
742 M0U)B2D8T:UAY4F='>6A#/ST*(#T_25-/+3(P,C(M2E`_0C]'>5)#2D=%:UEI
743 M4FM*0U%K6FE1;TI'9V)+14D]/ST*+2TM+0I3=6)J96-T.B!A86%A(&%A86$@
744 M86%A82!A86%A(&%A86$@86%A82!A86%A(#T_25-/+3(P,C(M2E`_0C]'>5)#
745 M2D-):TI"<V]19ST]/ST*(#T_25-/+3(P,C(M2E`_0C]'>5)#2D-9:TM#47%'
746 @>6A#/ST@86%A82!A86%A(&%A86$@86%A80HM+2TM"@H`
747 eofeof
748
749 $example{'test_data/mime_out.ans.alt3'} = unpack('u',<<'eofeof');
750 M"BTM+2T*4W5B:F5C=#H@86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@
751 M86%A82!A86%A(&%A86$@86%A82!A86%A(&%A86$@86%A80H@86%A80HM+2TM
752 M"E-U8FIE8W0Z(#T_25-/+3(P,C(M2E`_0C]'>5)#2D-):TI#46U*0V=K2VE1
753 M<DI#,&M,>5%X2D1-:TY343-*1&MK3WE1.4=Y:$,_/0H@/3])4T\M,C`R,BU*
754 M4#]"/T=Y4D-*1#AK45-214I%66M30U)+2D5S:U1#4DY*131K5'E24TI&56M7
755 M0U)B2D8T:UAX<V]19ST]/ST*(#T_25-/+3(P,C(M2E`_0C]'>5)#2D=!:UE3
756 M4FE*1U%K2D-2;4I#9VMA0G-O46<]/3\]"BTM+2T*4W5B:F5C=#H@86%A82!A
757 M86%A(&%A86$@86%A82!A86%A(&%A86$@86%A82`]/TE33RTR,#(R+4I0/T(_
758 M1WE20TI#26M*0G-O46<]/3\]"B`]/TE33RTR,#(R+4I0/T(_1WE20TI#66M+
759 D0U%Q1WEH0S\](&%A86$@86%A82!A86%A(&%A86$*+2TM+0H*1
760 eofeof
761
762 printf "%-40s", "test_data/mime_out";
763     &test("$nkf -jM",$example{'test_data/mime_out'},$example{'test_data/mime_out.ans'},$example{'test_data/mime_out.ans.alt'},$example{'test_data/mime_out.ans.alt2'},$example{'test_data/mime_out.ans.alt3'});
764 # test_data/mime_out3
765
766 $example{'test_data/mime_out3'} = "\x82\xD9\x82\xB0 A";
767
768 $example{'test_data/mime_out3.ans'} = "=?ISO-2022-JP?B?GyRCJFskMhsoQg==?= A";
769
770 printf "%-40s", "test_data/mime_out3";
771     &test("$nkf -jSM",$example{'test_data/mime_out3'},$example{'test_data/mime_out3.ans'});
772 # test_data/multi-line
773
774 $example{'test_data/multi-line'} = unpack('u',<<'eofeof');
775 MI,JDK*2DI,JDK*2DI,JDK*'!I*2DKJ3GI*:DK*2BI.JDWJ2WI,:AH@"DLZ3L
776 MI/*DO:3.I-ZDWJ2BI,2DJZ2FI,BAHJ3)I*:DXJ3?I-"DJ*2LI.^DZZ2DI+>A
777 MHJ3(I,&DY:2FI,>DP:3GI/.DKJ3LI.NDJZ3BI+>D\Z3*I*2AHPJDLZ2SI,_#
778 8NZ2DN=2AHP`*I+.DLZ3/P[NDI+G4H:,*
779 eofeof
780
781 $example{'test_data/multi-line.ans'} = unpack('u',<<'eofeof');
782 MI,JDK*2DI,JDK*2DI,JDK*'!I*2DKJ3GI*:DK*2BI.JDWJ2WI,:AH@"DLZ3L
783 MI/*DO:3.I-ZDWJ2BI,2DJZ2FI,BAHJ3)I*:DXJ3?I-"DJ*2LI.^DZZ2DI+>A
784 MHJ3(I,&DY:2FI,>DP:3GI/.DKJ3LI.NDJZ3BI+>D\Z3*I*2AHPJDLZ2SI,_#
785 8NZ2DN=2AHP`*I+.DLZ3/P[NDI+G4H:,*
786 eofeof
787
788 printf "%-40s", "test_data/multi-line";
789     &test("$nkf -e",$example{'test_data/multi-line'},$example{'test_data/multi-line.ans'});
790 # test_data/-Z4
791
792 $example{'test_data/-Z4'} = unpack('u',<<'eofeof');
793 MH:.AUJ'7H:*AIJ&\H:NAK*6AI:*EHZ6DI:6EIJ6GI:BEJ:6JI:NEK*6MI:ZE
794 MKZ6PI;&ELJ6SI;2EM:6VI;>EN*6YI;JENZ6\I;VEOJ6_I<"EP:7"I<.EQ*7%
795 MI<:EQZ7(I<FERJ7+I<RES:7.I<^ET*71I=*ETZ74I=6EUJ77I=BEV:7:I=NE
796 KW*7=I=ZEWZ7@I>&EXJ7CI>2EY:7FI>>EZ*7II>JEZZ7LI>VE[Z7RI?.E]```
797 eofeof
798
799 $example{'test_data/-Z4.ans'} = unpack('u',<<'eofeof');
800 MCJ&.HHZCCJ2.I8ZPCMZ.WXZGCK&.J(ZRCJF.LXZJCK2.JXZUCK:.MH[>CK>.
801 MMX[>CKB.N([>CKF.N8[>CKJ.NH[>CKN.NX[>CKR.O([>CKV.O8[>CKZ.OH[>
802 MCK^.OX[>CL".P([>CL&.P8[>CJ^.PH["CMZ.PX[#CMZ.Q([$CMZ.Q8[&CL>.
803 MR([)CLJ.RH[>CLJ.WX[+CLN.WH[+CM^.S([,CMZ.S([?CLV.S8[>CLV.WX[.
804 MCLZ.WH[.CM^.SX[0CM&.TH[3CJR.U(ZMCM6.KH[6CM>.V([9CMJ.VX[<CJ:.
805 %W8ZSCMX`
806 eofeof
807
808 printf "%-40s", "test_data/-Z4    ";
809     &test("$nkf -eEZ4",$example{'test_data/-Z4'},$example{'test_data/-Z4.ans'});
810 # test_data/nkf-19-bug-1
811
812 $example{'test_data/nkf-19-bug-1'} = unpack('u',<<'eofeof');
813 ,I*:DJZ2D"KK8QJ,*
814 eofeof
815
816 $example{'test_data/nkf-19-bug-1.ans'} = unpack('u',<<'eofeof');
817 8&R1")"8D*R0D&RA""ALD0CI81B,;*$(*
818 eofeof
819
820 printf "%-40s", "test_data/nkf-19-bug-1";
821     &test("$nkf -Ej",$example{'test_data/nkf-19-bug-1'},$example{'test_data/nkf-19-bug-1.ans'});
822 # test_data/nkf-19-bug-2
823
824 $example{'test_data/nkf-19-bug-2'} = unpack('u',<<'eofeof');
825 %I-NDL@H`
826 eofeof
827
828 $example{'test_data/nkf-19-bug-2.ans'} = unpack('u',<<'eofeof');
829 %I-NDL@H`
830 eofeof
831
832 printf "%-40s", "test_data/nkf-19-bug-2";
833     &test("$nkf -Ee",$example{'test_data/nkf-19-bug-2'},$example{'test_data/nkf-19-bug-2.ans'});
834 # test_data/nkf-19-bug-3
835
836 $example{'test_data/nkf-19-bug-3'} = unpack('u',<<'eofeof');
837 8[;'Q\,&L"N6ZSN\*\NT)ON7.SL_+"0D*
838 eofeof
839
840 $example{'test_data/nkf-19-bug-3.ans'} = unpack('u',<<'eofeof');
841 8[;'Q\,&L"N6ZSN\*\NT)ON7.SL_+"0D*
842 eofeof
843
844 printf "%-40s", "test_data/nkf-19-bug-3";
845     &test("$nkf -e",$example{'test_data/nkf-19-bug-3'},$example{'test_data/nkf-19-bug-3.ans'});
846 # test_data/non-strict-mime
847
848 $example{'test_data/non-strict-mime'} = unpack('u',<<'eofeof');
849 M/3])4T\M,C`R,BU*4#]"/PIG<U-#;V]+.6=R-D-O;TQ%9W1Y0W0T1D-$46].
850 M0V\V16=S,D]N;T999S1Y1%=)3$IG=4-0:UD*2W!G<FU#>$E+:6=R,D-V;TMI
851 ,9W-30V]O3&,*/ST*
852 eofeof
853
854 $example{'test_data/non-strict-mime.ans'} = unpack('u',<<'eofeof');
855 M&R1")$8D)"0_)$`D)"1&)%XD.2$C&RA"#0H-"ALD0CMD)$\[?B$Y)6PE.21+
856 <)&(]<20K)#LD1B0D)#\D0"0D)$8D)"1>&RA""@``
857 eofeof
858
859 printf "%-40s", "test_data/non-strict-mime";
860     &test("$nkf -jmN",$example{'test_data/non-strict-mime'},$example{'test_data/non-strict-mime.ans'});
861 # test_data/q-encode-softrap
862
863 $example{'test_data/q-encode-softrap'} = unpack('u',<<'eofeof');
864 H/3%")$(T03MZ)3T*,R$\)4DD3CTQ0BA""CTQ0B1"2E$T.3TQ0BA""@``
865 eofeof
866
867 $example{'test_data/q-encode-softrap.ans'} = unpack('u',<<'eofeof');
868 >&R1"-$$[>B4S(3PE221.&RA""ALD0DI1-#D;*$(*
869 eofeof
870
871 printf "%-40s", "test_data/q-encode-softrap";
872     &test("$nkf -jmQ",$example{'test_data/q-encode-softrap'},$example{'test_data/q-encode-softrap.ans'});
873 # test_data/rot13
874
875 $example{'test_data/rot13'} = unpack('u',<<'eofeof');
876 MI+.D\Z3+I,&DSZ&BS:W"]*3(I*2DI*3>I+FAHPH*;FMF('9E<BXQ+CDR(*3R
877 MS?C-T:2UI+NDQJ2DI+^DP*2DI,:DI*3>I+FDK*&B05-#24D@I,O"T*2WI,8@
878 M4D]4,3,@I*P*P+6DMZ2OQK"DI*3&I*2DRJ2DI.BDIJ3'H:*PRK*\I,ZDZ*2F
879 MI,O*T;2YI+6D[*3>I+ND\Z&C"@HE(&5C:&\@)VAO9V4G('P@;FMF("UR"FAO
880 #9V4*
881 eofeof
882
883 $example{'test_data/rot13.ans'} = unpack('u',<<'eofeof');
884 M&R1"4V)31%-Z4W!3?E!1?%QQ15-W4U-34U,O4VA04ALH0@H*87AS(&ER92XQ
885 M+CDR(!LD0E-#?$E\(E-D4VI3=5-34VY3;U-34W534U,O4VA36U!1&RA"3D90
886 M5E8@&R1"4WIQ(5-F4W4;*$(@14)',3,@&R1"4UL;*$(*&R1";V139E->=5]3
887 M4U-U4U-3>5-34SE355-V4%%?>6%K4WU3.5-54WIY(F-H4V13/5,O4VI31%!2
888 A&RA""@HE(')P=6(@)W5B='(G('P@87AS("UE"G5B='(*
889 eofeof
890
891 printf "%-40s", "test_data/rot13";
892     &test("$nkf -jr",$example{'test_data/rot13'},$example{'test_data/rot13.ans'});
893 # test_data/slash
894
895 $example{'test_data/slash'} = unpack('u',<<'eofeof');
896 7("`]/U8\5"U5.5=%2RTK.U<U32LE+PH`
897 eofeof
898
899 $example{'test_data/slash.ans'} = unpack('u',<<'eofeof');
900 7("`]/U8\5"U5.5=%2RTK.U<U32LE+PH`
901 eofeof
902
903 printf "%-40s", "test_data/slash";
904     &test("$nkf -j",$example{'test_data/slash'},$example{'test_data/slash.ans'});
905 # test_data/z1space-0
906
907 $example{'test_data/z1space-0'} = unpack('u',<<'eofeof');
908 "H:$`
909 eofeof
910
911 $example{'test_data/z1space-0.ans'} = unpack('u',<<'eofeof');
912 "H:$`
913 eofeof
914
915 printf "%-40s", "test_data/z1space-0";
916     &test("$nkf -e -Z",$example{'test_data/z1space-0'},$example{'test_data/z1space-0.ans'});
917 # test_data/z1space-1
918
919 $example{'test_data/z1space-1'} = unpack('u',<<'eofeof');
920 "H:$`
921 eofeof
922
923 $example{'test_data/z1space-1.ans'} = unpack('u',<<'eofeof');
924 !(```
925 eofeof
926
927 printf "%-40s", "test_data/z1space-1";
928     &test("$nkf -e -Z1",$example{'test_data/z1space-1'},$example{'test_data/z1space-1.ans'});
929 # test_data/z1space-2
930
931 $example{'test_data/z1space-2'} = unpack('u',<<'eofeof');
932 "H:$`
933 eofeof
934
935 $example{'test_data/z1space-2.ans'} = unpack('u',<<'eofeof');
936 "("``
937 eofeof
938
939 printf "%-40s", "test_data/z1space-2";
940     &test("$nkf -e -Z2",$example{'test_data/z1space-2'},$example{'test_data/z1space-2.ans'});
941 # test_data/bug2273
942
943 $example{'test_data/bug2273'} = unpack('u',<<'eofeof');
944 M/3]I<V\M,C`R,BUJ<#]Q/STY-CU!,CTX1CU",STY,3U&.#TX1$P].$0].3`]
945 M.#$]038*:'1T<#HO+V5X86UP;&4N8V]M+S]O<&4]<V5L"FAT='`Z+R]E>&UA
946 ,<&QE+FIP+PHN+BX*
947 eofeof
948
949 $example{'test_data/bug2273.ans'} = unpack('u',<<'eofeof');
950 MS*2^M<+ZN:VY\**H"FAT='`Z+R]E>&%M<&QE+F-O;2\_;W!E/7-E;`IH='1P
951 3.B\O97AM87!L92YJ<"\*+BXN"@``
952 eofeof
953
954 printf "%-40s", "test_data/bug2273";
955     &test("$nkf -e",$example{'test_data/bug2273'},$example{'test_data/bug2273.ans'});
956 # test_data/forum15899
957
958 $example{'test_data/forum15899'} = unpack('u',<<'eofeof');
959 I6#H@XX&"XX&$XX&&XX&(XX&*XX&+XX&-XX&/XX&1XX&3XX&5(..!EPH`
960 eofeof
961
962 $example{'test_data/forum15899.ans'} = unpack('u',<<'eofeof');
963 M6#H@/3])4T\M,C`R,BU*4#]"/T=Y4D-*0TEK2D-1;4I#9VM+:5%R2D,P:TQY
964 =47A*1$UK3E)S;U%I06)*14EK3GAS;U%G/3T_/0H`
965 eofeof
966
967 printf "%-40s", "test_data/forum15899";
968     &test("$nkf -Mj",$example{'test_data/forum15899'},$example{'test_data/forum15899.ans'});
969 # test_data/bugs10904
970
971 $example{'test_data/bugs10904'} = unpack('u',<<'eofeof');
972 M4W5B:F5C=#H@Z*FFZ:B3YY2HXX.AXX.\XX.KZ*&HZ:&,(.BIINFHD^>4J..#
973 MH>.#O..#J^BAJ.FAC"#HJ:;IJ)/GE*CC@Z'C@[SC@ZOHH:CIH8P@Z*FFZ:B3
974 3YY2HXX.AXX.\XX.KZ*&HZ:&,"@``
975 eofeof
976
977 $example{'test_data/bugs10904.ans'} = unpack('u',<<'eofeof');
978 M4W5B:F5C=#H@/3])4T\M,C`R,BU*4#]"/T=Y4D-/,C0T33`Q4DI716A00U9R
979 ?4U0Q0V%H<V]1:4%B2D5)-V)J9WI45D5B2T5)/3\]"@``
980 M(#T_25-/+3(P,C(M2E`_0C]'>5)#2E=%:%!#5G)35#%#86AS;U%I06)*14DW
981 ?8FIG>E1616Q94T4X2E=T2E!52G%'>6A#24$]/3\]"@``
982 M(#T_25-/+3(P,C(M2E`_0C]'>5)#3S(T-$TP,5)*5T5H4$-6<E-4,4-A:'-O
983 '46<]/3\]"@``
984 eofeof
985
986 printf "%-40s", "test_data/bugs10904";
987     &test("$nkf -Mj",$example{'test_data/bugs10904'},$example{'test_data/bugs10904.ans'});
988
989     if (!NKF) {
990 printf "%-40s", "Guess NL";
991 &command_tests(
992         "$nkf --guess","none",      "ASCII\n",
993         "$nkf --guess","\n",        "ASCII (LF)\n",
994         "$nkf --guess","\n\n",      "ASCII (LF)\n",
995         "$nkf --guess","\n\r",      "ASCII (MIXED NL)\n",
996         "$nkf --guess","\n\r\n",    "ASCII (MIXED NL)\n",
997         "$nkf --guess","\n.\n",     "ASCII (LF)\n",
998         "$nkf --guess","\n.\r",     "ASCII (MIXED NL)\n",
999         "$nkf --guess","\n.\r\n",   "ASCII (MIXED NL)\n",
1000         "$nkf --guess","\r",        "ASCII (CR)\n",
1001         "$nkf --guess","\r\r",      "ASCII (CR)\n",
1002         "$nkf --guess","\r\r\n",    "ASCII (MIXED NL)\n",
1003         "$nkf --guess","\r.\n",     "ASCII (MIXED NL)\n",
1004         "$nkf --guess","\r.\r",     "ASCII (CR)\n",
1005         "$nkf --guess","\r.\r\n",   "ASCII (MIXED NL)\n",
1006         "$nkf --guess","\r\n",      "ASCII (CRLF)\n",
1007         "$nkf --guess","\r\n\n",    "ASCII (MIXED NL)\n",
1008         "$nkf --guess","\r\n\r",    "ASCII (MIXED NL)\n",
1009         "$nkf --guess","\r\n\r\n",  "ASCII (CRLF)\n",
1010         "$nkf --guess","\r\n.\n",   "ASCII (MIXED NL)\n",
1011         "$nkf --guess","\r\n.\r",   "ASCII (MIXED NL)\n",
1012         "$nkf --guess","\r\n.\r\n", "ASCII (CRLF)\n");
1013     }
1014
1015 printf "%-40s", "Convert NL to LF";
1016 &command_tests(
1017         "$nkf -jLu","none",      "none",
1018         "$nkf -jLu","\n",        "\n",
1019         "$nkf -jLu","\n\n",      "\n\n",
1020         "$nkf -jLu","\n\r",      "\n\n",
1021         "$nkf -jLu","\n\r\n",    "\n\n",
1022         "$nkf -jLu","\n.\n",     "\n.\n",
1023         "$nkf -jLu","\n.\r",     "\n.\n",
1024         "$nkf -jLu","\n.\r\n",   "\n.\n",
1025         "$nkf -jLu","\r",        "\n",
1026         "$nkf -jLu","\r\r",      "\n\n",
1027         "$nkf -jLu","\r\r\n",    "\n\n",
1028         "$nkf -jLu","\r.\n",     "\n.\n",
1029         "$nkf -jLu","\r.\r",     "\n.\n",
1030         "$nkf -jLu","\r.\r\n",   "\n.\n",
1031         "$nkf -jLu","\r\n",      "\n",
1032         "$nkf -jLu","\r\n\n",    "\n\n",
1033         "$nkf -jLu","\r\n\r",    "\n\n",
1034         "$nkf -jLu","\r\n\r\n",  "\n\n",
1035         "$nkf -jLu","\r\n.\n",   "\n.\n",
1036         "$nkf -jLu","\r\n.\r",   "\n.\n",
1037         "$nkf -jLu","\r\n.\r\n", "\n.\n");
1038
1039 printf "%-40s", "Convert NL to LF";
1040 &command_tests(
1041         "$nkf -jLm","none",      "none",
1042         "$nkf -jLm","\n",        "\r",
1043         "$nkf -jLm","\n\n",      "\r\r",
1044         "$nkf -jLm","\n\r",      "\r\r",
1045         "$nkf -jLm","\n\r\n",    "\r\r",
1046         "$nkf -jLm","\n.\n",     "\r.\r",
1047         "$nkf -jLm","\n.\r",     "\r.\r",
1048         "$nkf -jLm","\n.\r\n",   "\r.\r",
1049         "$nkf -jLm","\r",        "\r",
1050         "$nkf -jLm","\r\r",      "\r\r",
1051         "$nkf -jLm","\r\r\n",    "\r\r",
1052         "$nkf -jLm","\r.\n",     "\r.\r",
1053         "$nkf -jLm","\r.\r",     "\r.\r",
1054         "$nkf -jLm","\r.\r\n",   "\r.\r",
1055         "$nkf -jLm","\r\n",      "\r",
1056         "$nkf -jLm","\r\n\n",    "\r\r",
1057         "$nkf -jLm","\r\n\r",    "\r\r",
1058         "$nkf -jLm","\r\n\r\n",  "\r\r",
1059         "$nkf -jLm","\r\n.\n",   "\r.\r",
1060         "$nkf -jLm","\r\n.\r",   "\r.\r",
1061         "$nkf -jLm","\r\n.\r\n", "\r.\r");
1062
1063 printf "%-40s", "Convert NL to CRLF";
1064 &command_tests(
1065         "$nkf -jLw","none",      "none",
1066         "$nkf -jLw","\n",        "\r\n",
1067         "$nkf -jLw","\n\n",      "\r\n\r\n",
1068         "$nkf -jLw","\n\r",      "\r\n\r\n",
1069         "$nkf -jLw","\n\r\n",    "\r\n\r\n",
1070         "$nkf -jLw","\n.\n",     "\r\n.\r\n",
1071         "$nkf -jLw","\n.\r",     "\r\n.\r\n",
1072         "$nkf -jLw","\n.\r\n",   "\r\n.\r\n",
1073         "$nkf -jLw","\r",        "\r\n",
1074         "$nkf -jLw","\r\r",      "\r\n\r\n",
1075         "$nkf -jLw","\r\r\n",    "\r\n\r\n",
1076         "$nkf -jLw","\r.\n",     "\r\n.\r\n",
1077         "$nkf -jLw","\r.\r",     "\r\n.\r\n",
1078         "$nkf -jLw","\r.\r\n",   "\r\n.\r\n",
1079         "$nkf -jLw","\r\n",      "\r\n",
1080         "$nkf -jLw","\r\n\n",    "\r\n\r\n",
1081         "$nkf -jLw","\r\n\r",    "\r\n\r\n",
1082         "$nkf -jLw","\r\n\r\r\n",  "\r\n\r\n\r\n",
1083         "$nkf -jLw","\r\n.\n",   "\r\n.\r\n",
1084         "$nkf -jLw","\r\n.\r",   "\r\n.\r\n",
1085         "$nkf -jLw","\r\n.\r\n", "\r\n.\r\n");
1086 # end