| -- Selected test cases to reduce both the archive size and runtime. For the |
| -- large test suite, download the separate mpdecimal-testdata distribution and |
| -- replace the testdata_dist directory. |
| |
| rounding: half_even |
| xfmt1 format .12345 '\xe6\xae\x8d<50.23' -> '0.12345\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d\xe6\xae\x8d' |
| xfmt4 format -2815980E0 ',' -> '-2,815,980' |
| |
| -- alignment of specials |
| xfmt12201 format sNaN '+10.10' -> ' +sNaN' |
| xfmt12202 format Inf ' 10.10' -> ' Infinity' |
| xfmt12203 format Inf ' 10.10' -> ' Infinity' |
| |
| -- zero padding of specials |
| xfmt12204 format NaN '010' -> ' NaN' |
| |
| -- zero padding conflicts with alignment specifier |
| xfmt12205 format 999 '<010' -> NULL Invalid_operation |
| |
| -- zero minimum width |
| xfmt12206 format 999 '00.10' -> NULL Invalid_operation |
| |
| -- excessive minimum width |
| xfmt12207 format 999 '18446744073709551616.10' -> NULL Invalid_operation |
| |
| -- invalid fraction digits |
| xfmt12207 format 999 '100.-10' -> NULL Invalid_operation |
| |
| -- excessive number of fraction digits |
| xfmt12207 format 999 '100.18446744073709551616' -> NULL Invalid_operation |
| |
| -- trailing garbage |
| xfmt12208 format 999 '10x' -> NULL Invalid_operation |
| |
| -- excess precision after rescale |
| xfmt12209 format 999999999e20 '.7e' -> 1.0000000e+29 |
| |
| -- illegal UTF-8 sequences (see http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt) |
| xfmt12211 format Inf '\xfe=10.10' -> NULL Invalid_operation |
| xfmt12212 format Inf '\xff=10.10' -> NULL Invalid_operation |
| xfmt12213 format Inf '\xfe\xfe\xff\xff=10.10' -> NULL Invalid_operation |
| xfmt12214 format Inf '\xc0\xaf=10.10' -> NULL Invalid_operation |
| xfmt12215 format Inf '\xe0\x80\xaf=10.10' -> NULL Invalid_operation |
| xfmt12216 format Inf '\xf0\x80\x80\xaf<10.10' -> NULL Invalid_operation |
| xfmt12217 format Inf '\xc1\xbf>10.10' -> NULL Invalid_operation |
| xfmt12218 format Inf '\xe0\x9f\xbf^10.10' -> NULL Invalid_operation |
| xfmt12219 format Inf '\xf0\x8f\xbf\xbf=10.10' -> NULL Invalid_operation |
| xfmt12220 format Inf '\xed\xa0\x80=10.10' -> NULL Invalid_operation |
| xfmt12221 format Inf '\xf4\x90\x80\x80=10.10' -> NULL Invalid_operation |
| |
| -- more illegal UTF-8 sequences |
| xfmt12222 format Inf '\xf1\xf1\xf1\xf1=10.10' -> NULL Invalid_operation |
| |
| |
| -- power of 10 boundaries |
| xfmt12224 format 99999 'g' -> 99999 |
| xfmt12225 format 99999 '.6g' -> 99999 |
| xfmt12226 format 99999 '.5g' -> 99999 |
| xfmt12227 format 99999 '.4g' -> 1.000e+5 |
| xfmt12228 format 99999 '.3g' -> 1.00e+5 |
| xfmt12229 format 99999 '.2g' -> 1.0e+5 |
| xfmt12230 format 99999 '.1g' -> 1e+5 |
| xfmt12231 format 99999 '.0g' -> 1e+5 |
| |
| xfmt12232 format 99999 'e' -> 9.9999e+4 |
| xfmt12233 format 99999 '.6e' -> 9.999900e+4 |
| xfmt12234 format 99999 '.5e' -> 9.99990e+4 |
| xfmt12235 format 99999 '.4e' -> 9.9999e+4 |
| xfmt12236 format 99999 '.3e' -> 1.000e+5 |
| xfmt12237 format 99999 '.2e' -> 1.00e+5 |
| xfmt12238 format 99999 '.1e' -> 1.0e+5 |
| xfmt12239 format 99999 '.0e' -> 1e+5 |
| |
| xfmt12240 format 9.9999 'f' -> 9.9999 |
| xfmt12241 format 9.9999 '.6f' -> 9.999900 |
| xfmt12242 format 9.9999 '.5f' -> 9.99990 |
| xfmt12243 format 9.9999 '.4f' -> 9.9999 |
| xfmt12244 format 9.9999 '.3f' -> 10.000 |
| xfmt12245 format 9.9999 '.2f' -> 10.00 |
| xfmt12246 format 9.9999 '.1f' -> 10.0 |
| xfmt12247 format 9.9999 '.0f' -> 10 |
| |
| xfmt12248 format 9.99e425000000 'g' -> 9.99e+425000000 |
| xfmt12249 format 9.99e425000000 '.3g' -> 9.99e+425000000 |
| xfmt12250 format 9.99e425000000 '.2g' -> 1.0e+425000001 |
| xfmt12251 format 9.99e425000000 '.1g' -> 1e+425000001 |
| xfmt12252 format 9.99e425000000 '.0g' -> 1e+425000001 |
| |
| xfmt12253 format 9.99e425000000 'e' -> 9.99e+425000000 |
| xfmt12254 format 9.99e425000000 '.3e' -> 9.990e+425000000 |
| xfmt12255 format 9.99e425000000 '.2e' -> 9.99e+425000000 |
| xfmt12256 format 9.99e425000000 '.1e' -> 1.0e+425000001 |
| xfmt12257 format 9.99e425000000 '.0e' -> 1e+425000001 |
| |
| |
| -- target exponent less than min_etiny |
| xfmt12258 format 1e-849999999 '.10e' -> 1.0000000000e-849999999 |
| |
| |
| -- '%' formatting: add trailing percent sign for special values. |
| xfmt12259 format NaN123 '%' -> 'NaN123%' |
| xfmt12260 format sNaN '+10.10%' -> ' +sNaN%' |
| xfmt12261 format Inf ' 10.10%' -> ' Infinity%' |
| |
| -- 'z' formatting: coerce to positive zero |
| xfmt12300 format '-.508e+412' 'D=-z,.44%' -> '-508,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000000000000000000000000000000000000000000%' |
| |
| xfmt12301 format '0.00000000000000000000E9227' 'Q>-z,.440%' -> '0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%' |
| |
| xfmt12302 format '-0.00000000000000000000E9227' 'Q>-z,.440%' -> '0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%' |
| |
| |
| -- 64-bit only |
| cov64x00001 format 9.99e999999999999999999 'g' -> 9.99e+999999999999999999 |
| cov64x00002 format 9.99e999999999999999999 '.3g' -> 9.99e+999999999999999999 |
| cov64x00003 format 9.99e999999999999999999 '.2g' -> 1.0e+1000000000000000000 |
| cov64x00004 format 9.99e999999999999999999 '.1g' -> 1e+1000000000000000000 |
| cov64x00005 format 9.99e999999999999999999 '.0g' -> 1e+1000000000000000000 |
| |
| cov64x00006 format 9.99e999999999999999999 'e' -> 9.99e+999999999999999999 |
| cov64x00007 format 9.99e999999999999999999 '.3e' -> 9.990e+999999999999999999 |
| cov64x00008 format 9.99e999999999999999999 '.2e' -> 9.99e+999999999999999999 |
| cov64x00009 format 9.99e999999999999999999 '.1e' -> 1.0e+1000000000000000000 |
| cov64x00010 format 9.99e999999999999999999 '.0e' -> 1e+1000000000000000000 |
| |
| -- target exponent less than min_etiny |
| cov64x00011 format 1e-1999999999999999997 '.10e' -> 1.0000000000e-1999999999999999997 |
| |
| |
| -- 32-bit only: result has too many digits for 'f' specifier. |
| -- This test can legitimately fail with MPD_Malloc_error, thus it can produce |
| -- a false positive. |
| -- cov32x00012 format 1e-849999999 ',f' -> NULL Invalid_operation |