17db96d56Sopenharmony_ci------------------------------------------------------------------------
27db96d56Sopenharmony_ci-- ddEncode.decTest -- decimal eight-byte format testcases            --
37db96d56Sopenharmony_ci-- Copyright (c) IBM Corporation, 2000, 2008.  All rights reserved.   --
47db96d56Sopenharmony_ci------------------------------------------------------------------------
57db96d56Sopenharmony_ci-- Please see the document "General Decimal Arithmetic Testcases"     --
67db96d56Sopenharmony_ci-- at http://www2.hursley.ibm.com/decimal for the description of      --
77db96d56Sopenharmony_ci-- these testcases.                                                   --
87db96d56Sopenharmony_ci--                                                                    --
97db96d56Sopenharmony_ci-- These testcases are experimental ('beta' versions), and they       --
107db96d56Sopenharmony_ci-- may contain errors.  They are offered on an as-is basis.  In       --
117db96d56Sopenharmony_ci-- particular, achieving the same results as the tests here is not    --
127db96d56Sopenharmony_ci-- a guarantee that an implementation complies with any Standard      --
137db96d56Sopenharmony_ci-- or specification.  The tests are not exhaustive.                   --
147db96d56Sopenharmony_ci--                                                                    --
157db96d56Sopenharmony_ci-- Please send comments, suggestions, and corrections to the author:  --
167db96d56Sopenharmony_ci--   Mike Cowlishaw, IBM Fellow                                       --
177db96d56Sopenharmony_ci--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
187db96d56Sopenharmony_ci--   mfc@uk.ibm.com                                                   --
197db96d56Sopenharmony_ci------------------------------------------------------------------------
207db96d56Sopenharmony_ci-- [Previously called decimal64.decTest]
217db96d56Sopenharmony_civersion: 2.59
227db96d56Sopenharmony_ci
237db96d56Sopenharmony_ci-- This set of tests is for the eight-byte concrete representation.
247db96d56Sopenharmony_ci-- Its characteristics are:
257db96d56Sopenharmony_ci--
267db96d56Sopenharmony_ci--  1 bit  sign
277db96d56Sopenharmony_ci--  5 bits combination field
287db96d56Sopenharmony_ci--  8 bits exponent continuation
297db96d56Sopenharmony_ci-- 50 bits coefficient continuation
307db96d56Sopenharmony_ci--
317db96d56Sopenharmony_ci-- Total exponent length 10 bits
327db96d56Sopenharmony_ci-- Total coefficient length 54 bits (16 digits)
337db96d56Sopenharmony_ci--
347db96d56Sopenharmony_ci-- Elimit =  767 (maximum encoded exponent)
357db96d56Sopenharmony_ci-- Emax   =  384 (largest exponent value)
367db96d56Sopenharmony_ci-- Emin   = -383 (smallest exponent value)
377db96d56Sopenharmony_ci-- bias   =  398 (subtracted from encoded exponent) = -Etiny
387db96d56Sopenharmony_ci
397db96d56Sopenharmony_ci-- The testcases here have only exactly representable data on the
407db96d56Sopenharmony_ci-- 'left-hand-side'; rounding from strings is tested in 'base'
417db96d56Sopenharmony_ci-- testcase groups.
427db96d56Sopenharmony_ci
437db96d56Sopenharmony_ciextended:    1
447db96d56Sopenharmony_ciclamp:       1
457db96d56Sopenharmony_ciprecision:   16
467db96d56Sopenharmony_cirounding:    half_up
477db96d56Sopenharmony_cimaxExponent: 384
487db96d56Sopenharmony_ciminExponent: -383
497db96d56Sopenharmony_ci
507db96d56Sopenharmony_ci-- General testcases
517db96d56Sopenharmony_ci-- (mostly derived from the Strawman 4 document and examples)
527db96d56Sopenharmony_cidece001 apply   #A2300000000003D0 -> -7.50
537db96d56Sopenharmony_cidece002 apply   -7.50             -> #A2300000000003D0
547db96d56Sopenharmony_ci-- derivative canonical plain strings
557db96d56Sopenharmony_cidece003 apply   #A23c0000000003D0 -> -7.50E+3
567db96d56Sopenharmony_cidece004 apply   -7.50E+3          -> #A23c0000000003D0
577db96d56Sopenharmony_cidece005 apply   #A2380000000003D0 -> -750
587db96d56Sopenharmony_cidece006 apply   -750              -> #A2380000000003D0
597db96d56Sopenharmony_cidece007 apply   #A2340000000003D0 -> -75.0
607db96d56Sopenharmony_cidece008 apply   -75.0             -> #A2340000000003D0
617db96d56Sopenharmony_cidece009 apply   #A22c0000000003D0 -> -0.750
627db96d56Sopenharmony_cidece010 apply   -0.750            -> #A22c0000000003D0
637db96d56Sopenharmony_cidece011 apply   #A2280000000003D0 -> -0.0750
647db96d56Sopenharmony_cidece012 apply   -0.0750           -> #A2280000000003D0
657db96d56Sopenharmony_cidece013 apply   #A2200000000003D0 -> -0.000750
667db96d56Sopenharmony_cidece014 apply   -0.000750         -> #A2200000000003D0
677db96d56Sopenharmony_cidece015 apply   #A2180000000003D0 -> -0.00000750
687db96d56Sopenharmony_cidece016 apply   -0.00000750       -> #A2180000000003D0
697db96d56Sopenharmony_cidece017 apply   #A2140000000003D0 -> -7.50E-7
707db96d56Sopenharmony_cidece018 apply   -7.50E-7          -> #A2140000000003D0
717db96d56Sopenharmony_ci
727db96d56Sopenharmony_ci-- Normality
737db96d56Sopenharmony_cidece020 apply   1234567890123456   -> #263934b9c1e28e56
747db96d56Sopenharmony_cidece021 apply  -1234567890123456   -> #a63934b9c1e28e56
757db96d56Sopenharmony_cidece022 apply   1234.567890123456  -> #260934b9c1e28e56
767db96d56Sopenharmony_cidece023 apply  #260934b9c1e28e56   -> 1234.567890123456
777db96d56Sopenharmony_cidece024 apply   1111111111111111   -> #2638912449124491
787db96d56Sopenharmony_cidece025 apply   9999999999999999   -> #6e38ff3fcff3fcff
797db96d56Sopenharmony_ci
807db96d56Sopenharmony_ci-- Nmax and similar
817db96d56Sopenharmony_cidece031 apply   9999999999999999E+369   -> #77fcff3fcff3fcff
827db96d56Sopenharmony_cidece032 apply   9.999999999999999E+384  -> #77fcff3fcff3fcff
837db96d56Sopenharmony_cidece033 apply   #77fcff3fcff3fcff       -> 9.999999999999999E+384
847db96d56Sopenharmony_cidece034 apply   1.234567890123456E+384  -> #47fd34b9c1e28e56
857db96d56Sopenharmony_cidece035 apply   #47fd34b9c1e28e56       -> 1.234567890123456E+384
867db96d56Sopenharmony_ci-- fold-downs (more below)
877db96d56Sopenharmony_cidece036 apply   1.23E+384               -> #47fd300000000000 Clamped
887db96d56Sopenharmony_cidece037 apply   #47fd300000000000       -> 1.230000000000000E+384
897db96d56Sopenharmony_cidecd038 apply   1E+384                  -> #47fc000000000000 Clamped
907db96d56Sopenharmony_cidecd039 apply   #47fc000000000000       -> 1.000000000000000E+384
917db96d56Sopenharmony_ci
927db96d56Sopenharmony_cidecd051 apply   12345                   -> #22380000000049c5
937db96d56Sopenharmony_cidecd052 apply   #22380000000049c5       -> 12345
947db96d56Sopenharmony_cidecd053 apply   1234                    -> #2238000000000534
957db96d56Sopenharmony_cidecd054 apply   #2238000000000534       -> 1234
967db96d56Sopenharmony_cidecd055 apply   123                     -> #22380000000000a3
977db96d56Sopenharmony_cidecd056 apply   #22380000000000a3       -> 123
987db96d56Sopenharmony_cidecd057 apply   12                      -> #2238000000000012
997db96d56Sopenharmony_cidecd058 apply   #2238000000000012       -> 12
1007db96d56Sopenharmony_cidecd059 apply   1                       -> #2238000000000001
1017db96d56Sopenharmony_cidecd060 apply   #2238000000000001       -> 1
1027db96d56Sopenharmony_cidecd061 apply   1.23                    -> #22300000000000a3
1037db96d56Sopenharmony_cidecd062 apply   #22300000000000a3       -> 1.23
1047db96d56Sopenharmony_cidecd063 apply   123.45                  -> #22300000000049c5
1057db96d56Sopenharmony_cidecd064 apply   #22300000000049c5       -> 123.45
1067db96d56Sopenharmony_ci
1077db96d56Sopenharmony_ci-- Nmin and below
1087db96d56Sopenharmony_cidecd071 apply   1E-383                  -> #003c000000000001
1097db96d56Sopenharmony_cidecd072 apply   #003c000000000001       -> 1E-383
1107db96d56Sopenharmony_cidecd073 apply   1.000000000000000E-383  -> #0400000000000000
1117db96d56Sopenharmony_cidecd074 apply   #0400000000000000       -> 1.000000000000000E-383
1127db96d56Sopenharmony_cidecd075 apply   1.000000000000001E-383  -> #0400000000000001
1137db96d56Sopenharmony_cidecd076 apply   #0400000000000001       -> 1.000000000000001E-383
1147db96d56Sopenharmony_ci
1157db96d56Sopenharmony_cidecd077 apply   0.100000000000000E-383  -> #0000800000000000      Subnormal
1167db96d56Sopenharmony_cidecd078 apply   #0000800000000000       -> 1.00000000000000E-384  Subnormal
1177db96d56Sopenharmony_cidecd079 apply   0.000000000000010E-383  -> #0000000000000010      Subnormal
1187db96d56Sopenharmony_cidecd080 apply   #0000000000000010       -> 1.0E-397               Subnormal
1197db96d56Sopenharmony_cidecd081 apply   0.00000000000001E-383   -> #0004000000000001      Subnormal
1207db96d56Sopenharmony_cidecd082 apply   #0004000000000001       -> 1E-397                 Subnormal
1217db96d56Sopenharmony_cidecd083 apply   0.000000000000001E-383  -> #0000000000000001      Subnormal
1227db96d56Sopenharmony_cidecd084 apply   #0000000000000001       -> 1E-398                 Subnormal
1237db96d56Sopenharmony_ci-- next is smallest all-nines
1247db96d56Sopenharmony_cidecd085 apply   9999999999999999E-398   -> #6400ff3fcff3fcff
1257db96d56Sopenharmony_cidecd086 apply   #6400ff3fcff3fcff       -> 9.999999999999999E-383
1267db96d56Sopenharmony_ci-- and a problematic divide result
1277db96d56Sopenharmony_cidecd088 apply   1.111111111111111E-383  -> #0400912449124491
1287db96d56Sopenharmony_cidecd089 apply   #0400912449124491       -> 1.111111111111111E-383
1297db96d56Sopenharmony_ci
1307db96d56Sopenharmony_ci-- forties
1317db96d56Sopenharmony_cidecd090 apply        40                -> #2238000000000040
1327db96d56Sopenharmony_cidecd091 apply        39.99             -> #2230000000000cff
1337db96d56Sopenharmony_ci
1347db96d56Sopenharmony_ci-- underflows cannot be tested as all LHS exact
1357db96d56Sopenharmony_ci
1367db96d56Sopenharmony_ci-- Same again, negatives
1377db96d56Sopenharmony_ci-- Nmax and similar
1387db96d56Sopenharmony_cidecd122 apply  -9.999999999999999E+384  -> #f7fcff3fcff3fcff
1397db96d56Sopenharmony_cidecd123 apply   #f7fcff3fcff3fcff       -> -9.999999999999999E+384
1407db96d56Sopenharmony_cidecd124 apply  -1.234567890123456E+384  -> #c7fd34b9c1e28e56
1417db96d56Sopenharmony_cidecd125 apply   #c7fd34b9c1e28e56       -> -1.234567890123456E+384
1427db96d56Sopenharmony_ci-- fold-downs (more below)
1437db96d56Sopenharmony_cidecd130 apply  -1.23E+384               -> #c7fd300000000000 Clamped
1447db96d56Sopenharmony_cidecd131 apply   #c7fd300000000000       -> -1.230000000000000E+384
1457db96d56Sopenharmony_cidecd132 apply  -1E+384                  -> #c7fc000000000000 Clamped
1467db96d56Sopenharmony_cidecd133 apply   #c7fc000000000000       -> -1.000000000000000E+384
1477db96d56Sopenharmony_ci
1487db96d56Sopenharmony_ci-- overflows
1497db96d56Sopenharmony_cidecd151 apply  -12345                   -> #a2380000000049c5
1507db96d56Sopenharmony_cidecd152 apply   #a2380000000049c5       -> -12345
1517db96d56Sopenharmony_cidecd153 apply  -1234                    -> #a238000000000534
1527db96d56Sopenharmony_cidecd154 apply   #a238000000000534       -> -1234
1537db96d56Sopenharmony_cidecd155 apply  -123                     -> #a2380000000000a3
1547db96d56Sopenharmony_cidecd156 apply   #a2380000000000a3       -> -123
1557db96d56Sopenharmony_cidecd157 apply  -12                      -> #a238000000000012
1567db96d56Sopenharmony_cidecd158 apply   #a238000000000012       -> -12
1577db96d56Sopenharmony_cidecd159 apply  -1                       -> #a238000000000001
1587db96d56Sopenharmony_cidecd160 apply   #a238000000000001       -> -1
1597db96d56Sopenharmony_cidecd161 apply  -1.23                    -> #a2300000000000a3
1607db96d56Sopenharmony_cidecd162 apply   #a2300000000000a3       -> -1.23
1617db96d56Sopenharmony_cidecd163 apply  -123.45                  -> #a2300000000049c5
1627db96d56Sopenharmony_cidecd164 apply   #a2300000000049c5       -> -123.45
1637db96d56Sopenharmony_ci
1647db96d56Sopenharmony_ci-- Nmin and below
1657db96d56Sopenharmony_cidecd171 apply  -1E-383                  -> #803c000000000001
1667db96d56Sopenharmony_cidecd172 apply   #803c000000000001       -> -1E-383
1677db96d56Sopenharmony_cidecd173 apply  -1.000000000000000E-383  -> #8400000000000000
1687db96d56Sopenharmony_cidecd174 apply   #8400000000000000       -> -1.000000000000000E-383
1697db96d56Sopenharmony_cidecd175 apply  -1.000000000000001E-383  -> #8400000000000001
1707db96d56Sopenharmony_cidecd176 apply   #8400000000000001       -> -1.000000000000001E-383
1717db96d56Sopenharmony_ci
1727db96d56Sopenharmony_cidecd177 apply  -0.100000000000000E-383  -> #8000800000000000       Subnormal
1737db96d56Sopenharmony_cidecd178 apply   #8000800000000000       -> -1.00000000000000E-384  Subnormal
1747db96d56Sopenharmony_cidecd179 apply  -0.000000000000010E-383  -> #8000000000000010       Subnormal
1757db96d56Sopenharmony_cidecd180 apply   #8000000000000010       -> -1.0E-397               Subnormal
1767db96d56Sopenharmony_cidecd181 apply  -0.00000000000001E-383   -> #8004000000000001       Subnormal
1777db96d56Sopenharmony_cidecd182 apply   #8004000000000001       -> -1E-397                 Subnormal
1787db96d56Sopenharmony_cidecd183 apply  -0.000000000000001E-383  -> #8000000000000001       Subnormal
1797db96d56Sopenharmony_cidecd184 apply   #8000000000000001       -> -1E-398                 Subnormal
1807db96d56Sopenharmony_ci-- next is smallest all-nines
1817db96d56Sopenharmony_cidecd185 apply   -9999999999999999E-398   -> #e400ff3fcff3fcff
1827db96d56Sopenharmony_cidecd186 apply   #e400ff3fcff3fcff       -> -9.999999999999999E-383
1837db96d56Sopenharmony_ci-- and a tricky subnormal
1847db96d56Sopenharmony_cidecd187 apply   1.11111111111524E-384    -> #00009124491246a4      Subnormal
1857db96d56Sopenharmony_cidecd188 apply   #00009124491246a4        -> 1.11111111111524E-384  Subnormal
1867db96d56Sopenharmony_ci
1877db96d56Sopenharmony_ci-- near-underflows
1887db96d56Sopenharmony_cidecd189 apply   -1e-398                 -> #8000000000000001  Subnormal
1897db96d56Sopenharmony_cidecd190 apply   -1.0e-398               -> #8000000000000001  Subnormal Rounded
1907db96d56Sopenharmony_ci
1917db96d56Sopenharmony_ci-- zeros
1927db96d56Sopenharmony_cidecd401 apply   0E-500                  -> #0000000000000000  Clamped
1937db96d56Sopenharmony_cidecd402 apply   0E-400                  -> #0000000000000000  Clamped
1947db96d56Sopenharmony_cidecd403 apply   0E-398                  -> #0000000000000000
1957db96d56Sopenharmony_cidecd404 apply   #0000000000000000       -> 0E-398
1967db96d56Sopenharmony_cidecd405 apply   0.000000000000000E-383  -> #0000000000000000
1977db96d56Sopenharmony_cidecd406 apply   #0000000000000000       -> 0E-398
1987db96d56Sopenharmony_cidecd407 apply   0E-2                    -> #2230000000000000
1997db96d56Sopenharmony_cidecd408 apply   #2230000000000000       -> 0.00
2007db96d56Sopenharmony_cidecd409 apply   0                       -> #2238000000000000
2017db96d56Sopenharmony_cidecd410 apply   #2238000000000000       -> 0
2027db96d56Sopenharmony_cidecd411 apply   0E+3                    -> #2244000000000000
2037db96d56Sopenharmony_cidecd412 apply   #2244000000000000       -> 0E+3
2047db96d56Sopenharmony_cidecd413 apply   0E+369                  -> #43fc000000000000
2057db96d56Sopenharmony_cidecd414 apply   #43fc000000000000       -> 0E+369
2067db96d56Sopenharmony_ci-- clamped zeros...
2077db96d56Sopenharmony_cidecd415 apply   0E+370                  -> #43fc000000000000  Clamped
2087db96d56Sopenharmony_cidecd416 apply   #43fc000000000000       -> 0E+369
2097db96d56Sopenharmony_cidecd417 apply   0E+384                  -> #43fc000000000000  Clamped
2107db96d56Sopenharmony_cidecd418 apply   #43fc000000000000       -> 0E+369
2117db96d56Sopenharmony_cidecd419 apply   0E+400                  -> #43fc000000000000  Clamped
2127db96d56Sopenharmony_cidecd420 apply   #43fc000000000000       -> 0E+369
2137db96d56Sopenharmony_cidecd421 apply   0E+500                  -> #43fc000000000000  Clamped
2147db96d56Sopenharmony_cidecd422 apply   #43fc000000000000       -> 0E+369
2157db96d56Sopenharmony_ci
2167db96d56Sopenharmony_ci-- negative zeros
2177db96d56Sopenharmony_cidecd431 apply   -0E-400                 -> #8000000000000000  Clamped
2187db96d56Sopenharmony_cidecd432 apply   -0E-400                 -> #8000000000000000  Clamped
2197db96d56Sopenharmony_cidecd433 apply   -0E-398                 -> #8000000000000000
2207db96d56Sopenharmony_cidecd434 apply   #8000000000000000       -> -0E-398
2217db96d56Sopenharmony_cidecd435 apply   -0.000000000000000E-383 -> #8000000000000000
2227db96d56Sopenharmony_cidecd436 apply   #8000000000000000       -> -0E-398
2237db96d56Sopenharmony_cidecd437 apply   -0E-2                   -> #a230000000000000
2247db96d56Sopenharmony_cidecd438 apply   #a230000000000000       -> -0.00
2257db96d56Sopenharmony_cidecd439 apply   -0                      -> #a238000000000000
2267db96d56Sopenharmony_cidecd440 apply   #a238000000000000       -> -0
2277db96d56Sopenharmony_cidecd441 apply   -0E+3                   -> #a244000000000000
2287db96d56Sopenharmony_cidecd442 apply   #a244000000000000       -> -0E+3
2297db96d56Sopenharmony_cidecd443 apply   -0E+369                 -> #c3fc000000000000
2307db96d56Sopenharmony_cidecd444 apply   #c3fc000000000000       -> -0E+369
2317db96d56Sopenharmony_ci-- clamped zeros...
2327db96d56Sopenharmony_cidecd445 apply   -0E+370                 -> #c3fc000000000000  Clamped
2337db96d56Sopenharmony_cidecd446 apply   #c3fc000000000000       -> -0E+369
2347db96d56Sopenharmony_cidecd447 apply   -0E+384                 -> #c3fc000000000000  Clamped
2357db96d56Sopenharmony_cidecd448 apply   #c3fc000000000000       -> -0E+369
2367db96d56Sopenharmony_cidecd449 apply   -0E+400                 -> #c3fc000000000000  Clamped
2377db96d56Sopenharmony_cidecd450 apply   #c3fc000000000000       -> -0E+369
2387db96d56Sopenharmony_cidecd451 apply   -0E+500                 -> #c3fc000000000000  Clamped
2397db96d56Sopenharmony_cidecd452 apply   #c3fc000000000000       -> -0E+369
2407db96d56Sopenharmony_ci
2417db96d56Sopenharmony_ci-- exponents
2427db96d56Sopenharmony_cidecd460 apply   #225c000000000007 -> 7E+9
2437db96d56Sopenharmony_cidecd461 apply   7E+9  -> #225c000000000007
2447db96d56Sopenharmony_cidecd462 apply   #23c4000000000007 -> 7E+99
2457db96d56Sopenharmony_cidecd463 apply   7E+99 -> #23c4000000000007
2467db96d56Sopenharmony_ci
2477db96d56Sopenharmony_ci-- Specials
2487db96d56Sopenharmony_cidecd500 apply   Infinity          -> #7800000000000000
2497db96d56Sopenharmony_cidecd501 apply   #7878787878787878 -> #7800000000000000
2507db96d56Sopenharmony_cidecd502 apply   #7800000000000000 -> Infinity
2517db96d56Sopenharmony_cidecd503 apply   #7979797979797979 -> #7800000000000000
2527db96d56Sopenharmony_cidecd504 apply   #7900000000000000 -> Infinity
2537db96d56Sopenharmony_cidecd505 apply   #7a7a7a7a7a7a7a7a -> #7800000000000000
2547db96d56Sopenharmony_cidecd506 apply   #7a00000000000000 -> Infinity
2557db96d56Sopenharmony_cidecd507 apply   #7b7b7b7b7b7b7b7b -> #7800000000000000
2567db96d56Sopenharmony_cidecd508 apply   #7b00000000000000 -> Infinity
2577db96d56Sopenharmony_ci
2587db96d56Sopenharmony_cidecd509 apply   NaN               -> #7c00000000000000
2597db96d56Sopenharmony_cidecd510 apply   #7c7c7c7c7c7c7c7c -> #7c007c7c7c7c7c7c
2607db96d56Sopenharmony_cidecd511 apply   #7c00000000000000 -> NaN
2617db96d56Sopenharmony_cidecd512 apply   #7d7d7d7d7d7d7d7d -> #7c017d7d7d7d7d7d
2627db96d56Sopenharmony_cidecd513 apply   #7d00000000000000 -> NaN
2637db96d56Sopenharmony_cidecd514 apply   #7e7e7e7e7e7e7e7e -> #7e007e7e7e7e7c7e
2647db96d56Sopenharmony_cidecd515 apply   #7e00000000000000 -> sNaN
2657db96d56Sopenharmony_cidecd516 apply   #7f7f7f7f7f7f7f7f -> #7e007f7f7f7f7c7f
2667db96d56Sopenharmony_cidecd517 apply   #7f00000000000000 -> sNaN
2677db96d56Sopenharmony_cidecd518 apply   #7fffffffffffffff -> sNaN999999999999999
2687db96d56Sopenharmony_cidecd519 apply   #7fffffffffffffff -> #7e00ff3fcff3fcff
2697db96d56Sopenharmony_ci
2707db96d56Sopenharmony_cidecd520 apply   -Infinity         -> #f800000000000000
2717db96d56Sopenharmony_cidecd521 apply   #f878787878787878 -> #f800000000000000
2727db96d56Sopenharmony_cidecd522 apply   #f800000000000000 -> -Infinity
2737db96d56Sopenharmony_cidecd523 apply   #f979797979797979 -> #f800000000000000
2747db96d56Sopenharmony_cidecd524 apply   #f900000000000000 -> -Infinity
2757db96d56Sopenharmony_cidecd525 apply   #fa7a7a7a7a7a7a7a -> #f800000000000000
2767db96d56Sopenharmony_cidecd526 apply   #fa00000000000000 -> -Infinity
2777db96d56Sopenharmony_cidecd527 apply   #fb7b7b7b7b7b7b7b -> #f800000000000000
2787db96d56Sopenharmony_cidecd528 apply   #fb00000000000000 -> -Infinity
2797db96d56Sopenharmony_ci
2807db96d56Sopenharmony_cidecd529 apply   -NaN              -> #fc00000000000000
2817db96d56Sopenharmony_cidecd530 apply   #fc7c7c7c7c7c7c7c -> #fc007c7c7c7c7c7c
2827db96d56Sopenharmony_cidecd531 apply   #fc00000000000000 -> -NaN
2837db96d56Sopenharmony_cidecd532 apply   #fd7d7d7d7d7d7d7d -> #fc017d7d7d7d7d7d
2847db96d56Sopenharmony_cidecd533 apply   #fd00000000000000 -> -NaN
2857db96d56Sopenharmony_cidecd534 apply   #fe7e7e7e7e7e7e7e -> #fe007e7e7e7e7c7e
2867db96d56Sopenharmony_cidecd535 apply   #fe00000000000000 -> -sNaN
2877db96d56Sopenharmony_cidecd536 apply   #ff7f7f7f7f7f7f7f -> #fe007f7f7f7f7c7f
2887db96d56Sopenharmony_cidecd537 apply   #ff00000000000000 -> -sNaN
2897db96d56Sopenharmony_cidecd538 apply   #ffffffffffffffff -> -sNaN999999999999999
2907db96d56Sopenharmony_cidecd539 apply   #ffffffffffffffff -> #fe00ff3fcff3fcff
2917db96d56Sopenharmony_ci
2927db96d56Sopenharmony_ci-- diagnostic NaNs
2937db96d56Sopenharmony_cidecd540 apply   NaN                 -> #7c00000000000000
2947db96d56Sopenharmony_cidecd541 apply   NaN0                -> #7c00000000000000
2957db96d56Sopenharmony_cidecd542 apply   NaN1                -> #7c00000000000001
2967db96d56Sopenharmony_cidecd543 apply   NaN12               -> #7c00000000000012
2977db96d56Sopenharmony_cidecd544 apply   NaN79               -> #7c00000000000079
2987db96d56Sopenharmony_cidecd545 apply   NaN12345            -> #7c000000000049c5
2997db96d56Sopenharmony_cidecd546 apply   NaN123456           -> #7c00000000028e56
3007db96d56Sopenharmony_cidecd547 apply   NaN799799           -> #7c000000000f7fdf
3017db96d56Sopenharmony_cidecd548 apply   NaN799799799799799  -> #7c03dff7fdff7fdf
3027db96d56Sopenharmony_cidecd549 apply   NaN999999999999999  -> #7c00ff3fcff3fcff
3037db96d56Sopenharmony_ci-- too many digits
3047db96d56Sopenharmony_ci
3057db96d56Sopenharmony_ci-- fold-down full sequence
3067db96d56Sopenharmony_cidecd601 apply   1E+384                  -> #47fc000000000000 Clamped
3077db96d56Sopenharmony_cidecd602 apply   #47fc000000000000       -> 1.000000000000000E+384
3087db96d56Sopenharmony_cidecd603 apply   1E+383                  -> #43fc800000000000 Clamped
3097db96d56Sopenharmony_cidecd604 apply   #43fc800000000000       -> 1.00000000000000E+383
3107db96d56Sopenharmony_cidecd605 apply   1E+382                  -> #43fc100000000000 Clamped
3117db96d56Sopenharmony_cidecd606 apply   #43fc100000000000       -> 1.0000000000000E+382
3127db96d56Sopenharmony_cidecd607 apply   1E+381                  -> #43fc010000000000 Clamped
3137db96d56Sopenharmony_cidecd608 apply   #43fc010000000000       -> 1.000000000000E+381
3147db96d56Sopenharmony_cidecd609 apply   1E+380                  -> #43fc002000000000 Clamped
3157db96d56Sopenharmony_cidecd610 apply   #43fc002000000000       -> 1.00000000000E+380
3167db96d56Sopenharmony_cidecd611 apply   1E+379                  -> #43fc000400000000 Clamped
3177db96d56Sopenharmony_cidecd612 apply   #43fc000400000000       -> 1.0000000000E+379
3187db96d56Sopenharmony_cidecd613 apply   1E+378                  -> #43fc000040000000 Clamped
3197db96d56Sopenharmony_cidecd614 apply   #43fc000040000000       -> 1.000000000E+378
3207db96d56Sopenharmony_cidecd615 apply   1E+377                  -> #43fc000008000000 Clamped
3217db96d56Sopenharmony_cidecd616 apply   #43fc000008000000       -> 1.00000000E+377
3227db96d56Sopenharmony_cidecd617 apply   1E+376                  -> #43fc000001000000 Clamped
3237db96d56Sopenharmony_cidecd618 apply   #43fc000001000000       -> 1.0000000E+376
3247db96d56Sopenharmony_cidecd619 apply   1E+375                  -> #43fc000000100000 Clamped
3257db96d56Sopenharmony_cidecd620 apply   #43fc000000100000       -> 1.000000E+375
3267db96d56Sopenharmony_cidecd621 apply   1E+374                  -> #43fc000000020000 Clamped
3277db96d56Sopenharmony_cidecd622 apply   #43fc000000020000       -> 1.00000E+374
3287db96d56Sopenharmony_cidecd623 apply   1E+373                  -> #43fc000000004000 Clamped
3297db96d56Sopenharmony_cidecd624 apply   #43fc000000004000       -> 1.0000E+373
3307db96d56Sopenharmony_cidecd625 apply   1E+372                  -> #43fc000000000400 Clamped
3317db96d56Sopenharmony_cidecd626 apply   #43fc000000000400       -> 1.000E+372
3327db96d56Sopenharmony_cidecd627 apply   1E+371                  -> #43fc000000000080 Clamped
3337db96d56Sopenharmony_cidecd628 apply   #43fc000000000080       -> 1.00E+371
3347db96d56Sopenharmony_cidecd629 apply   1E+370                  -> #43fc000000000010 Clamped
3357db96d56Sopenharmony_cidecd630 apply   #43fc000000000010       -> 1.0E+370
3367db96d56Sopenharmony_cidecd631 apply   1E+369                  -> #43fc000000000001
3377db96d56Sopenharmony_cidecd632 apply   #43fc000000000001       -> 1E+369
3387db96d56Sopenharmony_cidecd633 apply   1E+368                  -> #43f8000000000001
3397db96d56Sopenharmony_cidecd634 apply   #43f8000000000001       -> 1E+368
3407db96d56Sopenharmony_ci-- same with 9s
3417db96d56Sopenharmony_cidecd641 apply   9E+384                  -> #77fc000000000000 Clamped
3427db96d56Sopenharmony_cidecd642 apply   #77fc000000000000       -> 9.000000000000000E+384
3437db96d56Sopenharmony_cidecd643 apply   9E+383                  -> #43fc8c0000000000 Clamped
3447db96d56Sopenharmony_cidecd644 apply   #43fc8c0000000000       -> 9.00000000000000E+383
3457db96d56Sopenharmony_cidecd645 apply   9E+382                  -> #43fc1a0000000000 Clamped
3467db96d56Sopenharmony_cidecd646 apply   #43fc1a0000000000       -> 9.0000000000000E+382
3477db96d56Sopenharmony_cidecd647 apply   9E+381                  -> #43fc090000000000 Clamped
3487db96d56Sopenharmony_cidecd648 apply   #43fc090000000000       -> 9.000000000000E+381
3497db96d56Sopenharmony_cidecd649 apply   9E+380                  -> #43fc002300000000 Clamped
3507db96d56Sopenharmony_cidecd650 apply   #43fc002300000000       -> 9.00000000000E+380
3517db96d56Sopenharmony_cidecd651 apply   9E+379                  -> #43fc000680000000 Clamped
3527db96d56Sopenharmony_cidecd652 apply   #43fc000680000000       -> 9.0000000000E+379
3537db96d56Sopenharmony_cidecd653 apply   9E+378                  -> #43fc000240000000 Clamped
3547db96d56Sopenharmony_cidecd654 apply   #43fc000240000000       -> 9.000000000E+378
3557db96d56Sopenharmony_cidecd655 apply   9E+377                  -> #43fc000008c00000 Clamped
3567db96d56Sopenharmony_cidecd656 apply   #43fc000008c00000       -> 9.00000000E+377
3577db96d56Sopenharmony_cidecd657 apply   9E+376                  -> #43fc000001a00000 Clamped
3587db96d56Sopenharmony_cidecd658 apply   #43fc000001a00000       -> 9.0000000E+376
3597db96d56Sopenharmony_cidecd659 apply   9E+375                  -> #43fc000000900000 Clamped
3607db96d56Sopenharmony_cidecd660 apply   #43fc000000900000       -> 9.000000E+375
3617db96d56Sopenharmony_cidecd661 apply   9E+374                  -> #43fc000000023000 Clamped
3627db96d56Sopenharmony_cidecd662 apply   #43fc000000023000       -> 9.00000E+374
3637db96d56Sopenharmony_cidecd663 apply   9E+373                  -> #43fc000000006800 Clamped
3647db96d56Sopenharmony_cidecd664 apply   #43fc000000006800       -> 9.0000E+373
3657db96d56Sopenharmony_cidecd665 apply   9E+372                  -> #43fc000000002400 Clamped
3667db96d56Sopenharmony_cidecd666 apply   #43fc000000002400       -> 9.000E+372
3677db96d56Sopenharmony_cidecd667 apply   9E+371                  -> #43fc00000000008c Clamped
3687db96d56Sopenharmony_cidecd668 apply   #43fc00000000008c       -> 9.00E+371
3697db96d56Sopenharmony_cidecd669 apply   9E+370                  -> #43fc00000000001a Clamped
3707db96d56Sopenharmony_cidecd670 apply   #43fc00000000001a       -> 9.0E+370
3717db96d56Sopenharmony_cidecd671 apply   9E+369                  -> #43fc000000000009
3727db96d56Sopenharmony_cidecd672 apply   #43fc000000000009       -> 9E+369
3737db96d56Sopenharmony_cidecd673 apply   9E+368                  -> #43f8000000000009
3747db96d56Sopenharmony_cidecd674 apply   #43f8000000000009       -> 9E+368
3757db96d56Sopenharmony_ci
3767db96d56Sopenharmony_ci
3777db96d56Sopenharmony_ci-- Selected DPD codes
3787db96d56Sopenharmony_cidecd700 apply   #2238000000000000       -> 0
3797db96d56Sopenharmony_cidecd701 apply   #2238000000000009       -> 9
3807db96d56Sopenharmony_cidecd702 apply   #2238000000000010       -> 10
3817db96d56Sopenharmony_cidecd703 apply   #2238000000000019       -> 19
3827db96d56Sopenharmony_cidecd704 apply   #2238000000000020       -> 20
3837db96d56Sopenharmony_cidecd705 apply   #2238000000000029       -> 29
3847db96d56Sopenharmony_cidecd706 apply   #2238000000000030       -> 30
3857db96d56Sopenharmony_cidecd707 apply   #2238000000000039       -> 39
3867db96d56Sopenharmony_cidecd708 apply   #2238000000000040       -> 40
3877db96d56Sopenharmony_cidecd709 apply   #2238000000000049       -> 49
3887db96d56Sopenharmony_cidecd710 apply   #2238000000000050       -> 50
3897db96d56Sopenharmony_cidecd711 apply   #2238000000000059       -> 59
3907db96d56Sopenharmony_cidecd712 apply   #2238000000000060       -> 60
3917db96d56Sopenharmony_cidecd713 apply   #2238000000000069       -> 69
3927db96d56Sopenharmony_cidecd714 apply   #2238000000000070       -> 70
3937db96d56Sopenharmony_cidecd715 apply   #2238000000000071       -> 71
3947db96d56Sopenharmony_cidecd716 apply   #2238000000000072       -> 72
3957db96d56Sopenharmony_cidecd717 apply   #2238000000000073       -> 73
3967db96d56Sopenharmony_cidecd718 apply   #2238000000000074       -> 74
3977db96d56Sopenharmony_cidecd719 apply   #2238000000000075       -> 75
3987db96d56Sopenharmony_cidecd720 apply   #2238000000000076       -> 76
3997db96d56Sopenharmony_cidecd721 apply   #2238000000000077       -> 77
4007db96d56Sopenharmony_cidecd722 apply   #2238000000000078       -> 78
4017db96d56Sopenharmony_cidecd723 apply   #2238000000000079       -> 79
4027db96d56Sopenharmony_ci
4037db96d56Sopenharmony_cidecd725 apply   #223800000000029e       -> 994
4047db96d56Sopenharmony_cidecd726 apply   #223800000000029f       -> 995
4057db96d56Sopenharmony_cidecd727 apply   #22380000000002a0       -> 520
4067db96d56Sopenharmony_cidecd728 apply   #22380000000002a1       -> 521
4077db96d56Sopenharmony_ci-- from telco test data
4087db96d56Sopenharmony_cidecd730 apply   #2238000000000188       -> 308
4097db96d56Sopenharmony_cidecd731 apply   #22380000000001a3       -> 323
4107db96d56Sopenharmony_cidecd732 apply   #223800000000002a       ->  82
4117db96d56Sopenharmony_cidecd733 apply   #22380000000001a9       -> 329
4127db96d56Sopenharmony_cidecd734 apply   #2238000000000081       -> 101
4137db96d56Sopenharmony_cidecd735 apply   #22380000000002a2       -> 522
4147db96d56Sopenharmony_ci
4157db96d56Sopenharmony_ci-- DPD: one of each of the huffman groups
4167db96d56Sopenharmony_cidecd740 apply   #22380000000003f7       -> 777
4177db96d56Sopenharmony_cidecd741 apply   #22380000000003f8       -> 778
4187db96d56Sopenharmony_cidecd742 apply   #22380000000003eb       -> 787
4197db96d56Sopenharmony_cidecd743 apply   #223800000000037d       -> 877
4207db96d56Sopenharmony_cidecd744 apply   #223800000000039f       -> 997
4217db96d56Sopenharmony_cidecd745 apply   #22380000000003bf       -> 979
4227db96d56Sopenharmony_cidecd746 apply   #22380000000003df       -> 799
4237db96d56Sopenharmony_cidecd747 apply   #223800000000006e       -> 888
4247db96d56Sopenharmony_ci
4257db96d56Sopenharmony_ci-- DPD all-highs cases (includes the 24 redundant codes)
4267db96d56Sopenharmony_cidecd750 apply   #223800000000006e       -> 888
4277db96d56Sopenharmony_cidecd751 apply   #223800000000016e       -> 888
4287db96d56Sopenharmony_cidecd752 apply   #223800000000026e       -> 888
4297db96d56Sopenharmony_cidecd753 apply   #223800000000036e       -> 888
4307db96d56Sopenharmony_cidecd754 apply   #223800000000006f       -> 889
4317db96d56Sopenharmony_cidecd755 apply   #223800000000016f       -> 889
4327db96d56Sopenharmony_cidecd756 apply   #223800000000026f       -> 889
4337db96d56Sopenharmony_cidecd757 apply   #223800000000036f       -> 889
4347db96d56Sopenharmony_ci
4357db96d56Sopenharmony_cidecd760 apply   #223800000000007e       -> 898
4367db96d56Sopenharmony_cidecd761 apply   #223800000000017e       -> 898
4377db96d56Sopenharmony_cidecd762 apply   #223800000000027e       -> 898
4387db96d56Sopenharmony_cidecd763 apply   #223800000000037e       -> 898
4397db96d56Sopenharmony_cidecd764 apply   #223800000000007f       -> 899
4407db96d56Sopenharmony_cidecd765 apply   #223800000000017f       -> 899
4417db96d56Sopenharmony_cidecd766 apply   #223800000000027f       -> 899
4427db96d56Sopenharmony_cidecd767 apply   #223800000000037f       -> 899
4437db96d56Sopenharmony_ci
4447db96d56Sopenharmony_cidecd770 apply   #22380000000000ee       -> 988
4457db96d56Sopenharmony_cidecd771 apply   #22380000000001ee       -> 988
4467db96d56Sopenharmony_cidecd772 apply   #22380000000002ee       -> 988
4477db96d56Sopenharmony_cidecd773 apply   #22380000000003ee       -> 988
4487db96d56Sopenharmony_cidecd774 apply   #22380000000000ef       -> 989
4497db96d56Sopenharmony_cidecd775 apply   #22380000000001ef       -> 989
4507db96d56Sopenharmony_cidecd776 apply   #22380000000002ef       -> 989
4517db96d56Sopenharmony_cidecd777 apply   #22380000000003ef       -> 989
4527db96d56Sopenharmony_ci
4537db96d56Sopenharmony_cidecd780 apply   #22380000000000fe       -> 998
4547db96d56Sopenharmony_cidecd781 apply   #22380000000001fe       -> 998
4557db96d56Sopenharmony_cidecd782 apply   #22380000000002fe       -> 998
4567db96d56Sopenharmony_cidecd783 apply   #22380000000003fe       -> 998
4577db96d56Sopenharmony_cidecd784 apply   #22380000000000ff       -> 999
4587db96d56Sopenharmony_cidecd785 apply   #22380000000001ff       -> 999
4597db96d56Sopenharmony_cidecd786 apply   #22380000000002ff       -> 999
4607db96d56Sopenharmony_cidecd787 apply   #22380000000003ff       -> 999
4617db96d56Sopenharmony_ci
4627db96d56Sopenharmony_ci-- values around [u]int32 edges (zeros done earlier)
4637db96d56Sopenharmony_cidecd800 apply -2147483646  -> #a23800008c78af46
4647db96d56Sopenharmony_cidecd801 apply -2147483647  -> #a23800008c78af47
4657db96d56Sopenharmony_cidecd802 apply -2147483648  -> #a23800008c78af48
4667db96d56Sopenharmony_cidecd803 apply -2147483649  -> #a23800008c78af49
4677db96d56Sopenharmony_cidecd804 apply  2147483646  -> #223800008c78af46
4687db96d56Sopenharmony_cidecd805 apply  2147483647  -> #223800008c78af47
4697db96d56Sopenharmony_cidecd806 apply  2147483648  -> #223800008c78af48
4707db96d56Sopenharmony_cidecd807 apply  2147483649  -> #223800008c78af49
4717db96d56Sopenharmony_cidecd808 apply  4294967294  -> #2238000115afb55a
4727db96d56Sopenharmony_cidecd809 apply  4294967295  -> #2238000115afb55b
4737db96d56Sopenharmony_cidecd810 apply  4294967296  -> #2238000115afb57a
4747db96d56Sopenharmony_cidecd811 apply  4294967297  -> #2238000115afb57b
4757db96d56Sopenharmony_ci
4767db96d56Sopenharmony_cidecd820 apply  #a23800008c78af46 -> -2147483646
4777db96d56Sopenharmony_cidecd821 apply  #a23800008c78af47 -> -2147483647
4787db96d56Sopenharmony_cidecd822 apply  #a23800008c78af48 -> -2147483648
4797db96d56Sopenharmony_cidecd823 apply  #a23800008c78af49 -> -2147483649
4807db96d56Sopenharmony_cidecd824 apply  #223800008c78af46 ->  2147483646
4817db96d56Sopenharmony_cidecd825 apply  #223800008c78af47 ->  2147483647
4827db96d56Sopenharmony_cidecd826 apply  #223800008c78af48 ->  2147483648
4837db96d56Sopenharmony_cidecd827 apply  #223800008c78af49 ->  2147483649
4847db96d56Sopenharmony_cidecd828 apply  #2238000115afb55a ->  4294967294
4857db96d56Sopenharmony_cidecd829 apply  #2238000115afb55b ->  4294967295
4867db96d56Sopenharmony_cidecd830 apply  #2238000115afb57a ->  4294967296
4877db96d56Sopenharmony_cidecd831 apply  #2238000115afb57b ->  4294967297
4887db96d56Sopenharmony_ci
4897db96d56Sopenharmony_ci-- for narrowing
4907db96d56Sopenharmony_cidecd840 apply  #2870000000000000 ->  2.000000000000000E-99
4917db96d56Sopenharmony_ci
4927db96d56Sopenharmony_ci-- some miscellaneous
4937db96d56Sopenharmony_cidecd850 apply  #0004070000000000 -> 7.000000000000E-385  Subnormal
4947db96d56Sopenharmony_cidecd851 apply  #0008000000020000 -> 1.00000E-391         Subnormal
4957db96d56Sopenharmony_ci
496