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 :  /Python315/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Python315/Lib/test/__pycache__/test_decimal.cpython-315.pyc
R
>lqj;�c���Qs]PHs]PHs]PHs]PHs]PHs]PHs]PHs]PH s]PH$s	]PH(s
]QH,GsG
s
GsGs]QH,GsGsGsGs]QHPGs]QH,Gs]QH,Gs]PH`s]PHds]PHhs]PHls\O8Q6Xc	\Q2\QQ	,Q
5s\QQ	,Q5s]PH|s \QQ,Q
5s!\\ODQ$\QQ,Q
5s#\\ODQ$\\!\\#-s$\ \ODQ$\OJ\Q
2s&\\%c/\'\OQ2OROU22LP\\'\OQ2OROU22-s+\\%cf\OX\OZ\O\\O^\O`\Ob\Od\Of\Oh,	LP\\OX\OZ\O\\O^\O`\Ob\Od\Of\Oh,	-s5Qs6\Ons7\Ops8\Ors9\Ots:\Ovs;\Oxs<\Ozs=\O|s>\7\8\9\:\;\<\=\>,s?\\%c\OQ2O2LP\\OQ2O2-s@QsAQsB\CQ6Xc\O�]*sEL\FsE\O�O�\E29%f
\O�sJ\J\O�*\B*\O�*sL\O�O�\L2%(rNP
sO\P\Q2%cP	LP
sQ\OJ\QQ2sR\O�\QQ2sTQQ2sUQQ2sV\&QQ\V\O�22sXQQ\V\O�2sYQQ2sZ\&QQ \Z\O�22s[Q!Q"\Z\O�2s\Q#Q$2s]\&Q%Q&\]\O�22s^Q'Q(\]\O�2s_Q)Q*2s`\&Q+Q,\`\O�22saQ-Q.\`\O�2sbQ/scQ0sd\O�2Q1Q222sf\&Q3Q4\f\O�22sgQ5Q6\f\O�2shQ7Q82si\&Q9Q:\i\O�22sjQ;Q<\i\O�2skQ=Q>2sl\&Q?Q@\l\O�22smQAQB\l\O�2snQCQD2so\&QEQF\o\O�22spQGQH\o\O�2sqQIQJ2sr\&QKQL\r\O�22ssQMQN\r\O�2stQOQP2su\&QQQR\u\O�22svQSQT\u\O�2swQUQV2sx\&QWQX\x\O�22syQYQZ\x\O�2szQ[Q\2s{\&Q]Q^\{\O�22s|Q_Q`\{\O�2s}QaQb2s~\&QcQd\~\O�22sQeQf\~\O�2s�QgQh2s�\&QiQj\�\O�22s�QkQl\�\O�2s�\T\&QmQn\O�222s�QoQp2s�\&QqQr\�\O�22s�QsQt\�\O�2s�QuQv\O�2s�QwQx\O�2s�QyQz\O�2s�\&Q{Q|\O�22s�\\&Q}Q~\O�222s�QQ�2s�\&Q�Q�\�\O�22s�Q�Q�\�\O�2s�Q�s�Q�s�Q�s�Pr�P	r�Pr�P
r�Q�Q�ks�\CQ6Xc�]PCH`s�\�CO2Q�2s�\�CO7Q�Q�Q�Q�Q�5\�CO7Q�Q�Q�Q�Q�5\�CO92vs�s�\�CO>%c
\�P
P	Q�5P!\�%c\�P	P	\�\�CO@Q�5P!\�P	P	Q�5P!P!)�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.
)�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��``�[V2nSO[9PIc,UU1QkR2D%cJP
2P!	P	2P!UU1QkR222P!)c3�j:�SF �D#pR7c
RU*L
RU*%(w�	J%	P!3h�N�)�.0�s�d�expecteds& ���&C:\Python315\\Lib\test\test_decimal.py�	<genexpr>�!assert_signals.<locals>.<genexpr>Vs#��A���A�q�H�}�q��t�a��d�(�:�A�s�
3� 3)�getattr�
assertTrue�all)�cls�context�attrrrs&&&f@r�assert_signalsr$Ts<������A��N�N�3�3�F�A�F�3�3�G�3�G�3�F�A�F�F�G�c��U%fP!UO]	[[O[U*]2Q5oUOU2P!)N)�prec�rounding�traps)�Context�ROUND_HALF_EVEN�dict�fromkeys�Signals�
setcontext)�m�DefaultTestContexts& r�initr2ms@���f����
��t�}�}�W�Q�Z��/K�#����L�L�#�$r%�decimaltestdata�__main__�
DecClampedz.test requires build with -DEXTRA_FUNCTIONALITYztest requires regular buildc�n`�\sQs]�snQsQsQsQsQsQs	Qs
QsQ	sQ
s
QsQsQ
sQsUsP!)�IBMTestCasesz?Class which tests the Decimal class against the IBM test cases.c��UOO2UmUOO2UmQ,Um[,QlN2UmUO[6Xc�UOOQ2UOOQ2UOOQ2UOOQ2UOOQ2UOOQ2UOOQ2UOOQ2Q	UOQ
UOQUOQUOQ
UO-Um-QQaQQaQQaQQaQQaQQaQQaQQaQQaQ Q!aQ"Q#aQ$Q%aQ&Q'aQ(Q)aQ*Q+aQ,Q-aQ.Q/a-Q0Q1aQ2Q3aQ4Q5aQ6Q7aQ8Q9aQ:Q;aQ<Q=aQ>Q?aQ@QAaQBQCaQDQEaQFQGaQHQIaQJQKaQLQMaQNQOaQPQQaAQRQSQTQUQVQW-AUmQX[ QY["QZ[$Q[[&Q\[(Q][*Q^[,Q_[.-UmQ`UOO2QaUOO4QbUOO6QcUOO4QdUOO4QeUOO8QfUOO4QgUOO4QhUOO:QiUOO<QjUOO>QkUOO@-Um!QmUm"P!)n�#�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�tointegralx�to_integral_exact�tosci�
to_sci_string�xor�logical_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)�scbx164�scbx165�expx901�expx902�expx903�expx905�lnx901�lnx902�lnx903�lnx905�logx901�logx902�logx903�logx905�powx1183�powx1184�powx4001�powx4002�powx4003�powx4005�powx4008�powx4010�powx4012�powx4014)r_rarcrergrirkrmrorqr�)#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�(�4�+C�+C�(�4�+C�+C�"�T�%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*�*=�#�O�!�-�I$1���N'��#�j�$�{�(�?�(�?�&��!�H�#�j�2���%�t�|�|�';�';�.����1N�1N�-����0K�0K�0�4�<�<�3P�3P�/�$�,�,�2O�2O�$�t�|�|�';�';�,�t�|�|�/L�/L�.����1N�1N�%����(=�(=�$�t�|�|�';�';�&����)?�)?�&����)?�)?�A���
!1��r%c�r�UO[6Xc�UOOQ6XcmUOO	Q2UOOQ2UOO
Q2UOOU2!UOOV2!)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	���[%c[Og[UQQ59^tt^2oSFD7oUO	QP2O	QP2oUOU2oJ9	PPP2P!SOOcFoSOQSOO*Q*S*2Po=J�Po=hh9h)%fhP!9h)�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��
*�
)�
)�sA�)C�A<�.C�<C�C�:C�C�C�C�C0	�(C0	c�J�UOQ2]6�c�UQ*Q6wcyUOQ2%fbUOQ2]*Q*UOQ2]*OQ2]**O2oL&UOQ2]*O2oUOFDoUOU2]6�fJP!	U%fP!QU7cUOU2!UO
U2!)z -> �N�N�--z  --�->�:)�find�
startswith�split�stripr��eval_directive�
eval_equation)r�r�ignores&& rr��IBMTestCases.eval_line7s����6�6�&�>�Q��1�R�5�D�=����f�9M�9M������q�!�D�(������q�!�'�'��-�a�0�1�27�%�'�
�����
�a� �&�&�(�A��&�&�F��v�v�f�~��"��'���
�A�X��&�&�q�)�)��%�%�a�(�(r%c���QUOQ22vq#UQ6XcUOU*oL[U2oUOOUQ2oUU2P![cK4h9h)c3�h�SF �D#pO2O2w�	J%	P!3hr)r�lower)r�xs& rr�.IBMTestCases.eval_directive.<locals>.<genexpr>Js��<���<�a���	���)�)�<�s�+2rr(c��P!rr)�argss*r�<lambda>�-IBMTestCases.eval_directive.<locals>.<lambda>Ss��$r%)rr��int�
ValueErrorr��get)r�r�funct�values&&  rr	�IBMTestCases.eval_directiveIsp��@�1�7�7�3�<�@����J���%�%�e�,�E�
��E�
�����#�#�E�,>�@��
�e���	�
��
�s�A)�)	A7�3A7�6A7c�@
�[%f[O2Q6cP!UOO2UO	Q2oU]*O2O	2oU]*o[%c[QUQQ5U]*O2oUQ*oU]*O2O	2oU]*oUQ*oQo	V@O7cP!UOO!VU2o
U
Q6XcP![#UOU
2o,oPo]o
STt,tFD#p�O$UO2*MJ%	oo[&UO*FDo]UOO(U$J	SFDo]UOO(U$J	[+U2FCD-vooUO-Q	2]*]6Xc
]U
*
o
U
%cUQ*U*oJGUU*oPoU	U2oU
Q7c�[.%cxSFDpo]UOO(U$UUOO1U22UO3Q
U8QU802]UOO(U$Jr	UOO1U2oLUO5UUO2oUO7U2CJ0	U	U2o[.%c�U
Q7c�SFDVo]UOO(U$UUUO3Q
U8QU802]UOO(U$JX	[8UO*Tt,tFDoUU7fJUMJ	ooSFD=o]UOO(U$UUUO3Q
U8QU802J?	SFDo]UOO(U$J	[%c[QUO2[=UU2oV�O>7c[=[A[CU222oUOE2oUOG[HQ5UOG[HQ5UOKWUQU*Q*U*2UOKUUQU*Q*[=U2*2P![[[1cSOOgh9httohScCK�[&SO*c*oSO3QS8QS8Q
S8Q02Po=CK�Po=hh9hScCK;[&SO*c*oSO3QS8QS8Q
S8Q02Po=CKzPo=hh9httohScCJB[&SO*c3oSO3Q[;S28QS8QS802Po=CJ�Po=hh9h[&SO*c%oSO3QS8QS802Po=CK	Po=h[QS2g9h)g�������?rzTest � )�end:rNN��NNc���UOQQ2OQQ2oUOQP2OQP2oUOQQ2OQQ2oU!)z''�SingleQuotez""�DoubleQuote�'�")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$zDid not raise z in zRaised z when z	 disabledz; expected rzERROR:��keyzIncorrect answer for z -- got zIncorrect flags set in )r�r�)&�TEST_ALL�randomr"�clear_flagsrr�DEBUG�printr�	TypeError�AttributeError�
IndexErrorrr�r�r�rrr�r.r)�	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_equationVsq���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��2��J�	��&�&�&��� � �$�$�U�2���I�������e�,��������?I�J�z�!�?�?�1�7�7�9�5�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�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��A
T�A%T�
+U	�.!U�V�#W0�3W0�W5�Y�%Y�U�.U�V�V�V�2V�3V�V�W-�%W-�)W-�W-�W(�(W-�5Y
�;Y
�Y
�Y
�&Y�Y
�Z�+Z�,Z�Zc��[UO*Tt,tFD)pOOU*%fJ'UMJ+	to!ttohr)r.rr"�flags)r�rMs& rr<�IBMTestCases.getexceptions�s9��"�4�<�<�0�J�0�a�L�L�4F�4F�q�4I�4I���0�J�J��Js�&A�Ac���UO[6Xc9UOOQ6XcUOO	U2P!VOmP!�r�)rr��MAX_PRECr"r�r')r�r's&&rr��IBMTestCases.change_precision�s;���<�<�1�����!6�!6�)�!C��L�L�(�(��.� $�L�L�r%c�(�VOmP!r)r"r()r�r(s&&rr��#IBMTestCases.change_rounding_method�s�� (���r%c���UO[6Xc9UOOQ6XcUOO	U2P!VOmP!rV)rr�rWr"r��Emin�r��exps&&rr�� IBMTestCases.change_min_exponent��;���<�<�1�����!6�!6�)�!C��L�L�(�(��-� #�L�L�r%c���UO[6Xc9UOOQ6XcUOO	U2P!VOmP!rV)rr�rWr"r��Emaxr]s&&rr�� IBMTestCases.change_max_exponent�r`r%c�(�VOmP!r)r"rE)r�rEs&&rr��IBMTestCases.change_clamp�s��"���r%)	r�r�r�r�r�r"r�r�r�)r��
__module__�__qualname__�__firstlineno__�__doc__r�r�r�r�r	r
r<r�r�r�r�r��__static_attributes__�__classdictcell__��
__classdict__s@rr7r7�sP����I�K1�Z4�e�)�$�~N�@K�%�
)�$�
$�
#�#r%r7c�`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
s\
Q2sQsQ
sQQksQQksQsQsUsP!)�ExplicitConstructionTest��z6Unit tests for Explicit Construction cases of Decimal.c�n�UOOoUOU2UQ22P!)�0�rr�r?�r�r�s& r�test_explicit_empty�,ExplicitConstructionTest.test_explicit_empty�s'���,�,�&�&�������G�C�L�1r%c�b�UOOoUO[UP2P!r)rr��assertRaisesr1rts& r�test_explicit_from_None�0ExplicitConstructionTest.test_explicit_from_None�s#���,�,�&�&�����)�W�d�3r%c�6�UOOoU]-2oUO[U2Q2UQ2oUO[U2Q2UQ2oUO[U2Q2U]2oUO[U2Q2[	]] 2FDdoQFDZo[	Q]2FDFoU]U*U**oUU2oUO[U2[U22JH	J\	Jf	P!)	�-�45�{e��	500000123�-45rr��������r ���)rr�r?r:�range)r�r�r�n�signrrKs&      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�J�UOOoUOOoUOOoUO	[UP22Q2UO	[UQ22Q2UO	[UQ22Q2UO	[UQ22Q2UO	[UQ22Q2UO	[UQ22Q2UO	[UQ	22Q
2UO	[UQ22Q2UO	[UQ
22Q2UO	[UQ22Q2QFD<oQFD2oUO	[UUQ*U*22Q2J4	J>	U29^tt^2oP	UOU$UOV!Q2UO[UQQQ2UOV!Q2UOV!Q2UOV!Q2UOV!Q2UOV!Q2UOV!Q2PPP2P!)%fhP!9h)��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� z	9.311E+28�xyz�1234r�yu1 2 3u 1 2 u  z123z1_2_3)r�rr�u )	rr�r��localcontextr?r:r)rxr1)r�r�r�r��lead�trail�cs&      r�test_explicit_from_string�2ExplicitConstructionTest.test_explicit_from_strings8���,�,�&�&���<�<�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'J�J"	�J"	c���UOOoUQ2oUO[U2Q2UQ2oUO[U2Q2UQ2oUO[U2Q2UQ	2oUO[U2Q2UQ
2oUO[U2Q2UO	[
UQ2UO	[
UQ
2UO	[
UQ2UO	[
V]2Q]12UO	[
UQ2UO	[
UQ2UO	[
UQ2UO	[
UQ2UO	[
UQ2UO	[
UQ2UO	[
UQ2UO	[
UQ2P!)�rrr�r��-4.34913534E-17�Infinity�r��r�r��r )��r��r��r�r��r�����r �	r�r�r��	r r�r�r�r����)r�r�F�r�r�r�r�r )r r�)�r�r)�r�r)r r�zwrong!)r r�r�)r r��1)r r�r)r )r�r�r�Nr r)r )r����r�r�r r)r )r��
r�r�r r)r )r�r�r��ar r)rr�r?r:rxr�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�l�UOOoU]],],2oUO[U2Q2U],QNQ,2oUO[U2Q2U,QN2oUO[U2Q2U],QNQ12oUO[U2Q2P!)r�rrr�r�r�r��rr�r?r: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�0�UOOoUO[U]22P
2UO[U]22P	2UO	UP
2U]22UO	UP	2U]22P!r�)rr��assertIs�boolr?rts& r�test_explicit_from_bool�0ExplicitConstructionTest.test_explicit_from_bool�so���,�,�&�&���
�
�d�7�1�:�&��.��
�
�d�7�1�:�&��-����������4���������
�3r%c��UOOoU]-2oUU2oUO[U2Q2UQ2oUU2oUO[U2Q2UQ2oUU2oUO[U2Q2U]2oUU2oUO[U2Q2P!)r|r}r~rr�rrr�r��r�r�rrMs&   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
�p�UOOoUQ2oUO[U2U2UO[	U2Q2UOU[
Q22O22UOU[
Q22O22UOU[
Q22O22UO[	U[
Q222[	UQ222UO[	U[
Q222[	UQ222UO[	U[
Q222[	UQ222UO[	U[
Q222[	UQ	222[]�2FDbo[OQ
2[O2Q*Q*
*oUOU[
UU222Jd	P!)
皙�����?�90.1000000000000000055511151231257827021181583404541015625�nan�inf�-infr�r��	-Infinity�-0.0�-0�{�G�z�?�@��?)rr�r?r9r:r�floatrircr�r-�expovariate)r�r��rrKrs&    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	�`
�UOOoUOOoUOOo[OUOO22o]UmU2oUO[U2Q2UO2oUO[U2Q2UO[UOP2UOQ2oUOVQ2UOUOQ2UOQ22UQ2oUO[U2Q2UOQ2oUO[U2Q2UO[UOQ22Q2UQ2oUO[U2Q	2UOQ2oUO[U2Q
2UQ2oUU2oUO[U2Q2UOU2oUO[U2Q
2]UmP	UOU$QFD@oUOU2oUOVQ2UO[U2U2JB	]UmP	UOU$UOV4OQ2]UmUO[UOQ22Q2UO[UOQ22Q2UO[UOQ22Q2UO[UOQ22Q2UOV$OQ2UO[UOQ2UO[UOQQ2UOV$OQ2UOV$OQ2]UmUOV$OQ2UOV$OUQ22P
UOU$UO[UOQ22Q2UO!UO"U*2P
UO"U$UO[UOUQ222Q2UO!UO"U*2P!)r�rr��in�z457E+2�456789z4.57E+5z3.14
r�r�z	-4.35E-17r~rz5.00E+8��z0E-017z0E-17r}�-Infr��NaN123r�r��5678z 1234�12_34�NaN12345r�)	l����l����l����i�r���l�����l)r r�r�)rr�r�r�rR�
getcontextr'r?r:r�rxr1�assertIsInstancer)rrrrS)r�r�r�r��ncr�prevdecr�s&       r�$test_explicit_context_create_decimal�=ExplicitConstructionTest.test_explicit_context_create_decimal�sD���,�,�&�&���<�<�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��!�!�!�-����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
��UOOoUOO2oUOQ2oUO	[U2U2UO	[
U2Q2UOUO[Q22O22UOUO[Q22O22UOUO[Q22O22UO	[
UO[Q222[
UOQ222UO	[
UO[Q222[
UOQ222UO	[
UO[Q222[
UOQ222UO	[
UO[Q222[
UOQ	222]dUm[]�2FDko[OQ
2[O2Q*Q*
*oUO	U[UOU222Jm	P!)
r�z0.1000000000000000055511151231r�r�r�r�r�r�r�r�r�r�r�)rr�r*r�r?r9r:rr�rircr'r�r-r�)r�r�r�r�rKrs&     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��``�ROOoReUnUU1QkoUQUQ22UQUOQ22UUQ2UQ22RO[RO
Q2RO[RO
Q2RO[RO
Q2RO[RO
[
22P!)Nc�:�ROU2oRO[U2R2ROV!2P!r)�from_numberr�r9r?)�argrrr!r�s&& ��r�check�8ExplicitConstructionTest.test_from_number.<locals>.check5s1�������$�A��M�M�$�q�'�3�'����Q�)r%�:g��Q�	@z3.14�314y@@)r�)r�r r�r�)rr��
from_floatrxr1r��object)r�r!r�r�sff  r�test_from_number�)ExplicitConstructionTest.test_from_number0s�����,�,�&�&���;��C�	*�
	�c�7�3�<� �
�d�G�&�&�t�,�-�
�g�f�o�w�v��/����)�S�_�_�d�;����)�S�_�_�e�<����)�S�_�_�6G�H����)�S�_�_�f�h�?r%c�h�QQUOO2oUOU2P!)c��\sQsQsQsP!)�KExplicitConstructionTest.test_from_number_subclass.<locals>.DecimalSubclass�Cr�r�rfrgrhrjrr%r�DecimalSubclassr�C���r%r�)rr�r�)r�r!r�s&& r�test_from_number_subclass�2ExplicitConstructionTest.test_from_number_subclassBs&��	�d�l�l�2�2�	����o�.r%c	��UOOoQQQQQQ-oUO2FD&vq4UO[	UU22U2J(	P!)u1r�u٠.٠٣٧٢e-٣z	0.0000372u-nan౨౪౦౦z-NaN2400)rr��itemsr?r:)r�r��test_values�inputrs&    r�test_unicode_digits�,ExplicitConstructionTest.test_unicode_digitsGsY���,�,�&�&��
�c�5��*�Z���
 +�0�0�2�O�E����S����0�(�;� 3r%rr)r�rfrgrhriruryr�r�r�r�r�r�rr�r�r�r�r�rrjrkrls@rroro�si����@�2�4�5�66H�p)K�V
4�4�&�.�3��3�.W4�r=�0@�$/�
	<�	<r%roc��\sQsQs\sQsP!)�CExplicitConstructionTest�Rr�r�rfrgrhr�rrjrr%rrrR����Gr%rc��\sQsQs\sQsP!)�PyExplicitConstructionTest�Ur�r�rfrgrh�Prrjrr%rrrU����Gr%rc�J`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sUsP!)
�ImplicitConstructionTest�Xz6Unit tests for Implicit Construction cases of Decimal.c�|�UOOoUO[[Q[22P!)zDecimal(5) + None�rr�rxr1r;�localsrts& r�test_implicit_from_None�0ImplicitConstructionTest.test_implicit_from_None[s(���,�,�&�&�����)�T�+>���Ir%c���UOOoUO[U]2]-*2Q2UOU]2Q*UQ22P!)r��50l2}rr�rts& r�test_implicit_from_int�/ImplicitConstructionTest.test_implicit_from_int_sN���,�,�&�&��	
����W�Q�Z�"�_�-�t�4�������l�2�G�L�4I�Jr%c�|�UOOoUO[[Q[22P!)zDecimal(5) + "3"rrts& r�test_implicit_from_string�2ImplicitConstructionTest.test_implicit_from_stringg�(���,�,�&�&�����)�T�+=�v�x�Hr%c�|�UOOoUO[[Q[22P!)zDecimal(5) + 2.2rrts& r�test_implicit_from_float�1ImplicitConstructionTest.test_implicit_from_floatkrr%c��UOOoUOU]2U]-2*U]222P!)r�rsrts& r�test_implicit_from_Decimal�3ImplicitConstructionTest.test_implicit_from_Decimalos2���,�,�&�&��������g�b�k�1�7�2�;�?r%c�p``�UOOoQQ2oUO[U2U]
22Q2UO[U]
2U22Q2UO[	Q2Q2UO[	Q2Q2UO[	Q2Q	2UO[	Q
2Q2UO[	Q2Q
2UO[	Q2Q2,QNoSFD�vonn[URU1Qk2[URU1Qk2UO[	QU*Q*2QR*Q*2UO[	QU*Q*2QR*Q*2J�	P!)c�R`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sUs
P!)�,ImplicitConstructionTest.test_rop.<locals>.E�wc�(�Q[U2*!)zdivmod �r:�r��others&&r�
__divmod__�7ImplicitConstructionTest.test_rop.<locals>.E.__divmod__xs�� �3�u�:�-�-r%c�(�[U2Q*!)z rdivmodr+r,s&&r�__rdivmod__�8ImplicitConstructionTest.test_rop.<locals>.E.__rdivmod__zs���5�z�J�.�.r%c�(�Q[U2*!)zlt r+r,s&&r�__lt__�3ImplicitConstructionTest.test_rop.<locals>.E.__lt__|����s�5�z�)�)r%c�(�Q[U2*!)zgt r+r,s&&r�__gt__�3ImplicitConstructionTest.test_rop.<locals>.E.__gt__~r6r%c�(�Q[U2*!)zle r+r,s&&r�__le__�3ImplicitConstructionTest.test_rop.<locals>.E.__le__�r6r%c�(�Q[U2*!)zge r+r,s&&r�__ge__�3ImplicitConstructionTest.test_rop.<locals>.E.__ge__�r6r%c�(�Q[U2*!)zeq r+r,s&&r�__eq__�3ImplicitConstructionTest.test_rop.<locals>.E.__eq__�r6r%c�(�Q[U2*!)zne r+r,s&&r�__ne__�3ImplicitConstructionTest.test_rop.<locals>.E.__ne__�r6r%r)r�rfrgrhr.r1r4r8r;r>rArDrjrkrls@r�Er(ws2����
.�
/�
*�
*�
*�
*�
*�
*�
*r%rFz	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 10c�8:�QR*[U2*!r+r+)r�r-�lops&&�rr�3ImplicitConstructionTest.test_rop.<locals>.<lambda>�s������c�%�j�0Hr%c�8:�[U2R*Q*!r+r+)r�r-�rops&&�rrrI�s����E�
�S�0@�5�0Hr%zE()zDecimal(10)r:�10))�+�__add__�__radd__)�-�__sub__�__rsub__)�*�__mul__�__rmul__)�/�__truediv__�__rtruediv__)�%�__mod__�__rmod__)z//�__floordiv__�
__rfloordiv__)z**�__pow__�__rpow__)rr�r?�divmodr;�setattr)r�r�rF�oplist�symrHrKs&    @@r�test_rop�!ImplicitConstructionTest.test_ropssd����,�,�&�&��	*�	*�$	
������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%r)
r�rfrgrhrirrrr!r$rdrjrkrls@rrrXs0����@�J�K�I�I�@�01�01r%rc��\sQsQs\sQsP!)�CImplicitConstructionTest�rrrr%rrgrg�r	r%rgc��\sQsQs\sQsP!)�PyImplicitConstructionTest�rr
rr%rrjrj�rr%rjc�j`�\sQsQsnQsQsQsQsQsQs	\
QQ	P2Q
2sQsQs
UsP!)
�
FormatTest�z#Unit tests for the format function.c	�\�UOOo,QMQMQMQMQMQ	MQ
MQMQMQ
MQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQ MQ!MQ"MQ#MQ$MQ%MQ&MQ'MQ(MQ)MQ*MQ+MQ,MQ-MQ.MQ/MQ0MQ1MQ2MQ3MQ4MQ5MQ6MQ7MQ8MQ9MQ:MQ;MQ<MQ=MQ>MQ?MQ@MQAMQBMQCMQDMQEMQFMQGMQHMQIMQJMQKMQLMQMMQNMQOMQPMQQMQRMQSMQTMQUMQVMQWMQXMQYMQZMQ[MQ\MQ]MQ^MQ_MQ`MQaMQbMQcMQdMQeMQfMQgMQhMQiMQjMQkMQlMQmMQnMQoMQpMQqMQrMQsMQtMQuMQvMQwMQxMQyMQzMQ{MQ|MQ}MQ~MQMQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MQ�MoSFD(vq4oUO[UU2U2U2J*	UO	[
U]2OQ2UO	[[U]2Q2UO	[[U]2Q2P!)�rMs-020z.fz._6f)rM�0E-15z0e-15)rMz2.3E-15z2.3e-15)rMz2.30E+2z2.30e+2)rMz2.30000E-15z2.30000e-15)rMz1.23456789123456789e40z1.23456789123456789e+40)rM�1.5z1.5e+0)rMz0.15z1.5e-1)rMz0.015z1.5e-2)rMz0.0000000000015z1.5e-12)rMz15.0z1.50e+1)rM�-15z-1.5e+1)rMrrz0e+0)rM�0E1�0e+1)rM�0.0z0e-1)rM�0.00�0e-2)�.6erpz0.000000e-9)rxrrz0.000000e+6)rxz9.999999z9.999999e+0)rxz	9.9999999z1.000000e+1)rxz-1.23e5z-1.230000e+5)rxz
1.23456789e-3z1.234568e-3)r�rrrr)r�ruru)r��0E-2rv)r�z0.00E-8�0.0000000000)r�rsrr)r�z3.2E1�32)r�z3.2E2�320)r�z3.20E2r|)r�z3.200E2z320.0)r�z3.2E-6z	0.0000032)�.6frp�0.000000)r}rsr~)r}rrr~)�.0frrrr)rrwrr)r�
3.14159265�3)�.1fr��3.1)z.01fr�r�)z.4fr��3.1416)r}r��3.141593)z.7fr��	3.1415926)z.8fr�r�)z.9fr�z3.141592650)�grrrr)r�ruru)r�rsrt)�Grsz0E+1)r�z0E-5z0.00000)r�z0E-6r~)r�z0E-7z0e-7)r�z-0E2z-0e+2)�.0gr�r�)z.0nr�r�)z.1gr�r�)z.2gr�r�)z.5gr�r�)z.7gr�r�)z.8gr�r�)z.9gr�r�)z.10gr�r�)rYrs�0%)rY�0E0r�)rYz0E-1r�)rYryr�)rYz0E-3z0.0%)rYz0E-4z0.00%)�.3%rr�0.000%)r��0E10r�)r�z0E-10r�)r�z2.34z234.000%)r�z1.234567z123.457%)�.0%�1.23z123%)rMr�r�)r��-NaN123r�)z+g�NaN456z+NaN456)z.3e�Infr�)z.16fr�r�)r��-sNaNr�)r��1.00r�)�6�123�   123)z<6r�z123   )z>6r�r�)z^6r�z 123  )z=+6r�z+  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?^5r�z?123?)z%^6r�z%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�r�r�)r��12r�)r�r�r�)r�rrrr)r�z-1234567z
-1,234,567)r��-123456�-123,456)z7,r�r�)z8,r�� 123,456)�08,r��	0,123,456)z+08,r�z+123,456)z008,r�r�)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%)z.,r�z1.234,567,89)z._r�z1.234_567_89)z.6_fz12345.23456789z
12345.234_568)z,._%r�z
12,345.678_9%)z,._er�z1.234_56e+5)z,.4_er�z
1.234_6e+5)z,.3_er�z1.235e+5)z,._Er�z1.234_56E+5)r�r�r�)r�z-.0r�)r��-.01r�)�z.1f�0.ru)�z6.1fr�z   0.0)r��-1.z  -1.0)r��-0.ru)r��.01ru)r�r�ru)�z.2fr�rv)r�r�rv)r�z.001rv)r�z-.001rv)�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.000001ru)r��-00000.ru)r��-.0000000000ru)r�r�rv)r�r�rv)r�r�rv)r�z.09�0.1)r�z-.09z-0.1)� z.0fr�z 0)�+z.0fr�z+0)�-z.0fr�rr)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-323rz)r9rrr�)za=-7.0z0.12345zaaaa0.1)z	<^+15.20%r�z<<+Infinity%<<<)z>,%�sNaN1234567zsNaN1234567%)z=10.10%r�z
   NaN123%)rr�r?�formatrxr1�
