This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
hexfp: double-double correct test goldens.
authorJarkko Hietaniemi <jhi@iki.fi>
Tue, 9 Sep 2014 03:00:12 +0000 (23:00 -0400)
committerJarkko Hietaniemi <jhi@iki.fi>
Tue, 9 Sep 2014 03:12:56 +0000 (23:12 -0400)
t/op/sprintf2.t

index 4ab688e..ad6103d 100644 (file)
@@ -189,26 +189,23 @@ if ($Config{nvsize} == 8 &&
     (pack("F", 0.1) =~ /^\x9A\x99{5}\x59\xBC/ ||  # LE
      pack("F", 0.1) =~ /\xBC\x59\x99{5}\x9A$/)    # BE
     ) {
-    # XXX these values are actually only "single-double" since
-    # we currently do not know how to exactly handle the second
-    # double.  See the discussion in sv.c:S_hextract().
     @hexfloat = (
-       [ '%a', '0',       '0x1p-1' ],
+       [ '%a', '0',       '0x0p+0' ],
        [ '%a', '1',       '0x1p+0' ],
        [ '%a', '1.0',     '0x1p+0' ],
        [ '%a', '0.5',     '0x1p-1' ],
        [ '%a', '0.25',    '0x1p-2' ],
        [ '%a', '0.75',    '0x1.8p-1' ],
-       [ '%a', '3.14',    '0x1.91eb851eb851fp+1' ],
-       [ '%a', '-1',      '-0x1p+0' ],
-       [ '%a', '-3.14',   '-0x1.91eb851eb851fp+1' ],
-       [ '%a', '0.1',     '0x1.999999999999ap-4' ],
-       [ '%a', '1/7',     '0x1.2492492492492p-3' ],
-       [ '%a', 'sqrt(2)', '0x1.6a09e667f3bcdp+0' ],
-       [ '%a', 'exp(1)',  '0x1.5bf0a8b145769p+1' ],
+       [ '%a', '3.14',    '0x1.91eb851eb851eb851eb851eb85p+1' ],
+       [ '%a', '-1',      '-0x0p+0' ],
+       [ '%a', '-3.14',   '-0x1.91eb851eb851eb851eb851eb85p+1' ],
+       [ '%a', '0.1',     '0x1.999999999999999999999999998p-4' ],
+       [ '%a', '1/7',     '0x1.249249249249249249249249248p-3' ],
+       [ '%a', 'sqrt(2)', '0x1.6a09e667f3bcc908b2fb1366ea8p+0' ],
+       [ '%a', 'exp(1)',  '0x1.5bf0a8b1457695355fb8ac404e8p+1' ],
        [ '%a', '2**-10',  '0x1p-10' ],
        [ '%a', '2**10',   '0x1p+10' ],
-       [ '%a', '1e-09',   '0x1.12e0be826d695p-30' ],
+       [ '%a', '1e-09',   '0x1.12e0be826d694b2e62d01511f14p-30' ],
        [ '%a', '1e9',     '0x1.dcd65p+29' ],
 
        [ '%#a', '1',      '0x1.p+0' ],
@@ -217,27 +214,27 @@ if ($Config{nvsize} == 8 &&
        [ '% a', '1',      ' 0x1p+0' ],
        [ '% a', '-1',     '-0x1p+0' ],
 
-       [ '%8a',      '3.14', '0x1.91eb851eb851fp+1' ],
-       [ '%13a',     '3.14', '0x1.91eb851eb851fp+1' ],
-       [ '%20a',     '3.14', '0x1.91eb851eb851fp+1' ],
+       [ '%8a',      '3.14', '0x1.91eb851eb851eb851eb851eb85p+1' ],
+       [ '%13a',     '3.14', '0x1.91eb851eb851eb851eb851eb85p+1' ],
+       [ '%20a',     '3.14', '0x1.91eb851eb851eb851eb851eb85p+1' ],
        [ '%.4a',     '3.14', '0x1.91ecp+1' ],
        [ '%.5a',     '3.14', '0x1.91eb8p+1' ],
        [ '%.6a',     '3.14', '0x1.91eb85p+1' ],
-        [ '%.20a',    '3.14',   '0x1.91eb851eb851f0000000p+1' ],
+        [ '%.20a',    '3.14',   '0x1.91eb851eb851eb851eb8p+1' ],
        [ '%20.10a',  '3.14', '   0x1.91eb851eb8p+1' ],
-        [ '%20.15a',  '3.14',   '0x1.91eb851eb851f00p+1' ],
+        [ '%20.15a',  '3.14',   '0x1.91eb851eb851eb8p+1' ],
        [ '% 20.10a', '3.14', '   0x1.91eb851eb8p+1' ],
        [ '%020.10a', '3.14', '0x0001.91eb851eb8p+1' ],
 
-        [ '%30a',  '3.14',   '          0x1.91eb851eb851fp+1' ],
-        [ '%-30a', '3.14',   '0x1.91eb851eb851fp+1          ' ],
-        [ '%030a',  '3.14',  '0x00000000001.91eb851eb851fp+1' ],
-        [ '%-030a', '3.14',  '0x1.91eb851eb851fp+1          ' ],
+        [ '%30a',  '3.14',   '0x1.91eb851eb851eb851eb851eb85p+1' ],
+        [ '%-30a', '3.14',   '0x1.91eb851eb851eb851eb851eb85p+1' ],
+        [ '%030a',  '3.14',  '0x1.91eb851eb851eb851eb851eb85p+1' ],
+        [ '%-030a', '3.14',  '0x1.91eb851eb851eb851eb851eb85p+1' ],
 
         [ '%.40a',  '3.14',
-          '0x1.91eb851eb851f000000000000000000000000000p+1' ],
+          '0x1.91eb851eb851eb851eb851eb8500000000000000p+1' ],
 
-       [ '%A',       '3.14', '0X1.91EB851EB851FP+1' ],
+       [ '%A',       '3.14', '0X1.91EB851EB851EB851EB851EB85P+1' ],
         );
 } else {
     print "# no hexfloat tests\n";