File: atonum.t

package info (click to toggle)
libmath-mpfr-perl 4.45-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,716 kB
  • sloc: perl: 1,508; ansic: 517; makefile: 9
file content (42 lines) | stat: -rwxr-xr-x 1,034 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

use strict;
use warnings;
use Math::MPFR qw(:mpfr);
use Test::More;

if(196869 >= MPFR_VERSION) {

  eval {atonum("1.3");};
  like  ($@, qr/atonv is not available with this version/, '$@ reports unavailability of atonum');

  done_testing();

}
else {

  my @in = (~0, ~0 - 1, ~0 - 10000, ~0 >> 1, (~0 >> 1) * -1, 1e6, -1e6);

  for my $n (@in) {
    cmp_ok(atonum("$n"), 'eq', "$n", "atonum(\"$n\") eq \"$n\"");
    cmp_ok(atonum("$n"), '==',  $n , "atonum(\"$n\") == $n");
  }

  my $fr = Math::MPFR->new();
  my $nan  = Rmpfr_get_NV($fr, MPFR_RNDN);
  Rmpfr_set_inf($fr, 0);
  my $pinf = Rmpfr_get_NV($fr, MPFR_RNDN);
  my $ninf = $pinf * -1;
  my $pzero = 0.0;
  my $nzero = $pzero * -1.0;

  @in = ($pinf, $ninf, $nan, $pzero, $nzero, sqrt(2), 1 / 10, 1.3e-200, -1.3e-200, 2 ** 200, -(2 ** 200));

  for my $n (@in) {
    cmp_ok(atonum("$n"), 'eq', atonv("$n"),  "atonum(\"$n\") eq atonv(\"$n\")");
    next if $n != $n;
    cmp_ok(atonum("$n"), '==',  atonv("$n"), "atonum(\"$n\") == atonv(\"$n\")");
  }

  done_testing();
}