1*eac174f2Safresh1# -*- mode: perl; -*- 2b8851fccSafresh1 3b8851fccSafresh1############################################################################### 4*eac174f2Safresh1# test for bug #18025: bigfloat/bigrat can lead to a number that is both 1 and 0 5b8851fccSafresh1 6b8851fccSafresh1use strict; 7b8851fccSafresh1use warnings; 8b8851fccSafresh1 9b8851fccSafresh1use Test::More tests => 4; 10b8851fccSafresh1 11*eac174f2Safresh1use bigfloat; 12b8851fccSafresh1 13b8851fccSafresh1my $ln_ev = -7 / (10 ** 17); 14b8851fccSafresh1my $ev = exp($ln_ev); 15b8851fccSafresh1is(sprintf('%0.5f', $ev), '1.00000', '($ev) is approx. 1'); 16b8851fccSafresh1is(sprintf('%0.5f', 1 - $ev), '0.00000', '(1-$ev) is approx. 0'); 17b8851fccSafresh1is(sprintf('%0.5f', 1 - "$ev"), '0.00000', '(1-"$ev") is approx. 0'); 18b8851fccSafresh1 19b8851fccSafresh1cmp_ok($ev, '!=', 0, '$ev should not equal 0'); 20