File: bigexp.t

package info (click to toggle)
perl 5.42.0-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 128,392 kB
  • sloc: perl: 534,963; ansic: 240,563; sh: 72,042; pascal: 6,934; xml: 2,428; yacc: 1,360; makefile: 1,197; cpp: 208; lisp: 1
file content (19 lines) | stat: -rw-r--r-- 562 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# -*- mode: perl; -*-

###############################################################################
# test for bug #18025: bigfloat/bigrat can lead to a number that is both 1 and 0

use strict;
use warnings;

use Test::More tests => 4;

use bigfloat;

my $ln_ev = -7 / (10 ** 17);
my $ev    = exp($ln_ev);
is(sprintf('%0.5f', $ev),       '1.00000', '($ev) is approx. 1');
is(sprintf('%0.5f', 1 - $ev),   '0.00000', '(1-$ev) is approx. 0');
is(sprintf('%0.5f', 1 - "$ev"), '0.00000', '(1-"$ev") is approx. 0');

cmp_ok($ev, '!=', 0, '$ev should not equal 0');