tagged release 0.6.4
[parrot.git] / languages / pipp / t / php / math.t
blob6759893d16c2c75a0054e8eea11e20885623e438
1 #! perl
2 # Copyright (C) 2008, The Perl Foundation.
3 # $Id$
5 =head1 NAME
7 t/php/math.t - Standard Library math
9 =head1 SYNOPSIS
11     % perl -I../lib pipp/t/php/math.t
13 =head1 DESCRIPTION
15 Tests PHP Standard Library math
16 (implemented in F<languages/pipp/src/common/php_math.pir>).
18 See L<http://www.php.net/manual/en/ref.math.php>.
20 =cut
22 use strict;
23 use warnings;
25 use FindBin;
26 use lib "$FindBin::Bin/../../lib";
28 use Test::More     tests => 39;
29 use Parrot::Test;
32 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'abs' );
33 <?php
34   echo abs(-3), "\n";
35   echo abs(-3.14), "\n";
36   echo abs(TRUE), "\n";
37   echo abs(NULL), "\n";
38   echo abs('0x03'), "\n";
39   echo abs('-3'), "\n";
40   echo abs('-3.14'), "\n";
41   echo abs(' 0x03'), "\n";
42   echo abs(' -3'), "\n";
43   echo abs(' -3.14'), "\n";
44   echo abs(' 0x03 '), "\n";
45   echo abs(' -3 '), "\n";
46   echo abs(' -3.14 '), "\n";
47   echo abs('str'), "\n";
48   echo abs(' str'), "\n";
49   echo abs(' str '), "\n";
50   $hello['world'] = 'hi';
51   echo abs($hello), "\n";
53 CODE
55 3.14
60 3.14
63 3.14
66 3.14
71 OUTPUT
73 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'acos' );
74 <?php
75   echo acos(0.5), "\n";
77 CODE
78 /^1\.047/
79 OUTPUT
81 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'acosh' );
82 <?php
83   echo acosh(1.5), "\n";
85 CODE
86 /^0\.962/
87 OUTPUT
89 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'asin' );
90 <?php
91   echo asin(0.5), "\n";
93 CODE
94 /^0\.523/
95 OUTPUT
97 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'asinh' );
98 <?php
99   echo asinh(0.5), "\n";
101 CODE
102 /^0\.481/
103 OUTPUT
105 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'atan' );
106 <?php
107   echo atan(0.5), "\n";
109 CODE
110 /^0\.463/
111 OUTPUT
113 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'atanh' );
114 <?php
115   echo atanh(0.5), "\n";
117 CODE
118 /^0\.549/
119 OUTPUT
121 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'atan2' );
122 <?php
123   echo atan2(1, 2), "\n";
125 CODE
126 /^0\.463/
127 OUTPUT
129 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'base_convert' );
130 <?php
131   echo base_convert(126, 10, 16), "\n";
133 CODE
135 OUTPUT
137 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'bindec' );
138 <?php
139   echo bindec('0101'), "\n";
141 CODE
143 OUTPUT
145 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'ceil' );
146 <?php
147   echo ceil(3.14), "\n";
149 CODE
151 OUTPUT
153 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'cos' );
154 <?php
155   echo cos(0.5), "\n";
157 CODE
158 /^0\.877/
159 OUTPUT
161 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'cosh' );
162 <?php
163   echo cosh(0.5), "\n";
165 CODE
166 /^1\.127/
167 OUTPUT
169 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'decbin' );
170 <?php
171   echo decbin(126), "\n";
173 CODE
174 1111110
175 OUTPUT
177 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'dechex' );
178 <?php
179   echo dechex(126), "\n";
181 CODE
183 OUTPUT
185 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'decoct' );
186 <?php
187   echo decoct(126), "\n";
189 CODE
191 OUTPUT
193 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'deg2rad' );
194 <?php
195   echo deg2rad(90), "\n";
197 CODE
198 /^1\.570/
199 OUTPUT
201 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'exp' );
202 <?php
203   echo exp(0.5), "\n";
205 CODE
206 /^1\.648/
207 OUTPUT
209 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'floor' );
210 <?php
211   echo floor(3.14), "\n";
213 CODE
215 OUTPUT
217 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'fmod' );
218 <?php
219   echo fmod(3.14, 2.5), "\n";
221 CODE
222 0.64
223 OUTPUT
225 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'hexdec' );
226 <?php
227   echo hexdec('7E'), "\n";
229 CODE
231 OUTPUT
233 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'hypot' );
234 <?php
235   echo hypot(1, 2), "\n";
237 CODE
238 /^2\.236/
239 OUTPUT
241 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'is_finite' );
242 <?php
243   echo is_finite(3.14), "\n";
245 CODE
247 OUTPUT
249 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'is_infinite' );
250 <?php
251   echo is_infinite(3.14), "\n";
253 CODE
255 OUTPUT
257 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'is_nan' );
258 <?php
259   echo is_nan(3.14), "\n";
261 CODE
263 OUTPUT
265 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'log' );
266 <?php
267   echo log(10), "\n";
269 CODE
270 /^2\.302/
271 OUTPUT
273 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'log' );
274 <?php
275   echo log(10, 2), "\n";
277 CODE
278 /^3\.321/
279 OUTPUT
281 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'log10' );
282 <?php
283   echo log10(100), "\n";
285 CODE
287 OUTPUT
289 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'number_format' );
290 <?php
291   echo number_format(42), "\n";
292   echo number_format(-4096), "\n";
293   echo number_format(123456789), "\n";
294   echo number_format(3.14159, 2), "\n";
296 CODE
298 -4,096
299 123,456,789
300 3.14
301 OUTPUT
303 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'octdec' );
304 <?php
305   echo octdec('0777'), "\n";
307 CODE
309 OUTPUT
311 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'pi' );
312 <?php
313   echo pi(), "\n";
315 CODE
316 /^3\.14/
317 OUTPUT
319 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'pow' );
320 <?php
321   echo pow(2, 3), "\n";
322   echo pow(1.5, 2), "\n";
324 CODE
326 2.25
327 OUTPUT
329 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'rad2deg' );
330 <?php
331   echo rad2deg(0.5), "\n";
333 CODE
334 /^28\.6/
335 OUTPUT
337 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'round' );
338 <?php
339   echo round(3.14159), "\n";
340   echo round(3.14159, 2), "\n";
341   echo round(3.14159, 4), "\n";
343 CODE
345 3.14
346 3.1416
347 OUTPUT
349 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'sin' );
350 <?php
351   echo sin(0.5), "\n";
353 CODE
354 /^0\.479/
355 OUTPUT
357 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'sinh' );
358 <?php
359   echo sinh(0.5), "\n";
361 CODE
362 /^0\.521/
363 OUTPUT
365 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'sqrt' );
366 <?php
367   echo sqrt(0.5), "\n";
369 CODE
370 /^0\.707/
371 OUTPUT
373 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'tan' );
374 <?php
375   echo tan(0.5), "\n";
377 CODE
378 /^0\.546/
379 OUTPUT
381 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'tanh' );
382 <?php
383   echo tanh(0.5), "\n";
385 CODE
386 /^0\.462/
387 OUTPUT
389 # Local Variables:
390 #   mode: cperl
391 #   cperl-indent-level: 4
392 #   fill-column: 100
393 # End:
394 # vim: expandtab shiftwidth=4: