OSDN Git Service

自動判別の状態を保持したまま変換を続ける nkf_continue を追加
[nkf/nkf.git] / NKF.mod / test.pl
1 #!/usr/bin/perl
2 #
3 # nkf test program for nkf 1.7
4 #    Shinji KONO <kono@ie.u-ryukyu.ac.jp>
5 # Sun Aug 18 12:25:40 JST 1996
6 # Sun Nov  8 00:16:06 JST 1998
7 # Sun Sep  8 14:03:28 JST 2002
8 #
9 # This is useful when you add new patch on nkf.
10 # Since this test is too strict, faileurs may not mean
11 # wrong conversion. 
12 #
13 # nkf 2.0 utf8
14 # nkf 1.5 differs on MIME decoding
15 # nkf 1.4 passes Basic Conversion tests
16 # nkf PDS version passes Basic Conversion tests  using "nkf -iB -oB "
17 #
18
19 $nkf = "./nkf";
20 # $nkf = "doscmd nkf.exe";
21
22 # If you want to see the testing process, set next flag.
23
24 $detail_all = 0;
25 $diff = 1;
26
27 &library_test0();
28 sub test  {
29     use NKF;
30     &library_test(@_);
31 }
32
33 sub library_test {
34     local ($nkf,$in,@ans) = @_;
35     local ($result);
36
37
38     # $nkf =~ s/^[^_]* //;
39     local (@nkf) = split(/ /,$nkf);
40     shift(@nkf);
41     print "\nINPUT:\n",$in  if ($detail || $detail_all);
42     print "\nEXPECT:\n", $ans if ($detail || $detail_all);
43     $result = NKF::nkf(@nkf,$in);
44     print "\nGOT:\n",$result if ($detail || $detail_all);
45
46     if( $nkf =~ /-m/) {
47         $result =~ s/ //g;
48     }
49     $i = 0;
50     foreach $ans (@ans) {
51         if( $nkf =~ /-m/) {
52             $ans =~ s/ //g;
53         }
54         last if ($result eq $ans) ;
55         $i++;
56     }
57     $ans = @ans[$i];
58
59     print (($result eq $ans)?"Ok\n":"Fail\n");
60     if ($diff) {
61         if ($result ne $ans) {
62             open(R,"|od -c >tmp.result.bad"); print R $result; close(R);
63             open(R,"|od -c >tmp.expect.bad"); print R $ans; close(R);
64             system "diff -c tmp.result.bad tmp.expect.bad";
65         }
66     }
67     return $result;
68 }
69
70 sub library_test0 {
71 BEGIN { $| = 1; print "1..3\n"; }
72 END {print "not ok 1\n" unless $loaded;}
73     use NKF;
74     $loaded = 1;
75     print "ok 1\n";
76
77     ######################### End of black magic.
78
79     # Insert your test code below (better if it prints "ok 13"
80     # (correspondingly "not ok 13") depending on the success of chunk 13
81     # of the test code):
82
83     if ( nkf("-m","-e","1") ) {
84         print "ok 2\n";
85     } else {
86         print "no 2\n";
87     }
88
89     $output = nkf("\033\$@#1#3#2%B");
90     if ($output) {
91     # print $output,"\n";
92         print "ok 3\n";
93     } else {
94         print "no 3\n";
95     }
96
97     $output = nkf("-Zj","\033\$@#1#3#2%B");
98     if ($output) {
99     # print $output,"\n";
100         print "ok 4\n";
101     } else {
102         print "no 4\n";
103     }
104
105     # conversion makes strings longer
106     $output = "\244\306 " x 1024;
107         $old =  length($output);
108     $output = nkf("-j",$output);
109     if ($output) {
110     # print $output,"\n";
111         print "ok 5 $old ",length($output),"\n";
112     } else {
113         print "no 5\n";
114     }
115
116
117 }
118
119 do "../nkf_test.pl";