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