Mercurial > cpython-lru_cache-weakref
view Lib/test/decimaltestdata/dsEncode.decTest @ 87690:66c1c9f32567 default tip
Add use_weakref option to functools.lru_cache
The use_weakref option makes lru_cache create weak references to the function
arguments when creating the cache key, which prevents them from staying in the
memory forever even after all other references to them are gone.
This is a proof of concept for http://bugs.python.org/issue19859
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Tue, 03 Dec 2013 16:02:48 +0100 |
| parents | 3c9232a684ae |
| children |
line wrap: on
line source
------------------------------------------------------------------------ -- dsEncode.decTest -- decimal four-byte format testcases -- -- Copyright (c) IBM Corporation, 2000, 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 -- ------------------------------------------------------------------------ -- [Previously called decimal32.decTest] version: 2.59 -- This set of tests is for the four-byte concrete representation. -- Its characteristics are: -- -- 1 bit sign -- 5 bits combination field -- 6 bits exponent continuation -- 20 bits coefficient continuation -- -- Total exponent length 8 bits -- Total coefficient length 24 bits (7 digits) -- -- Elimit = 191 (maximum encoded exponent) -- Emax = 96 (largest exponent value) -- Emin = -95 (smallest exponent value) -- bias = 101 (subtracted from encoded exponent) = -Etiny -- The testcases here have only exactly representable data on the -- 'left-hand-side'; rounding from strings is tested in 'base' -- testcase groups. extended: 1 clamp: 1 precision: 7 rounding: half_up maxExponent: 96 minExponent: -95 -- General testcases -- (mostly derived from the Strawman 4 document and examples) decs001 apply #A23003D0 -> -7.50 decs002 apply -7.50 -> #A23003D0 -- derivative canonical plain strings decs003 apply #A26003D0 -> -7.50E+3 decs004 apply -7.50E+3 -> #A26003D0 decs005 apply #A25003D0 -> -750 decs006 apply -750 -> #A25003D0 decs007 apply #A24003D0 -> -75.0 decs008 apply -75.0 -> #A24003D0 decs009 apply #A22003D0 -> -0.750 decs010 apply -0.750 -> #A22003D0 decs011 apply #A21003D0 -> -0.0750 decs012 apply -0.0750 -> #A21003D0 decs013 apply #A1f003D0 -> -0.000750 decs014 apply -0.000750 -> #A1f003D0 decs015 apply #A1d003D0 -> -0.00000750 decs016 apply -0.00000750 -> #A1d003D0 decs017 apply #A1c003D0 -> -7.50E-7 decs018 apply -7.50E-7 -> #A1c003D0 -- Normality decs020 apply 1234567 -> #2654d2e7 decs021 apply -1234567 -> #a654d2e7 decs022 apply 1111111 -> #26524491 -- Nmax and similar decs031 apply 9.999999E+96 -> #77f3fcff decs032 apply #77f3fcff -> 9.999999E+96 decs033 apply 1.234567E+96 -> #47f4d2e7 decs034 apply #47f4d2e7 -> 1.234567E+96 -- fold-downs (more below) decs035 apply 1.23E+96 -> #47f4c000 Clamped decs036 apply #47f4c000 -> 1.230000E+96 decs037 apply 1E+96 -> #47f00000 Clamped decs038 apply #47f00000 -> 1.000000E+96 decs051 apply 12345 -> #225049c5 decs052 apply #225049c5 -> 12345 decs053 apply 1234 -> #22500534 decs054 apply #22500534 -> 1234 decs055 apply 123 -> #225000a3 decs056 apply #225000a3 -> 123 decs057 apply 12 -> #22500012 decs058 apply #22500012 -> 12 decs059 apply 1 -> #22500001 decs060 apply #22500001 -> 1 decs061 apply 1.23 -> #223000a3 decs062 apply #223000a3 -> 1.23 decs063 apply 123.45 -> #223049c5 decs064 apply #223049c5 -> 123.45 -- Nmin and below decs071 apply 1E-95 -> #00600001 decs072 apply #00600001 -> 1E-95 decs073 apply 1.000000E-95 -> #04000000 decs074 apply #04000000 -> 1.000000E-95 decs075 apply 1.000001E-95 -> #04000001 decs076 apply #04000001 -> 1.000001E-95 decs077 apply 0.100000E-95 -> #00020000 Subnormal decs07x apply 1.00000E-96 -> 1.00000E-96 Subnormal decs078 apply #00020000 -> 1.00000E-96 Subnormal decs079 apply 0.000010E-95 -> #00000010 Subnormal decs080 apply #00000010 -> 1.0E-100 Subnormal decs081 apply 0.000001E-95 -> #00000001 Subnormal decs082 apply #00000001 -> 1E-101 Subnormal decs083 apply 1e-101 -> #00000001 Subnormal decs084 apply #00000001 -> 1E-101 Subnormal decs08x apply 1e-101 -> 1E-101 Subnormal -- underflows cannot be tested; just check edge case decs090 apply 1e-101 -> #00000001 Subnormal -- same again, negatives -- -- Nmax and similar decs122 apply -9.999999E+96 -> #f7f3fcff decs123 apply #f7f3fcff -> -9.999999E+96 decs124 apply -1.234567E+96 -> #c7f4d2e7 decs125 apply #c7f4d2e7 -> -1.234567E+96 -- fold-downs (more below) decs130 apply -1.23E+96 -> #c7f4c000 Clamped decs131 apply #c7f4c000 -> -1.230000E+96 decs132 apply -1E+96 -> #c7f00000 Clamped decs133 apply #c7f00000 -> -1.000000E+96 decs151 apply -12345 -> #a25049c5 decs152 apply #a25049c5 -> -12345 decs153 apply -1234 -> #a2500534 decs154 apply #a2500534 -> -1234 decs155 apply -123 -> #a25000a3 decs156 apply #a25000a3 -> -123 decs157 apply -12 -> #a2500012 decs158 apply #a2500012 -> -12 decs159 apply -1 -> #a2500001 decs160 apply #a2500001 -> -1 decs161 apply -1.23 -> #a23000a3 decs162 apply #a23000a3 -> -1.23 decs163 apply -123.45 -> #a23049c5 decs164 apply #a23049c5 -> -123.45 -- Nmin and below decs171 apply -1E-95 -> #80600001 decs172 apply #80600001 -> -1E-95 decs173 apply -1.000000E-95 -> #84000000 decs174 apply #84000000 -> -1.000000E-95 decs175 apply -1.000001E-95 -> #84000001 decs176 apply #84000001 -> -1.000001E-95 decs177 apply -0.100000E-95 -> #80020000 Subnormal decs178 apply #80020000 -> -1.00000E-96 Subnormal decs179 apply -0.000010E-95 -> #80000010 Subnormal decs180 apply #80000010 -> -1.0E-100 Subnormal decs181 apply -0.000001E-95 -> #80000001 Subnormal decs182 apply #80000001 -> -1E-101 Subnormal decs183 apply -1e-101 -> #80000001 Subnormal decs184 apply #80000001 -> -1E-101 Subnormal -- underflow edge case decs190 apply -1e-101 -> #80000001 Subnormal -- zeros decs400 apply 0E-400 -> #00000000 Clamped decs401 apply 0E-101 -> #00000000 decs402 apply #00000000 -> 0E-101 decs403 apply 0.000000E-95 -> #00000000 decs404 apply #00000000 -> 0E-101 decs405 apply 0E-2 -> #22300000 decs406 apply #22300000 -> 0.00 decs407 apply 0 -> #22500000 decs408 apply #22500000 -> 0 decs409 apply 0E+3 -> #22800000 decs410 apply #22800000 -> 0E+3 decs411 apply 0E+90 -> #43f00000 decs412 apply #43f00000 -> 0E+90 -- clamped zeros... decs413 apply 0E+91 -> #43f00000 Clamped decs414 apply #43f00000 -> 0E+90 decs415 apply 0E+96 -> #43f00000 Clamped decs416 apply #43f00000 -> 0E+90 decs417 apply 0E+400 -> #43f00000 Clamped decs418 apply #43f00000 -> 0E+90 -- negative zeros decs420 apply -0E-400 -> #80000000 Clamped decs421 apply -0E-101 -> #80000000 decs422 apply #80000000 -> -0E-101 decs423 apply -0.000000E-95 -> #80000000 decs424 apply #80000000 -> -0E-101 decs425 apply -0E-2 -> #a2300000 decs426 apply #a2300000 -> -0.00 decs427 apply -0 -> #a2500000 decs428 apply #a2500000 -> -0 decs429 apply -0E+3 -> #a2800000 decs430 apply #a2800000 -> -0E+3 decs431 apply -0E+90 -> #c3f00000 decs432 apply #c3f00000 -> -0E+90 -- clamped zeros... decs433 apply -0E+91 -> #c3f00000 Clamped decs434 apply #c3f00000 -> -0E+90 decs435 apply -0E+96 -> #c3f00000 Clamped decs436 apply #c3f00000 -> -0E+90 decs437 apply -0E+400 -> #c3f00000 Clamped decs438 apply #c3f00000 -> -0E+90 -- Specials decs500 apply Infinity -> #78000000 decs501 apply #78787878 -> #78000000 decs502 apply #78000000 -> Infinity decs503 apply #79797979 -> #78000000 decs504 apply #79000000 -> Infinity decs505 apply #7a7a7a7a -> #78000000 decs506 apply #7a000000 -> Infinity decs507 apply #7b7b7b7b -> #78000000 decs508 apply #7b000000 -> Infinity decs509 apply #7c7c7c7c -> #7c0c7c7c decs510 apply NaN -> #7c000000 decs511 apply #7c000000 -> NaN decs512 apply #7d7d7d7d -> #7c0d7d7d decs513 apply #7d000000 -> NaN decs514 apply #7e7e7e7e -> #7e0e7c7e decs515 apply #7e000000 -> sNaN decs516 apply #7f7f7f7f -> #7e0f7c7f decs517 apply #7f000000 -> sNaN decs518 apply #7fffffff -> sNaN999999 decs519 apply #7fffffff -> #7e03fcff decs520 apply -Infinity -> #f8000000 decs521 apply #f8787878 -> #f8000000 decs522 apply #f8000000 -> -Infinity decs523 apply #f9797979 -> #f8000000 decs524 apply #f9000000 -> -Infinity decs525 apply #fa7a7a7a -> #f8000000 decs526 apply #fa000000 -> -Infinity decs527 apply #fb7b7b7b -> #f8000000 decs528 apply #fb000000 -> -Infinity decs529 apply -NaN -> #fc000000 decs530 apply #fc7c7c7c -> #fc0c7c7c decs531 apply #fc000000 -> -NaN decs532 apply #fd7d7d7d -> #fc0d7d7d decs533 apply #fd000000 -> -NaN decs534 apply #fe7e7e7e -> #fe0e7c7e decs535 apply #fe000000 -> -sNaN decs536 apply #ff7f7f7f -> #fe0f7c7f decs537 apply #ff000000 -> -sNaN decs538 apply #ffffffff -> -sNaN999999 decs539 apply #ffffffff -> #fe03fcff -- diagnostic NaNs decs540 apply NaN -> #7c000000 decs541 apply NaN0 -> #7c000000 decs542 apply NaN1 -> #7c000001 decs543 apply NaN12 -> #7c000012 decs544 apply NaN79 -> #7c000079 decs545 apply NaN12345 -> #7c0049c5 decs546 apply NaN123456 -> #7c028e56 decs547 apply NaN799799 -> #7c0f7fdf decs548 apply NaN999999 -> #7c03fcff -- fold-down full sequence decs601 apply 1E+96 -> #47f00000 Clamped decs602 apply #47f00000 -> 1.000000E+96 decs603 apply 1E+95 -> #43f20000 Clamped decs604 apply #43f20000 -> 1.00000E+95 decs605 apply 1E+94 -> #43f04000 Clamped decs606 apply #43f04000 -> 1.0000E+94 decs607 apply 1E+93 -> #43f00400 Clamped decs608 apply #43f00400 -> 1.000E+93 decs609 apply 1E+92 -> #43f00080 Clamped decs610 apply #43f00080 -> 1.00E+92 decs611 apply 1E+91 -> #43f00010 Clamped decs612 apply #43f00010 -> 1.0E+91 decs613 apply 1E+90 -> #43f00001 decs614 apply #43f00001 -> 1E+90 -- Selected DPD codes decs700 apply #22500000 -> 0 decs701 apply #22500009 -> 9 decs702 apply #22500010 -> 10 decs703 apply #22500019 -> 19 decs704 apply #22500020 -> 20 decs705 apply #22500029 -> 29 decs706 apply #22500030 -> 30 decs707 apply #22500039 -> 39 decs708 apply #22500040 -> 40 decs709 apply #22500049 -> 49 decs710 apply #22500050 -> 50 decs711 apply #22500059 -> 59 decs712 apply #22500060 -> 60 decs713 apply #22500069 -> 69 decs714 apply #22500070 -> 70 decs715 apply #22500071 -> 71 decs716 apply #22500072 -> 72 decs717 apply #22500073 -> 73 decs718 apply #22500074 -> 74 decs719 apply #22500075 -> 75 decs720 apply #22500076 -> 76 decs721 apply #22500077 -> 77 decs722 apply #22500078 -> 78 decs723 apply #22500079 -> 79 decs730 apply #2250029e -> 994 decs731 apply #2250029f -> 995 decs732 apply #225002a0 -> 520 decs733 apply #225002a1 -> 521 -- DPD: one of each of the huffman groups decs740 apply #225003f7 -> 777 decs741 apply #225003f8 -> 778 decs742 apply #225003eb -> 787 decs743 apply #2250037d -> 877 decs744 apply #2250039f -> 997 decs745 apply #225003bf -> 979 decs746 apply #225003df -> 799 decs747 apply #2250006e -> 888 -- DPD all-highs cases (includes the 24 redundant codes) decs750 apply #2250006e -> 888 decs751 apply #2250016e -> 888 decs752 apply #2250026e -> 888 decs753 apply #2250036e -> 888 decs754 apply #2250006f -> 889 decs755 apply #2250016f -> 889 decs756 apply #2250026f -> 889 decs757 apply #2250036f -> 889 decs760 apply #2250007e -> 898 decs761 apply #2250017e -> 898 decs762 apply #2250027e -> 898 decs763 apply #2250037e -> 898 decs764 apply #2250007f -> 899 decs765 apply #2250017f -> 899 decs766 apply #2250027f -> 899 decs767 apply #2250037f -> 899 decs770 apply #225000ee -> 988 decs771 apply #225001ee -> 988 decs772 apply #225002ee -> 988 decs773 apply #225003ee -> 988 decs774 apply #225000ef -> 989 decs775 apply #225001ef -> 989 decs776 apply #225002ef -> 989 decs777 apply #225003ef -> 989 decs780 apply #225000fe -> 998 decs781 apply #225001fe -> 998 decs782 apply #225002fe -> 998 decs783 apply #225003fe -> 998 decs784 apply #225000ff -> 999 decs785 apply #225001ff -> 999 decs786 apply #225002ff -> 999 decs787 apply #225003ff -> 999 -- narrowing case decs790 apply 2.00E-99 -> #00000100 Subnormal decs791 apply #00000100 -> 2.00E-99 Subnormal
