+++ /dev/null
-------------------------------------------------------------------------\r
--- clamp.decTest -- clamped exponent tests (format-independent) --\r
--- Copyright (c) IBM Corporation, 2000, 2008. All rights reserved. --\r
-------------------------------------------------------------------------\r
--- Please see the document "General Decimal Arithmetic Testcases" --\r
--- at http://www2.hursley.ibm.com/decimal for the description of --\r
--- these testcases. --\r
--- --\r
--- These testcases are experimental ('beta' versions), and they --\r
--- may contain errors. They are offered on an as-is basis. In --\r
--- particular, achieving the same results as the tests here is not --\r
--- a guarantee that an implementation complies with any Standard --\r
--- or specification. The tests are not exhaustive. --\r
--- --\r
--- Please send comments, suggestions, and corrections to the author: --\r
--- Mike Cowlishaw, IBM Fellow --\r
--- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --\r
--- mfc@uk.ibm.com --\r
-------------------------------------------------------------------------\r
-version: 2.59\r
-\r
--- This set of tests uses the same limits as the 8-byte concrete\r
--- representation, but applies clamping without using format-specific\r
--- conversions.\r
-\r
-extended: 1\r
-precision: 16\r
-rounding: half_even\r
-maxExponent: 384\r
-minExponent: -383\r
-clamp: 1\r
-\r
--- General testcases\r
-\r
--- Normality\r
-clam010 apply 1234567890123456 -> 1234567890123456\r
-clam011 apply 1234567890123456.0 -> 1234567890123456 Rounded\r
-clam012 apply 1234567890123456.1 -> 1234567890123456 Rounded Inexact\r
-clam013 apply -1234567890123456 -> -1234567890123456\r
-clam014 apply -1234567890123456.0 -> -1234567890123456 Rounded\r
-clam015 apply -1234567890123456.1 -> -1234567890123456 Rounded Inexact\r
-\r
-\r
--- Nmax and similar\r
-clam022 apply 9.999999999999999E+384 -> 9.999999999999999E+384\r
-clam024 apply 1.234567890123456E+384 -> 1.234567890123456E+384\r
--- fold-downs (more below)\r
-clam030 apply 1.23E+384 -> 1.230000000000000E+384 Clamped\r
-clam032 apply 1E+384 -> 1.000000000000000E+384 Clamped\r
-\r
-clam051 apply 12345 -> 12345\r
-clam053 apply 1234 -> 1234\r
-clam055 apply 123 -> 123\r
-clam057 apply 12 -> 12\r
-clam059 apply 1 -> 1\r
-clam061 apply 1.23 -> 1.23\r
-clam063 apply 123.45 -> 123.45\r
-\r
--- Nmin and below\r
-clam071 apply 1E-383 -> 1E-383\r
-clam073 apply 1.000000000000000E-383 -> 1.000000000000000E-383\r
-clam075 apply 1.000000000000001E-383 -> 1.000000000000001E-383\r
-\r
-clam077 apply 0.100000000000000E-383 -> 1.00000000000000E-384 Subnormal\r
-clam079 apply 0.000000000000010E-383 -> 1.0E-397 Subnormal\r
-clam081 apply 0.00000000000001E-383 -> 1E-397 Subnormal\r
-clam083 apply 0.000000000000001E-383 -> 1E-398 Subnormal\r
-\r
--- underflows\r
-clam090 apply 1e-398 -> #0000000000000001 Subnormal\r
-clam091 apply 1.9e-398 -> #0000000000000002 Subnormal Underflow Inexact Rounded\r
-clam092 apply 1.1e-398 -> #0000000000000001 Subnormal Underflow Inexact Rounded\r
-clam093 apply 1.00000000001e-398 -> #0000000000000001 Subnormal Underflow Inexact Rounded\r
-clam094 apply 1.00000000000001e-398 -> #0000000000000001 Subnormal Underflow Inexact Rounded\r
-clam095 apply 1.000000000000001e-398 -> #0000000000000001 Subnormal Underflow Inexact Rounded\r
-clam096 apply 0.1e-398 -> #0000000000000000 Subnormal Underflow Inexact Rounded Clamped\r
-clam097 apply 0.00000000001e-398 -> #0000000000000000 Subnormal Underflow Inexact Rounded Clamped\r
-clam098 apply 0.00000000000001e-398 -> #0000000000000000 Subnormal Underflow Inexact Rounded Clamped\r
-clam099 apply 0.000000000000001e-398 -> #0000000000000000 Subnormal Underflow Inexact Rounded Clamped\r
-\r
--- Same again, negatives\r
--- Nmax and similar\r
-clam122 apply -9.999999999999999E+384 -> -9.999999999999999E+384\r
-clam124 apply -1.234567890123456E+384 -> -1.234567890123456E+384\r
--- fold-downs (more below)\r
-clam130 apply -1.23E+384 -> -1.230000000000000E+384 Clamped\r
-clam132 apply -1E+384 -> -1.000000000000000E+384 Clamped\r
-\r
-clam151 apply -12345 -> -12345\r
-clam153 apply -1234 -> -1234\r
-clam155 apply -123 -> -123\r
-clam157 apply -12 -> -12\r
-clam159 apply -1 -> -1\r
-clam161 apply -1.23 -> -1.23\r
-clam163 apply -123.45 -> -123.45\r
-\r
--- Nmin and below\r
-clam171 apply -1E-383 -> -1E-383\r
-clam173 apply -1.000000000000000E-383 -> -1.000000000000000E-383\r
-clam175 apply -1.000000000000001E-383 -> -1.000000000000001E-383\r
-\r
-clam177 apply -0.100000000000000E-383 -> -1.00000000000000E-384 Subnormal\r
-clam179 apply -0.000000000000010E-383 -> -1.0E-397 Subnormal\r
-clam181 apply -0.00000000000001E-383 -> -1E-397 Subnormal\r
-clam183 apply -0.000000000000001E-383 -> -1E-398 Subnormal\r
-\r
--- underflows\r
-clam189 apply -1e-398 -> #8000000000000001 Subnormal\r
-clam190 apply -1.0e-398 -> #8000000000000001 Subnormal Rounded\r
-clam191 apply -1.9e-398 -> #8000000000000002 Subnormal Underflow Inexact Rounded\r
-clam192 apply -1.1e-398 -> #8000000000000001 Subnormal Underflow Inexact Rounded\r
-clam193 apply -1.00000000001e-398 -> #8000000000000001 Subnormal Underflow Inexact Rounded\r
-clam194 apply -1.00000000000001e-398 -> #8000000000000001 Subnormal Underflow Inexact Rounded\r
-clam195 apply -1.000000000000001e-398 -> #8000000000000001 Subnormal Underflow Inexact Rounded\r
-clam196 apply -0.1e-398 -> #8000000000000000 Subnormal Underflow Inexact Rounded Clamped\r
-clam197 apply -0.00000000001e-398 -> #8000000000000000 Subnormal Underflow Inexact Rounded Clamped\r
-clam198 apply -0.00000000000001e-398 -> #8000000000000000 Subnormal Underflow Inexact Rounded Clamped\r
-clam199 apply -0.000000000000001e-398 -> #8000000000000000 Subnormal Underflow Inexact Rounded Clamped\r
-\r
--- zeros\r
-clam401 apply 0E-500 -> 0E-398 Clamped\r
-clam402 apply 0E-400 -> 0E-398 Clamped\r
-clam403 apply 0E-398 -> 0E-398\r
-clam404 apply 0.000000000000000E-383 -> 0E-398\r
-clam405 apply 0E-2 -> 0.00\r
-clam406 apply 0 -> 0\r
-clam407 apply 0E+3 -> 0E+3\r
-clam408 apply 0E+369 -> 0E+369\r
--- clamped zeros...\r
-clam410 apply 0E+370 -> 0E+369 Clamped\r
-clam411 apply 0E+384 -> 0E+369 Clamped\r
-clam412 apply 0E+400 -> 0E+369 Clamped\r
-clam413 apply 0E+500 -> 0E+369 Clamped\r
-\r
--- negative zeros\r
-clam420 apply -0E-500 -> -0E-398 Clamped\r
-clam421 apply -0E-400 -> -0E-398 Clamped\r
-clam422 apply -0E-398 -> -0E-398\r
-clam423 apply -0.000000000000000E-383 -> -0E-398\r
-clam424 apply -0E-2 -> -0.00\r
-clam425 apply -0 -> -0\r
-clam426 apply -0E+3 -> -0E+3\r
-clam427 apply -0E+369 -> -0E+369\r
--- clamped zeros...\r
-clam431 apply -0E+370 -> -0E+369 Clamped\r
-clam432 apply -0E+384 -> -0E+369 Clamped\r
-clam433 apply -0E+400 -> -0E+369 Clamped\r
-clam434 apply -0E+500 -> -0E+369 Clamped\r
-\r
--- fold-down full sequence\r
-clam601 apply 1E+384 -> 1.000000000000000E+384 Clamped\r
-clam603 apply 1E+383 -> 1.00000000000000E+383 Clamped\r
-clam605 apply 1E+382 -> 1.0000000000000E+382 Clamped\r
-clam607 apply 1E+381 -> 1.000000000000E+381 Clamped\r
-clam609 apply 1E+380 -> 1.00000000000E+380 Clamped\r
-clam611 apply 1E+379 -> 1.0000000000E+379 Clamped\r
-clam613 apply 1E+378 -> 1.000000000E+378 Clamped\r
-clam615 apply 1E+377 -> 1.00000000E+377 Clamped\r
-clam617 apply 1E+376 -> 1.0000000E+376 Clamped\r
-clam619 apply 1E+375 -> 1.000000E+375 Clamped\r
-clam621 apply 1E+374 -> 1.00000E+374 Clamped\r
-clam623 apply 1E+373 -> 1.0000E+373 Clamped\r
-clam625 apply 1E+372 -> 1.000E+372 Clamped\r
-clam627 apply 1E+371 -> 1.00E+371 Clamped\r
-clam629 apply 1E+370 -> 1.0E+370 Clamped\r
-clam631 apply 1E+369 -> 1E+369\r
-clam633 apply 1E+368 -> 1E+368\r
--- same with 9s\r
-clam641 apply 9E+384 -> 9.000000000000000E+384 Clamped\r
-clam643 apply 9E+383 -> 9.00000000000000E+383 Clamped\r
-clam645 apply 9E+382 -> 9.0000000000000E+382 Clamped\r
-clam647 apply 9E+381 -> 9.000000000000E+381 Clamped\r
-clam649 apply 9E+380 -> 9.00000000000E+380 Clamped\r
-clam651 apply 9E+379 -> 9.0000000000E+379 Clamped\r
-clam653 apply 9E+378 -> 9.000000000E+378 Clamped\r
-clam655 apply 9E+377 -> 9.00000000E+377 Clamped\r
-clam657 apply 9E+376 -> 9.0000000E+376 Clamped\r
-clam659 apply 9E+375 -> 9.000000E+375 Clamped\r
-clam661 apply 9E+374 -> 9.00000E+374 Clamped\r
-clam663 apply 9E+373 -> 9.0000E+373 Clamped\r
-clam665 apply 9E+372 -> 9.000E+372 Clamped\r
-clam667 apply 9E+371 -> 9.00E+371 Clamped\r
-clam669 apply 9E+370 -> 9.0E+370 Clamped\r
-clam671 apply 9E+369 -> 9E+369\r
-clam673 apply 9E+368 -> 9E+368\r
-\r
--- subnormals clamped to 0-Etiny\r
-precision: 16\r
-maxExponent: 384\r
-minExponent: -383\r
-clam681 apply 7E-398 -> 7E-398 Subnormal\r
-clam682 apply 0E-398 -> 0E-398\r
-clam683 apply 7E-399 -> 1E-398 Subnormal Underflow Inexact Rounded\r
-clam684 apply 4E-399 -> 0E-398 Clamped Subnormal Underflow Inexact Rounded\r
-clam685 apply 7E-400 -> 0E-398 Clamped Subnormal Underflow Inexact Rounded\r
-clam686 apply 7E-401 -> 0E-398 Clamped Subnormal Underflow Inexact Rounded\r
-clam687 apply 0E-399 -> 0E-398 Clamped\r
-clam688 apply 0E-400 -> 0E-398 Clamped\r
-clam689 apply 0E-401 -> 0E-398 Clamped\r
-\r
--- example from documentation\r
-precision: 7\r
-rounding: half_even\r
-maxExponent: +96\r
-minExponent: -95\r
-\r
-clamp: 0\r
-clam700 apply 1.23E+96 -> 1.23E+96\r
-\r
-clamp: 1\r
-clam701 apply 1.23E+96 -> 1.230000E+96 Clamped\r