2 # Copyright (C) 2001-2008, The Perl Foundation.
7 use lib qw( . lib ../lib ../../lib );
9 use Parrot::Test tests => 56;
13 t/op/number.t - Number Registers
21 Tests the use of Parrot floating-point number registers.
25 pasm_output_is( <<CODE, <<OUTPUT, "set_n_nc" );
43 set N17, 17179869184.0
44 set N18, 68719476736.0
45 set N19, 274877906944.0
46 set N20, 1099511627776.0
47 set N21, 4398046511104.0
48 set N22, 17592186044416.0
49 set N23, 70368744177664.0
50 set N24, 281474976710656.0
51 set N25, 1.12589990684262e+15
129 17592186044416.000000
130 70368744177664.000000
131 281474976710656.000000
132 1125899906842620.000000
135 pasm_output_is( <<CODE, <<OUTPUT, "set_n" );
145 pasm_output_is( <<CODE, <<OUTPUT, "add_n_n_n" );
165 pasm_output_is( <<CODE, <<OUTPUT, "add_n_n" );
186 pasm_output_is( <<CODE, <<OUTPUT, "sub_n_n_n" );
197 pasm_output_is( <<CODE, <<OUTPUT, "sub_n_n" );
213 pasm_output_is( <<'CODE', <<'OUTPUT', "abs(n, i|ic|n|nc)" );
255 pasm_output_is( <<CODE, <<OUTPUT, "mul_i" );
271 pasm_output_is( <<CODE, <<OUTPUT, "div_i" );
296 pasm_output_like( <<CODE, <<OUTPUT, "mod_n" );
344 pasm_output_is( <<CODE, <<OUTPUT, "cmod_n" );
356 pasm_output_is( <<CODE, <<OUTPUT, "eq_n_ic" );
383 pasm_output_is( <<CODE, <<OUTPUT, "eq_nc_ic" );
386 eq N0, 1.000000, ERROR
408 pasm_output_is( <<CODE, <<OUTPUT, "ne_n_ic" );
435 pasm_output_is( <<CODE, <<OUTPUT, "ne_n_nc_ic" );
437 ne N0, 1073741824.0, nok1
456 pasm_output_is( <<CODE, <<OUTPUT, "lt_n_ic" );
491 pasm_output_is( <<CODE, <<OUTPUT, "lt_nc_ic" );
525 pasm_output_is( <<CODE, <<OUTPUT, "le_n_ic" );
560 pasm_output_is( <<CODE, <<OUTPUT, "le_nc_ic" );
594 pasm_output_is( <<CODE, <<OUTPUT, "gt_n_ic" );
629 pasm_output_is( <<CODE, <<OUTPUT, "gt_nc_ic" );
663 pasm_output_is( <<CODE, <<OUTPUT, "ge_n_ic" );
698 pasm_output_is( <<CODE, <<OUTPUT, "ge_nc_ic" );
732 pasm_output_is( <<CODE, <<OUTPUT, "if_n_ic" );
766 pasm_output_is( <<CODE, <<OUTPUT, "inc_n" );
785 pasm_output_is( <<CODE, <<OUTPUT, "dec_n" );
804 pasm_output_is( <<CODE, <<OUTPUT, "set_i_n" );
815 set N2, -2147483648.0
826 pasm_output_is( <<CODE, <<OUTPUT, "clearn" );
895 0.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000
898 pasm_output_is( <<CODE, <<OUTPUT, "neg_n" );
909 pasm_output_like( <<CODE, <<OUTPUT, "neg 0.0" );
919 pasm_output_is( <<CODE, <<OUTPUT, "mul_n_n" );
930 pasm_output_is( <<CODE, <<OUTPUT, "fact_n_i" );
955 pasm_output_is( <<CODE, <<OUTPUT, "fact_n_ic" );
976 pasm_output_is( <<'CODE', <<OUTPUT, "exchange" );
996 pasm_output_is( <<'CODE', <<OUTPUT, "op_n_nc_nc" );
1009 pasm_output_is( <<'CODE', <<OUTPUT, "lt_nc_nc_ic" );
1024 pasm_output_is( <<'CODE', <<OUTPUT, "string -> num" );
1057 pasm_output_is( <<'CODE', <<OUTPUT, "null" );
1072 pasm_output_is( <<'CODE', <<OUTPUT, ".dig parsing" );
1081 pasm_output_is( <<'CODE', <<OUTPUT, "sqrt_n_n" );
1095 pasm_error_output_like( <<'CODE', <<OUTPUT, "div_n_n by zero" );
1101 /.*Divide by zero.*/
1104 pasm_error_output_like( <<'CODE', <<OUTPUT, "div_n_nc by zero" );
1109 /.*Divide by zero.*/
1112 pasm_error_output_like( <<'CODE', <<OUTPUT, "div_n_n_n by zero" );
1118 /.*Divide by zero.*/
1121 pasm_error_output_like( <<'CODE', <<OUTPUT, "div_n_nc_n by zero" );
1126 /.*Divide by zero.*/
1129 pasm_error_output_like( <<'CODE', <<OUTPUT, "div_n_n_nc by zero" );
1134 /.*Divide by zero.*/
1137 pasm_error_output_like( <<'CODE', <<OUTPUT, "fdiv_n_n by zero" );
1143 /.*Divide by zero.*/
1146 pasm_error_output_like( <<'CODE', <<OUTPUT, "fdiv_n_nc by zero" );
1151 /.*Divide by zero.*/
1154 pasm_error_output_like( <<'CODE', <<OUTPUT, "fdiv_n_n_n by zero" );
1160 /.*Divide by zero.*/
1163 pasm_error_output_like( <<'CODE', <<OUTPUT, "fdiv_n_nc_n by zero" );
1168 /.*Divide by zero.*/
1171 pasm_error_output_like( <<'CODE', <<OUTPUT, "fdiv_n_n_nc by zero" );
1176 /.*Divide by zero.*/
1179 pasm_error_output_like( <<'CODE', <<OUTPUT, "cmod_n_n_n by zero" );
1185 /.*Divide by zero.*/
1188 pasm_error_output_like( <<'CODE', <<OUTPUT, "cmod_n_nc_n by zero" );
1193 /.*Divide by zero.*/
1196 pasm_error_output_like( <<'CODE', <<OUTPUT, "cmod_n_n_nc by zero" );
1201 /.*Divide by zero.*/
1204 pasm_output_is( <<'CODE', <<OUTPUT, "mod_n_n_n by zero" );
1212 pasm_output_is( <<'CODE', <<OUTPUT, "mod_n_nc_n by zero" );
1219 pasm_output_is( <<'CODE', <<OUTPUT, "mod_n_n_nc by zero" );
1228 # cperl-indent-level: 4
1231 # vim: expandtab shiftwidth=4: