source: trunk/essentials/dev-lang/perl/lib/Text/TabsWrap/t/wrap.t

Last change on this file was 3181, checked in by bird, 19 years ago

perl 5.8.8

File size: 5.7 KB
Line 
1#!./perl -w
2
3BEGIN {
4 chdir 't' if -d 't';
5 @INC = '../lib';
6}
7
8@tests = (split(/\nEND\n/s, <<'DONE'));
9TEST1
10This
11is
12a
13test
14END
15 This
16 is
17 a
18 test
19END
20TEST2
21This is a test of a very long line. It should be broken up and put onto multiple lines.
22This is a test of a very long line. It should be broken up and put onto multiple lines.
23
24This is a test of a very long line. It should be broken up and put onto multiple lines.
25END
26 This is a test of a very long line. It should be broken up and put onto
27 multiple lines.
28 This is a test of a very long line. It should be broken up and put onto
29 multiple lines.
30
31 This is a test of a very long line. It should be broken up and put onto
32 multiple lines.
33END
34TEST3
35This is a test of a very long line. It should be broken up and put onto multiple lines.
36END
37 This is a test of a very long line. It should be broken up and put onto
38 multiple lines.
39END
40TEST4
41This is a test of a very long line. It should be broken up and put onto multiple lines.
42
43END
44 This is a test of a very long line. It should be broken up and put onto
45 multiple lines.
46
47END
48TEST5
49This is a test of a very long line. It should be broken up and put onto multiple This is a test of a very long line. It should be broken up and put
50END
51 This is a test of a very long line. It should be broken up and put onto
52 multiple This is a test of a very long line. It should be broken up and
53 put
54END
55TEST6
5611111111 22222222 33333333 44444444 55555555 66666666 77777777 888888888 999999999 aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee ffffffff gggggggg hhhhhhhh iiiiiiii jjjjjjjj kkkkkkkk llllllll mmmmmmmmm nnnnnnnnn ooooooooo ppppppppp qqqqqqqqq rrrrrrrrr sssssssss
57END
58 11111111 22222222 33333333 44444444 55555555 66666666 77777777 888888888
59 999999999 aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee ffffffff
60 gggggggg hhhhhhhh iiiiiiii jjjjjjjj kkkkkkkk llllllll mmmmmmmmm nnnnnnnnn
61 ooooooooo ppppppppp qqqqqqqqq rrrrrrrrr sssssssss
62END
63TEST7
64c3t1d0s6 c4t1d0s6 c5t1d0s6 c6t1d0s6 c7t1d0s6 c8t1d0s6 c9t1d0s6 c10t1d0s6 c11t1d0s6 c12t1d0s6 c13t1d0s6 c14t1d0s6 c15t1d0s6 c16t1d0s6 c3t1d0s0 c4t1d0s0 c5t1d0s0 c6t1d0s0 c7t1d0s0 c8t1d0s0 c9t1d0s0 c10t1d0s0 c11t1d0s0 c12t1d0s0 c13t1d0s0 c14t1d0s0 c15t1d0s0 c16t1d0s0
65END
66 c3t1d0s6 c4t1d0s6 c5t1d0s6 c6t1d0s6 c7t1d0s6 c8t1d0s6 c9t1d0s6 c10t1d0s6
67 c11t1d0s6 c12t1d0s6 c13t1d0s6 c14t1d0s6 c15t1d0s6 c16t1d0s6 c3t1d0s0
68 c4t1d0s0 c5t1d0s0 c6t1d0s0 c7t1d0s0 c8t1d0s0 c9t1d0s0 c10t1d0s0 c11t1d0s0
69 c12t1d0s0 c13t1d0s0 c14t1d0s0 c15t1d0s0 c16t1d0s0
70END
71TEST8
72A test of a very very long word.
73a123456789b123456789c123456789d123456789e123456789f123456789g123456789g1234567
74END
75 A test of a very very long word.
76 a123456789b123456789c123456789d123456789e123456789f123456789g123456789g123
77 4567
78END
79TEST9
80A test of a very very long word. a123456789b123456789c123456789d123456789e123456789f123456789g123456789g1234567
81END
82 A test of a very very long word.
83 a123456789b123456789c123456789d123456789e123456789f123456789g123456789g123
84 4567
85END
86TEST10
87my mother once said
88"never eat paste my darling"
89would that I heeded
90END
91 my mother once said
92 "never eat paste my darling"
93 would that I heeded
94END
95TEST11
96This_is_a_word_that_is_too_long_to_wrap_we_want_to_make_sure_that_the_program_does_not_crash_and_burn
97END
98 This_is_a_word_that_is_too_long_to_wrap_we_want_to_make_sure_that_the_pr
99 ogram_does_not_crash_and_burn
100END
101TEST12
102This
103
104Has
105
106Blank
107
108Lines
109
110END
111 This
112
113 Has
114
115 Blank
116
117 Lines
118
119END
120TEST13 break=\d
121I saw 3 ships come sailing in
122END
123 I saw 3 ships come sailing in
124END
125TEST14 break=\d
126the.quick.brown.fox.jumps.over.the.9.lazy.dogs.for.no.good.reason.whatsoever.apparently
127END
128 the.quick.brown.fox.jumps.over.the.
129 .lazy.dogs.for.no.good.reason.whatsoever.apparently
130END
131DONE
132
133
134$| = 1;
135
136print "1..", 2 +@tests, "\n";
137
138use Text::Wrap;
139
140$rerun = $ENV{'PERL_DL_NONLAZY'} ? 0 : 1;
141
142$tn = 1;
143
144@st = @tests;
145while (@st) {
146 my $in = shift(@st);
147 my $out = shift(@st);
148
149 $in =~ s/^TEST(\d+)( break=(.*))?\n//
150 or die "bad TEST header line: $in\n";
151 local $Text::Wrap::break = $3 if defined $3;
152
153 my $back = wrap(' ', ' ', $in);
154
155 if ($back eq $out) {
156 print "ok $tn\n";
157 } elsif ($rerun) {
158 my $oi = $in;
159 foreach ($in, $back, $out) {
160 s/\t/^I\t/gs;
161 s/\n/\$\n/gs;
162 }
163 print "------------ input ------------\n";
164 print $in;
165 print "\n------------ output -----------\n";
166 print $back;
167 print "\n------------ expected ---------\n";
168 print $out;
169 print "\n-------------------------------\n";
170 $Text::Wrap::debug = 1;
171 wrap(' ', ' ', $oi);
172 exit(1);
173 } else {
174 print "not ok $tn\n";
175 }
176 $tn++;
177
178}
179
180@st = @tests;
181while(@st) {
182 my $in = shift(@st);
183 my $out = shift(@st);
184
185 $in =~ s/^TEST(\d+)( break=(.*))?\n//
186 or die "bad TEST header line: $in\n";
187 local $Text::Wrap::break = $3 if defined $3;
188
189
190 my @in = split("\n", $in, -1);
191 @in = ((map { "$_\n" } @in[0..$#in-1]), $in[-1]);
192
193 my $back = wrap(' ', ' ', @in);
194
195 if ($back eq $out) {
196 print "ok $tn\n";
197 } elsif ($rerun) {
198 my $oi = $in;
199 foreach ($in, $back, $out) {
200 s/\t/^I\t/gs;
201 s/\n/\$\n/gs;
202 }
203 print "------------ input2 ------------\n";
204 print $in;
205 print "\n------------ output2 -----------\n";
206 print $back;
207 print "\n------------ expected2 ---------\n";
208 print $out;
209 print "\n-------------------------------\n";
210 $Text::Wrap::debug = 1;
211 wrap(' ', ' ', $oi);
212 exit(1);
213 } else {
214 print "not ok $tn\n";
215 }
216 $tn++;
217}
218
219$Text::Wrap::huge = 'overflow';
220
221my $tw = 'This_is_a_word_that_is_too_long_to_wrap_we_want_to_make_sure_that_the_program_does_not_crash_and_burn';
222my $w = wrap('zzz','yyy',$tw);
223print (($w eq "zzz$tw") ? "ok $tn\n" : "not ok $tn");
224$tn++;
225
226{
227 local $Text::Wrap::columns = 10;
228 local $Text::Wrap::huge = "wrap";
229 print ((wrap("verylongindent", "", "foo") eq "verylongindent\nfoo") ? "ok $tn\n" : "not ok $tn");
230 $tn++;
231}
Note: See TracBrowser for help on using the repository browser.