blob: b45917acffaf9c8b9d04f11d0b66a99a41e46468 (
plain)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
#!perl
use strict;
use warnings;
use Test::More tests => 27;
my $class;
BEGIN { $class = 'Math::BigFloat'; }
BEGIN { use_ok($class, '1.999710'); }
while (<DATA>) {
s/#.*$//; # remove comments
s/\s+$//; # remove trailing whitespace
next unless length; # skip empty lines
my ($in0, $out0) = split /:/;
my $x;
my $test = qq|\$x = $class -> from_hex("$in0");|;
my $desc = $test;
eval $test;
die $@ if $@; # this should never happen
subtest $desc, sub {
plan tests => 2,
# Check output.
is(ref($x), $class, "output arg is a $class");
is($x, $out0, 'output arg has the right value');
};
}
__END__
0x1p+0:1
0x.8p+1:1
0x.4p+2:1
0x.2p+3:1
0x.1p+4:1
0x2p-1:1
0x4p-2:1
0x8p-3:1
-0x1p+0:-1
0x0p+0:0
0x0p+7:0
0x0p-7:0
0x0.p+0:0
0x.0p+0:0
0x0.0p+0:0
0xcafe:51966
xcafe:51966
cafe:51966
0x1.9p+3:12.5
0x12.34p-1:9.1015625
-0x.789abcdefp+32:-2023406814.9375
0x12.3456789ap+31:39093746765
NaN:NaN
+inf:NaN
-inf:NaN
0x.p+0:NaN
|