tagged release 0.6.4
[parrot.git] / languages / pipp / t / php / type.t
blob56174cc803be8a0b9c708cfbf5ab388cd219b464
1 #! perl
2 # Copyright (C) 2008, The Perl Foundation.
3 # $Id$
5 =head1 NAME
7 t/php/type.t - Standard Library type
9 =head1 SYNOPSIS
11     % perl -I../lib pipp/t/php/type.t
13 =head1 DESCRIPTION
15 Tests PHP Standard Library type
16 (implemented in F<languages/pipp/src/common/php_type.pir>).
18 See L<http://www.php.net/manual/en/ref.var.php>.
20 =cut
22 use strict;
23 use warnings;
25 use FindBin;
26 use lib "$FindBin::Bin/../../lib";
28 use Test::More     tests => 18;
29 use Parrot::Test;
31 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'floatval()' );
32 <?php
33   echo floatval(TRUE), "\n";
34   echo floatval(NULL), "\n";
35   echo floatval(3), "\n";
36   echo floatval('3.14'), "\n";
37   echo floatval(' 3.14'), "\n";
38   echo floatval(' 3.14 '), "\n";
39   echo floatval('str'), "\n";
41 CODE
45 3.14
46 3.14
47 3.14
49 OUTPUT
51 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'gettype(TRUE)' );
52 <?php
53   echo gettype(TRUE), "\n";
55 CODE
56 boolean
57 OUTPUT
59 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'gettype(NULL)' );
60 <?php
61   echo gettype(NULL), "\n";
63 CODE
64 NULL
65 OUTPUT
67 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'gettype(42)' );
68 <?php
69   echo gettype(42), "\n";
71 CODE
72 integer
73 OUTPUT
75 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'gettype(3.14)' );
76 <?php
77   echo gettype(3.14), "\n";
79 CODE
80 double
81 OUTPUT
83 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'gettype("str")' );
84 <?php
85   echo gettype('str'), "\n";
87 CODE
88 string
89 OUTPUT
91 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'gettype($array)' );
92 <?php
93   $hello['world'] = 'hi';
94   echo gettype($hello), "\n";
96 CODE
97 array
98 OUTPUT
101 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'intval()' );
102 <?php
103   echo intval(TRUE), "\n";
104   echo intval(NULL), "\n";
105   echo intval(3.14), "\n";
106   echo intval(3), "\n";
107   echo intval('3'), "\n";
108   echo intval('0x03'), "\n";
109   echo intval('3.14'), "\n";
110   echo intval(' 3'), "\n";
111   echo intval(' 3 '), "\n";
112   echo intval('str'), "\n";
114 CODE
125 OUTPUT
127 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'is_bool() no args' );
128 <?php
129   echo is_bool(), "\n";
131 CODE
132 /Only one argument expected/
133 OUTPUT
135 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'is_bool(TRUE)' );
136 <?php
137   echo is_bool(TRUE), "\n";
139 CODE
141 OUTPUT
143 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'is_float(3.14)' );
144 <?php
145   echo is_float(3.14), "\n";
147 CODE
149 OUTPUT
151 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'is_long(42)' );
152 <?php
153   echo is_long(42), "\n";
155 CODE
157 OUTPUT
159 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'is_null(NULL)' );
160 <?php
161   echo is_null(NULL), "\n";
163 CODE
165 OUTPUT
167 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'is_numeric()' );
168 <?php
169   echo is_numeric(3), "\n";
170   echo is_numeric(3.14), "\n";
171   echo is_numeric(NULL), "\n";
172   echo is_numeric(TRUE), "\n";
173   echo is_numeric('3'), "\n";
174   echo is_numeric('0x03'), "\n";
175   echo is_numeric('3.14'), "\n";
176   echo is_numeric(' 3'), "\n";
177   echo is_numeric(' 3 '), "\n";
178   echo is_numeric(' string '), "\n";
180 CODE
191 OUTPUT
193 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'is_scalar()' );
194 <?php
195   echo is_scalar(NULL), "\n";
196   echo is_scalar(TRUE), "\n";
197   echo is_scalar(3.14), "\n";
198   echo is_scalar(42), "\n";
199   echo is_scalar('str'), "\n";
201 CODE
207 OUTPUT
209 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'is_string("str")' );
210 <?php
211   echo is_string('str'), "\n";
213 CODE
215 OUTPUT
217 TODO:
219     local $TODO = 'update compiler';
221 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'settype()' );
222 <?php
223   $var = 3.14;
224   echo settype($var, 'int'), "\n";
225   echo $var, "\n";
227 CODE
230 OUTPUT
234 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'strval(TRUE)' );
235 <?php
236   echo strval(TRUE), "\n";
238 CODE
240 OUTPUT
243 # Local Variables:
244 #   mode: cperl
245 #   cperl-indent-level: 4
246 #   fill-column: 100
247 # End:
248 # vim: expandtab shiftwidth=4: