cpython/Lib/test/decimaltestdata/extra.decTest

568 lines
20 KiB
Plaintext
Raw Normal View History

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. ........
2007-09-19 00:06:30 -03:00
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