}
elsif ($y eq ">$result<") # Some C libraries always give
{ # three-digit exponent
- print("ok $i >$result< $x # three-digit exponent accepted\n");
+ print("ok $i >$result< $x # three-digit exponent accepted\n");
}
+ elsif ($result =~ /[-+]\d{3}$/ &&
+ # Suppress tests with modulo of exponent >= 100 on platforms
+ # which can't handle such magnitudes (or where we can't tell).
+ ((!eval {require POSIX}) || # Costly: only do this if we must!
+ (length(&POSIX::DBL_MAX) - rindex(&POSIX::DBL_MAX, '+')) == 3))
+ {
+ print("ok $i >$template< >$data< >$result<",
+ " # Suppressed: exponent out of range?\n")
+ }
else {
$y = ($x eq $y ? "" : " => $y");
print("not ok $i >$template< >$data< >$result< $x$y",