| 12
 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
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 
 | ------------------------------------------------------------------------
-- minus.decTest -- decimal negation                                  --
-- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases"     --
-- at http://www2.hursley.ibm.com/decimal for the description of      --
-- these testcases.                                                   --
--                                                                    --
-- These testcases are experimental ('beta' versions), and they       --
-- may contain errors.  They are offered on an as-is basis.  In       --
-- particular, achieving the same results as the tests here is not    --
-- a guarantee that an implementation complies with any Standard      --
-- or specification.  The tests are not exhaustive.                   --
--                                                                    --
-- Please send comments, suggestions, and corrections to the author:  --
--   Mike Cowlishaw, IBM Fellow                                       --
--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
--   mfc@uk.ibm.com                                                   --
------------------------------------------------------------------------
version: 2.59
-- This set of tests primarily tests the existence of the operator.
-- Subtraction, rounding, and more overflows are tested elsewhere.
extended:    1
precision:   9
rounding:    half_up
maxExponent: 384
minexponent: -383
minx001 minus '1'      -> '-1'
minx002 minus '-1'     -> '1'
minx003 minus '1.00'   -> '-1.00'
minx004 minus '-1.00'  -> '1.00'
minx005 minus '0'      -> '0'
minx006 minus '0.00'   -> '0.00'
minx007 minus '00.0'   -> '0.0'
minx008 minus '00.00'  -> '0.00'
minx009 minus '00'     -> '0'
minx010 minus '-2'     -> '2'
minx011 minus '2'      -> '-2'
minx012 minus '-2.00'  -> '2.00'
minx013 minus '2.00'   -> '-2.00'
minx014 minus '-0'     -> '0'
minx015 minus '-0.00'  -> '0.00'
minx016 minus '-00.0'  -> '0.0'
minx017 minus '-00.00' -> '0.00'
minx018 minus '-00'    -> '0'
-- "lhs" zeros in plus and minus have exponent = operand
minx020 minus '-0E3'   -> '0E+3'
minx021 minus '-0E2'   -> '0E+2'
minx022 minus '-0E1'   -> '0E+1'
minx023 minus '-0E0'   -> '0'
minx024 minus '+0E0'   -> '0'
minx025 minus '+0E1'   -> '0E+1'
minx026 minus '+0E2'   -> '0E+2'
minx027 minus '+0E3'   -> '0E+3'
minx030 minus '-5E3'   -> '5E+3'
minx031 minus '-5E8'   -> '5E+8'
minx032 minus '-5E13'  -> '5E+13'
minx033 minus '-5E18'  -> '5E+18'
minx034 minus '+5E3'   -> '-5E+3'
minx035 minus '+5E8'   -> '-5E+8'
minx036 minus '+5E13'  -> '-5E+13'
minx037 minus '+5E18'  -> '-5E+18'
minx050 minus '-2000000' -> '2000000'
minx051 minus '2000000'  -> '-2000000'
precision: 7
minx052 minus '-2000000' -> '2000000'
minx053 minus '2000000'  -> '-2000000'
precision: 6
minx054 minus '-2000000' -> '2.00000E+6' Rounded
minx055 minus '2000000'  -> '-2.00000E+6' Rounded
precision: 3
minx056 minus '-2000000' -> '2.00E+6' Rounded
minx057 minus '2000000'  -> '-2.00E+6' Rounded
-- more fixed, potential LHS swaps/overlays if done by 0 subtract x
precision: 9
minx060 minus '56267E-10'   -> '-0.0000056267'
minx061 minus '56267E-5'    -> '-0.56267'
minx062 minus '56267E-2'    -> '-562.67'
minx063 minus '56267E-1'    -> '-5626.7'
minx065 minus '56267E-0'    -> '-56267'
minx066 minus '56267E+0'    -> '-56267'
minx067 minus '56267E+1'    -> '-5.6267E+5'
minx068 minus '56267E+2'    -> '-5.6267E+6'
minx069 minus '56267E+3'    -> '-5.6267E+7'
minx070 minus '56267E+4'    -> '-5.6267E+8'
minx071 minus '56267E+5'    -> '-5.6267E+9'
minx072 minus '56267E+6'    -> '-5.6267E+10'
minx080 minus '-56267E-10'  -> '0.0000056267'
minx081 minus '-56267E-5'   -> '0.56267'
minx082 minus '-56267E-2'   -> '562.67'
minx083 minus '-56267E-1'   -> '5626.7'
minx085 minus '-56267E-0'   -> '56267'
minx086 minus '-56267E+0'   -> '56267'
minx087 minus '-56267E+1'   -> '5.6267E+5'
minx088 minus '-56267E+2'   -> '5.6267E+6'
minx089 minus '-56267E+3'   -> '5.6267E+7'
minx090 minus '-56267E+4'   -> '5.6267E+8'
minx091 minus '-56267E+5'   -> '5.6267E+9'
minx092 minus '-56267E+6'   -> '5.6267E+10'
-- overflow tests
maxexponent: 999999999
minexponent: -999999999
precision: 3
minx100 minus 9.999E+999999999  -> -Infinity Inexact Overflow Rounded
minx101 minus -9.999E+999999999 ->  Infinity Inexact Overflow Rounded
-- subnormals and underflow
precision: 3
maxexponent: 999
minexponent: -999
minx110 minus  1.00E-999        ->  -1.00E-999
minx111 minus  0.1E-999         ->  -1E-1000   Subnormal
minx112 minus  0.10E-999        ->  -1.0E-1000 Subnormal
minx113 minus  0.100E-999       ->  -1.0E-1000 Subnormal Rounded
minx114 minus  0.01E-999        ->  -1E-1001   Subnormal
-- next is rounded to Emin
minx115 minus  0.999E-999       ->  -1.00E-999 Inexact Rounded Subnormal Underflow
minx116 minus  0.099E-999       ->  -1.0E-1000 Inexact Rounded Subnormal Underflow
minx117 minus  0.009E-999       ->  -1E-1001   Inexact Rounded Subnormal Underflow
minx118 minus  0.001E-999       ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
minx119 minus  0.0009E-999      ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
minx120 minus  0.0001E-999      ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
minx130 minus -1.00E-999        ->   1.00E-999
minx131 minus -0.1E-999         ->   1E-1000   Subnormal
minx132 minus -0.10E-999        ->   1.0E-1000 Subnormal
minx133 minus -0.100E-999       ->   1.0E-1000 Subnormal Rounded
minx134 minus -0.01E-999        ->   1E-1001   Subnormal
-- next is rounded to Emin
minx135 minus -0.999E-999       ->   1.00E-999 Inexact Rounded Subnormal Underflow
minx136 minus -0.099E-999       ->   1.0E-1000 Inexact Rounded Subnormal Underflow
minx137 minus -0.009E-999       ->   1E-1001   Inexact Rounded Subnormal Underflow
minx138 minus -0.001E-999       ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
minx139 minus -0.0009E-999      ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
minx140 minus -0.0001E-999      ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
-- long operand checks
maxexponent: 999
minexponent: -999
precision: 9
minx301 minus 12345678000  -> -1.23456780E+10 Rounded
minx302 minus 1234567800   -> -1.23456780E+9 Rounded
minx303 minus 1234567890   -> -1.23456789E+9 Rounded
minx304 minus 1234567891   -> -1.23456789E+9 Inexact Rounded
minx305 minus 12345678901  -> -1.23456789E+10 Inexact Rounded
minx306 minus 1234567896   -> -1.23456790E+9 Inexact Rounded
precision: 15
-- still checking
minx321 minus 12345678000  -> -12345678000
minx322 minus 1234567800   -> -1234567800
minx323 minus 1234567890   -> -1234567890
minx324 minus 1234567891   -> -1234567891
minx325 minus 12345678901  -> -12345678901
minx326 minus 1234567896   -> -1234567896
-- specials
minx420 minus 'Inf'    -> '-Infinity'
minx421 minus '-Inf'   -> 'Infinity'
minx422 minus   NaN    ->  NaN
minx423 minus  sNaN    ->  NaN    Invalid_operation
minx424 minus   NaN255 ->  NaN255
minx425 minus  sNaN256 ->  NaN256 Invalid_operation
minx426 minus  -NaN    -> -NaN
minx427 minus -sNaN    -> -NaN    Invalid_operation
minx428 minus  -NaN255 -> -NaN255
minx429 minus -sNaN256 -> -NaN256 Invalid_operation
-- Null tests
minx900 minus  # -> NaN Invalid_operation
 |