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