r4985@merlin: jquelin | 2007-05-24 15:08:25 +0200
[acme-tie-eleet.git] / t / 10-case_mixer.t
blob96b76939b95fd0c45740048e4506c1d24a68f412
1 #-*-perl-*-
3 # Case mixer test suite.
6 #-----------------------------------#
7 #          Initialization.          #
8 #-----------------------------------#
10 # Modules we rely on.
11 use Test;
12 # use POSIX qw(tmpnam);
14 # Initialization.
15 # BEGIN { plan tests => 16 };
16 BEGIN { plan tests => 8 };
18 # Our stuff.
19 require Acme::Tie::Eleet;
20 # untie *STDIN;
21 # untie *STDOUT;
22 # untie *STDERR;
24 # Vars.
25 # my $file = tmpnam();
26 my $line;
27 my @opts =
28     ( letters    => 0,
29       spacer     => 0,
30       case_mixer => 0,
31       words      => 0,
32       add_before => 0,
33       add_after  => 0,
34       extra_sent => 0
38 #------------------------------#
39 #          TIEHANDLE.          #
40 #------------------------------#
42 # # Wrong case_mixer (pattern non numeric).
43 # eval {
44 #     open OUT, ">$file" or die "Unable to create temporary file: $!";
45 #     tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>"aa";
46 # };
47 # ok($@, qr/^case_mixer: wrong pattern /);
49 # # Random: no case mixing (0).
50 # open OUT, ">$file" or die "Unable to create temporary file: $!";
51 # tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>0;
52 # print OUT "eleet";
53 # untie *OUT;
54 # open IN, "<$file" or die "Unable to open temporary file: $!";
55 # $line = <IN>;
56 # ok($line, qr/^eleet/);
58 # # Random: case mixing (75).
59 # open OUT, ">$file" or die "Unable to create temporary file: $!";
60 # tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>75;
61 # print OUT "eleet";
62 # untie *OUT;
63 # open IN, "<$file" or die "Unable to open temporary file: $!";
64 # $line = <IN>;
65 # ok($line, qr/^[eE][lL][eE][eE][tT]/);
67 # # Random: max case mixing (100).
68 # open OUT, ">$file" or die "Unable to create temporary file: $!";
69 # tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>100;
70 # print OUT "eleet";
71 # untie *OUT;
72 # open IN, "<$file" or die "Unable to open temporary file: $!";
73 # $line = <IN>;
74 # ok($line, qr/^ELEET/);
76 # # Pattern: illegal pattern (0/0).
77 # eval {
78 #     open OUT, ">$file" or die "Unable to create temporary file: $!";
79 #     tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>"0/0";
80 #     print OUT "eleeteleet";
81 #     untie *OUT;
82 #     open IN, "<$file" or die "Unable to open temporary file: $!";
83 #     my $line = <IN>;
84 #     die $line;
85 # };
86 # ok($@, qr!^case_mixer: illegal pattern 0/0!);
88 # # Pattern: no case mixing (0/1).
89 # open OUT, ">$file" or die "Unable to create temporary file: $!";
90 # tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>"0/1";
91 # print OUT "eleet";
92 # untie *OUT;
93 # open IN, "<$file" or die "Unable to open temporary file: $!";
94 # $line = <IN>;
95 # ok($line, qr/^eleet/);
97 # # Pattern: one on two (1/2).
98 # open OUT, ">$file" or die "Unable to create temporary file: $!";
99 # tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>"1/1";
100 # print OUT "eleeteleet";
101 # untie *OUT;
102 # open IN, "<$file" or die "Unable to open temporary file: $!";
103 # $line = <IN>;
104 # ok($line, qr/^ElEeT/);
106 # # Pattern: max case mixing (1/0).
107 # open OUT, ">$file" or die "Unable to create temporary file: $!";
108 # tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>"1/0";
109 # print OUT "eleet";
110 # untie *OUT;
111 # open IN, "<$file" or die "Unable to open temporary file: $!";
112 # $line = <IN>;
113 # ok($line, qr/^ELEET/);
115 # unlink $file;
118 #------------------------------#
119 #          TIESCALAR.          #
120 #------------------------------#
122 # Wrong case_mixer (pattern non numeric).
123 eval {
124     tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>"aa";
126 ok($@, qr/^case_mixer: wrong pattern /);
128 # Random: no case mixing (0).
129 tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>0;
130 $line = "eleet";
131 ok($line, qr/^eleet/);
132 untie $line;
134 # Random: case mixing (75).
135 tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>75;
136 $line = "eleet";
137 ok($line, qr/^[eE][lL][eE][eE][tT]/);
138 untie $line;
140 # Random: max case mixing (100).
141 tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>100;
142 $line = "eleet";
143 ok($line, qr/^ELEET/);
144 untie $line;
146 # Pattern: illegal pattern (0/0).
147 eval {
148     tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>"0/0";
149     die $line;
151 ok($@, qr!^case_mixer: illegal pattern 0/0!);
152 untie $line;
154 # Pattern: no case mixing (0/1).
155 tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>"0/1";
156 $line = "eleet";
157 ok($line, qr/^eleet/);
158 untie $line;
160 # Pattern: one on two (1/2).
161 tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>"1/1";
162 $line = "eleet";
163 ok($line, qr/^ElEeT/);
164 untie $line;
166 # Pattern: max case mixing (1/0).
167 tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>"1/0";
168 $line = "eleet";
169 ok($line, qr/^ELEET/);
170 untie $line;