| 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
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 
 | ------------------------------------------------------------------------
-- dqMax.decTest -- decQuad maxnum                                    --
-- 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
-- we assume that base comparison is tested in compare.decTest, so
-- these mainly cover special cases and rounding
extended:    1
clamp:       1
precision:   34
maxExponent: 6144
minExponent: -6143
rounding:    half_even
-- sanity checks
dqmax001 max  -2  -2  -> -2
dqmax002 max  -2  -1  -> -1
dqmax003 max  -2   0  ->  0
dqmax004 max  -2   1  ->  1
dqmax005 max  -2   2  ->  2
dqmax006 max  -1  -2  -> -1
dqmax007 max  -1  -1  -> -1
dqmax008 max  -1   0  ->  0
dqmax009 max  -1   1  ->  1
dqmax010 max  -1   2  ->  2
dqmax011 max   0  -2  ->  0
dqmax012 max   0  -1  ->  0
dqmax013 max   0   0  ->  0
dqmax014 max   0   1  ->  1
dqmax015 max   0   2  ->  2
dqmax016 max   1  -2  ->  1
dqmax017 max   1  -1  ->  1
dqmax018 max   1   0  ->  1
dqmax019 max   1   1  ->  1
dqmax020 max   1   2  ->  2
dqmax021 max   2  -2  ->  2
dqmax022 max   2  -1  ->  2
dqmax023 max   2   0  ->  2
dqmax025 max   2   1  ->  2
dqmax026 max   2   2  ->  2
-- extended zeros
dqmax030 max   0     0   ->  0
dqmax031 max   0    -0   ->  0
dqmax032 max   0    -0.0 ->  0
dqmax033 max   0     0.0 ->  0
dqmax034 max  -0     0   ->  0    -- note: -0 = 0, but 0 chosen
dqmax035 max  -0    -0   -> -0
dqmax036 max  -0    -0.0 -> -0.0
dqmax037 max  -0     0.0 ->  0.0
dqmax038 max   0.0   0   ->  0
dqmax039 max   0.0  -0   ->  0.0
dqmax040 max   0.0  -0.0 ->  0.0
dqmax041 max   0.0   0.0 ->  0.0
dqmax042 max  -0.0   0   ->  0
dqmax043 max  -0.0  -0   -> -0.0
dqmax044 max  -0.0  -0.0 -> -0.0
dqmax045 max  -0.0   0.0 ->  0.0
dqmax050 max  -0E1   0E1 ->  0E+1
dqmax051 max  -0E2   0E2 ->  0E+2
dqmax052 max  -0E2   0E1 ->  0E+1
dqmax053 max  -0E1   0E2 ->  0E+2
dqmax054 max   0E1  -0E1 ->  0E+1
dqmax055 max   0E2  -0E2 ->  0E+2
dqmax056 max   0E2  -0E1 ->  0E+2
dqmax057 max   0E1  -0E2 ->  0E+1
dqmax058 max   0E1   0E1 ->  0E+1
dqmax059 max   0E2   0E2 ->  0E+2
dqmax060 max   0E2   0E1 ->  0E+2
dqmax061 max   0E1   0E2 ->  0E+2
dqmax062 max  -0E1  -0E1 -> -0E+1
dqmax063 max  -0E2  -0E2 -> -0E+2
dqmax064 max  -0E2  -0E1 -> -0E+1
dqmax065 max  -0E1  -0E2 -> -0E+1
-- Specials
dqmax090 max  Inf  -Inf   ->  Infinity
dqmax091 max  Inf  -1000  ->  Infinity
dqmax092 max  Inf  -1     ->  Infinity
dqmax093 max  Inf  -0     ->  Infinity
dqmax094 max  Inf   0     ->  Infinity
dqmax095 max  Inf   1     ->  Infinity
dqmax096 max  Inf   1000  ->  Infinity
dqmax097 max  Inf   Inf   ->  Infinity
dqmax098 max -1000  Inf   ->  Infinity
dqmax099 max -Inf   Inf   ->  Infinity
dqmax100 max -1     Inf   ->  Infinity
dqmax101 max -0     Inf   ->  Infinity
dqmax102 max  0     Inf   ->  Infinity
dqmax103 max  1     Inf   ->  Infinity
dqmax104 max  1000  Inf   ->  Infinity
dqmax105 max  Inf   Inf   ->  Infinity
dqmax120 max -Inf  -Inf   -> -Infinity
dqmax121 max -Inf  -1000  -> -1000
dqmax122 max -Inf  -1     -> -1
dqmax123 max -Inf  -0     -> -0
dqmax124 max -Inf   0     ->  0
dqmax125 max -Inf   1     ->  1
dqmax126 max -Inf   1000  ->  1000
dqmax127 max -Inf   Inf   ->  Infinity
dqmax128 max -Inf  -Inf   ->  -Infinity
dqmax129 max -1000 -Inf   ->  -1000
dqmax130 max -1    -Inf   ->  -1
dqmax131 max -0    -Inf   ->  -0
dqmax132 max  0    -Inf   ->  0
dqmax133 max  1    -Inf   ->  1
dqmax134 max  1000 -Inf   ->  1000
dqmax135 max  Inf  -Inf   ->  Infinity
-- 2004.08.02 754r chooses number over NaN in mixed cases
dqmax141 max  NaN -Inf    -> -Infinity
dqmax142 max  NaN -1000   -> -1000
dqmax143 max  NaN -1      -> -1
dqmax144 max  NaN -0      -> -0
dqmax145 max  NaN  0      ->  0
dqmax146 max  NaN  1      ->  1
dqmax147 max  NaN  1000   ->  1000
dqmax148 max  NaN  Inf    ->  Infinity
dqmax149 max  NaN  NaN    ->  NaN
dqmax150 max -Inf  NaN    -> -Infinity
dqmax151 max -1000 NaN    -> -1000
dqmax152 max -1    NaN    -> -1
dqmax153 max -0    NaN    -> -0
dqmax154 max  0    NaN    ->  0
dqmax155 max  1    NaN    ->  1
dqmax156 max  1000 NaN    ->  1000
dqmax157 max  Inf  NaN    ->  Infinity
dqmax161 max  sNaN -Inf   ->  NaN  Invalid_operation
dqmax162 max  sNaN -1000  ->  NaN  Invalid_operation
dqmax163 max  sNaN -1     ->  NaN  Invalid_operation
dqmax164 max  sNaN -0     ->  NaN  Invalid_operation
dqmax165 max  sNaN  0     ->  NaN  Invalid_operation
dqmax166 max  sNaN  1     ->  NaN  Invalid_operation
dqmax167 max  sNaN  1000  ->  NaN  Invalid_operation
dqmax168 max  sNaN  NaN   ->  NaN  Invalid_operation
dqmax169 max  sNaN sNaN   ->  NaN  Invalid_operation
dqmax170 max  NaN  sNaN   ->  NaN  Invalid_operation
dqmax171 max -Inf  sNaN   ->  NaN  Invalid_operation
dqmax172 max -1000 sNaN   ->  NaN  Invalid_operation
dqmax173 max -1    sNaN   ->  NaN  Invalid_operation
dqmax174 max -0    sNaN   ->  NaN  Invalid_operation
dqmax175 max  0    sNaN   ->  NaN  Invalid_operation
dqmax176 max  1    sNaN   ->  NaN  Invalid_operation
dqmax177 max  1000 sNaN   ->  NaN  Invalid_operation
dqmax178 max  Inf  sNaN   ->  NaN  Invalid_operation
dqmax179 max  NaN  sNaN   ->  NaN  Invalid_operation
-- propagating NaNs
dqmax181 max  NaN9  -Inf   -> -Infinity
dqmax182 max  NaN8     9   ->  9
dqmax183 max -NaN7   Inf   ->  Infinity
dqmax184 max -NaN1   NaN11 -> -NaN1
dqmax185 max  NaN2   NaN12 ->  NaN2
dqmax186 max -NaN13 -NaN7  -> -NaN13
dqmax187 max  NaN14 -NaN5  ->  NaN14
dqmax188 max -Inf    NaN4  -> -Infinity
dqmax189 max -9     -NaN3  -> -9
dqmax190 max  Inf    NaN2  ->  Infinity
dqmax191 max  sNaN99 -Inf    ->  NaN99 Invalid_operation
dqmax192 max  sNaN98 -1      ->  NaN98 Invalid_operation
dqmax193 max -sNaN97  NaN    -> -NaN97 Invalid_operation
dqmax194 max  sNaN96 sNaN94  ->  NaN96 Invalid_operation
dqmax195 max  NaN95  sNaN93  ->  NaN93 Invalid_operation
dqmax196 max -Inf    sNaN92  ->  NaN92 Invalid_operation
dqmax197 max  0      sNaN91  ->  NaN91 Invalid_operation
dqmax198 max  Inf   -sNaN90  -> -NaN90 Invalid_operation
dqmax199 max  NaN    sNaN89  ->  NaN89 Invalid_operation
-- old rounding checks
dqmax221 max 12345678000 1  -> 12345678000
dqmax222 max 1 12345678000  -> 12345678000
dqmax223 max 1234567800  1  -> 1234567800
dqmax224 max 1 1234567800   -> 1234567800
dqmax225 max 1234567890  1  -> 1234567890
dqmax226 max 1 1234567890   -> 1234567890
dqmax227 max 1234567891  1  -> 1234567891
dqmax228 max 1 1234567891   -> 1234567891
dqmax229 max 12345678901 1  -> 12345678901
dqmax230 max 1 12345678901  -> 12345678901
dqmax231 max 1234567896  1  -> 1234567896
dqmax232 max 1 1234567896   -> 1234567896
dqmax233 max -1234567891  1 -> 1
dqmax234 max 1 -1234567891  -> 1
dqmax235 max -12345678901 1 -> 1
dqmax236 max 1 -12345678901 -> 1
dqmax237 max -1234567896  1 -> 1
dqmax238 max 1 -1234567896  -> 1
-- from examples
dqmax280 max '3'   '2'  ->  '3'
dqmax281 max '-10' '3'  ->  '3'
dqmax282 max '1.0' '1'  ->  '1'
dqmax283 max '1' '1.0'  ->  '1'
dqmax284 max '7' 'NaN'  ->  '7'
-- expanded list from min/max 754r purple prose
-- [explicit tests for exponent ordering]
dqmax401 max  Inf    1.1     ->  Infinity
dqmax402 max  1.1    1       ->  1.1
dqmax403 max  1      1.0     ->  1
dqmax404 max  1.0    0.1     ->  1.0
dqmax405 max  0.1    0.10    ->  0.1
dqmax406 max  0.10   0.100   ->  0.10
dqmax407 max  0.10   0       ->  0.10
dqmax408 max  0      0.0     ->  0
dqmax409 max  0.0   -0       ->  0.0
dqmax410 max  0.0   -0.0     ->  0.0
dqmax411 max  0.00  -0.0     ->  0.00
dqmax412 max  0.0   -0.00    ->  0.0
dqmax413 max  0     -0.0     ->  0
dqmax414 max  0     -0       ->  0
dqmax415 max -0.0   -0       -> -0.0
dqmax416 max -0     -0.100   -> -0
dqmax417 max -0.100 -0.10    -> -0.100
dqmax418 max -0.10  -0.1     -> -0.10
dqmax419 max -0.1   -1.0     -> -0.1
dqmax420 max -1.0   -1       -> -1.0
dqmax421 max -1     -1.1     -> -1
dqmax423 max -1.1   -Inf     -> -1.1
-- same with operands reversed
dqmax431 max  1.1    Inf     ->  Infinity
dqmax432 max  1      1.1     ->  1.1
dqmax433 max  1.0    1       ->  1
dqmax434 max  0.1    1.0     ->  1.0
dqmax435 max  0.10   0.1     ->  0.1
dqmax436 max  0.100  0.10    ->  0.10
dqmax437 max  0      0.10    ->  0.10
dqmax438 max  0.0    0       ->  0
dqmax439 max -0      0.0     ->  0.0
dqmax440 max -0.0    0.0     ->  0.0
dqmax441 max -0.0    0.00    ->  0.00
dqmax442 max -0.00   0.0     ->  0.0
dqmax443 max -0.0    0       ->  0
dqmax444 max -0      0       ->  0
dqmax445 max -0     -0.0     -> -0.0
dqmax446 max -0.100 -0       -> -0
dqmax447 max -0.10  -0.100   -> -0.100
dqmax448 max -0.1   -0.10    -> -0.10
dqmax449 max -1.0   -0.1     -> -0.1
dqmax450 max -1     -1.0     -> -1.0
dqmax451 max -1.1   -1       -> -1
dqmax453 max -Inf   -1.1     -> -1.1
-- largies
dqmax460 max  1000   1E+3    ->  1E+3
dqmax461 max  1E+3   1000    ->  1E+3
dqmax462 max  1000  -1E+3    ->  1000
dqmax463 max  1E+3  -1000    ->  1E+3
dqmax464 max -1000   1E+3    ->  1E+3
dqmax465 max -1E+3   1000    ->  1000
dqmax466 max -1000  -1E+3    -> -1000
dqmax467 max -1E+3  -1000    -> -1000
-- misalignment traps for little-endian
dqmax471 max      1.0       0.1  -> 1.0
dqmax472 max      0.1       1.0  -> 1.0
dqmax473 max     10.0       0.1  -> 10.0
dqmax474 max      0.1      10.0  -> 10.0
dqmax475 max      100       1.0  -> 100
dqmax476 max      1.0       100  -> 100
dqmax477 max     1000      10.0  -> 1000
dqmax478 max     10.0      1000  -> 1000
dqmax479 max    10000     100.0  -> 10000
dqmax480 max    100.0     10000  -> 10000
dqmax481 max   100000    1000.0  -> 100000
dqmax482 max   1000.0    100000  -> 100000
dqmax483 max  1000000   10000.0  -> 1000000
dqmax484 max  10000.0   1000000  -> 1000000
-- subnormals
dqmax510 max  1.00E-6143       0  ->   1.00E-6143
dqmax511 max  0.1E-6143        0  ->   1E-6144    Subnormal
dqmax512 max  0.10E-6143       0  ->   1.0E-6144  Subnormal
dqmax513 max  0.100E-6143      0  ->   1.00E-6144 Subnormal
dqmax514 max  0.01E-6143       0  ->   1E-6145    Subnormal
dqmax515 max  0.999E-6143      0  ->   9.99E-6144 Subnormal
dqmax516 max  0.099E-6143      0  ->   9.9E-6145  Subnormal
dqmax517 max  0.009E-6143      0  ->   9E-6146    Subnormal
dqmax518 max  0.001E-6143      0  ->   1E-6146    Subnormal
dqmax519 max  0.0009E-6143     0  ->   9E-6147    Subnormal
dqmax520 max  0.0001E-6143     0  ->   1E-6147    Subnormal
dqmax530 max -1.00E-6143       0  ->   0
dqmax531 max -0.1E-6143        0  ->   0
dqmax532 max -0.10E-6143       0  ->   0
dqmax533 max -0.100E-6143      0  ->   0
dqmax534 max -0.01E-6143       0  ->   0
dqmax535 max -0.999E-6143      0  ->   0
dqmax536 max -0.099E-6143      0  ->   0
dqmax537 max -0.009E-6143      0  ->   0
dqmax538 max -0.001E-6143      0  ->   0
dqmax539 max -0.0009E-6143     0  ->   0
dqmax540 max -0.0001E-6143     0  ->   0
-- Null tests
dqmax900 max 10  #  -> NaN Invalid_operation
dqmax901 max  # 10  -> NaN Invalid_operation
 |