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