r7899@merlin: jquelin | 2007-11-26 13:48:50 +0100
[acme-tie-eleet.git] / t / 10-case_mixer.t
blobea1d0d03c6390ec6b31e1220ce9a30fff8e8ad8d
1 #!perl
3 # This file is part of Acme::Tie::Eleet.
4 # Copyright (c) 2001-2007 Jerome Quelin, all rights reserved.
6 # This program is free software; you can redistribute it and/or modify
7 # it under the same terms as Perl itself.
12 # Case mixer test suite.
15 #-----------------------------------#
16 #          Initialization.          #
17 #-----------------------------------#
19 # Modules we rely on.
20 use Test;
21 # use POSIX qw(tmpnam);
23 # Initialization.
24 # BEGIN { plan tests => 16 };
25 BEGIN { plan tests => 8 };
27 # Our stuff.
28 require Acme::Tie::Eleet;
29 # untie *STDIN;
30 # untie *STDOUT;
31 # untie *STDERR;
33 # Vars.
34 # my $file = tmpnam();
35 my $line;
36 my @opts =
37     ( letters    => 0,
38       spacer     => 0,
39       case_mixer => 0,
40       words      => 0,
41       add_before => 0,
42       add_after  => 0,
43       extra_sent => 0
47 #------------------------------#
48 #          TIEHANDLE.          #
49 #------------------------------#
51 # # Wrong case_mixer (pattern non numeric).
52 # eval {
53 #     open OUT, ">$file" or die "Unable to create temporary file: $!";
54 #     tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>"aa";
55 # };
56 # ok($@, qr/^case_mixer: wrong pattern /);
58 # # Random: no case mixing (0).
59 # open OUT, ">$file" or die "Unable to create temporary file: $!";
60 # tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>0;
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/^eleet/);
67 # # Random: case mixing (75).
68 # open OUT, ">$file" or die "Unable to create temporary file: $!";
69 # tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>75;
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/^[eE][lL][eE][eE][tT]/);
76 # # Random: max case mixing (100).
77 # open OUT, ">$file" or die "Unable to create temporary file: $!";
78 # tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>100;
79 # print OUT "eleet";
80 # untie *OUT;
81 # open IN, "<$file" or die "Unable to open temporary file: $!";
82 # $line = <IN>;
83 # ok($line, qr/^ELEET/);
85 # # Pattern: illegal pattern (0/0).
86 # eval {
87 #     open OUT, ">$file" or die "Unable to create temporary file: $!";
88 #     tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>"0/0";
89 #     print OUT "eleeteleet";
90 #     untie *OUT;
91 #     open IN, "<$file" or die "Unable to open temporary file: $!";
92 #     my $line = <IN>;
93 #     die $line;
94 # };
95 # ok($@, qr!^case_mixer: illegal pattern 0/0!);
97 # # Pattern: no case mixing (0/1).
98 # open OUT, ">$file" or die "Unable to create temporary file: $!";
99 # tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>"0/1";
100 # print OUT "eleet";
101 # untie *OUT;
102 # open IN, "<$file" or die "Unable to open temporary file: $!";
103 # $line = <IN>;
104 # ok($line, qr/^eleet/);
106 # # Pattern: one on two (1/2).
107 # open OUT, ">$file" or die "Unable to create temporary file: $!";
108 # tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>"1/1";
109 # print OUT "eleeteleet";
110 # untie *OUT;
111 # open IN, "<$file" or die "Unable to open temporary file: $!";
112 # $line = <IN>;
113 # ok($line, qr/^ElEeT/);
115 # # Pattern: max case mixing (1/0).
116 # open OUT, ">$file" or die "Unable to create temporary file: $!";
117 # tie *OUT, 'Acme::Tie::Eleet', *OUT, @opts, case_mixer=>"1/0";
118 # print OUT "eleet";
119 # untie *OUT;
120 # open IN, "<$file" or die "Unable to open temporary file: $!";
121 # $line = <IN>;
122 # ok($line, qr/^ELEET/);
124 # unlink $file;
127 #------------------------------#
128 #          TIESCALAR.          #
129 #------------------------------#
131 # Wrong case_mixer (pattern non numeric).
132 eval {
133     tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>"aa";
135 ok($@, qr/^case_mixer: wrong pattern /);
137 # Random: no case mixing (0).
138 tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>0;
139 $line = "eleet";
140 ok($line, qr/^eleet/);
141 untie $line;
143 # Random: case mixing (75).
144 tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>75;
145 $line = "eleet";
146 ok($line, qr/^[eE][lL][eE][eE][tT]/);
147 untie $line;
149 # Random: max case mixing (100).
150 tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>100;
151 $line = "eleet";
152 ok($line, qr/^ELEET/);
153 untie $line;
155 # Pattern: illegal pattern (0/0).
156 eval {
157     tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>"0/0";
158     die $line;
160 ok($@, qr!^case_mixer: illegal pattern 0/0!);
161 untie $line;
163 # Pattern: no case mixing (0/1).
164 tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>"0/1";
165 $line = "eleet";
166 ok($line, qr/^eleet/);
167 untie $line;
169 # Pattern: one on two (1/2).
170 tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>"1/1";
171 $line = "eleet";
172 ok($line, qr/^ElEeT/);
173 untie $line;
175 # Pattern: max case mixing (1/0).
176 tie $line, 'Acme::Tie::Eleet', @opts, case_mixer=>"1/0";
177 $line = "eleet";
178 ok($line, qr/^ELEET/);
179 untie $line;