diff options
Diffstat (limited to 'Lib/test/decimaltestdata/clamp.decTest')
-rw-r--r-- | Lib/test/decimaltestdata/clamp.decTest | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/Lib/test/decimaltestdata/clamp.decTest b/Lib/test/decimaltestdata/clamp.decTest new file mode 100644 index 0000000..fafe708 --- /dev/null +++ b/Lib/test/decimaltestdata/clamp.decTest @@ -0,0 +1,197 @@ +------------------------------------------------------------------------ +-- clamp.decTest -- clamped exponent tests (format-independent) -- +-- Copyright (c) IBM Corporation, 2000, 2003. 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.38 + +-- This set of tests uses the same limits as the 8-byte concrete +-- representation, but applies clamping without using format-specific +-- conversions. + +extended: 1 +precision: 16 +rounding: half_even +maxExponent: 384 +minExponent: -383 +clamp: 1 + +-- General testcases + +-- Normality +clam010 apply 1234567890123456 -> 1234567890123456 +clam011 apply 1234567890123456.0 -> 1234567890123456 Rounded +clam012 apply 1234567890123456.1 -> 1234567890123456 Rounded Inexact +clam013 apply -1234567890123456 -> -1234567890123456 +clam014 apply -1234567890123456.0 -> -1234567890123456 Rounded +clam015 apply -1234567890123456.1 -> -1234567890123456 Rounded Inexact + + +-- Nmax and similar +clam022 apply 9.999999999999999E+384 -> 9.999999999999999E+384 +clam024 apply 1.234567890123456E+384 -> 1.234567890123456E+384 +-- fold-downs (more below) +clam030 apply 1.23E+384 -> 1.230000000000000E+384 Clamped +clam032 apply 1E+384 -> 1.000000000000000E+384 Clamped + +clam051 apply 12345 -> 12345 +clam053 apply 1234 -> 1234 +clam055 apply 123 -> 123 +clam057 apply 12 -> 12 +clam059 apply 1 -> 1 +clam061 apply 1.23 -> 1.23 +clam063 apply 123.45 -> 123.45 + +-- Nmin and below +clam071 apply 1E-383 -> 1E-383 +clam073 apply 1.000000000000000E-383 -> 1.000000000000000E-383 +clam075 apply 1.000000000000001E-383 -> 1.000000000000001E-383 + +clam077 apply 0.100000000000000E-383 -> 1.00000000000000E-384 Subnormal +clam079 apply 0.000000000000010E-383 -> 1.0E-397 Subnormal +clam081 apply 0.00000000000001E-383 -> 1E-397 Subnormal +clam083 apply 0.000000000000001E-383 -> 1E-398 Subnormal + +-- underflows +clam090 apply 1e-398 -> #0000000000000001 Subnormal +clam091 apply 1.9e-398 -> #0000000000000002 Subnormal Underflow Inexact Rounded +clam092 apply 1.1e-398 -> #0000000000000001 Subnormal Underflow Inexact Rounded +clam093 apply 1.00000000001e-398 -> #0000000000000001 Subnormal Underflow Inexact Rounded +clam094 apply 1.00000000000001e-398 -> #0000000000000001 Subnormal Underflow Inexact Rounded +clam095 apply 1.000000000000001e-398 -> #0000000000000001 Subnormal Underflow Inexact Rounded +clam096 apply 0.1e-398 -> #0000000000000000 Subnormal Underflow Inexact Rounded +clam097 apply 0.00000000001e-398 -> #0000000000000000 Subnormal Underflow Inexact Rounded +clam098 apply 0.00000000000001e-398 -> #0000000000000000 Subnormal Underflow Inexact Rounded +clam099 apply 0.000000000000001e-398 -> #0000000000000000 Subnormal Underflow Inexact Rounded + +-- Same again, negatives +-- Nmax and similar +clam122 apply -9.999999999999999E+384 -> -9.999999999999999E+384 +clam124 apply -1.234567890123456E+384 -> -1.234567890123456E+384 +-- fold-downs (more below) +clam130 apply -1.23E+384 -> -1.230000000000000E+384 Clamped +clam132 apply -1E+384 -> -1.000000000000000E+384 Clamped + +clam151 apply -12345 -> -12345 +clam153 apply -1234 -> -1234 +clam155 apply -123 -> -123 +clam157 apply -12 -> -12 +clam159 apply -1 -> -1 +clam161 apply -1.23 -> -1.23 +clam163 apply -123.45 -> -123.45 + +-- Nmin and below +clam171 apply -1E-383 -> -1E-383 +clam173 apply -1.000000000000000E-383 -> -1.000000000000000E-383 +clam175 apply -1.000000000000001E-383 -> -1.000000000000001E-383 + +clam177 apply -0.100000000000000E-383 -> -1.00000000000000E-384 Subnormal +clam179 apply -0.000000000000010E-383 -> -1.0E-397 Subnormal +clam181 apply -0.00000000000001E-383 -> -1E-397 Subnormal +clam183 apply -0.000000000000001E-383 -> -1E-398 Subnormal + +-- underflows +clam189 apply -1e-398 -> #8000000000000001 Subnormal +clam190 apply -1.0e-398 -> #8000000000000001 Subnormal Rounded +clam191 apply -1.9e-398 -> #8000000000000002 Subnormal Underflow Inexact Rounded +clam192 apply -1.1e-398 -> #8000000000000001 Subnormal Underflow Inexact Rounded +clam193 apply -1.00000000001e-398 -> #8000000000000001 Subnormal Underflow Inexact Rounded +clam194 apply -1.00000000000001e-398 -> #8000000000000001 Subnormal Underflow Inexact Rounded +clam195 apply -1.000000000000001e-398 -> #8000000000000001 Subnormal Underflow Inexact Rounded +clam196 apply -0.1e-398 -> #8000000000000000 Subnormal Underflow Inexact Rounded +clam197 apply -0.00000000001e-398 -> #8000000000000000 Subnormal Underflow Inexact Rounded +clam198 apply -0.00000000000001e-398 -> #8000000000000000 Subnormal Underflow Inexact Rounded +clam199 apply -0.000000000000001e-398 -> #8000000000000000 Subnormal Underflow Inexact Rounded + +-- zeros +clam401 apply 0E-500 -> 0E-398 Clamped +clam402 apply 0E-400 -> 0E-398 Clamped +clam403 apply 0E-398 -> 0E-398 +clam404 apply 0.000000000000000E-383 -> 0E-398 +clam405 apply 0E-2 -> 0.00 +clam406 apply 0 -> 0 +clam407 apply 0E+3 -> 0E+3 +clam408 apply 0E+369 -> 0E+369 +-- clamped zeros... +clam410 apply 0E+370 -> 0E+369 Clamped +clam411 apply 0E+384 -> 0E+369 Clamped +clam412 apply 0E+400 -> 0E+369 Clamped +clam413 apply 0E+500 -> 0E+369 Clamped + +-- negative zeros +clam420 apply -0E-500 -> -0E-398 Clamped +clam421 apply -0E-400 -> -0E-398 Clamped +clam422 apply -0E-398 -> -0E-398 +clam423 apply -0.000000000000000E-383 -> -0E-398 +clam424 apply -0E-2 -> -0.00 +clam425 apply -0 -> -0 +clam426 apply -0E+3 -> -0E+3 +clam427 apply -0E+369 -> -0E+369 +-- clamped zeros... +clam431 apply -0E+370 -> -0E+369 Clamped +clam432 apply -0E+384 -> -0E+369 Clamped +clam433 apply -0E+400 -> -0E+369 Clamped +clam434 apply -0E+500 -> -0E+369 Clamped + +-- fold-down full sequence +clam601 apply 1E+384 -> 1.000000000000000E+384 Clamped +clam603 apply 1E+383 -> 1.00000000000000E+383 Clamped +clam605 apply 1E+382 -> 1.0000000000000E+382 Clamped +clam607 apply 1E+381 -> 1.000000000000E+381 Clamped +clam609 apply 1E+380 -> 1.00000000000E+380 Clamped +clam611 apply 1E+379 -> 1.0000000000E+379 Clamped +clam613 apply 1E+378 -> 1.000000000E+378 Clamped +clam615 apply 1E+377 -> 1.00000000E+377 Clamped +clam617 apply 1E+376 -> 1.0000000E+376 Clamped +clam619 apply 1E+375 -> 1.000000E+375 Clamped +clam621 apply 1E+374 -> 1.00000E+374 Clamped +clam623 apply 1E+373 -> 1.0000E+373 Clamped +clam625 apply 1E+372 -> 1.000E+372 Clamped +clam627 apply 1E+371 -> 1.00E+371 Clamped +clam629 apply 1E+370 -> 1.0E+370 Clamped +clam631 apply 1E+369 -> 1E+369 +clam633 apply 1E+368 -> 1E+368 +-- same with 9s +clam641 apply 9E+384 -> 9.000000000000000E+384 Clamped +clam643 apply 9E+383 -> 9.00000000000000E+383 Clamped +clam645 apply 9E+382 -> 9.0000000000000E+382 Clamped +clam647 apply 9E+381 -> 9.000000000000E+381 Clamped +clam649 apply 9E+380 -> 9.00000000000E+380 Clamped +clam651 apply 9E+379 -> 9.0000000000E+379 Clamped +clam653 apply 9E+378 -> 9.000000000E+378 Clamped +clam655 apply 9E+377 -> 9.00000000E+377 Clamped +clam657 apply 9E+376 -> 9.0000000E+376 Clamped +clam659 apply 9E+375 -> 9.000000E+375 Clamped +clam661 apply 9E+374 -> 9.00000E+374 Clamped +clam663 apply 9E+373 -> 9.0000E+373 Clamped +clam665 apply 9E+372 -> 9.000E+372 Clamped +clam667 apply 9E+371 -> 9.00E+371 Clamped +clam669 apply 9E+370 -> 9.0E+370 Clamped +clam671 apply 9E+369 -> 9E+369 +clam673 apply 9E+368 -> 9E+368 + +-- example from documentation +precision: 7 +rounding: half_even +maxExponent: +96 +minExponent: -95 + +clamp: 0 +clam700 apply 1.23E+96 -> 1.23E+96 + +clamp: 1 +clam701 apply 1.23E+96 -> 1.230000E+96 Clamped |