1#!/usr/bin/perl -w
2
3# test that overloaded compare works when NaN are involved
4
5use strict;
6use Test::More;
7
8BEGIN
9  {
10  $| = 1;
11  chdir 't' if -d 't';
12  unshift @INC, '../lib';	# for running manually
13  plan tests => 26;
14  }
15
16use Math::BigInt;
17use Math::BigFloat;
18
19compare (Math::BigInt->bnan(),   Math::BigInt->bone() );
20compare (Math::BigFloat->bnan(), Math::BigFloat->bone() );
21
22sub 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
45