__format__r)r�r�r�fmtrrOs&     r�test_formatting�FormatTest.test_formatting�s�	���,�,�&�&��^�#�^�'�^�
(�^�
0�	^�

G�^�
#�
^�
$�^�
%�^�
0�^�
%�^�
$�^�
�^�
!�^�
!�^�
"�^� 
,�!^�"
(�#^�$
/�%^�&
0�'^�(
/�)^�*
4�+^�,
�-^�.
 �/^�0
"�1^�2
-�3^�4
�5^�6
!�7^�8
"�9^�:
#�;^�<
&�=^�>
)�?^�@
)�A^�B
'�C^�D
%�E^�F
�G^�H
!�I^�J
'�K^�L
)�M^�N
*�O^�P
,�Q^�R
.�S^�T
/�U^�V
0�W^�X
1�Y^�\
�]^�^
 �_^�`
!�a^�b
!�c^�d
%�e^�f
&�g^�h
"�i^�j
#�k^�l
'�m^�n
'�o^�p
'�q^�r
)�s^�t
,�u^�v
.�w^�x
/�y^�z
0�{^�|
1�}^�@
�A^�B
�C^�D
 �E^�F
 �G^�H
"�I^�J
#�K^�N
#�O^�P
&�Q^�R
'�S^�T
(�U^�V
,�W^�X
$�Y^�\
 �]^�^
(�_^�`
(�a^�b
'�c^�d
*�e^�f
&�g^�j
!�k^�p
#�q^�r
$�s^�t
$�u^�v
$�w^�x
%�y^�z
*�{^�|
+�}^�~
.�^�@
.�A^�B
+�C^�D
)�E^�F
$�G^�H
%�I^�J
'�K^�L
,�M^�N
,�O^�P
,�Q^�R
1�S^�T
I�U^�V
<�W^�X
<�Y^�^
*�_^�`
'�a^�b
%�c^�d
#�e^�f
 �g^�h
�i^�j
�k^�l
�m^�n
,�o^�p
)�q^�r
(�s^�t
)�u^�v
+�w^�x
+�y^�z
,�{^�|
+�}^�~
+�^�@
-�A^�D
+�E^�F
+�G^�H
,�I^�J
.�K^�L
0�M^�N
0�O^�P
-�Q^�T
.�U^�V
1�W^�X
+�Y^�Z
+�[^�^
*�_^�`
+�a^�b
.�c^�d
1�e^�h
1�i^�j
1�k^�l
8�m^�n
4�o^�p
.�q^�r
.�s^�t
,�u^�v
.�w^�|
"�}^�~
#�^�@
$�A^�F
"�G^�H
&�I^�J
'�K^�L
#�M^�N
#�O^�P
$�Q^�R
#�S^�T
$�U^�V
%�W^�X
&�Y^�\
%�]^�^
&�_^�`
%�a^�b
&�c^�f
+�g^�h
)�i^�j
)�k^�n
(�o^�r
-�s^�t
'�u^�v
,�w^�z
.�{^�|
(�}^�~
-�^�B
#�C^�D
%�E^�H
#�I^�J
#�K^�L
"�M^�N
#�O^�P
#�Q^�R
#�S^�V
(�W^�X
)�Y^�Z
)�[^�\
5�]^�^
5�_^�d
6�e^�j
�k^�p
-�q^�v
4�w^�x
7�y^�z
0�{^��~*�N�C�F����V�G�A�J��4�f�=�*�	
���)�W�Q�Z�%:�%:�G�D�	
���*�f�g�a�j�$�?����*�f�g�a�j�&�Ar%c	��UOO29^tt^2o[UmUO	[UOO
Q2Q2Q2PPP2P!)%fhP!9h)r�r�rv)rr�r�r(r?r�r��r��ctxs& r�+test_negative_zero_format_directed_rounding�6FormatTest.test_negative_zero_format_directed_rounding�sV��
�\�\�
&�
&�
(�
(�C�(�C�L����V�D�L�L�$8�$8��$B�F�K�"�
$�)�
(�
(�
(�s�AA/�/B	�8B	c�r�UO[[UOO	Q2Q2P!)r��fz)rxrr�rr�r�s&r�test_negative_zero_bad_format�(FormatTest.test_negative_zero_bad_format�s%�����*�f�d�l�l�.B�.B�6�.J�D�Qr%c	�``	�ROOn	]QH
GoU1QkoQ:U	U1QkkoQQQU,Q;N2QQ	-oQQ	QUW,2QP-oQQ	QU,Q;N2QQ
-oQQQU]]]U,2QQ-oQQ
O
Q2QU,Q;N2QQO
Q2-oROUR	Q2U2Q2ROUR	Q2U2Q2ROUR	Q2U2Q2ROUR	Q2U2Q2ROUQU2Q2ROUQU2Q2ROUQU2Q2ROUQU2Q2ROUQUQ2Q2ROUQUQ2Q2ROUQUQ2Q2ROUQUQ2Q2ROUQUQ2Q2ROUQUQ 2Q2ROUQUQ!2Q"2ROUQUQ#2Q$2ROUQ%UQ!2Q&2ROUQ%UQ#2Q&2ROUQ%UQ'2Q(2ROUQ%UQ)2Q*2ROUQ%UQ+2Q*2ROUQ%UQ,2Q-2ROUQ.UQ#2Q/2ROUQ.UQ'2Q/2ROUQ.UQ)2Q/2ROUQ.UQ+2Q02ROUQ.UQ,2Q12ROUQ.UQ22Q12ROUQ.UQ32Q42ROUQ.UQ52Q62ROUR	Q72UQ82Q92P![cROQ2CK�h9h)<r���CHAR_MAX�locale.CHAR_MAX not availablec	�:�RO[6Xc,POSTt,tFDo[U2MJ	to2!S!ttoh�r�)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�:�RO[6XcRU2OV!2!RU2OV!Q5!))�_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%�
decimal_point�.�grouping�
thousands_sepr�r�&rPs¿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��r�r�r�)rr��localer��ImportError�skipTest�decoder?)
r�r�r�r��en_US�fr_FR�ru_RU�crazy�dotsep_wider�s
f        @r�
test_n_format�FormatTest.test_n_format�s����,�,�&�&��	;�'�	P�	H�	H�
�c���y�1��c���
�c����z�2��b���
�c��
�i�0��c���
�c��
�q�!�Q��&9�:��c���
�k�0�0��9��
�i�0��k�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�	O=�'O=�<O=c��UOOoUQ2oUO[6Xc�UO[29^tt^2o[UQ2oPPP2UO
WO[2UO
W[UQ2O22UO[29^tt^2o[UQ2oPPP2UO
UO[2UO
U[UQ2O22L8UO[[
UQ2UO[[
UQ2[OU29^tt^2UO
[UQ2Q2UO
[UQ2Q2UO
[UQ	2Q
2UO
[UQ2Q2UO[[
UQ
2UO[[
UQ2UO[[
UQ2PPP2P!)%fhCK�9h)%fhCK�9h)%fhP!9h)z6.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�r?�filename�__file__�upperrxrr�check_no_warnings)r�r��h�cmr�s&    r�test_deprecated_N_format�#FormatTest.test_deprecated_N_format�s����,�,�&�&���$�%���<�<�1���!�!�"4�5�5���1�c�N��6����R�[�[�(�3����Q��q�#�� 4� 4� 6�7��!�!�"4�5�5���1�h�'��6����R�[�[�(�3����Q��q�(� 3� 9� 9� ;�<����j�&�!�S�9����j�&�!�X�>�
�
.�
.�t�
4�
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�5��6�5�5��5�
4�
4�s7�
I�
I'�CI;�I$	�I$	�'I8	�0I8	�;J	�J	�LC_ALL�ps_AFc��UOOo[O2Q*o[O2Q*oUQ6wc"UO	QOUQ22UQ6wc"UO	QOUQ22UO
[UQ2Q2Q2P!)	r�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��
localeconvrr�r?)r�r�r�r�s&   r�&test_wide_char_separator_decimal_point�1FormatTest.test_wide_char_separator_decimal_points����,�,�&�&���)�)�+�O�<�
��)�)�+�O�<�
��H�$��M�M�,�,2�F�=�(�,K�
M��H�$��M�M�,�,2�F�=�(�,K�
M�	
������ 8�#�>�9�	;r%c�J�QQUOO2oUOQ2oUOUOOUO2UO]*2oUOUOOUO2P!)c�(`�\sQsQsnQsQsUsP!)�;FormatTest.test_decimal_from_float_argument_type.<locals>.Ai&c�(�[U2UmP!r)r9�a_type)r�r�s&&r�__init__�DFormatTest.test_decimal_from_float_argument_type.<locals>.A.__init__'s
��"�1�g��r%)r"�r�rfrgrhr#rjrkrls@r�Ar &s����
&�
&r%r&g@E@)rr�r�r?r")r�r&r�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%r)r�rfrgrhrir�r�r�rrrrr'rjrkrls@rrmrm�sO����-�kB�Z$�R�WJ�r;�0�X�w��+�;�,�;� 9�9r%rmc��\sQsQs\sQsP!)�CFormatTesti/rrrr%rr*r*/r	r%r*c��\sQsQs\sQsP!)�PyFormatTesti2rr
rr%rr,r,2rr%r,c�h`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
QsQ
sQsUsP!)�ArithmeticOperatorsTesti5z:Unit tests for all arithmetic operators, binary and unary.c�Z�UOOoUQ2oUQ2oUOV#*UQ22UOV2*UQ22U]*oUOVAQ22UO[U2[U22]U*oUOVAQ22UO[U2[U22V#*
oUOV!Q22U]*
oUOV!Q22P!)�-11.1�22.2z11.1z-6.1�16.1�rr�r?r9�r�r��d1�d2r�s&    r�
test_addition�%ArithmeticOperatorsTest.test_addition8s����,�,�&�&��
�W�
��
�V�_��	
��������0���������0�
��F������G�F�O�,�����a��$�r�(�+�
��F������G�F�O�,�����a��$�r�(�+�	�������W�V�_�-�	�a�������W�V�_�-r%c�Z�UOOoUQ2oUQ2oUOV#*
UQ22UOV2*
UQ22U]*
oUOVAQ22UO[U2[U22]U*
oUOVAQ22UO[U2[U22V#*oUOV!Q22U]*oUOV!Q22P!)r0r1z-33.3z33.3z-16.1r2z-38.3r3r4s&    r�test_subtraction�(ArithmeticOperatorsTest.test_subtractionTs���,�,�&�&��
�W�
��
�V�_��	
������� 0�1���������0�
��F������G�G�,�-�����a��$�r�(�+�
��F������G�F�O�,�����a��$�r�(�+�	�������W�W�-�.�	�a�������W�W�-�.r%c�Z�UOOoUQ2oUQ2oUOV#*UQ22UOV2*UQ22U]*oUOVAQ22UO[U2[U22]U*oUOVAQ22UO[U2[U22V#*oUOV!Q22U]*oUOV!Q22P!)�-5r�rrz-25z-75r3r4s&    r�test_multiplication�+ArithmeticOperatorsTest.test_multiplicationps����,�,�&�&��
�T�]��
�S�\��	
��������/���������/�
��F������G�E�N�+�����a��$�r�(�+�
��F������G�E�N�+�����a��$�r�(�+�	�������W�U�^�,�	�a�������W�U�^�,r%c�Z�UOOoUQ2oUQ2oUOV#*UQ22UOV2*UQ22U]*oUOVAQ22UO[U2[U22]U*oUOVAQ22UO[U2[U22V#*oUOV!Q22U]*oUOV!Q22P!)r=�2�-2.5z-0.4z-1.25z-0.8z-0.625r3r4s&    r�
test_division�%ArithmeticOperatorsTest.test_division�s����,�,�&�&��
�T�]��
�S�\��	
��������0���������0�
��F������G�G�,�-�����a��$�r�(�+�
��F������G�F�O�,�����a��$�r�(�+�	�������W�V�_�-�	�a�������W�X�.�/r%c�Z�UOOoUQ2oUQ2oUOV#*UQ22UOV2*UQ22U]*oUOVAQ22UO[U2[U22]U*oUOVAQ22UO[U2[U22V#*oUOV!Q22U]*oUOV!Q22P!)�5rArrr�r3r4s&    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�Z�UOOoUQ2oUQ2oUOV#*UQ22UOV2*UQ22U]*oUOVAQ22UO[U2[U22]U*oUOVAQ22UO[U2[U22V#*oUOV!Q22U]*oUOV!Q22P!)rFrA�25r{�625�16807�390625r3r4s&    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�Z�UOOoUQ2oUQ2oUOV#*UQ22UOV2*UQ22U]*oUOVAQ22UO[U2[U22]U*oUOVAQ22UO[U2[U22V#*oUOV!Q22U]*oUOV!Q22P!�rFrAr�r3r4s&    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�j�UOOoUQ2oUQ2o[V#2vqEUOVAQ22UOVQQ22UO[	U2[	U22UO[	U2[	U22[U]2vqEUOVAQ22UOVQQ22UO[	U2[	U22UO[	U2[	U22[]U2vqEUOVAQ22UOVQQ22UO[	U2[	U22UO[	U2[	U22P!rQ)rr�r`r?r9)r�r�r5r6�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��UOOoUOU]-23U]-22UOU]-2'UQ22UO[U]-22[UQ222P!)r|r�)rr�r?�absrts& r�test_unary_operators�,ArithmeticOperatorsTest.test_unary_operatorssg���,�,�&�&�����'�"�+��w�s�|�4����'�"�+��w�s�|�4�����W�R�[�)�3�w�s�|�+<�=r%c�d�UOOoUOOoUOOoUQ2oUQ2oUQ2oUQ2oVD1VF1Vd1VG1Vt11oVT1VE1VV1Ve1VW1Vu1VU11o	[O
[O[O[O1o
[O[O1oU29^tt^2o]UOU$V�*FDdvq�V�*FDRoUV�2oU[OIcP	LP
oUOUUQOUUOV�U22JT	Jf	PPP2U29^tt^2o]UOU$SFD^vq�SFDRoUV�2oU[OIcP	LP
oUOUUQOUUOV�U22JT	J`	S	FDQvq�SFDEoUOU[OV�2UOU[OV�2JG	JS	V�*FD!vq�S
FDoUOV/V�2J	J#	PPP2P!)%fhCK%9h)%fhP!9h)r��sNaNr�rAz8expected {0!r} for operator.{1}({2!r}, {3!r}); got {4!r})rr�r�r��operator�lt�le�gt�ge�eq�ner)r�r�r�rx)r�r�r�r�r�rrKr��
qnan_pairs�
snan_pairs�	order_ops�equality_opsr�rr��op�gotrs&                 r�test_nan_comparisons�,ArithmeticOperatorsTest.test_nan_comparisonssQ���,�,�&�&���<�<�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�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�%�^��^�^���^�^�s2�-AJ
�3;J
�9J�?CJ�
J	�J	�J/	�'J/	c�
�UOOoU]2OUQ22oUOU]2OQ2U2UO	[
U]2OQ2P!)r �-2r�)rr�rYr?rxr1r�s&  r�test_copy_sign�&ArithmeticOperatorsTest.test_copy_signXsd���,�,�&�&���A�J� � ����-��������-�-�b�1�1�5����)�W�Q�Z�%9�%9�4�@r%r)r�rfrgrhrir7r:r>rCrGrNrRrWr[rlrprjrkrls@rr.r.5sH����D�.�8/�8-�80�8+�80�8+�8,�6>�8B�tA�Ar%r.c��\sQsQs\sQsP!)�CArithmeticOperatorsTesti_rrrr%rrsrs_r	r%rsc��\sQsQs\sQsP!)�PyArithmeticOperatorsTestibrr
rr%rrurubrr%ruc���UOOoUOOoUOOoUOOoUOO
oUOOoUOOoUOOoU]2o	U]2o
V�*oUOO2UOO2V�*oU29^tt^2o
UOU
OU*2UOV=O U	]2UOU
OU*2U29^tt^2oUOUOU*2UOUOU*2UOV.O"V�Q22UOUOU*2=PPP2UO%U
OU*2=
PPP2UO'V�Q22UO'V�Q22U2oUOUOU*2VEV21FD%oUO%UOU*2J'	P!)%fhK�9h)%fhK�9h)r r^�0.333333333333333333333333)rr�r�r�r�r�r�r�r��finish1r��synchro�waitrrSrx�divide�compare�assertFalser?)r!r�r�r�r�r�r�r�r�r5�d3�test1�test2�c2�c3�c1�sigs&                r�thfunc1r�gs���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��^��	
��s2�A1K�B
K
	�+K�
K
�K
�K�K-	�&K-	c��UOOoUOOoUOOoUOOoUOO
oUOOoUOOoUOOoU]2o	U]2o
V�*oU2o]Um	V�*o
U29^tt^2oUOUOU*2UOVNOUQ2Q2UOUOU*2UU29^tt^2oUOUOU*2UOUOU*2P	UOU$UOV_O UQ2Q2UOUOU*2=PPP2UOUOU*2UOUOU*2=PPP2UO"O%2UO&O%2UO)V�Q22UO)V�Q22UOUOU*2UOUOU*2VEV21FD%oUOUOU*2J'	P!)%fhCK49h)%fhK�9h)r �1e425000000��z1e-425000000rwz0.333333333333333333)rr�r�r�r�r�r�r�r�r'rrSrx�multiplyr}r)r{ryr��finish2r?)r!r�r�r�r�r�r�r�r�r5r~r�thiscontextr�r�r�r�s&                r�thfunc2r��sX���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�''�
&�
&��	
��s3�/A8M�'BL,	�A
M�,L=
�5L=
�7	M�M	�	M	c�,`�\sQsQsnQsQsQsUsP!)�
ThreadingTesti�z0Unit tests for thread local contexts in Decimal.c��UOOoUO[6Xc.UOO%fUO	Q2UO
oUOoUOo]UmQUmQUm[O2Um
[O2Um[O2Um[O[U1[O 2Q5o[O["U1[O 2Q5oUO%2UO%2UOO'2UOO'2[(UO*FD%oUO+UO,U*2J'	UO/2UO/2V!mV1mVAmP!)zcompiled without threadingr�)�targetrr"���)r�DefaultContextr��HAVE_THREADSrr'rbr\�	threading�Eventryrxr��Threadr��contextvarsr*r��startrzr.r}rSr�)r�r��	save_prec�	save_emax�	save_emin�th1�th2r�s&       r�test_threading�ThreadingTest.test_threading�sm�����4�4���<�<�1��T�\�\�%>�%>�%>��M�M�6�7�#�'�'�	�"�'�'�	�"�'�'�	� ���'���(��� ���(��� ���(��� ���(���
���g�T�G�'2�':�':�'<�>�����g�T�G�'2�':�':�'<�>��	�	�	���	�	���������������4�<�<�(�(�C����^�1�1�#�6�7�)�	���
����
�'��'��'�r%)rxr�ry)r�rfrgrhrir�rjrkrls@rr�r��s����:�
)(�)(r%r�c��\sQsQs\sQsP!)�CThreadingTesti�rrrr%rr�r��r	r%r�c��\sQsQs\sQsP!)�PyThreadingTesti�rr
rr%rr�r��rr%r�c�`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
QsQ
sQsQsQsQsQsQsQsQsQsQsUsP!)�
UsabilityTesti�z*Unit tests for Usability cases of Decimal.c�D�UOOoUQ2oUQ2oUQ2oUOVB2UOVB2UO	V$2UOV$2UO
V#2UOV$2UOV#2UOV#2UOU]2UO	]U2UO
U]-2UOUQ2UOUQ2UOU[22UOU[2[[U[]d222oUQ*o[OU2UO2UO
VV2P!)z23.42r}r�g�����Y@@:NNN)rr��
assertGreater�assertGreaterEqual�
assertLess�assertLessEqualr?�assertNotEqualr��list�mapr�r-�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�4�UOOoUQ2oUQ2oUOUQ2UOUQ2UO	UQ2UOUQ2UO
UQ2UOUQ2UO	QU2UOQU2UOQU2UOQU2UO
QU2UOQU2UO
QUQ22P!)�0.25�3.0�@��?g�?r�r�)rr�r�r�r�r�r�r?�r�r�r�r�s&   r�test_decimal_float_comparison�+UsabilityTest.test_decimal_float_comparisons����,�,�&�&��
�V�_��
�U�^������C� ����R��%����2�t�$�����D�)����B��$�����T�"����3��#�����R�(�����b�!����T�2�&����D�"�%�����b�!����C����0r%c��UOOoUQ2oUQ2oUOUQ2UOQU2UOUQ2UOQU2UOQU2UOUQ2UOUQ2UOQU2UO	UOQ2[2UO	UOQ2[2UO	UOQ2[2UO	UOQ2[2P!)r�r�y�?y�?y@y@�?)	rr�r�r?r�r4�NotImplementedr;r8r�s&   r�test_decimal_complex_comparison�-UsabilityTest.test_decimal_complex_comparison/s����,�,�&�&��
�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�"�UOOo[UO*OoUOOoUOO
oUOOo[%c[OLQo[%c[OLQo[%c[OLQoUVgQ5o	UU	29^tt^2VimUOU]2U]Q22UOUPQ2U]22UOU]]2UQ[U2*22UOUQ[U2*2U]]22UOU]Q2UQ[U2*22UOUQ[U2*2U]Q22UOUQ2U]]
22UOU]]
2UQ22QU	mUOU]2]*U]]22UOU]]2U]2]*2UO!UQQ	2UQ
[U2*22UO#UQ
[U2*2UQQ	22UO%UQ2UQ]{22UO%UQ2UQ]{22UOUQ
2UQ]{22UOUQ
2UQ]{22UO'VQQ2O(UQ]{22UO+[,UQ]{2O/UQ222UOUQ2UQ]{22UOUQ]{2UQ22PPP2P!)%fhP!9h)�ɚ;�rbr\l	��Z��mH;5�B�1ez-1el��!�0QYr��,i�6l�c(	�9er�l�g�]r�r��6e�ilʈl�����g�]i����)rr�r�Fractionr*r�r�r�r��MIN_EMIN�	MIN_ETINYr'r�r:r?r�r�r�r�rxr8r�r�r4)
r��Dr�r*r�r��emax�emin�etinyr�s
&         r� test_decimal_fraction_comparison�.UsabilityTest.test_decimal_fraction_comparisonCs���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�.LO=�=P	�P	c�,�UOOoUQ2o[OU2oUO[	U2[	U22[O
U2oUO[	U2[	U22P!)z43.24)rr�rRr?rB�deepcopy)r�r�rr�r�s&    r�test_copy_and_deepcopy_methods�,UsabilityTest.test_copy_and_deepcopy_methodsmsf���,�,�&�&���G����I�I�a�L������A���1��&�
�]�]�1�
������B���A��'r%c�
`�ROOoROOoU1QkoUU]22UUQ22UUQ22UUQ22UUQ22,QNTTTt,tFD>o[Q]
2FD*oQFD oUU]U*U**2MJ"	J,	J@	ooooUO	UQ2UQ2UQ2UQ2UQ	2UQ
2UQ2UQ2UQ
2UQ2UQ2UQ2UQ2UQ2UQ2UQ2,2SFD-oROUU2[
[U222J/	,QNo	S	FD7o
[U
2oUU
2oROUU2[
U22J9	U29^tt^2o
UQ2o]U
m	UU2o]
U
m	UU2o]U
m	UU2oROUU2ROUU2QU
m	QQ*oROUUU22UU22PPP2P!ttoooh)%fhP!9h)c�b:�[U2oUO2oROV2U!r)�hash�__hash__r?)rr�r�r�s&  �r�hashit�.UsabilityTest.test_hash_method.<locals>.hashit{s*����Q��A��
�
��A����Q�"��Hr%r�r��nan123�-NaNr�r�rvz-0.000r�z-0E12�10.0z	-23.00000�1230E100z
-4.5678E50z	1.634E100z
90.697E100z
188.83E100z
1652.9E100�	56531E100z123456789.1�'iLi�)r�������� �!�=�>�?�@�A�B���r�l��)r�r�ruz-.0e1z34.0�2.5z
112390.625z	-0.515625)
rr�r�r��extendr?r�rr�r')r�r�r�r�r0r�r�rr�test_stringsrr�rr�r�h1�h2�h3sf                 r�test_hash_method�UsabilityTest.test_hash_methodvsk����,�,�&�&���|�|�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�AI*�BI1�1J	�:J	c�x�UOOoUO[[UQ22UQ2oUO[	U2[OU22QQ2oQQV2oUQ2oUO[	U2[OU22P!)r^r�c�(`�\sQsQsnQsQsUsP!)�-UsabilityTest.test_hash_method_nan.<locals>.Hi�c��]*!)�*rr�s&rr��6UsabilityTest.test_hash_method_nan.<locals>.H.__hash__�s��r%r)r�rfrgrhr�rjrkrls@r�Hr��s����
�
r%r�c��\sQsQsQsP!)�-UsabilityTest.test_hash_method_nan.<locals>.Di�rr�rr%rr�r�r�r%r�)rr�rxr1r�r?r�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��UOOoUQ2oUQ2o]o]oUO[V#2U2UO[V22U2UO[	V#2U2UO[	V22U2UO[V%2U2UO[VR2U2UO[	VC2U2UO[	V42U2P!)�15.32z28.5)rr�r��min�max)r�r�r5r6�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��UOOoUOU]22UOUQ22P!)r�z0.372)rr�r}rrts& r�test_as_nonzero�UsabilityTest.test_as_nonzero�s6���,�,�&�&��	
������$������(�)r%c��UOOoUQ2oUO[U2Q2UO[	U2Q2P!)rzDecimal('15.32'))rr�r?r:r>r�s&  r�test_tostring_methods�#UsabilityTest.test_tostring_methods�sD���,�,�&�&���G�������Q���)�����a��"4�5r%c��UOOoUQ2oUQ2oUO[U2]B2UO[U2]2UO[	U2]B2UO[	U2Q2,QNoSFD1vqVUO[
OUU22U2J3	UO[[
OUQ22UO[[
OUQ22UO[[
OUQ22UO[[
OUQ22UO[[
OUQ22,Q	NoSFD1vqVUO[
OUU22U2J3	UO[[
OUQ22UO[[
OUQ22UO[[
OUQ22UO[[
OUQ22UO[[
OUQ22,Q
NoSFD&vqVUO[UU22U2J(	UO[[UQ22UO[[UQ22UO[[UQ22UO[[UQ22UO[[UQ22,QNoSFD1vqXo	UO[[UU2U22U	2J3	P!)�66rg�p=
ף.@r�r^r�r�r�)	�z123.00�{��3.2r�)�3.54r�)�3.899r�)�-2.3r��z-11.0i�����rur��z-0E3r�)�89891211712379812736.1l�{�#'s�{M)	r)rr��rr��rr��rr�rrr)rl�{�#'s�{M)rrrrr rrr)z-3.5���)rBr�)r�r�)�-0.5r�)�0.5r�)rqr)r�r)z3.5r�))�123.456r!z0E+4)�-123.456r!z-0E+4)r$r�z0E+3)r%r�z-0E+3)r$r�z1E+2)r$r�z1.2E+2)r$r�r�)r$r z123.5)r$r�123.46)r$r�r$)r$r�z123.4560)z123.455rr&)z123.445rz123.44)r�r�r�)r�i��r�)�sNaN314r��NaN314)
rr�r?rr��mathr�rxr�
OverflowError�ceil�roundr:)
r�r�r5r6�
test_pairsrrK�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�6�UOOoQFDzo[UU22oUO[O
U22[OQU2oSOXBOQ2%cQLQ2J|	P!)r�r�rP)r��nan1234�-nanz-nan2468g�)	rr�r�rr)rdrXr?r)r�r�rr�r�s&    r�test_nan_to_float�UsabilityTest.test_nan_to_float^sm���,�,�&�&��7�A��g�a�j�!�A��O�O�D�J�J�q�M�*��=�=��a�(�D����T�<�<��+<�+<�4�#�F�	8r%c��UOOoQFD&oUU2oUO[[U2J(	P!)�snan)r7z-snan�snan1357z	-snan1234)rr�rxrr�)r�r�rrs&   r�test_snan_to_float� UsabilityTest.test_snan_to_floaths6���,�,�&�&��;�A���
�A����j�%��3�<r%c��UOOoUQ2oUOU[[	U222UQ2oUOU[[	U222UQ2oUOU[[	U222UQ2oUOU[[	U222P!)r�r�r�r�r�)rr�r?r;r>r�s&  r�test_eval_round_trip�"UsabilityTest.test_eval_round_tripns����,�,�&�&��
�\�#������D��a��M�*�
�^�%������D��a��M�*�
�*�,������D��a��M�*�
�:�<������D��a��M�*r%c�D�UOOoU]2oUOUO2Q2UQ2oUOUO2Q2UQ2oUOUO2Q2UQ2oUOUO2Q2UQ2oUOUO2Q	2UQ
2oUOUO2Q2UQ2oUOUO2Q2UQ
2oUOUO2Q2UQ2oUOUO2Q2UQ2oUOUO2Q2UQ2oUOUO2Q2UQ2oUOUO2Q2UQ2oUOUO2Q2P!)r�r�r�r�r�r�r�)r�r�r�)r��r�r�r�r�r�r�r�r�)r��r�r�r�r�r�r�)r �r�r�r��%)r r�rB)r rrB)r�r?r�)r�r@r�)r rAr�r rr)r rr�)r�r�r�)r )r�r�r r�)r r�r�)rr�r?�as_tupler�s&  r�
test_as_tuple�UsabilityTest.test_as_tuple�s����,�,�&�&��
�A�J���������|�5�
�C�L���������~�7�
�%�&���������'L�N�
�J����������~�7�
�3�5���������'?�A��'�)���������}�5��[�"���������}�5�
�4�6���������'@�B��(�*���������|�5��\�#���������|�5�
�^�%���������~�6��+�-���������~�6��+�-���������~�6r%c�V�UOOoUO[UOUQ22UO[UOUQ22UO[
UOUQ22UO[
UOUQ22[
Q]2FD�o[
Q2FD�oQFD�oUQVCU1*2oUO	2oUvqxUOU[2UOU[2UOU[2UOU]2UO[OVx2]2UOUU2UU2*U2J�	J�	J�	P!)r�r�r3�snan123��z%s%dE%dr!)rMrP)rr�rxr*�as_integer_ratiorr�r��tuplerr�r?r)�gcd)	r�r�r^�coeffr�r�pqrUrVs	&        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�>�UOOoQQU2oU]2oU]2oV4*oUO[U2U2UO	U2oUO[U2U2[
O
U2oUO[U2U2UO
VS2[
OU2oUO[U2U2UO
VS2UQ2oUU2oUO[U2U2UO
Ve2UU2oUO[U2U2UO
Vu2UOUOP2UU2oUO[U2U2UO
Ve2]	UmUU2oUO[U2U2UO
Ve2UOUOP2P!)c��\sQsQsPsQsP!)�1UsabilityTest.test_subclassing.<locals>.MyDecimali�r)r�rfrgrhr�rjrr%r�	MyDecimalrT�s���Ar%rU�1.0)	rr�r�r9rrRr?r�r�)r�r�rUr5r6rrr0s&       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
��UOOoUOOoU2oUO[	U]2O22[	UOU]2222P!r�)rr�r�r?r: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
�~(�UOOoUOOoUOOoUOOoUOO
oUOOoUOOoUOOoUOOo	UOOo
UOOoUU229^tt^2o]UmQUm
Q&UmUQ2o
UQ2oUQ2oUO2UO![#U
O%PQ52Q2UO'UO(U	*2UO'UO(U
*2UO2UO+VnO$PQ5UO'UO(U*2UO-UO/PQ5P
2UO-UO1PQ5P	2UO2UO![#U
O3PQ52Q2UO'UO(U	*2UO'UO(U
*2UO2UO+VAP2O2PQ5UO'UO(U*2UO2UO![#U
O5PQ52Q2UO'UO(U	*2UO'UO(U
*2UO2UO+VAP2O4PQ5UO'UO(U*2UO2UO![#U
O7PQ52Q	2UO+VQ]2O6PQ5UO'UO(U*2UO2UO![#U
O9PQ52Q
2UO+VNO8PQ5UO'UO(U*2UO2UO![#UO;PQ52Q2UO+VAQ2O:PQ5UO'UO(U*2UO2UO![#UO=PQ52Q
2UO+VAQ2O<PQ5UO'UO(U*2UO2UO![#UO?PQ52Q2UO+VnO>PQ5UO'UO(U*2UO![#UOAPQ52Q2UO2UO![#UOCPQ52Q2UO'UO(U*2UO'UO(U	*2UO'UO(U
*2UO'UO(U*2UO'UO(U*2UO2UO+VnOBPQ5UO'UO(U*2]Um"UO![#UOGPQ52Q2]Um"UO2[#U
OIUQ2PQ52oUO!UQ2UO+VMOHUQ2PQ5UO'UO(U*2UO2[#U
OKQPQ52oUO!UQ2UO+VMOJUQ2PQ5UO'UO(U*2UO2[#U
OM]ePQ52oUO!UQ2UO+VMOL]{PQ5UO'UO(U*2UO2[#U
OO]ePQ52oUO!UQ2UO+VMON]{PQ5UO'UO(U*2UO2[#U
OQ]ePQ52oUO!UQ2UO+VMOP]{PQ5UO'UO(U*2UO2[#U
OS]ePQ52oUO!UQ2UO+VMORUQ2PQ5UO'UO(U*2UO2[#U
OU]ePQ52oUO!UQ2UO+VMOTUQ2PQ5UO'UO(U*2UO2[#U
OW]ePQ52oUO!UQ2UO+VMOVUQ2PQ5UO'UO(U*2UO2[#U
OY]ePQ52oUO!UQ2UO+VMOXUQ2PQ5UO'UO(U*2UO2[#U
O[]ePQ52oUO!UQ2UO+VNOZ]ePQ5UO'UO(U*2UO2[#U
O]]PQ52oUO!UQ2UO+VMO\]ePQ5UO'UO(U*2UO2[#U
O_]PQ52oUO!UQ2UO+VMO^QPQ5UO'UO(U*2UO2[#U
Oa]PQ52oUO!UQ2UO+VMO`QPQ5UO'UO(U*2UO2[#U
Oc]]PQ52oUO!UQ2UO+VmObUQ2]PQ5UO'UO(U*2[dUm3[#UQ2OiPPQ52oUO!UQ	2[jUm3[#UQ2OiPPQ52oUO!UQ2[#UQ2Oi[lPQ52oUO!UQ	2UO2UO+VAQ2OhPQ5UO'UO(U*2[dUm3[#UQ2OoPPQ52oUO!UQ	2[jUm3[#UQ2OoPPQ52oUO!UQ2[#UQ2Oo[lPQ52oUO!UQ	2UO2UO+VAQ2OnPQ5UO'UO(U*2[dUm3[#UQ2OqPPQ52oUO!UQ	2[jUm3[#UQ2OqPPQ52oUO!UQ2[#UQ2Oq[lPQ52oUO!UQ	2UO2UO+VAQ2OpPQ5UO'UO(U*2[lUm3[#UQ2OsUQ 2PPQ!52oUO!UQ"2[jUm3[#UQ2OsUQ 2PPQ!52oUO!UQ#2[#UQ2OsUQ 2[lPQ!52oUO!UQ"2UO2UO+VNOrUQ$2[lPQ5UO'UO(U*2PPP2UU229^tt^2o]UmQUm
Q&UmUPQ%59^tt^2oUO!UO]2UO!UOQ2UO!UOQ&2PPP2PPP2P!)%fhK�9h)%fhK-9h)%fhP!9h)'rDr��111�1e9999z1e-9999�r"z1.609487E+48z4.709530z2.045323rA�1111000z
9.999999E+999r^r�rr�
+Subnormalz0E-1005�Nan891287828�
NaN1287828i  r�r��101rL�11100z1.11E+9r��225rq�r(r"r�z1.50001z1e-3)r^r(r"z1.501z1.500z1e-10)r�i���):rr�r*r�r�r�r�r�r�r�r�r�r'rbr\r.r?r:r^rrSrxr�rgro�ln�log10�logbr]rwryrrKr��capitalsr�r|rMrGr}r�rrsrrur��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��zrDr"s&                 r�test_none_args�UsabilityTest.test_none_args	sD���,�,�&�&���,�,�&�&���|�|�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(�'��	%�
$�
$�sZ�	AIAP�M7'AP+�NAAP	�O3AP+�PAP	�PAP	�PAP(
�P!AP(
�P#AP+�P+AP<	�P4AP<	c	�P�UOOoUOU]2O]2U]2OU]222UOU]2O	]2U]2O	U]222UOU]2O]2U]2OU]222UOU]2O
]2U]2O
U]222UOUQ2OQ2UQ2OUQ222UOUQ2OQ2UQ2OUQ222UOUQ2OQ2UQ2OUQ222UOUQ2O]{2UQ2OU]{222UOUQ2O]{2UQ2OU]{222UOUQ2O]{2UQ2OU]{222UOUQ2O]{2UQ2OU]{222UOUQ2O]{2UQ2OU]{222UOUQ2O]d2UQ2OU]d222UOUQ2O!Q2UQ2O!UQ222UOU]{2O#]2U]{2O#U]222UOUQ2O%Q2UQ2O%UQ222UOUQ2O'Q	2UQ2O'UQ	222UOUQ2O)P2UQ2O)UP222UOUQ
2O+U]-2]C2UQ
2O+U]-2U]C222UOUQ
2O+]-]C2UQ
2O+U]-2U]C222UOUQ
2O+]-U]C22UQ
2O+U]-2U]C222P!)r�iu'���7r��rJz9.123r����i�)rr�r?r|rMrOrQrGr}r�rrsrrur{rrr�rmr�rnrorprts& 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%r)r�rfrgrhrir�r�r�r�r�r�rr	rrr/r4r9r<rFrPrWr[rtr{rjrkrls@rr�r��s�����4�"�H1�&9�((5�T(�L<�\>�&�(*�6�g;�RG�4�+�&+7�ZA�B-!�^2�m/�^/E�/Er%r�c��\sQsQs\sQsP!)�CUsabilityTesti'
rrrr%rr~r~'
r	r%r~c�D``�\sQsQsn\sU1QksU1QksQsUs	U9s
!)�PyUsabilityTesti*
c�:�[RU_2[O2Um[O
Q2P!�iX��superr��sys�get_int_max_str_digits�_previous_int_limit�set_int_max_str_digits�r�r�s&�rr��PyUsabilityTest.setUp-
�+���
��
��#&�#=�#=�#?�� ��"�"�4�(r%c�f:�[OUO2[RU_2P!r�r�r�r�r��tearDownr�s&�rr��PyUsabilityTest.tearDown2
�"����"�"�4�#;�#;�<�
���r%�r��r�rfrgrhrrr�r�rjrk�
__classcell__�r�rms@@rr�r�*
������G�)�
�r%r�c�n`�\sQsQsnQsQsQs\Q2sQs	Qs
QsQ	sQ
s
QsQsQ
sUsP!)�PythonAPItestsi6
c�L�UOOoUOU[O2UOU[O2UOU]2[O2UOU]2[O2P!r�)	rr��assertIsSubclass�numbers�Number�assertNotIsSubclass�Realr��assertNotIsInstancerts& r�test_abc�PythonAPItests.test_abc8
si���,�,�&�&�����g�w�~�~�6�� � ��'�,�,�7����g�a�j�'�.�.�9�� � ����W�\�\�:r%c���[[O]*2FCDOoUOOo[
OQ*oUO[
OQ$UQ2o[OVA2o[OU2oUOVF2[%Cc�[O	Q2o[O	Q2o[[
OQ$[OVq2o	[[
OQ$[OU	2o
UOU
[O2UOV�2[[
OQ$[OV�2o[[
OQ$[OU2o
UOU
[O2UOV�2[O	Q2O2o[O	Q2O2o[[
OQ$[OVq2o	[[
OQ$[OU	2o
UOU
[O2UOV�2[[
OQ$[OV�2o[[
OQ$[OU2o
UOU
[O2UOV�2U[
OQ$CJR	P!)r rz-3.141590000z-3.123e81723)r��pickle�HIGHEST_PROTOCOLrr�r��modules�dumps�loadsr?r�rr�rE�DecimalTuple)r��protor��savedecimalrrUrMrr��sxr��sys&           r�test_pickle�PythonAPItests.test_pickle@
sI���6�2�2�Q�6�7�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
�f�UOOo[Q]�2FD�oQUQ**oUO[	UU22[	[U222UU2oUO
[2oUOU[	U22U2J�	UO[[UQ22UO[[UQ22UO[[UQ22UO[[UQ22P!)��%0.2f�Y@r3r7r�r�����)rr�r�r?rr�rqr�rxrr*�r�r�rrrr�s&     r�test_int�PythonAPItests.test_ints
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	��UOOo[QQ2FD$oUO[	UU22U2J&	P!)r��r�)rr�r�r�r�r�r�rs&  r�test_small_ints�PythonAPItests.test_small_ints�
s7���,�,�&�&���r�3��A��M�M�#�g�a�j�/�1�-� r%c
�t�UOOo[Q]�2FD�oQUQ**oUO[	UU22[	[U222UU2oUO
[2oUOU[OU22U2J�	P!)r�r�r�r�)
rr�r�r?rr�rqr�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
��UOOoQQU2oUOV!2UOQ2oUO	[U2U2UO	[
U2Q2UO	UOQ2QoUO	UOU2UU22UOUO[Q22O22UOUO[Q22O22UOUO[Q22O22UO	[
UO[Q222[
UQ	222UO	[
UO[Q222[
UQ
222UO	[
UO[Q222[
UQ222UO[UOQ2[]�2FDko[O Q
2[O2Q*Q*
*oUO	U[UOU222Jm	P!)c�(`�\sQsQsnQsQsUsP!)�1PythonAPItests.test_from_float.<locals>.MyDecimali�
c��QUmP!)r��r)r�r�s&&rr#�:PythonAPItests.test_from_float.<locals>.MyDecimal.__init__�
s	����r%r�r%rls@rrUr��
s����
�
r%rUr�r�r�ls\�&�5$3�|	r�r�r�r�r�r��abcr�r�r�)rr�r�r�r?r9r:rrr�rircrxr1r�r-r�)r�r�rUr��bigintrKrs&      r�test_from_float�PythonAPItests.test_from_float�
s���,�,�&�&��	��	�	
���i�1�� � ��%������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��UOOoUOOoUOOoU][Q5oUOUO
[O2UQ22U][Q5oUOUO
[O2UQ22U]U,Q5oUOUUO[O2UO[UO
Q	22Q2UO[UO
Q22Q2UO[UO
]
22Q2P!)
r�)r'r(z3.1415r�)r'r)z
Decimal('-0')r�zDecimal('1')z
Decimal('10')��)rr�r*r�r�r?�create_decimal_from_floatr)�pir�rxr>)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�T�UOOoUOOoUOOoUQQQ5oUO	UQ2OUQ22UQ22UO	UQ2OUQ2[Q5UQ22UOUUQ2O
UQ2UQ	5U2oUQ
2oUOVAQ2[Q5oUO	VaQ
22P!)i��r�z7.335r�z7.34�r(z7.33�10e99999�1e100000r`z0.871831e800�1e797)r"r^r(z	8.71E+799iay��)rr�r*r�r?rrr�rx)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�F�UOOoUQ2oUOUOU2UOUO]2UOUO2U2UQ2oUO[
U2[
[]222UO[[UQ]d2UO[[UQ]d2UO[[UQ]d2UO[[UQ]d2P!)z9.8182731e181273r��real�imag�	conjugate�__complex__)rr�r?r�r�r��complexr�rxr2rar�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
�x�UOOoUOOoUOOoUOOoUOO
oU2o]Um]UmPUmU29^tt^2oUO2UOU]	U2]	2UOU]	UQ5]	2UOUU]	Q5]	2UOUUQ5]2UO2UOVAQUQ5UOUOU*2UOUOU*2UO2UOU]2OUQ5]2UOVQ]2OUQ5UOUOU*2UOUOU*2UO2UOU]2O!UQ5UQ22UOVAP2O UQ5UOUOU*2UOUOU*2UOU]2O#UQ5UQ22UOUP2O%UQ5Q,2UOUP2O'UQ5UQ22UOUQ2O)UQ5UQ22UOUQ	2O+UQ5Q
2UOUQ2O-UQ5Q-2UOUQ2O/UQ5]{2UOUQ
2O1UQ5UQ22UOUQ
2O3U]Q5P2UO2UOUUQ2O4UQ2UQ5UOUOU*2UOUOU*2UOUQ2O7UQ2UQ5UQ22UOUQ2O7UQ2UQ5UQ22UOUQ2O9UQ2UQ5UQ22UOUQ2O;UQ2UQ5UQ22UOUQ2O=UQ2UQ5UQ22UOUQ2O?UQ2UQ5UQ22UO2UOUUQ2O@UQ2UQ5UOUOU*2UOUOU*2UOUQ2OCUQ2UQ5UQ22UOUQ2OEUQ 2U]Q!5UQ"22UO[FU]2OHUQ5UO[FU]2OJUQ5UO[FU]2OLUQ5UO[FU]2ONUQ5UO[FU]2OPUQ5UO[FU]2ORUQ5UO[FU]2OTUQ5UO[FU]2OVUQ5UOUQ2OYUQ52UOUQ2O[UQ52UO[FU]2O\UQ5UO[FU]2O^UQ5UO[FU]2O`UQ5UOUQ.2OcUQ5]2UOU]2OeUQ5]2UOUQ2OgUQ5Q#2UOUQ$2OiUQ5Q$2UOUQ%2OkUQ&2UQ5]2UOUQ%2OmUQ&2UQ5]2UOUQ'2OoUQ&2UQ5]2UOUQ(2Oq]UQ5]2UOUQ(2Oq]UQ5]2UO2UOUUQ(2Or]UQ5UOUOU*2UOUOU*2UOUQ(2OuPUQ5]2UO[FUOvQ)UQ5UO[FU]2OxUQ5UOU]2O{2]2UO[FUQ2O|UQ5UO[FUQ2O~UQ5UO[FU]2OzQ*Q5UO[FU]2OzQ*Q+5PPP2P!)%fhP!9h)/r r`)r"rr�z0.7r�z-0.9z9.73z1E+1�9999�'z-2000r�z0.0625�0.2)r"r-rrr��0.01z0.0101ruz-0.3z0.02z-0.03r�r�r��1e10�9.99rqr"�9.9z0.9)�thirdr"r-z7E+1rbz0.21�11rL�01�23g�������?r)r�r�i0���i����)@rr�r*r�r�r�r'rbr\r.r?rxrrSr}r^rirjrwryrrqr�r�r�r|rMrrsrrur{rrr�rpr1r_rarcrerirmrkrqrgro�adjustedr��radixrkr]rKr�rGr}r�rmrnror�rE�	canonicalrUrW)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�np(�(p9	�1p9	c��UOoUOoUOoUOoUOoUO
oUOoUOoUOo	UOo
UOoUOU[2UOV22UOVB2UOU[2UOVR2UOU[2UOVj2UOVi2UOVb2UOVy2UOVz2UOVx2UOVr2UOV�2UOV�2UOV�2UOV�2UOUOU2UOUO U2UOUO"U2UOUO"[2UOUO$U2P!r)rr�r��FloatOperationr�r�r�r�r�r�r�r��ArithmeticErrorr1�ZeroDivisionError�ConversionSyntax�DivisionImpossible�DivisionUndefined�InvalidContext)r�rr�r�r�r�r�r�r�r�r�r�s&           r�test_exception_hierarchy�'PythonAPItests.test_exception_hierarchyks����,�,��"�3�3��"�3�3�� �/�/�� �/�/���#�#���%�%�	��%�%�	��/�/���/�/���/�/�����.��@����.�A����n�?����n�i�8����n�?����n�.?�@����h�0����h�0����h�9����i�1����i�1����i�3����i�:����i�:����g�8����g�8����g�8����g�6�6�8H�I����g�8�8�:J�K����g�7�7�9I�J����g�7�7�9J�K����g�4�4�6F�Gr%r)r�rfrgrhr�r�r�rr�r�r�r�r�r�r�r�rjrkrls@rr�r�6
sY����;�11�f?�"�.��.�
8�@�@*�82�0J� nB�`&H�&Hr%r�c��\sQsQs\sQsP!)�CPythonAPItestsi�rrrr%rr�r��r	r%r�c��\sQsQs\sQsP!)�PyPythonAPItestsi�rr
rr%rr�r��rr%r�c�`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
QsQ
sQsQsQsQsQsQsQsQsQsQsQsQsQsQsQsQsQs Qs!Q s"Q!s#Q"s$Q#s%Q$s&Q%s'Q&s(Q's)Q(s*Q)s+Q*s,Q+s-Q,s.Q-s/Q.s0Q/s1Q0s2Q1s3Q2s4Q3s5Q4s6Q5s7Q6s8Q7s9Q8s:Q9s;Q:s<Q;s=Q<s>Q=s?Q>s@Q?sAQ@sBUsCP!)A�ContextAPItestsi�c��UOOoUOOoUOOoUOOoU2oUPPPPPPPPQ5oVV1FD�oUOUO]2UOUO[2UOUOQ2UOUOQ2UOUO]2UOUO]2[VQ,2[VQV#U,2J�	P!)N)r'r(rbr\rlrErSr)�?BrSr)��)rr*r�r�r�r?r'r(r+rbr\rlrEr$)r�r*r�r�r�r�r�r�s&       rrt�ContextAPItests.test_none_args�s	���,�,�&�&���<�<�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�&	�[[O]*2FCDioUOOo[
OQ*oUO[
OQ$U2o[O[OVA22oUOUOUO2UOUOUO2UOUOUO2UOUOUO2UOUOUO2UOUOUO2UOUO UO 2UOUO"UO"2[$%c[$[&1[&[$1,L[&[&1,oSFCDnvqx[)[*2FCDSvq�[)[,U*2FCD1vq�[)[,U*2FCDvq�[.O0]]d2o
[.O0Q]2o[.O0]]d2o[.O0]2o[.O0]2oU[
OQ$UO	V�U[*U	*UU[,U*PU[,U*PUQ5o[OVA2oU[
OQ$[OU2oUO3UUO2UOUOU
2UOUOU2UOUOU2UOUO[*U	*2UOUOU2UOUOU2[5UUQ[,U*PU2[5UUQ[,U*PU2CJ	CJ4	CJV	CJq	U[
OQ$CJl	P!)r r)r'r\rbr(rlrErSr)rSr)rz)r�r�r�rr*r�r�r�r�r?r'r\rbr(rlrErSr)r�rr4�
RoundingModesr8r-�	randranger�r$)r�r�r*r�r�rM�combinations�dumper�loader�rir��fi�tir'r�r��capsrErrs&                   rr��ContextAPItests.test_pickle�sS���6�2�2�Q�6�7�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�5�E�B�!*�>�&�+A�!B�!B���%.�~�f�/E�%F�%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��UOOoUOU]
2QQU]
2Q-,2UOU]
2QQQ-,2P!)r�r�r�)r r)rr��assertIn�assertNotInrts& 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��UOOoUOOoU2oUO2oUO	[U2[U22UO	[UO2[UO22UO	[UO2[UO22[UOO22o[UOO22oUOVV2UOUOUO2P!r)rr�r*rRr�rBrSr)r��keysr?)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�z�UOOoU2oUO[[UQ2P!)�_clamp)rr*rxr2r�r�r*r�s&  r�test__clamp�ContextAPItests.test__clamps.���,�,�&�&���I�����.�'�1�h�?r%c� �UOOoUOOoU2oUOUP22oUO	UOP2U2UO[UOQ2P!�r r�)rr�r*rZr?rxr1�r�r�r*r�rs&    r�test_abs�ContextAPItests.test_abs�g���,�,�&�&���,�,�&�&���I��
�E�E�'�"�+���������r��A�&����)�Q�U�U�D�1r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!�r r�)rr�r*r�r?rxr1r!s&    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��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!r&)rr�r*r|r?rxr1r!s&    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��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!r&)rr�r*rMr?rxr1r!s&    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��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!r&)rr�r*rOr?rxr1r!s&    r�test_compare_total�"ContextAPItests.test_compare_total9s����,�,�&�&���,�,�&�&���I��
�O�O�G�A�J���
�3���������A�.��2����������Q�7��;��������G�A�J�7��;����)�Q�_�_�c�1�=����)�Q�_�_�a��=r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!r&)rr�r*rQr?rxr1r!s&    r�test_compare_total_mag�&ContextAPItests.test_compare_total_magE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� �UOOoUOOoU2oUOUP22oUO	UOP2U2UO[UOQ2P!r )rr�r*rUr?rxr1r!s&    r�
test_copy_abs�ContextAPItests.test_copy_absQsg���,�,�&�&���,�,�&�&���I��
�J�J�w�r�{�#��������B���+����)�Q�Z�Z��6r%c� �UOOoUOOoU2oUOUP22oUO	UOP2U2UO[UOQ2P!r )rr�r*rSr?rxr1r!s&    r�test_copy_decimal�!ContextAPItests.test_copy_decimalZ�h���,�,�&�&���,�,�&�&���I��
�N�N�7�2�;�'���������+�Q�/����)�Q�^�^�T�:r%c� �UOOoUOOoU2oUOUP22oUO	UOP2U2UO[UOQ2P!r )rr�r*rWr?rxr1r!s&    r�test_copy_negate� ContextAPItests.test_copy_negatec�h���,�,�&�&���,�,�&�&���I��
�M�M�'�"�+�&��������r�*�A�.����)�Q�]�]�D�9r%c��UOOoUOOoU2oUOU]2UQ22oUO	UO]Q2U2UO	UOU]2Q2U2UO	UO]UQ22U2UO[UOQQ2UO[UO]Q2P!)r r�ror�)rr�r*rYr?rxr1r!s&    rrp�ContextAPItests.test_copy_signl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��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!�r r�rA)rr�r*r{r?rxr1r!s&    r�test_divide�ContextAPItests.test_dividex�����,�,�&�&���,�,�&�&���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��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*r[r?rxr1r!s&    r�test_divide_int�ContextAPItests.test_divide_int������,�,�&�&���,�,�&�&���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��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*r`r?rxr1r!s&    r�test_divmod�ContextAPItests.test_divmod�rIr%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!�r�rL)rr�r*r^r?rxr1r!s&    r�test_exp�ContextAPItests.test_exp�r$r%c	��UOOoUOOoU2oUOU]2U]2U]22oUO	UO]]]2U2UO	UOU]2]]2U2UO	UO]U]2]2U2UO	UO]]U]22U2UO	UOU]2U]2]2U2UO[UOQ]]2UO[UO]Q]2UO[UO]]Q2UO[UOUQ2U]2Q2UO[UOU]2UQ2Q2UO[UQ2OU]2Q2UO[U]2OUQ2Q2P!)rrAr��4r�z
not a decimalr7gZd;�O��?)rr�r*rpr?rxr1r!s&    r�test_fma�ContextAPItests.test_fma�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� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*rar?rxr1r!s&    r�test_is_finite�ContextAPItests.test_is_finite��g���,�,�&�&���,�,�&�&���I��
�K�K����$��������R��!�,����)�Q�[�[�$�7r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*rcr?rxr1r!s&    r�test_is_infinite� ContextAPItests.test_is_infinite�rBr%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*rer?rxr1r!s&    r�test_is_nan�ContextAPItests.test_is_nan�sg���,�,�&�&���,�,�&�&���I��
�H�H�W�R�[�!��������"��q�)����)�Q�X�X�t�4r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*rgr?rxr1r!s&    r�test_is_normal�ContextAPItests.test_is_normal�r\r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*rir?rxr1r!s&    r�test_is_qnan�ContextAPItests.test_is_qnan��g���,�,�&�&���,�,�&�&���I��
�I�I�g�b�k�"��������2���*����)�Q�Y�Y��5r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*rkr?rxr1r!s&    r�test_is_signed�ContextAPItests.test_is_signed�r\r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*rmr?rxr1r!s&    r�test_is_snan�ContextAPItests.test_is_snan�rir%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*ror?rxr1r!s&    r�test_is_subnormal�!ContextAPItests.test_is_subnormal�r>r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*rqr?rxr1r!s&    r�test_is_zero�ContextAPItests.test_is_zero
rir%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*rir?rxr1r!s&    r�test_ln�ContextAPItests.test_ln
sg���,�,�&�&���,�,�&�&���I��
�D�D������������b��1�%����)�Q�T�T�4�0r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*rjr?rxr1r!s&    r�
test_log10�ContextAPItests.test_log10
�g���,�,�&�&���,�,�&�&���I��
�G�G�G�B�K� ����������a�(����)�Q�W�W�d�3r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*rkr?rxr1r!s&    r�	test_logb�ContextAPItests.test_logb"
�g���,�,�&�&���,�,�&�&���I��
�F�F�7�2�;�����������Q�'����)�Q�V�V�T�2r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!r&)rr�r*rGr?rxr1r!s&    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� �UOOoUOOoU2oUOUQ22oUO	UOQ2U2UO[UOQ2P!)rJr�)rr�r*r]r?rxr1r!s&    r�test_logical_invert�#ContextAPItests.test_logical_invert7
sn���,�,�&�&���,�,�&�&���I��
���W�T�]�+������)�)�$�/��3����)�Q�%5�%5�v�>r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!r&)rr�r*r}r?rxr1r!s&    r�test_logical_or�ContextAPItests.test_logical_or@
rMr%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!r&)rr�r*r�r?rxr1r!s&    r�test_logical_xor� ContextAPItests.test_logical_xorL
r�r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*rr?rxr1r!s&    r�test_max�ContextAPItests.test_maxX
r)r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*rsr?rxr1r!s&    r�test_max_mag�ContextAPItests.test_max_magd
r-r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*rr?rxr1r!s&    r�test_min�ContextAPItests.test_minp
r)r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*rur?rxr1r!s&    r�test_min_mag�ContextAPItests.test_min_mag|
r-r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*�minusr?rxr1r!s&    r�
test_minus�ContextAPItests.test_minus�
r|r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*r�r?rxr1r!s&    r�
test_multiply�ContextAPItests.test_multiply�
�����,�,�&�&���,�,�&�&���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� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*rwr?rxr1r!s&    r�test_next_minus�ContextAPItests.test_next_minus�
sh���,�,�&�&���,�,�&�&���I��
�L�L����%��������b�)�1�-����)�Q�\�\�4�8r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*ryr?rxr1r!s&    r�test_next_plus�ContextAPItests.test_next_plus�
r\r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*r{r?rxr1r!s&    r�test_next_toward� ContextAPItests.test_next_toward�
r�r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*rr?rxr1r!s&    r�test_normalize�ContextAPItests.test_normalize�
r\r%c��UOOoUOOoU2oUOUO	]{2UO	U]{222UOUO	]2UO	U]222UOUO	Q2UO	UQ222P!)rr�)rr�r*r?rK)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� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*�plusr?rxr1r!s&    r�	test_plus�ContextAPItests.test_plus�
r�r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO	UOU]2U]22U2UO[UOQ]2UO[UO]Q2UO	UO]]]Q5]2P!)r r�rV)�modulor�r�)rr�r*�powerr?rxr1r!s&    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��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*rrr?rxr1r!s&    rr��ContextAPItests.test_quantize�
r�r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*�	remainderr?rxr1r!s&    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��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*r�r?rxr1r!s&    r�test_remainder_near�#ContextAPItests.test_remainder_near�
r1r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*rmr?rxr1r!s&    r�test_rotate�ContextAPItests.test_rotaterIr%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*r�r?rxr1r!s&    r�	test_sqrt�ContextAPItests.test_sqrtr�r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*r�r?rxr1r!s&    r�test_same_quantum�!ContextAPItests.test_same_quantums����,�,�&�&���,�,�&�&���I��
�N�N�7�1�:�w�q�z�2���������1�-�q�1���������
�A�6��:��������7�1�:�6��:����)�Q�^�^�S�!�<����)�Q�^�^�Q��<r%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*rnr?rxr1r!s&    r�test_scaleb�ContextAPItests.test_scaleb)rIr%c��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*ror?rxr1r!s&    r�
test_shift�ContextAPItests.test_shift5s����,�,�&�&���,�,�&�&���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��UOOoUOOoU2oUOU]2U]22oUO	UO]]2U2UO	UOU]2]2U2UO	UO]U]22U2UO[UOQ]2UO[UO]Q2P!rF)rr�r*�subtractr?rxr1r!s&    r�
test_subtract�ContextAPItests.test_subtractAr�r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*r�r?rxr1r!s&    r�test_to_eng_string�"ContextAPItests.test_to_eng_stringM�h���,�,�&�&���,�,�&�&���I��
�O�O�G�B�K�(���������,�a�0����)�Q�_�_�d�;r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*r�r?rxr1r!s&    r�test_to_sci_string�"ContextAPItests.test_to_sci_stringVr�r%c� �UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2P!rR)rr�r*r�r?rxr1r!s&    r�test_to_integral_exact�&ContextAPItests.test_to_integral_exact_sn���,�,�&�&���,�,�&�&���I��
������,������,�,�R�0�!�4����)�Q�%8�%8�$�?r%c�d�UOOoUOOoU2oUOU]
22oUO	UO]
2U2UO[UOQ2UO[UO]
Q2P!)r�rLr)rr�r*r�r?rxr1r!s&    r�test_to_integral_value�&ContextAPItests.test_to_integral_valuehs����,�,�&�&���,�,�&�&���I��
������,������,�,�R�0�!�4����)�Q�%8�%8�$�?����)�Q�%8�%8�"�c�Br%r)Dr�rfrgrhrtr�rrrr"r'r+r/r3r6r9r<r@rprGrKrOrSrWrZr^rardrgrkrnrqrtrwrzr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rjrkrls@rr�r��sG����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�<�<�@�C�Cr%r�c��\sQsQs\sQsP!)�CContextAPItestsirrrrr%rr�r�rr	r%r�c��\sQsQs\sQsP!)�PyContextAPItestsiurr
rr%rr�r�urr%r�c�R`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sUs
P!)�ContextWithStatementixc�P�UOOoUOOoU2oU29^tt^2oU2oPPP2U2oUOV6Q2UO	UWQ2UOUWQ2P!)%fhKQ9h)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_localcontext|s~���\�\�,�,�
��|�|�0�0���<��
�^�^�y� �l�G���L�	��
�
�h�+N�O�����7�,F�G��
�
�g�y�*L�M��^�s�B�B%	�B%	c��UOOoUOOoUOOoUOOoU2oU]*Q5oUU29^tt^2oU2oPPP2U2oUO	VHQ2UOWOUOQ2UOVWQ2UO	UWQ2P!)%fhKw9h)r��r'r�zdid not set correct contextr�r�)rr*r�r�r�r?r'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�:C1�1D	�:D	c	���UOO]
[Q
]]]Q59^tt^2oUOUO]
2UOUO
UOO2UOUOQ
2UOUO]2UOUO]2UOUO]2PPP2UO[UOO]
Q5UO[UOO]Q5UO[UOOPQ5UO[UOO]Q5UO[UOO]Q5UO[UOOPQ5UO[UOO]Q5UO[UOOPQ5UO[UOOPQ	5UO[UOOPQ5UO[UOOPQ5P!)%fhCK�9h)r�)r'r(r\rbrlrE)rB�r\�rb�rl�rEr��rS�r)i��)
rr�r�r?r'r(r\rbrlrErxr1rr�s& r�test_localcontext_kwargs�-ContextWithStatement.test_localcontext_kwargs�s ��
�\�\�
&�
&��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=K�K+	�#K+	c�6�UOO2oUOoUOO]
Q59^tt^2oUO	UO]
2UO	UOU2PPP2UOO]Q59^tt^2oUO	UO]2UO	UOU2PPP2P!)%fhKw9h)%fhP!9h)r�r�)rr�r'r�r?)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$�9C4�19D�4D	�=D	�D	�D	c�l�UOOoUOOoUOOoUOOoUOO
oUOOoU2oUO2UQQ5oU29^tt^2o	UOU	OUO2UOU	OUO2P	U	OU$QU	mUOUOQ2UOVYOQ2UOU	OU*2UU29^tt^2o
UOU
OUO2UOU
OUO2UOVjO UQ2]2UO#U
OU*2UOU
OU*2=
PPP2UO#U	OU*2=	PPP2UOUOQ2UO#UOU*2UO#UOU*2UO#UOU*2UO#UOU*2P!)%fhK�9h)%fhK�9h)�r�z0e-999z3.4e200���)rr�r*r�r�r�r�r.r?rSr)r\r�rxr�rr�r})r�r�r*r�r�r�r�r�r�r�r�s&          r�test_nested_with_statements�0ContextWithStatement.test_nested_with_statements�s6���,�,�&�&���,�,�&�&���\�\�,�,�
��|�|�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�'�&���^�s2�5C
L#�B5L	�7+L#�L 
�L 
�L#�#L3	�,L3	c
��UOOoU29^tt^2o=U29^tt^2o=U29^tt^2o=U29^tt^2o=PPP2PPP2PPP2PPP2P!)%fhK*9h)%fhK59h)%fhK@9h)%fhP!9hr�rr��r�r�r�r�r��c4s&     r�test_with_statements_gc1�-ContextWithStatement.test_with_statements_gc1�sy���|�|�0�0��
�^�^�r�����2��!�^�^�r��%���2��(�$� ��^�(���$�^�� ����^�^�sj�B7�B$	�	B
�A>�B
�$B$	�,B7�>B�B�	B
�B!�B!�B$	�$B4
�-B4
�/B7�7C	�C	c
��UOOoU29^tt^2oUU29^tt^2o=UU29^tt^2o=UU29^tt^2o==PPP2PPP2PPP2PPP2P!)%fhK*9h)%fhK59h)%fhK@9h)%fhP!9hrr
rs&     r�test_with_statements_gc2�-ContextWithStatement.test_with_statements_gc2�s����|�|�0�0��
�^�^�r��b�!�!�R��!�"�%�%���%�b�)�)�R���*�&�"��^�
*�)��&�%��"�!���^�^�sj�B:�B'	�
B
�B�B
�'B'	�/B:�B�
B�B
�B$�B$�B'	�'B7
�0B7
�2B:�:C	�C	c
��UOOoUOOoUOOoUOOoU29^tt^2o=U]Q5oUU2UU29^tt^2o=UOUO]2=U]Q5oUU2=UOU2O]2U]Q5o	UU	2UOU2O]2UU	29^tt^2o
=	UOU
O]2=
U]Q5oUU2=UOU2O]2U29^tt^2oUOUO]2=PPP2PPP2PPP2PPP2P!)%fhK*9h)%fhK59h)%fhK@9h)%fhP!9h)r r�)rr*r�r�r/r?r')
r�r*r�r�r/r��n1r��n2�n3r��n4rs
&            r�test_with_statements_gc3�-ContextWithStatement.test_with_statements_gc3�s����,�,�&�&���|�|�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��(�&�"�	�^�.(���&�%��"�!��	�^�^�sn�)#G:�BG'	� A!G
�G�G
�'G'	�/G:�G�
G�G
�G$�G$�G'	�'G7
�0G7
�2G:�:H	�H	r)r�rfrgrhr�r�rrr
rrrrjrkrls@rr�r�xs6����N�N�"I�82�!2�F
�
��r%r�c��\sQsQs\sQsP!)�CContextWithStatementirrrr%rrrr	r%rc��\sQsQs\sQsP!)�PyContextWithStatementirr
rr%rrrrr%rc�J`�\sQsQsnQsQs\Q2sQsQs	Qs
UsP!)�ContextFlagsi"c�v`�ROOoROOoROOoROOoROO
oROOoROOoU1QkoU]	QQ[,,Q5o	U	OUQ2,1U	OU]2,1U	OUQ2UQ2,1U	OUQ2UQ2,1U	OUQ2UQ2,1,o
U,U,U,U,U,V4VVU,,oS
FCDevq�U	O2UU
oU	OO!2TTt,tFDvooU%fJUMJ	oooSFCDoU	O2SFDoUU	U2J	UU
o[#U2oSFDoUU7fJUO%U2J	UO'[(Q5U	OO!2TTt,tFDvooU%fJUMJ	oooUO'[(Q5RO+UUQQU8Q	U8Q
0*2RO+UUQQU8Q	U80*2CJ
	CJh	P!ttoohttooh)
c�:�RO[6Xc-P	UOU$UOU*%cUgP!UO	U2P!�T)rr�rSr)�_raise_error)r"�flagr�s&&�r�raise_error�7ContextFlags.test_flags_irrelevant.<locals>.raise_error/sF����|�|�q� �&*��
�
�d�#��=�=��&�&��J�'��$�$�T�*r%r�)r'r\rbr(r)rSz100E-425000010r�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: r�)rr�r*r�r�r�r�r�r+rIr�r�r�r�r.rSrr�r7r=rBr?)r�r�r*r�r�r�r�r�r'r"�
operations�flagsets�fnrrD�kr�rS�extra_flagsr&�new_ans�expected_flags�	new_flagssf                      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�Q�#8�E�>�'���#�#�%�'�D����.�(��d�)��"&�e���'�D��>�1�&�-�-�d�3�(��#�#��#�+�+2�-�-�*=�*=�*?�E�*?�3�1�Q�1�Q�Q�*?�	�E����2��&�� � ��g�!`�;>��!H�"I�J�� � ��N�"]�;I�9�"U�#V�W�+ (�
#��?��"Fs�<J/
�J/
�+J5�?J5c��UOOoUOOoUOOoU2oUO	UO
UO2UO	UOUO
2UOUmUOUO
UO2UOUOUO
2P	UO
U$UO
UmUOUO
UO2UOUOUO
2-oUOUO
2UOVTO
2UOUO
U2UO[U2UO
2UOUO
[U22P	VR$UO	VTO
2UO	UO
U2UO	[U2UO
2UO	UO
[U22UP
-oUO	VTO
2UO	UO
U2UO	[U2UO
2UO	UO
[U22Q,oUO	VTO
2UO	UO
U2P!)Tr�)
rr*r�r�r�rSr)r?�update�
frozendict)r�r*r�r�r�rs&     r�test_flag_comparisons�"ContextFlags.test_flag_comparisonsfsB���,�,�&�&���,�,�&�&���,�,�&�&���I��	
���A�G�G�Q�W�W�-����A�G�G�Q�W�W�-��'�'���������!�'�'�*�������!�'�'�*��������'�'���������!�'�'�*�������!�'�'�*���	�����������G�G�$�������!�$�����A�����0�������*�Q�-�0���
����A�w�w�'����A�G�G�Q�'����J�q�M�1�7�7�3����A�G�G�Z��]�3��U�O�����A�w�w�'����A�G�G�Q�'����J�q�M�1�7�7�3����A�G�G�Z��]�3�
�G�����A�w�w�'����A�G�G�Q�'r%c��UOOoUOOoUOOoU29^tt^2oUO	UO
U*2UO
2UOUQ2Q2UOUOU*2UO
2UOUOQ2Q2UOUOU*2UO
2UOQ2oUO	UOU*2UOUQ2UOUOU*2UO
2UOQ2oUO	UOU*2UOUQ2UOUOU*2P	UO
U$UO
2UOV!Q2UOUOU*2UO
2UOV$OQ2UOUOU*2UO
2UOQ2oUO	UOU*2UO
2UOQ2oUO	UOU*2PPP2P!)%fhP!9h)g@)rr�r�r�r}r)r.r?rrSr�r�r�rx)r�r�r�r�r�rs&     r�test_float_operation�!ContextFlags.test_float_operation�sK���,�,�&�&�����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�KL2�2M	�;M	c��````	`
```
````````�ROOnROOoROOnROOoQUU1Qkkn	RQ2nRQ2n
QnQnRQ2nRQ2nQnQnRQ	2nRQ
2n[Q2n
[Q2nQUU	U
UUU
UUUUUUUU1Q
kkoQUUU1QkkoU2oUU29^tt^2oRO
UOR*2UUPQ5UUPQ5P	UOR$UURQ5UURQ5PPP2P!)%fhP!9h)Nc��:�UO2[V2oUR6XcROVEU2LROUU2P	2RO	UO
R*2P!r$)r.rrxr�rrS)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�rur�r�r�r�r�r�c	�:�QFDoRR
RV U2J	QFDoRRRV U2J	RR
RQUP2RRRQUP2RRRQUP2RRRQUP2RRRQUP2RR	R
QUP2RRRQUP2RR
RQUP2RRQ2QQUP2RR	RQUP2RRR
QUP2RRQ2[Q2QUP2P!)	r4rArDr�r�r�r�)r4r;)r8r>)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�:�UO2[QRQ2,2oRO[U2]2RO	UO
R*2UO2U%c!RO
U[QRQ2,2L[QRQ2,2oRO	UO
R*2UO2QRQ2Q17oRO	UO
R*2UO2QRQ2QQQ-7oRO	UO
R*2P!)r�z100.0r�r�g$@r�r�)r.r�r?�lenrrSrx�sorted)r�r=rr�r�r�r�s&&  ���r�test_containers�;ContextFlags.test_float_comparison.<locals>.test_containerss����
�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=rr�)rr�r*r�r�r�r}r))r�r*r�rMrRr�r�r�r�r>rArBrCrDrErFrGrHrIrJrKrLsf      @@@@@@@@@@@@@@@r�test_float_comparison�"ContextFlags.test_float_comparison�s8�����,�,�&�&���,�,�&�&�����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�7AE�E,	�$E,	c�2�UOOoUOOoUOOoUOOoU2oUOUOU*2UOUOU*2UO2P	UOU$P	UOU$UOUOU*2UOUOU*2P!r$)
rr�r*r�r�r}rSr)�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%r)r�rfrgrhr1r6rr9rTrXrjrkrls@rr!r!"s9����@W�D*(�X�36��36�jY6�v0�0r%r!c�,`�\sQsQsn\sQsQsUsP!)�
CContextFlagsi3c���UOOoU]Q5oUOo=UO[Q29^tt^2[U2PPP2P!)%fhP!9h)rDr��invalid signal dict)rr*rS�assertRaisesRegexrr>)r�r*r��mappings&   r�test_signaldict_repr�"CContextFlags.test_signaldict_repr7sQ���,�,�&�&���1�o���)�)���
�
#�
#�J�0E�
F�
F���M�G�
F�
F�
F�s�A"�"A3	�+A3	r)	r�rfrgrhr�rr`rjrkrls@rr[r[3s�����G��r%r[c��\sQsQs\sQsP!)�PyContextFlagsi?rr
rr%rrcrc?rr%rcc�2`�\sQsQsnQsQsQsQsUsP!)�SpecialContextsiBzTest the context templates.c
��UOOoUOOoUOOoUOOoUOO
oUOOoUOOoUOOoUOOo	[VQVVVxU	,2U2O2o
UOoUOoPo
Q9UmUmV1FD?oUU2U2oUOV�2UOUOQ2JA	V�mV�mUU
2U
%cU
gP![coSO o
Po=K<Po=hh9hX�mX�mSS
2S
%cS
gh9h)r)�)r�BasicContext�ExtendedContextr�r/r�r�r�r�r�r$rRr'r�r?�	Exceptionr�)r�rhrir�r/r�r�r�r�r��savecontext�basic_context_prec�extended_context_prec�ex�templater�rMs&                r�test_context_templates�&SpecialContexts.test_context_templatesEs����|�|�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� ��{�#�����s7�AE=�=	F�F�F�F!�F�F!�!G�>Gc���UOOoUOOoUOOoUOOoUOO
oUOOoUOOoUOOoUOUO]	2UOUO]	2[VQVgU,2U2O2o	UOo
PoU2oUOo
QUm
U2oUOUOU
2UU2U2oUOV�2UOUOQ2V�m
UU	2U%cUgP![coSOoPo=K6Po=hh9hX�m
SS	2S%cSgh9h)r�r)�)rr�rhrir�r/r�r�r�r?r'r$rRr�rjr�)r�r�rhrir�r/r�r�r�rk�default_context_precrnr��saveprecrMs&              r�test_default_context�$SpecialContexts.test_default_contextis������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���{�#�����s7�A9F0�0	G�:G�;G�G�G�G�G.�+G.r)	r�rfrgrhrirprvrjrkrls@rrereBs����%�"�H'�'r%rec��\sQsQs\sQsP!)�CSpecialContextsi�rrrr%rryry�r	r%ryc��\sQsQs\sQsP!)�PySpecialContextsi�rr
rr%rr{r{�rr%r{c�(`�\sQsQsnQsQsUsP!)�ContextInputValidationi�c
��UOOoUOOoUO2oQFDbo[	V4Q2UO[
V42Q2UO[[V4P2UO[[V4Q2Jd	[	UQQ2UO[
UQ2Q2UO[[UQ]2UO[[UQQ2UO[[UQP2UO[[UQ]	2UO[[UQQ2UO[[UQQ2QFDYoUO[[V4P2UO[[V4]2UO[[V4,QN2J[	UO[[UQ]d2UO[[UQ,2UO[[UQ-2UO[[UQQ	]-2QFD$oUO[UOU2J&	UO[[U]	2UO[[U]	2UO[UQQ
5UO[UQQ
5UO[U]Q5UO[UPQ5UO[UQ
,Q5UO[UQ,Q5UO[UQQ5UO[UQQ5P!)r'rr�r\r(r�r�rSr)r�r�r�r�rr��Qr��r'rbr�r rr��rlrE)r'rbr\r(rlrErSr)�r�r )r r�)
rr*r�rRrar?rrxrr1r2�KeyError�__delattr__)r�r*r�r�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%r)r�rfrgrhr�rjrkrls@rr}r}�s����:;�:;r%r}c��\sQsQs\sQsP!)�CContextInputValidationi�rrrr%rr�r��r	r%r�c��\sQsQs\sQsP!)�PyContextInputValidationi�rr
rr%rr�r��rr%r�c�(`�\sQsQsnQsQsUsP!)�ContextSubclassingi�c	�"
``�UOnROoROnROoROoRO
oROoROoROoROoROo	UU1QkQR2o
R2oU
2oQFD'o
UO[V�2[V�22J)	UO[U
1-QP-@U
]Q
5oUOUO]2UOV�O UQ2]2UO["U
1-QQ-@U
[$]Q
5oUOUO&[$2UOUO)UQ22]	2UO[U
1-Q]-@U
P]Q5oUOUO*P2UO-UQ2UQ22oUOV�Q22VHVvU1FD%oUO/UO0U*2J'	UO[U
1-QP-@U
]]Q5oUOUO2]2UOV[O,UQ2UQ22UO[46Xc/VEU1FD%oUO/UO0U*2J'	UO[U
1-QP-@U
]Q5oUOUO6]2UO9Q2oUOUO;U2Q2UO[U
1-Q]-@U
]]cQ5oUOUO<]2UO)UQ22oUO[?U2Q2UO["U
1-QQ-@U
Vc,Q5oVc1FD%oUO/UO0U*2J'	UOA2[BR*FD%oUOEUO0U*2J'	UO["U
1-Q	Q-@U
Vc,Q5oVc1FD%oUO/UOFU*2J'	UOI2[BR*FD%oUOEUOFU*2J'	P!)c�6:`�\sQsQsnQUU1QkksQsUsP!)�>ContextSubclassing.test_context_subclassing.<locals>.MyContexti�c	��:�R
OU2UdVmUdV mUdV0mUdV@mUdVPmUdV`mUdC[U[2%c'[R*U*T	t-tFDp�V�7aJ		oo	Vpm
UdE[U[2%c'[R*U*T	t-tFDp�V�7aJ		oo	V�mP!P!tto	htto	hr)r#r'r(r\rbrlrE�
isinstancer�r8rSr))r�r'r(r\rbrlrErSr)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%)rbr\rlrErSr'r(r))NNNNNNNNr%)rmr*rs@��r�	MyContextr��s����
'�
'r%r�r'r(r\rbrlrErSr)r��9e2�XYZ)r(r'r�)r\r'z1e-99z2.234e-2000ru)rbr'�1e99z
2.234e2000r��1E222z1e+222)rErbz!1.000000000000000000000000000E+99r�r��r'r(r\rbrlrErSr))%rr�r*r�r�r�r�r�r�r�r�r?rrxrr'rrr1r�r(r�r\r�rrSrbr�rlr�r�rEr:r.r8r}r)rW)r�r�r�r�r�r�r�r�r�r�r�r�rr#rr=r*rs&               @@r�test_context_subclassing�+ContextSubclassing.test_context_subclassing�s5����,�,���/�/���/�/���/�/�� �/�/���/�/���#�#���/�/���%�%�	��%�%�	�"�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%r)r�rfrgrhr�rjrkrls@rr�r��s����i.�i.r%r�c��\sQsQs\sQsP!)�CContextSubclassingiIrrrr%rr�r�Ir	r%r�c��\sQsQs\sQsP!)�PyContextSubclassingiLrr
rr%rr�r�Lrr%r�c�.`�\sQsQsnQsQsQsUsP!)�IEEEContextsiOc��UOOoQoU] 2oUOUO]2UOUO]`2UOUO
Q2UV2U]@2oUOUO]2UOUOQ2UOUO
Q2UV2U]�2oUOUO]"2UOUOQ2UOUO
Q2UV2UO
[UP2UO
[U]{2UO
[UQ2P!)c�t�UOUO]2[VQ,2[VQ,2P!)r r)rS)r?rEr$)r�r"s&&r�assert_rest�3IEEEContexts.test_ieee_context.<locals>.assert_restUs.�����W�]�]�A�.��4�'�2�6��4�'�2�6r%ri�i����r	i�)r�IEEEContextr?r'rbr\rxr)r�r�r�r�s&   r�test_ieee_context�IEEEContexts.test_ieee_contextQs8���l�l�.�.��	7�

��O���������#��������$��������%��D����O���������$��������%��������&��D�������������$��������&��������'��D��	
���*�k�2�6����*�k�3�7����*�k�4�8r%c�\�UOOoUOUQQ.2P!)��)r�IEEE_CONTEXT_MAX_BITSr)r�r�s& r�test_constants�IEEEContexts.test_constantsqs%�� $��� B� B���
�
�+�c�3�Z�8r%r)r�rfrgrhr�r�rjrkrls@rr�r�Os����9�@9�9r%r�c��\sQsQs\sQsP!)�
CIEEEContextsivrrrr%rr�r�vr	r%r�c��\sQsQs\sQsP!)�PyIEEEContextsiyrr
rr%rr�r�yrr%r�c�4`�\sQsQsnQsQsQsQsUsP!)�CheckAttributesi|c�N�UO[O[O2UO[O[O2UO[O
[O
2UO[O[O2UO[O[O2SO[OP	I9%f[OP
I2SO[OP	I9%f[OP
I2UO[O[O2UO[[[22[[[222SO[[2Tt,tFDpQ*Q6wfJUMJ	to[[O22P!ttoh)Tr�__)r?r�rWrr�r�r�r�rr��SPEC_VERSIONr�r��dirrQ�__all__)r�r�s& r�test_module_attributes�&CheckAttributes.test_module_attributes�s=��	
������Q�Z�Z�0�������Q�Z�Z�0�������Q�Z�Z�0�������a�k�k�2�����0�0�!�2I�2I�J�������$�.�I�I�!�.�.�E�2I�J�������$�.�I�I�!�.�.�E�2I�J����������8����S��Q��[�#�c�!�f�+�6����S��V�=�V���u��}�!�!�V�=�v�a�i�i�?P�Q��=s�%H"�;H"c��[[O22Tt,tFD%oQU7fUOQ2%cJ#UMJ'	oo[[O22Tt,tFD%oQU7fUOQ2%cJ#UMJ'	ooUO[
U2[
U2*
[
22P!ttohttoh)r�r�)r�r�r*rrr?r��r�rrr�s&   r�test_context_attributes�'CheckAttributes.test_context_attributes�s����A�I�I�K�(�O�(�1�D�A�I�Q�\�\�#�=N�Q�Q�(��O��A�I�I�K�(�O�(�1�D�A�I�Q�\�\�#�=N�Q�Q�(��O�����Q��#�a�&��#�%�0��
P��Os"�
C�C�C�-
C�;C�Cc��[[O]	22Tt,tFD%oQU7fUOQ2%cJ#UMJ'	oo[[O]	22Tt,tFD%oQU7fUOQ2%cJ#UMJ'	ooUO	[U2[U2*
[22P!ttohttoh)r�r�r�)r�r�r�rr?r�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�Q�)��P��A�I�I�a�L�)�P�)�1�T�Q�Y�a�l�l�3�>O�Q�Q�)��P�����Q��#�a�&��#�%�0��
Q��Ps"�
C�C�C�/
C�=C�Cr)	r�rfrgrhr�r�r�rjrkrls@rr�r�|s����R�"1�1�1r%r�c�p`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
QsQ
sQsQsUsP!)�Coveragei�c��UOOoUOUQ2O2Q2UOUQ2O2]2UOUQ2O2]2P!)�	1234e9999i'r�r�)rr�r?r�rts& r�
test_adjusted�Coverage.test_adjusted�si���,�,�&�&�������-�6�6�8�%�@�������0�0�2�A�6�������0�0�2�A�6r%c��UOOoUOOoU]	2O2oUO	U]	2U2oUOU]	22oUO	U]	2P!)r�)rr�r�r�r?)r�r�r�rr�s&    r�test_canonical�Coverage.test_canonical�sk���,�,�&�&���\�\�,�,�
��A�J� � �"������A���L��
�K�K���
�#������A�r%c�l�UOOO2oQUmQUmQUm[Um]Um]Um	[UO*FD!oP
UOU$P
UOU$J#	UO2oQoUOV42P!)r�z{Context(prec=425000000, rounding=ROUND_HALF_DOWN, Emin=-425000000, Emax=425000000, capitals=0, clamp=1, flags=[], traps=[])r�)rr�rRr'rbr\r�r(rlrEr8rSr)�__repr__r?)r�r�r�rr�s&    r�test_context_repr�Coverage.test_context_repr�s����L�L�'�'�,�,�.�����������$��
���
����!�$�,�,�/�/�C� �A�G�G�C�L� �A�G�G�C�L�0�
�J�J�L��
"��	
����r%c��UOOoUOOoU29^tt^2o]Um]UmPUmUO
[UQ22]
2UO
UQ2]*]2UO
UQ2]*]2UO
UQ2]*]2UO
UQ2OUQ2]2]2UOUQ2O]]2O2P	2UO
[U]
2]]2]2UO
[]
U]2]2]2UO[6Xc%UO
[]
]U]22]2L#UO[[]
]U]22UO
UQ2O2]2UOUQ2O!2P
2UOUQ2O#2P	2UO
UQ2O%2]2UO
UQ2O'2]2UO
UQ	2O)2]2UO
UQ2O+2]2UO
UQ2']
2UO
UQ
2]*]2UO
UQ2O-2]	2UO
UQ2O/2UQ22UO
UQ2O12UQ22UO
UQ2O32Q
2UO
UQ23P2UO
UQ2]*]2UO
UQ2]*
]2UO
UQ2O52]2UO7UQ2O922UO7UQ2O;22UO7UQ2O;22UO7UQ2O=22UO7UQ2O?22UO7UQ2OA22UO7UQ2OA22PPP2U29^tt^2oQUmQQ*oUU2'oUOC2oUO
Vd2UOE2oUO
Vd2UOGU]22oUO
Vd2PPP2P!)%fhK�9h)%fhP!9h)r z-10�7rLz1.2r�r�z1.01�20�580rAz2E+1z-1E+1z+Normalr�z1.12345r�r7rrr�i�i�)$rr�r�r'rbr\r?rZrpr�re�powr�rxr1r^rgrorirjrkr]rwryrrKr�rr_rarmrkrqrUrWrY)r�r�r�r�rr�rss&      rr[�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����S��W�Q�Z��3�Q�7��|�|�q� �� � ��R��G�A�J�!7��;��!�!�)�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�G�L�^�^�q��A�F����A�����A��
�
��A����Q�"��
�
��A����Q�"����G�A�J�'�A����Q�"��^�M�^��L�^�^�s,�EW"�N-W"�BW5�"W2	�+W2	�5X	�>X	c�D�UOOoUOOoUOOoUOOoU29^tt^2o[UQ2Q2vqgUO
VaQ22UO
VqQ22[UQ2]2vqgSOUO29%cUO22P
UOU$[UQ2]2vqgSOUO29%cUO22P
UOU$UO2[UQ2UQ22vqgSOUO29%cUO22UOUOU*2UO2[UQ2]e2vqgSOUO29%cUO22UOUOU*2UO2[U]2]2vqgSOUO29%cUO22UOUOU*2P
UOU$UO2[U]2]2vqgSOUO29%cUO22SOUOU*9%cUOU*2PPP2P!)%fhP!9h)�10912837129rw�10901935�194r�r�)
rr�r�r�r�r`r?rrer)r.rSrc)r�r�r�r�r�r�rVr�s&       rrO�Coverage.test_divmods����,�,�&�&���|�|�0�0���<�<�8�8�����4�4��
�^�^�q��'�-�0�$�7�D�A����Q��
� 3�4����Q����/��'�%�.�!�,�D�A��O�O�A�H�H�J�5�5�1�8�8�:�6�(-�A�G�G�$�%��'�%�.�!�,�D�A��O�O�A�H�H�J�5�5�1�8�8�:�6�(-�A�G�G�$�%�
�M�M�O��'�%�.�'�%�.�9�D�A��O�O�A�H�H�J�5�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�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�4��G�G�N�3�
5�A�^�^�^�sB�)A8N�"AN�<A/N�,A<N�)A<N�&BN�29N�,N�N	�N	c���UOOoUOOoUOOoUOOoU29^tt^2o]UmUO
2UOUQ2]d*UQ22UOUOU*2]Um]Um
PUmUO
2P
UOU$UOUQ2UQ2*UQ22UOUOU*2PPP2P!)%fhP!9h)r�rVr�r�r#r�)
rr�r�r�r�r'r.r?rrSrbr\r))r�r�r�r�r�r�s&     rr��Coverage.test_powerFs����,�,�&�&���|�|�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�)C E�E$	�E$	c��UOOoUOOoUOOoU29^tt^2o]Um]UmPUmP
UOU$U]c2OUQ22oUOUO22PPP2P!)%fhP!9h)r �1e1)rr�r�r�r'rbr\r)rrrre�r�r�r�r�r�rs&     rr��Coverage.test_quantizeZs����,�,�&�&���|�|�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!B>�>C	�C	c��UOOoUOOoU2oUOUQ2O	2]
2UOUO	2]
2P!)r�)rr�r�r?r�rZs&   r�
test_radix�Coverage.test_radixgsZ���,�,�&�&���\�\�,�,�
��L��������+�+�-�r�2��������B�'r%c	��UOOoQFD/oUO[UQ2U2Q2[2J1	P!)rOr�r�)rOrRrUrXr1r[r]r_)rr�r�rr�)r�r�r#s&  rrd�Coverage.test_ropos=���,�,�&�&��M�D��M�M�'�'�#�,��5�e�<�n�M�Mr%c	�@�UOOoUOOoU29^tt^2o]UmUO	[UQ2O
22Q2UO	[UQ2O
22Q2UO	[UQ2O
]22Q2UO	[UQ2O
]
22Q2UO	[UQ2O
Q22Q	2UO[UQ
2OQ2UO[UQ
2O]]2PPP2P!)%fhP!9h)
�r�rLz9.99e-5rrr�z1.23457r�z1.2345000000z0E+10r�rFr�)	rr�r�r'r?r:�	__round__rxr1)r�r�r�r�s&   r�
test_round�Coverage.test_roundvs*���,�,�&�&���|�|�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�F	�F	c��UOO2oUO[UOQ,2P!)rY)rr*rxrr��r�r�s& r�test_create_decimal�Coverage.test_create_decimal�s.���L�L� � �"�����*�a�&6�&6���>r%c�v�UOOoUOOoU29^tt^2oQUmUQQ*2]
Q**oUO	[U2]2UO	UO
2]2PPP2P!)%fhP!9h)r�i�i�iS)rr�r�r'r?rrq�r�r�r�r�rs&    rr��Coverage.test_int�s}���,�,�&�&���|�|�0�0��
�^�^�q��A�F���d�
�#�b�$�h�.�A����S��V�Q�'����Q�]�]�_�a�0�	�^�^�^�s�A B'�'B8	�0B8	c�8�UOOoU2oQUmQQ*'oUOU2oUO	VC'2UOU2oUO	VC'2UO
U]2oUO	VC'2P!)r�i�i�)rr*r'rUr?rWrY)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%r)r�rfrgrhr�r�r�r[rOr�r�r�rdr�r�r�rrjrkrls@rr�r��sP����7�	��&V#�p'5�R/�((�(�N�J�"?�1� � r%r�c��\sQsQs\sQsP!)�	CCoveragei�rrrr%rr�r��r	r%r�c�D``�\sQsQsn\sU1QksU1QksQsUs	U9s
!)�
PyCoveragei�c�:�[RU_2[O2Um[O
Q2P!r�r�r�s&�rr��PyCoverage.setUp�r�r%c�f:�[OUO2[RU_2P!rr�r�s&�rr��PyCoverage.tearDown�r�r%r�r�r�s@@rr�r��r�r%r�c�,`�\sQsQsnQsQsQsUsP!)�PyFunctionalityi�z!Extra functionality in decimal.pyc	��[Oo[Oo,QNoSFD(vqEoUO[	UU2U2U2J*	P!)�.0e)
)rrVz1e+0)z#.0erVz1.e+0)rrVr�)z#.0frV�1.)r��1.1r)z#grr)r�r�r�)z#.0gr�r)r�rVz100%)z#.0%rVz100.%)rr�r�r?r�)r�r�r�rr�rrOs&      r�test_py_alternate_formatting�,PyFunctionality.test_py_alternate_formatting�sF���)�)���~�~����*�N�C�F����V�G�A�J��4�f�=�*r%r)r�rfrgrhrirrjrkrls@rr�r��s����+�>�>r%r�c�D`�\sQsQsnQsQsQsQsQsQs	Qs
UsP!)	�
PyWhiteboxi�z White box testing for decimal.pyc��[Oo[OoU29^tt^2o]UmUQ2UQ2*oUO	VAQ22UQ2UQ2*oUO	VAQ22UQ2UQ2*oUQ2UQ2*oUO	VAQ22UQ	2UQ2*oU]Q
*2UQ2*o]UmUQ2UQ2*oUO	VAQ22]UmUQ2UQ2*oUO	VAQ
22]UmUQ2UQ2*oUO	VAQ22]UmUQ2UQ2*oUO	VAQ22]�UmU]Q*2UQ2*o[O
Um[OUm[OUm	]UO[O$U]2oU]u*oUO	UQ2PPP2P!)%fhP!9h)r�r"z
0.00390625z-0.6z0.0012885819�256e7l�o�
�z-0.0625r��152587890625e7ic
�152587890625z3e-6z2.6e-6z2.56e-6�Bil)rr�r�r'r?rWr�rbr�r\r)r�)r�r�r�r�r�D2�ress&      r�test_py_exact_power�PyWhitebox.test_py_exact_power�s���)�)���~�~��
�^�^�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�II;�;J	�J	c�`````	�[Oo[Oo[OoUO	2o[Q[[*22UmUU2UQ2nUQ2nUQ2n	UQ2nQ/UUUU	U1QkkoUR2RORORO2RORORO2RORORO2UQ2UQP	2UQP	2UQP	2UQP	2UQ	P	2UQ
P	2UQP	2UQP	2UQ
2UQP	2UQ2UQ2UQ2UQP	2UQP	2UQ2UQ2UQ2UQP	2UQP	2UQP	2UQ2UQP	2UQP	2UQP	2UQP	2UQP	2UQ 2UQ!P	2UQ"P	2UQ#2UQ$2UQ%P	2UQ&P	2UQ'P	2UQ(2UQ)P	2UQ*P	2UQ+P	2UQ,2UQ-2UQ.2P!)0c3�4�SF �D	p]1w�	J	P!3hr�r)rrs& rr�=PyWhitebox.test_py_immutability_operations.<locals>.<genexpr>	s��'8���'8�!�1�v�'8�s�z-25e55z33e+33c�0:�U%Cc[QU*Q*2RORORO2RORORO2RORORO2RORORO2RORORO2RORORO2P![QU*Q*2RORORO2RORORO2RORORO2P!)zd1.z(d2)z())r;r?�_sign�_int�_exp)�	operation�useOther�b1�b2r5r6r�s&&�����r�checkSameDec�@PyWhitebox.test_py_immutability_operations.<locals>.checkSameDecs����x��U�Y�&��/�0�� � ����2�8�8�4�� � ����"�'�'�2�� � ����"�'�'�2�� � ����2�8�8�4�� � ����"�'�'�2�� � ����"�'�'�2��U�Y�&��-�.�� � ����2�8�8�4�� � ����"�'�'�2�� � ����"�'�'�2r%�__abs__rNr.rArDr;r4r>r8�	__float__r\r��__int__�	__trunc__rZrT�__neg__�__bool__�__pos__r^rOr1r�r]r[rUr_rR�__str__rQrWr�rEr|rrrrrr�r�r�r�rq)F)rr�r�r/rRr,r8r)r?rrr)
r�r�r�r/r�rrrr5r6s
f     @@@@r�test_py_immutability_operations�*PyWhitebox.test_py_immutability_operationss^����)�)���)�)���\�\�
����!���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���[OoU]-2oUU2oUO[U2Q2UO	[U2[U22P!)r|r})rr�r?r:r�rBr�s&   r�test_py_decimal_id�PyWhitebox.test_py_decimal_idQsI���)�)���B�K���A�J������Q���&����B�q�E�2�a�5�)r%c��[Oo[OoU29^tt^2oUQ2O][2oUOUO
22PPP2P!)%fhP!9h)r�)rr�r��_rescaler�rrer�s&    r�test_py_rescale�PyWhitebox.test_py_rescaleYsQ���)�)���~�~��
�^�^�q����'�'��8�4�A��O�O�A�H�H�J�'��^�^�^�s�<A7�7B	�B	c��[OoUO[UQ2O][
2P!)z3.1234)rr�rxr�_roundr�rts& r�test_py__round�PyWhitebox.test_py__roundbs*���)�)�����*�g�h�&7�&>�&>��8�Lr%r)r�rfrgrhrirr%r(r,r0rjrkrls@rrr�s+����*�1,�fM$�^*�(�M�Mr%rc�V`�\sQsQsnQs\Q2s\Q2s\Q2sQs	Us
P!)�CFunctionalityihzExtra functionality in _decimalc��[OoU[O[OQ5oUO	UO
[O2UO	UO[O2P!))rSr))r�r*r5�
DecRoundedr?�_flags�_trapsrs&  r�test_c_context�CFunctionality.test_c_contextksO���)�)���!�,�,�a�l�l�;��������1�<�<�0�������1�<�<�0r%c�|�[O]Q5oUOUO[O	Q22[O	Q22[O]Q5oUOUO[O	Q22[O	Q22P!)r�r�z1.23456r�)r�r*r?rHr�r�r�s& r�test_c_context_apply�#CFunctionality.test_c_context_applyssx��
�I�I�1�I������������9�!5�6��	�	�&�8I�J�
�I�I�1�I������A�G�G�A�I�I�i�$8�9�1�9�9�V�;L�Mr%c��[O[O[O[O[O
[O[O[O[O[O[O[O[O[O[O1o[!U2FDvq#UO#U]U*2J 	UO#[O$[O[O*[O
*[O*[O*[O*[O*2UO#[O&[O$[O*2UO#[O([O&[O*[O*2P!�r )r�r5�DecConversionSyntax�DecDivisionByZero�DecDivisionImpossible�DecDivisionUndefined�DecFpuError�
DecInexact�DecInvalidContext�DecInvalidOperation�DecMallocError�DecFloatOperation�DecOverflowr5�DecSubnormal�DecUnderflowr4r?�DecIEEEInvalidOperation�	DecErrors�DecTraps)r��condrKr�s&   rr��CFunctionality.test_constants{sy��
�L�L�!�/�/��1D�1D�
�#�#�Q�%;�%;�
�M�M�1�<�<��)<�)<�
�!�!�1�#3�#3�
���������
�N�N�A�N�N�

���d�O�D�A����Q��1��%�$�	
����2�2��.�.��0�0�1��/�/�0����'��,�,�	-�
�.�.�/��)�)�
*�	+�	
�������2�2��,�,�-�	.�	
���������Q�]�]�2�1�>�>�A�	Cr%r)r�rfrgrhri�requires_extra_functionalityr8r;r�rjrkrls@rr3r3hsF����)�!�1�"�1�"�N�"�N�"�C�"�Cr%r3c��`�\sQsQsnQsQsQsQsQsQs	Qs
\Q	2sQ
s
\Q2sQsQ
sQsQsQs\Q2s\Q2sQsQsQsQsQsQsQsQsQsQsQs Us!P!)�	CWhiteboxi�zWhitebox testing for _decimalc��[Oo[Oo]
]#*o]
]$*oU29^tt^2oQUm[	]2FD^o[
OV42o[
OQQ2oVx*o	UU2UU2*o
UOV�2J`	PPP2P!)%fhP!9h)r�i@BrJi�)r�r�r�r'r�r-rr?)r�r�r�rrr�rKr�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�A6C�C	�C	c�T�UO[[O]	Q2P!)r�r�)rxr1r�r�r�s&r�test_invalid_construction�#CWhitebox.test_invalid_construction�s�����)�Q�Y�Y��5�9r%c��[Oo[Oo[Oo[OoUU229^tt^2UOV!Q2PPP2P!)%fhP!9h)�1e9999999999999999999)r�r�r�r*r�rx)r�r�r�r*r�s&    r�test_c_input_restriction�"CWhitebox.test_c_input_restriction�sY���)�)���-�-���)�)���~�~��
�'�)�
$�
$����.�5�
7�%�
$�
$�
$�s�A4�4B	�=B	c��[Oo[OoUO2oQUmQUmQUm[Um]Um	]Um
[[*FD!oP	UOU$P	UOU$J#	P	UOU$P	UOU$UO2oQoUOVV2P!)r�aQContext(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�)r�r�r�rRr'rbr\r�r(rlrEr8rSr)r�r?)r�r�r�r�r�rr�s&      r�test_c_context_repr�CWhitebox.test_c_context_repr�s����)�)���)�)�����!�����������$��
���
����!�!�$�$�C��A�G�G�C�L��A�G�G�C�L�%�#'������"&������
�J�J�L��
O��	
����r%c
���[Oo[Oo[Oo[Oo[O
o[Oo[Oo[OQ6�oU2o	UO[U	OOQ]2UO[U	OOQ]2UO[U	OOU2UO[U	OOU2UO[ ["U	QQ,2UO[ ["U	QQ,2UO[["U	Q]]-2UO[["U	Q]]-2U	OO%2o
V�QU
Q$UO[["U	QU
2UO[["U	QU
2U%cQLQoU%cQLQoQFDo
UO[["V�U2J!	UO[["U	QU'2UO[VQ	5UO[VQ
5UO[V'Q5UO[&V]*Q	5UO[&V]*Q
5UO[&V']*
Q5UO[&V]*Q5UO[&V]*Q
5QFD�o
UO[&["V�U]*2UO[&["V�U']*
2[(O*Q6wfJaUO[["V�U2UO[["V�U']*
2J�	[OQ6XczUO[&[-U	Q2U]*2UO[&[-U	Q2U]*2UO[&[-U	Q2U']*
2[OQ6Xc�UO[[-U	Q2]2UO[[-U	Q2Q2UO[[-U	Q2P2UO[[-U	Q2Q2UO[[-U	Q2Q2UO[[-U	Q2]2QFD�o
UO[["V�P2UO[["V�]2UO[ ["V�,QN2U%fJcUO[["V�Q2UO[["V�Q 2J�	UO[ [.Q[122UO[ [.Q[122U2oUO[ UQ2UU2P!)!r��!rSrr)r�i�pr�r\r�r�r�r�r��win32r�r�r�i���?zwith localcontext("xyz"): passz-with localcontext(context=getcontext()): passr�r�r�l�N�Zoiʚ;r�)r'r\rbrlrEi9�r�r���)r�r*r�r�r�r�r�r/rWrxr�rS�__setitem__r)r�__delitem__r1rarRr*r��platformr�execr)r�r*r�r�r�r�r�r/�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���UO[O[O2UO[O[O2UO[O
[O
2UO[O[O2UO[O[O2UO[O[O2UO[O[O2UO[O[O2P!r)r�r�r�rr�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
�^�[Oo[Oo[Oo[Oo[O
o[Oo[OQ6�oU2oU%cQLQo	UO[[UQU	]*2UO[[UQU	']*
2[OQ6wcCUO[[UQU	2UO[[UQU	']*
2QFD�o
UO[[V�U	]*2UO[[V�U	']*
2[OQ6wfJaUO[[V�U	2UO[[V�U	']*
2J�	UO[[UQP2UO[[UQ]2UO[[UQ,QN2U%c;UO[[UQQ	2UO[[UQQ
2QFD;o
UO[[V�Q2UO[[V�Q2J=	P!)r��_allcrrcrrr�r�)r6r7r�rdre)r�r*r�r�r�r�r/rWrxr*rar�rhrr1)r�r*r�r�r�r�r/rjr�rkr#s&          r�test_c_context_errors_extra�%CWhitebox.test_c_context_errors_extraKs����)�)���-�-���:�:���~�~���\�\�
��\�\�
��*�*�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�X�[Oo[Oo[Oo[Oo[O
o[OoUO2o]"Um[Um
QUmQUm]Um
]UmUOUO]"2UOUO[2UOUOQ2UOUOQ2UOUO]2UOUO]2UOUO!2Q2UOUO#2Q2[O$Q6Xc�UO'Q2UO)Q2UO+Q2UOUOQ2UOUOQ2UOUOQ2P!P!)�"i�i�r�r�iH�i'�r�)r�r�r�r�r�r�r�rRr'r�r(rbr\rlrEr?�Etiny�EtoprWr�r�r�)r�r�r�r�r�r�r�r�s&       r�test_c_valid_context�CWhitebox.test_c_valid_contextvs����)�)���)�)���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���[OoUO2oUOUO]2]UmUOUO]2P!r>)r�r�rRr?rt)r�r�r�s&  r�test_c_valid_context_extra�$CWhitebox.test_c_valid_context_extra�sJ���)�)�����!��������1�%����������1�%r%c
��[Oo[Oo[Oo[Oo[O
o[OQ6�cQLQoU29^tt^2oP	UOU$UOV!Q2OU']*
2UOV!Q2OU2UOV!Q2O[U]*22UO[OUQ2O[U]*
2'2UO[UQ2OU']*
2UO[UQ2OU]*2PPP2P!)%fhP!9h)r�r�r�r�r�)r�r�r�r�r�r�rWr)rxr�rr*)r�r�r�r�r�r�rkr�s&       r�test_c_round�CWhitebox.test_c_round�sO���)�)���-�-���~�~���:�:���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�:D-F1�1G	�:G	c��[Oo[OQ6�oUO[U]2O
Q,]	2UO[U]2O
Q]	2UO[U]2O
,2UO[U]2O
Q2U%cQLQoUO[UQ2O
QU*2P!)r�z=10.10z<>=10.10r�z=%d.1r�r�)r�r�rWrxr1r�r)r�r�rj�maxsizes&   r�
test_c_format�CWhitebox.test_c_format�s����)�)���*�*�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��[Oo[Oo[OoU]
2oUO	UO2]
2UO
[UO
Q2UO
[UO
]
Q2UO
[UO
]
2UO	UO2]
2UO
[UOQ2UO
[UO]
Q2UO
[UO]
2UO	UO2]
2UO
[UOQ2UO
[UO]
Q2UO
[UO]
2U29^tt^2oUQ2O[2oUO	VAQ22UQ2O[2oUO	VAQ22P	UOU$UO
V!Q2O[2PPP2P!)%fhP!9h)r�rLrz99999999999999999999999999.9�100000000000000000000000000z999.9)r�r�r�r�r?rqrxr1r�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�BI9�9J
	�J
	c�(�[Oo[Oo[Oo[Oo[O
oUO
UQ2O2Q2UO[[U]2]Q2UO[U]	2OQQ2UO[U]	2O]QQ2UO[UQ2OUQ2,2UO[UQ2OUQ2U22UO[UQ2OUQ2]
2UO[UQ2OUQ2[Q2U29^tt^2oUO2UO[UO U]2QQ2UO[UO"]�2UO[UO$]�2UO[UO&]	]QQ2UO[UO]	]QQ2UO
[)UO#U]�222Q2UO
UO+2]
2P	UO,U$UOV1]	2O.]2UOV6O&]	]2UO1UO2U*2UO52P	UO,U$UOV!]	2O.]2UOV&O&]	]2UO1UO2U*2P	UO,U$]UmUOU[UQ2]Q	2PPP2P!)%fhP!9h)
z9.99e10z99.9E+9r�rr�r�z	1e-100000rJ�200�)r�r�r�r�r�r�r?r�rxr1r�rKr�rrr�rWrYr�r_r`r:r�r)r.rrSr.r')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�=H9P�P	�	P	c	�.�[Oo[OoUQ2oQFD?o[V42oUO	[
UQQ5UO	[
UQPQ5JA	QFD?o[V42oUO	[
UQQ5UO	[
UQPQ5JA	UO	[
UOP,Q5UO	[
UO-,Q5UO	[
UO,,2UO	[
UOP,Q5UO	[
UO-,Q5UO	[
UO,,2UO	[
UOP,Q5UO	[
UO-,Q5UO	[
UO,,2UO	[
UO]]QQ5UO	[
UO]]QPQ5UO	[
UO],PQ5UO	[
UO],PQ5UO	[
UO],,2U2oUO	[
UO]]QQ5UO	[
UO]QPQ5UO	[
UOQ]PQ5P!)�10001111111rr`rhr�)�mod)
r^rgrorirjrkr]rwryrrKr�r�)r|rMrGr}rrsrrur�rmrnro)r�r�r*rrxr1rqr�r�rprrr�)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���UO[OO[O[O
*[O*[O*[O*2UO[OO[O[O
*[O*2P!r)
r?r�rhr7rLr@rIrKr5r�r�s&r�test_c_context_templates�"CWhitebox.test_c_context_templatesQs������
�N�N�!�!�
�%�%�a�&9�&9�9�!�-�-�G�
�N�N�
��<�<�
(�	
�
	
���
���#�#�
�%�%�a�&9�&9�9�!�-�-�G�	
r%c�`�[Oo[Oo[Oo[Oo[O
o[Oo[Oo[Oo[Oo	[Oo
[Oo[Oo[Oo
[OoU1QkoUO2oRO!UUO"72UO%2UO"O'2FDoP	UO"U$J	UO"O)2FDoRO!U2J	UO%2UO"O+2FDvooRO-U2J	RO-UO.O1U22RO3UO.O1Q2P2RO5UO.O1QQ2Q2RO7[8UO.O0QQQ2RO5[;UO.2[;UO"22[<O>UO.2o[<O>UO"2oUO.OA2oUOC2UUm"RO!UO.U*2UO%2U
Um#RO!UO"U*2UOC2UO.O2oP	UU$UUmUUUO.2UO%2UO"O2oP	UU$UUmUUUO"2U[OU	[OHU
[OJU[OLU[ONU[OPU[ORU[OTU[O-	o[OV[OX[OZ[O\[O[O^[O`,o[;[b[*2o[eU2FCD9o[eU2FCD$o[fFCDo[hOj[b[*U2oOj[b[*U2o[hOl]Q2o[hOlQ]2o[hOl]Q2o[hOl]]2o [hOl]]2o![hOl]]2o"UUUUUU!U [oU2[oU2Q5oRO5UOpU2RO5UOrU2RO5UOtU2RO5UOvU2RO5UOxU!2RO5UOzU 2]o#SFDo$U#UU$**o#J	RO5UODU#2]o#SFDo$U#UU$**o#J	RO5UOFU#2CJ	CJ'	CJ<	SFD?o%U%Um"RO!UODU*2UUUO.2JA	SFD?o%U%Um#RO!UOFU*2UUUO"2JA	P!)c�:�SFD9oV 6XcROV*2J"ROV*2J;	P!r)rr})r=�signal_dictr�r�s&& �r�assertIsExclusivelySet�<CWhitebox.test_c_signal_dict.<locals>.assertIsExclusivelySetrs2���"���=��O�O�K�$4�5��$�$�[�%5�6�	#r%rr�rsr�r�i���)>r�r*r�r�r�r�r�r�r�r�r�r�r5rFrLrRrr)rWr�valuesrr}rSrr�r?rxr1rPr��	getsizeofr�r.r6r7r5rDrJrKrIr@rHrArBrCrErGr?r8r�rr-�samplerr�r'r(r\rbrlrE)&r�r*r�r�r�r�r�r�r�r�r�r�r5rFrLr�r�r,r�rr�
IntSignals�IntCond�limr�r�r,rSr)r'r�r�rEr
�crr�rrOs&f                                     r�test_c_signal_dict�CWhitebox.test_c_signal_dict]s�����)�)���)�)���-�-���)�)���)�)���:�:���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�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�`�[On]QH
GoQoQU1QkkoQQQU,QN2QQ-oQQ	QU,QN2QQ-oQQ
QU,QN2QQ-oW]6XcUO
[UQUQ
2UO
[UQUQ
2UO
[UQUQ
2P![cSOQ2K�h9h)r�r�r�c	�d�POSTt,tFDo[U2MJ	to2!ttohr�)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�4:�RU2OV!2!r)r�)rr�r�r�s&&&�rr��0CWhitebox.test_invalid_override.<locals>.get_fmt�s����1�:�(�(��7�7r%r�r�r�r��xxxxxr��yyyyyr�r�r�)�r�r�r�)r�r�r�r�rrrxr)r�r�r�r��invalid_grouping�invalid_dot�invalid_sepr�s&      @r�test_invalid_override�CWhitebox.test_invalid_override�s�����)�)��	;�'�	2�	8�
�c���}�5��c�
��
�g���y�1��c�
��
�c���y�1��g�
���s�?����j�'�5�.��
5�	
���*�g�u�k�3�G����*�g�u�k�3�G��=�	;��M�M�9�:�	;�s�B)�)	C�3C�Cc�F�[Oo[Oo[OoU29^tt^2oP	UOU$Q[
O*oUOV1U2Q[
O']*
*oUOV1U2Q[
O*oUOV1U2Q[
O']*
*oUOV1U2PPP2P!)%fhP!9h)Tz0e%dz1e%d)r�r�r�r�r)r�r�rxr�s&     r�test_exact_conversion�CWhitebox.test_exact_conversions����)�)���~�~���-�-��
�^�^�q�(,�A�G�G�$�%�����$�A����.��;��3�;�;�,�q�.�)�A����.��;�����$�A����.��;��3�;�;�,�q�.�)�A����.��;�#�^�^�^�s�CD�D 	�D 	c	���[Oo[Oo[Oo[Oo[O
oU29^tt^2o]	UmP	UOU$P	UOU$P	UOU$]Q[O1oUO[UOU22Q2UOV1U2]Q[O1oUOVFOU2UOV1U2]Q[O']*
1oUO[UOU22Q2UOV1U2]Q[O']*
1oUOVVOU2UOV1U2]Q[O]*1oUO[UOU2UO[V2]Q[O']*
1oUO[UOU2UO[V2QoUO[UU22Q2QoUO[UU22Q2Q	oUO[UU22Q2PPP2P!)%fhP!9h)
r�z
-0E+999999z-0E-1000007r�z-sNaN1r)r�r rrC)r r�r)r r�r)r�r�r�r�r�r�r'r)r�r�r?r:r�rxr*)r�r�r�r�r�r�r�rs&       r�test_from_tuple�CWhitebox.test_from_tuple sO���)�)���~�~���-�-���:�:���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�!I1K�K-	�%K-	c��[Oo[OQ6�oUOU]2O	2]2U%cUU]
Q*2O	2oU]
Q*2O	2oUOVC]*2P!U]
]�*2O	2oU]
]�*2O	2oUOVC]*2P!)r�r���)r�r�rWr��
__sizeof__r?)r�r�rjrr�s&    r�test_sizeof�CWhitebox.test_sizeofQs����)�)���*�*�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	�,`�[OoQQ[2oQQ[2oQQ[2nU1QkQ[2oV#U1FD9oUO	UOUQ22UOQ22J;	P!)	c�.`�\sQsQsnQsQsQsUsP!)�<CWhitebox.test_internal_use_of_overridden_methods.<locals>.Xicc��]!r>rr�s&rrK�MCWhitebox.test_internal_use_of_overridden_methods.<locals>.X.as_integer_ratiods��r%c��U!rrr�s&rr�DCWhitebox.test_internal_use_of_overridden_methods.<locals>.X.__abs__f����r%r�r�rfrgrhrKrrjrkrls@r�Xr�cs����
�
�
r%r�c�(`�\sQsQsnQsQsUsP!)�<CWhitebox.test_internal_use_of_overridden_methods.<locals>.Yiic��],]�*!r>rr�s&rr�DCWhitebox.test_internal_use_of_overridden_methods.<locals>.Y.__abs__j�
���s�3�w�r%r)r�rfrgrhrrjrkrls@r�Yr�i�����
�
r%r�c�(`�\sQsQsnQsQsUsP!)�<CWhitebox.test_internal_use_of_overridden_methods.<locals>.Iimc��],]�*!r>rr�s&r�
bit_length�GCWhitebox.test_internal_use_of_overridden_methods.<locals>.I.bit_lengthnr�r%r)r�rfrgrhr�rjrkrls@r�Ir�mr�r%r�c�6:`�\sQsQsnU1QksQsQsUsP!)�<CWhitebox.test_internal_use_of_overridden_methods.<locals>.Ziqc�&:�R]2R]21!r>r)r�r�s&�rrK�MCWhitebox.test_internal_use_of_overridden_methods.<locals>.Z.as_integer_ratiors����!��a��d�|�#r%c��U!rrr�s&rr�DCWhitebox.test_internal_use_of_overridden_methods.<locals>.Z.__abs__tr�r%rr�)rmr�s@�r�Zr�qs����
$�
�
r%r�gfffffFY@)r�r�r�rr?r�)r�r�r�r�r�r!r�s&     @r�'test_internal_use_of_overridden_methods�1CWhitebox.test_internal_use_of_overridden_methods_sy����)�)��	��	�	��	�	��	�	��	���7�C����W�/�/��E�
�;�$�/�/��6�
8�r%c��[[O2O2oUO]*o[[O22oUU[O[O1oSFDToUOUQ59^tt^2UO[Q29^tt^2]Um
PPP2PPP2JV	P!)%fhK9h)%fhJ~9h)r�)�tp�	immutable)r9r�r*rS�	__bases__r�r��subTestr^r1�foo)r��
SignalDict�SignalDictMixin�ContextManager�typesr�s&     r�test_c_immutable_types� CWhitebox.test_c_immutable_types{s����!�)�)�+�+�+�,�
�$�.�.�q�1���a�n�n�.�/����
�I�I�
�I�I�	
���B������$�$��+�+�I�{�C�C��B�F�D�%�$��C�C��%�$�$�s0�C+	�:C
�C+	�C(�!C(�#C+	�+C<
�4C<
c�X�[[O22o[V2P!r)r9r�r�r)r�r�s& r�test_c_disallow_instantiation�'CWhitebox.test_c_disallow_instantiation�s���a�n�n�.�/��$�T�:r%c�N�[[O2O2oU2oQoUO	[
U29^tt^2[
U2PPP2UO	[
U29^tt^2[U2PPP2UO	[
U29^tt^2[U2PPP2UO	[
U29^tt^2P	U[O$PPP2UO	[
U29^tt^2U[O*PPP2UO	[
U29^tt^2U[O2O6HPPP2UO	[
U29^tt^2[O2OU6HPPP2UO	[
U29^tt^2UO2PPP2P!)%fhCK�9h)%fhCK�9h)%fhCKz9h)%fhCKT9h)%fhCK*9h)%fhK�9h)%fhK�9h)%fhP!9h)r])r9r�r*rSr^rrP�iterr>r�rR)r�r��sd�err_msgs&   r�test_c_signaldict_segfault�$CWhitebox.test_c_signaldict_segfault�s����!�)�)�+�+�+�,�
�
�\��'��
�
#�
#�J��
8�
8���G�9��
#�
#�J��
8�
8���H�9��
#�
#�J��
8�
8���H�9��
#�
#�J��
8�
8�%)�B�q�!�!�"�9��
#�
#�J��
8�
8��q�!�!�"�9��
#�
#�J��
8�
8��!�)�)�+�#�#�#�9��
#�
#�J��
8�
8�
�I�I�K����#�9��
#�
#�J��
8�
8��G�G�I�9�
8�+9�
8�
8��9�
8�
8��9�
8�
8��9�
8�
8��9�
8�
8��9�
8��9�
8��9�
8�
8�s��H	�H�4H1�&I� I�"I-�&"J�.J�	H	�H	�H.	�&H.	�1I	�:I	�I	�I	�I*	�"I*	�-I=	�6I=	�J	�	J	�J$	�J$	c��[OQ2oUO[UQ2Q2[O	]Q59^tt^2UO[UQ2Q2PPP2P!)%fhP!9h)z6.09e+23r9z6.09E+23r�)r�r�r?r�r�)r�rs& r�test_format_fallback_capitals�'CWhitebox.test_format_fallback_capitals�s^��
�I�I�j�!�������3���4�
�^�^�Q�^�
'�
'����V�A�s�^�Z�8�(�
'�
'�
'�s�A8�8B		�B		c�4�[OQ2oUO[UQ2Q2[O	[O
Q59^tt^2UO[UQ2Q2PPP2P!)%fhP!9h)z6.09z#.1fz6.1r�z6.0)r�r�r?r�r�r�)r�r�s& r�test_format_fallback_rounding�'CWhitebox.test_format_fallback_rounding�sb��
�I�I�f��������6�*�E�2�
�^�^�Q�\�\�^�
2�
2����V�A�v�.��6�3�
2�
2�
2�s�B�B	�B	r)"r�rfrgrhrirUrXr\r_rnrqrQrur{r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rjrkrls@rrSrS�s�����'�'�":�	7��:c"�J	2�"�(@�"�(@�T$1�L"�&�"�&�)�0-�U�>9L�v*@�X"�	
�"�	
�"�C>�"�C>�J#H�J<�0/8�b%�8�8
�;��<9�7�7r%rSc�2`�\sQsQsnQsQsQsQsUsP!)�
SignatureTesti�zFunction signaturesc	���[[2FCD�oUOQ2%cJ[[U2o[[U2oUQ6Xf&UQ6Xf[
OU2%fJi[
OU2o[
OU2o[UOO22oUOO2Tt,tFDoUOQ2%cJUMJ 	ooUOVhQU*Q5UOO2Tt,tFDpwOMJ	o	oUOO2Tt,tFD6oU]*OQ2%cJ#U]*OMJ8	o
oUQ6wfCJ�UOV�QU*Q5CJ�	P!ttohttohttoh)r�r�r*�parameter name mismatch in %s��msgr/�parameter kind mismatch in %s)r�rrrr��inspect�
isfunction�	signaturer��
parametersrr?r��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�F�D����s�#�#���Q��%�F��Q��%�F��	�!�T�Y�%6��"�"�6�*�*��)�)�&�1���)�)�&�1���u�/�/�4�4�6�7��&+�&6�&6�&;�&;�&=�.�&=���<�<��,��1�&=��.�� � ��%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 �G%�5"G*�G*c�L``````�[OOn[OOn[Q[O]2Q[O]2Q[O]2Q[O]2Q[O]2Q[O]2Q[O]2Q[O]2Q[O]2Q	[O]2Q
QQQ
Q[OQ[O2-[Q[O]2Q[O]2Q[O]2Q[O]2Q[O]2Q[O]2Q	[O]2Q
QQQ
Q[OQ[O2--nUUU1QknQnUUUUU1QkoUQ2UQ2P!)r-r�rr�rsr�r�r�r^r��numr�r�r�r(r"c�.:�,o-oUOO2FDnvqEUQ6XcJUOR6Xc"UORU*U*2J@UOR6XcRU*U*V4$Je[	Q2g	V#1!)r�zunexpected parameter kind)rrrr7r)	�moduler�r�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�>�UQ6XcQ!UQ6XcQ!UQ6XcQ!U!)zhThe C Context docstrings use 'x' in order to prevent confusion
with the article 'a' in the descriptions.rr�r�r�rsr�r)rs&r�tr�,SignatureTest.test_inspect_types.<locals>.trs$���C�x���C�x���C�x���Hr%c�:�[[U2o[[U2o[U2FCD2oUO	Q2%cJ[V2o[V#2o[
OU2%fJQ[
OU2o[
OU2o[UOO22oUOO2T	t,tFDo	RU	2MJ
	o
o	ROV�QU*Q5UOO2T	t,tFDp�OMJ	oo	UOO2T	t,tFDp�OMJ	oo	ROU]*R2ROU]*R2UQ6Xc+ROUQ*UQ*QU*Q5L-RO[U2[U2QU*Q5R[U2vq�[U]	2U2U
-U@R[U2vq�[U]	2U2U
-U@CJ5	P!tto	htto	htto	h[ c[#QS8QS
8QS802gh9h[ c[#QS8QS
8QS802gh9h)	r�r�r�r�rrzinvalid signature for z: r)rrr�r�rrrrr�rrr?r�rr�rPrjr)�ty�p_type�c_typer#rrrr	rrr
r
rr�kwdsrrrr�rs&              �����rrM�.SignatureTest.test_inspect_types.<locals>.doitsl����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�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�s6�*I(�4I-�'I2�I7�J�7	J�J�	K�'Kr�r*)	r�_ParameterKind�POSITIONAL_ONLY�POSITIONAL_OR_KEYWORDr�r�r�r�r)r�rMrrrrrsf @@@@@r�test_inspect_types� SignatureTest.test_inspect_types�s~����$�$�4�4���(�(�>�>���W�a�i�i��l��a�i�i��l��!�)�)�A�,��!�)�)�A�,��!�)�)�A�,��!�)�)�A�,��!�)�)�A�,��!�)�)�A�,��A�I�I�a�L��q�y�y��|��C��#����������
0��W�a�i�i��l��a�i�i��l��!�)�)�A�,��!�)�)�A�,��!�)�)�A�,��A�I�I�a�L��q�y�y��|��C��#����������
0�1��4	 �	�-	c�-	c�^	
�Y���Y�r%r)	r�rfrgrhrirr(rjrkrls@rr�r��s�����S�8e�er%r�c�(`�\sQsQsnQsQsUsP!)�
TestModuleiCc���UO[Q29^tt^2o[UOQ2PPP2UO	WO
[2P!)%fhK29h)zA'__version__' is deprecated and slated for removal in Python 3.20�__version__)�assertWarnsRegexrrrr?rr)r�rs& r�test_deprecated__version__�%TestModule.test_deprecated__version__DsT��
�
"�
"��O�
�
���D�L�L�-�0�	
�
	
������h�/�
�
�s�A!�!A1	�*A1	r)r�rfrgrhr/rjrkrls@rr+r+Cs����0�0r%r+c��\sQsQs\sQsP!)�CTestModuleiMrrrr%rr2r2Mr	r%r2c��\sQsQs\sQsP!)�PyTestModuleiPrr
rr%rr4r4Prr%r4c�`�[dUO2o[O[2FDmoQU7fUOQ2%cJ#UO
Q2vqE[dU[7cJKU1Qko[[QU*U2====Jo	Q[1Q[11FDYvqxU%fJ[UQ*[[O1QU-2o	UOUOU	22J[	[e�]Q	HBGo
Go[&O(2O+2n[[1FDnoU%fJ
U1Q
koU1U1Qkko
U[IcSL]oU[,O.Q$UOU
V�U
UQ52[&[,O.Q$Jp	U!)
Nz.decTestr�c�<�UO[U*2!r)r��	directory)r�r�s&&rr�load_tests.<locals>.<lambda>as��$�.�.��Q��*Gr%�test_r��Pyr7r)�DocTestSuite�IGNORE_EXCEPTION_DETAILc�D�U[OQ$[U2P!�r)r�r�r2)�slfr�s&&rr��load_tests.<locals>.setUprs��),����I�&��S�	r%c��:�[[OQ$UO[U*O22[ORO22P!r>)�orig_sys_decimalr�r�r/�ORIGINAL_CONTEXTrR)r?r��orig_contexts&&�rr��load_tests.<locals>.tearDownusC���)9����I�&����/��4�9�9�;�<� �+�+�L�,=�,=�,?�@r%)r�r��optionflags)�
TODO_TESTS�
suiteClass�os�listdirr7rrrar7r�rr9r��TestCase�addTest�loadTestsFromTestCase�doctestr;r<rBr�rRr�r�)r	�tests�patternr�head�tail�tester�prefixr��
test_classr;r<r�r�rFrDs&&&            @r�
load_testsrVTs������!�!�#���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�z�[[2[[2[d	[rP![	Q2rP!)Nr)r2r�r�ARITHrr,rr%r�setUpModulerY�s$����G���G��)�u�H�/B�9�/M�Hr%c��[%c3[O[[*O22[O[[*O22[%f*[
O[2OQ2[[OQ*If[Q2gP!)z*C tests skipped: no module named _decimal.rzGInternal error: unbalanced number of changes to sys.modules['decimal'].)
r�r/rCrRr�logging�	getLoggerr��warningrBr�r�rrr%r�tearDownModuler^�s����q�!�,�,�'��*�/�/�1�
2��L�L�!�!�$�)�)�+�,��1����(�#�+�+�8�	
��s�{�{�9�5�5��3�4�	4�6r%c�n�UrUrUr[O[
U%c]L]P
[
,Q5P!)zvExecute the tests.

Runs all arithmetic tests if arith is True or if the "decimal" resource
is enabled in regrtest.py
)�	verbosity�exit�argv)rXrGr/r��mainr���arith�verbose�
todo_tests�debugs&&&&r�testri�s+��
�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)rerfrd)NNNN)�rir[r)rIr�r_r�rRr�r�r��test.supportrrrrrrrr�test.support.import_helperr	r
rr-rr�r�rhr�rrrB�
cfractionsr��
pfractionsr�
skipUnless�requires_cdecimalrLr�rSrr.r�r�r�r�r�r�r�r�r�r8r$r�r�r�r�r�r�r+r�rrCr2�TESTDATADIRr�rbr�r�path�dirname�curdir�testdir�sepr7�isdirr�r6�hasattr�EXTRA_FUNCTIONALITYrQ�skipIf�skip_if_extra_functionalityr7rorKrrrrgrjrmr*r,r.rsrur�r��requires_working_threadingr�r�r�r�r~r�r�r�r�r�r�r�r�rrr!r[rcreryr{r}r�r�r�r�r�r�r�r�r�r�r�r�r�rr3rSr�r+r2r4rVrYr^rXr,rGr/ri�optparse�OptionParserrU�
add_option�
parse_args�optr�skiprhrr%r�<module>r�s/	���"�������
�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#�L`<�`<�D�� 8�(�:K�:K�����!9�8�;L�;L��K1�K1�Z�� 8�(�:K�:K�����!9�8�;L�;L��B9�B9�H��*�h�/�/�����:�x�0�0��hA�hA�T	��6��8I�8I����� 7��9J�9J��
%'�N*0�Z�,�,�.�/(�/(�/�/(�d��]�H�$5�$5�����m�X�%6�%6��pE�pE�d��]�H�$5�$5����
�m�X�%6�%6�
�[H�[H�z
��n�h�&7�&7�����~�x�'8�'8��WC�WC�r����(9�(9�������):�):��b�b�H��0�(�2C�2C�����1�8�3D�3D��O0�O0�b�	�L�(�"3�"3�	��	��\�8�#4�#4��N�N�`����(9�(9�������):�):��<;�<;�|��4�h�6G�6G�����5�x�7H�7H��k.�k.�Z��,�h�.?�.?�����-�x�/@�/@��%9�%9�N��L�(�"3�"3�����\�8�#4�#4����1�h�'�'�1���1�>F �F �P���(�+�+����
��8�,�,�
�>�h�'�'�>�0ZM��"�"�ZM�x1C�X�&�&�1C�f�\7��!�!�\7��\7�|��D�H�%�%�D���D�N0�0���*�h�/�/�����:�x�0�0��*�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