403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Python313/Lib/test/__pycache__/test_decimal.cpython-313.pyc
�

��i�z��x�SrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKJ
r
JrJrJr SSKJrJrJrJr SSKJr SSKJr SSKJr SSKrSSKrSSKr\R8S:Xa\"S	5 \"S
S/S9r\"S
S/S
9rSSKr \"SS/S9r!\\RDS
'\"SS/S9r#\\RDS
'\\!\\#0r$\ \RDS
'\	RJ"\S5r&\\(a.\'"\RQ5RRRU55OS\\'"\RQ5RRRU550r+\\(ae\RX\RZ\R\\R^\R`\Rb\Rd\Rf\Rh/	OS\\RX\RZ\R\\R^\R`\Rb\Rd\Rf\Rh/	0r5Sr6\Rnr7\Rpr8\Rrr9\Rtr:\Rvr;\Rxr<\Rzr=\R|r>\7\8\9\:\;\<\=\>/r?\\(a\RQ5R5OS\\RQ5R50r@SrASrB\CS:Xa\R�SrEO\FrE\R�R�\E5=(d \R�rJ\J\R�-\B-\R�-rL\R�R�\L5(+qNSrO\P"\S5(aSOSrQ\	RJ"\QS5rR\	R�"\QS5rT"SS5rU"SS5rV\&"SS\V\	R�55rX"SS \V\	R�5rY"S!S"5rZ\&"S#S$\Z\	R�55r["S%S&\Z\	R�5r\"S'S(5r]\&"S)S*\]\	R�55r^"S+S,\]\	R�5r_"S-S.5r`\&"S/S0\`\	R�55ra"S1S2\`\	R�5rbS3rcS4rd\R�"5"S5S655rf\&"S7S8\f\	R�55rg"S9S:\f\	R�5rh"S;S<5ri\&"S=S>\i\	R�55rj"S?S@\i\	R�5rk"SASB5rl\&"SCSD\l\	R�55rm"SESF\l\	R�5rn"SGSH5ro\&"SISJ\o\	R�55rp"SKSL\o\	R�5rq"SMSN5rr\&"SOSP\r\	R�55rs"SQSR\r\	R�5rt"SSST5ru\&"SUSV\u\	R�55rv"SWSX\u\	R�5rw"SYSZ5rx\&"S[S\\x\	R�55ry"S]S^\x\	R�5rz"S_S`5r{\&"SaSb\{\	R�55r|"ScSd\{\	R�5r}"SeSf5r~\&"SgSh\~\	R�55r"SiSj\~\	R�5r�\T\&"SkSl\	R�555r�"SmSn5r�\&"SoSp\�\	R�55r�"SqSr\�\	R�5r�"SsSt\	R�5r�"SuSv\	R�5r�"SwSx\	R�5r�\&"SySz\	R�55r�\\&"S{S|\	R�555r�S}r�S~r�Sr�Sq�Sq�Sq�Sq�S�S�jr�\CS:Xa�SSK�r�\�GR&"S�5r�\�GR+S�S�S�S�S�9 \�GR+S�S�S�S�S�9 \�GR-5ur�r�\�GR2(a\�"SSS�9 g\�(a\�"SS\�\�GR4S�9 g\�"SSS�9 gg)�ab
These are the test cases for the Decimal module.

There are two groups of tests, Arithmetic and Behaviour. The former test
the Decimal arithmetic using the tests provided by Mike Cowlishaw. The latter
test the pythonic behaviour according to PEP 327.

Cowlishaw's tests can be downloaded from:

   http://speleotrove.com/decimal/dectest.zip

This test module can be called from command line with one parameter (Arithmetic
or Behaviour) to test each part, or without parameter to test both parts. If
you're working through IDLE, you can import this test module and call test()
with the corresponding argument.
�N)�is_resource_enabled�requires_IEEE_754�requires_docstrings�check_disallow_instantiation)�
TestFailed�run_with_locale�cpython_only�darwin_malloc_err_warning)�import_fresh_module)�threading_helper)�warnings_helper�darwin�test_decimal�decimal�_decimal)�fresh)�blocked�	fractionsztest requires C versionc�h^^�[X5mUR[UU4SjT555 g)Nc3�L># �UHoT;aTUO	TU(+v� M g7f�N�)�.0�s�d�expecteds  ���&C:\Python313\\Lib\test\test_decimal.py�	<genexpr>�!assert_signals.<locals>.<genexpr>Vs$����F�A�q�H�}�q��t�a��d�(�:�A�s�!$)�getattr�
assertTrue�all)�cls�context�attrrrs   `@r�assert_signalsr&Ts$������A��N�N�3�F�A�F�F�G�c��U(dgURS[[R[US5S9nURU5 g)N�	r)�prec�rounding�traps)�Context�ROUND_HALF_EVEN�dict�fromkeys�Signals�
setcontext)�m�DefaultTestContexts  r�initr5ms@���f����
��t�}�}�W�Q�Z��/K�#����L�L�#�$r'�decimaltestdata�__main__F�
DecClampedTz.test requires build with -DEXTRA_FUNCTIONALITYztest requires regular buildc�`�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrg)�IBMTestCases�z?Class which tests the Decimal class against the IBM test cases.c
�j�URR5UlURR5UlS/Ul[/SQ5UlUR[:Xa�URRS5 URRS5 URRS5 URRS5 URRS5 URRS5 URRS	5 URRS
5 URURURURURS.Ul0SS
_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S!_S"S#_S$S%_S&S'_S(S)_S*S+_S,S-_0S.S/_S0S1_S2S3_S4S5_S6S7_S8S9_S:S;_S<S=_S>S?_S@SA_SBSC_SDSE_SFSG_SHSI_SJSK_SLSM_SNSO_ESPSQSRSS.EUl[ ["[$[&[([*[,[.ST.UlURR2URR4URR6URR4URR4URR8URR4URR4URR:URR<URR>URR@SU.Ul!SVUl"g)WN�#)�scbx164�scbx165�expx901�expx902�expx903�expx905�lnx901�lnx902�lnx903�lnx905�logx901�logx902�logx903�logx905�powx1183�powx1184�powx4001�powx4002�powx4003�powx4005�powx4008�powx4010�powx4012�powx4014�pwsx803�pwsx805�powx4302�powx4303�powx4342�powx4343�pwmx325�pwmx326)�	precisionr+�maxexponent�minexponent�clamp�and�logical_and�apply�_apply�class�number_class�
comparesig�compare_signal�comparetotal�
compare_total�
comparetotmag�compare_total_mag�copy�copy_decimal�copyabs�copy_abs�
copynegate�copy_negate�copysign�	copy_sign�	divideint�
divide_int�invert�logical_invert�iscanonical�is_canonical�isfinite�	is_finite�
isinfinite�is_infinite�isnan�is_nan�isnormal�	is_normal�isqnan�is_qnan�issigned�	is_signed�issnan�is_snan�issubnormal�is_subnormal�iszero�is_zero�maxmag�max_mag�minmag�min_mag�	nextminus�
next_minus�nextplus�	next_plus�
nexttoward�next_toward�or�
logical_or�reduce�	normalize�
remaindernear�remainder_near�samequantum�same_quantum�
squareroot�sqrt�toeng�
to_eng_string�
tointegral�to_integral_value�to_integral_exact�
to_sci_string�logical_xor)�tointegralx�tosci�xor)�ceiling�down�floor�	half_down�	half_even�half_up�up�05up)�clamped�conversion_syntax�division_by_zero�division_impossible�division_undefined�inexact�invalid_context�invalid_operation�overflow�rounded�	subnormal�	underflow)r{r}rr�r�r�r�r�r�r�r�)#rr-r$�readcontext�ignore_list�set�skipped_test_ids�C�add�change_precision�change_rounding_method�change_max_exponent�change_min_exponent�change_clamp�
ChangeDict�NameAdapter�
ROUND_CEILING�
ROUND_DOWN�ROUND_FLOOR�ROUND_HALF_DOWNr.�
ROUND_HALF_UP�ROUND_UP�
ROUND_05UP�RoundingDict�Clamped�InvalidOperation�DivisionByZero�Inexact�Overflow�Rounded�	Subnormal�	Underflow�
ErrorNames�LogicalFunctions��selfs r�setUp�IBMTestCases.setUp�s����|�|�+�+�-����<�<�/�/�1����5���!$�"%�"!���H�<�<�1���!�!�%�%�i�0��!�!�%�%�i�0��!�!�%�%�j�1��!�!�%�%�j�1��!�!�%�%�j�1��!�!�%�%�j�1��!�!�%�%�i�0��!�!�%�%�i�0�*.�)>�)>�(,�(C�(C�+/�+C�+C�+/�+C�+C�%)�%6�%6�	8���$1�E�-�$1�#�H�$1�#�N�$1�)�)9�$1�+�?�	$1�
,�,?�$1�#�>�
$1�&�j�$1�)��$1�'�{�$1�(��$1�%�%5�$1�*�.�$1�'�{�$1�)��$1�$�H�$1� '�{�!$1�"%�Y�#$1�$'�{�%$1�&%�Y�'$1�(*�.�)$1�*%�Y�+$1�,%�Y�-$1�.%�Y�/$1�0(��1$1�2'�{�3$1�4)��5$1�6!��7$1�8%�[�9$1�:,�,<�;$1�<*�.�=$1�>)��?$1�@$�O�A$1�B)�)<�C$1�D+>�$3�"/�I$1���N*7�&0�'2�+:�+:�)6�$,�&0�2���(,�|�|�';�';�15���1N�1N�04���0K�0K�37�<�<�3P�3P�26�,�,�2O�2O�'+�|�|�';�';�/3�|�|�/L�/L�15���1N�1N�(,���(=�(=�'+�|�|�';�';�)-���)?�)?�)-���)?�)?�A���
!1��r'c�l�UR[:Xa�URRS:XalURR	S5 URRS5 URR
S5 URRU5$URRX5$)aWork around the limitations of the 32-bit _decimal version. The
guaranteed maximum values for prec, Emax etc. are 425000000,
but higher values usually work, except for rare corner cases.
In particular, all of the IBM tests pass with maximum values
of 1070000000.�@�Ti���?i�9�)	rr��MAX_EMAXr��_unsafe_setprec�_unsafe_setemax�_unsafe_setemin�create_decimal�Decimal)r��vr$s   r�read_unlimited�IBMTestCases.read_unlimiteds����<�<�1�����!6�!6�)�!C����,�,�Z�8����,�,�Z�8����,�,�[�9��#�#�2�2�1�5�5��<�<�'�'��3�3r'c��[(a[Re[USS9nUH7nUR	SS5R	SS5nURU5nM9 SSS5 g!URRa9nURSURR-S-U-5 SnAM�SnAff=f!,(df   g=f)N�utf-8)�encodingz
��
zException "z" raised on line )�
skip_expected�unittest�SkipTest�open�replace�	eval_liner�DecimalException�fail�	__class__�__name__)r��file�f�line�t�	exceptions      r�	eval_file�IBMTestCases.eval_file(s����=��#�#�#�
�$��
)�Q����|�|�F�B�/�7�7��b�A��e����t�,�A�	�*�
)���|�|�4�4�e��I�I�m�I�,?�,?�,H�,H�H�K^�^�_c�c�d�d��e��
*�
)�s5�(C�A-� C�-C�.B;�5C�;C�C�
Cc��URS5S:�alUSSS:wacURS5(dMURS5SS-URS5SRS5S-R5nO"URS5SR5nURHnURU5S:�dM g U(dgSU;aURU5$UR
U5$)	Nz -> r��--z  --�->��:)�find�
startswith�split�stripr��eval_directive�
eval_equation)r�r�ignores   rr��IBMTestCases.eval_line7s����6�6�&�>�Q��1�R�a�5�D�=����f�9M�9M������q�!�D�(������q�!�'�'��-�a�0�1�27�%�'�
�����
�a� �&�&�(�A��&�&�F��v�v�f�~��"��'���
�A�X��&�&�q�)�)��%�%�a�(�(r'c���SURS55up#US:XaURUnO[U5nURRUS5nU"U5 g![a N2f=f)Nc3�\# �UH"oR5R5v� M$ g7fr)r
�lower)r�xs  rr�.IBMTestCases.eval_directive.<locals>.<genexpr>Js���@�<�a���	���)�)�<�s�*,r	r+c��grr)�argss r�<lambda>�-IBMTestCases.eval_directive.<locals>.<lambda>Ss��$r')rr��int�
ValueErrorr��get)r�r�funct�values    rr�IBMTestCases.eval_directiveIsp��@�1�7�7�3�<�@����J���%�%�e�,�E�
��E�
�����#�#�E�,>�@��
�e���	�
��
�s�A#�#
A0�/A0c��[(d[R"5S:agURR5 UR	S5nUSR5R	5nUSn[(a[SUSS9 USR5nUSSnUSR5R	5nUSnUSSnS	n	X@R;agURR!XU5n
U
S
:Xag[#URU
5n/nSnSn
UVs/sHo�R$UR5PM! nn[&URHnSURR(U'M UHnSURR(U'M [+U5GHunnUR-S5S-S:XaSU
-
n
U
(a
US-U-nM5UU-nSnU	"U5nU
S
;a�[.(avUHpnSURR(U'U"URR1U55 UR3SU<SU<35 SURR(U'Mr URR1U5nOUR5UUR5nUR7U5 GM U	"U5n[.(a�U
S
;a�UHTnSURR(U'U"U6 UR3SU<SU<35 SURR(U'MV [8URVs/sH
nUU;dMUPM nnUH;nSURR(U'U"U6 UR3SU<SU<35 M= UHnSURR(U'M [(a[SUR5 [=U"U65nX�R>;a[=[A[CU555nURE5nURG[HS9 URG[HS9 URKWUSU-S-U-5 URKUUSU-S-[=U5-5 g![[[4a URRef=fs snf!Ua GN}[&URa)nUR3SU<SU<SU<S35 SnAGN�SnAff=f!Ua GN[&URa)nUR3SU<SU<SU<S35 SnAGNASnAff=fs snf!Ua GM[&URa2nUR3S[;U5<SU<SU<35 SnAGMQSnAff=f![&URa$nUR3SU<SU<35 SnAGN�SnAf [SU5 e=f)Ng�������?rrzTest � )�endrrc���URSS5RSS5nURSS5RSS5nURSS5RSS5nU$)Nz''�SingleQuotez""�DoubleQuote�'r��")r�)�vals r�	FixQuotes�-IBMTestCases.eval_equation.<locals>.FixQuotesjs^���+�+�d�M�2�:�:�4��O�C��+�+�c�2�&�.�.�s�B�7�C��+�+�m�S�1�9�9�-��M�C��Jr'�rescaler�r')r�r�zDid not raise z in zRaised z when z	 disabledz; expected rzERROR:��keyzIncorrect answer for z -- got zIncorrect flags set in )&�TEST_ALL�randomr$�clear_flagsrr
�DEBUG�printr�	TypeError�AttributeError�
IndexErrorrr�r�r�rr r�r1r,�	enumerate�count�EXTENDEDERRORTESTr�r�r��append�OrderedSignals�type�strr�r�eval�
getexceptions�sort�repr�assertEqual)r�r�Sides�L�idr�valstemp�ans�
exceptionsr*�fname�vals�conglomerate�quoter�theirexceptionsr�ir)r��error�e�ordered_errors�result�myexceptionss                         rr�IBMTestCases.eval_equationVsj���x�F�M�M�O�d�2����� � �"�	0��G�G�D�M�E��a���� �&�&�(�A��1��B��u��g�r�s�+��a�D�J�J�L�E����u�H��a���� �&�&�(�A��A�$�C��1�2��J�	��&�&�&��� � �$�$�U�2���I�������e�,��������?I�J�z�!�?�?�1�7�7�9�5�z��J� ����.�I�,-�D�L�L���y�)�/�(�I�,-�D�L�L���y�)�)���)�F�A�s��y�y��~��!�Q�&��E�	���+�c�1�C�7���"�S�(��!���#��A��:�:�$�$�!0��45����*�*�5�1�M�!�$�,�,�"=�"=�a�"@�A�!�I�I�%��&K�L�45����*�*�5�1�"1��L�L�/�/��2���'�'��4�<�<�8���K�K��N�7*�:��n�����.P�!P�(��,-����"�"�5�)�E��4�L��I�I�%��C�D�,-����"�"�5�)�)�*8����)E�^�)E�A��o�I]�a�)E�N�^�'��,-����"�"�5�)�E��4�L��I�I�%��C�D�(�(��,-����"�"�5�)�(��5��$����%�	�����&�F��-�-�-��S��f��.�/���)�)�+�����d��#������&������0�1�4�z�A�F�J�	L�	
�����'�!�+�j�8�3�|�;L�L�	N��W�>�:�6�	0��,�,�/�/�/�	0��$K��, %�!� �&�t�|�|�4�5� �I�I�'(�!�U�'4�5�5��5��$����t�|�|�,�-��I�I� �!�U�,�-�-��-��_��
����t�|�|�,�3��I�I�#�A�w��5�2�3�3��3�� �t�|�|�$�	6��I�I�5�!�4�5�5��	��(�A���s��BR�&&S�"!S�?T�
U&�U&�U+�*:W�,S�T�T�/T�T�U#�$U#�:U�U#�+V=�5V=�&V8�8V=�X�W6�6Xc��[URVs/sH$oRRU(dM"UPM& sn$s snfr)r1rr$�flags)r�rPs  rr?�IBMTestCases.getexceptions�s4��"�4�<�<�0�J�0�a�L�L�4F�4F�q�4I��0�J�J��Js
�!A�Ac��UR[:Xa6URRS:XaURR	U5 gXRlg�Nr�)rr��MAX_PRECr$r�r*)r�r*s  rr��IBMTestCases.change_precision�s;���<�<�1�����!6�!6�)�!C��L�L�(�(��.� $�L�L�r'c�$�XRlgr)r$r+)r�r+s  rr��#IBMTestCases.change_rounding_method�s�� (���r'c��UR[:Xa6URRS:XaURR	U5 gXRlgrY)rr�rZr$r��Emin�r��exps  rr�� IBMTestCases.change_min_exponent��;���<�<�1�����!6�!6�)�!C��L�L�(�(��-� #�L�L�r'c��UR[:Xa6URRS:XaURR	U5 gXRlgrY)rr�rZr$r��Emaxr`s  rr�� IBMTestCases.change_max_exponent�rcr'c�$�XRlgr)r$ra)r�ras  rr��IBMTestCases.change_clamp�s��"���r')	r�r�r�r�r�r$r�r�r�N)r��
__module__�__qualname__�__firstlineno__�__doc__r�r�rr�rrr?r�r�r�r�r��__static_attributes__rr'rr:r:�sH��I�K1�Z4�e�)�$�~N�@K�%�
)�$�
$�
#r'r:c�j�\rSrSrSrSrSrSrSrSr	Sr
S	rS
r\
S5rSrS
rSrSrg)�ExplicitConstructionTesti�z6Unit tests for Explicit Construction cases of Decimal.c�j�URRnURU"5U"S55 g)N�0�rr�rB�r�r�s  r�test_explicit_empty�,ExplicitConstructionTest.test_explicit_empty�s'���,�,�&�&�������G�C�L�1r'c�^�URRnUR[US5 gr)rr��assertRaisesr4rss  r�test_explicit_from_None�0ExplicitConstructionTest.test_explicit_from_None�s#���,�,�&�&�����)�W�d�3r'c	��URRnU"S5nUR[U5S5 U"S5nUR[U5S5 U"S5nUR[U5S5 U"S5nUR[U5S5 [	SS	5HVnS
HMn[	SS5H:nUS
U-U--nU"U5nUR[U5[U55 M< MO MX g)N�-�45�{e��	500000123�����-45rrq� ����r����r)rr�rBr=�range)r�r�r�n�signrrNs       r�test_explicit_from_int�/ExplicitConstructionTest.test_explicit_from_int�s����,�,�&�&��
�B�K������Q���&�
�I�������Q���-�
�C�L������Q���'�
�A�J������Q���%��q�"��A����r�1��A���1��q��)�A���
�A��$�$�S��V�S��V�4�&� �r'c
��URRnURRnURRnUR	[U"S55S5 UR	[U"S55S5 UR	[U"S55S5 UR	[U"S55S5 UR	[U"S55S5 UR	[U"S55S	5 UR	[U"S
55S5 UR	[U"S55S
5 UR	[U"S55S5 UR	[U"S55S5 SH3nSH*nUR	[U"US-U-55S5 M, M5 U"5nSURU'URX!S5 UR[USSS5 URX!S5 URX!S5 URX!S5 URX!S5 URX!S5 URX!S5 SSS5 g!,(df   g=f)Nr��NaNr|�45.34�45e2z4.5E+3�uglyz1.3E4 
z1.3E+4z  -7.89z-7.89z  3.45679  z3.45679z	1_3.3e4_0z1.33E+41�1_0_0_0�1000)r�r"� u z	9.311E+28T�xyz�1234r�yu1 2 3u 1 2 r�u  z123z1_2_3)	rr�r��localcontextrBr=r,rwr4)r�r�r�r��lead�trail�cs       r�test_explicit_from_string�2ExplicitConstructionTest.test_explicit_from_strings4���,�,�&�&���<�<�8�8���|�|�0�0��	
����W�R�[�)�5�1�	
����W�T�]�+�T�2�	
����W�W�-�.��8�	
����W�V�_�-�x�8�	
����W�V�_�-�u�5�	
����W�Z�0�1�8�<�����W�Y�/�0�'�:�����W�]�3�4�i�@�	
����W�[�1�2�J�?�����W�Y�/�0�&�9�2�D�6��� � ��W�T�K�-?�%�-G�%H�!I�!,�.�7�2�
�^�q�(,�A�G�G�$�%����.��?����i��&�#�s�C�
���.�9J�K����.�9O�P�
���.��B����.��H�
���.��E�
���.��G�'�^�^�s
�
B'I=�=
Jc���URRnU"S5nUR[U5S5 U"S5nUR[U5S5 U"S5nUR[U5S5 U"S5nUR[U5S5 U"S	5nUR[U5S
5 UR	[
US5 UR	[
US5 UR	[
US
5 UR	[
X"S5SS45 UR	[
US5 UR	[
US5 UR	[
US5 UR	[
US5 UR	[
US5 UR	[
US5 UR	[
US5 UR	[
US5 g)N�r�rrrq�r)�r�rr��r�r�r��r����r��r�	r�r�r�r)rr�r�r�r�����-4.34913534E-17)rr�F�Infinity)r�r�r�r�r)r)�r�r)�r�rrr�r)rr�zwrong!)rr�r�)rr��1)rr�r)r)r�r�r�Nrr)r)r����r�r)rr)r)r��
r�r)rr)r)r�r�r��arr)rr�rBr=rwr�r�r�rs   r�test_explicit_from_tuples�2ExplicitConstructionTest.test_explicit_from_tuplesNs����,�,�&�&��
�\�#������Q���%�
�^�%������Q���'�
�*�,������Q���)�
�:�<������Q��!2�3�
�\�#������Q���,�	
���*�g�/C�E�	
���*�g�/F�H����*�g�/G�I����*�g���
�O�Q�/O�P�	
���*�g�/M�O����*�g�/G�I����*�g�/H�J�	
���*�g�}�>����*�g�/I�K����*�g�/G�I����*�g�/G�I����*�g�/H�Jr'c�h�URRnU"SS/S/5nUR[U5S5 U"S/SQS/5nUR[U5S5 U"/SQ5nUR[U5S5 U"S/SQS45nUR[U5S5 g)Nrrqrr�r�r�r��rr�rBr=r�s   r�test_explicit_from_list�0ExplicitConstructionTest.test_explicit_from_listys����,�,�&�&���Q���Q�K� ������Q���%��Q�3�S�9�:������Q��!2�3��9�:������Q��!2�3��Q�3�S�9�:������Q��!2�3r'c�,�URRnUR[U"S55S5 UR[U"S55S5 UR	U"S5U"S55 UR	U"S5U"S55 g)NrFrT)rr��assertIs�boolrBrss  r�test_explicit_from_bool�0ExplicitConstructionTest.test_explicit_from_bool�so���,�,�&�&���
�
�d�7�1�:�&��.��
�
�d�7�1�:�&��-����������4���������
�3r'c��URRnU"S5nU"U5nUR[U5S5 U"S5nU"U5nUR[U5S5 U"S5nU"U5nUR[U5S5 U"S5nU"U5nUR[U5S5 g)	Nr{r|r}r~rr�rrqr��r�r�rrPs    r�test_explicit_from_Decimal�3ExplicitConstructionTest.test_explicit_from_Decimal�s����,�,�&�&��
�B�K���A�J������Q���&�
�I����A�J������Q���-�
�C�L���A�J������Q���'�
�A�J���A�J������Q���%r'c	�R�URRnU"S5nUR[U5U5 UR[	U5S5 URU"[
S55R55 URU"[
S55R55 URU"[
S55R55 UR[	U"[
S555[	U"S555 UR[	U"[
S555[	U"S555 UR[	U"[
S555[	U"S555 UR[	U"[
S	555[	U"S
555 [S5HVn[R"S5[R"5S
-S-
-nURU[
U"U555 MX g)N皙�����?�90.1000000000000000055511151231257827021181583404541015625�nan�inf�-infr�r��	-Infinity�-0.0�-0���{�G�z�?�@��?)rr�rBr<r=r!�floatr�rr�r0�expovariate)r�r��rrNrs     r�test_explicit_from_float�1ExplicitConstructionTest.test_explicit_from_float�s����,�,�&�&���C�L������a��'�*�����Q��K�	M������e��-�5�5�7�8������e��-�9�9�;�<������f�
�.�:�:�<�=�����W�U�5�\�2�3��W�U�^�,�	.�����W�U�5�\�2�3��W�Z�0�1�	3�����W�U�6�]�3�4��W�[�1�2�	4�����W�U�6�]�3�4��W�T�]�+�	-��s��A��"�"�4�(�F�M�M�O�c�,A�C�,G�H�A����Q��g�a�j� 1�2�r'c	�\
�URRnURRnURRn[R"URR55nSUlU"5nUR[U5S5 UR5nUR[U5S5 UR[URS5 URS5nURXQ5 URURS5URS55 U"S5nUR[U5S5 URS5nUR[U5S5 UR[URS55S	5 U"S
5nUR[U5S5 URS
5nUR[U5S5 U"S
5nU"U5nUR[U5S5 URU5nUR[U5S5 SUlSURU'SHInURU5nUR[XQ55 UR[!U5U5 MK SUlSURU'URX4RS5 SUlUR[URS55S5 UR[URS55S5 UR[URS55S5 UR[URS55S5 URX$RS5 UR["URS5 UR[URSS5 URX$RS5 URX$RS5 SUlURX$RS 5 URX$RU"S 55 S!URU'UR[URS 55S	5 URUR$U5 S!UR$U'UR[URU"S 555S	5 URUR$U5 g)"Nr�rq��in�z457E+2�456789z4.57E+5z3.14
r�r�r�z	-4.35E-17r}r~z5.00E+8�T)	l����l����l����i�r��l��������z0E-017z0E-17r|�-Infr��NaN123r�)rr�r�r��5678z 1234�12_34�NaN12345F)rr�r�r�rn�
getcontextr*rBr=r�rwr4�assertIsInstancer,r!�
isinstancerrrV)r�r�r�r��ncr�prevdecr�s        r�$test_explicit_context_create_decimal�=ExplicitConstructionTest.test_explicit_context_create_decimal�sG���,�,�&�&���<�<�8�8���,�,�&�&��
�Y�Y�t�|�|�.�.�0�
1�����
�I������Q���%����������Q���%�	
���)�R�%6�%6��=�
���c�"�����a�)�����*�*�5�1��*�*�8�4�	6�
�H�������Q���*����h�'������Q���+�	
����R�.�.�x�8�9�5�A�
�:�<������Q��!2�3����D�F������Q���-��)�$���G�������Q���-����g�&������Q���+����%)����!�"�3�A��!�!�!�$�A��O�O�J�q�2�3����S��V�Q�'�	3���� ���������'�#4�#4�d�;��������R�.�.�x�8�9�7�C�����R�.�.�t�4�5�t�<�����R�.�.�v�6�7��E�����R�.�.�x�8�9�8�D�	
���*�,=�,=�u�E����*�b�&7�&7��I����)�R�%6�%6���G����*�,=�,=�w�G����*�,=�,=�w�G�������*�,=�,=�z�J����*�,=�,=�!�*�-�	/�&+����!�"�����R�.�.�z�:�;�U�C�������!1�2�3�%*����!�"�����R�.�.�w�z�/B�C�D�e�L�������!1�2�3r'c	�~�URRnURR5nURS5nUR	[U5U5 UR	[
U5S5 URUR[S55R55 URUR[S55R55 URUR[S55R55 UR	[
UR[S555[
URS555 UR	[
UR[S555[
URS555 UR	[
UR[S555[
URS555 UR	[
UR[S	555[
URS
555 SUl[S5H_n[R"S
5[R"5S-S-
-nUR	U[URU555 Ma g)Nr�z0.1000000000000000055511151231r�r�r�r�r�r�r�r��dr�r�r�r�)rr�r-r�rBr<r=r!r�r�rr*r�r0r�)r�r�r�r�rNrs      r�'test_explicit_context_create_from_float�@ExplicitConstructionTest.test_explicit_context_create_from_floats����,�,�&�&��
�\�\�
!�
!�
#�����c�"������a��'�*�����Q��!A�B�����)�)�%��,�7�?�?�A�B�����)�)�%��,�7�C�C�E�F�����)�)�%��-�8�D�D�F�G�����R�.�.�u�U�|�<�=��R�.�.�u�5�6�	8�����R�.�.�u�U�|�<�=��R�.�.�z�:�;�	=�����R�.�.�u�V�}�=�>��R�.�.�{�;�<�	>�����R�.�.�u�V�}�=�>��R�.�.�t�4�5�	7�����s��A��"�"�4�(�F�M�M�O�c�,A�C�,G�H�A����Q��b�&7�&7��&:� ;�<�r'c��URRnSSSS.nUR5H&up4UR[	U"U55U5 M( g)Nr�z	0.0000372z-NaN2400)u1u٠.٠٣٧٢e-٣u-nan౨౪౦౦)rr��itemsrBr=)r�r��test_values�inputrs     r�test_unicode_digits�,ExplicitConstructionTest.test_unicode_digits0sS���,�,�&�&���8C�-7���
 +�0�0�2�O�E����S����0�(�;� 3r'rN)r�rirjrkrlrtrxr�r�r�r�r�r�rr�r�r�r�rmrr'rroro�sV��@�2�4�5�66H�p)K�V
4�4�&�.�3��3�.W4�r=�0	<r'roc��\rSrSr\rSrg)�CExplicitConstructionTesti;rN�r�rirjrkr�rrmrr'rr�r�;����Gr'r�c��\rSrSr\rSrg)�PyExplicitConstructionTesti>rN�r�rirjrk�Prrmrr'rr�r�>����Gr'r�c�<�\rSrSrSrSrSrSrSrSr	Sr
S	rg
)�ImplicitConstructionTestiAz6Unit tests for Implicit Construction cases of Decimal.c�x�URRnUR[[S[55 g)NzDecimal(5) + None�rr�rwr4r>�localsrss  r�test_implicit_from_None�0ImplicitConstructionTest.test_implicit_from_NoneDs(���,�,�&�&�����)�T�+>���Ir'c��URRnUR[U"S5S-5S5 URU"S5S-U"S55 g)Nr�r{�50l2}rr�rss  r�test_implicit_from_int�/ImplicitConstructionTest.test_implicit_from_intHsN���,�,�&�&��	
����W�Q�Z�"�_�-�t�4�������l�2�G�L�4I�Jr'c�x�URRnUR[[S[55 g)NzDecimal(5) + "3"r�rss  r�test_implicit_from_string�2ImplicitConstructionTest.test_implicit_from_stringP�(���,�,�&�&�����)�T�+=�v�x�Hr'c�x�URRnUR[[S[55 g)NzDecimal(5) + 2.2r�rss  r�test_implicit_from_float�1ImplicitConstructionTest.test_implicit_from_floatTr	r'c�~�URRnURU"S5U"S5-U"S55 g)Nr�r{�2rrrss  r�test_implicit_from_Decimal�3ImplicitConstructionTest.test_implicit_from_DecimalXs2���,�,�&�&��������g�b�k�1�7�2�;�?r'c�*^^�URRn"SS5nUR[U"5U"S55S5 UR[U"S5U"55S5 UR[	S5S5 UR[	S5S	5 UR[	S
5S5 UR[	S5S
5 UR[	S5S5 UR[	S5S5 /SQnUHwunmm[UTU4Sj5 [UTU4Sj5 UR[	SU-S-5ST-S-5 UR[	SU-S-5ST-S-5 My g)Nc�D�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rg)�,ImplicitConstructionTest.test_rop.<locals>.Ei`c��S[U5-$)Nzdivmod �r=�r��others  r�
__divmod__�7ImplicitConstructionTest.test_rop.<locals>.E.__divmod__as�� �3�u�:�-�-r'c��[U5S-$)Nz rdivmodrrs  r�__rdivmod__�8ImplicitConstructionTest.test_rop.<locals>.E.__rdivmod__cs���5�z�J�.�.r'c��S[U5-$)Nzlt rrs  r�__lt__�3ImplicitConstructionTest.test_rop.<locals>.E.__lt__e����s�5�z�)�)r'c��S[U5-$)Nzgt rrs  r�__gt__�3ImplicitConstructionTest.test_rop.<locals>.E.__gt__gr r'c��S[U5-$)Nzle rrs  r�__le__�3ImplicitConstructionTest.test_rop.<locals>.E.__le__ir r'c��S[U5-$)Nzge rrs  r�__ge__�3ImplicitConstructionTest.test_rop.<locals>.E.__ge__kr r'c��S[U5-$)Nzeq rrs  r�__eq__�3ImplicitConstructionTest.test_rop.<locals>.E.__eq__mr r'c��S[U5-$)Nzne rrs  r�__ne__�3ImplicitConstructionTest.test_rop.<locals>.E.__ne__or r'rN)
r�rirjrkrrrr"r%r(r+r.rmrr'r�Er`s*��
.�
/�
*�
*�
*�
*�
*�
*r'r0r�z	divmod 10z
10 rdivmodzDecimal(10) < E()zgt 10zDecimal(10) > E()zlt 10zDecimal(10) <= E()zge 10zDecimal(10) >= E()zle 10zDecimal(10) == E()zeq 10zDecimal(10) != E()zne 10))�+�__add__�__radd__)�-�__sub__�__rsub__)�*�__mul__�__rmul__)�/�__truediv__�__rtruediv__)�%�__mod__�__rmod__)z//�__floordiv__�
__rfloordiv__)z**�__pow__�__rpow__c�&>�ST-[U5-$�Nr=r)r�r�lops  �rr�3ImplicitConstructionTest.test_rop.<locals>.<lambda>�s������c�%�j�0Hr'c�&>�[U5T-S-$rEr)r�r�rops  �rrrG�s����E�
�S�0@�5�0Hr'zE()zDecimal(10)r=�10)rr�rB�divmodr>�setattr)r�r�r0�oplist�symrFrIs     @@r�test_rop�!ImplicitConstructionTest.test_rop\sd����,�,�&�&��	*�	*�$	
������W�R�[�1�;�?��������Q�S�1�<�@�����1�2�G�<�����1�2�G�<�����2�3�W�=�����2�3�W�=�����2�3�W�=�����2�3�W�=�
��$�M�C��c��A�s�H�I��A�s�H�I����T�%�#�+�
�"=�>�"�S�[�4�/�
1����T�-�#�"5��"=�>�!�C�Z�%�/�
1�$r'rN)r�rirjrkrlrrrrrrOrmrr'rr�r�As(��@�J�K�I�I�@�01r'r�c��\rSrSr\rSrg)�CImplicitConstructionTesti�rNr�rr'rrRrR�r�r'rRc��\rSrSr\rSrg)�PyImplicitConstructionTesti�rNr�rr'rrTrT�r�r'rTc�\�\rSrSrSrSrSrSrSrSr	\
"SS	S
5S5rSrS
r
g)�
FormatTesti�z#Unit tests for the format function.c���URRn/SQnUH(up4nUR[U"U5U5U5 M* UR	[
U"S5RS5 g)N)�)rP�0E-15z0e-15)rPz2.3E-15z2.3e-15)rPz2.30E+2z2.30e+2)rPz2.30000E-15z2.30000e-15)rPz1.23456789123456789e40z1.23456789123456789e+40)rP�1.5z1.5e+0)rPz0.15z1.5e-1)rPz0.015z1.5e-2)rPz0.0000000000015z1.5e-12)rPz15.0z1.50e+1)rP�-15z-1.5e+1)rPrqz0e+0)rP�0E1�0e+1)rP�0.0z0e-1)rP�0.00�0e-2)�.6erXz0.000000e-9)r`rqz0.000000e+6)r`z9.999999z9.999999e+0)r`z	9.9999999z1.000000e+1)r`z-1.23e5z-1.230000e+5)r`z
1.23456789e-3z1.234568e-3)r�rqrq)r�r]r])r��0E-2r^)r�z0.00E-8�0.0000000000)r�r[rq)r�z3.2E1�32)r�z3.2E2�320)r�z3.20E2rd)r�z3.200E2z320.0)r�z3.2E-6z	0.0000032)�.6frX�0.000000)rer[rf)rerqrf)�.0frqrq)rgr_rq)rg�
3.14159265�3)�.1frh�3.1)z.4frh�3.1416)rerh�3.141593)z.7frh�	3.1415926)z.8frhrh)z.9frhz3.141592650)�grqrq)ror]r])ror[r\)�Gr[z0E+1)roz0E-5z0.00000)roz0E-6rf)roz0E-7z0e-7)roz-0E2z-0e+2)�.0grhri)z.0nrhri)z.1grhri)z.2grhrk)z.5grhrl)z.7grhrm)z.8grhrn)z.9grhrh)z.10grhrh)r=r[�0%)r=�0E0rr)r=z0E-1rr)r=rarr)r=z0E-3z0.0%)r=z0E-4z0.00%)�.3%rq�0.000%)rt�0E10ru)rtz0E-10ru)rtz2.34z234.000%)rtz1.234567z123.457%)�.0%�1.23z123%)rPr�r�)r��-NaN123ry)z+g�NaN456z+NaN456)z.3e�Infr�)z.16fr�r�)rq�-sNaNr|)r��1.00r})�6�123�   123)z<6rz123   )z>6rr�)z^6rz 123  )z=+6rz+  123)�#<10r�z
NaN#######)r�z-4.3z
-4.3######)z#<+10�0.0130z
+0.0130###)z#< 10r�z
 0.0130###)z@>10r�z
