Data-Buffer-Shared
view release on metacpan or search on metacpan
xt/longdouble_f64.t view on Meta::CPAN
# A value that exceeds IEEE 754 double range but fits in long double:
# storing via F64 must clamp to +Inf (double semantics), not preserve
# the long-double magnitude.
my $beyond_double_max = "1e400" + 0; # finite in long double, +Inf in double
$buf->set(0, $beyond_double_max);
my $got = $buf->get(0);
ok $got > 1e308, "out-of-double-range value stored as +Inf";
ok !($got < 1e308 && $got > -1e308), "not accidentally truncated to finite";
# NaN / ±Inf via string-coerced literals roundtrip
for my $s ("Inf", "-Inf") {
my $v = $s + 0;
$buf->set(0, $v);
cmp_ok $buf->get(0), '==', $v, "F64 $s roundtrip under long double";
}
my $nan = "NaN" + 0;
$buf->set(0, $nan);
my $got_nan = $buf->get(0);
ok $got_nan != $got_nan, "F64 NaN roundtrip under long double";
done_testing;
( run in 2.648 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )