fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / op / ifunless.t
bloba19b34a702142eed17317b357d0f35454fbadbbc
1 #!./parrot
2 # Copyright (C) 2001-2005, Parrot Foundation.
3 # $Id$
5 =head1 NAME
7 t/op/ifunless.t - If/Unless
9 =head1 SYNOPSIS
11         % prove t/op/ifunless.t
13 =head1 DESCRIPTION
15 Tests the conditional C<if> and C<unless> operations.
17 =cut
19 .const int TESTS = 14
21 .sub 'test' :main
22     .include 'test_more.pir'
24     plan(TESTS)
26     if_i_ic_positive()
27     if_i_ic_negative()
28     if_i_ic_zero()
29     if_n_ic_positive()
30     if_n_ic_negative()
31     if_n_ic_zero()
32     if_s_ic_helloworld()
33     if_s_ic_empty()
35     unless_i_ic_zero()
36     unless_i_ic_negative()
37     unless_n_ic_zero()
38     unless_n_ic_negative()
39     unless_s_ic_empty()
40     unless_s_ic_helloworld()
42 .end
44 .sub 'if_i_ic_positive'
45     $I0 = 2147483647
47     $I1 = 0
48     if $I0 goto if_i_ic_positive_ok
49     goto if_i_ic_positive_end
51   if_i_ic_positive_ok:
52     $I1 = 1
53   if_i_ic_positive_end:
54     ok($I1, "if_i_ic with a positive integer")
55 .end
57 .sub 'if_i_ic_negative'
58     $I0 = -2147483647
60     $I1 = 0
61     if $I0 goto if_i_ic_negative_ok
62     goto if_i_ic_negative_end
64   if_i_ic_negative_ok:
65     $I1 = 1
66   if_i_ic_negative_end:
67     ok($I1, "if_i_ic with a negative integer")
68 .end
70 .sub 'if_i_ic_zero'
71     $I0 = 0
73     $I1 = 0
74     if $I0 goto if_i_ic_zero_end
75     $I1 = 1
77   if_i_ic_zero_end:
78     ok($I1, "if_i_ic with integer zero")
79 .end
81 .sub 'if_n_ic_positive'
82     $N0 = 0.1
84     $I1 = 0
85     if $N0 goto if_n_ic_positive_ok
86     goto if_n_ic_positive_end
88   if_n_ic_positive_ok:
89     $I1 = 1
90   if_n_ic_positive_end:
91     ok($I1, "if_n_ic with a positive float")
92 .end
94 .sub 'if_n_ic_negative'
95     $N0 = -0.1
97     $I1 = 0
98     if $N0 goto if_n_ic_negative_ok
99     goto if_n_ic_negative_end
101   if_n_ic_negative_ok:
102     $I1 = 1
103   if_n_ic_negative_end:
104     ok($I1, "if_n_ic with a negative float")
105 .end
107 .sub 'if_n_ic_zero'
108     $N0 = 0.0
110     $I1 = 0
111     if $N0 goto if_n_ic_zero_end
112     $I1 = 1
114   if_n_ic_zero_end:
115     ok($I1, "if_n_ic with float zero")
116 .end
118 .sub 'if_s_ic_helloworld'
119     $S0 = "Hello World"
121     $I1 = 0
122     if $S0 goto if_s_ic_helloworld_ok
123     goto if_s_ic_helloworld_end
125   if_s_ic_helloworld_ok:
126     $I1 = 1
127   if_s_ic_helloworld_end:
128     ok($I1, "if_s_ic with a non-empty string")
129 .end
131 .sub 'if_s_ic_empty'
132     $S0 = ''
134     $I1 = 0
135     if $S0 goto if_s_ic_empty_end
136     $I1 = 1
138   if_s_ic_empty_end:
139     ok($I1, "if_n_ic with the empty string")
140 .end
142 .sub 'unless_i_ic_zero'
143     $I0 = 0
145     $I1 = 0
146     unless $I0 goto unless_i_ic_zero_ok
147     goto unless_i_ic_zero_end
149   unless_i_ic_zero_ok:
150     $I1 = 1
151   unless_i_ic_zero_end:
152     ok($I1, "unless_i_ic with integer zero")
153 .end
155 .sub 'unless_i_ic_negative'
156     $I0 = -2147483648
158     $I1 = 0
159     unless $I0 goto unless_i_ic_negative_end
160     $I1 = 1
162   unless_i_ic_negative_end:
163     ok($I1, "unless_i_ic with a negative integer")
164 .end
166 .sub 'unless_n_ic_zero'
167     $N0 = 0.0
169     $I1 = 0
170     unless $N0 goto unless_n_ic_zero_ok
171     goto unless_n_ic_zero_end
173   unless_n_ic_zero_ok:
174     $I1 = 1
175   unless_n_ic_zero_end:
176     ok($I1, "unless_n_ic with float zero")
177 .end
179 .sub 'unless_n_ic_negative'
180     $N0 = -0.1
182     $I1 = 0
183     unless $N0 goto unless_n_ic_negative_end
184     $I1 = 1
186   unless_n_ic_negative_end:
187     ok($I1, "unless_n_ic with a negative float")
188 .end
190 .sub 'unless_s_ic_empty'
191     $S0 = ''
193     $I1 = 0
194     unless $S0 goto unless_s_ic_empty_ok
195     goto unless_s_ic_empty_end
197   unless_s_ic_empty_ok:
198     $I1 = 1
199   unless_s_ic_empty_end:
200     ok($I1, "unless_s_ic with the empty string")
201 .end
203 .sub 'unless_s_ic_helloworld'
204     $S0 = "Hello World"
206     $I1 = 0
207     unless $S0 goto unless_s_ic_helloworld_end
208     $I1 = 1
210   unless_s_ic_helloworld_end:
211     ok($I1, "unless_s_ic with a non-empty string")
212 .end
214 # Local Variables:
215 #   mode: pir
216 #   fill-column: 100
217 # End:
218 # vim: expandtab shiftwidth=4 ft=pir: