2 # Copyright (C) 2001-2007, The Perl Foundation.
7 use lib qw( . lib ../lib ../../lib );
9 use Parrot::Test tests => 19;
13 t/pmc/resizablefloatarray.t - ResizableFloatArray PMC
17 % prove t/pmc/resizablefloatarray.t
21 Tests C<ResizableFloatArray> PMC. Checks size, sets various elements, including
22 out-of-bounds test. Checks INT and PMC keys.
26 my $fp_equality_macro = pasm_fp_equality_macro();
28 pasm_output_is( <<'CODE', <<'OUTPUT', 'creation' );
29 new P0, 'ResizableFloatArray'
36 pasm_output_is( <<'CODE', <<'OUTPUT', "Setting array size" );
37 new P0, 'ResizableFloatArray'
77 pasm_error_output_like( <<'CODE', <<'OUTPUT', "Setting negative array size" );
78 new P0, 'ResizableFloatArray'
82 /ResizableFloatArray: Can't resize to negative value!/
85 pasm_output_is( <<'CODE', <<'OUTPUT', "Setting first element" );
86 new P0, 'ResizableFloatArray'
114 pasm_output_is( <<'CODE', <<'OUTPUT', "Setting second element" );
115 new P0, 'ResizableFloatArray'
142 # RT#46823: Rewrite these properly when we have exceptions
144 pasm_output_is( <<'CODE', <<'OUTPUT', "Setting out-of-bounds elements" );
145 new P0, 'ResizableFloatArray'
156 pasm_output_is( <<'CODE', <<'OUTPUT', "Getting out-of-bounds elements" );
157 new P0, 'ResizableFloatArray'
167 pasm_output_is( <<"CODE", <<'OUTPUT', "Set via PMC keys, access via INTs" );
168 @{[ $fp_equality_macro ]}
169 new P0, 'ResizableFloatArray'
203 pasm_output_is( <<"CODE", <<'OUTPUT', "Set via INTs, access via PMC Keys" );
204 @{[ $fp_equality_macro ]}
205 new P0, 'ResizableFloatArray'
224 .fp_eq(N0, 10.2, OK2)
249 pasm_output_is( <<"CODE", <<'OUTPUT', 'basic push' );
250 @{[ $fp_equality_macro ]}
251 new P0, 'ResizableFloatArray'
276 pasm_output_is( <<"CODE", <<'OUTPUT', 'push many values' );
277 @{[ $fp_equality_macro ]}
278 new P0, 'ResizableFloatArray'
286 .fp_eq(N0, 99999.0, OK1)
295 pasm_output_is( <<"CODE", <<'OUTPUT', 'basic pop' );
296 @{[ $fp_equality_macro ]}
297 new P0, 'ResizableFloatArray'
322 pasm_output_is( <<"CODE", <<'OUTPUT', 'pop many values' );
323 @{[ $fp_equality_macro ]}
324 new P0, 'ResizableFloatArray'
350 pasm_output_is( <<"CODE", <<'OUTPUT', 'push/pop' );
351 @{[ $fp_equality_macro ]}
352 new P0, 'ResizableFloatArray'
365 pasm_error_output_like( <<'CODE', <<'OUTPUT', 'pop from empty array' );
366 new P0, 'ResizableFloatArray'
370 /ResizableFloatArray: Can't pop from an empty array!/
373 pir_output_is( << 'CODE', << 'OUTPUT', "check whether interface is done" );
377 pmc1 = new 'ResizableFloatArray'
379 does bool1, pmc1, "scalar"
382 does bool1, pmc1, "array"
385 does bool1, pmc1, "no_interface"
396 pir_output_is( << 'CODE', << 'OUTPUT', "push float" );
400 pmc1 = new 'ResizableFloatArray'
401 pmc1[9999] = 10000.10000
418 pir_output_is( << 'CODE', << 'OUTPUT', "shift float" );
421 ar = new 'ResizableFloatArray'
441 2 10.100000 1 20.200000 0
444 pir_output_is( << 'CODE', << 'OUTPUT', "unshift float" );
447 ar = new 'ResizableFloatArray'
461 2 20.200000 10.100000
466 # cperl-indent-level: 4
469 # vim: expandtab shiftwidth=4: