diff options
author | Thomas Wouters <thomas@python.org> | 2007-09-19 03:06:30 (GMT) |
---|---|---|
committer | Thomas Wouters <thomas@python.org> | 2007-09-19 03:06:30 (GMT) |
commit | 1b7f891f416830d0c46ca1c9e1bfe62f05cda655 (patch) | |
tree | fc092d34bebe4223a3026d1992bf17cc0ea2b2b0 /Lib/test/decimaltestdata/extra.decTest | |
parent | 782d6b44a1cc003106bac3a310d3e4ac3768adbd (diff) | |
download | cpython-1b7f891f416830d0c46ca1c9e1bfe62f05cda655.zip cpython-1b7f891f416830d0c46ca1c9e1bfe62f05cda655.tar.gz cpython-1b7f891f416830d0c46ca1c9e1bfe62f05cda655.tar.bz2 |
Merged revisions 58095-58132,58136-58148,58151-58197 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r58096 | brett.cannon | 2007-09-10 23:38:27 +0200 (Mon, 10 Sep 2007) | 4 lines
Fix a possible segfault from recursing too deep to get the repr of a list.
Closes issue #1096.
........
r58097 | bill.janssen | 2007-09-10 23:51:02 +0200 (Mon, 10 Sep 2007) | 33 lines
More work on SSL support.
* Much expanded test suite:
All protocols tested against all other protocols.
All protocols tested with all certificate options.
Tests for bad key and bad cert.
Test of STARTTLS functionality.
Test of RAND_* functions.
* Fixes for threading/malloc bug.
* Issue 1065 fixed:
sslsocket class renamed to SSLSocket.
sslerror class renamed to SSLError.
Function "wrap_socket" now used to wrap an existing socket.
* Issue 1583946 finally fixed:
Support for subjectAltName added.
Subject name now returned as proper DN list of RDNs.
* SSLError exported from socket as "sslerror".
* RAND_* functions properly exported from ssl.py.
* Documentation improved:
Example of how to create a self-signed certificate.
Better indexing.
........
r58098 | guido.van.rossum | 2007-09-11 00:02:25 +0200 (Tue, 11 Sep 2007) | 9 lines
Patch # 1140 (my code, approved by Effbot).
Make sure the type of the return value of re.sub(x, y, z) is the type
of y+x (i.e. unicode if either is unicode, str if they are both str)
even if there are no substitutions or if x==z (which triggered various
special cases in join_list()).
Could be backported to 2.5; no need to port to 3.0.
........
r58099 | guido.van.rossum | 2007-09-11 00:36:02 +0200 (Tue, 11 Sep 2007) | 8 lines
Patch # 1026 by Benjamin Aranguren (with Alex Martelli):
Backport abc.py and isinstance/issubclass overloading to 2.6.
I had to backport test_typechecks.py myself, and make one small change
to abc.py to avoid duplicate work when x.__class__ and type(x) are the
same.
........
r58100 | bill.janssen | 2007-09-11 01:41:24 +0200 (Tue, 11 Sep 2007) | 3 lines
A better way of finding an open port to test with.
........
r58101 | bill.janssen | 2007-09-11 03:09:19 +0200 (Tue, 11 Sep 2007) | 4 lines
Make sure test_ssl doesn't reference the ssl module in a
context where it can't be imported.
........
r58102 | bill.janssen | 2007-09-11 04:42:07 +0200 (Tue, 11 Sep 2007) | 3 lines
Fix some documentation bugs.
........
r58103 | nick.coghlan | 2007-09-11 16:01:18 +0200 (Tue, 11 Sep 2007) | 1 line
Always use the -E flag when spawning subprocesses in test_cmd_line (Issue 1056)
........
r58106 | thomas.heller | 2007-09-11 21:17:48 +0200 (Tue, 11 Sep 2007) | 3 lines
Disable some tests that fail on the 'ppc Debian unstable' buildbot to
find out if they cause the segfault on the 'alpha Debian' machine.
........
r58108 | brett.cannon | 2007-09-11 23:02:28 +0200 (Tue, 11 Sep 2007) | 6 lines
Generators had their throw() method allowing string exceptions. That's a
no-no.
Fixes issue #1147. Need to fix 2.5 to raise a proper warning if a string
exception is passed in.
........
r58112 | georg.brandl | 2007-09-12 20:03:51 +0200 (Wed, 12 Sep 2007) | 3 lines
New documentation page for the bdb module.
(This doesn't need to be merged to Py3k.)
........
r58114 | georg.brandl | 2007-09-12 20:05:57 +0200 (Wed, 12 Sep 2007) | 2 lines
Bug #1152: use non-deprecated name in example.
........
r58115 | georg.brandl | 2007-09-12 20:08:33 +0200 (Wed, 12 Sep 2007) | 2 lines
Fix #1122: wrong return type documented for various _Size() functions.
........
r58117 | georg.brandl | 2007-09-12 20:10:56 +0200 (Wed, 12 Sep 2007) | 2 lines
Fix #1139: PyFile_Encoding really is PyFile_SetEncoding.
........
r58119 | georg.brandl | 2007-09-12 20:29:18 +0200 (Wed, 12 Sep 2007) | 2 lines
bug #1154: release memory allocated by "es" PyArg_ParseTuple format specifier.
........
r58121 | bill.janssen | 2007-09-12 20:52:05 +0200 (Wed, 12 Sep 2007) | 1 line
root certificate for https://svn.python.org/, used in test_ssl
........
r58122 | georg.brandl | 2007-09-12 21:00:07 +0200 (Wed, 12 Sep 2007) | 3 lines
Bug #1153: repr.repr() now doesn't require set and dictionary items
to be orderable to properly represent them.
........
r58125 | georg.brandl | 2007-09-12 21:29:28 +0200 (Wed, 12 Sep 2007) | 4 lines
#1120: put explicit version in the shebang lines of pydoc, idle
and smtpd.py scripts that are installed by setup.py. That way, they
work when only "make altinstall" is used.
........
r58139 | mark.summerfield | 2007-09-13 16:54:30 +0200 (Thu, 13 Sep 2007) | 9 lines
Replaced variable o with obj in operator.rst because o is easy to
confuse.
Added a note about Python 3's collections.Mapping etc., above section
that describes isMappingType() etc.
Added xrefs between os, os.path, fileinput, and open().
........
r58143 | facundo.batista | 2007-09-13 20:13:15 +0200 (Thu, 13 Sep 2007) | 7 lines
Merged the decimal-branch (revisions 54886 to 58140). Decimal is now
fully updated to the latests Decimal Specification (v1.66) and the
latests test cases (v2.56).
Thanks to Mark Dickinson for all his help during this process.
........
r58145 | facundo.batista | 2007-09-13 20:42:09 +0200 (Thu, 13 Sep 2007) | 7 lines
Put the parameter watchexp back in (changed watchexp from an int
to a bool). Also second argument to watchexp is now converted
to Decimal, just as with all the other two-argument operations.
Thanks Mark Dickinson.
........
r58147 | andrew.kuchling | 2007-09-14 00:49:34 +0200 (Fri, 14 Sep 2007) | 1 line
Add various items
........
r58148 | andrew.kuchling | 2007-09-14 00:50:10 +0200 (Fri, 14 Sep 2007) | 1 line
Make target unique
........
r58154 | facundo.batista | 2007-09-14 20:58:34 +0200 (Fri, 14 Sep 2007) | 3 lines
Included the new functions, and new descriptions.
........
r58155 | thomas.heller | 2007-09-14 21:40:35 +0200 (Fri, 14 Sep 2007) | 2 lines
ctypes.util.find_library uses dump(1) instead of objdump(1) on Solaris.
Fixes issue #1777530; will backport to release25-maint.
........
r58159 | facundo.batista | 2007-09-14 23:29:52 +0200 (Fri, 14 Sep 2007) | 3 lines
Some additions (examples and a bit on the tutorial).
........
r58160 | georg.brandl | 2007-09-15 18:53:36 +0200 (Sat, 15 Sep 2007) | 2 lines
Remove bdb from the "undocumented modules" list.
........
r58164 | bill.janssen | 2007-09-17 00:06:00 +0200 (Mon, 17 Sep 2007) | 15 lines
Add support for asyncore server-side SSL support. This requires
adding the 'makefile' method to ssl.SSLSocket, and importing the
requisite fakefile class from socket.py, and making the appropriate
changes to it to make it use the SSL connection.
Added sample HTTPS server to test_ssl.py, and test that uses it.
Change SSL tests to use https://svn.python.org/, instead of
www.sf.net and pop.gmail.com.
Added utility function to ssl module, get_server_certificate,
to wrap up the several things to be done to pull a certificate
from a remote server.
........
r58173 | bill.janssen | 2007-09-17 01:16:46 +0200 (Mon, 17 Sep 2007) | 1 line
use binary mode when reading files for testAsyncore to make Windows happy
........
r58175 | raymond.hettinger | 2007-09-17 02:55:00 +0200 (Mon, 17 Sep 2007) | 7 lines
Sync-up named tuples with the latest version of the ASPN recipe.
Allows optional commas in the field-name spec (help when named tuples are used in conjuction with sql queries).
Adds the __fields__ attribute for introspection and to support conversion to dictionary form.
Adds a __replace__() method similar to str.replace() but using a named field as a target.
Clean-up spelling and presentation in doc-strings.
........
r58176 | brett.cannon | 2007-09-17 05:28:34 +0200 (Mon, 17 Sep 2007) | 5 lines
Add a bunch of GIL release/acquire points in tp_print implementations and for
PyObject_Print().
Closes issue #1164.
........
r58177 | sean.reifschneider | 2007-09-17 07:45:04 +0200 (Mon, 17 Sep 2007) | 2 lines
issue1597011: Fix for bz2 module corner-case error due to error checking bug.
........
r58180 | facundo.batista | 2007-09-17 18:26:50 +0200 (Mon, 17 Sep 2007) | 3 lines
Decimal is updated, :)
........
r58181 | facundo.batista | 2007-09-17 19:30:13 +0200 (Mon, 17 Sep 2007) | 5 lines
The methods always return Decimal classes, even if they're
executed through a subclass (thanks Mark Dickinson).
Added a bit of testing for this.
........
r58183 | sean.reifschneider | 2007-09-17 22:53:21 +0200 (Mon, 17 Sep 2007) | 2 lines
issue1082: Fixing platform and system for Vista.
........
r58185 | andrew.kuchling | 2007-09-18 03:36:16 +0200 (Tue, 18 Sep 2007) | 1 line
Add item; sort properly
........
r58186 | raymond.hettinger | 2007-09-18 05:33:19 +0200 (Tue, 18 Sep 2007) | 1 line
Handle corner cased on 0-tuples and 1-tuples. Add verbose option so people can see how it works.
........
r58192 | georg.brandl | 2007-09-18 09:24:40 +0200 (Tue, 18 Sep 2007) | 2 lines
A bit of reordering, also show more subheadings in the lang ref index.
........
r58193 | facundo.batista | 2007-09-18 18:53:18 +0200 (Tue, 18 Sep 2007) | 4 lines
Speed up of the various division operations (remainder, divide,
divideint and divmod). Thanks Mark Dickinson.
........
r58197 | raymond.hettinger | 2007-09-19 00:18:02 +0200 (Wed, 19 Sep 2007) | 1 line
Cleanup docs for NamedTuple.
........
Diffstat (limited to 'Lib/test/decimaltestdata/extra.decTest')
-rw-r--r-- | Lib/test/decimaltestdata/extra.decTest | 567 |
1 files changed, 567 insertions, 0 deletions
diff --git a/Lib/test/decimaltestdata/extra.decTest b/Lib/test/decimaltestdata/extra.decTest new file mode 100644 index 0000000..36f2a97 --- /dev/null +++ b/Lib/test/decimaltestdata/extra.decTest @@ -0,0 +1,567 @@ +version: ?.?? + +extended: 1 +rounding: half_even + +-- testing folddown and clamping +maxexponent: 9 +minexponent: -9 +precision: 6 +clamp: 1 +extr0000 apply 1E+11 -> Infinity Overflow Inexact Rounded +extr0001 apply 1E+10 -> Infinity Overflow Inexact Rounded +extr0002 apply 1E+9 -> 1.00000E+9 Clamped +extr0003 apply 1E+8 -> 1.0000E+8 Clamped +extr0004 apply 1E+7 -> 1.000E+7 Clamped +extr0005 apply 1E+6 -> 1.00E+6 Clamped +extr0006 apply 1E+5 -> 1.0E+5 Clamped +extr0007 apply 1E+4 -> 1E+4 +extr0008 apply 1E+3 -> 1E+3 +extr0009 apply 1E+2 -> 1E+2 +extr0010 apply 1E+1 -> 1E+1 +extr0011 apply 1 -> 1 +extr0012 apply 1E-1 -> 0.1 +extr0013 apply 1E-2 -> 0.01 +extr0014 apply 1E-3 -> 0.001 +extr0015 apply 1E-4 -> 0.0001 +extr0016 apply 1E-5 -> 0.00001 +extr0017 apply 1E-6 -> 0.000001 +extr0018 apply 1E-7 -> 1E-7 +extr0019 apply 1E-8 -> 1E-8 +extr0020 apply 1E-9 -> 1E-9 +extr0021 apply 1E-10 -> 1E-10 Subnormal +extr0022 apply 1E-11 -> 1E-11 Subnormal +extr0023 apply 1E-12 -> 1E-12 Subnormal +extr0024 apply 1E-13 -> 1E-13 Subnormal +extr0025 apply 1E-14 -> 1E-14 Subnormal +extr0026 apply 1E-15 -> 0E-14 Inexact Rounded Subnormal Underflow Clamped +extr0027 apply 1E-16 -> 0E-14 Inexact Rounded Subnormal Underflow Clamped +clamp: 0 + +-- large precision, small minimum and maximum exponent; in this case +-- it's possible that folddown is required on a subnormal result +maxexponent: 9 +minexponent: -9 +precision: 24 +clamp: 1 +extr0100 apply 1E+11 -> Infinity Overflow Inexact Rounded +extr0101 apply 1E+10 -> Infinity Overflow Inexact Rounded +extr0102 apply 1E+9 -> 1000000000.00000000000000 Clamped +extr0103 apply 1E+8 -> 100000000.00000000000000 Clamped +extr0104 apply 1E+7 -> 10000000.00000000000000 Clamped +extr0105 apply 1E+6 -> 1000000.00000000000000 Clamped +extr0106 apply 1E+5 -> 100000.00000000000000 Clamped +extr0107 apply 1E+4 -> 10000.00000000000000 Clamped +extr0108 apply 1E+3 -> 1000.00000000000000 Clamped +extr0109 apply 1E+2 -> 100.00000000000000 Clamped +extr0110 apply 1E+1 -> 10.00000000000000 Clamped +extr0111 apply 1 -> 1.00000000000000 Clamped +extr0112 apply 1E-1 -> 0.10000000000000 Clamped +extr0113 apply 1E-2 -> 0.01000000000000 Clamped +extr0114 apply 1E-3 -> 0.00100000000000 Clamped +extr0115 apply 1E-4 -> 0.00010000000000 Clamped +extr0116 apply 1E-5 -> 0.00001000000000 Clamped +extr0117 apply 1E-6 -> 0.00000100000000 Clamped +extr0118 apply 1E-7 -> 1.0000000E-7 Clamped +extr0119 apply 1E-8 -> 1.000000E-8 Clamped +extr0120 apply 1E-9 -> 1.00000E-9 Clamped +extr0121 apply 1E-10 -> 1.0000E-10 Subnormal Clamped +extr0122 apply 1E-11 -> 1.000E-11 Subnormal Clamped +extr0123 apply 1E-12 -> 1.00E-12 Subnormal Clamped +extr0124 apply 1E-13 -> 1.0E-13 Subnormal Clamped +extr0125 apply 1E-14 -> 1E-14 Subnormal +extr0126 apply 1E-15 -> 1E-15 Subnormal +extr0127 apply 1E-16 -> 1E-16 Subnormal +extr0128 apply 1E-17 -> 1E-17 Subnormal +extr0129 apply 1E-18 -> 1E-18 Subnormal +extr0130 apply 1E-19 -> 1E-19 Subnormal +extr0131 apply 1E-20 -> 1E-20 Subnormal +extr0132 apply 1E-21 -> 1E-21 Subnormal +extr0133 apply 1E-22 -> 1E-22 Subnormal +extr0134 apply 1E-23 -> 1E-23 Subnormal +extr0135 apply 1E-24 -> 1E-24 Subnormal +extr0136 apply 1E-25 -> 1E-25 Subnormal +extr0137 apply 1E-26 -> 1E-26 Subnormal +extr0138 apply 1E-27 -> 1E-27 Subnormal +extr0139 apply 1E-28 -> 1E-28 Subnormal +extr0140 apply 1E-29 -> 1E-29 Subnormal +extr0141 apply 1E-30 -> 1E-30 Subnormal +extr0142 apply 1E-31 -> 1E-31 Subnormal +extr0143 apply 1E-32 -> 1E-32 Subnormal +extr0144 apply 1E-33 -> 0E-32 Inexact Rounded Subnormal Underflow Clamped +extr0145 apply 1E-34 -> 0E-32 Inexact Rounded Subnormal Underflow Clamped +clamp: 0 + +-- some buggy addition cases from Python 2.5.x +maxexponent: 999 +minexponent: -999 +precision: 6 +extr1000 add 0E+1000 0E+2000 -> 0E+999 Clamped +extr1001 add 0E+1004 0E+1001 -> 0E+999 Clamped +clamp: 1 +extr1002 add 0E+1000 0E+1000 -> 0E+994 Clamped +clamp: 0 +extr1003 add 0E+1000 0E-1005 -> 0E-1004 Clamped +extr1004 add 0E-1006 0 -> 0E-1004 Clamped +extr1005 add 1E+1000 -1E+1000 -> 0E+999 Clamped +extr1006 add -3.1E+1004 3.1E+1004 -> 0E+999 Clamped +clamp: 1 +extr1007 add 1E+998 -1E+998 -> 0E+994 Clamped +clamp: 0 +extr1008 add 2E-1005 -2E-1005 -> 0E-1004 Clamped +extr1009 add -3.1E-1005 3.1E-1005 -> 0E-1004 Clamped + +precision: 3 +extr1010 add 99949.9 0.200000 -> 1.00E+5 Inexact Rounded +extr1011 add 99949.9 0.100000 -> 1.00E+5 Inexact Rounded +extr1012 add 99849.9 0.200000 -> 9.99E+4 Inexact Rounded +extr1013 add 99849.9 0.100000 -> 9.98E+4 Inexact Rounded +extr1014 add 1.0149 0.00011 -> 1.02 Inexact Rounded +extr1015 add 1.0149 0.00010 -> 1.02 Inexact Rounded +extr1016 add 1.0149 0.00009 -> 1.01 Inexact Rounded +extr1017 add 1.0049 0.00011 -> 1.01 Inexact Rounded +extr1018 add 1.0049 0.00010 -> 1.00 Inexact Rounded +extr1019 add 1.0049 0.00009 -> 1.00 Inexact Rounded +rounding: down +extr1020 add 99999.9 0.200000 -> 1.00E+5 Inexact Rounded +extr1021 add 99999.8 0.200000 -> 1.00E+5 Rounded +extr1022 add 99999.7 0.200000 -> 9.99E+4 Inexact Rounded +rounding: half_even + +-- a bug in _rescale caused the following to fail in Python 2.5.1 +maxexponent: 999 +minexponent: -999 +precision: 6 +extr1100 add 0E+1000 1E+1000 -> Infinity Overflow Inexact Rounded +extr1101 remainder 1E+1000 2E+1000 -> Infinity Overflow Inexact Rounded + +-- tests for scaleb in case where input precision > context precision. +-- Result should be rounded. (This isn't totally clear from the +-- specification, but the treatment of underflow in the testcases +-- suggests that rounding should occur in general. Furthermore, it's +-- the way that the reference implementation behaves.) +maxexponent: 999 +minexponent: -999 +precision: 3 +extr1200 scaleb 1234 1 -> 1.23E+4 Inexact Rounded +extr1201 scaleb 5678 0 -> 5.68E+3 Inexact Rounded +extr1202 scaleb -9105 -1 -> -910 Inexact Rounded + +-- Invalid operation from 0 * infinity in fma +-- takes precedence over a third-argument sNaN +extr1300 fma 0 Inf sNaN123 -> NaN Invalid_operation +extr1301 fma Inf 0 sNaN456 -> NaN Invalid_operation +extr1302 fma 0E123 -Inf sNaN789 -> NaN Invalid_operation +extr1302 fma -Inf 0E-456 sNaN148 -> NaN Invalid_operation + +------------------------------------------------------------------------ +-- The following tests (pwmx0 through pwmx440) are for the -- +-- three-argument version of power: -- +-- -- +-- pow(x, y, z) := x**y % z -- +-- -- +-- Note that the three-argument version of power is *not* part of -- +-- the IBM General Decimal Arithmetic specification. Questions -- +-- about it, or about these testcases, should go to one of the -- +-- Python decimal authors. -- +------------------------------------------------------------------------ + +extended: 1 +precision: 9 +rounding: down +maxExponent: 999 +minExponent: -999 + +-- Small numbers +-- Note that power(0, 0, m) is an error for any m +pwmx0 power 0 -0 1 -> NaN Invalid_operation +pwmx1 power 0 -0 2 -> NaN Invalid_operation +pwmx2 power 0 -0 3 -> NaN Invalid_operation +pwmx3 power 0 -0 4 -> NaN Invalid_operation +pwmx4 power 0 -0 -1 -> NaN Invalid_operation +pwmx5 power 0 -0 -2 -> NaN Invalid_operation +pwmx6 power 0 0 1 -> NaN Invalid_operation +pwmx7 power 0 0 2 -> NaN Invalid_operation +pwmx8 power 0 0 3 -> NaN Invalid_operation +pwmx9 power 0 0 4 -> NaN Invalid_operation +pwmx10 power 0 0 -1 -> NaN Invalid_operation +pwmx11 power 0 0 -2 -> NaN Invalid_operation +pwmx12 power 0 1 1 -> 0 +pwmx13 power 0 1 2 -> 0 +pwmx14 power 0 1 3 -> 0 +pwmx15 power 0 1 4 -> 0 +pwmx16 power 0 1 -1 -> 0 +pwmx17 power 0 1 -2 -> 0 +pwmx18 power 0 2 1 -> 0 +pwmx19 power 0 2 2 -> 0 +pwmx20 power 0 2 3 -> 0 +pwmx21 power 0 2 4 -> 0 +pwmx22 power 0 2 -1 -> 0 +pwmx23 power 0 2 -2 -> 0 +pwmx24 power 0 3 1 -> 0 +pwmx25 power 0 3 2 -> 0 +pwmx26 power 0 3 3 -> 0 +pwmx27 power 0 3 4 -> 0 +pwmx28 power 0 3 -1 -> 0 +pwmx29 power 0 3 -2 -> 0 +pwmx30 power 0 4 1 -> 0 +pwmx31 power 0 4 2 -> 0 +pwmx32 power 0 4 3 -> 0 +pwmx33 power 0 4 4 -> 0 +pwmx34 power 0 4 -1 -> 0 +pwmx35 power 0 4 -2 -> 0 +pwmx36 power 0 5 1 -> 0 +pwmx37 power 0 5 2 -> 0 +pwmx38 power 0 5 3 -> 0 +pwmx39 power 0 5 4 -> 0 +pwmx40 power 0 5 -1 -> 0 +pwmx41 power 0 5 -2 -> 0 +pwmx42 power 1 -0 1 -> 0 +pwmx43 power 1 -0 2 -> 1 +pwmx44 power 1 -0 3 -> 1 +pwmx45 power 1 -0 4 -> 1 +pwmx46 power 1 -0 -1 -> 0 +pwmx47 power 1 -0 -2 -> 1 +pwmx48 power 1 0 1 -> 0 +pwmx49 power 1 0 2 -> 1 +pwmx50 power 1 0 3 -> 1 +pwmx51 power 1 0 4 -> 1 +pwmx52 power 1 0 -1 -> 0 +pwmx53 power 1 0 -2 -> 1 +pwmx54 power 1 1 1 -> 0 +pwmx55 power 1 1 2 -> 1 +pwmx56 power 1 1 3 -> 1 +pwmx57 power 1 1 4 -> 1 +pwmx58 power 1 1 -1 -> 0 +pwmx59 power 1 1 -2 -> 1 +pwmx60 power 1 2 1 -> 0 +pwmx61 power 1 2 2 -> 1 +pwmx62 power 1 2 3 -> 1 +pwmx63 power 1 2 4 -> 1 +pwmx64 power 1 2 -1 -> 0 +pwmx65 power 1 2 -2 -> 1 +pwmx66 power 1 3 1 -> 0 +pwmx67 power 1 3 2 -> 1 +pwmx68 power 1 3 3 -> 1 +pwmx69 power 1 3 4 -> 1 +pwmx70 power 1 3 -1 -> 0 +pwmx71 power 1 3 -2 -> 1 +pwmx72 power 1 4 1 -> 0 +pwmx73 power 1 4 2 -> 1 +pwmx74 power 1 4 3 -> 1 +pwmx75 power 1 4 4 -> 1 +pwmx76 power 1 4 -1 -> 0 +pwmx77 power 1 4 -2 -> 1 +pwmx78 power 1 5 1 -> 0 +pwmx79 power 1 5 2 -> 1 +pwmx80 power 1 5 3 -> 1 +pwmx81 power 1 5 4 -> 1 +pwmx82 power 1 5 -1 -> 0 +pwmx83 power 1 5 -2 -> 1 +pwmx84 power 2 -0 1 -> 0 +pwmx85 power 2 -0 2 -> 1 +pwmx86 power 2 -0 3 -> 1 +pwmx87 power 2 -0 4 -> 1 +pwmx88 power 2 -0 -1 -> 0 +pwmx89 power 2 -0 -2 -> 1 +pwmx90 power 2 0 1 -> 0 +pwmx91 power 2 0 2 -> 1 +pwmx92 power 2 0 3 -> 1 +pwmx93 power 2 0 4 -> 1 +pwmx94 power 2 0 -1 -> 0 +pwmx95 power 2 0 -2 -> 1 +pwmx96 power 2 1 1 -> 0 +pwmx97 power 2 1 2 -> 0 +pwmx98 power 2 1 3 -> 2 +pwmx99 power 2 1 4 -> 2 +pwmx100 power 2 1 -1 -> 0 +pwmx101 power 2 1 -2 -> 0 +pwmx102 power 2 2 1 -> 0 +pwmx103 power 2 2 2 -> 0 +pwmx104 power 2 2 3 -> 1 +pwmx105 power 2 2 4 -> 0 +pwmx106 power 2 2 -1 -> 0 +pwmx107 power 2 2 -2 -> 0 +pwmx108 power 2 3 1 -> 0 +pwmx109 power 2 3 2 -> 0 +pwmx110 power 2 3 3 -> 2 +pwmx111 power 2 3 4 -> 0 +pwmx112 power 2 3 -1 -> 0 +pwmx113 power 2 3 -2 -> 0 +pwmx114 power 2 4 1 -> 0 +pwmx115 power 2 4 2 -> 0 +pwmx116 power 2 4 3 -> 1 +pwmx117 power 2 4 4 -> 0 +pwmx118 power 2 4 -1 -> 0 +pwmx119 power 2 4 -2 -> 0 +pwmx120 power 2 5 1 -> 0 +pwmx121 power 2 5 2 -> 0 +pwmx122 power 2 5 3 -> 2 +pwmx123 power 2 5 4 -> 0 +pwmx124 power 2 5 -1 -> 0 +pwmx125 power 2 5 -2 -> 0 +pwmx126 power 3 -0 1 -> 0 +pwmx127 power 3 -0 2 -> 1 +pwmx128 power 3 -0 3 -> 1 +pwmx129 power 3 -0 4 -> 1 +pwmx130 power 3 -0 -1 -> 0 +pwmx131 power 3 -0 -2 -> 1 +pwmx132 power 3 0 1 -> 0 +pwmx133 power 3 0 2 -> 1 +pwmx134 power 3 0 3 -> 1 +pwmx135 power 3 0 4 -> 1 +pwmx136 power 3 0 -1 -> 0 +pwmx137 power 3 0 -2 -> 1 +pwmx138 power 3 1 1 -> 0 +pwmx139 power 3 1 2 -> 1 +pwmx140 power 3 1 3 -> 0 +pwmx141 power 3 1 4 -> 3 +pwmx142 power 3 1 -1 -> 0 +pwmx143 power 3 1 -2 -> 1 +pwmx144 power 3 2 1 -> 0 +pwmx145 power 3 2 2 -> 1 +pwmx146 power 3 2 3 -> 0 +pwmx147 power 3 2 4 -> 1 +pwmx148 power 3 2 -1 -> 0 +pwmx149 power 3 2 -2 -> 1 +pwmx150 power 3 3 1 -> 0 +pwmx151 power 3 3 2 -> 1 +pwmx152 power 3 3 3 -> 0 +pwmx153 power 3 3 4 -> 3 +pwmx154 power 3 3 -1 -> 0 +pwmx155 power 3 3 -2 -> 1 +pwmx156 power 3 4 1 -> 0 +pwmx157 power 3 4 2 -> 1 +pwmx158 power 3 4 3 -> 0 +pwmx159 power 3 4 4 -> 1 +pwmx160 power 3 4 -1 -> 0 +pwmx161 power 3 4 -2 -> 1 +pwmx162 power 3 5 1 -> 0 +pwmx163 power 3 5 2 -> 1 +pwmx164 power 3 5 3 -> 0 +pwmx165 power 3 5 4 -> 3 +pwmx166 power 3 5 -1 -> 0 +pwmx167 power 3 5 -2 -> 1 +pwmx168 power -0 -0 1 -> NaN Invalid_operation +pwmx169 power -0 -0 2 -> NaN Invalid_operation +pwmx170 power -0 -0 3 -> NaN Invalid_operation +pwmx171 power -0 -0 4 -> NaN Invalid_operation +pwmx172 power -0 -0 -1 -> NaN Invalid_operation +pwmx173 power -0 -0 -2 -> NaN Invalid_operation +pwmx174 power -0 0 1 -> NaN Invalid_operation +pwmx175 power -0 0 2 -> NaN Invalid_operation +pwmx176 power -0 0 3 -> NaN Invalid_operation +pwmx177 power -0 0 4 -> NaN Invalid_operation +pwmx178 power -0 0 -1 -> NaN Invalid_operation +pwmx179 power -0 0 -2 -> NaN Invalid_operation +pwmx180 power -0 1 1 -> -0 +pwmx181 power -0 1 2 -> -0 +pwmx182 power -0 1 3 -> -0 +pwmx183 power -0 1 4 -> -0 +pwmx184 power -0 1 -1 -> -0 +pwmx185 power -0 1 -2 -> -0 +pwmx186 power -0 2 1 -> 0 +pwmx187 power -0 2 2 -> 0 +pwmx188 power -0 2 3 -> 0 +pwmx189 power -0 2 4 -> 0 +pwmx190 power -0 2 -1 -> 0 +pwmx191 power -0 2 -2 -> 0 +pwmx192 power -0 3 1 -> -0 +pwmx193 power -0 3 2 -> -0 +pwmx194 power -0 3 3 -> -0 +pwmx195 power -0 3 4 -> -0 +pwmx196 power -0 3 -1 -> -0 +pwmx197 power -0 3 -2 -> -0 +pwmx198 power -0 4 1 -> 0 +pwmx199 power -0 4 2 -> 0 +pwmx200 power -0 4 3 -> 0 +pwmx201 power -0 4 4 -> 0 +pwmx202 power -0 4 -1 -> 0 +pwmx203 power -0 4 -2 -> 0 +pwmx204 power -0 5 1 -> -0 +pwmx205 power -0 5 2 -> -0 +pwmx206 power -0 5 3 -> -0 +pwmx207 power -0 5 4 -> -0 +pwmx208 power -0 5 -1 -> -0 +pwmx209 power -0 5 -2 -> -0 +pwmx210 power -1 -0 1 -> 0 +pwmx211 power -1 -0 2 -> 1 +pwmx212 power -1 -0 3 -> 1 +pwmx213 power -1 -0 4 -> 1 +pwmx214 power -1 -0 -1 -> 0 +pwmx215 power -1 -0 -2 -> 1 +pwmx216 power -1 0 1 -> 0 +pwmx217 power -1 0 2 -> 1 +pwmx218 power -1 0 3 -> 1 +pwmx219 power -1 0 4 -> 1 +pwmx220 power -1 0 -1 -> 0 +pwmx221 power -1 0 -2 -> 1 +pwmx222 power -1 1 1 -> -0 +pwmx223 power -1 1 2 -> -1 +pwmx224 power -1 1 3 -> -1 +pwmx225 power -1 1 4 -> -1 +pwmx226 power -1 1 -1 -> -0 +pwmx227 power -1 1 -2 -> -1 +pwmx228 power -1 2 1 -> 0 +pwmx229 power -1 2 2 -> 1 +pwmx230 power -1 2 3 -> 1 +pwmx231 power -1 2 4 -> 1 +pwmx232 power -1 2 -1 -> 0 +pwmx233 power -1 2 -2 -> 1 +pwmx234 power -1 3 1 -> -0 +pwmx235 power -1 3 2 -> -1 +pwmx236 power -1 3 3 -> -1 +pwmx237 power -1 3 4 -> -1 +pwmx238 power -1 3 -1 -> -0 +pwmx239 power -1 3 -2 -> -1 +pwmx240 power -1 4 1 -> 0 +pwmx241 power -1 4 2 -> 1 +pwmx242 power -1 4 3 -> 1 +pwmx243 power -1 4 4 -> 1 +pwmx244 power -1 4 -1 -> 0 +pwmx245 power -1 4 -2 -> 1 +pwmx246 power -1 5 1 -> -0 +pwmx247 power -1 5 2 -> -1 +pwmx248 power -1 5 3 -> -1 +pwmx249 power -1 5 4 -> -1 +pwmx250 power -1 5 -1 -> -0 +pwmx251 power -1 5 -2 -> -1 + +-- Randomly chosen larger values +pwmx252 power 0 4 7 -> 0 +pwmx253 power -4 5 -9 -> -7 +pwmx254 power -5 4 -9 -> 4 +pwmx255 power -50 29 2 -> -0 +pwmx256 power -1 83 3 -> -1 +pwmx257 power -55 65 -75 -> -25 +pwmx258 power -613 151 -302 -> -9 +pwmx259 power 551 23 -35 -> 31 +pwmx260 power 51 142 942 -> 9 +pwmx261 power 6886 9204 -6091 -> 5034 +pwmx262 power 3057 5890 -3 -> 0 +pwmx263 power 56 4438 5365 -> 521 +pwmx264 power 96237 35669 -46669 -> 30717 +pwmx265 power 40011 34375 -57611 -> 625 +pwmx266 power 44317 38493 -12196 -> 11081 +pwmx267 power -282368 895633 -235870 -> -220928 +pwmx268 power 77328 852553 -405529 -> 129173 +pwmx269 power -929659 855713 650348 -> -90803 +pwmx270 power 907057 6574309 4924768 -> 3018257 +pwmx271 power -2887757 3198492 -5864352 -> 3440113 +pwmx272 power -247310 657371 -7415739 -> -1301840 +pwmx273 power -8399046 45334087 -22395020 -> -18515896 +pwmx274 power 79621397 4850236 1486555 -> 928706 +pwmx275 power 96012251 27971901 69609031 -> 50028729 +pwmx276 power -907335481 74127986 582330017 -> 51527187 +pwmx277 power -141192960 821063826 -260877928 -> 112318560 +pwmx278 power -501711702 934355994 82135143 -> 66586995 +pwmx279 power -9256358075 8900900138 -467222031 -> 95800246 +pwmx280 power -7031964291 1751257483 -935334498 -> -607626609 +pwmx281 power 8494314971 8740197252 107522491 -> 17373655 +pwmx282 power 88306216890 87477374166 -23498076 -> 15129528 +pwmx283 power -33939432478 7170196239 22133583 -> -11017036 +pwmx284 power 19466222767 30410710614 305752056 -> 191509537 +pwmx285 power -864942494008 370558899638 346688856 -> 56956768 +pwmx286 power -525406225603 345700226898 237163621 -> 56789534 +pwmx287 power 464612215955 312474621651 -329485700 -> 1853975 +pwmx288 power -1664283031244 3774474669855 919022867 -> -516034520 +pwmx289 power -3472438506913 7407327549995 -451206854 -> -74594761 +pwmx290 power -4223662152949 6891069279069 499843503 -> -80135290 +pwmx291 power -44022119276816 8168266170326 569679509 -> 375734475 +pwmx292 power -66195891207902 12532690555875 -243262129 -> -113186833 +pwmx293 power -69039911263164 52726605857673 360625196 -> -268662748 +pwmx294 power -299010116699208 885092589359231 -731310123 -> -104103765 +pwmx295 power -202495776299758 501159122943145 -686234870 -> -135511878 +pwmx296 power -595411478087676 836269270472481 -214614901 -> -183440819 +pwmx297 power -139555381056229 1324808520020507 -228944738 -> -218991473 +pwmx298 power 7846356250770543 1798045051036814 -101028985 -> 7805179 +pwmx299 power -4298015862709415 604966944844209 880212893 -> -87408671 +pwmx300 power -37384897538910893 76022206995659295 -930512842 -> -697757157 +pwmx301 power 82166659028005443 23375408251767704 817270700 -> 770697001 +pwmx302 power 97420301198165641 72213282983416924 947519716 -> 610711721 +pwmx303 power 913382043453243607 449681707248500262 211135545 -> 79544899 +pwmx304 power -313823613418052171 534579409610142937 -943062968 -> -446001379 +pwmx305 power -928106516894494093 760020177330116509 -50043994 -> -46010575 +pwmx306 power 4692146601679439796 4565354511806767804 -667339075 -> 480272081 +pwmx307 power 9722256633509177930 7276568791860505790 792675321 -> 182879752 +pwmx308 power 8689899484830064228 429082967129615261 -844555637 -> 270374557 + +-- All inputs must be integers +pwmx309 power 2.1 3 1 -> NaN Invalid_operation +pwmx310 power 0.4 1 5 -> NaN Invalid_operation +pwmx311 power 2 3.1 5 -> NaN Invalid_operation +pwmx312 power 13 -1.2 10 -> NaN Invalid_operation +pwmx313 power 2 3 5.1 -> NaN Invalid_operation + +-- Second argument must be nonnegative (-0 is okay) +pwmx314 power 2 -3 5 -> NaN Invalid_operation +pwmx315 power 7 -1 1 -> NaN Invalid_operation +pwmx316 power 0 -2 6 -> NaN Invalid_operation + +-- Third argument must be nonzero +pwmx317 power 13 1003 0 -> NaN Invalid_operation +pwmx318 power 1 0 0E+987 -> NaN Invalid_operation +pwmx319 power 0 2 -0 -> NaN Invalid_operation + +-- Integers are fine, no matter how they're expressed +pwmx320 power 13.0 117.00 1E+2 -> 33 +pwmx321 power -2E+3 1.1E+10 -12323 -> 4811 +pwmx322 power 20 0E-300 143 -> 1 +pwmx323 power -20 -0E+1005 1179 -> 1 +pwmx324 power 0E-1001 17 5.6E+4 -> 0 + +-- Modulus must not exceed precision +pwmx325 power 0 1 1234567890 -> NaN Invalid_operation +pwmx326 power 1 0 1000000000 -> NaN Invalid_operation +pwmx327 power -23 5 -1000000000 -> NaN Invalid_operation +pwmx328 power 41557 213 -999999999 -> 47650456 +pwmx329 power -2134 199 999999997 -> -946957912 + +-- Huge base shouldn't present any problems +pwmx330 power 1.23E+123456791 10123898 17291065 -> 5674045 + +-- Large exponent, may be slow +-- (if second argument is 1En then expect O(n) running time) +pwmx331 power 1000288896 9.87E+12347 93379908 -> 43224924 + +-- Triple NaN propagation (adapted from examples in fma.decTest) +pwmx400 power NaN2 NaN3 NaN5 -> NaN2 +pwmx401 power 1 NaN3 NaN5 -> NaN3 +pwmx402 power 1 1 NaN5 -> NaN5 +pwmx403 power sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation +pwmx404 power 1 sNaN2 sNaN3 -> NaN2 Invalid_operation +pwmx405 power 1 1 sNaN3 -> NaN3 Invalid_operation +pwmx406 power sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation +pwmx407 power NaN7 sNaN2 sNaN3 -> NaN2 Invalid_operation +pwmx408 power NaN7 NaN5 sNaN3 -> NaN3 Invalid_operation + +-- Infinities not allowed +pwmx410 power Inf 1 1 -> NaN Invalid_operation +pwmx411 power 1 Inf 1 -> NaN Invalid_operation +pwmx412 power 1 1 Inf -> NaN Invalid_operation +pwmx413 power -Inf 1 1 -> NaN Invalid_operation +pwmx414 power 1 -Inf 1 -> NaN Invalid_operation +pwmx415 power 1 1 -Inf -> NaN Invalid_operation + +-- Just for fun: 1729 is a Carmichael number +pwmx420 power 0 1728 1729 -> 0 +pwmx421 power 1 1728 1729 -> 1 +pwmx422 power 2 1728 1729 -> 1 +pwmx423 power 3 1728 1729 -> 1 +pwmx424 power 4 1728 1729 -> 1 +pwmx425 power 5 1728 1729 -> 1 +pwmx426 power 6 1728 1729 -> 1 +pwmx427 power 7 1728 1729 -> 742 +pwmx428 power 8 1728 1729 -> 1 +pwmx429 power 9 1728 1729 -> 1 +pwmx430 power 10 1728 1729 -> 1 +pwmx431 power 11 1728 1729 -> 1 +pwmx432 power 12 1728 1729 -> 1 +pwmx433 power 13 1728 1729 -> 533 +pwmx434 power 14 1728 1729 -> 742 +pwmx435 power 15 1728 1729 -> 1 +pwmx436 power 16 1728 1729 -> 1 +pwmx437 power 17 1728 1729 -> 1 +pwmx438 power 18 1728 1729 -> 1 +pwmx439 power 19 1728 1729 -> 456 +pwmx440 power 20 1728 1729 -> 1 |