17db96d56Sopenharmony_ci------------------------------------------------------------------------
27db96d56Sopenharmony_ci-- minus.decTest -- decimal negation                                  --
37db96d56Sopenharmony_ci-- Copyright (c) IBM Corporation, 1981, 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_civersion: 2.59
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_ci-- This set of tests primarily tests the existence of the operator.
237db96d56Sopenharmony_ci-- Subtraction, rounding, and more overflows are tested elsewhere.
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ciextended:    1
267db96d56Sopenharmony_ciprecision:   9
277db96d56Sopenharmony_cirounding:    half_up
287db96d56Sopenharmony_cimaxExponent: 384
297db96d56Sopenharmony_ciminexponent: -383
307db96d56Sopenharmony_ci
317db96d56Sopenharmony_ciminx001 minus '1'      -> '-1'
327db96d56Sopenharmony_ciminx002 minus '-1'     -> '1'
337db96d56Sopenharmony_ciminx003 minus '1.00'   -> '-1.00'
347db96d56Sopenharmony_ciminx004 minus '-1.00'  -> '1.00'
357db96d56Sopenharmony_ciminx005 minus '0'      -> '0'
367db96d56Sopenharmony_ciminx006 minus '0.00'   -> '0.00'
377db96d56Sopenharmony_ciminx007 minus '00.0'   -> '0.0'
387db96d56Sopenharmony_ciminx008 minus '00.00'  -> '0.00'
397db96d56Sopenharmony_ciminx009 minus '00'     -> '0'
407db96d56Sopenharmony_ci
417db96d56Sopenharmony_ciminx010 minus '-2'     -> '2'
427db96d56Sopenharmony_ciminx011 minus '2'      -> '-2'
437db96d56Sopenharmony_ciminx012 minus '-2.00'  -> '2.00'
447db96d56Sopenharmony_ciminx013 minus '2.00'   -> '-2.00'
457db96d56Sopenharmony_ciminx014 minus '-0'     -> '0'
467db96d56Sopenharmony_ciminx015 minus '-0.00'  -> '0.00'
477db96d56Sopenharmony_ciminx016 minus '-00.0'  -> '0.0'
487db96d56Sopenharmony_ciminx017 minus '-00.00' -> '0.00'
497db96d56Sopenharmony_ciminx018 minus '-00'    -> '0'
507db96d56Sopenharmony_ci
517db96d56Sopenharmony_ci-- "lhs" zeros in plus and minus have exponent = operand
527db96d56Sopenharmony_ciminx020 minus '-0E3'   -> '0E+3'
537db96d56Sopenharmony_ciminx021 minus '-0E2'   -> '0E+2'
547db96d56Sopenharmony_ciminx022 minus '-0E1'   -> '0E+1'
557db96d56Sopenharmony_ciminx023 minus '-0E0'   -> '0'
567db96d56Sopenharmony_ciminx024 minus '+0E0'   -> '0'
577db96d56Sopenharmony_ciminx025 minus '+0E1'   -> '0E+1'
587db96d56Sopenharmony_ciminx026 minus '+0E2'   -> '0E+2'
597db96d56Sopenharmony_ciminx027 minus '+0E3'   -> '0E+3'
607db96d56Sopenharmony_ci
617db96d56Sopenharmony_ciminx030 minus '-5E3'   -> '5E+3'
627db96d56Sopenharmony_ciminx031 minus '-5E8'   -> '5E+8'
637db96d56Sopenharmony_ciminx032 minus '-5E13'  -> '5E+13'
647db96d56Sopenharmony_ciminx033 minus '-5E18'  -> '5E+18'
657db96d56Sopenharmony_ciminx034 minus '+5E3'   -> '-5E+3'
667db96d56Sopenharmony_ciminx035 minus '+5E8'   -> '-5E+8'
677db96d56Sopenharmony_ciminx036 minus '+5E13'  -> '-5E+13'
687db96d56Sopenharmony_ciminx037 minus '+5E18'  -> '-5E+18'
697db96d56Sopenharmony_ci
707db96d56Sopenharmony_ciminx050 minus '-2000000' -> '2000000'
717db96d56Sopenharmony_ciminx051 minus '2000000'  -> '-2000000'
727db96d56Sopenharmony_ciprecision: 7
737db96d56Sopenharmony_ciminx052 minus '-2000000' -> '2000000'
747db96d56Sopenharmony_ciminx053 minus '2000000'  -> '-2000000'
757db96d56Sopenharmony_ciprecision: 6
767db96d56Sopenharmony_ciminx054 minus '-2000000' -> '2.00000E+6' Rounded
777db96d56Sopenharmony_ciminx055 minus '2000000'  -> '-2.00000E+6' Rounded
787db96d56Sopenharmony_ciprecision: 3
797db96d56Sopenharmony_ciminx056 minus '-2000000' -> '2.00E+6' Rounded
807db96d56Sopenharmony_ciminx057 minus '2000000'  -> '-2.00E+6' Rounded
817db96d56Sopenharmony_ci
827db96d56Sopenharmony_ci-- more fixed, potential LHS swaps/overlays if done by 0 subtract x
837db96d56Sopenharmony_ciprecision: 9
847db96d56Sopenharmony_ciminx060 minus '56267E-10'   -> '-0.0000056267'
857db96d56Sopenharmony_ciminx061 minus '56267E-5'    -> '-0.56267'
867db96d56Sopenharmony_ciminx062 minus '56267E-2'    -> '-562.67'
877db96d56Sopenharmony_ciminx063 minus '56267E-1'    -> '-5626.7'
887db96d56Sopenharmony_ciminx065 minus '56267E-0'    -> '-56267'
897db96d56Sopenharmony_ciminx066 minus '56267E+0'    -> '-56267'
907db96d56Sopenharmony_ciminx067 minus '56267E+1'    -> '-5.6267E+5'
917db96d56Sopenharmony_ciminx068 minus '56267E+2'    -> '-5.6267E+6'
927db96d56Sopenharmony_ciminx069 minus '56267E+3'    -> '-5.6267E+7'
937db96d56Sopenharmony_ciminx070 minus '56267E+4'    -> '-5.6267E+8'
947db96d56Sopenharmony_ciminx071 minus '56267E+5'    -> '-5.6267E+9'
957db96d56Sopenharmony_ciminx072 minus '56267E+6'    -> '-5.6267E+10'
967db96d56Sopenharmony_ciminx080 minus '-56267E-10'  -> '0.0000056267'
977db96d56Sopenharmony_ciminx081 minus '-56267E-5'   -> '0.56267'
987db96d56Sopenharmony_ciminx082 minus '-56267E-2'   -> '562.67'
997db96d56Sopenharmony_ciminx083 minus '-56267E-1'   -> '5626.7'
1007db96d56Sopenharmony_ciminx085 minus '-56267E-0'   -> '56267'
1017db96d56Sopenharmony_ciminx086 minus '-56267E+0'   -> '56267'
1027db96d56Sopenharmony_ciminx087 minus '-56267E+1'   -> '5.6267E+5'
1037db96d56Sopenharmony_ciminx088 minus '-56267E+2'   -> '5.6267E+6'
1047db96d56Sopenharmony_ciminx089 minus '-56267E+3'   -> '5.6267E+7'
1057db96d56Sopenharmony_ciminx090 minus '-56267E+4'   -> '5.6267E+8'
1067db96d56Sopenharmony_ciminx091 minus '-56267E+5'   -> '5.6267E+9'
1077db96d56Sopenharmony_ciminx092 minus '-56267E+6'   -> '5.6267E+10'
1087db96d56Sopenharmony_ci
1097db96d56Sopenharmony_ci
1107db96d56Sopenharmony_ci-- overflow tests
1117db96d56Sopenharmony_cimaxexponent: 999999999
1127db96d56Sopenharmony_ciminexponent: -999999999
1137db96d56Sopenharmony_ciprecision: 3
1147db96d56Sopenharmony_ciminx100 minus 9.999E+999999999  -> -Infinity Inexact Overflow Rounded
1157db96d56Sopenharmony_ciminx101 minus -9.999E+999999999 ->  Infinity Inexact Overflow Rounded
1167db96d56Sopenharmony_ci
1177db96d56Sopenharmony_ci-- subnormals and underflow
1187db96d56Sopenharmony_ciprecision: 3
1197db96d56Sopenharmony_cimaxexponent: 999
1207db96d56Sopenharmony_ciminexponent: -999
1217db96d56Sopenharmony_ciminx110 minus  1.00E-999        ->  -1.00E-999
1227db96d56Sopenharmony_ciminx111 minus  0.1E-999         ->  -1E-1000   Subnormal
1237db96d56Sopenharmony_ciminx112 minus  0.10E-999        ->  -1.0E-1000 Subnormal
1247db96d56Sopenharmony_ciminx113 minus  0.100E-999       ->  -1.0E-1000 Subnormal Rounded
1257db96d56Sopenharmony_ciminx114 minus  0.01E-999        ->  -1E-1001   Subnormal
1267db96d56Sopenharmony_ci-- next is rounded to Emin
1277db96d56Sopenharmony_ciminx115 minus  0.999E-999       ->  -1.00E-999 Inexact Rounded Subnormal Underflow
1287db96d56Sopenharmony_ciminx116 minus  0.099E-999       ->  -1.0E-1000 Inexact Rounded Subnormal Underflow
1297db96d56Sopenharmony_ciminx117 minus  0.009E-999       ->  -1E-1001   Inexact Rounded Subnormal Underflow
1307db96d56Sopenharmony_ciminx118 minus  0.001E-999       ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
1317db96d56Sopenharmony_ciminx119 minus  0.0009E-999      ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
1327db96d56Sopenharmony_ciminx120 minus  0.0001E-999      ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
1337db96d56Sopenharmony_ci
1347db96d56Sopenharmony_ciminx130 minus -1.00E-999        ->   1.00E-999
1357db96d56Sopenharmony_ciminx131 minus -0.1E-999         ->   1E-1000   Subnormal
1367db96d56Sopenharmony_ciminx132 minus -0.10E-999        ->   1.0E-1000 Subnormal
1377db96d56Sopenharmony_ciminx133 minus -0.100E-999       ->   1.0E-1000 Subnormal Rounded
1387db96d56Sopenharmony_ciminx134 minus -0.01E-999        ->   1E-1001   Subnormal
1397db96d56Sopenharmony_ci-- next is rounded to Emin
1407db96d56Sopenharmony_ciminx135 minus -0.999E-999       ->   1.00E-999 Inexact Rounded Subnormal Underflow
1417db96d56Sopenharmony_ciminx136 minus -0.099E-999       ->   1.0E-1000 Inexact Rounded Subnormal Underflow
1427db96d56Sopenharmony_ciminx137 minus -0.009E-999       ->   1E-1001   Inexact Rounded Subnormal Underflow
1437db96d56Sopenharmony_ciminx138 minus -0.001E-999       ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
1447db96d56Sopenharmony_ciminx139 minus -0.0009E-999      ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
1457db96d56Sopenharmony_ciminx140 minus -0.0001E-999      ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
1467db96d56Sopenharmony_ci
1477db96d56Sopenharmony_ci
1487db96d56Sopenharmony_ci-- long operand checks
1497db96d56Sopenharmony_cimaxexponent: 999
1507db96d56Sopenharmony_ciminexponent: -999
1517db96d56Sopenharmony_ciprecision: 9
1527db96d56Sopenharmony_ciminx301 minus 12345678000  -> -1.23456780E+10 Rounded
1537db96d56Sopenharmony_ciminx302 minus 1234567800   -> -1.23456780E+9 Rounded
1547db96d56Sopenharmony_ciminx303 minus 1234567890   -> -1.23456789E+9 Rounded
1557db96d56Sopenharmony_ciminx304 minus 1234567891   -> -1.23456789E+9 Inexact Rounded
1567db96d56Sopenharmony_ciminx305 minus 12345678901  -> -1.23456789E+10 Inexact Rounded
1577db96d56Sopenharmony_ciminx306 minus 1234567896   -> -1.23456790E+9 Inexact Rounded
1587db96d56Sopenharmony_ci
1597db96d56Sopenharmony_ciprecision: 15
1607db96d56Sopenharmony_ci-- still checking
1617db96d56Sopenharmony_ciminx321 minus 12345678000  -> -12345678000
1627db96d56Sopenharmony_ciminx322 minus 1234567800   -> -1234567800
1637db96d56Sopenharmony_ciminx323 minus 1234567890   -> -1234567890
1647db96d56Sopenharmony_ciminx324 minus 1234567891   -> -1234567891
1657db96d56Sopenharmony_ciminx325 minus 12345678901  -> -12345678901
1667db96d56Sopenharmony_ciminx326 minus 1234567896   -> -1234567896
1677db96d56Sopenharmony_ci
1687db96d56Sopenharmony_ci-- specials
1697db96d56Sopenharmony_ciminx420 minus 'Inf'    -> '-Infinity'
1707db96d56Sopenharmony_ciminx421 minus '-Inf'   -> 'Infinity'
1717db96d56Sopenharmony_ciminx422 minus   NaN    ->  NaN
1727db96d56Sopenharmony_ciminx423 minus  sNaN    ->  NaN    Invalid_operation
1737db96d56Sopenharmony_ciminx424 minus   NaN255 ->  NaN255
1747db96d56Sopenharmony_ciminx425 minus  sNaN256 ->  NaN256 Invalid_operation
1757db96d56Sopenharmony_ciminx426 minus  -NaN    -> -NaN
1767db96d56Sopenharmony_ciminx427 minus -sNaN    -> -NaN    Invalid_operation
1777db96d56Sopenharmony_ciminx428 minus  -NaN255 -> -NaN255
1787db96d56Sopenharmony_ciminx429 minus -sNaN256 -> -NaN256 Invalid_operation
1797db96d56Sopenharmony_ci
1807db96d56Sopenharmony_ci-- Null tests
1817db96d56Sopenharmony_ciminx900 minus  # -> NaN Invalid_operation
1827db96d56Sopenharmony_ci
183