BEGIN { print "1..4\n"; }
END { print "not ok\n" unless $loaded }
$loaded = 1;
print "ok\n";
my @triads = (
[qw(123 456 579)],
[qw(890 135 925)],
[qw(456 879 225)],
);
eval {
foreach my $triad ( @triads )
{
my( $expected, $m, $n ) = @$triad;
my $diff1 = Math::NoCarry::subtract( $n, $m );
my $diff2 = Math::NoCarry::subtract( $n, $expected );
die "[$n - $m] gave [$diff], but I expected [$expected]\n"
unless $diff1 == $expected;
die "[$n - $expected] gave [$diff], but I expected [$m]\n"
unless $diff2 == $m;
}
};
print STDERR $@ if $@;
print $@ ? 'not ' : '', "ok\n";
eval {
foreach my $triad ( @triads )
{
foreach my $n ( @$triad )
{
my $diff = Math::NoCarry::subtract( $n );
die "[$n] gave [$diff], but I expected [$n]\n"
unless $diff == $n;
}
}
};
print STDERR $@ if $@;
print $@ ? 'not ' : '', "ok\n";
eval {
my $diff = Math::NoCarry::subtract();
die "[NULL] gave [$diff], but I expected [FALSE]\n"
if $diff;
};
print STDERR $@ if $@;
print $@ ? 'not ' : '', "ok\n";