Number tests

2001-09-18 Thread Damien Neil

...and here are tests for the number ops.

  - Damien


#! perl -w

use Parrot::Test tests = 23;

output_is(CODE, OUTPUT, set_n_nc);
set N0, 1.0
set N1, 4.0
set N2, 16.0
set N3, 64.0
set N4, 256.0
set N5, 1024.0
set N6, 4096.0
set N7, 16384.0
set N8, 65536.0
set N9, 262144.0
set N10, 1048576.0
set N11, 4194304.0
set N12, 16777216.0
set N13, 67108864.0
set N14, 268435456.0
set N15, 1073741824.0
set N16, 4294967296.0
set N17, 17179869184.0
set N18, 68719476736.0
set N19, 274877906944.0
set N20, 1099511627776.0
set N21, 4398046511104.0
set N22, 17592186044416.0
set N23, 70368744177664.0
set N24, 281474976710656.0
set N25, 1.12589990684262e+15
set N26, 4.5035996273705e+15
set N27, 1.8014398509482e+16
set N28, 7.20575940379279e+16
set N29, 2.88230376151712e+17
set N30, 1.15292150460685e+18
set N31, 4.61168601842739e+18

print   N0
print   \\n
print   N1
print   \\n
print   N2
print   \\n
print   N3
print   \\n
print   N4
print   \\n
print   N5
print   \\n
print   N6
print   \\n
print   N7
print   \\n
print   N8
print   \\n
print   N9
print   \\n
print   N10
print   \\n
print   N11
print   \\n
print   N12
print   \\n
print   N13
print   \\n
print   N14
print   \\n
print   N15
print   \\n
print   N16
print   \\n
print   N17
print   \\n
print   N18
print   \\n
print   N19
print   \\n
print   N20
print   \\n
print   N21
print   \\n
print   N22
print   \\n
print   N23
print   \\n
print   N24
print   \\n
print   N25
print   \\n
print   N26
print   \\n
print   N27
print   \\n
print   N28
print   \\n
print   N29
print   \\n
print   N30
print   \\n
print   N31
print   \\n
CODE
1.00
4.00
16.00
64.00
256.00
1024.00
4096.00
16384.00
65536.00
262144.00
1048576.00
4194304.00
16777216.00
67108864.00
268435456.00
1073741824.00
4294967296.00
17179869184.00
68719476736.00
274877906944.00
1099511627776.00
4398046511104.00
17592186044416.00
70368744177664.00
281474976710656.00
1125899906842620.00
4503599627370500.00
18014398509482000.00
72057594037927904.00
288230376151712000.00
1152921504606850048.00
4611686018427389952.00
OUTPUT

output_is(CODE, OUTPUT, add_n);
set N0, 1.0
add N1, N0, N0
print   N1
print   \\n

add N2, N0, N1
print   N2
print   \\n

add N2, N2, N2
print   N2
print   \\n
CODE
2.00
3.00
6.00
OUTPUT

output_is(CODE, OUTPUT, sub_i);
set N0, 424242.0
set N1, 4200.0
sub N2, N0, N1
print   N2
print   \\n
CODE
420042.00
OUTPUT

output_is(CODE, OUTPUT, mul_i);
set N0, 2.0
mul N1, N0, N0
mul N1, N1, N0
mul N1, N1, N0
mul N1, N1, N0
mul N1, N1, N0
mul N1, N1, N0
mul N1, N1, N0
print   N1
print   \\n
CODE
256.00
OUTPUT

output_is(CODE, OUTPUT, div_i);
set N0, 10.0
set N1, 2.0
div N2, N0, N1
print   N2
print   \\n

set N3, 7.0
set N4, 2.0
div N3, N3, N4
print   N3
print   \\n

set N5, 9.0
set N6, -4.0
div N7, N5, N6
print   N7
print   \\n

CODE
5.00
3.50
-2.25
OUTPUT

output_is(CODE, OUTPUT, eq_n_ic);
set N0, 5.01
set N1, 5.01
set N2, 5.02

eq  N0, N1, ONE, ERROR
print   bad\\n

ONE:
print   ok 1\\n
eq  N1, N2, ERROR, TWO
print   bad\\n

TWO:
print   ok 2\\n
end

ERROR:
print   bad\\n
CODE
ok 1
ok 2
OUTPUT

output_is(CODE, OUTPUT, eq_nc_ic);
set N0, 1.01

eq  N0, 1.00, ERROR, ONE
print   bad\\n

ONE:
print   ok 1\\n
eq  N0, 1.01, TWO, ERROR
print   bad\\n

TWO:
print   ok 2\\n
end

ERROR:
print   bad\\n
CODE
ok 1
ok 2
OUTPUT

output_is(CODE, 

Re: Number tests

2001-09-18 Thread Simon Cozens

On Tue, Sep 18, 2001 at 03:52:42PM -0700, Damien Neil wrote:
 ...and here are tests for the number ops.

Thanks, applied.

-- 
A formal parsing algorithm should not always be used.
-- D. Gries