1*eac174f2Safresh1# -*- mode: perl; -*- 2b8851fccSafresh1 3b8851fccSafresh1# test that overloaded compare works when NaN are involved 4b8851fccSafresh1 5b8851fccSafresh1use strict; 6b8851fccSafresh1use warnings; 7b8851fccSafresh1 8b8851fccSafresh1use Test::More tests => 26; 9b8851fccSafresh1 10b8851fccSafresh1use Math::BigInt; 11b8851fccSafresh1use Math::BigFloat; 12b8851fccSafresh1 13b8851fccSafresh1compare('Math::BigInt'); 14b8851fccSafresh1compare('Math::BigFloat'); 15b8851fccSafresh1 16b8851fccSafresh1sub compare { 17b8851fccSafresh1 my $class = shift; 18b8851fccSafresh1 19b8851fccSafresh1 my $nan = $class->bnan(); 20b8851fccSafresh1 my $one = $class->bone(); 21b8851fccSafresh1 22b8851fccSafresh1 is($one, $one, "$class->bone() == $class->bone()"); 23b8851fccSafresh1 24b8851fccSafresh1 is($one != $nan, 1, "$class->bone() != $class->bnan()"); 25b8851fccSafresh1 is($nan != $one, 1, "$class->bnan() != $class->bone()"); 26b8851fccSafresh1 is($nan != $nan, 1, "$class->bnan() != $class->bnan()"); 27b8851fccSafresh1 28b8851fccSafresh1 is($nan == $one, '', "$class->bnan() == $class->bone()"); 29b8851fccSafresh1 is($one == $nan, '', "$class->bone() == $class->bnan()"); 30b8851fccSafresh1 is($nan == $nan, '', "$class->bnan() == $class->bnan()"); 31b8851fccSafresh1 32b8851fccSafresh1 is($nan <= $one, '', "$class->bnan() <= $class->bone()"); 33b8851fccSafresh1 is($one <= $nan, '', "$class->bone() <= $class->bnan()"); 34b8851fccSafresh1 is($nan <= $nan, '', "$class->bnan() <= $class->bnan()"); 35b8851fccSafresh1 36b8851fccSafresh1 is($nan >= $one, '', "$class->bnan() >= $class->bone()"); 37b8851fccSafresh1 is($one >= $nan, '', "$class->bone() >= $class->bnan()"); 38b8851fccSafresh1 is($nan >= $nan, '', "$class->bnan() >= $class->bnan()"); 39b8851fccSafresh1} 40