Commit | Line | Data |
a0ac753d |
1 | #!/usr/bin/perl -w |
2 | |
3 | # test that overloaded compare works when NaN are involved |
4 | |
5 | use strict; |
6 | use Test::More; |
7 | |
8 | BEGIN |
9 | { |
10 | $| = 1; |
11 | chdir 't' if -d 't'; |
12 | unshift @INC, '../lib'; # for running manually |
13 | plan tests => 26; |
14 | } |
15 | |
16 | use Math::BigInt; |
17 | use Math::BigFloat; |
18 | |
19 | compare (Math::BigInt->bnan(), Math::BigInt->bone() ); |
20 | compare (Math::BigFloat->bnan(), Math::BigFloat->bone() ); |
21 | |
22 | sub compare |
23 | { |
24 | my ($nan, $one) = @_; |
25 | |
26 | is ($one, $one, '1 == 1'); |
27 | |
28 | is ($one != $nan, 1, "1 != NaN"); |
29 | is ($nan != $one, 1, "NaN != 1"); |
30 | is ($nan != $nan, 1, "NaN != NaN"); |
31 | |
32 | is ($nan == $one, '', "NaN == 1"); |
33 | is ($one == $nan, '', "1 == NaN"); |
34 | is ($nan == $nan, '', "NaN == NaN"); |
35 | |
36 | is ($nan <= $one, '', "NaN <= 1"); |
37 | is ($one <= $nan, '', "1 <= NaN"); |
38 | is ($nan <= $nan, '', "NaN <= NaN"); |
39 | |
40 | is ($nan >= $one, '', "NaN >= 1"); |
41 | is ($one >= $nan, '', "1 >= NaN"); |
42 | is ($nan >= $nan, '', "NaN >= NaN"); |
43 | } |
44 | |