Commit | Line | Data |
54310121 |
1 | #!./perl |
2 | |
d658dc55 |
3 | print "1..12\n"; |
54310121 |
4 | |
5 | sub try ($$) { |
6 | print +($_[1] ? "ok" : "not ok"), " $_[0]\n"; |
7 | } |
8 | |
9 | try 1, 13 % 4 == 1; |
10 | try 2, -13 % 4 == 3; |
11 | try 3, 13 % -4 == -3; |
12 | try 4, -13 % -4 == -1; |
65843c0f |
13 | |
14 | my $limit = 1e6; |
15 | |
16 | # Division (and modulo) of floating point numbers |
17 | # seem to be rather sloppy in Cray. |
18 | $limit = 1e8 if $^O eq 'unicos'; |
19 | |
20 | try 5, abs( 13e21 % 4e21 - 1e21) < $limit; |
21 | try 6, abs(-13e21 % 4e21 - 3e21) < $limit; |
22 | try 7, abs( 13e21 % -4e21 - -3e21) < $limit; |
23 | try 8, abs(-13e21 % -4e21 - -1e21) < $limit; |
d658dc55 |
24 | |
25 | # UVs should behave properly |
26 | |
27 | try 9, 4063328477 % 65535 == 27407; |
28 | try 10, 4063328477 % 4063328476 == 1; |
29 | try 11, 4063328477 % 2031664238 == 1; |
30 | try 12, 2031664238 % 4063328477 == 2031664238; |