@-Infinity)z#>5r�r�)z?^5rz?123?)z%^6rz%123%%)z ^6�-45.6z-45.6 )z/=10r�z
-/////45.6)z/=+10�45.6z
+/////45.6)z/= 10r�z
 /////45.6)z=10r�z
-Infinity)z^16r�z-Infinity)z>10�1.2345z
1.2345)z<10r�z
1.2345)�,�1234567z	1,234,567)r��123456�123,456)r��12345�12,345)r�r�z1,234)r�rr)r��12r�)r�r�r�)r�rqrq)r�z-1234567z
-1,234,567)r��-123456�-123,456)z7,r�r�)z8,r�� 123,456)�08,r�z	0,123,456)z+08,r�z+123,456)z 08,r�r�)r�r�r�)z+09,r�z
+0,123,456)z07,�1234.56�1,234.56)r�r�r�)z09,r�z	01,234.56)z010,r�z
001,234.56)z011,r��0,001,234.56)z012,r�r�)z08,.1fz1234.5z01,234.5)r��
1.23456789r�)z,%�
123.456789z12,345.6789%)z,er�z
1.23456e+5)z,Er�z
1.23456E+5)�_r��	1_234_567)�07_r�z1_234.56)r�r�r�)z_%r�z12_345.6789%)rjr�r�)rjz-.0r�)rj�-.01r�)�z.1f�0.r])�z6.1fr�z   0.0)r��-1.z  -1.0)r��-0.r])r��.01r])r�r�r])�z.2fr�r^)r�r�r^)r�z.001r^)r�z-.001r^)�z.1er��0.0e+1)r�r�r�)�z.1Er��0.0E+1)r�r�r�)zz.2e�-0.001z-1.00e-3)zz.2gr�r�)zz.2%r�z-0.10%)�zfz-0.0000z0.0000)r��
-00000.000001r])r��-00000.r])r��-.0000000000r])r�r�r^)r�r�r^)r�r�r^)r�z.09�0.1)r�z-.09z-0.1)� z.0fr�z 0)�+z.0fr�z+0)�-z.0fr�rq)r�r��-1)r�r�r�)r�r�r�)zz>6.1fr�zzz-0.0)zz>z6.1fr�zzzz0.0)zx>z6.1fr�zxxx0.0)u
🖤>z6.1fr�u🖤🖤🖤0.0)z>z6.1fr�z0.0)zz3,.10Fz
-6.24E-323rb)r=rqr�)za=-7.0z0.12345zaaaa0.1)z	<^+15.20%r�z<<+Infinity%<<<)z>,%�sNaN1234567zsNaN1234567%)z=10.10%r�z
   NaN123%rs-020)rr�rB�formatrwr4�
