From 0a64817fb80016030c03518fb9459f63c11605ea Mon Sep 17 00:00:00 2001 From: matz Date: Fri, 13 Aug 1999 05:37:52 +0000 Subject: remove marshal/gtk/kconv git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/nkf/test.rb | 318 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 318 insertions(+) create mode 100644 ext/nkf/test.rb (limited to 'ext/nkf/test.rb') diff --git a/ext/nkf/test.rb b/ext/nkf/test.rb new file mode 100644 index 0000000000..4519f8ba7e --- /dev/null +++ b/ext/nkf/test.rb @@ -0,0 +1,318 @@ +$counter = 0 +def result(result, message = nil) + $counter += 1 + printf("%s %d%s\n", + result ? 'ok' : 'no', + $counter, + message ? ' ... ' + message : '') +end + +begin + require 'nkf' + include NKF +rescue LoadError + result(false) +end +result(true) + +if nkf('-me', '1') + result(true); +else + result(false); +end + +output = nkf('-e', "\033\$@#1#3#2%B") +if output + # print output, "\n" + result(true, output) +else + result(false) +end + +output = nkf('-Zj', "\033\$@#1#3#2%B") +if output + # print output, "\n" + result(true, output) +else + result(false) +end + +output = "\244\306 " * 1024 +old = output.length +output = nkf("-j", output) +if output + # print output, "\n" + result(true, "#{old} #{output.length}") +else + result(false) +end + + +$detail = false +def test(opt, input, expect) + print "\nINPUT:\n", input if $detail + print "\nEXPECT:\n", expect if $detail + result = nkf(opt, input) + print "\nGOT:\n", result if $detail + + print result == expect ? "Ok\n" : "Fail\n" + return result +end + +# Basic Conversion +print "\nBasic Conversion test\n\n" + +example = {} +example['jis'] = <<'eofeof'.unpack('u')[0] +M1FERED"6GIAR(%-E8V]N9"!3=&%G92"8I9=Y($AI +M#28./ +>@Y*#DR!+:6=O=2"!18&'@D^"8(._@]:$081@A+X* +eofeof +#' + +example['euc'] = <<'eofeof'.unpack('u')[0] +M1FERI?*E\R!+:6=O=2"AIJ'GH["CP:;!IMBGHJ?!J,`* +eofeof +#' + +example['amb'] = <<'eofeof'.unpack('u')[0] +MI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&E +MPK"QI<*PL:7"L+&EPK"QI<(*I<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*P +ML:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<(*I<*PL:7"L+&E +MPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7" +ML+&EPK"QI<(*I<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"Q +MI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<(*I<*PL:7"L+&EPK"QI<*PL:7" +ML+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<*PL:7"L+&EPK"QI<(* +eofeof + +example['amb.euc'] = <<'eofeof'.unpack('u')[0] +M&R1")4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25" +M,#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&R1")4(P,25",#$E0C`Q)4(P,25" +M,#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(; +M*$(*&R1")4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P +M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&R1")4(P,25",#$E0C`Q)4(P +M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q +M)4(;*$(*&R1")4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q +>)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(* +eofeof + +example['amb.sjis'] = <<'eofeof'.unpack('u')[0] +M&RA))4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25" +M,#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&RA))4(P,25",#$E0C`Q)4(P,25" +M,#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(; +M*$(*&RA))4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P +M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(*&RA))4(P,25",#$E0C`Q)4(P +M,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q +M)4(;*$(*&RA))4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q +>)4(P,25",#$E0C`Q)4(P,25",#$E0C`Q)4(;*$(* +eofeof + +example['x0201.sjis'] = <<'eofeof'.unpack('u')[0] +MD5.*<(-*@TR#3H-0@U*#2X--@T^#48-3"I%3B7""8()A@F*"8X)D@F6"9H*! +M@H*"@X*$@H6"AH*'"I%3BTR-AH%)@9>!E(&0@9.!3X&5@9:!:8%J@7R!>X&! +M@6V!;H%O@7"!CPJ4O(IPMK>X/;FZMMZWWKC>N=ZZWH+&"I2\BG#*W\O?S-_- +MW\[?M]^QW@K*W\O?S`IH86YK86MU(,K?R]_,I`K*W\O?S-VA"I2\BG""S(SC +!"@!" +eofeof +#' + +example['x0201.euc'] = <<'eofeof'.unpack('u')[0] +MP;2ST:6KI:VEKZ6QI;.EK*6NI;"ELJ6T"L&TL=&CP:/"H\.CQ*/%H\:CQZ/A +MH^*CXZ/DH^6CYJ/G"L&TM:VYYJ&JH?>A]*'PH?.AL*'UH?:ARJ'+H=VAW*'A +MHCK>.WHZXCMZ.N8[>CKJ. +MWJ3("LB^L]&.RH[?CLN.WX[,CM^.S8[?CLZ.WXZWCM^.L8[>"H[*CM^.RX[? +MCLP*:&%N:V%K=2".RH[?CLN.WX[,CJ0*CLJ.WX[+CM^.S([=CJ$*R+ZST:3. +#N.4* +eofeof +#' + +example['x0201.jis'] = <<'eofeof'.unpack('u')[0] +M&R1"030S424K)2TE+R4Q)3,E+"4N)3`E,B4T&RA""ALD0D$T,5$C02-"(T,C +M1"-%(T8C1R-A(V(C8R-D(V4C9B-G&RA""ALD0D$T-2TY9B$J(7.5XZ7ALD0B1(&RA""ALD0D@^,U$;*$E*7TM?3%]-7TY? +M-U\Q7ALH0@H;*$E*7TM?3!LH0@IH86YK86MU(!LH24I?2U],)!LH0@H;*$E* +97TM?3%TA&RA""ALD0D@^,U$D3CAE&RA""@`` +eofeof +#` + +example['x0201.sosi'] = <<'eofeof'.unpack('u')[0] +M&R1"030S424K)2TE+R4Q)3,E+"4N)3`E,B4T&RA*"ALD0D$T,5$C02-"(T,C +M1"-%(T8C1R-A(V(C8R-D(V4C9B-G&RA*"ALD0D$T-2TY9B$J(7.5XZ7@\;)$(D2!LH2@H;)$)(/C-1&RA*#DI?2U],7TU? +M3E\W7S%>#PH.2E]+7TP/&RA*"FAA;FMA:W4@#DI?2U],)`\;*$H*#DI?2U], +672$/&RA*"ALD0D@^,U$D3CAE&RA""@`` +eofeof +#" + +example['x0201.x0208'] = <<'eofeof'.unpack('u')[0] +M&R1"030S424K)2TE+R4Q)3,E+"4N)3`E,B4T&RA""ALD0D$T,5$;*$)!0D-$ +M149'86)C9&5F9PH;)$)!-#4M.68;*$(A0",D)5XF*B@I+2L]6UU[?1LD0B%O +M&RA""ALD0D@^,U$E*R4M)2\;*$(]&R1")3$E,R4L)2XE,"4R)30D2!LH0@H; +M)$)(/C-1)5$E5"57)5HE724M(2PE(B$K&RA""ALD0B51)50E51LH0@IH86YK +M86MU(!LD0B51)50E52$B&RA""ALD0B51)50E525S(2,;*$(*&R1"2#XS421. +&.&4;*$(* +eofeof +#` + +example['mime.iso2022'] = <<'eofeof'.unpack('u')[0] +M/3])4T\M,C`R,BU*4#]"/T=Y4D%.144W96E23TI566Q/4U9)1WEH2S\]"CT_ +M:7-O+3(P,C(M2E`_0C]'>5)!3D5%-V5I4D]*55EL3U-624=Y:$L_/0H]/VES +M;RTR,#(R+4I0/U$_/3%")$(D1B11/3%"*$)?96YD/ST*&R1`)#TD)B0K)$H; +M*$H@/3])4T\M,C`R,BU*4#]"/T=Y4D%.144W96E23U!Y:S=D:'-O4V<]/3\] +M(&5N9"!O9B!L:6YE"CT_25-/+3(P,C(M2E`_0C]'>5)!3D5%-V5I4D]0>6LW +M9&AS;U-G/3T_/2`]/TE33RTR,#(R+4I0/T(_1WE204Y%13=E:5)/4'EK-V1H +M5)!3D5%-V5I +44D]*55EL3QM;2U-624=Y:$L_/0H_ +eofeof +#' + +example['mime.ans.strict'] = <<'eofeof'.unpack('u')[0] +M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11 +M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F +M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-A5)!3D5%-V5I4D]*55EL3QM;2U-624=Y:$L_/0H_ +eofeof +#' + +example['mime.unbuf.strict'] = <<'eofeof'.unpack('u')[0] +M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11 +M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F +M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-AB1./RD;*$)H5)! +M3D5%-V5I4D]0>6LW9&AS;U-G/3T_/0H;)$(T03MZ)$XE1ALH0EM+4U9)1WEH +$2S\]"F5I +eofeof + +example['mime.ans'] = <<'eofeof'.unpack('u')[0] +M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11 +M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F +M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-AB1./RD;*$)HB1./RD[=ALH0@H;)$(T +603MZ)$XE1ALH0EM+4U9)1WEH2S\]"@`* +eofeof +#" + +example['mime.unbuf'] = <<'eofeof'.unpack('u')[0] +M&R1"-$$[>B1.)48E.25(&RA""ALD0C1!.WHD3B5&)3DE2!LH0@H;)$(D1B11 +M&RA"(&5N9`H;)$(D/20F)"LD2ALH0B`;)$(T03MZ)$X_*3MV&RA"96YD(&]F +M(&QI;F4*&R1"-$$[>B1./RD[=C1!.WHD3C\I.W8;*$(*0G)O:V5N(&-AB1./RD;*$)HB1./RD[=ALH0@H;)$(T +603MZ)$XE1ALH0EM+4U9)1WEH2S\]"@`* +eofeof +#" + +example['mime.base64'] = <<'eofeof'.unpack('u')[0] +M9W-M5"])3&YG$I+-&=Q=4,S24LS9W%Q0E%:3TUI-39,,S0Q-&=S5T)1 +M43!+9VUA1%9O3T@*9S)+1%1O3'=K8C)1;$E+;V=Q2T-X24MG9W5M0W%*3EEG +<$E+9V=U;4,X64Q&9W)70S592VMG<6U""F=Q +eofeof +#" + +example['mime.base64.ans'] = <<'eofeof'.unpack('u')[0] +M&R1")$M&?B1I)#LD1D0Z)"TD7B0Y)"PA(D5L-7XV83E9)$2P@1$5.34%22R`@7"`B36EN(&OF<&AEX0208 conversion +# X0208 aphabet -> ASCII +# X0201 相互変換 + +print "\nX0201 test\n\n" + +# -X is necessary to allow X0201 in SJIS +# -Z convert X0208 alphabet to ASCII +print 'X0201 conversion: SJIS ' +test('-XZ', example['x0201.sjis'], example['x0201.x0208']) +print 'X0201 conversion: JIS ' +test('-Z', example['x0201.jis'], example['x0201.x0208']) +print 'X0201 conversion:SI/SO ' +test('-Z', example['x0201.sosi'], example['x0201.x0208']) +print 'X0201 conversion: EUC ' +test('-Z', example['x0201.euc'], example['x0201.x0208']) +# -x means X0201 output +print 'X0201 output: SJIS ' +test('-xs', example['x0201.euc'], example['x0201.sjis']) +print 'X0201 output: JIS ' +test('-xj', example['x0201.sjis'], example['x0201.jis']) +print 'X0201 output: EUC ' +test('-xe', example['x0201.jis'], example['x0201.euc']) + +# MIME decode + +print "\nMIME test\n\n" + +# MIME ISO-2022-JP + +print "Next test is expeced to Fail.\n" + +print 'MIME decode (strict) ' +tmp = test('-m', example['mime.iso2022'], example['mime.ans.strict']) +print 'MIME decode (nonstrict)' +tmp = test('-m', example['mime.iso2022'], example['mime.ans']) +# open(OUT,'>tmp1');print OUT pack('u',$tmp);close(OUT); +# unbuf mode implies more pessimistic decode +print 'MIME decode (unbuf) ' +test('-mu', example['mime.iso2022'], example['mime.unbuf']) +print 'MIME decode (base64) ' +t = test('-mB', example['mime.base64'], example['mime.base64.ans']) + +# MIME ISO-8859-1 + +# Without -l, ISO-8859-1 was handled as X0201. + +print 'MIME ISO-8859-1 (Q) ' +test('-ml', example['mime.is8859'], example['mime.is8859.ans']) -- cgit v1.2.3