__format__)r�r�r��fmtrrRs      r�test_formatting�FormatTest.test_formatting�sc���,�,�&�&��S��h*�N�C�F����V�G�A�J��4�f�=�*�	
���)�W�Q�Z�%:�%:�G�Dr'c���URR5n[UlUR	[URR
S5S5S5 SSS5 g!,(df   g=f)Nr�r�r^)rr�r�r+rBr�r��r��ctxs  r�+test_negative_zero_format_directed_rounding�6FormatTest.test_negative_zero_format_directed_roundingtsP��
�\�\�
&�
&�
(�C�(�C�L����V�D�L�L�$8�$8��$B�F�K�"�
$�)�
(�
(�s�AA%�%
A3c�n�UR[[URR	S5S5 g)Nrx�fz)rwrr�rr�r�s r�test_negative_zero_bad_format�(FormatTest.test_negative_zero_bad_formatzs%�����*�f�d�l�l�.B�.B�6�.J�D�Qr'c��^^	�TRRm	SSKJn U4SjnS>U	U4SjjnSU"/SQ5SS	.nSU"W/5S
S	.nSU"/SQ5SS	.nSU"S
SSU/5SS	.nSR
S5U"/SQ5SR
S5S	.nTRU"T	"S5U5S5 TRU"T	"S5U5S5 TRU"T	"S5U5S5 TRU"T	"S5U5S5 TRU"SU5S5 TRU"SU5S5 TRU"SU5S5 TRU"SU5S5 TRU"SUS5S5 TRU"SUS5S5 TRU"SUS5S5 TRU"SUS5S 5 TRU"S!US"5S#5 TRU"S!US$5S#5 TRU"S!US%5S&5 TRU"S!US'5S(5 TRU"S)US%5S*5 TRU"S)US'5S*5 TRU"S)US+5S,5 TRU"S)US-5S.5 TRU"S)US/5S.5 TRU"S)US05S15 TRU"S2US'5S35 TRU"S2US+5S35 TRU"S2US-5S35 TRU"S2US/5S45 TRU"S2US05S55 TRU"S2US65S55 TRU"S2US75S85 TRU"S2US95S:5 TRU"T	"S;5US<5S=5 g![a TRS5 GN�f=f)?Nr��CHAR_MAX�locale.CHAR_MAX not availablec�>�TR[:Xa+SRUVs/sHn[U5PM sn5$U$s snf�Nr�)rr��join�chr)�lstrr�s  �r�
make_grouping�/FormatTest.test_n_format.<locals>.make_grouping�s8���59�\�\�Q�5F�2�7�7�C�0�C�q�C��F�C�0�1�O�C�O��0s�Ac�>�TR[:XaT"U5RX!5$T"U5RX!S9$)N)�_localeconv)rr�r�)r�overrider�r�r�s   ��r�get_fmt�)FormatTest.test_n_format.<locals>.get_fmt�s<����|�|�q� ��q�z�,�,�S�;�;��q�z�,�,�S�,�G�Gr'�.�r�r�rr���
decimal_point�grouping�
thousands_sepr�r"�&rr�rr4s¿r�s´z12.7z12,7z1-2&7i�[z123,456,789�	123456789z123 456 789l��c}z123456-78-9012-3z.6nz
1.23457e+8z
1,23457e+8z
1&23457e+8r��03nr��04n�05n�01234�06n�001234�90r��07nz012,345�08nz	0,012,345�09n�010nz
00,012,345i@�z1-2345-6z	01-2345-6z0-01-2345-6�011n�012nz00-01-2345-6�013nz
000-01-2345-6�-1.5�020nu-0´000´000´000´001¿5�Nr�)rr��localer��ImportError�skipTest�decoderB)
r�r�r�r��en_US�fr_FR�ru_RU�crazy�dotsep_wider�s
`        @r�
test_n_format�FormatTest.test_n_format}s�����,�,�&�&��	;�'�	P�	H�	H�"�&�y�1�!���"�&��z�2� ���"�%�i�0�!���"�%�q�!�Q��&9�:�!���*�0�0��9�%�i�0�)�0�0��9���	
�������%�8�&�A��������%�8�&�A��������%�8�&�A��������%�8�'�B������E�2�M�B������E�2�K�@������E�2�M�B�������6�8J�K������E�5�9�<�H������E�5�9�<�H������E�5�9�<�H������E�5�9�<�H�	
�����u�e�4�f�=������u�e�4�f�=������u�e�4�g�>������u�e�4�h�?�������u�5�x�@�������u�5�x�@�������u�5�y�A�������u�5�{�C�������u�5�{�C�������v�6��E��������6�
�C��������6�
�C��������6�
�C��������6��D��������7��G��������7��G��������7��H��������7��I�	
�������+�v�F�H�	J��c�	;��M�M�9�:�	;�s�O�O0�/O0c���URRnU"S5nUR[:Xa�UR[5n[US5nSSS5 UR
WR[5 UR
W[US5R55 UR[5n[US5nSSS5 UR
UR[5 UR
U[US5R55 O8UR[[
US5 UR[[
US5 [R"U5 UR
[US5S5 UR
[US5S	5 UR
[US
5S5 UR
[US5S
5 UR[[
US5 UR[[
US5 UR[[
US5 SSS5 g!,(df   GN�=f!,(df   GN�=f!,(df   g=f)Nz6.62607015e-34�Nr�z010.3Nz010.3nzN>10.3z
NN6.63E-34zN>10.3nz
NN6.63e-34zN>10.3ez
N6.626e-34zN>10.3fz
NNNNN0.000z>Nf�10Nf�Nx)rr�r��assertWarns�DeprecationWarningr�rB�filename�__file__�upperrwrr
�check_no_warnings)r�r��h�cmr�s     r�test_deprecated_N_format�#FormatTest.test_deprecated_N_format�s����,�,�&�&���$�%���<�<�1���!�!�"4�5���1�c�N��6����R�[�[�(�3����Q��q�#�� 4� 4� 6�7��!�!�"4�5���1�h�'��6����R�[�[�(�3����Q��q�(� 3� 9� 9� ;�<����j�&�!�S�9����j�&�!�X�>�
�
.�
.�t�
4����V�A�x�0�,�?����V�A�y�1�<�@����V�A�y�1�<�@����V�A�y�1�<�@����j�&�!�U�;����j�&�!�V�<����j�&�!�T�:�5�
4�6�5��6�5��5�
4�s%�
H8�<
I
�*CI�8
I�

I�
I*�LC_ALL�ps_AFr�c�p�URRn[R"5Sn[R"5SnUS:wa!UR	SRUS55 US:wa!UR	SRUS55 UR
[U"S5S5S	5 g)
Nr�r�u٫z5inappropriate decimal point separator ({!a} not {!a})u٬z1inappropriate thousands separator ({!a} not {!a})z
100000000.123r�u100٬000٬000٫123)rr�r��
localeconvr�r�rB)r�r�r�r�s    r�&test_wide_char_separator_decimal_point�1FormatTest.test_wide_char_separator_decimal_point�s����,�,�&�&���)�)�+�O�<�
��)�)�+�O�<�
��H�$��M�M�,�,2�F�=�(�,K�
M��H�$��M�M�,�,2�F�=�(�,K�
M�	
������ 8�#�>�9�	;r'c�F�"SSURR5nURS5nURURRUR5 URS5nURURRUR5 g)Nc��\rSrSrSrSrg)�;FormatTest.test_decimal_from_float_argument_type.<locals>.Aic�$�[U5Ulgr)r<�a_type)r�r�s  r�__init__�DFormatTest.test_decimal_from_float_argument_type.<locals>.A.__init__s
��"�1�g��r')r
N�r�rirjrkrrmrr'r�Ars��
&r'rg@E@�*)rr��
from_floatrBr
)r�rr�s   r�%test_decimal_from_float_argument_type�0FormatTest.test_decimal_from_float_argument_type�sr��	&����$�$�	&�
�L�L����������-�-�q�x�x�8�
�L�L����������-�-�q�x�x�8r'rN)r�rirjrkrlr�r�r�r�r�rrrrmrr'rrVrV�sG��-�\E�|$�R�WJ�r;�0�X�w��+�;�,�;� 9r'rVc��\rSrSr\rSrg)�CFormatTesti	rNr�rr'rrr	r�r'rc��\rSrSr\rSrg)�PyFormatTestirNr�rr'rrrr�r'rc�Z�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrg)�ArithmeticOperatorsTestiz:Unit tests for all arithmetic operators, binary and unary.c�&�URRnU"S5nU"S5nURX#-U"S55 URX2-U"S55 US-nURXA"S55 UR[U5[U55 SU-nURXA"S55 UR[U5[U55 X#-
nURX!"S55 US-
nURX!"S55 g)N�-11.1�22.2z11.1r�z-6.1�16.1�rr�rBr<�r�r��d1�d2r�s     r�
test_addition�%ArithmeticOperatorsTest.test_additions����,�,�&�&��
�W�
��
�V�_��	
��������0���������0�
��F������G�F�O�,�����a��$�r�(�+�
��F������G�F�O�,�����a��$�r�(�+�	�������W�V�_�-�	�a�������W�V�_�-r'c�&�URRnU"S5nU"S5nURX#-
U"S55 URX2-
U"S55 US-
nURXA"S55 UR[U5[U55 SU-
nURXA"S55 UR[U5[U55 X#-nURX!"S55 US-nURX!"S55 g)	Nrrz-33.3z33.3r�z-16.1rz-38.3rrs     r�test_subtraction�(ArithmeticOperatorsTest.test_subtraction.s���,�,�&�&��
�W�
��
�V�_��	
������� 0�1���������0�
��F������G�G�,�-�����a��$�r�(�+�
��F������G�F�O�,�����a��$�r�(�+�	�������W�W�-�.�	�a�������W�W�-�.r'c�&�URRnU"S5nU"S5nURX#-U"S55 URX2-U"S55 US-nURXA"S55 UR[U5[U55 SU-nURXA"S55 UR[U5[U55 X#-nURX!"S55 US-nURX!"S55 g)N�-5rirZr�z-25z-75rrs     r�test_multiplication�+ArithmeticOperatorsTest.test_multiplicationJs����,�,�&�&��
�T�]��
�S�\��	
��������/���������/�
��F������G�E�N�+�����a��$�r�(�+�
��F������G�E�N�+�����a��$�r�(�+�	�������W�U�^�,�	�a�������W�U�^�,r'c�&�URRnU"S5nU"S5nURX#-U"S55 URX2-U"S55 US-nURXA"S55 UR[U5[U55 SU-nURXA"S55 UR[U5[U55 X#-nURX!"S55 US-nURX!"S55 g)	Nr'�2�-2.5z-0.4r�z-1.25z-0.8z-0.625rrs     r�
test_division�%ArithmeticOperatorsTest.test_divisionfs����,�,�&�&��
�T�]��
�S�\��	
��������0���������0�
��F������G�G�,�-�����a��$�r�(�+�
��F������G�F�O�,�����a��$�r�(�+�	�������W�V�_�-�	�a�������W�X�.�/r'c�&�URRnU"S5nU"S5nURX#-U"S55 URX2-U"S55 US-nURXA"S55 UR[U5[U55 SU-nURXA"S55 UR[U5[U55 X#-nURX!"S55 US-nURX!"S55 g)N�5r+rqr�r��rrrs     r�test_floor_division�+ArithmeticOperatorsTest.test_floor_division�s����,�,�&�&��
�S�\��
�S�\��	
��������.���������.�
�!�G������G�C�L�)�����a��$�r�(�+�
��G������G�C�L�)�����a��$�r�(�+�	�	������W�S�\�*�	�q�������W�S�\�*r'c�&�URRnU"S5nU"S5nURX#-U"S55 URX2-U"S55 US-nURXA"S55 UR[U5[U55 SU-nURXA"S55 UR[U5[U55 X#-nURX!"S55 US-nURX!"S	55 g)
Nr0r+�25rcr��625r1�16807�390625rrs     r�
test_powering�%ArithmeticOperatorsTest.test_powering�s����,�,�&�&��
�S�\��
�S�\��	
��������/���������/�
�!�G������G�E�N�+�����a��$�r�(�+�
��G������G�G�,�-�����a��$�r�(�+�	�	������W�T�]�+�	�q�������W�X�.�/r'c�&�URRnU"S5nU"S5nURX#-U"S55 URX2-U"S55 US-nURXA"S55 UR[U5[U55 SU-nURXA"S55 UR[U5[U55 X#-nURX!"S55 US-nURX!"S55 g�Nr0r+r�r�r1rrs     r�test_module�#ArithmeticOperatorsTest.test_module�s����,�,�&�&��
�S�\��
�S�\��	
��������-���������-�
��F������G�C�L�)�����a��$�r�(�+�
��F������G�C�L�)�����a��$�r�(�+�	�������W�S�\�*�	�a�������W�S�\�*r'c�f�URRnU"S5nU"S5n[X#5upEURXA"S55 URXQ"S55 UR[	U5[	U55 UR[	U5[	U55 [US5upEURXA"S55 URXQ"S55 UR[	U5[	U55 UR[	U5[	U55 [SU5upEURXA"S55 URXQ"S55 UR[	U5[	U55 UR[	U5[	U55 gr<)rr�rKrBr<)r�r�rr �p�qs      r�test_floor_div_module�-ArithmeticOperatorsTest.test_floor_div_module�sV���,�,�&�&��
�S�\��
�S�\�����������G�C�L�)�����G�C�L�)�����a��$�r�(�+�����a��$�r�(�+���A��������G�C�L�)�����G�C�L�)�����a��$�r�(�+�����a��$�r�(�+���2��������G�C�L�)�����G�C�L�)�����a��$�r�(�+�����a��$�r�(�+r'c��URRnURU"S57U"S55 URU"S5*U"S55 UR[U"S55[U"S555 g)Nr{r)rr�rB�absrss  r�test_unary_operators�,ArithmeticOperatorsTest.test_unary_operators�sg���,�,�&�&�����'�"�+��w�s�|�4����'�"�+��w�s�|�4�����W�R�[�)�3�w�s�|�+<�=r'c�
�URRnURRnURRnU"S5nU"S5nU"S5nU"S5nXD4XF4Xd4XG4Xt44nXT4XE4XV4Xe4XW4Xu4XU44n	[R
[R[R[R4n
[R[R4nU"5nSURU'X�-H^up�X�-HQnU"X�5nU[RLaSOSnURUUSRUURX�U55 MS M` SSS5 U"5nS	URU'UH\up�UHQnU"X�5nU[RLaSOSnURUUSRUURX�U55 MS M^ U	HPup�UHEnURU[RX�5 URU[RX�5 MG MR X�-H up�U
HnURX/X�5 M M" SSS5 g!,(df   GN=f!,(df   g=f)
Nr��sNaNr{r+rTFz8expected {0!r} for operator.{1}({2!r}, {3!r}); got {4!r}r)rr�r�r��operator�lt�le�gt�ge�eq�ner,r�r�r�rw)r�r�r�r�r�rrNr��
qnan_pairs�
snan_pairs�	order_ops�equality_opsr�rr��op�gotrs                  r�test_nan_comparisons�,ArithmeticOperatorsTest.test_nan_comparisons�s@���,�,�&�&���<�<�8�8���|�|�0�0���E�N���F�O���E�N���C�L���V�a�V�a�V�a�V�a�V�;�
��V�a�V�a�V�a�V�a�V�a�V�a�V�K�
��K�K����h�k�k�8�;�;�F�	��{�{�H�K�K�/���^�s�*+�C�I�I�&�'�"�/���#�2�B��Q�(�C�')�X�[�[�'8�t�e�H��M�M�(�C�!,�,2�F�$�b�k�k�1��->�?�3�0���^�s�*+�C�I�I�&�'�"���&�B��Q�(�C�')�X�[�[�'8�t�e�H��M�M�(�C�#.�.4�f�$�b�k�k�1��/>�?�'�#�#���&�B��%�%�&6����Q�J��%�%�&6����Q�J�'�#�
#�/���#�B��%�%�&6�A�A�$�0�%�^��^���^�s�$A6I"�)C0I4�"
I1�4
Jc��URRnU"S5RU"S55nURU"S5RS5U5 UR	[
U"S5RS5 g)Nrr��-2)rr�rurBrwr4r�s   r�test_copy_sign�&ArithmeticOperatorsTest.test_copy_sign2sd���,�,�&�&���A�J� � ����-��������-�-�b�1�1�5����)�W�Q�Z�%9�%9�4�@r'rN)r�rirjrkrlr!r$r(r-r2r9r=rBrFrWr[rmrr'rrrs?��D�.�8/�8-�80�8+�80�8+�8,�6>�8B�tAr'rc��\rSrSr\rSrg)�CArithmeticOperatorsTesti9rNr�rr'rr^r^9r�r'r^c��\rSrSr\rSrg)�PyArithmeticOperatorsTesti<rNr�rr'rr`r`<r�r'r`c
�b�URRnURRnURRnURRnURR
nURRnURRnURRnU"S5n	U"S5n
X�-nURR5 URR5 X�-nU"5n
URU
RU5 URX=R U	S5 URU
RU5 U"5nURURU5 URURU5 URX.R"X�"S55 URURU5 ASSS5 UR%U
RU5 A
SSS5 UR'X�"S55 UR'X�"S55 U"5nURURU5 XEX24H!nUR%URU5 M# g!,(df   N�=f!,(df   N�=f)Nrr�rrI�0.333333333333333333333333)rr�r�r�r�r�r�r�r��finish1r��synchro�waitr!rVrw�divide�compare�assertFalserB)r#r�r�r�r�r�r�r�r�r�d3�test1�test2�c2�c3�c1�sigs                 r�thfunc1rpAs���k�k�!�!�G��{�{�3�3���[�[�/�/�N��{�{�#�#�H����%�%�I��k�k�!�!�G����'�'�J��;�;�+�+�L�	���B�	���B��E�E��K�K�O�O���K�K�����E�E�	��2����r�x�x��(�)�������B��:����r�x�x��/�0�
�^�r��N�N�2�8�8�G�,�-��N�N�2�8�8�N�3�4����-�z�z�2�w�v��O��N�N�2�8�8�$4�5�6���	������!1�2�3��
��O�O�E�7�#?�@�A��O�O�E�7�#?�@�A�	��B��N�N�2�8�8�G�$�%��N�D���������
�&�E��^��	
��s&�A!J �%A>J�#'J �
J	�J � 
J.c	��URRnURRnURRnURRnURR
nURRnURRnURRnU"S5n	U"S5n
X�-nU"5nSUl	X�-n
U"5nURURU5 URXNRU"S5S5 URURU5 U"U5nURURU5 URURU5 SURU'URX_R U"S5S5 URURU5 ASSS5 URURU5 URURU5 ASSS5 UR"R%5 UR&R%5 UR)X�"S55 UR)X�"S	55 URURU5 URURU5 XEX24H!nURURU5 M# g!,(df   GN=f!,(df   N�=f)
Nrr���1e425000000��Tz1e-425000000rbz0.333333333333333333)rr�r�r�r�r�r�r�r�r*r!rVrw�multiplyrhr,rfrdr��finish2rB)r#r�r�r�r�r�r�r�r�rrirj�thiscontextrkrlrmros                 r�thfunc2rxhsP���k�k�!�!�G��{�{�3�3���[�[�/�/�N��{�{�#�#�H����%�%�I��k�k�!�!�G����'�'�J��;�;�+�+�L�	���B�	���B��E�E��,�K��K���E�E�	��2����r�x�x��(�)�����;�;��
�0F��L����r�x�x��)�*�
�+�
&�"��N�N�2�8�8�G�,�-��O�O�B�H�H�X�.�/�"&�B�H�H�Y�����Y�	�	�7�>�3J�C�P��N�N�2�8�8�I�.�/��
'�	�������+�,��������+�,��
��K�K�O�O���K�K�O�O���O�O�E�7�#?�@�A��O�O�E�7�#9�:�;��O�O�K�%�%�i�0�1��N�N�;�$�$�W�-�.��N�D������)�)�#�.�/�E�''�
&��	
��s'�A(K;�BK)�AK;�)
K8	�3K;�;
L	c��\rSrSrSrSrSrg)�
ThreadingTesti�z0Unit tests for thread local contexts in Decimal.c��URRnUR[:Xa,URR(dUR	S5 UR
nURnURnSUlSUlSUl[R"5Ul
[R"5Ul[R"5Ul[R"[U4S9n[R"[U4S9nUR!5 UR!5 URR#5 URR#5 [$URH!nUR'UR(U5 M# UR+5 UR+5 X!lX1lXAlg)Nzcompiled without threading�r����)�targetr)r�DefaultContextr��HAVE_THREADSr�r*rer_�	threading�Eventrdrcrv�Threadrprx�startrer1rhrVr�)r�r�	save_prec�	save_emax�	save_emin�th1�th2ros        r�test_threading�ThreadingTest.test_threading�sG�����4�4���<�<�1��T�\�\�%>�%>��M�M�6�7�#�'�'�	�"�'�'�	�"�'�'�	� ���'���(��� ���(��� ���(��� ���(������g�T�G�<�����g�T�G�<���	�	���	�	���������������4�<�<�(�C����^�1�1�#�6�7�)�	���
����
�'��'��'�r')rcrvrdN)r�rirjrkrlr�rmrr'rrzrz�s
��:�
$(r'rzc��\rSrSr\rSrg)�CThreadingTesti�rNr�rr'rr�r��r�r'r�c��\rSrSr\rSrg)�PyThreadingTesti�rNr�rr'rr�r��r�r'r�c��\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrSrSrSrSrSrg)�
UsabilityTesti�z*Unit tests for Usability cases of Decimal.c�8�URRnU"S5nU"S5nU"S5nURXB5 URXB5 UR	X$5 URX$5 UR
X#5 URX$5 URX#5 URX#5 URUS5 UR	SU5 UR
US5 URUS5 URUS5 URU[55 URU[5 [[U[S555nUSSn[R"U5 UR5 UR
XV5 g)Nz23.42r|�r{r�g�����Y@@r�)rr��
assertGreater�assertGreaterEqual�
assertLess�assertLessEqualrB�assertNotEqual�object�list�mapr�r0�shuffler@)r�r��da�db�dcr��bs       r�test_comparison_operators�'UsabilityTest.test_comparison_operators�sU���,�,�&�&��
�W�
��
�W�
��
�T�]��	
���2�"�����'���������R�$����� ����B�#����R�$�����'�	
���2�r�"�����B������R� �	
���B��'����B��%����B���)����B��'�
��W�e�C�j�)�*��
�q�T�����q��	��������r'c�0�URRnU"S5nU"S5nURUS5 URUS5 UR	US5 URUS5 UR
US5 URUS5 UR	SU5 URSU5 URSU5 URSU5 UR
SU5 URSU5 UR
SU"S55 g)N�0.25�3.0�@��?g�?r�r�)rr�r�r�r�r�r�rB�r�r�r�r�s    r�test_decimal_float_comparison�+UsabilityTest.test_decimal_float_comparison�s����,�,�&�&��
�V�_��
�U�^������C� ����R��%����2�t�$�����D�)����B��$�����T�"����3��#�����R�(�����b�!����T�2�&����D�"�%�����b�!����C����0r'c��URRnU"S5nU"S5nURUS5 URSU5 URUS5 URSU5 URSU5 URUS5 URUS5 URSU5 UR	URS5[5 UR	URS5[5 UR	URS5[5 UR	URS5[5 g)Nr�r�y�?y�?y@y@�?)	rr�r�rBr�r�NotImplementedr%r"r�s    r�test_decimal_complex_comparison�-UsabilityTest.test_decimal_complex_comparisons����,�,�&�&��
�V�_��
�U�^�����B��)����V�b�)�����g�'����'�B�'����&�2�&�����f�&����B��)����V�b�)��
�
�b�i�i��'��8��
�
�b�i�i��'��8��
�
�b�i�i��'��8��
�
�b�i�i��'��8r'c
��URRn[URRnURRnURR
nURRn[(a[ROSn[(a[ROSn[(a[ROSnU"XgS9n	U"U	5 XilURU"S5U"SS55 URU"SS5U"S55 URU"SS5U"S	[U5-55 URU"S
[U5-5U"SS55 URU"SS5U"S	[U5-55 URU"S
[U5-5U"SS55 URU"S5U"SS
55 URU"SS
5U"S55 SU	lURU"S5S-U"SS55 URU"SS5U"S5S-5 UR!U"SS5U"S[U5-55 UR#U"S[U5-5U"SS55 UR%U"S5U"SS55 UR%U"S5U"SS55 URU"S5U"SS55 URU"S5U"SS55 UR'XQ"S5R(U"SS55 UR+[,U"SS5R/U"S555 URU"S5U"SS55 URU"SS5U"S55 SSS5 g!,(df   g=f)N�ɚ;�6e�ilʈ�rer_rrl	��Z��mH;5�Br��1ez-1el��!�0QYr�r�i,r�i�6l�c(	�9er�l�g�]�{l�����g�]r�r�i����)rr�r�Fractionr-r�r�r�r��MIN_EMIN�	MIN_ETINYr*r�r=rBr�r�r�r�rwr"r�r�r)
r��Dr�r-r�r��emax�emin�etinyr�s
          r� test_decimal_fraction_comparison�.UsabilityTest.test_decimal_fraction_comparisons���L�L� � ���d�l�l�#�,�,���,�,�&�&���|�|�0�0���<�<�8�8���Q�q�z�z�I���Q�q�z�z�J�� �q����k����)��
�!�_��F��O�O�A�a�D�!�A�&K�"L�M��O�O�A�b�!F�G��1��N��O�O�A�a��F�A�d�S��Z�&7�$8�9��O�O�A�e�c�%�j�0�1�1�Q�q�6�:��O�O�A�a� 9�:�A�d�S��Z�>O�<P�Q��O�O�A�e�c�%�j�0�1�1�Q�7P�3Q�R����Q�u�X�q��2�w�/����Q�q��W�a��h�/��A�F�����!��Q���!�A��/�����!�A���!��Q��/�� � ��9�j�!9�1�T�C��I�=M�;N�O��#�#�A�d�S��Y�&6�$7��9�j�9Q�R����q��x��;�s�);�<����q��x��<��)<�=��O�O�A�f�I�q��S�'9�:��O�O�A�f�I�q��c�':�;����.��%�����2�c��K��M�M�.�!�B�s�)�*:�*:�1�U�8�*D�E�����%��!�B�s�)�4�����"�S�	�1�U�8�4�7�_�_�s
�K%O	�	
Oc�(�URRnU"S5n[R"U5nUR[	U5[	U55 [R
"U5nUR[	U5[	U55 g)Nz43.24)rr�rnrBrE�deepcopy)r�r�rr�r�s     r�test_copy_and_deepcopy_methods�,UsabilityTest.test_copy_and_deepcopy_methodsBsf���,�,�&�&���G����I�I�a�L������A���1��&�
�]�]�1�
������B���A��'r'c��^�TRRnTRRnU4SjnU"U"S55 U"U"S55 U"U"S55 U"U"S55 U"U"S55 SVVVs/sH2n[SS	5HnS
HnU"USU-U--5PM M  M4 nnnnUR	U"S5U"S
5U"S5U"S5U"S5U"S5U"S5U"S5U"S5U"S5U"S5U"S5U"S5U"S5U"S5U"S5/5 UH-nTRU"U5[
[U555 M/ /SQn	U	H7n
[U
5nU"U
5nTRU"U5[
U55 M9 U"5n
U"S5nSU
l	U"U5nS	U
l	U"U5nSU
l	U"U5nTRUU5 TRUU5 S U
l	S!S"-nTRU"U"U55U"U55 SSS5 gs snnnf!,(df   g=f)#Nc�`>�[U5nUR5nTRX5 U$r)�hash�__hash__rB)rr�r�r�s   �r�hashit�.UsabilityTest.test_hash_method.<locals>.hashitPs*����Q��A��
�
��A����Q�"��Hr'r�r�r��nan123�-NaN)r������r��!�=�>�?�@�A�B���r�r�rr�r�r^z-0.000rvz-0E12�10.0z	-23.00000�1230E100z
-4.5678E50l��z	1.634E100z
90.697E100z
188.83E100z
1652.9E100�	56531E100)r�r�r]z-.0e1z34.0�2.5z
112390.625z	-0.515625z123456789.1�r��'iLi�)
rr�r�r��extendrBr�rr�r*)r�r�r�r�r3r�r�r�r�test_stringsrr�rr�r�h1�h2�h3s`                 r�test_hash_method�UsabilityTest.test_hash_methodKsg����,�,�&�&���|�|�0�0��	�	�w�r�{���w�z�"�#��w�{�#�$��w�x� �!��w�v���!A�,�!A�1� %�c�2��1�#*�4�	�t�Q��T�A�X��/�$+�	0�!/�0�!A�	�,�
	�����
���
������!������ ������$��
�#���%��)�*���$���%���%���%���$�)�	�0!�E����V�E�]�D��U��,<�=�!�
B���A��a��A���
�A����V�A�Y��Q��0��
�^�q��
�&�A��A�F����B��A�F����B��A�F����B����R��$����R��$��A�F����A����V�G�A�J�/����;�#�^��S,�R�^�s�9I�9B
I�
I!c�t�URRnUR[[U"S55 U"S5nUR[	U5[RU55 "SS5n"SSX5nU"S5nUR[	U5[RU55 g)NrIr�c��\rSrSrSrSrg)�-UsabilityTest.test_hash_method_nan.<locals>.Hi�c��g)Nrrr�s rr��6UsabilityTest.test_hash_method_nan.<locals>.H.__hash__�s��r'rN)r�rirjrkr�rmrr'r�Hr��s��
r'r�c��\rSrSrSrg)�-UsabilityTest.test_hash_method_nan.<locals>.Di�rN)r�rirjrkrmrr'rr�r��s��r'r�)rr�rwr4r�rBr�r�)r�r�rr�r�s     r�test_hash_method_nan�"UsabilityTest.test_hash_method_nan�s����,�,�&�&�����)�T�7�6�?�;���������e��f�o�o�e�&<�=�	�	�	��	��%�������e��f�o�o�e�&<�=r'c��URRnU"S5nU"S5nSnSnUR[X#5U5 UR[X25U5 UR[	X#5U5 UR[	X25U5 UR[X%5U5 UR[XR5U5 UR[	XC5U5 UR[	X45U5 g)N�15.32z28.5r�r�)rr�r��min�max)r�r�rr �l1�l2s      r�test_min_and_max_methods�&UsabilityTest.test_min_and_max_methods�s����,�,�&�&��
�W�
��
�V�_��
��
��	
�
�
�c�"�j�"�%��
�
�c�"�j�"�%��
�
�c�"�j�"�%��
�
�c�"�j�"�%�	
�
�
�c�"�j�"�%��
�
�c�"�j�"�%��
�
�c�"�j�"�%��
�
�c�"�j�"�%r'c��URRnURU"S55 URU"S55 g)Nrz0.372)rr�rhr!rss  r�test_as_nonzero�UsabilityTest.test_as_nonzero�s6���,�,�&�&��	
������$������(�)r'c��URRnU"S5nUR[U5S5 UR[	U5S5 g)Nr�zDecimal('15.32'))rr�rBr=rAr�s   r�test_tostring_methods�#UsabilityTest.test_tostring_methods�sD���,�,�&�&���G�������Q���)�����a��"4�5r'c
��URRnU"S5nU"S5nUR[U5S5 UR[U5S5 UR[	U5S5 UR[	U5S5 /SQnUH1upVUR[
R"U"U55U5 M3 UR[[
RU"S55 UR[[
RU"S55 UR[[
RU"S	55 UR[[
RU"S
55 UR[[
RU"S55 /SQnUH1upVUR[
R"U"U55U5 M3 UR[[
RU"S55 UR[[
RU"S55 UR[[
RU"S	55 UR[[
RU"S
55 UR[[
RU"S55 /S
QnUH&upVUR[U"U55U5 M( UR[[U"S55 UR[[U"S55 UR[[U"S	55 UR[[U"S
55 UR[[U"S55 /SQnUH1upXn	UR[[U"U5U55U	5 M3 g)N�66r�r�r�g�p=
ף.@)	�z123.00r���3.2r�)�3.54r�)�3.899r�)�-2.3r��z-11.0i�����r]r�z-0E3r)�89891211712379812736.1l�{�#'s�{Mr�rIr�r{r�)	r)rr��rr��rr��rr�rrr)r	l�{�#'s�{M)rrr
rrrrr)z-3.5���)r,r�)r�r�)�-0.5r)�0.5r)rYr)r�r)z3.5r�))�123.456r
z0E+4)�-123.456r
z-0E+4)rr�z0E+3)rr�z-0E+3)rr�z1E+2)rr�z1.2E+2)rrr)rrz123.5)rr�123.46)rr�r)rr�z123.4560)z123.455rr)z123.445rz123.44)r{r�r�)r�i��r�)�sNaN314r��NaN314)
rr�rBrr��mathr�rwr�
OverflowError�ceil�roundr=)
r�r�rr �
test_pairsrrN�test_triplesr�r�s
          r�test_tonum_methods� UsabilityTest.test_tonum_methods�s����,�,�&�&��
�T�]��
�W�
��	
����R��"�%�����R��"�%�	
����r��B�'�����r��E�*�
�
��D�A����T�Z�Z���
�3�Q�7�����*�d�j�j�'�&�/�B����*�d�j�j�'�&�/�B����*�d�j�j�'�(�2C�D����-����W�U�^�D����-����W�V�_�E�
�
��D�A����T�Y�Y�w�q�z�2�A�6�����*�d�i�i����A����*�d�i�i����A����*�d�i�i���1B�C����-����G�E�N�C����-����G�F�O�D��
�$�D�A����U�7�1�:�.��2�����*�e�W�V�_�=����*�e�W�V�_�=����*�e�W�X�->�?����-�����?����-�����@���$$�G�A�!����S��w�q�z�1�!5�6��:�$r'c�.�URRnSHyn[U"U55nUR[R
"U55 [R"SU5nURXBRS5(aSOS5 M{ g)N)r��nan1234�-nanz-nan2468r�r4g�)	rr�r�r!rr�rtrBr)r�r�rr�r�s     r�test_nan_to_float�UsabilityTest.test_nan_to_float3sm���,�,�&�&��7�A��g�a�j�!�A��O�O�D�J�J�q�M�*��=�=��a�(�D����T�<�<��+<�+<�4�#�F�	8r'c��URRnSH&nU"U5nUR[[U5 M( g)N)�snanz-snan�snan1357z	-snan1234)rr�rwrr�)r�r�rrs    r�test_snan_to_float� UsabilityTest.test_snan_to_float=s6���,�,�&�&��;�A���
�A����j�%��3�<r'c��URRnU"S5nURU[[	U555 U"S5nURU[[	U555 U"S5nURU[[	U555 U"S5nURU[[	U555 g)Nr�r�r�r�)rr�rBr>rAr�s   r�test_eval_round_trip�"UsabilityTest.test_eval_round_tripCs����,�,�&�&��
�\�#������D��a��M�*�
�^�%������D��a��M�*�
�*�,������D��a��M�*�
�:�<������D��a��M�*r'c�@�URRnU"S5nURUR5S5 U"S5nURUR5S5 U"S5nURUR5S5 U"S5nURUR5S5 U"S	5nURUR5S
5 U"S5nURUR5S5 U"S
5nURUR5S5 U"S5nURUR5S5 U"S5nURUR5S5 U"S5nURUR5S5 U"S5nURUR5S5 U"S5nURUR5S5 U"S5nURUR5S5 g)Nrr�rr�r�r�r�)rr�r�)r�rrr�rr�r�r�r�)r�r�rr�r�r�r�)r�rrr�%)rr�r.)rrr.)rr+r�)rr,r�)rr-r��rrr�)rrr�)rr�r�)r)rrr1rr�)rr�r�)rr�rB�as_tupler�s   r�
test_as_tuple�UsabilityTest.test_as_tupleVs����,�,�&�&��
�A�J���������|�5�
�C�L���������~�7�
�%�&���������'L�N�
�J����������~�7�
�3�5���������'?�A��'�)���������}�5��[�"���������}�5�
�4�6���������'@�B��(�*���������|�5��\�#���������|�5�
�^�%���������~�6��+�-���������~�6��+�-���������~�6r'c	�<�URRnUR[URU"S55 UR[URU"S55 UR[
URU"S55 UR[
URU"S55 [
SS5H�n[
S5H�nSH�nU"S	XCU4-5nUR	5nUupxURU[5 URU[5 URU[5 URUS
5 UR[R"Xx5S5 URU"U5U"U5-U5 M� M� M� g)Nr�r�r�snan123r
r��)r1r4z%s%dE%drr)rr�rwr�as_integer_ratiorr�r��tuplerr�rBr�gcd)	r�r�ra�coeffr�r�pqr@rAs	         r�test_as_integer_ratio�#UsabilityTest.test_as_integer_ratio�sb���,�,�&�&��	
���-�!�2�2�G�E�N�	D����-�!�2�2�G�F�O�	E����*�!�2�2�G�F�O�	E����*�!�2�2�G�I�4F�	H���Q�<�C��t���$�D��	�T�#�,>� >�?�A��+�+�-�B��D�A��)�)�"�e�4��)�)�!�S�1��)�)�!�S�1��&�&�q�!�,��$�$�T�X�X�a�^�Q�7��$�$�W�Q�Z�'�!�*�%<�a�@�!%�%� r'c�2�URRn"SSU5nU"S5nU"S5nX4-nUR[U5U5 UR	U5nUR[U5U5 [
R
"U5nUR[U5U5 UR
XS5 [
R"U5nUR[U5U5 UR
XS5 U"S5nU"U5nUR[U5U5 UR
Xe5 U"U5nUR[U5U5 UR
Xu5 URURS5 U"U5nUR[U5U5 UR
Xe5 SUlU"U5nUR[U5U5 UR
Xe5 URURS5 g)Nc��\rSrSrSrSrg)�1UsabilityTest.test_subclassing.<locals>.MyDecimali�Nr)r�rirjrkr�rmrr'r�	MyDecimalr?�s���Ar'r@rr�1.0r))	rr�r�r<r�rnrBr�r�)r�r�r@rr rrr3s        r�test_subclassing�UsabilityTest.test_subclassing�s����,�,�&�&��	��	��q�\��
�q�\���G���
�
�d�1�g�w�'��F�F�2�J���
�
�d�1�g�w�'��I�I�b�M���
�
�d�1�g�y�)�������M�M�"����
�
�d�1�g�y�)������
�E�N���A�J���
�
�d�1�g�w�'������
�a�L���
�
�d�1�g�y�)�������
�
�a�c�c�4� �
�A�J���
�
�d�1�g�w�'����������a�L���
�
�d�1�g�y�)�������
�
�a�c�c�4� r'c
��URRnURRnU"5nUR[	U"S5R55[	URU"S5555 g�Nr)rr�r�rBr=r��r�r�r�r�s    r�test_implicit_context�#UsabilityTest.test_implicit_context�s^���,�,�&�&���\�\�,�,�
�
�L������W�Q�Z�_�_�.�/��Q�V�V�G�A�J�/�0�	2r'c	�z%�URRnURRnURRnURRnURR
nURRnURRnURRnURRn	URRn
URRnU"U"55nSUlSUl
SUlU"S5n
U"S5nU"S5nUR5 UR![#U
R%SS95S5 UR'UR(U	5 UR'UR(U
5 UR5 UR+XnR$SS9 UR'UR(U5 UR-UR/SS9S	5 UR-UR1SS9S
5 UR5 UR![#U
R3SS95S5 UR'UR(U	5 UR'UR(U
5 UR5 UR+XA"S5R2SS9 UR'UR(U5 UR5 UR![#U
R5SS95S
5 UR'UR(U	5 UR'UR(U
5 UR5 UR+XA"S5R4SS9 UR'UR(U5 UR5 UR![#U
R7SS95S5 UR+XQ"S5R6SS9 UR'UR(U5 UR5 UR![#U
R9SS95S5 UR+XNR8SS9 UR'UR(U5 UR5 UR![#UR;SS95S5 UR+XA"S5R:SS9 UR'UR(U5 UR5 UR![#UR=SS95S5 UR+XA"S5R<SS9 UR'UR(U5 UR5 UR![#UR?SS95S5 UR+XnR>SS9 UR'UR(U5 UR![#URASS95S5 UR5 UR![#URCSS95S5 UR'UR(U5 UR'UR(U	5 UR'UR(U
5 UR'UR(U5 UR'UR(U5 UR5 UR+XnRBSS9 UR'UR(U5 SUl"UR![#URGSS95S5 SUl"UR5 [#U
RIU"S5SS95nUR!US5 UR+XMRHU"S5SS9 UR'UR(U5 UR5 [#U
RKSSS95nUR!US5 UR+XMRJU"S5SS9 UR'UR(U5 UR5 [#U
RMSSS95nUR!US5 UR+XMRLSSS9 UR'UR(U5 UR5 [#U
ROSSS95nUR!US5 UR+XMRNSSS9 UR'UR(U5 UR5 [#U
RQSSS95nUR!US 5 UR+XMRPSSS9 UR'UR(U5 UR5 [#U
RSSSS95nUR!US5 UR+XMRRU"S5SS9 UR'UR(U5 UR5 [#U
RUSSS95nUR!US5 UR+XMRTU"S5SS9 UR'UR(U5 UR5 [#U
RWSSS95nUR!US5 UR+XMRVU"S5SS9 UR'UR(U5 UR5 [#U
RYSSS95nUR!US5 UR+XMRXU"S5SS9 UR'UR(U5 UR5 [#U
R[SSS95nUR!US 5 UR+XNRZSSS9 UR'UR(U5 UR5 [#U
R]S!SS95nUR!US"5 UR+XMR\SSS9 UR'UR(U5 UR5 [#U
R_SSS95nUR!US#5 UR+XMR^S$SS9 UR'UR(U5 UR5 [#U
RaS!SS95nUR!US"5 UR+XMR`S$SS9 UR'UR(U5 UR5 [#U
RcS!S%SS95nUR!US&5 UR+XmRbU"S5S%SS9 UR'UR(U5 [dUl3[#U"S'5RiSSS(95nUR!US5 [jUl3[#U"S'5RiSSS(95nUR!US)5 [#U"S'5Ri[lSS(95nUR!US5 UR5 UR+XA"S5RhSS9 UR'UR(U5 [dUl3[#U"S'5RoSSS(95nUR!US5 [jUl3[#U"S'5RoSSS(95nUR!US)5 [#U"S'5Ro[lSS(95nUR!US5 UR5 UR+XA"S5RnSS9 UR'UR(U5 [dUl3[#U"S'5RqSSS(95nUR!US5 [jUl3[#U"S'5RqSSS(95nUR!US)5 [#U"S'5Rq[lSS(95nUR!US5 UR5 UR+XA"S5RpSS9 UR'UR(U5 [lUl3[#U"S*5RsU"S+5SSS,95nUR!US-5 [jUl3[#U"S*5RsU"S+5SSS,95nUR!US.5 [#U"S*5RsU"S+5[lSS,95nUR!US-5 UR5 UR+XNRrU"S/5[lSS(9 UR'UR(U5 SSS5 U"U"55nSUlSUl
SUlU"SS09nUR!URS5 UR!URS5 UR!URS5 SSS5 SSS5 g!,(df   N�=f!,(df   N(=f!,(df   g=f)1Nr1rti����111�1e9999z1e-9999�r$z1.609487E+48FTz4.709530r�z2.045323r+r�1111000z
9.999999E+999rIr�rq�
+Subnormalz0E-1005r�Nan891287828�
NaN1287828i  r�r��e�101r�rJr�11100z1.11E+9r�r��225rY�r+r$r�z1.50001z1e-3)rar+r$z1.501z1.500z1e-10)r�):rr�r-r�r�r�r�r�r�r�r�r�r*rer_r1rBr=rar!rVrwr�r�r��ln�log10�logbryr�r�r�rgr��capitalsr�rgrircr�r�r�r�r�r�r��rotate�scaleb�shift�fmar.r+�to_integralr�r�r�r��quantize)r�r�r-r�r�r�r�r�r�r�r�r�r�rr��zrGr$s                  r�test_none_args�UsabilityTest.test_none_args�s8���,�,�&�&���,�,�&�&���|�|�0�0���<�<�8�8�����4�4���<�<�(�(���L�L�*�*�	��L�L�*�*�	��,�,�&�&���,�,�&�&���,�,�&�&��
�'�)�
$���A�F��A�F��A�F����A���!�A��	�"�A�
�M�M�O����S����t��!4�5�~�F��O�O�A�G�G�G�,�-��O�O�A�G�G�G�,�-�
�M�M�O����h���t��<��O�O�A�G�G�H�-�.��M�M�!�+�+�d�+�3�U�;��M�M�!�.�.��.�6��=�
�M�M�O����S����d��!3�4�j�A��O�O�A�G�G�G�,�-��O�O�A�G�G�G�,�-�
�M�M�O����.��������M��O�O�A�G�G�$4�5�6�
�M�M�O����S������!6�7��D��O�O�A�G�G�G�,�-��O�O�A�G�G�G�,�-�
�M�M�O����.����0A�0A�4��P��O�O�A�G�G�$4�5�6�
�M�M�O����S������!5�6��<����n�g�a�j�o�o�t��L��O�O�A�G�G�N�3�4�
�M�M�O����S��!1�!1�$�!1�!?�@�)�L����.�0@�0@�$��O��O�O�A�G�G�$4�5�6�
�M�M�O����S����d��!;�<�o�N����.����0J�0J�TX��Y��O�O�A�G�G�$4�5�6�
�M�M�O����S����T��!:�;�Z�H����.����0I�0I�SW��X��O�O�A�G�G�$4�5�6�
�M�M�O����S����T��!:�;�S�A����h���T��B��O�O�A�G�G�H�-�.����S������!=�>��M�
�M�M�O����S������!5�6�	�B��O�O�A�G�G�G�,�-��O�O�A�G�G�G�,�-��O�O�A�G�G�G�,�-��O�O�A�G�G�I�.�/��O�O�A�G�G�I�.�/�
�M�M�O����h�����=��O�O�A�G�G�H�-�.��A�J����S������!>�?��K��A�J�
�M�M�O��a�i�i��� 7��i�F�G�C����S�,�/����.�	�	�7�6�?�TX��Y��O�O�A�G�G�$4�5�6�
�M�M�O��a�&�&�t�T�&�:�;�C����S�$�'����.�0@�0@�'�%�.�Z^��_��O�O�A�G�G�$4�5�6�
�M�M�O��a�m�m�C��m�6�7�C����S�%�(����.�
�
�s�D��Q��O�O�A�G�G�$4�5�6�
�M�M�O��a�l�l�3��l�5�6�C����S�%�(����.���c�4��P��O�O�A�G�G�$4�5�6�
�M�M�O��a�m�m�C��m�6�7�C����S�$�'����.�
�
�s�D��Q��O�O�A�G�G�$4�5�6�
�M�M�O��a�e�e�C��e�.�/�C����S�%�(����.���w�v��PT��U��O�O�A�G�G�$4�5�6�
�M�M�O��a�i�i��T�i�2�3�C����S�%�(����.�	�	�7�6�?�TX��Y��O�O�A�G�G�$4�5�6�
�M�M�O��a�e�e�C��e�.�/�C����S�%�(����.���w�v��PT��U��O�O�A�G�G�$4�5�6�
�M�M�O��a�i�i��T�i�2�3�C����S�%�(����.�	�	�7�6�?�TX��Y��O�O�A�G�G�$4�5�6�
�M�M�O��a�&�&�s�D�&�9�:�C����S�$�'����.�0@�0@�#�t��T��O�O�A�G�G�$4�5�6�
�M�M�O��a�h�h�q�$�h�/�0�C����S�'�*����.���#�t��L��O�O�A�G�G�$4�5�6�
�M�M�O��a�h�h�q�$�h�/�0�C����S�)�,����.���%���N��O�O�A�G�G�$4�5�6�
�M�M�O��a�g�g�a��g�.�/�C����S�'�*����.������M��O�O�A�G�G�$4�5�6�
�M�M�O��a�e�e�A�q�$�e�/�0�C����S�%�(����h���w�x�/@�!�T��R��O�O�A�G�G�H�-�.�)�A�J��g�e�n�0�0�$��0�M�N�C����S�#�&�#�A�J��g�e�n�0�0�$��0�M�N�C����S�#�&��g�e�n�0�0�(�D�0�Q�R�C����S�#�&�
�M�M�O����.����0K�0K�UY��Z��O�O�A�G�G�$4�5�6�(�A�J��g�e�n�6�6��d�6�S�T�C����S�#�&�#�A�J��g�e�n�6�6��d�6�S�T�C����S�#�&��g�e�n�6�6��RV�6�W�X�C����S�#�&�
�M�M�O����.����0Q�0Q�[_��`��O�O�A�G�G�$4�5�6�(�A�J��g�e�n�6�6��d�6�S�T�C����S�#�&�#�A�J��g�e�n�6�6��d�6�S�T�C����S�#�&��g�e�n�6�6��RV�6�W�X�C����S�#�&�
�M�M�O����.����0Q�0Q�[_��`��O�O�A�G�G�$4�5�6�!�A�J��g�i�(�1�1�g�f�o�PT�^b�1�c�d�C����S�'�*�#�A�J��g�i�(�1�1�g�f�o�PT�^b�1�c�d�C����S�'�*��g�i�(�1�1�g�f�o�PX�bf�1�g�h�C����S�'�*�
�M�M�O����.�
�
�G�G�<L�W_�im��n��O�O�A�G�G�$4�5�6�o%�r�'�)�
$���G�L��G�L��G�L��$�'�1�� � �����+�� � �����-�� � �����.�(�	%�
$�s%�
$��z(�'��	%�
$�sB�AC3AJ
�HAJ,�H$AAJ�I9AJ,�J

AJ�J
AJ)	�J%AJ,�J,
AJ:c	�L�URRnURU"S5RS5U"S5RU"S555 URU"S5R	S5U"S5R	U"S555 URU"S5RS5U"S5RU"S555 URU"S5R
S5U"S5R
U"S555 URU"S5RS5U"S5RU"S555 URU"S5RS5U"S5RU"S555 URU"S5RS5U"S5RU"S555 URU"S5RS5U"S5RU"S555 URU"S5RS5U"S5RU"S555 URU"S5RS5U"S5RU"S555 URU"S5RS5U"S5RU"S555 URU"S5RS5U"S5RU"S555 URU"S5RS5U"S5RU"S555 URU"S	5R!S5U"S	5R!U"S555 URU"S5R#S
5U"S5R#U"S
555 URU"S5R%S5U"S5R%U"S555 URU"S5R'S
5U"S5R'U"S
555 URU"S5R)S5U"S5R)U"S555 URU"S5R+U"S5S5U"S5R+U"S5U"S555 URU"S5R+SS5U"S5R+U"S5U"S555 URU"S5R+SU"S55U"S5R+U"S5U"S555 g)Nr�r�iu'��i7r�r�r�irr5z9.123���r�r�i�r{�C)rr�rBrgrirkrmrcr�r�r�r�r�r�r�r_r�rZr�r[r\r]rss  r�test_conversions_from_int�'UsabilityTest.test_conversions_from_int�	s����,�,�&�&��������+�+�A�.� ���+�+�G�A�J�7�	9�������2�2�1�5� ���2�2�7�1�:�>�	@�������1�1�!�4� ���1�1�'�!�*�=�	?�������5�5�a�8� ���5�5�g�a�j�A�	C�������3�3�D�9� ���3�3�G�D�M�B�	D�������2�2�4�8� ���2�2�7�4�=�A�	C�������3�3�D�9� ���3�3�G�D�M�B�	D�������)�)�#�.� ���)�)�'�#�,�7�	9�������-�-�c�2� ���-�-�g�c�l�;�	=�������)�)�#�.� ���)�)�'�#�,�7�	9�������-�-�c�2� ���-�-�g�c�l�;�	=�������1�1�#�6� ���1�1�'�#�,�?�	A�������/�/��4� ���/�/����=�	?�������4�4�T�:� ���4�4�W�T�]�C�	E�������,�,�Q�/� ���,�,�W�Q�Z�8�	:�������3�3�D�9� ���3�3�G�D�M�B�	D������)�0�0��6� ��)�0�0����?�	A�������+�+�B�/� ���+�+�G�B�K�8�	:�	
������)�)�'�"�+�r�:� ���)�)�'�"�+�w�r�{�C�	E�������)�)�"�b�1� ���)�)�'�"�+�w�r�{�C�	E�������)�)�"�g�b�k�:� ���)�)�'�"�+�w�r�{�C�	Er'rN)r�rirjrkrlr�r�r�r�r�r�r�r�r�r�rr r%r(r1r;rBrGrargrmrr'rr�r��sw��4�"�H1�&9�((5�T(�L<�\>�&�(*�6�g;�RG�4�+�&+7�ZA�B-!�^2�m/�^/Er'r�c��\rSrSr\rSrg)�CUsabilityTesti�	rNr�rr'rrjrj�	r�r'rjc�8^�\rSrSr\rU4SjrU4SjrSrU=r	$)�PyUsabilityTesti�	c�>�[TU]5 [R"5Ul[R
"S5 g�NiX��superr��sys�get_int_max_str_digits�_previous_int_limit�set_int_max_str_digits�r�r�s �rr��PyUsabilityTest.setUp
�+���
��
��#&�#=�#=�#?�� ��"�"�4�(r'c�b>�[R"UR5 [TU]5 gr�rqrtrsrp�tearDownrus �rrz�PyUsabilityTest.tearDown
�"����"�"�4�#;�#;�<�
���r'�rs�
r�rirjrkr�rr�rzrm�
__classcell__�r�s@rrlrl�	�����G�)�
�r'rlc�`�\rSrSrSrSrSr\S5rSr	Sr
SrS	rS
r
SrSrS
rg)�PythonAPItestsi
c�l�URRnUR[U[R
55 UR
[U[R55 URU"S5[R
5 URU"S5[R5 grE)
rr�r!�
issubclass�numbers�Numberrh�Realr��assertNotIsInstancerss  r�test_abc�PythonAPItests.test_abc
sq���,�,�&�&�����
�7�G�N�N�;�<�����G�W�\�\�:�;����g�a�j�'�.�.�9�� � ����W�\�\�:r'c���[[RS-5GHJnURRn[
RSnUR[
RS'U"S5n[R"XA5n[R"U5nURXF5 [(Ga�[R	S5n[R	S5n[[
RS'[R"Xq5n	[[
RS'[R"U	5n
URU
[R5 URX�5 [[
RS'[R"X�5n[[
RS'[R"U5n
URU
[R5 URX�5 [R	S5R5n[R	S5R5n[[
RS'[R"Xq5n	[[
RS'[R"U	5n
URU
[R5 URX�5 [[
RS'[R"X�5n[[
RS'[R"U5n
URU
[R5 URX�5 U[
RS'GMM g)Nrrz-3.141590000z-3.123e81723)r��pickle�HIGHEST_PROTOCOLrr�rq�modules�dumps�loadsrBr�r�r�r0�DecimalTuple)r��protor��savedecimalrr@rPrr��sxr��sys            r�test_pickle�PythonAPItests.test_pickle
sF���6�2�2�Q�6�7�E��l�l�*�*�G��+�+�i�0�K�&*�\�\�C�K�K�	�"���'�A����Q�&�A����Q��A����Q�"��q��I�I�n�-���I�I�n�-��)*����I�&��\�\�!�+��)*����I�&��L�L��$���%�%�a����3�� � ��&�)*����I�&��\�\�!�+��)*����I�&��L�L��$���%�%�a����3�� � ��&��I�I�n�-�6�6�8���I�I�n�-�6�6�8��)*����I�&��\�\�!�+��)*����I�&��L�L��$���%�%�a����8�� � ��&�)*����I�&��\�\�!�+��)*����I�&��L�L��$���%�%�a����8�� � ��&�%0�C�K�K�	�"�a8r'c	�P�URRn[SS5H|nSUS--nUR[	U"U55[	[U555 U"U5nUR
[5nURU"[	U55U5 M~ UR[[U"S55 UR[[U"S55 UR[[U"S55 UR[[U"S55 g)	N������%0.2f�Y@rr#r�r�)rr�r�rBrr�r^r�rwrr�r�r�rrrr�s      r�test_int�PythonAPItests.test_intH
s����,�,�&�&���t�S�!�A��1�u�9�%�A����S����_�c�%��(�m�<���
�A��
�
�j�)�A����W�S��V�_�a�0�"�	
���*�c�7�6�?�;����*�c�7�6�?�;����-��g�e�n�=����-��g�f�o�>r'c��URRn[SS5H$nUR[	U"U55U5 M& g)Nr�i)rr�r�r�r�r�r�rs   r�test_small_ints�PythonAPItests.test_small_intsY
s7���,�,�&�&���r�3��A��M�M�#�g�a�j�/�1�-� r'c	�^�URRn[SS5H�nSUS--nUR[	U"U55[	[U555 U"U5nUR
[5nURU"[R"U55U5 M� g)Nr�r�r�r�)
rr�r�rBrr�r^r�r�truncr�s      r�
test_trunc�PythonAPItests.test_trunc`
s����,�,�&�&���t�S�!�A��1�u�9�%�A����S����_�c�%��(�m�<���
�A��
�
�j�)�A����W�T�Z�Z��]�3�Q�7�"r'c	��URRn"SSU5nUR[X!55 UR	S5nUR[
U5U5 UR[U5S5 URURS5 SnURUR	U5U"U55 URUR	[S55R55 URUR	[S55R55 URUR	[S	55R55 UR[UR	[S555[U"S
555 UR[UR	[S555[U"S555 UR[UR	[S	555[U"S555 UR[URS
5 [S5H_n[R "S5[R"5S-S-
-nURU[UR	U555 Ma g)Nc��\rSrSrSrSrg)�1PythonAPItests.test_from_float.<locals>.MyDecimalip
c��SUlg)Nr��r)r�r�s  rr�:PythonAPItests.test_from_float.<locals>.MyDecimal.__init__q
s	����r'r�Nr
rr'rr@r�p
s��
r'r@r�r�r�ls\�&�5$3�|	r�r�r�r�r�r��abcr�r�r�r�)rr�r!r�rrBr<r=rr�r�rrwr4r�r0r�)r�r�r@r��bigintrNrs       r�test_from_float�PythonAPItests.test_from_floatl
s���,�,�&�&��	��	�	
���
�9�6�7�� � ��%������a��)�,�����Q��K�	M�������c�"�.������-�-�f�5�y��7H�I����	�,�,�U�5�\�:�B�B�D�E����	�,�,�U�5�\�:�F�F�H�I����	�,�,�U�6�]�;�G�G�I�J�����Y�1�1�%��,�?�@��W�U�^�,�	.�����Y�1�1�%��,�?�@��W�Z�0�1�	3�����Y�1�1�%��-�@�A��W�[�1�2�	4����)�Y�%9�%9�5�A��s��A��"�"�4�(�F�M�M�O�c�,A�C�,G�H�A����Q��i�&:�&:�1�&=� >�?�r'c���URRnURRnURRnU"S[S9nURUR
[R5U"S55 U"S[S9nURUR
[R5U"S55 U"SU/S9nURUUR[R5 UR[UR
S55S5 UR[UR
S55S	5 UR[UR
S
55S5 g)Nr�)r*r+z3.1415rl)r*r,��z
Decimal('-0')r�zDecimal('1')r�z
Decimal('10'))rr�r-r�r�rB�create_decimal_from_floatr�pir�rwrA)r�r�r-r�r$s     r�test_create_decimal_from_float�-PythonAPItests.test_create_decimal_from_float�
s5���,�,�&�&���,�,�&�&���,�,�&�&���q�:�6������-�-�d�g�g�6��H��	
��q�8�4������-�-�d�g�g�6��H��	
��q��	�2�������-�-��G�G�	
�
	
����g�?�?��E�F�(�	*�����g�?�?��D�E�'�	)�����g�?�?��C�D�(�	*r'c�8�URRnURRnURRnU"SSS9nUR	U"S5RU"S55U"S55 UR	U"S5RU"S5[S9U"S55 URUU"S	5R
U"S
5US9 U"5nU"S5nURXA"S
5[S9nUR	Xa"S55 g)Ni��iay��r�z7.335r�z7.34�r+z7.33�10e99999�1e100000rLz0.871831e800�1e797)r$rar+z	8.71E+799)rr�r-r�rBr_r�rw)r�r�r-r�r�rrs       r�
test_quantize�PythonAPItests.test_quantize�
s���,�,�&�&���,�,�&�&���<�<�8�8����V�,������G��%�%�g�e�n�5��F�O�	
�	
����G��%�%�g�e�n�z�%�J��F�O�	
�	
�����J��(�(�'�*�*=�q�	�	
�

�I���N�#��
�J�J�q�g�g�&6��J�L������G�K�0�1r'c�B�URRnU"S5nURURU5 URURS5 URUR5U5 U"S5nUR[
U5[
[S555 UR[[USS5 UR[[USS5 UR[[USS5 UR[[US	S5 g)
Nz9.8182731e181273rr�r�realr��imag�	conjugate�__complex__)rr�rBr�r�r��complexr�rwr5rLr�s   r�test_complex�PythonAPItests.test_complex�
s����,�,�&�&���&�'���������#��������#���������*��C�L��������W�U�1�X�%6�7����.�'�1�f�c�B����.�'�1�f�c�B����.�'�1�k�3�G����.�'�1�m�S�Ir'c	��URRnURRnURRnURRnURR
nU"5nSUlSUlSUlU"5nUR5 URU"SU5S5 URU"SUS9S5 URU"USS9S5 URU"US9S5 UR5 URXASUS9 URURU5 URURU5 UR5 URU"S5RUS9S	5 URXQ"S
5RUS9 URURU5 URURU5 UR5 URU"S5R!US9U"S55 URXA"S5R US9 URURU5 URURU5 URU"S5R#US9U"S55 URU"S5R%US9S
5 URU"S5R'US9U"S55 URU"S5R)US9U"S55 URU"S5R+US9S5 URU"S5R-US9S5 URU"S5R/US9S5 URU"S5R1US9U"S55 URU"S5R3USS9S5 UR5 URUU"S5R4U"S5US9 URURU5 URURU5 URU"S5R7U"S5US9U"S55 URU"S5R7U"S5US9U"S55 URU"S5R9U"S 5US9U"S 55 URU"S!5R;U"S"5US9U"S#55 URU"S!5R=U"S"5US9U"S55 URU"S5R?U"S$5US9U"S%55 UR5 URUU"S5R@U"S&5US9 URURU5 URURU5 URU"S'5RCU"S(5US9U"S)55 URU"S*5REU"S+5US	S,9U"S-55 UR[FU"S5RHUS9 UR[FU"S5RJUS9 UR[FU"S5RLUS9 UR[FU"S5RNUS9 UR[FU"S5RPUS9 UR[FU"S5RRUS9 UR[FU"S5RTUS9 UR[FU"S5RVUS9 URU"S5RYUS95 URU"S5R[US95 UR[FU"S5R\US9 UR[FU"S5R^US9 UR[FU"S5R`US9 URU"S.5RcUS9S5 URU"S5ReUS9S5 URU"S5RgUS9S/5 URU"S05RiUS9S05 URU"S15RkU"S25US9S5 URU"S15RmU"S25US9S5 URU"S35RoU"S25US9S5 URU"S45RqSUS9S5 URU"S45RqSUS9S5 UR5 URUU"S45RrSUS9 URURU5 URURU5 URU"S45RuSUS9S5 UR[FURvS5US9 UR[FU"S5RxUS9 URU"S5R{5S5 UR[FU"S$5R|US9 UR[FU"S$5R~US9 UR[FU"S5RzS6S9 UR[FU"S5RzS6S79 SSS5 g!,(df   g=f)8Nrr�r)rL)r$rrr�rr1r�z0.7r�r�z-0.9z9.73z1E+1�9999�'z-2000i0���rr�z0.0625�0.2r�)r$rrqr��0.01z0.0101r]z-0.3z0.02z-0.03r�r�r��1e10�9.99rYr�9.9z0.9)�thirdr$rz7E+1i����rNz0.21�11rJ�01�23g�������?r)r�)@rr�r-r�r�r�r*rer_r1rBrwr!rVrhrarVrWr�r�r�r^r�r�r�rgrir�r�r�r�r�r_r�r]r4r{r}rr�r�r�r�r�r�r��adjustedr��radixrXryrgr�rcr�r�rZr[r\rr0�	canonicalrqrs)r�r�r-r�r�r��xcr�s        r�test_named_parameters�$PythonAPItests.test_named_parameters�
s�	���L�L� � ���,�,�&�&���|�|�0�0���<�<�8�8���<�<�(�(��
�Y�����������
�^�q�
�M�M�O����Q�q�"�X�q�)����Q�q�"�-�q�1����Q�r��3�Q�7����Q�r�]�A�.��N�N�����.�5�"��E��O�O�B�H�H�%5�6�7����Q�W�W�%5�6�7��N�N�����Q�q�T�X�X�b�X�1�1�5����h��!����"��=��O�O�B�H�H�X�.�/����Q�W�W�X�.�/��N�N�����Q�q�T�W�W�R�W�0�!�E�(�;����.��"����"��E��O�O�B�H�H�%5�6�7����Q�W�W�%5�6�7����Q�q�T�Z�Z��Z�3�Q�v�Y�?����Q�r�U�-�-�b�-�9�2�>����Q�r�U�_�_�R�_�8�!�F�)�D����Q�v�Y�0�0��0�<�a��i�H����Q�v�Y�2�2�2�2�>��E����Q�w�Z�9�9�"�9�E�u�M����Q�u�X�7�7��7�C�S�I����Q�x�[�-�-�b�-�9�1�U�8�D����Q�x�[�0�0��1�0�E�r�J��N�N�����.���f�3�3�Q�u�X�r�
�
K��O�O�B�H�H�%5�6�7����Q�W�W�%5�6�7����Q�v�Y�]�]�1�X�;��]�C�Q�u�X�N����Q�v�Y�]�]�1�X�;��]�C�Q�u�X�N����Q�u�X�-�-�a��i��-�D��v�Y�
(����Q�v�Y�]�]�1�W�:�r�]�B�A�f�I�N����Q�v�Y�.�.�q��z�2�.�F��u�X�
'����Q�u�X�1�1�!�D�'�2�1�F��%��Q��N�N�����.���h�/�/��6��B�
�
H��O�O�B�H�H�%5�6�7����Q�W�W�%5�6�7����Q�v�Y�5�5�a��h��5�K��v�Y�
(�
���Q�u�X�\�\��%��"�A�\�N��v�Y�
(�
���i��1��):�):�B��G����i��1������D����i��1��)9�)9�2��F����i��1����b��A����i��1����r��B����i��1����r��B����i��1������D����i��1����r��B����Q�v�Y�0�0��0�<�=��O�O�A�f�I�2�2�2�2�>�?����i��1������C����i��1������D����i��1����R��@����Q�t�W�\�\�"�\�5�q�9����Q�q�T�0�0��0�<�a�@����Q�v�Y�3�3�B�3�?��N����Q�v�Y�4�4�R�4�@�&�I����Q�t�W�0�0��4��"�0�E�q�I����Q�t�W�/�/��$���/�D�a�H����Q�t�W�0�0��4��"�0�E�q�I����Q�t�W�^�^�A�r�^�:�A�>����Q�t�W�^�^�A�r�^�:�A�>��N�N�����h���g�n�n�a��
�
=��O�O�B�H�H�X�.�/����Q�W�W�X�.�/����Q�t�W�]�]�2�r�]�:�A�>����i����s�B��G����i��1������C����Q�q�T�^�^�-�q�1����i��4��)9�)9�2��F����i��4��)<�)<�b��I����i��1������E����i��1����S��A�E�^�^�s
�j(m�
mc��URnURnURnURnURnUR
nURnURnURn	URn
URnUR[U[55 UR[X255 UR[XB55 UR[U[55 UR[XR55 UR[U[55 UR[Xj55 UR[Xi55 UR[Xb55 UR[Xy55 UR[Xz55 UR[Xx55 UR[Xr55 UR[X�55 UR[X�55 UR[X�55 UR[X�55 UR[UR U55 UR[UR"U55 UR[UR$U55 UR[UR$[55 UR[UR&U55 gr)rr�r��FloatOperationr�r�r�r�r�r�r�r!r��ArithmeticErrorr4�ZeroDivisionError�ConversionSyntax�DivisionImpossible�DivisionUndefined�InvalidContext)r�rr�r�r�r�r�r�r�r�r�r�s            r�test_exception_hierarchy�'PythonAPItests.test_exception_hierarchy@s!���,�,��"�3�3��"�3�3�� �/�/�� �/�/���#�#���%�%�	��%�%�	��/�/���/�/���/�/�����
�#3�_�E�F����
�#3�F�G����
�>�D�E����
�>�9�=�>����
�>�D�E����
�>�3D�E�F����
�8�5�6����
�8�5�6����
�8�>�?����
�9�6�7����
�9�6�7����
�9�8�9����
�9�?�@����
�9�?�@����
�7�=�>����
�7�=�>����
�7�=�>����
�7�#;�#;�=M�N�O����
�7�#=�#=�?O�P�Q����
�7�#<�#<�>N�O�P����
�7�#<�#<�>O�P�Q����
�7�#9�#9�;K�L�Mr'rN)r�rirjrkr�r�r�r	r�r�r�r�r�r�r�r�rmrr'rr�r�
sP��;�11�f?�"�.��.�
8�@�@*�82�0J� nB�`&Nr'r�c��\rSrSr\rSrg)�CPythonAPItestsihrNr�rr'rr�r�hr�r'r�c��\rSrSr\rSrg)�PyPythonAPItestsikrNr�rr'rr�r�kr�r'r�c��\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&S%r'S&r(S'r)S(r*S)r+S*r,S+r-S,r.S-r/S.r0S/r1S0r2S1r3S2r4S3r5S4r6S5r7S6r8S7r9S8r:S9r;S:r<S;r=S<r>S=r?S>r@S?rAS@rBgA)B�ContextAPItestsinc��URRnURRnURRnURRnU"5nU"SSSSSSSSS9nXV4H�nURURS5 URUR[5 URURS5 URURS5 URURS5 URURS5 [XS/5 [XSX#U/5 M� g)	N)r*r+rer_rYrarVr,r��?B��rrrVr,)rr-r�r�r�rBr*r+r.rer_rYrar&)r�r-r�r�r�rnrlr�s        rra�ContextAPItests.test_none_argsps	���,�,�&�&���<�<�8�8�����4�4���<�<�(�(��
�Y��
�$��D�t�"�$�d�$�H����A����Q�V�V�R�(����Q�Z�Z��9����Q�V�V�V�,����Q�V�V�W�-����Q�Z�Z��+����Q�W�W�a�(��4�G�R�0��4�G�.>�.6�.8�
9�r'c��[[RS-5GH=nURRn[
RSnUR[
RS'U"5n[R"[R"XA55nURURUR5 URURUR5 URURUR5 URURUR5 URURUR5 URURUR5 URUR UR 5 URUR"UR"5 [$(a[$[&4[&[$4/O[&[&4/nUGHHupx[)[*5GH.up�[)[,U5GHup�[)[,U5GH�up�[.R0"SS5n
[.R0"SS5n[.R0"SS5n[.R0"S5n[.R0"S5nU[
RS'UR	X�U[*U	UU[,USU[,USUS9n[R"XA5nU[
RS'[R"U5nUR3UUR5 URURU
5 URURU5 URURU5 URUR[*U	5 URURU5 URURU5 [5UUS[,USU5 [5UUS	[,USU5 GM� GM GM1 GMK U[
RS'GM@ g)
Nrrr�rerr)r*r_rer+rYrarVr,rVr,)r�r�r�rr-rqr�r�r�rBr*r_rer+rYrarVr,r�r�r7�
RoundingModesr;r0�	randranger�r&)r�r�r-r�r�rP�combinations�dumper�loader�rir��fi�tir*r�r��capsrarrs                    rr��ContextAPItests.test_pickle�sG���6�2�2�Q�6�7�E��l�l�*�*�G��+�+�i�0�K�&*�\�\�C�K�K�	�"��	�A����V�\�\�!�3�4�A����Q�V�V�Q�V�V�,����Q�V�V�Q�V�V�,����Q�V�V�Q�V�V�,����Q�Z�Z����4����Q�Z�Z����4����Q�W�W�a�g�g�.����Q�W�W�a�g�g�.����Q�W�W�a�g�g�.�01�q�Q��F�Q��F�+��1�v�h�L�".���&�}�5�E�B�!*�>�&�+A�!B���%.�~�f�/E�%F�E�B�#)�#3�#3�A�s�#;�D�#)�#3�#3�D�!�#<�D�#)�#3�#3�A�s�#;�D�#)�#3�#3�A�#6�D�$*�$4�$4�Q�$7�E�6<�C�K�K�	�2� &���'+�T�+8��+<�+/�u�(6�v�(>�s��(C�(6�v�(>�s��(C�!/�!�A�!'���Q� 6�A�6<�C�K�K�	�2� &���Q��A� �1�1�!�V�^�^�D� �,�,�Q�V�V�T�:� �,�,�Q�V�V�T�:� �,�,�Q�V�V�T�:� �,�,�Q�Z�Z��r�9J�K� �,�,�Q�Z�Z��>� �,�,�Q�W�W�e�<�*�4��G�^�F�=S�TW�UW�=X�Y�*�4��G�^�F�=S�TW�UW�=X�Y�?&G�"C�6�#/�H&1�C�K�K�	�"�s8r'c��URRnURU"S5SSU"S5S0/5 URU"S5SSS0/5 g)Nr�r�r�)rr)rr��assertIn�assertNotInrss  r�test_equality_with_other_types�.ContextAPItests.test_equality_with_other_types�sO���,�,�&�&���
�
�g�b�k�C��g�b�k�5�"�#E�F�������s�C���&;�<r'c��URRnURRnU"5nUR5nUR	[U5[U55 UR	[UR5[UR55 UR	[UR5[UR55 [URR55n[URR55nURXV5 URURUR5 gr)rr�r-rnr�rErVr,r��keysrB)r�r�r-r�r�k1�k2s       r�	test_copy�ContextAPItests.test_copy�s����,�,�&�&���,�,�&�&���I��
�F�F�H�����B�q�E�2�a�5�)����B�q�w�w�K��A�G�G��5����B�q�w�w�K��A�G�G��5�
�������
 ��
�������
 ������ �������!�'�'�*r'c�v�URRnU"5nUR[[US5 g)N�_clamp)rr-rwr5r �r�r-r�s   r�test__clamp�ContextAPItests.test__clamp�s.���,�,�&�&���I�����.�'�1�h�?r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 g�Nr�r�)rr�r-rErBrwr4�r�r�r-r�rs     r�test_abs�ContextAPItests.test_abs��g���,�,�&�&���,�,�&�&���I��
�E�E�'�"�+���������r��A�&����)�Q�U�U�D�1r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 g�Nrr�)rr�r-r�rBrwr4rs     r�test_add�ContextAPItests.test_add������,�,�&�&���,�,�&�&���I��
�E�E�'�!�*�g�a�j�)��������q�!��a�(�������w�q�z�1�-�q�1�������q�'�!�*�-�q�1����)�Q�U�U�C��3����)�Q�U�U�A�s�3r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr)rr�r-rgrBrwr4rs     r�test_compare�ContextAPItests.test_compare������,�,�&�&���,�,�&�&���I��
�I�I�g�a�j�'�!�*�-��������1�a��!�,�������7�1�:�q�1�1�5�������1�g�a�j�1�1�5����)�Q�Y�Y��Q�7����)�Q�Y�Y��3�7r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr)rr�r-rirBrwr4rs     r�test_compare_signal�#ContextAPItests.test_compare_signal�����,�,�&�&���,�,�&�&���I��
���W�Q�Z����4������)�)�!�Q�/��3�����)�)�'�!�*�a�8�!�<�����)�)�!�W�Q�Z�8�!�<����)�Q�%5�%5�s�A�>����)�Q�%5�%5�q�#�>r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr)rr�r-rkrBrwr4rs     r�test_compare_total�"ContextAPItests.test_compare_totals����,�,�&�&���,�,�&�&���I��
�O�O�G�A�J���
�3���������A�.��2����������Q�7��;��������G�A�J�7��;����)�Q�_�_�c�1�=����)�Q�_�_�a��=r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr)rr�r-rmrBrwr4rs     r�test_compare_total_mag�&ContextAPItests.test_compare_total_mags����,�,�&�&���,�,�&�&���I��
�����
�G�A�J�7������,�,�Q��2�A�6�����,�,�W�Q�Z��;�Q�?�����,�,�Q���
�;�Q�?����)�Q�%8�%8�#�q�A����)�Q�%8�%8�!�S�Ar'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr
)rr�r-rqrBrwr4rs     r�
test_copy_abs�ContextAPItests.test_copy_abs&sg���,�,�&�&���,�,�&�&���I��
�J�J�w�r�{�#��������B���+����)�Q�Z�Z��6r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr
)rr�r-rorBrwr4rs     r�test_copy_decimal�!ContextAPItests.test_copy_decimal/�h���,�,�&�&���,�,�&�&���I��
�N�N�7�2�;�'���������+�Q�/����)�Q�^�^�T�:r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr
)rr�r-rsrBrwr4rs     r�test_copy_negate� ContextAPItests.test_copy_negate8�h���,�,�&�&���,�,�&�&���I��
�M�M�'�"�+�&��������r�*�A�.����)�Q�]�]�D�9r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 g)Nrr�r�rZ)rr�r-rurBrwr4rs     rr[�ContextAPItests.test_copy_signAs����,�,�&�&���,�,�&�&���I��
�K�K���
�G�B�K�0��������Q��+�Q�/�������W�Q�Z��4�a�8�������Q����4�a�8����)�Q�[�[�#�r�:����)�Q�[�[�!�T�:r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 g�Nrrr�r+)rr�r-rfrBrwr4rs     r�test_divide�ContextAPItests.test_divideM�����,�,�&�&���,�,�&�&���I��
�H�H�W�Q�Z����,��������!�Q���+�������'�!�*�a�0�!�4�������!�W�Q�Z�0�!�4����)�Q�X�X�s�A�6����)�Q�X�X�q�#�6r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-rwrBrwr4rs     r�test_divide_int�ContextAPItests.test_divide_intY�����,�,�&�&���,�,�&�&���I��
�L�L����W�Q�Z�0��������a��+�Q�/�������g�a�j�!�4�a�8�������a����4�a�8����)�Q�\�\�3��:����)�Q�\�\�1�c�:r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-rKrBrwr4rs     r�test_divmod�ContextAPItests.test_divmoder3r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 g�Nr�rJ)rr�r-rarBrwr4rs     r�test_exp�ContextAPItests.test_expqrr'c	��URRnURRnU"5nURU"S5U"S5U"S55nUR	URSSS5U5 UR	URU"S5SS5U5 UR	URSU"S5S5U5 UR	URSSU"S55U5 UR	URU"S5U"S5S5U5 UR[URSSS5 UR[URSSS5 UR[URSSS5 UR[URU"S5U"S5S	5 UR[URU"S
5U"S5S5 UR[U"S5RU"S5S	5 UR[U"S
5RU"S5S5 g)
Nrr�r�r+ri�4r�rz
not a decimalrr#gZd;�O��?)rr�r-r]rBrwr4rs     r�test_fma�ContextAPItests.test_fmazs����,�,�&�&���,�,�&�&���I��
�E�E�'�!�*�g�a�j�'�!�*�5��������q�!�Q���+�������w�q�z�1�a�0�!�4�������q�'�!�*�a�0�!�4�������q�!�W�Q�Z�0�!�4�������w�q�z�7�1�:�q�9�1�=����)�Q�U�U�C��A�6����)�Q�U�U�A�s�A�6����)�Q�U�U�A�q�#�6�	
���)�Q�U�U�!�*�-�w�q�z�?�	L����)�Q�U�U�!�!�*�g�f�o�u�	>�	
���)�W�Z�%8�%<�%<�!�!�*�o�	7����)�W�Q�Z�^�^�!�&�/�5�	2r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r}rBrwr4rs     r�test_is_finite�ContextAPItests.test_is_finite��g���,�,�&�&���,�,�&�&���I��
�K�K����$��������R��!�,����)�Q�[�[�$�7r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-rrBrwr4rs     r�test_is_infinite� ContextAPItests.test_is_infinite�r,r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�test_is_nan�ContextAPItests.test_is_nan�sg���,�,�&�&���,�,�&�&���I��
�H�H�W�R�[�!��������"��q�)����)�Q�X�X�t�4r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�test_is_normal�ContextAPItests.test_is_normal�rFr'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�test_is_qnan�ContextAPItests.test_is_qnan��g���,�,�&�&���,�,�&�&���I��
�I�I�g�b�k�"��������2���*����)�Q�Y�Y��5r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�test_is_signed�ContextAPItests.test_is_signed�rFr'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�test_is_snan�ContextAPItests.test_is_snan�rSr'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�test_is_subnormal�!ContextAPItests.test_is_subnormal�r(r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�test_is_zero�ContextAPItests.test_is_zero�rSr'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-rVrBrwr4rs     r�test_ln�ContextAPItests.test_ln�sg���,�,�&�&���,�,�&�&���I��
�D�D������������b��1�%����)�Q�T�T�4�0r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-rWrBrwr4rs     r�
test_log10�ContextAPItests.test_log10��g���,�,�&�&���,�,�&�&���I��
�G�G�G�B�K� ����������a�(����)�Q�W�W�d�3r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-rXrBrwr4rs     r�	test_logb�ContextAPItests.test_logb��g���,�,�&�&���,�,�&�&���I��
�F�F�7�2�;�����������Q�'����)�Q�V�V�T�2r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr)rr�r-rcrBrwr4rs     r�test_logical_and� ContextAPItests.test_logical_and
�����,�,�&�&���,�,�&�&���I��
�M�M�'�!�*�g�a�j�1��������q�!�,�a�0�������w�q�z�1�5�q�9�������q�'�!�*�5�q�9����)�Q�]�]�C��;����)�Q�]�]�A�s�;r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 g)Nr5r�)rr�r-ryrBrwr4rs     r�test_logical_invert�#ContextAPItests.test_logical_invert
sn���,�,�&�&���,�,�&�&���I��
���W�T�]�+������)�)�$�/��3����)�Q�%5�%5�v�>r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr)rr�r-r�rBrwr4rs     r�test_logical_or�ContextAPItests.test_logical_or
r7r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr)rr�r-r�rBrwr4rs     r�test_logical_xor� ContextAPItests.test_logical_xor!
rnr'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-r�rBrwr4rs     r�test_max�ContextAPItests.test_max-
rr'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-r�rBrwr4rs     r�test_max_mag�ContextAPItests.test_max_mag9
rr'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-r�rBrwr4rs     r�test_min�ContextAPItests.test_minE
rr'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-r�rBrwr4rs     r�test_min_mag�ContextAPItests.test_min_magQ
rr'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-�minusrBrwr4rs     r�
test_minus�ContextAPItests.test_minus]
rfr'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-rurBrwr4rs     r�
test_multiply�ContextAPItests.test_multiplyf
�����,�,�&�&���,�,�&�&���I��
�J�J�w�q�z�7�1�:�.��������A�q�)�1�-�������G�A�J��2�A�6�������A�w�q�z�2�A�6����)�Q�Z�Z��a�8����)�Q�Z�Z��C�8r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�test_next_minus�ContextAPItests.test_next_minusr
sh���,�,�&�&���,�,�&�&���I��
�L�L����%��������b�)�1�-����)�Q�\�\�4�8r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�test_next_plus�ContextAPItests.test_next_plus{
rFr'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-r�rBrwr4rs     r�test_next_toward� ContextAPItests.test_next_toward�
rnr'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�test_normalize�ContextAPItests.test_normalize�
rFr'c��URRnURRnU"5nURUR	S5UR	U"S555 URUR	S5UR	U"S555 URUR	S5UR	U"S555 g)Nr�rr)rr�r-rBrg)r�r�r-r�s    r�test_number_class�!ContextAPItests.test_number_class�
s����,�,�&�&���,�,�&�&���I���������,�a�n�n�W�S�\�.J�K��������*�A�N�N�7�1�:�,F�G��������,�a�n�n�W�S�\�.J�Kr'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-�plusrBrwr4rs     r�	test_plus�ContextAPItests.test_plus�
rjr'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR	URU"S5U"S55U5 UR[URSS5 UR[URSS5 UR	URSSSS9S5 g)	Nrr�r�r@r�r�r)�modulor�r�)rr�r-�powerrBrwr4rs     r�
test_power�ContextAPItests.test_power�
s	���,�,�&�&���,�,�&�&���I��
�G�G�G�A�J���
�+���������A���*����������Q�/��3��������G�A�J�/��3����������W�Q�Z�8�!�<����)�Q�W�W�c�1�5����)�Q�W�W�a��5��������Q�!��4�a�8r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-r_rBrwr4rs     rr��ContextAPItests.test_quantize�
r�r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-�	remainderrBrwr4rs     r�test_remainder�ContextAPItests.test_remainder�
s����,�,�&�&���,�,�&�&���I��
�K�K���
�G�A�J�/��������Q��*�A�.�������W�Q�Z��3�Q�7�������Q���
�3�Q�7����)�Q�[�[�#�q�9����)�Q�[�[�!�S�9r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-r�rBrwr4rs     r�test_remainder_near�#ContextAPItests.test_remainder_near�
rr'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-rZrBrwr4rs     r�test_rotate�ContextAPItests.test_rotate�
r3r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�	test_sqrt�ContextAPItests.test_sqrt�
rjr'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-r�rBrwr4rs     r�test_same_quantum�!ContextAPItests.test_same_quantum�
s����,�,�&�&���,�,�&�&���I��
�N�N�7�1�:�w�q�z�2���������1�-�q�1���������
�A�6��:��������7�1�:�6��:����)�Q�^�^�S�!�<����)�Q�^�^�Q��<r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-r[rBrwr4rs     r�test_scaleb�ContextAPItests.test_scaleb�
r3r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-r\rBrwr4rs     r�
test_shift�ContextAPItests.test_shift
s����,�,�&�&���,�,�&�&���I��
�G�G�G�A�J���
�+���������A���*����������Q�/��3��������G�A�J�/��3����)�Q�W�W�c�1�5����)�Q�W�W�a��5r'c��URRnURRnU"5nURU"S5U"S55nUR	URSS5U5 UR	URU"S5S5U5 UR	URSU"S55U5 UR[URSS5 UR[URSS5 gr0)rr�r-�subtractrBrwr4rs     r�
test_subtract�ContextAPItests.test_subtractr�r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�test_to_eng_string�"ContextAPItests.test_to_eng_string"�h���,�,�&�&���,�,�&�&���I��
�O�O�G�B�K�(���������,�a�0����)�Q�_�_�d�;r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�test_to_sci_string�"ContextAPItests.test_to_sci_string+r�r'c��URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 gr<)rr�r-r�rBrwr4rs     r�test_to_integral_exact�&ContextAPItests.test_to_integral_exact4sn���,�,�&�&���,�,�&�&���I��
������,������,�,�R�0�!�4����)�Q�%8�%8�$�?r'c�`�URRnURRnU"5nURU"S55nUR	URS5U5 UR[URS5 UR[URSS5 g)Nr�rJr)rr�r-r�rBrwr4rs     r�test_to_integral_value�&ContextAPItests.test_to_integral_value=s����,�,�&�&���,�,�&�&���I��
������,������,�,�R�0�!�4����)�Q�%8�%8�$�?����)�Q�%8�%8�"�c�Br'rN)Cr�rirjrkrar�r�rrrrrrrr r#r&r*r[r1r5r9r=rArDrHrKrNrQrUrXr[r^rardrhrlrprsrvryr|rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rmrr'rr�r�ns>��9�(;1�z=�
+�	@�2�
4�
8�
?�
>�
B�7�;�:�
;�
7�
;�
7�2�2�48�:�5�8�6�8�6�;�6�1�4�3�
<�?�
;�
<�
4�
8�
4�
8�4�
9�9�8�
<�8�L�3�9�
9�
:�
?�
7�3�
=�
7�
6�
9�<�<�@�Cr'r�c��\rSrSr\rSrg)�CContextAPItestsiGrNr�rr'rr�r�Gr�r'r�c��\rSrSr\rSrg)�PyContextAPItestsiJrNr�rr'rr�r�Jr�r'r�c�D�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rg)�ContextWithStatementiMc�8�URRnURRnU"5nU"5nU"5nSSS5 U"5nURX6S5 UR	UWS5 URUWS5 g!,(df   NN=f)N�!did not restore context correctly�did not copy the context� __enter__ returned wrong context)rr�r�r��assertIsNot)r�r�r��orig_ctx�	enter_ctx�set_ctx�	final_ctxs       r�test_localcontext�&ContextWithStatement.test_localcontextQs|���\�\�,�,�
��|�|�0�0���<��
�^�y� �l�G���L�	��
�
�h�+N�O�����7�,F�G��
�
�g�y�*L�M��^�s�B�
Bc���URRnURRnURRnURRnU"5nU"SS9nU"U5nU"5nSSS5 U"5nUR	XHS5 URWRURS5 URXWS5 UR	UWS5 g!,(df   Nt=f)Nr�r*r�zdid not set correct contextr�r�)rr-r�r�r�rBr*r�)	r�r-r�r�r��new_ctxr�r�r�s	         r�test_localcontextarg�)ContextWithStatement.test_localcontextarg^s����,�,�&�&���\�\�,�,�
��|�|�0�0���|�|�0�0���<���r�"��
�'�
"�i� �l�G�#��L�	��
�
�h�+N�O�������w�|�|�5R�S�����+E�F��
�
�g�y�*L�M�
#�
"�s�.C$�$
C2c	�|�URRS[SSSSS9nURURS5 URUR
URR5 URURS5 URURS5 URURS5 URURS5 SSS5 UR[URRSS9 UR[URRSS9 UR[URRS	S
9 UR[URRSS9 UR[URRSS
9 UR[URRSS9 UR[URRSS9 UR[URRSS9 UR[URRSS9 UR[URRSS9 UR[URRSS
9 g!,(df   GN�=f)Nr�i���rr)r*r+r_rerYra)r^�r_r��rer�rY�rar�r��rV�r,)
rr�r�rBr*r+r_rerYrarwr4rr�s  r�test_localcontext_kwargs�-ContextWithStatement.test_localcontext_kwargsos��
�\�\�
&�
&��o��2���'�
�����S�X�X�r�*����S�\�\�4�<�<�+G�+G�H����S�X�X�s�+����S�X�X�r�*����S�\�\�1�-����S�Y�Y��*�
�	
���)�T�\�\�%>�%>�"��M����*�d�l�l�&?�&?�a��H����*�d�l�l�&?�&?�b��I����*�d�l�l�&?�&?�!��L����*�d�l�l�&?�&?�q��I����)�T�\�\�%>�%>���L����)�T�\�\�%>�%>���K����)�T�\�\�%>�%>�b��I����)�T�\�\�%>�%>�b��I����)�T�\�\�%>�%>�R��H����)�T�\�\�%>�%>�R��H�3
�
�s�B=J,�,
J;c��URR5nURnURRSS9nUR	URS5 UR	URU5 SSS5 URRSS9nUR	URS5 UR	URU5 SSS5 g!,(df   Ni=f!,(df   g=f)Nr�r�r�)rr�r*r�rB)r�r��	orig_prec�ctx2s    r�>test_local_context_kwargs_does_not_overwrite_existing_argument�SContextWithStatement.test_local_context_kwargs_does_not_overwrite_existing_argument�s����l�l�%�%�'���H�H�	�
�\�\�
&�
&�B�
&�
/�4����T�Y�Y��+����S�X�X�y�1�0��\�\�
&�
&�B�
&�
/�4����T�Y�Y��+����S�X�X�y�1�0�
/�0�
/��0�
/�s�9C�9C-�
C*�-
C;c	��URRnURRnURRnURRnURR
nURRnU"5nUR5 U"SS9nU"5n	URU	RUR5 URU	RUR5 SU	RU'SU	lURURS5 URXYRS5 URU	RU5 U"U5n
URU
RUR5 URU
RUR5 URXjR U"S5S5 UR#U
RU5 URU
RU5 A
SSS5 UR#U	RU5 A	SSS5 URURS5 UR#URU5 UR#URU5 UR#URU5 UR#URU5 g!,(df   N�=f!,(df   N�=f)N�r�T���z0e-999z3.4e200r)rr�r-r�r�r�r�r1rBrVr,r_r�rwr�r!r�rh)r�r�r-r�r�r�r�r�r�rnrls           r�test_nested_with_statements�0ContextWithStatement.test_nested_with_statements�s1���,�,�&�&���,�,�&�&���\�\�,�,�
��|�|�0�0���,�,�&�&���<�<�(�(���<�������s�#��
�^�r����R�X�X�x�~�~�6����R�X�X�x�~�~�6� $�B�H�H�W���B�G�����
�
�t�4����g�'8�'8�(�C��O�O�B�H�H�W�-�.��g�&�"�� � ����7�=�=�9�� � ����7�=�=�9��!�!�(�H�H�g�i�6H�!�L�� � ����'�!2�3�������� 2�3��
'�
���R�X�X�h�/�0��!�"	
���H�M�M�4�0��������0�1��������1�2�������w�/�0�������x�0�1�'�&���^�s&�)CK,�*B-K�'K,�
K)	�%K,�,
K:c	�@�URRnU"5nAU"5nAU"5nAU"5nASSS5 SSS5 SSS5 SSS5 g!,(df   N'=f!,(df   N0=f!,(df   N9=f!,(df   g=fr�rr��r�r�rnrlrm�c4s      r�test_with_statements_gc1�-ContextWithStatement.test_with_statements_gc1�so���|�|�0�0��
�^�r����2��!�^�r��%��2��(�$� ��^�(���$�^�� ����^�sO�	B�	A>�	A-�A	�A-�A>�B�
A*
�&A-�-
A;�7A>�>
B	�B�
Bc	�F�URRnU"5nU"U5nAU"U5nAU"U5nAASSS5 SSS5 SSS5 SSS5 g!,(df   N'=f!,(df   N0=f!,(df   N9=f!,(df   g=frr�r�s      r�test_with_statements_gc2�-ContextWithStatement.test_with_statements_gc2�s{���|�|�0�0��
�^�r��b�!�R��!�"�%���%�b�)�R���*�&�"��^�
*�)��&�%��"�!���^�sO�	B�
B�
A0�A	�A0�B�B�
A-
�)A0�0
A>�:B�
B	�B�
B c	��URRnURRnURRnURRnU"5nAU"SS9nU"U5 U"U5nAURURS5 AU"SS9nU"U5 AURU"5RS5 U"SS9n	U"U	5 URU"5RS5 U"U	5n
A	URU
RS5 A
U"SS9nU"U5 AURU"5RS5 U"5nURURS5 ASSS5 SSS5 SSS5 SSS5 g!,(df   N'=f!,(df   N0=f!,(df   N9=f!,(df   g=f)Nrr�rr�r�)rr-r�r�r2rBr*)
r�r-r�r�r2rn�n1rl�n2�n3rm�n4r�s
             r�test_with_statements_gc3�-ContextWithStatement.test_with_statements_gc3�st���,�,�&�&���|�|�0�0���\�\�,�,�
��\�\�,�,�
�
�^�r���a��B��r�N��b�!�R��� � ����!�,���!�_���2���� � ���!2�!2�A�6��!�_���2��� � ���!2�!2�A�6�!�"�%����$�$�R�W�W�a�0�� �a��B��r�N���$�$�Z�\�%6�%6��:�%��2��(�(����!�4��(�&�"�	�^�.(���&�%��"�!��	�^�sV� G�8BF5�>AF$�F	�2F$�:F5�G�
F!
�F$�$
F2�.F5�5
G	�?G�
GrN)
r�rirjrkr�r�r�r�r�r�r�rrmrr'rr�r�Ms.��N�N�"I�82�!2�F
�
�r'r�c��\rSrSr\rSrg)�CContextWithStatementi�rNr�rr'rrr�r�r'rc��\rSrSr\rSrg)�PyContextWithStatementi�rNr�rr'rr
r
�r�r'r
c�<�\rSrSrSrSr\S5rSrSr	Sr
g)	�ContextFlagsi�c�6^�TRRnTRRnTRRnTRRnTRR
nTRRnTRRnU4SjnU"SSS[//S9n	U	RU"S5/4U	RU"S5/4U	RU"S5U"S	5/4U	RU"S5U"S	5/4U	RU"S5U"S	5/4/n
U/U/U/U/U/X4XVU//nU
GHKup�U	R5 U"U
6nU	RR!5VVs/sHunnU(dMUPM nnnUH�nU	R5 UHnU"U	U5 M U"U
6n[#U5nUHnUU;dMUR%U5 M UR'[(S
9 U	RR!5VVs/sHunnU(dMUPM nnnUR'[(S
9 TR+UUSSU<S
U<S3-5 TR+UUSSU<S
U<3-5 M� GMN gs snnfs snnf)Nc�>�TR[:Xa&SURU'URU(aUegUR	U5 g�NT)rr�rVr,�_raise_error)r$�flagr�s  �r�raise_error�7ContextFlags.test_flags_irrelevant.<locals>.raise_errorsC����|�|�q� �&*��
�
�d�#��=�=��&��J�'��$�$�T�*r'r)r}r�)r*r_rer+r,rVz100E-425000010rr�z
9.87654321r-z=operation produces different answers depending on flags set: z	expected z, got r�z9operation raises different flags depending on flags set: )rr�r-r�r�r�r�r�r.rer�r�rur�r1rVr�r�r:r@rErB)r�r�r-r�r�r�r�r�rr$�
operations�flagsets�fnrrG�kr�rV�extra_flagsr�new_ans�expected_flags�	new_flagss`                      r�test_flags_irrelevant�"ContextFlags.test_flags_irrelevant�s�����,�,�&�&���,�,�&�&���,�,�&�&���,�,�&�&���L�L�*�*�	��,�,�&�&���L�L�*�*�	�	+��q��I�#2�"�B�H��
�^�^�g�&6�7�8�9�
�\�\�G�A�J�<�(�
�[�[�7�<�0�'�,�2G�H�I�
�
�
��� 5�w�|�7L�M�N�
�
�
��� 5�w�|�7L�M�N��
��I��y�9�+��y�9�+��y�9�E�G��#�H�B����!��d�)�C�#*�=�=�#6�#6�#8�>�#8�4�1�a�A�Q�#8�E�>�'���#�#�%�'�D����.�(��d�)��"&�e���'�D��>�1�&�-�-�d�3�(��#�#��#�+�+2�-�-�*=�*=�*?�E�*?�3�1�Q�1�Q�*?�	�E����2��&�� � ��g�!`�;>��!H�"I�J�� � ��N�"]�;I�9�"U�#V�W�+ (�
#��?��"Fs�6J�J�J
�,J
c���URRnURRnURRnU"5nUR	UR
UR5 UR	URUR
5 URUlURUR
UR5 URURUR
5 SUR
U'UR
UlURUR
UR5 URURUR
5 0nURUR
5 URXTR
5 URUR
U5 SXR'UR	XTR
5 UR	UR
U5 US0nUR	XTR
5 UR	UR
U5 S/nUR	XTR
5 UR	UR
U5 g)NTFr�)	rr-r�r�r�rVr,rB�update)r�r-r�r�r�rs      r�test_flag_comparisons�"ContextFlags.test_flag_comparisons;s����,�,�&�&���,�,�&�&���,�,�&�&���I��	
���A�G�G�Q�W�W�-����A�G�G�Q�W�W�-��'�'���������!�'�'�*�������!�'�'�*��������'�'���������!�'�'�*�������!�'�'�*���	�����������G�G�$�������!�$���
����A�w�w�'����A�G�G�Q�'��U�O�����A�w�w�'����A�G�G�Q�'�
�G�����A�w�w�'����A�G�G�Q�'r'c��URRnURRnURRnU"5nUR	UR
U5 UR
5 URU"S5S5 URURU5 UR
5 URURS5S5 URURU5 UR
5 URS5nUR	URU5 URUS5 URURU5 UR
5 URS5nUR	URU5 URUS5 URURU5 SUR
U'UR
5 URX!S5 URURU5 UR
5 URX$RS5 URURU5 UR
5 URS5nUR	URU5 UR
5 URS5nUR	URU5 SSS5 g!,(df   g=f)Ng@T)rr�r�r�rhr,r1rBr!rVr�rr�rw)r�r�r�r�r�rs      r�test_float_operation�!ContextFlags.test_float_operationasG���,�,�&�&�����4�4���|�|�0�0��
�^�q����Q�W�W�^�4�5�
�M�M�O����W�S�\�3�/��O�O�A�G�G�N�3�4�
�M�M�O����Q�-�-�c�2�C�8��O�O�A�G�G�N�3�4�
�M�M�O��"�"�3�'�A����Q�W�W�^�4�5����Q��$��O�O�A�G�G�N�3�4�
�M�M�O��+�+�C�0�A����Q�W�W�^�4�5����Q��$��O�O�A�G�G�N�3�4�'+�A�G�G�N�#�
�M�M�O����n�s�;��O�O�A�G�G�N�3�4�
�M�M�O����n�.>�.>��D��O�O�A�G�G�N�3�4�
�M�M�O��"�"�3�'�A����Q�W�W�^�4�5�
�M�M�O��+�+�C�0�A����Q�W�W�^�4�5�]�^�^�s
�
J)K<�<
L
c�^^^^	^
^^^
^^^^^^^^�TRRmTRRnTRRmTRRnSUU4Sjjm	T"S5mT"S5m
SmSmT"S5mT"S5mSmS	mT"S
5mT"S5m[S5m
[S
5mSUU	U
UUU
UUUUUUUU4SjjnSUUU4SjjnU"5nU"U5nTR
URT5 U"USS9 U"USS9 SURT'U"UTS9 U"UTS9 SSS5 g!,(df   g=f)Nc��>�UR5 [X5nUT:XaTRXEU5 OTRU"U5S5 TR	UR
T5 gr)r1r rwr�r!rV)r�r�r%r$�signalr�r�r�s      ��r�assert_attr�7ContextFlags.test_float_comparison.<locals>.assert_attr�sX������!��� �A���'��!�!�&�Q�/��
�
�a��d�D�)��O�O�G�M�M�.�9�:r'r�r�r�r�r]r�r�r�r�r�r�r�c�>�SHnT"T
TX U5 M SHnT"TTX U5 M T"T
TSUS5 T"TTSUS5 T"TTSUS5 T"TTSUS5 T"TTSUS5 T"T	T
SUS5 T"TTSUS5 T"T
TSUS5 T"T"S5SSUS5 T"T	TSUS5 T"TT
SUS5 T"T"S5[S5SUS5 g)	N)rr%)r"r(r+r.r�r�r�r�)r�)r�r'r%r�r(�big_d�big_f�inf_d�inf_f�	neg_inf_d�	neg_inf_f�
neg_zero_d�
neg_zero_f�small_d�small_f�zero_d�zero_fs   ��������������r�doit�0ContextFlags.test_float_comparison.<locals>.doit�s���*���G�U�D�V�<�+�+���E�7�D�V�<�+�
���(�A�t�<��
�J��!�T�B��
�F�H�a��>���
�H�a��>�����!�T�:��	�9�h��4�@���u�h��4�8�
����!�T�:������X�q�$�?��	�5�(�A�t�<���y�(�A�t�<������e��h��4�Hr'c�~>�UR5 [ST"S5/5nTR[U5S5 TR	UR
T5 UR5 U(a TR
U[ST"S5/5 O[ST"S5/5nTR	UR
T5 UR5 ST"S5S4;nTR	UR
T5 UR5 ST"S5SSS0;nTR	UR
T5 g)	Nr�z100.0rr�r�g$@r�r�)r1r�rB�lenr!rVrw�sorted)r�r'rr�r�r�r�s    ���r�test_containers�;ContextFlags.test_float_comparison.<locals>.test_containers�s����
�M�M�O��U�G�G�,�-�.�A����S��V�Q�'��O�O�A�G�G�N�3�4�
�M�M�O���!�!�&�&�3����2H�I��D�'�&�/�2�3���O�O�A�G�G�N�3�4�
�M�M�O�����#�.�.�A��O�O�A�G�G�N�3�4�
�M�M�O������c�#�6�6�A��O�O�A�G�G�N�3�4r')r'Tr)rr�r-r�r�r�rhr,)r�r-r�r7r<r�r�r�r�r(r+r,r-r.r/r0r1r2r3r4r5r6s`      @@@@@@@@@@@@@@@r�test_float_comparison�"ContextFlags.test_float_comparison�s2�����,�,�&�&���,�,�&�&�����4�4���|�|�0�0��	;�	;��&�/���������������V�_�
����
��
�#���K�(�	��e����&�M�	�	I�	I�	I�<	5�	5�*�Y��
�"�
�����Q�W�W�^�4�5���4� ��A�d�+�&*�A�G�G�N�#���>�*��A�n�5��
�
�s
�.A
E�
Ec��URRnURRnURRnURRnU"5nURURU5 URURU5 UR5 SURU'SURU'URURU5 URURU5 gr)
rr�r-r�r�rhrVr,�clear_trapsr!)r�r�r-r�r�r$s      r�test_float_operation_default�)ContextFlags.test_float_operation_default�s����,�,�&�&���,�,�&�&���,�,�&�&�����3�3���)��������~�6�7�������~�6�7�����!%��
�
�g��(,��
�
�n�%�����
�
�n�5�6�����
�
�g�.�/r'rN)r�rirjrkrr rr#r>rBrmrr'rrr�s1��@W�D$(�L�36��36�jY6�v0r'rc��\rSrSr\rSrg)�
CContextFlagsirNr�rr'rrErEr�r'rEc��\rSrSr\rSrg)�PyContextFlagsirNr�rr'rrGrGr�r'rGc�$�\rSrSrSrSrSrSrg)�SpecialContextsizTest the context templates.c
�|�URRnURRnURRnURRnURR
nURRnURRnURRnURRn	[XSXVXxU	/5 U"5R5n
URnURnSn
S=UlUlX4H?nU"U5 U"5nURX�5 URURS5 MA X�lX�lU"U
5 U
(aU
eg![anUR n
SnAN9SnAff=f!X�lX�lU"U
5 U
(aU
ef=f)Nr,i�)r�BasicContext�ExtendedContextr�r2r�r�r�r�r�r&rnr*r�rB�	Exceptionr�)r�rKrLr�r2r�r�r�r�r��savecontext�basic_context_prec�extended_context_prec�ex�templater�rPs                 r�test_context_templates�&SpecialContexts.test_context_templatess����|�|�0�0���,�,�6�6���\�\�,�,�
��\�\�,�,�
��<�<�8�8�����4�4���<�<�(�(���L�L�*�*�	��,�,�&�&���t�7�
�x�G�L�	
�!�l�'�'�)��)�.�.�� /� 4� 4��
��	�7:�:�L��� 4�(�9���8�$��L��� � ��-�� � �����-�	:�!3��#8� ��{�#������
�	����B��	��!3��#8� ��{�#�����s+�AE9�9
F�F�F�F�F�F;c���URRnURRnURRnURRnURR
nURRnURRnURRnURURS5 URURS5 [XSXgU/5 U"5R5n	URn
SnU"5nURn
SUl
U"5nURURU
5 U"U5 U"5nURX�5 URURS5 X�l
U"U	5 U(aUeg![anURnSnAN3SnAff=f!X�l
U"U	5 U(aUef=f)Nr)r,i�)rrrKrLr�r2r�r�r�rBr*r&rnr�rMr�)r�rrKrLr�r2r�r�r�rN�default_context_precrQr��saveprecrPs               r�test_default_context�$SpecialContexts.test_default_context/s������4�4���|�|�0�0���,�,�6�6���\�\�,�,�
��\�\�,�,�
��<�<�8�8�����4�4���<�<�(�(������*�*�A�.�����-�-�q�1��t�W�
�x�8�	
�!�l�'�'�)��-�2�2��
��	���A��v�v�H�"%�N����A����Q�V�V�X�.��~�&���A����Q�/����Q�V�V�S�)�#7���{�#�������	����B��	��#7���{�#�����s+�A9F-�-
G
�7G�G�G
�
G�G)rN)r�rirjrkrlrSrXrmrr'rrIrIs��%�"�H'r'rIc��\rSrSr\rSrg)�CSpecialContextsiXrNr�rr'rr[r[Xr�r'r[c��\rSrSr\rSrg)�PySpecialContextsi[rNr�rr'rr]r][r�r'r]c��\rSrSrSrSrg)�ContextInputValidationi^c	��URRnURRnUR5nSHbn[	X4S5 UR[
X45S5 UR[[X4S5 UR[[X4S5 Md [	USS5 UR[
US5S5 UR[[USS5 UR[[USS5 UR[[US	S5 UR[[US	S
5 UR[[US	S5 UR[[US	S5 SHYnUR[[X4S5 UR[[X4S
5 UR[[X4/SQ5 M[ UR[[USS5 UR[[US/5 UR[[US05 UR[[USSS05 SH$nUR[URU5 M& UR[[US
5 UR[[US
5 UR[USS9 UR[USS9 UR[US
S9 UR[USS9 UR[US/S9 UR[US/S9 UR[USS9 UR[USS9 g)N�r*rer�r�r�r_r�r�rrr�r+r)r��rYrarr�r�rVr,r�r)r*rer_r+rYrarVr,r�r�r�r�r��Qr��rr)rr)
rr-rrnrLrBr rwrr4r5�KeyError�__delattr__)r�r-rr�r%s     r�test_invalid_context�+ContextInputValidation.test_invalid_context`s����,�,�&�&�����4�4�����!��%�D��A�V�$����W�Q�-�v�6����j�'�1�B�?����i��!�5�A�	%�	��6�7�#������F�+�W�5����*�g�q�&�!�<����)�W�a���A����)�W�a��R�@����)�W�a��Q�?����)�W�a��S�A����)�W�a��U�C�*�D����j�'�1�B�?����j�'�1�A�>����i��!�7�C�*�	
���.�'�1�f�c�B�	
���)�W�a��"�=����(�G�Q���<����(�G�Q��-�a�0�	2�'�D����n�a�m�m�T�B�'�
	
���)�W�a��3����)�W�a��3�	
���)�W�v��>����)�W�u��=����*�g�Q��7����*�g���;����(�G�C�5��9����(�G�C�5��9�	
���)�W�E��:����)�W�E��:r'rN)r�rirjrkrhrmrr'rr_r_^s��:;r'r_c��\rSrSr\rSrg)�CContextInputValidationi�rNr�rr'rrkrk�r�r'rkc��\rSrSr\rSrg)�PyContextInputValidationi�rNr�rr'rrmrm�r�r'rmc��\rSrSrSrSrg)�ContextSubclassingi�c�	^^�URmTRnTRmTRnTRnTR
nTRnTRnTRnTRnTRn	"UU4SjST5n
T"5nU
"5nSH'n
UR[X�5[X�55 M) UR"[U
40SS0D6 U
"SS9nURURS5 URX�R U"S5S	5 UR"["U
40S
S0D6 U
"[$SS9nURUR&[$5 URUR)U"S
55S5 UR"[U
40SS0D6 U
"SSS9nURUR*S5 UR-U"S5U"S55nURX�"S55 XHXvU4H!nUR/UR0U5 M# UR"[U
40SS0D6 U
"SSS9nURUR2S5 URX[R,U"S5U"S55 UR[4:Xa)XEU4H!nUR/UR0U5 M# UR"[U
40SS0D6 U
"S	S9nURUR6S	5 UR9S5nURUR;U5S5 UR"[U
40SS0D6 U
"SSS 9nURUR<S5 UR)U"S55nUR[?U5S!5 UR"["U
40S"S0D6 U
"Xc/S#9nXc4H!nUR/UR0U5 M# URA5 [BTH!nUREUR0U5 M# UR"["U
40S$S0D6 U
"Xc/S%9nXc4H!nUR/URFU5 M# URI5 [BTH!nUREURFU5 M# g)&Nc�.>�\rSrSrSUU4SjjrSrg)�>ContextSubclassing.test_context_subclassing.<locals>.MyContexti�Nc	�>�T
RU5 UbXlUbX lUbX0lUbX@lUbXPlUbX`lUb9[U[5(a[TU-V	s0sHo�X�;_M	 nn	Xpl
Ub:[U[5(a[TU-V	s0sHo�X�;_M	 nn	X�lggs sn	fs sn	fr)rr*r+r_rerYrar�r�r;rVr,)r�r*r+r_rerYrarVr,r�r-rs          ��rr�GContextSubclassing.test_context_subclassing.<locals>.MyContext.__init__�s����� � ��&��#� $�I��'�$,�M��#� $�I��#� $�I��'�$,�M��$�!&�J��$�!�%��.�.�9G��9P�SX�9X� Y�9X�A�A�J��9X�� Y�!&�J��$�!�%��.�.�9G��9P�SX�9X� Y�9X�A�A�J��9X�� Y�!&�J�%��!Z��!Zs�/C�+C)rer_rYrarVr*r+r,)NNNNNNNNr
)r-rs��r�	MyContextrr�s���IM�@D�%)�
'�
'r'ru�r*r+r_rerYrarVr,r*r�rr��9e2rr+�XYZ)r+r*r�r)r_r�)r_r*z1e-99z2.234e-2000r]re)rer*�1e99z
2.234e2000rYr��1E222z1e+222rar�c)rarez!1.000000000000000000000000000E+99rVr�r,r�)%rr�r-r�r�r�r�r�r�r�r�rBr rwrr*r_r4r�r+r�r_r�r!rVrer�rYr�r�rar=r1r;rhr,rA)r�r�r�r�r�r�r�r�r�r�rur�rr%rr'r-rs                @@r�test_context_subclassing�+ContextSubclassing.test_context_subclassing�s/����,�,���/�/���/�/���/�/�� �/�/���/�/���#�#���/�/���%�%�	��%�%�	�"�3�3��	'�	'��	'�4
�I���K��'�D����W�Q�-�w�q�/?�@�'�
	
���*�i�?�F�2�;�?��1����������#����*�J�J�����J�	
���)�Y�E�:�e�2D�E��z��2��������Z�0����������/��3�	
���*�i�>�F�1�:�>��2�A�&���������$�
�E�E�'�'�"�G�M�$:�;������G�E�N�+��9�w�G�F��O�O�A�G�G�F�O�,�H�	
���*�i�?�F�2�;�?��1�1�%���������#����(�E�E�7�6�?�G�L�<Q�R��<�<�1��"�g�6����������0�7�	
���*�i�C�J�r�?�C��q�!��������Q�'�
���W�%���������+�X�6�	
���*�i�?�G�A�;�?��A�B�'��������!�$�
�F�F�7�6�?�#������Q��!D�E�	
���)�Y�B�7�5�/�B��W�5�6���/�F��O�O�A�G�G�F�O�,�0�	�
�
��$�W�-�F����Q�W�W�V�_�-�.�	
���)�Y�B�7�5�/�B��W�5�6���/�F��O�O�A�G�G�F�O�,�0�	�
�
��$�W�-�F����Q�W�W�V�_�-�.r'rN)r�rirjrkr|rmrr'rroro�s��i.r'roc��\rSrSr\rSrg)�CContextSubclassingirNr�rr'rrrr�r'rc��\rSrSr\rSrg)�PyContextSubclassingirNr�rr'rr�r�r�r'r�c�&�\rSrSrSrSrSrSrg)�CheckAttributesic���UR[R[R5 UR[R[R5 UR[R
[R
5 UR[R[R5 UR[RSL=(d [RSL5 UR[RSL=(d [RSL5 UR[R[R5 UR[[[55[[[555 UR[[5Vs/sHoSSS:wdM
UPM sn[[R55 gs snf)NTFr�__)rBr�rZr�r�r�r�r!r��__version__r�r��dirr;�__all__)r�r�s  r�test_module_attributes�&CheckAttributes.test_module_attributess��	
������Q�Z�Z�0�������Q�Z�Z�0�������Q�Z�Z�0�������a�k�k�2�������$�.�I�!�.�.�E�2I�J�������$�.�I�!�.�.�E�2I�J��������
�
�6����S��Q��[�#�c�!�f�+�6����S��V�=�V���!�u��}�!�V�=�v�a�i�i�?P�Q��=s�5G+�G+c��[[R55Vs/sH#nSU;dURS5(aM!UPM% nn[[R55Vs/sH#nSU;dURS5(aM!UPM% nnUR[
U5[
U5-
[
55 gs snfs snf)Nr�r�)r�r�r-rr�rBr��r�rrr�s    r�test_context_attributes�'CheckAttributes.test_context_attributes)s����A�I�I�K�(�O�(�1�D�A�I�Q�\�\�#�=N�Q�(��O��A�I�I�K�(�O�(�1�D�A�I�Q�\�\�#�=N�Q�(��O�����Q��#�a�&��#�%�0��
P��Os� C�C�+ C�Cc��[[RS55Vs/sH#nSU;dURS5(aM!UPM% nn[[RS55Vs/sH#nSU;dURS5(aM!UPM% nnUR	[U5[U5-
[55 gs snfs snf)Nr)r�r�)r�r�r�rrBr�r�s    r�test_decimal_attributes�'CheckAttributes.test_decimal_attributes/s����A�I�I�a�L�)�P�)�1�T�Q�Y�a�l�l�3�>O�Q�)��P��A�I�I�a�L�)�P�)�1�T�Q�Y�a�l�l�3�>O�Q�)��P�����Q��#�a�&��#�%�0��
Q��Ps� C	�C	�- C�CrN)r�rirjrkr�r�r�rmrr'rr�r�s��R� 1�1r'r�c�b�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrg)�Coveragei5c��URRnURU"S5R5S5 URU"S5R5S5 URU"S5R5S5 g)N�	1234e9999i'r�rr�)rr�rBr�rss  r�
test_adjusted�Coverage.test_adjusted7si���,�,�&�&�������-�6�6�8�%�@�������0�0�2�A�6�������0�0�2�A�6r'c��URRnURRnU"S5R5nUR	US5 U"5nURU"S55nUR	US5 g)Nr))rr�r�r�rB)r�r�r�rr�s     r�test_canonical�Coverage.test_canonical?sk���,�,�&�&���\�\�,�,�
��A�J� � �"������A���L��
�K�K���
�#������A�r'c�^�URRR5nSUlSUlSUl[UlSUlSUl	[URH!nSURU'SURU'M# UR5nSnURX45 g)Nr�r}rrFz{Context(prec=425000000, rounding=ROUND_HALF_DOWN, Emin=-425000000, Emax=425000000, capitals=0, clamp=1, flags=[], traps=[]))rrrnr*rer_r�r+rYrar;rVr,�__repr__rB)r�r�rorrs     r�test_context_repr�Coverage.test_context_reprJs����L�L�'�'�,�,�.�����������$��
���
����!�$�,�,�/�C� �A�G�G�C�L� �A�G�G�C�L�0�
�J�J�L��
"��	
����r'c
���URRnURRnU"5nSUlSUlSUlUR
[U"S55S5 UR
U"S5S-S5 UR
U"S5S-S	5 UR
U"S5S
-S5 UR
U"S5RU"S5S5S5 URU"S
5RS
S5R5S5 UR
[U"S5S	S
5S	5 UR[:XaGUR
[SU"S	5S
5S	5 UR
[SS	U"S
55S	5 OFUR[[SU"S	5S
5 UR[[SS	U"S
55 UR
U"S5R5S5 URU"S5R!5S5 URU"S5R#5S5 UR
U"S5R%5S5 UR
U"S5R'5S5 UR
U"S5R)5S	5 UR
U"S5R+5S5 UR
U"S5*S5 UR
U"S5S-S5 UR
U"S5R-5S5 UR
U"S5R/5U"S55 UR
U"S5R15U"S55 UR
U"S5R35S5 UR
U"S57S5 UR
U"S5S
-S5 UR
U"S5S
-
S5 UR
U"S5R55S5 UR7U"S5R955 UR7U"S5R;55 UR7U"S5R;55 UR7U"S5R=55 UR7U"S5R?55 UR7U"S5RA55 UR7U"S5RA55 SSS5 U"5nSUlS S!-nU"U5*nURC5nUR
Xd5 URE5nUR
Xd5 URGU"S55nUR
Xd5 SSS5 g!,(df   N�=f!,(df   g=f)"Nrr�z-10r��7r�rJr�rr1z1.2r�r�Tz1.01r�F�20�580r+r�r)z2E+1z-1E+1z+Normalr�z1.12345r�r#rqr�i�i�)$rr�r�r*rer_rBrEr]r�r��powr�rwr4rar�r�rVrWrXryr�r�r�rgr�r!r{r}r�r�r�rqrsru)r�r�r�r�rr�r`s       rrG�Coverage.test_implicit_context]s����,�,�&�&���|�|�0�0��
�^�q��A�F��A�F��A�F�
���S����0�"�5����W�S�\�A�-�q�1����W�T�]�Q�.��2����W�T�]�a�/��3����W�U�^�/�/�����C�Q�G��M�M�'�%�.�,�,�Q��2�9�9�;�T�B����S����a��3�Q�7��|�|�q� �� � ��R����Q�!7��;�� � ��R��G�A�J�!7��;��!�!�)�S�"�g�a�j�!�D��!�!�)�S�"�a����D����W�V�_�0�0�2�A�6��M�M�'�&�/�3�3�5�u�=��M�M�'�&�/�6�6�8�$�?����W�T�]�-�-�/��3����W�T�]�0�0�2�A�6����W�U�^�0�0�2�A�6����W�T�]�9�9�;�Q�?����g�e�n�_�b�1����W�S�\�A�-�q�1����W�T�]�5�5�7��;����W�T�]�4�4�6����H����W�U�^�5�5�7���9I�J����W�T�]�7�7�9�9�E����g�d�m�^�R�0����W�T�]�Q�.��2����W�T�]�Q�.��2����W�Y�/�A�A�C�Q�G�
�O�O�G�C�L�5�5�7�8��O�O�G�C�L�2�2�4�5��O�O�G�C�L�2�2�4�5��O�O�G�F�O�3�3�5�6��O�O�G�D�M�3�3�5�6��O�O�G�C�L�0�0�2�3��O�O�G�C�L�0�0�2�3�K�P�^�q��A�F����A�����A��
�
��A����Q�"��
�
��A����Q�"����G�A�J�'�A����Q�"��^�Q�^��P�^�s�T
W�
BW'�
W$�'
W5c���URRnURRnURRnURRnU"5n[U"S5S5upgUR
Xa"S55 UR
Xq"S55 [U"S5S5upgURUR5=(a UR55 SURU'[U"S5S5upgURUR5=(a UR55 SURU'UR5 [U"S5U"S55upgURUR5=(a UR55 URURU5 UR5 [U"S5S	5upgURUR5=(a UR55 URURU5 UR5 [U"S
5S
5upgURUR5=(a UR55 URURU5 SURU'UR5 [U"S5S
5upgURUR5=(a UR55 URURU=(a URU5 SSS5 g!,(df   g=f)N�10912837129rd�10901935�194r�r1Fr�rQr�)
rr�r�r�r�rKrBr!r�r,r1rVr)r�r�r�r�r�r�rAr�s        rr9�Coverage.test_divmod�sf���,�,�&�&���|�|�0�0���<�<�8�8�����4�4��
�^�q��'�-�0�$�7�D�A����Q��
� 3�4����Q����/��'�%�.�!�,�D�A��O�O�A�H�H�J�5�1�8�8�:�6�(-�A�G�G�$�%��'�%�.�!�,�D�A��O�O�A�H�H�J�5�1�8�8�:�6�(-�A�G�G�$�%�
�M�M�O��'�%�.�'�%�.�9�D�A��O�O�A�H�H�J�5�1�8�8�:�6��O�O�A�G�G�$4�5�6�
�M�M�O��'�%�.�#�.�D�A��O�O�A�M�M�O�:����
�;��O�O�A�G�G�$4�5�6�
�M�M�O��'�!�*�a�(�D�A��O�O�A�H�H�J�5�1�8�8�:�6��O�O�A�G�G�$4�5�6�&+�A�G�G�N�#�
�M�M�O��'�"�+�q�)�D�A��O�O�A�M�M�O�:����
�;��O�O�A�G�G�$4�5�4��G�G�N�3�
5�A�^�^�s
� LM)�)
M7c��URRnURRnURRnURRnU"5nSUlUR
5 URU"S5S-U"S55 URURU5 SUlSUl
SUlUR
5 SURU'URU"S5U"S	5-U"S
55 URURU5 SSS5 g!,(df   g=f)Nr�rAr�r}rr�Fr�rr�)
rr�r�r�r�r*r1rBr!rVrer_r,)r�r�r�r�r�r�s      rr��Coverage.test_power�s����,�,�&�&���|�|�0�0���<�<�(�(���,�,�&�&��
�^�q��A�F�
�M�M�O����W�U�^�s�2�G�F�O�D��O�O�A�G�G�G�,�-��A�F��A�F��A�F�
�M�M�O� %�A�G�G�H�����W�U�^�w�u�~�=�w�u�~�N��O�O�A�G�G�H�-�.��^�^�s
� CD9�9
Ec��URRnURRnURRnU"5nSUlSUlSUlSURU'U"S5RU"S55nURUR55 SSS5 g!,(df   g=f)Nrr�Fr{�1e1)rr�r�r�r*rer_r,r_r!r��r�r�r�r�r�rs      rr��Coverage.test_quantize�s����,�,�&�&���|�|�0�0���<�<�8�8��
�^�q��A�F��A�F��A�F�(-�A�G�G�$�%����$�$�W�U�^�4�A��O�O�A�H�H�J�'�
�^�^�s
�
A!B4�4
Cc��URRnURRnU"5nURU"S5R	5S5 URUR	5S5 g)Nr�r�)rr�r�rBr�rFs    r�
test_radix�Coverage.test_radixsZ���,�,�&�&���\�\�,�,�
��L��������+�+�-�r�2��������B�'r'c��URRnSH/nUR[U"S5U5"S5[5 M1 g)N)r3r6r9r<rr?rArCr�r�)rr�r�r r�)r�r�r%s   rrO�Coverage.test_rop	s=���,�,�&�&��M�D��M�M�'�'�#�,��5�e�<�n�M�Mr'c�&�URRnURRnU"5nSUlUR	[U"S5R
55S5 UR	[U"S5R
55S5 UR	[U"S5R
S55S5 UR	[U"S	5R
S
55S5 UR	[U"S	5R
S55S
5 UR[U"S5RS5 UR[U"S5RSS5 SSS5 g!,(df   g=f)Nr�r�rJz9.99e-5rqr�r�z1.23457r�r�z1.2345000000r�z0E+10rxr0r�)	rr�r�r*rBr=�	__round__rwr4)r�r�r�r�s    r�
test_round�Coverage.test_rounds&���,�,�&�&���|�|�0�0��
�^�q��A�F����S����!:�!:�!<�=�t�D����S���!3�!=�!=�!?�@�#�F����S���!6�!@�!@��!C�D�i�P����S���!2�!<�!<�R�!@�A�>�R����S���!2�!<�!<�S�!A�B�G�L����i����)B�)B�C�H����i����)B�)B�A�q�I��^�^�s�EF�
Fc�|�URR5nUR[URS/5 g)Nr=)rr-rwrr�)r�r�s  r�test_create_decimal�Coverage.test_create_decimal!s.���L�L� � �"�����*�a�&6�&6���>r'c�D�URRnURRnU"5nSUlU"SS-5SS--nUR	[U5S5 UR	UR
5S5 SSS5 g!,(df   g=f)Nr�i�i�r�iSrr)rr�r�r*rBrr^�r�r�r�r�rs     rr��Coverage.test_int%sy���,�,�&�&���|�|�0�0��
�^�q��A�F���d�
�#�b�$�h�.�A����S��V�Q�'����Q�]�]�_�a�0�	�^�^�s�AB�
Bc�,�URRnU"5nSUlSS-*nURU5nUR	XC*5 URU5nUR	XC*5 UR
US5nUR	XC*5 g)Nr�i�i�r)rr-r*rqrBrsru)r�r-r�rr�s     rr�Coverage.test_copy/s����,�,�&�&���I������d�l�O��
�J�J�q�M������B��
�M�M�!�������B��
�K�K��1�������B�r'rN)r�rirjrkr�r�r�rGr9r�r�r�rOr�r�r�rrmrr'rr�r�5sH��7�	��&X#�t'5�R/�((�(�N�J�"?�1� r'r�c��\rSrSr\rSrg)�	CCoveragei?rNr�rr'rr�r�?r�r'r�c�8^�\rSrSr\rU4SjrU4SjrSrU=r	$)�
PyCoverageiBc�>�[TU]5 [R"5Ul[R
"S5 grnrorus �rr��PyCoverage.setUpErwr'c�b>�[R"UR5 [TU]5 grryrus �rrz�PyCoverage.tearDownJr|r'r}r~r�s@rr�r�Br�r'r�c��\rSrSrSrSrSrg)�PyFunctionalityiNz!Extra functionality in decimal.pyc��[Rn[Rn/SQnUH(upEnUR[	U"U5U5U5 M* g)N)
)z.0erAz1e+0)z#.0erAz1.e+0)rgrAr�)z#.0frA�1.)ro�1.1r�)z#gr�r�)rqr�r�)z#.0gr�r�)rwrAz100%)z#.0%rAz100.%)r�r�r�rBr�)r�r�r�r�r�rrRs       r�test_py_alternate_formatting�,PyFunctionality.test_py_alternate_formattingQsF���)�)���~�~����*�N�C�F����V�G�A�J��4�f�=�*r'rN)r�rirjrkrlr�rmrr'rr�r�Ns
��+�>r'r�c�6�\rSrSrSrSrSrSrSrSr	Sr
g	)
�
PyWhiteboxifz White box testing for decimal.pyc��[Rn[RnU"5nSUlU"S5U"S5-nUR	XA"S55 U"S5U"S5-nUR	XA"S55 U"S5U"S5-nU"S5U"S	5-nUR	XA"S
55 U"S5U"S	5-nU"SS
-5U"S	5-nSUlU"S5U"S5-nUR	XA"S55 SUlU"S5U"S5-nUR	XA"S55 SUlU"S5U"S5-nUR	XA"S55 SUlU"S5U"S5-nUR	XA"S55 SUlU"SS-5U"S5-n[R
Ul[RUl[RUl	SUR[R'U"S5nUS-nUR	US5 SSS5 g!,(df   g=f)Nr�irz
0.00390625z-0.6z0.0012885819�256e7l�o�
�z-0.0625r��152587890625e7r�ic
r�152587890625z3e-6rz2.6e-6r�z2.56e-6r���iB�ul)r�r�r�r*rBrZr�rer�r_r,r�)r�r�r�r�r�D2�ress       r�test_py_exact_power�PyWhitebox.test_py_exact_poweris���)�)���~�~��
�^�q��A�F����'�&�/�1�A����Q��� 5�6����'�&�/�1�A����Q��� 7�8��� �G�F�O�3�A���%���);�;�A����Q����/��(�)�W�Y�-?�?�A���4�� �G�I�$6�6�A��A�F���'�7�6�?�:�A����Q����0��A�F���'�7�6�?�:�A����Q��� 1�2��A�F���'�7�6�?�:�A����Q��	� 2�3��A�F���'�7�6�?�:�A����Q��	� 2�3��A�F���3���7�6�?�2�A��Z�Z�A�F��Z�Z�A�F��Z�Z�A�F�!"�A�G�G�A�I�I�����B���)�C����S�(�+�Y�^�^�s�HH9�9
Ic�^^^^^	�[Rn[Rn[RnUR	5n[S[[55UlU"U5 U"S5mU"S5mU"S5m	U"S5mS1UUUU	U4SjjnU"T5 TRTRTR5 TRTRTR5 TRTRTR5 U"S5 U"SS5 U"SS5 U"S	S5 U"S
S5 U"SS5 U"SS5 U"S
S5 U"SS5 U"S5 U"SS5 U"S5 U"S5 U"S5 U"SS5 U"SS5 U"S5 U"S5 U"S5 U"SS5 U"SS5 U"SS5 U"S5 U"SS5 U"SS5 U"SS5 U"S S5 U"S!S5 U"S"5 U"S#S5 U"S$S5 U"S%5 U"S&5 U"S'S5 U"S(S5 U"S)S5 U"S*5 U"S+S5 U"S,S5 U"S-S5 U"S.5 U"S/5 U"S05 g)2Nc3�(# �UHoS4v� M
 g7f)rNr)rrs  rr�=PyWhitebox.test_py_immutability_operations.<locals>.<genexpr>�s���9�'8�!�1�v�'8�s�z-25e55z33e+33c�>�U(a�[SU-S-5 TRTRTR5 TRTRTR5 TRTRTR5 TRTRTR5 TRTRTR5 TRTRTR5 g[SU-S-5 TRTRTR5 TRTRTR5 TRTRTR5 g)Nzd1.z(d2)z())r>rB�_sign�_int�_exp)�	operation�useOther�b1�b2rr r�s  �����r�checkSameDec�@PyWhitebox.test_py_immutability_operations.<locals>.checkSameDec�s�����U�Y�&��/�0�� � ����2�8�8�4�� � ����"�'�'�2�� � ����"�'�'�2�� � ����2�8�8�4�� � ����"�'�'�2�� � ����"�'�'�2��U�Y�&��-�.�� � ����2�8�8�4�� � ����"�'�'�2�� � ����"�'�'�2r'�__abs__r2Trr+r.r%rr(r"�	__float__r@r��__int__�	__trunc__r>r8�__neg__�__bool__�__pos__rBr3rr�rAr?r9rCr6�__str__r5r;r�r0rgr�r�r�r_r�r�r�r�r^)F)r�r�rr2rnr/r;r,rBr�r�r�)
r�r�rr2r�r�r�r�rr s
`     @@@@r�test_py_immutability_operations�*PyWhitebox.test_py_immutability_operations�s^����)�)���)�)���\�\�
����!���9�~�a�'8�9�9����1�
�
�X�
��
�X�
��
�X�
��
�X�
��
	3�
	3�	���������2�8�8�,�������"�'�'�*�������"�'�'�*��Y���Y��%��\�4�(��X�t�$��X�t�$��X�t�$��X�t�$��X�t�$��X�t�$��[�!��^�T�*��Z� ��Y���[�!��Y��%��Y��%��Y���Z� ��Y���Y��%��Z��&��]�D�)��Z� ��_�d�+��Z��&��Z��&��Z��&��Z��&��Y���Y��%��]�D�)��Z� ��Z� ��Y��%��U�D�!��U�D�!��[�!��Z��&��%�t�,��^�T�*��V���_�%��]�#r'c���[RnU"S5nU"U5nUR[U5S5 UR	[U5[U55 g)Nr{r|)r�r�rBr=r�rEr�s    r�test_py_decimal_id�PyWhitebox.test_py_decimal_id�sI���)�)���B�K���A�J������Q���&����B�q�E�2�a�5�)r'c��[Rn[RnU"5nU"S5RS[5nURUR
55 SSS5 g!,(df   g=f)Nr�r�)r�r�r��_rescaler�r!r�r�s     r�test_py_rescale�PyWhitebox.test_py_rescale�sM���)�)���~�~��
�^�q����'�'��8�4�A��O�O�A�H�H�J�'��^�^�s�<A-�-
A;c�|�[RnUR[U"S5RS[
5 g)Nz3.1234r)r�r�rwr�_roundr�rss  r�test_py__round�PyWhitebox.test_py__round�s*���)�)�����*�g�h�&7�&>�&>��8�Lr'rN)r�rirjrkrlr�r�r�r�r�rmrr'rr�r�fs"��*�1,�fM$�^*�(�Mr'r�c�H�\rSrSrSr\S5r\S5r\S5rSr	g)�CFunctionalityizExtra functionality in _decimalc�l�[Rn[Rn[Rn[RnSnU"U5nURURS5 URURS5 URURS5 U"X5 U"U5nURURS5 URURS5 URURS5 U"X5 U"U5nURURS5 URURS	5 URURS
5 U"X5 UR[US5 UR[US5 UR[US
5 g)Nc�p�URURS5 [XS/5 [XS/5 g)Nrr,rV)rBrar&)r�r$s  r�assert_rest�7CFunctionality.test_c_ieee_context.<locals>.assert_rest
s.�����W�]�]�A�.��4�'�2�6��4�'�2�6r'r1�`i����r�r�r��"ii�r�r�i)r��IEEEContext�	DECIMAL32�	DECIMAL64�
DECIMAL128rBr*rer_rwrr)r�rrr	r
rr�s       r�test_c_ieee_context�"CFunctionality.test_c_ieee_contextsQ���m�m���K�K�	��K�K�	��\�\�
�	7�

�	�"���������#��������$��������%��D���	�"���������$��������%��������&��D���
�#���������$��������&��������'��D��	
���-��e�<����*�k�2�6����*�k�4�8r'c��[RnU"[R[RS9nUR	UR
[R5 UR	UR[R5 g)N)rVr,)r�r-r8�
DecRoundedrB�_flags�_trapsrs   r�test_c_context�CFunctionality.test_c_context)sO���)�)���!�,�,�a�l�l�;��������1�<�<�0�������1�<�<�0r'c�b�[R[R[R[R[R
[R[R[R[R[R[R[R[R[R[R4nUR![R"S5 UR![R$S5 UR![R&S5 UR![R(S5 [+U5Hup#UR!USU-5 M UR![R,[R[R-[R
-[R-[R-[R-[R-5 UR![R.[R,[R-5 UR![R0[R.[R-[R-5 g)Nr�r��ir)r�r8�DecConversionSyntax�DecDivisionByZero�DecDivisionImpossible�DecDivisionUndefined�DecFpuError�
DecInexact�DecInvalidContext�DecInvalidOperation�DecMallocError�DecFloatOperation�DecOverflowr�DecSubnormal�DecUnderflowrBrr	r
�IEEE_CONTEXT_MAX_BITSr7�DecIEEEInvalidOperation�	DecErrors�DecTraps)r��condrNr�s    r�test_constants�CFunctionality.test_constants1s���
�L�L�!�/�/��1D�1D�
�#�#�Q�%;�%;�
�M�M�1�<�<��)<�)<�
�!�!�1�#3�#3�
���������
�N�N�A�N�N�

��	
������b�)�������b�)�������s�+�����0�0�#�6��d�O�D�A����Q��1��%�$�	
����2�2��.�.��0�0�1��/�/�0����'��,�,�	-�
�.�.�/��)�)�
*�	+�	
�������2�2��,�,�-�	.�	
���������Q�]�]�2�1�>�>�A�	Cr'rN)
r�rirjrkrl�requires_extra_functionalityrrr'rmrr'rrrsB��)�!�!9�"�!9�F"�1�"�1�"�#C�"�#Cr'rc���\rSrSrSrSrSrSrSrSr	Sr
\S	5rS
r
\S5rSrS
rSrSrSr\S5r\S5rSrSrSrSrSrSrSrSrSrSrSr g)�	CWhiteboxiWzWhitebox testing for _decimalc�r�[Rn[RnSS-nSS-nU"5nSUl[	S5HVn[
R"X45n[
R"SS5nXx-n	U"U5U"U5-n
URX�5 MX SSS5 g!,(df   g=f)Nr��#�$i@Br�r5i�)r�r�r�r*r�r0r�rB)r�r�r�r�r�r�rNr�r�rr�s           r�test_bignum�CWhitebox.test_bignum[s����)�)���~�~��
��V��
��V��
�^�q��A�F��1�X���$�$�R�,���$�$�T�4�0���F���A�J�'�!�*�,��� � ��&���^�^�s�A-B(�(
B6c�P�UR[[RSS5 g)Nr)r�)rwr4r�r�r�s r�test_invalid_construction�#CWhitebox.test_invalid_constructionls�����)�Q�Y�Y��5�9r'c��[Rn[Rn[Rn[RnU"U"55 URX!S5 SSS5 g!,(df   g=f)N�1e9999999999999999999)r�r�r�r-r�rw)r�r�r�r-r�s     r�test_c_input_restriction�"CWhitebox.test_c_input_restrictionosS���)�)���-�-���)�)���~�~��
�'�)�
$����.�5�
7�%�
$�
$�s�A*�*
A8c��[Rn[RnUR5nSUlSUlSUl[UlSUl	SUl
[[H!nSURU'SURU'M# SURU'SURU'UR5nSnURXV5 g)Nr�r}rrTaQContext(prec=425000000, rounding=ROUND_HALF_DOWN, Emin=-425000000, Emax=425000000, capitals=0, clamp=1, flags=[Clamped, InvalidOperation, DivisionByZero, Inexact, FloatOperation, Overflow, Rounded, Subnormal, Underflow], traps=[Clamped, InvalidOperation, DivisionByZero, Inexact, FloatOperation, Overflow, Rounded, Subnormal, Underflow]))r�rr�rnr*rer_r�r+rYrar;rVr,r�rB)r�rr�r�rorrs       r�test_c_context_repr�CWhitebox.test_c_context_reprzs����)�)���)�)�����!�����������$��
���
����!�!�$�C��A�G�G�C�L��A�G�G�C�L�%�#'������"&������
�J�J�L��
O��	
����r'c	�8�[Rn[Rn[Rn[Rn[R
n[Rn[Rn[RS:�nU"5n	UR[U	RRSS5 UR[U	RRSS5 UR[U	RRU5 UR[U	RRU5 UR[ ["U	SS/5 UR[ ["U	SS/5 UR[["U	SSS05 UR[["U	SSS05 U	RR%5n
X�	S	U
S
'UR[["U	SU
5 UR[["U	SU
5 U(aSOSnU(aS
OSnSHn
UR[["X�U5 M! UR[["U	SU*5 UR[XS9 UR[XS9 UR[X*S9 UR[&XS-S9 UR[&XS-S9 UR[&X*S-
S9 UR[&XS-S9 UR[&XS-S9 SH�n
UR[&["X�US-5 UR[&["X�U*S-
5 [(R*S:wdMXUR[["X�U5 UR[["X�U*S-
5 M� [RS:XamUR[&[-U	S5US-5 UR[&[-U	S5US-5 UR[&[-U	S5U*S-
5 [RS:Xa�UR[[-U	S5S5 UR[[-U	S5S5 UR[[-U	S5S5 UR[[-U	S5S5 UR[[-U	S5S5 UR[[-U	S5S5 SH�n
UR[["X�S5 UR[["X�S5 UR[ ["X�/S Q5 U(dMbUR[["X�S!5 UR[["X�S"5 M� UR[ [.S#[155 UR[ [.S$[155 U"5nUR[ US%5 U"U5 g)&Nr�i!rrVrr,r�ri�prxr�r�l�N�Zoiʚ;rar_r�r�r�rr�r�)r*r_rerYra�win32r�r�r�i���?r�i9�rcrb��zwith localcontext("xyz"): passz-with localcontext(context=getcontext()): passr�)r�r-r�r�r�r�r�r2rZrwrfrV�__setitem__r,r�__delitem__r4rLrnrrq�platformr �execr�)r�r-r�r�r�r�r�r2�HAVE_CONFIG_64r�r�int_max�gt_max_emaxr%�
saved_contexts               r�test_c_context_errors�CWhitebox.test_c_context_errors�s����)�)���-�-���:�:���)�)���~�~���\�\�
��\�\�
��*�*�y�0���I��	
���(�A�G�G�$7�$7��a�@����(�A�G�G�$7�$7��a�@����*�a�g�g�&9�&9�8�D����*�a�g�g�&9�&9�;K�L����)�W�a��3�%�@����)�W�a��#��?����(�G�Q��!�A��?����(�G�Q��!�A��?�
�G�G�L�L�N��
����%�����(�G�Q���;����(�G�Q���;�,�'��� .�f�E��%�D����j�'�1�K�H�%����*�g�q�&�;�,�G�	
���*�g��@����*�g��@����*�g�L��A�	
���-��q�y��A����-��q�y��A����-��x��z��B����-���	��B����-��1�9��E�B�D����m�W�a�w�q�y�I����m�W�a��x��z�J��|�|�w�&��!�!�*�g�q��H��!�!�*�g�q����
�K�B�
�:�:��"����m�W�Q�8I�-J�%�a�i�
)����m�W�Q�8I�-J�%�a�i�
)����m�W�Q�8I�-J�&�h�q�j�
*�
�:�:��"����j�'�!�5F�*G��K����j�'�!�5F�*G�(�
*����j�'�!�5F�*G��L����j�'�!�5F�*G�(�
*����j�'�!�5F�*G�)�
+����j�'�!�5F�*G��K�*�D����j�'�1�B�?����j�'�1�A�>����i��!�7�C��~��!�!�*�g�q��F��!�!�*�g�q��H�
*�	
���)�T�+K� �(�	$����)�T�I� �(�	$�
#��
����)�Z��7��=�!r'c���UR[R[R5 UR[R[R5 UR[R
[R
5 UR[R[R5 UR[R[R5 UR[R[R5 UR[R[R5 UR[R[R5 gr)r�r�r�r�r�r�r�r�r�r.r�r�s r�test_rounding_strings_interned�(CWhitebox.test_rounding_strings_interned�s����
�
�a�j�j�!�*�*�-��
�
�a�l�l�A�L�L�1��
�
�a�o�o�q���7��
�
�a�m�m�Q�]�]�3��
�
�a�o�o�q���7��
�
�a�'�'��):�):�;��
�
�a�'�'��):�):�;��
�
�a�l�l�A�L�L�1r'c	��[Rn[Rn[Rn[Rn[R
n[Rn[RS:�nU"5nU(aSOSn	UR[[USU	S-5 UR[[USU	*S-
5 [RS:wa>UR[[USU	5 UR[[USU	*S-
5 SH�n
UR[[X�U	S-5 UR[[X�U	*S-
5 [RS:wdMXUR[[X�U	5 UR[[X�U	*S-
5 M� UR[[USS	5 UR[[USS5 UR[[US/S
Q5 U(a:UR[[USS5 UR[[USS5 SH;n
UR[[X�S
5 UR[[X�S5 M= g)Nr�r�r��_allcrrrr<)rrr�rbr=r>r�r)r�r-r�r�r�r�r2rZrwrrLrqrArr4)r�r-r�r�r�r�r2rCr�rDr%s           r�test_c_context_errors_extra�%CWhitebox.test_c_context_errors_extras����)�)���-�-���:�:���~�~���\�\�
��\�\�
��*�*�y�0���I��,�'���	
���-��!�X�w�q�y�I����-��!�X��x��z�J��<�<�7�"����j�'�1�h��H����j�'�1�h����
�K�)�D����m�W�a�w�q�y�I����m�W�a��x��z�J��|�|�w�&��!�!�)�W�a�w�G��!�!�)�W�a��x��z�J�)�	
���*�g�q�(�B�?����*�g�q�(�A�>����)�W�a��7�C�����j�'�1�h��F����j�'�1�h��H�)�D����i��!�6�B����i��!�3�?�)r'c�P�[Rn[Rn[Rn[Rn[R
n[RnUR5nSUl[Ul
SUlSUlSUl
SUlURURS5 URUR[5 URURS5 URURS5 URURS5 URURS5 URUR!5S5 URUR#5S5 [R$S:Xa�UR'S	5 UR)S	5 UR+S
5 URURS	5 URURS	5 URURS
5 gg)Nri�iH�rri'�i�r�r�r�)r�rr�r�r�r�r�rnr*r�r+rer_rYrarB�Etiny�EtoprZr�r�r�)r�rr�r�r�r�r�r�s        r�test_c_valid_context�CWhitebox.test_c_valid_context2s����)�)���)�)���K�K�	��)�)���)�)���K�K�	����!�����"��
���������
�����������$�������]�3��������'��������&�������Q�'�������!�$��������E�*��������4�(�
�:�:��"�
���i�(�
���i�(�
���j�)����Q�V�V�Y�/����Q�V�V�Y�/����Q�V�V�Z�0�
#r'c���[RnUR5nURURS5 SUlURURS5 g)Nrr)r�rrnrBrM)r�rr�s   r�test_c_valid_context_extra�$CWhitebox.test_c_valid_context_extraXsJ���)�)�����!��������1�%����������1�%r'c	�F�[Rn[Rn[Rn[Rn[R
n[RS:�aSOSnU"5nSURU'URX!"S5RU*S-
5 URX!"S5RU5 URX!"S5R[US-55 UR[RU"S5R[US-
5*5 UR[U"S5RU*S-
5 UR[U"S5RUS-5 SSS5 g!,(df   g=f)	Nr�r�r�Trxrr�r)r�r�r�r�r�r�rZr,rwr�rr)r�r�r�r�r�r�rDr�s        r�test_c_round�CWhitebox.test_c_roundasK���)�)���-�-���~�~���:�:���K�K�	��Z�Z�)�3�'���
�^�q�(,�A�G�G�$�%����.����0I�0I�&�h�q�j�
*����.����0I�0I�%�
'����.����0F�0F�!�(�1�*�o�
/����a�0�0�'�#�,�2H�2H�"�9�Q�;�/�/�
1����m�W�V�_�-F�-F�&�h�q�j�
*����m�W�V�_�-F�-F�%�a�i�
)��^�^�s
�0DF�
F c���[Rn[RS:�nUR[U"S5R
S/S5 UR[U"S5R
SS5 UR[U"S5R
/5 UR[U"S5R
S5 U(aSOSnUR[U"S5R
S	U-5 g)
Nr�rz=10.10r)z<>=10.10r�r�r�z=%d.1)r�r�rZrwr4r�r)r�r�rC�maxsizes    r�
test_c_format�CWhitebox.test_c_formatys����)�)���*�*�y�0�����)�W�Q�Z�%:�%:�H�b�!�L����)�W�Q�Z�%:�%:�H�a�H����)�W�Q�Z�%:�%:�B�?����*�g�a�j�&;�&;�Z�H�+�'������*�g�l�&;�&F�&F�!�G�+�	-r'c��[Rn[Rn[RnU"S5nUR	UR5S5 UR
[UR
S5 UR
[UR
SS5 UR
[UR
S5 UR	UR5S5 UR
[URS5 UR
[URSS5 UR
[URS5 UR	UR5S5 UR
[URS5 UR
[URSS5 UR
[URS5 U"5nU"S5R[5nUR	XA"S55 U"S5R[5nUR	XA"S55 SURU'UR
X!"S5R[5 SSS5 g!,(df   g=f)Nr�rJrz99999999999999999999999999.9�100000000000000000000000000Tz999.9)r�r�r�r�rBr^rwr4r�r�r�r,)r�r�r�r�rr�s      r�test_c_integral�CWhitebox.test_c_integral�s����)�)���)�)���~�~���B�K���������"�-����)�Q�]�]�D�9����)�Q�]�]�B��<����)�Q�]�]�B�7�����,�,�.��3����)�Q�%8�%8�$�?����)�Q�%8�%8�"�c�B����)�Q�%8�%8�"�=�����,�,�.��3����)�Q�%8�%8�$�?����)�Q�%8�%8�"�c�B����)�Q�%8�%8�"�=�
�^�q��6�7�I�I�(�S�A����Q��(E� F�G��6�7�I�I�(�S�A����Q��(E� F�G�#�A�G�G�G�����g�w�w�'7�'I�'I�8�T��^�^�s
�BI/�/
I=c
��[Rn[Rn[Rn[Rn[R
nUR
U"S5R5S5 UR[[U"S5SS5 UR[U"S5RSS5 UR[U"S5RS	SS5 UR[U"S
5RU"S5/5 UR[U"S
5RU"S5U"55 UR[U"S
5RU"S5S5 UR[U"S
5RU"S5[S
5 U"5nUR5 UR[UR U"S5SS5 UR[UR"S5 UR[UR$S5 UR[UR&SSSS5 UR[URSS	SS5 UR
[)UR#U"S555S5 UR
UR+5S5 SUR,U'URX1"S5R.S5 URX6R&SS5 UR1UR2U5 UR55 SUR,U'URX!"S5R.S5 URX&R&SS5 UR1UR2U5 SUR,U'SUlURU[U"S
5SS5 SSS5 g!,(df   g=f)Nz9.99e10z99.9E+9rrrir)rr�r�r�z	1e-100000r�r5r�r��200Tri�)r�r�r�r�r�r�rBr�rwr4r�rgr�r_r�rArur�r{rKr=r�r,rr!rVr1r*)r�r�r�r�r�r�r�s       r�test_c_funcs�CWhitebox.test_c_funcs�s���)�)���-�-���)�)���\�\�
��~�~�������+�9�9�;�Y�G����)�S�'�!�*�a��=����)�W�Q�Z�%<�%<�c�3�G����)�W�Q�Z�%<�%<�a��c�J������L�!�*�*�G�K�,@�"�	
�	
�����L�!�*�*�G�K�,@�*�,�	
�	
�����L�!�*�*�G�K�,@�"�	
�	
�����L�!�*�*�G�K�,@�(�D�	
�
�^�q�
�M�M�O�
���i����g�a�j�#�s�K����i����c�:����i�����=����i����1�a��c�B����i�����A�s�C�H����S����W�S�\�!:�;�U�C����Q�W�W�Y��+�&*�A�G�G�N�#����n�g�a�j�.C�.C�Q�G����n�h�h��1�=��O�O�A�G�G�$4�5�6�
�M�M�O�(,�A�G�G�$�%����.���
�0E�0E�q�I����.���!�Q�?��O�O�A�G�G�N�3�4�(,�A�G�G�$�%��A�F����.��W�T�]�A�s�K�5�^�^�s
�4H1O.�.
O<c	��[Rn[RnU"S5nSH9n[X45nUR	[
USS9 UR	[
USSS9 M; SH9n[X45nUR	[
USS9 UR	[
USSS9 M; UR	[
URS/S9 UR	[
UR0/S9 UR	[
UR//5 UR	[
URS/S9 UR	[
UR0/S9 UR	[
UR//5 UR	[
URS/S9 UR	[
UR0/S9 UR	[
UR//5 UR	[
URSSSS9 UR	[
URSSSSS9 UR	[
URS/SS9 UR	[
URS/SS	9 UR	[
URS//5 U"5nUR	[
URSSSS
9 UR	[
URSSSS
9 UR	[
URSSSS
9 g)N�10001111111)
rar�r�rVrWrXryr�r�r�rgr�r�rrL)rgrircr�r�r�r�r�r�rZr[r\rUrrr�)�mod)r�r�r-r rwr4r^r�r�r]r_r�)r�r�r-rr%�funcr�s       r�test_va_args_exceptions�!CWhitebox.test_va_args_exceptions�s����)�)���)�)���M�"��K�D��1�#�D����i��s��;����i��s�D��A�K�D�D��1�#�D����i��s��;����i��s�D��A�D�	
���)�Q�]�]�T�2��N����)�Q�]�]�R���L����)�Q�]�]�B��;����)�Q�%8�%8�4�QS��T����)�Q�%8�%8�2�r��R����)�Q�%8�%8�"�b�A����)�Q�%8�%8�4�QS��T����)�Q�%8�%8�2�r��R����)�Q�%8�%8�"�b�A����)�Q�U�U�A�q�#��>����)�Q�U�U�A�q�#�t��D����)�Q�Z�Z��B���E����)�Q�Z�Z��B���F����)�Q�Z�Z��B��;��I�����)�Q�W�W�a����<����)�Q�W�W�a��$��?����)�Q�W�W�c�1�$��?r'c��UR[RR[R[R
-[R-[R-[R-5 UR[RR[R[R
-[R-5 gr)
rBr�rKrr#rrr!r8rr�s r�test_c_context_templates�"CWhitebox.test_c_context_templates
s������
�N�N�!�!�
�%�%�a�&9�&9�9�!�-�-�G�
�N�N�
��<�<�
(�	
�
	
���
���#�#�
�%�%�a�&9�&9�9�!�-�-�G�	
r'c�^�[Rn[Rn[Rn[Rn[R
n[Rn[Rn[Rn[Rn	[Rn
[Rn[Rn[Rn
[RnU4SjnUR5nTR!UUR";5 UR%5 UR"R'5HnSUR"U'M UR"R)5HnTR!U5 M UR%5 UR"R+5HunnTR-U5 M TR-UR.R1U55 TR3UR.R1S5S5 TR5UR.R1SS5S5 TR7[8UR.R0SSS5 TR5[;UR.5[;UR"55 [<R>"UR.5n[<R>"UR"5nUR.RA5nURC5 UUl"TR!UR.U5 UR%5 U
Ul#TR!UR"U5 URC5 UR.R5nSUU'UUlU"UUR.5 UR%5 UR"R5nSUU'UUlU"UUR"5 U[RU	[RHU
[RJU[RLU[RNU[RPU[RRU[RTU[R0	n[RV[RX[RZ[R\[R[R^[R`/n[;[b[5n[eU5GHn[eU5GHn[fGH�n[hRj"[b[U5nRj"[b[U5n[hRl"SS5n[hRl"SS	5n[hRl"S	S5n[hRl"S	S
5n [hRl"S	S
5n![hRl"S	S
5n"U"UUUUU!U [oU5[oU5S9nTR5URpU5 TR5URrU5 TR5URtU5 TR5URvU5 TR5URxU!5 TR5URzU 5 S	n#UHn$U#UU$-n#M
 TR5URDU#5 S	n#UHn$U#UU$-n#M
 TR5URFU#5 GM� GM	 GM UH;n%U%Ul"TR!URDU-5 U"UUR.5 M= UH;n%U%Ul#TR!URFU-5 U"UUR"5 M= g)Nc�r>�UH0nX :XaTRX5 MTRX5 M2 gr)r!rh)r'�signal_dictror�s   �r�assertIsExclusivelySet�<CWhitebox.test_c_signal_dict.<locals>.assertIsExclusivelySet.s2���"���=��O�O�K�$4�5��$�$�[�%5�6�	#r'Trr�r`rr�i���rrrv)>r�r-rr�r�r�r�r�r�r�r�r�r8rr#rnr!r,rAr��valuesr�rhrVrr�rBrwr4r:rq�	getsizeofr�r1rrrrr r!rrrrrrrrrr;r�r�r0�sampler�r�r*r+r_rerYra)&r�r-rr�r�r�r�r�r�r�r�r�r8rr#rsr�rr�rr�
IntSignals�IntCond�limr�rrrVr,r*r�r�rar��crr�rr&s&`                                     r�test_c_signal_dict�CWhitebox.test_c_signal_dicts�����)�)���)�)���-�-���)�)���)�)���:�:���K�K�	��K�K�	��)�)���)�)���)�)���\�\�
��3�3��"#�";�";��	7�
���!��	
����A�G�G�+�,�	�
�
��������A��A�G�G�A�J� ������!�A��O�O�A��"�	�
�
���G�G�M�M�O�D�A�q����Q��$�	
��������X�.�/��
�
�a�g�g�k�k�#�&��-���������S�#�.��4����)�Q�W�W�[�[�#�s�C�@�����Q�W�W��s�1�7�7�|�4��M�M�!�'�'�"���M�M�!�'�'�"��
�G�G�����	
�
�
������������(�)�	�
�
��&��������� 0�1�2�	
�
�
��
�G�G�L�L�N�� ��.������~�q�w�w�7�	�
�
��
�G�G�L�L�N����)������y�!�'�'�2��1�<�<�
�1�<�<�
�1�<�<�
�Q�^�^�
�Q�^�^�
�A�M�M�
�!�-�-�
�!�-�-�
�A�5�5�

�
��
!�
!�1�#9�#9�1�=�=�
�
�
�q�4�4�a�6F�6F�
�
�
�
���.��#�$���s��A��3�Z��*�]�E�"�M�M�.��*;�Q�?�E�"�M�M�.��*;�Q�?�E�!�+�+�A�u�5�D�!�+�+�F�A�6�D�!�+�+�A�u�5�D�"�,�,�Q��2�E�!�+�+�A�q�1�D��)�)�!�Q�/�B��T�E��4�)-�U�$�u�+�&*�5�k�3�A��$�$�Q�V�V�T�2��$�$�Q�Z�Z��7��$�$�Q�V�V�T�2��$�$�Q�V�V�T�2��$�$�Q�Z�Z��6��$�$�Q�W�W�e�4��A�"���Z��]�*��#��$�$�Q�X�X�q�1��A�"���Z��]�*��#��$�$�Q�X�X�q�1�9+� ��@�D��A�H��O�O�A�H�H�%<�<�=�"�#3�Q�W�W�=��
�D��A�H��O�O�A�H�H�%<�<�=�"�#3�Q�W�W�=�r'c�^�[RmSSKJn SnSU4SjjnSU"/SQ5SS.nS	U"/S
Q5SS.nSU"/S
Q5SS.nWS
:XaUR
[USUS5 UR
[USUS5 UR
[USUS5 g![a URS5 N�f=f)Nrr�r�c�b�SRUVs/sHn[U5PM sn5$s snfr�)r�r�)r�rs  rr��6CWhitebox.test_invalid_override.<locals>.make_grouping�s'���7�7�C�0�C�q�C��F�C�0�1�1��0s�,c�2>�T"U5RX!5$r)r�)rr�r�r�s   �rr��0CWhitebox.test_invalid_override.<locals>.get_fmt�s����1�:�(�(��7�7r'r�)�r�rr��xxxxxr�r��yyyyy�r�ror�)r�r�r�r�r�r�rwr)r�r�r�r��invalid_grouping�invalid_dot�invalid_sepr�s       @r�test_invalid_override�CWhitebox.test_invalid_override�s�����)�)��	;�'�	2�	8�"�&�}�5�!�
��&�&�y�1�!�
��"�&�y�1�%�
���s�?����j�'�5�.��
5�	
���*�g�u�k�3�G����*�g�u�k�3�G��=�	;��M�M�9�:�	;�s�B � B>�=B>c��[Rn[Rn[RnU"5nSURU'S[
R-nURX1U5 S[
R*S-
-nURX1U5 S[
R-nURX1U5 S[
R*S-
-nURX1U5 SSS5 g!,(df   g=f)NTz0e%drz1e%d)r�r�r�r�r,rqr\rwr�s      r�test_exact_conversion�CWhitebox.test_exact_conversion�s����)�)���~�~���-�-��
�^�q�(,�A�G�G�$�%�����$�A����.��;��3�;�;�,�q�.�)�A����.��;�����$�A����.��;��3�;�;�,�q�.�)�A����.��;�#�^�^�s�B,C-�-
C;c��[Rn[Rn[Rn[Rn[R
nU"5nSUlSURU'SURU'SURU'SS[R4nUR[URU55S5 URX1U5 SS[R4nURXFRU5 URX1U5 SS[R*S-
4nUR[URU55S5 URX1U5 SS[R*S-
4nURXVRU5 URX1U5 SS[RS-4nUR[URU5 UR[X5 SS[R*S-
4nUR[URU5 UR[X5 S	nUR[U"U55S
5 SnUR[U"U55S
5 SnUR[U"U55S
5 SSS5 g!,(df   g=f)Nr)Trrz
-0E+999999)rrrz-0E-1000007rr/r|)rr�r�)rrer�z-sNaN1)r�r�r�r�r�r�r*r,rqr\rBr=r�rwr)r�r�r�r�r�r�r�rs        r�test_from_tuple�CWhitebox.test_from_tuple�sK���)�)���~�~���-�-���:�:���K�K�	�
�^�q��A�F�(,�A�G�G�$�%� $�A�G�G�H��!%�A�G�G�I���B����$�A����S��!1�!1�!�!4�5�|�D����.��;��I�s�{�{�+�A����h�(8�(8�!�<����.��;��B�����Q��'�A����S��!1�!1�!�!4�5�}�E����.��;��I����|�A�~�.�A����i�)9�)9�1�=����.��;��B����A�
�&�A����m�Q�-=�-=�q�A����m�W�8��B�����Q��'�A����m�Q�-=�-=�q�A����m�W�8��A����S����_�g�6��A����S����_�g�6� �A����S����_�h�7�Q�^�^�s
�I!K�
Kc��[Rn[RS:�nURU"S5R	5S5 U(aGU"SS-5R	5nU"SS-5R	5nURXCS-5 gU"SS-5R	5nU"SS-5R	5nURXCS	-5 g)
Nr�rr�r�i�r�����r�)r�r�rZr��
__sizeof__rB)r�r�rCrr�s     r�test_sizeof�CWhitebox.test_sizeof
s����)�)���*�*�y�0�����7�1�:�0�0�2�A�6����U��$�/�/�1�A���U��$�/�/�1�A����Q�!��$���T�
�#�.�.�0�A���T�
�#�.�.�0�A����Q�!��$r'c�&^�[Rn"SS[5n"SS[5n"SS[5m"U4SjS[5nX#U4H9nUR	URU"S	55URS	55 M; g)
Nc� �\rSrSrSrSrSrg)�<CWhitebox.test_internal_use_of_overridden_methods.<locals>.Xic��g�Nrrr�s rr6�MCWhitebox.test_internal_use_of_overridden_methods.<locals>.X.as_integer_ratio s��r'c��U$rrr�s rr��DCWhitebox.test_internal_use_of_overridden_methods.<locals>.X.__abs__"����r'rN�r�rirjrkr6r�rmrr'r�Xr�s��
�
r'r�c��\rSrSrSrSrg)�<CWhitebox.test_internal_use_of_overridden_methods.<locals>.Yi%c��S/S-$�Nrr�rr�s rr��DCWhitebox.test_internal_use_of_overridden_methods.<locals>.Y.__abs__&�
���s�3�w�r'rN)r�rirjrkr�rmrr'r�Yr�%���
r'r�c��\rSrSrSrSrg)�<CWhitebox.test_internal_use_of_overridden_methods.<locals>.Ii)c��S/S-$r�rr�s r�
bit_length�GCWhitebox.test_internal_use_of_overridden_methods.<locals>.I.bit_length*r�r'rN)r�rirjrkr�rmrr'r�Ir�)r�r'r�c�(>�\rSrSrU4SjrSrSrg)�<CWhitebox.test_internal_use_of_overridden_methods.<locals>.Zi-c�$>�T"S5T"S54$r�r)r�r�s �rr6�MCWhitebox.test_internal_use_of_overridden_methods.<locals>.Z.as_integer_ratio.s����!��a��d�|�#r'c��U$rrr�s rr��DCWhitebox.test_internal_use_of_overridden_methods.<locals>.Z.__abs__0r�r'rNr�)r�s�r�Zr�-s
���
$�
r'r�gfffffFY@)r�r�r�rrBr)r�r�r�r�r�r#r�s      @r�'test_internal_use_of_overridden_methods�1CWhitebox.test_internal_use_of_overridden_methodssy����)�)��	��	�	��	�	��	�	��	���7�C����W�/�/��E�
�;�$�/�/��6�
8�r'c���[[R5R5nURSn[[R55nUU[R[R4nUHAnURUS9 UR[S5 SUl
SSS5 SSS5 MC g!,(df   N=f!,(df   Mf=f)Nr)�tp�	immutabler)r<r�r-rV�	__bases__r�r��subTest�assertRaisesRegexr4�foo)r��
SignalDict�SignalDictMixin�ContextManager�typesr�s      r�test_c_immutable_types� CWhitebox.test_c_immutable_types7s����!�)�)�+�+�+�,�
�$�.�.�q�1���a�n�n�.�/����
�I�I�
�I�I�	
���B������$��+�+�I�{�C��B�F�D�%�$��C�C��%�$�s$�
C�!B>�)C�>
C�C�
C	c�T�[[R55n[X5 gr)r<r�r�r)r�r�s  r�test_c_disallow_instantiation�'CWhitebox.test_c_disallow_instantiationFs���a�n�n�.�/��$�T�:r'c��[[R5R5nU"5nSnUR	[
U5 [
U5 SSS5 UR	[
U5 [U5 SSS5 UR	[
U5 [U5 SSS5 UR	[
U5 SU[R'SSS5 UR	[
U5 U[R SSS5 UR	[
U5 U[R5R:H SSS5 UR	[
U5 [R5RU:H SSS5 UR	[
U5 UR5 SSS5 g!,(df   GNw=f!,(df   GN_=f!,(df   GNG=f!,(df   GN'=f!,(df   GN=f!,(df   N�=f!,(df   N�=f!,(df   g=f)Nzinvalid signal dictT)r<r�r-rVr�rr:�iterrAr�rn)r�r��sd�err_msgs    r�test_c_signaldict_segfault�$CWhitebox.test_c_signaldict_segfaultJs����!�)�)�+�+�+�,�
�
�\��'��
�
#�
#�J��
8���G�9��
#�
#�J��
8���H�9��
#�
#�J��
8���H�9��
#�
#�J��
8�%)�B�q�!�!�"�9��
#�
#�J��
8��q�!�!�"�9��
#�
#�J��
8��!�)�)�+�#�#�#�9��
#�
#�J��
8�
�I�I�K����#�9��
#�
#�J��
8��G�G�I�9�
8�+9�
8��9�
8��9�
8��9�
8��9�
8��9�
8��9�
8��9�
8�s`�G�1G�G'�G9�7H�)"H�)"H.�)H?�
G�
G$�'
G6�9
H�
H�
H+�.
H<�?
I
c��[RS5nUR[US5S5 [R	SS9 UR[US5S5 SSS5 g!,(df   g=f)Nz6.09e+23r=z6.09E+23rr�)r�r�rBr�r�)r�rs  r�test_format_fallback_capitals�'CWhitebox.test_format_fallback_capitalshsX��
�I�I�j�!�������3���4�
�^�^�Q�^�
'����V�A�s�^�Z�8�(�
'�
'�s�A+�+
A9c��[RS5nUR[US5S5 [R	[R
S9 UR[US5S5 SSS5 g!,(df   g=f)Nz6.09z#.1fz6.1r�z6.0)r�r�rBr�r�r�)r�r�s  r�test_format_fallback_rounding�'CWhitebox.test_format_fallback_roundingps\��
�I�I�f��������6�*�E�2�
�^�^�Q�\�\�^�
2����V�A�v�.��6�3�
2�
2�s�A9�9
BrN)!r�rirjrkrlr/r2r6r9rGrJr)rNrSrVrYr]rarerkrnr|r�r�r�r�r�r�r�r�r�r�rmrr'rr+r+Ws���'�'�":�	7��:c"�J	2�"�(@�"�(@�T$1�L"�&�"�&�)�0-�U�>9L�v*@�X"�	
�"�	
�"�C>�"�C>�J#H�J<�0/8�b%�8�8
�;��<9�7r'r+c�$�\rSrSrSrSrSrSrg)�
SignatureTestivzFunction signaturesc��[[5GH�nURS5(aM[[U5n[[U5nUS:Xd#US:Xd[
R"U5(dMe[
R"U5n[
R"U5n[URR55nURR5Vs/sHnURS5(aMUPM nnURXhSU-S9 URR5Vs/sHowRPM n	nURR5Vs/sH-nUSRS5(aMUSRPM/ n
nUS:wdGM�URX�S	U-S9 GM� gs snfs snfs snf)
Nr�r�r-�parameter name mismatch in %s��msgrrr2�parameter kind mismatch in %s)r�r�rr r��inspect�
isfunction�	signaturer��
parametersr�rBru�kindr�)r�r%�p_func�c_func�p_sig�c_sig�c_namesr�p_names�c_kind�p_kinds           r�test_inspect_module�!SignatureTest.test_inspect_module{s�����F�D����s�#�#���Q��%�F��Q��%�F��	�!�T�Y�%6��"�"�6�*�*��)�)�&�1���)�)�&�1���u�/�/�4�4�6�7��&+�&6�&6�&;�&;�&=�.�&=���<�<��,��&=��.�� � ��%D�v�%M�!�O�+0�*:�*:�*A�*A�*C�D�*C�Q�&�&�*C��D�-2�-=�-=�-C�-C�-E�0�-E���A�$�/�/�#�.�$�!�A�$�)�)�-E��0��<�'��$�$�V�)H�6�)Q�%�S�1��.��E��0s� G�>G�5G�(G
�	G
c�^^^^^^�[RRm[RRm[[RS5[RS5[RS5[RS5[RS5[RS5[RS5[RS5[RS5[RS5SS[R[R5S.[[RS5[RS5[RS5[RS5[RS5[RS5[RS5SS[R[R5S.0mUUU4SjmSmUUUUU4SjnU"S	5 U"S
5 g)Nrr�r�)rr�rr�r`r�r�r�rar��numr�r+r$)rr�r�r�r�rar�r�r�r+r$c�>�/n0nURR5H[upEUS:XaM
URT:XaURTUU5 M6URT:XaTUUX4'MR[	S5e X#4$)Nr�zunexpected parameter kind)r�r�r�r:r)	�moduleror�kwargs�name�param�POS�POS_KWD�pdicts	      ���r�mkargs�0SignatureTest.test_inspect_types.<locals>.mkargs�s�����D��F�"�~�~�3�3�5����6�>�8��:�:��$��K�K��f�
�d� 3�4��Z�Z�7�*�#(��=��#6�F�L�$�%@�A�A� 6��<�r'c�0�US:XagUS:XagUS:XagU$)zhThe C Context docstrings use 'x' in order to prevent confusion
with the article 'a' in the descriptions.rr�r�r�r`r�r)rs r�tr�,SignatureTest.test_inspect_types.<locals>.tr�s$���C�x���C�x���C�x���Hr'c
�(>�[[U5n[[U5n[U5GHnUR	S5(aM[X5n[X#5n[
R"U5(dMO[
R"U5n[
R"U5n[URR55nURR5V	s/sHn	T"U	5PM
 n
n	TRX�SU-S9 URR5V	s/sHo�RPM nn	URR5V	s/sHo�RPM nn	TRUST5 TRUST5 US:XaTRUSSUSSSU-S9 O&TR[U5[U5SU-S9 T"[U5up�[U"S5U5"U
0UD6 T"[U5up�[U"S5U5"U
0UD6 GM gs sn	fs sn	fs sn	f![ a [#S	U<S
U
<SU<35ef=f![ a [#S	U<S
U
<SU<35ef=f)Nr�r�r�rr�rr�r)zinvalid signature for z: r")r r�r�r�rr�r�r�r�r�r�rBrur�r�r:rMr)�ty�p_type�c_typer%r�r�r�r�r�rr�r�r�r�kwdsr�r�r�r�r�s               �����rr7�.SignatureTest.test_inspect_types.<locals>.doit�sn����Q��^�F��Q��^�F��F����?�?�3�'�'�� ��.�� ��.���%�%�f�-�-�#�-�-�f�5�E�#�-�-�f�5�E�#�5�#3�#3�#8�#8�#:�;�G�.3�.>�.>�.C�.C�.E�F�.E��r�!�u�.E�G�F��$�$�W�)H�6�)Q�%�S�/4�.>�.>�.E�.E�.G�H�.G��f�f�.G�F�H�.3�.>�.>�.E�.E�.G�H�.G��f�f�.G�F�H��M�M�&��)�W�5��M�M�&��)�S�1��Y���(�(�����V�A�B�Z�-L�v�-U�)�W��(�(��V��c�&�k�-L�v�-U�)�W�"(��5�!1�J�D�c���q�	�4�0�$�?�$�?�"(��5�!1�J�D�c���q�	�4�0�$�?�$�?�Q$��G��
I��H��$%�c�(�f�VZ�\`�)a�b�b�c��%�c�(�f�VZ�\`�)a�b�b�c�s*�'H;�*I�I�5I
�I/�
"I,�/"Jr�r-)	r��_ParameterKind�POSITIONAL_ONLY�POSITIONAL_OR_KEYWORDr�r�r�r�r�)r�r7r�r�r�r�r�s` @@@@@r�test_inspect_types� SignatureTest.test_inspect_types�sL����$�$�4�4���(�(�>�>���a�i�i��l��i�i��l��)�)�A�,��)�)�A�,��)�)�A�,��)�)�A�,��)�)�A�,��)�)�A�,��I�I�a�L� �y�y��|���!"��� !����
0��a�i�i��l��i�i��l��)�)�A�,��)�)�A�,��)�)�A�,��I�I�a�L� �y�y��|���!"��� !����
0�1��4	 �	�-	c�-	c�^	
�Y���Y�r'rN)r�rirjrkrlr�rrmrr'rr�r�vs���S�8er'r�c
�b^�[bUR5n[R"[5HenSU;dURS5(aM!UR
S5upE[bU[;aMGU4Sjn[[SU-U5 AAAAMg S[4S[44HTupxU(dM[US-[[R4SU05n	URURU	55 MV [c�S	S
KJn
Jn [&R("5R+5m[[4HinU(dMU4SjnU4U4Sjjn
U[LaUOS	nU[,R.S'URU
"X�U
US
95 [&[,R.S'Mk U$)Nz.decTestr�c�2�UR[U-5$r)r�	directory)r�r�s  rr�load_tests.<locals>.<lambda>s��$�.�.��Q��*Gr'�test_r��Pyr:rr)�DocTestSuite�IGNORE_EXCEPTION_DETAILc�@�U[RS'[U5 g�Nr)rqr�r5)�slfris  rr��load_tests.<locals>.setUps��),����I�&��S�	r'c��>�[[RS'UR[UR55 [R"TR55 gr)�orig_sys_decimalrqr�r2�ORIGINAL_CONTEXTrn)rri�orig_contexts  �rrz�load_tests.<locals>.tearDown sC���)9����I�&����/��4�9�9�;�<� �+�+�L�,=�,=�,?�@r')r�rz�optionflags)�
TODO_TESTS�
suiteClass�os�listdirrrrrLr:r�r�r<r��TestCase�addTest�loadTestsFromTestCase�doctestrr
rr�rnrqr�)r��tests�patternr��head�tail�tester�prefixri�
test_classrr
r�rzrrs               @r�
load_testsr'�s������!�!�#���J�J�y�)���X�%��)<�)<�S�)A�)A���^�^�C�(�
���!�d�*�&<�� (�G����g��n�f�5��d�D�&�*��Q�x�$���*������&�>�1�'��):�):�;�$�c�*�,�
�	�
�
�f�2�2�:�>�?�
+���A�'�2�2�4�9�9�;���a�4�C���"�
�#&�
A�69�A�X�1�1�K�%(�C�K�K�	�"��M�M�,�s�(�/:�<�
=�%5�C�K�K�	�"���Lr'c�r�[[5 [[5 [b[qg[	S5qgr)r5r�r��ARITHrr/rr'r�setUpModuler*+s$����G���G��)�u�H�/B�9�/M�Hr'c��[(a.[R[[R55 [R[[R55 [(d)[
R"[5RS5 [[RSLa[S5eg)Nz*C tests skipped: no module named _decimal.rzGInternal error: unbalanced number of changes to sys.modules['decimal'].)
r�r2rrnr��logging�	getLoggerr��warningrrqr�rrr'r�tearDownModuler/1s����q�!�,�,�'��*�/�/�1�
2��L�L�!�!�$�)�)�+�,��1����(�#�+�+�8�	
��s�{�{�9�5�5��3�4�	4�6r'c�b�UqUqUq[R"[
U(aSOSS[
/S9 g)zvExecute the tests.

Runs all arithmetic tests if arith is True or if the "decimal" resource
is enabled in regrtest.py
rrF)�	verbosity�exit�argvN)r)rr2r��mainr���arith�verbose�
todo_tests�debugs    r�testr:Bs+��
�E��J��E��M�M�(�7�a���X�J�Wr'z:test_decimal.py [--debug] [{--skip | test1 [test2 [...]]}]z--debugz-d�
store_truez2shows the test number and context before each test)�action�helpz--skipz-sz%skip over 90% of the arithmetic tests)r6r7r5)NNNN)�rlr,rrrqrJ�warningsr�rnr�r�r��test.supportrrrrrrr	r
�test.support.import_helperrrr
r0r�r�rAr�r�rr�
cfractionsr��
pfractionsr�
skipUnless�requires_cdecimalr7r�rVr�r1r�r�r�r�r�r�r�r�r�r;r&r�r�r�r�r�r�r.r�r�rr5�TESTDATADIRr�r3r�r��path�dirname�curdir�testdir�sepr�isdirr�r9�hasattr�EXTRA_FUNCTIONALITYr)�skipIf�skip_if_extra_functionalityr:rorr�r�r�rRrTrVrrrr^r`rprx�requires_working_threadingrzr�r�r�rjrlr�r�r�r�r�r�r�rr
rrErGrIr[r]r_rkrmrorr�r�r�r�r�r�r�rr+r�r'r*r/r)r/rr2r:�optparse�OptionParserr@�
add_option�
parse_args�optr�skipr9rr'r�<module>rWs����"��������
�8�8�5�5�;�)�(�
����<�<�8���n�-��	�*��6���	�J�<�8��"�!��[�M�
B�
�����I��
 ��[�M�
B�
�����I��
�z�1�Z�(�	�)����I���'�'��+D�E���1�U�1�<�<�>���$�$�&�'�$��U�1�<�<�>���$�$�&�'������i�i����A�I�I�q�{�{�A�K�K��j�j�!�"�"�A�$6�$6�����"&��a�i�i����A�I�I�q�{�{�A�K�K��j�j�!�"�"�A�$6�$6�����	��H�
�:�:��
�\�\�
����
��m�m�����
��#�#���#�#��
�\�\�
��J�
�{���/���
��a�Q�\�\�^����T��Q�\�\�^������%� ���z���8�8�A�;�D��D�
�'�'�/�/�$�
�
,�2�9�9���b�f�f��{�*�R�V�V�3�	��G�G�M�M�)�,�,�
���&�a��6�6�d�E��'�2�2��G� I��&�o�o��4�6��a#�a#�LI<�I<�V
�� 8�(�:K�:K�����!9�8�;L�;L��K1�K1�Z�� 8�(�:K�:K�����!9�8�;L�;L��s9�s9�j��*�h�/�/�����:�x�0�0��hA�hA�T	��6��8I�8I����� 7��9J�9J��
%'�N*0�Z�,�,�.�*(�*(�/�*(�Z��]�H�$5�$5�����m�X�%6�%6��pE�pE�d��]�H�$5�$5����
�m�X�%6�%6�
�[N�[N�z
��n�h�&7�&7�����~�x�'8�'8��WC�WC�r����(9�(9�������):�):��b�b�H��0�(�2C�2C�����1�8�3D�3D��I0�I0�V��L�(�"3�"3�����\�8�#4�#4��N�N�`����(9�(9�������):�):��<;�<;�|��4�h�6G�6G�����5�x�7H�7H��k.�k.�Z��,�h�.?�.?�����-�x�/@�/@����1�h�'�'�1���1�<H �H �T���(�+�+����
��8�,�,�
�>�h�'�'�>�0ZM��"�"�ZM�xSC�X�&�&�SC�j�\7��!�!�\7��\7�|��D�H�%�%�D���D�N*�XN�	4�	
����
�
�
��X��z������Z�[�A��L�L��D��<p�L�q��L�L��D��<c�L�d��,�,�.�K�S�$�
�x�x�x��5�$�'�	
��4��$�c�i�i�H��4��&�r'

Youez - 2016 - github.com/yon3zu
LinuXploit