Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_set.cpython-311.opt-2.pyc
�

�Ke7���
�ddlZddlmZddlmZddlZddlZddlZddlZddl	Z	ddl
mZmZddl
Z
ddlZddlZddlZGd�de��Zd�ZGd�d	��ZGd
�d��ZGd�d
e��ZGd�d��ZGd�deej��ZGd�de��ZGd�de��ZGd�deej��ZGd�de��Z Gd�de��Z!Gd�de��Z"Gd�dej��Z#Gd �d!e��Z$Gd"�d#e#��Z%e��Z&Gd$�d%��Z'Gd&�d'e'ej��Z(Gd(�d)e'ej��Z)Gd*�d+e'ej��Z*Gd,�d-e'ej��Z+Gd.�d/e'ej��Z,Gd0�d1e'ej��Z-Gd2�d3e'ej��Z.d4�Z/d5�Z0Gd6�d7ej��Z1Gd8�d9ej��Z2Gd:�d;ej��Z3Gd<�d=ej��Z4Gd>�d?ej��Z5Gd@�dA��Z6GdB�dCe6ej��Z7GdD�dEe6ej��Z8GdF�dGe6ej��Z9GdH�dIe6ej��Z:GdJ�dKe6ej��Z;GdL�dM��Z<GdN�dOe<ej��Z=GdP�dQe<ej��Z>GdR�dSe<ej��Z?GdT�dUe<ej��Z@GdV�dWe<ej��ZAGdX�dYe<ej��ZBGdZ�d[��ZCGd\�d]eCej��ZDGd^�d_eCej��ZEGd`�daeCej��ZFGdb�dceCej��ZGGdd�deeCej��ZHGdf�dgej��ZIdh�ZJGdi�dj��ZKGdk�dl��ZLGdm�dn��ZMGdo�dp��ZNGdq�dr��ZOGds�dt��ZPGdu�dv��ZQddwlmRZRdx�ZSGdy�dzej��ZTGd{�d|��ZUGd}�d~��ZVGd�d�ej��ZWGd��d���ZXGd��d�eX��ZYGd��d�eYej��ZZGd��d�eYej��Z[Gd��d�eYej��Z\Gd��d�eYej��Z]Gd��d�eX��Z^Gd��d�e^ej��Z_Gd��d�e^ej��Z`Gd��d�e^ej��ZaGd��d�e^ej��ZbGd��d�e^ej��ZcGd��d�e^ej��Zdd��Zed��Zfd��Zgd��ZhGd��d�ej��Ziejd�krejk��dSdS)��N)�support)�warnings_helper)�	randrange�shufflec��eZdZdS)�PassThruN��__name__�
__module__�__qualname__���7/usr/local/apps/python3/lib/python3.11/test/test_set.pyrr��������Drrc#�K�t��N)rr
rr�check_pass_thrurs����
�Nrc��eZdZd�Zd�ZdS)�BadCmpc��dS�N�r
��selfs r�__hash__zBadCmp.__hash__����qrc��t�r)�RuntimeError�r�others  r�__eq__z
BadCmp.__eq__s���rN�r
rrrr!r
rrrrs2�������������rrc��eZdZ	d�ZdS)�ReprWrapperc�*�t|j��Sr)�repr�valuers r�__repr__zReprWrapper.__repr__s���D�J���rN)r
rrr(r
rrr$r$s&������0� � � � � rr$c��eZdZ	d�Zd�ZdS)�HashCountingIntc��d|_dS�Nr��
hash_count)r�argss  r�__init__zHashCountingInt.__init__#s
������rc�V�|xjdz
c_t�|��Sr)r.�intrrs rrzHashCountingInt.__hash__%s$�����1�����|�|�D�!�!�!rN)r
rrr0rr
rrr*r*!s5������H����"�"�"�"�"rr*c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestJointOpsc��dx|_}d|_d|_|�|��|_t
�|��|_dS)N�
simsalabim�
madagascar�4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)�word�	otherword�letters�thetype�s�dict�fromkeys�d)rr9s  r�setUpzTestJointOps.setUp,sF��'�'��	�D�%���M������d�#�#������t�$�$����rc��|�t|jgd��|�tt��jd���dS)N�r��a)�assertRaises�	TypeErrorr<�setr0rs r�test_new_or_initzTestJointOps.test_new_or_init3sE�����)�T�\�2�q�9�9�9����)�S�U�U�^�q��9�9�9�9�9rc� �t|j��}t|j��}|�||��|�t
|jt����|�t|jgg��dSr)	�sortedr=r@�assertEqualrFrr<rrG)r�actual�expecteds   r�test_uniquificationz TestJointOps.test_uniquification7st���������$�&�>�>�������*�*�*����(�D�L�/�2C�2C�D�D�D����)�T�\�B�4�8�8�8�8�8rc�z�|�t|j��t|j����dSr)rL�lenr=r@rs r�test_lenzTestJointOps.test_len>s.������T�V���c�$�&�k�k�2�2�2�2�2rc�\�|jD]&}|�||jv||jv���'|�t
|jjgg��|�t|j��g��}|�	|�|j��|��dSr)
r;rLr=r@rFrG�__contains__r<�	frozenset�assertIn)r�cr=s   r�
test_containszTestJointOps.test_containsAs�����	7�	7�A����Q�$�&�[�!�t�v�+�6�6�6�6����)�T�V�%8�2�$�?�?�?��L�L�)�D�L�1�1�2�3�3���
�
�d�l�l�4�<�0�0�!�4�4�4�4�4rc	��|j�|j��}|jD]*}|�||v||jvp||jv���+|�|j|�|j����|�t|��|j	��|�
t|jjt����|�
t|jjgg��ttt jt$t&t(fD�]�}|�|�d���|d����td����|�|�d���|d����td����|�|�d���|d����td����|�|�d���|d����td	����|�|�d���|d��|d
����td�������|���}|�|�tdg��|tdg����|�ddg����dS)
N�abcba�cdc�abcd�efgfe�abcefg�ccb�abc�ef�abcef�fgrrC)r=�unionr:r;rLr@r<r9�type�basetyperFrrrGrHrUr>r?�str�list�tuple)r�urW�C�xs     r�
test_unionzTestJointOps.test_unionHs����F�L�L���(�(����	I�	I�A����Q�!�V�Q�$�&�[�%G�A���4G�H�H�H�H���������d�i�!8�!8�9�9�9�����a���$�-�0�0�0����(�D�F�L�/�2C�2C�D�D�D����)�T�V�\�B�4�8�8�8��i����T�5�@�	[�	[�A����T�\�\�'�2�2�8�8���5���B�B�C��K�K�P�P�P����T�\�\�'�2�2�8�8���7���D�D�c�(�m�m�T�T�T����T�\�\�'�2�2�8�8���5���B�B�C��J�J�O�O�O����T�\�\�'�2�2�8�8���4���A�A�3�w�<�<�P�P�P����T�\�\�'�2�2�8�8���4���!�!�D�'�'�J�J�C�PX�M�M�Z�Z�Z�Z�
�L�L�N�N���������a�S���1�c�1�#�h�h�7�7����q�!�f�9M�9M�N�N�N�N�Nrc�p�|j�|j��}|�|jt	|j��z|��|�|jt|j��z|��	|j|jz|�d��dS#t$rYdSwxYw)Nz(s|t did not screen-out general iterables)r=rdr:rLrHrU�failrG�r�is  r�test_orzTestJointOps.test_or[s����F�L�L���(�(�������#�d�n�"5�"5�5�q�9�9�9������)�D�N�";�";�;�Q�?�?�?�	B��F�T�^�#�#�
�I�I�@�A�A�A�A�A���	�	�	��D�D�	�����B'�'
B5�4B5c	��|j�|j��}|jD]*}|�||v||jvo||jv���+|�|j|�|j����|�t|��|j	��|�
t|jjt����tttjt"t$t&fD�]�}|�|�d���|d����td����|�|�d���|d����td����|�|�d���|d����td����|�|�d���|d����td����|�|�d���|d	��|d
����td�������|�d��}|���}|jt��kr2|�t)|��t)|����dS|�t)|��t)|����dS)NrZr[�ccr]�r_�bcra�cbcf�bag�b)r=�intersectionr:r;rLr@r<r9rerfrFrrrHrUr>r?rgrhri�id�assertNotEqual)rrqrWrkr=�zs      r�test_intersectionzTestJointOps.test_intersectionfs����F�����/�/����	J�	J�A����Q�!�V�Q�$�&�[�%H�Q�$�.�5H�I�I�I�I���������d�i�!8�!8�9�9�9�����a���$�-�0�0�0����(�D�F�$7��9J�9J�K�K�K��i����T�5�@�	`�	`�A����T�\�\�'�2�2�?�?���%���I�I�3�t�9�9�U�U�U����T�\�\�'�2�2�?�?���'�
�
�K�K�S�QS�W�W�U�U�U����T�\�\�'�2�2�?�?���%���I�I�3�t�9�9�U�U�U����T�\�\�'�2�2�?�?���$���H�H�#�b�'�'�R�R�R����T�\�\�'�2�2�?�?���&�	�	�1�1�U�8�8�T�T�VY�Z]�V^�V^�_�_�_�_��L�L��!�!��
�N�N�����<�9�;�;�&�&����R��U�U�B�q�E�E�*�*�*�*�*�����1���r�!�u�u�-�-�-�-�-rc�`�d�}dD]�}|�|��}dD]�}tttjt
ttfD]_}||��}|�|��}|||��}|�	||��|�
|dup|du���`����dS)Nc�J�	t|���|��Sr)rHr{)�s1�s2s  r�fz'TestJointOps.test_isdisjoint.<locals>.f{s"��4��2�w�w�+�+�B�/�/�/�/r)
rvrE�abr`�ababacr[rur]r_raTF)r<rHrUr>r?rgrhri�
isdisjointrL�
assertTrue)	rr��largr��rargrkr�rMrNs	         r�test_isdisjointzTestJointOps.test_isdisjointzs���	0�	0�	0�V�	G�	G�D����d�#�#�B�Y�
G�
G���i����T�5�H�G�G�A���4���B��]�]�2�.�.�F� �q��R�y�y�H��$�$�V�X�6�6�6��O�O�F�d�N�$E�f��o�F�F�F�F�G�
G�	G�	Grc�p�|j�|j��}|�|jt	|j��z|��|�|jt|j��z|��	|j|jz|�d��dS#t$rYdSwxYw)Nz(s&t did not screen-out general iterables)r=r{r:rLrHrUrorGrps  r�test_andzTestJointOps.test_and�s����F�����/�/�������#�d�n�"5�"5�5�q�9�9�9������)�D�N�";�";�;�Q�?�?�?�	B��F�T�^�#�#�
�I�I�@�A�A�A�A�A���	�	�	��D�D�	���rsc	�H�|j�|j��}|jD]*}|�||v||jvo||jv���+|�|j|�|j����|�t|��|j	��|�
t|jjt����|�
t|jjgg��ttt jt$t&t(fD�]�}|�|�d���|d����td����|�|�d���|d����td����|�|�d���|d����td����|�|�d���|d����td����|�|�d�����td����|�|�d���|d��|d	����td
�������dS)NrZr[r�r]r`r_rErarzrW)r=�
differencer:r;rLr@r<r9rerfrFrrrGrHrUr>r?rgrhri�rrqrWrks    r�test_differencezTestJointOps.test_difference�s����F���d�n�-�-����	N�	N�A����Q�!�V�Q�$�&�[�%L�Q�d�n�5L�M�M�M�M���������d�i�!8�!8�9�9�9�����a���$�-�0�0�0����(�D�F�$5��7H�7H�I�I�I����)�T�V�%6���=�=�=��i����T�5�@�	Y�	Y�A����T�\�\�'�2�2�=�=�a�a��h�h�G�G��T���S�S�S����T�\�\�'�2�2�=�=�a�a��j�j�I�I�3�u�:�:�V�V�V����T�\�\�'�2�2�=�=�a�a��h�h�G�G��S���R�R�R����T�\�\�'�2�2�=�=�a�a��g�g�F�F��E�
�
�S�S�S����T�\�\�'�2�2�=�=�?�?��U���L�L�L����T�\�\�'�2�2�=�=�a�a��f�f�a�a��f�f�M�M�s�SV�x�x�X�X�X�X�
	Y�	Yrc�p�|j�|j��}|�|jt	|j��z
|��|�|jt|j��z
|��	|j|jz
|�d��dS#t$rYdSwxYw)Nz(s-t did not screen-out general iterables)r=r�r:rLrHrUrorGrps  r�test_subzTestJointOps.test_sub�s����F���d�n�-�-�������#�d�n�"5�"5�5�q�9�9�9������)�D�N�";�";�;�Q�?�?�?�	B��F�T�^�#�#�
�I�I�@�A�A�A�A�A���	�	�	��D�D�	���rsc��|j�|j��}|jD]+}|�||v||jv||jvz���,|�|j|�|j����|�t|��|j	��|�
t|jjt����|�
t|jjgg��ttt jt$t&t(fD�]K}|�|�d���|d����td����|�|�d���|d����td����|�|�d���|d����td����|�|�d���|d����td	������MdS)
NrZr[�abdr]r^r_rErarb)r=�symmetric_differencer:r;rLr@r<r9rerfrFrrrGrHrUr>r?rgrhrir�s    r�test_symmetric_differencez&TestJointOps.test_symmetric_difference�s���F�'�'���7�7����	L�	L�A����Q�!�V�a�4�6�k�a�4�>�6I�%J�K�K�K�K���������d�i�!8�!8�9�9�9�����a���$�-�0�0�0����(�D�F�$?��AR�AR�S�S�S����)�T�V�%@�2�$�G�G�G��i����T�5�@�	`�	`�A����T�\�\�'�2�2�G�G���%���Q�Q�SV�W\�S]�S]�^�^�^����T�\�\�'�2�2�G�G���'�
�
�S�S�UX�Ya�Ub�Ub�c�c�c����T�\�\�'�2�2�G�G���%���Q�Q�SV�WZ�S[�S[�\�\�\����T�\�\�'�2�2�G�G���$���P�P�RU�V]�R^�R^�_�_�_�_�		`�	`rc�p�|j�|j��}|�|jt	|j��z|��|�|jt|j��z|��	|j|jz|�d��dS#t$rYdSwxYw)Nz(s^t did not screen-out general iterables)r=r�r:rLrHrUrorGrps  r�test_xorzTestJointOps.test_xor�s����F�'�'���7�7�������#�d�n�"5�"5�5�q�9�9�9������)�D�N�";�";�;�Q�?�?�?�	B��F�T�^�#�#�
�I�I�@�A�A�A�A�A���	�	�	��D�D�	���rsc��|�|jt|j����|�|jt	|j����|�|j|jkd��|�|jt|j����|�|jt	|j����|�|j|jkd��dS�NFT)rLr=rHr9rUr}r:rs r�
test_equalityzTestJointOps.test_equality�s���������T�Y���0�0�0�������4�9�!5�!5�6�6�6������4�9�,�e�4�4�4����D�F�C���$7�$7�8�8�8����D�F�I�d�n�$=�$=�>�>�>������4�9�,�d�3�3�3�3�3rc��ttgd���}|�|��}|�t	|��d��dS)N)�abcdef�bcd�bdcb�fed�fedccba�)�maprUr<rLrQ)r�tr=s   r�test_setOfFrozensetsz!TestJointOps.test_setOfFrozensets�sI���	�F�F�F�G�G���L�L��O�O������Q����#�#�#�#�#rc��t|jgd���\}}}|�||k��|�||k��|�||k��|�||k��|�||k��|�||k��|�||k��|�||k��|�||k��|�t	d���d����|�t	d���d����|�t	d���d����|�t	d���d����dS)N)r��abcde�defrEr`�cbs)r�r<r��assertFalserH�issubset�
issuperset)r�p�q�rs    r�test_sub_and_superzTestJointOps.test_sub_and_super�s����d�l�$:�$:�$:�;�;���1�a�����A���������Q���������Q���������A���������Q���������Q���������a�� � � �����Q���������a�� � � �����C���)�)�%�0�0�1�1�1�����E�
�
�-�-�c�2�2�3�3�3�����S���*�*�5�1�1�2�2�2�����U���.�.�s�3�3�4�4�4�4�4rc��ttjdz��D�]5}t|j��t
tfvrdg|j_dg|j_tj	|j|��}tj
|��}|�|j||j�d|����t|j��t
tfvr�|�|jj|j��|�|jj|j��|�t|jd����|j`|j`��7dS)Nrrlr~� != �y)�range�pickle�HIGHEST_PROTOCOLrer=rHrUrlr~�dumps�loadsrLr��hasattr)rrqr��dups    r�
test_picklingzTestJointOps.test_pickling�s���v�.��2�3�3�	'�	'�A��D�F�|�|�C��#3�3�3��5�����5������T�V�Q�'�'�A��,�q�/�/�C����T�V�S�������*D�E�E�E��D�F�|�|�C��#3�3�3�� � ����3�5�1�1�1�� � ����3�5�1�1�1�� � �����!5�!5�6�6�6��F�H�d�f�h��	'�	'rc���ttjdz��D�]F}t|j��}|�|j��}tj||��}tj|��}|�|tj
j��|�|�|��|��tj|��}	t|��}n#t$rY��wxYwtj||��}tj|��}|�|�|��||�|f��z
����HdSr)r�r�r��iterr=r<r�r��assertIsInstance�collectionsr`�IteratorrL�next�
StopIteration)r�proto�itorg�datar@�it�drops       r�test_iterator_picklingz#TestJointOps.test_iterator_pickling�sA���6�2�Q�6�7�7�	M�	M�E����L�L�E��<�<���'�'�D���U�E�*�*�A���a���B�
�!�!�"�k�o�&>�?�?�?����T�\�\�"�-�-�t�4�4�4���a���B�
��B�x�x���� �
�
�
���
������R��'�'�A���a���B����T�\�\�"�-�-�t�d�l�l�D�7�6K�6K�/K�L�L�L�L�%	M�	Ms�C*�*
C7�6C7c���G�fd�d����d��}|�|g��}tj|��}|�t	|��t	|����|D]}|}�|�t	|��t	|����|�|jdz|j��dS)Nc�(��eZdZd�Zd�Zd�fd�	ZdS)�*TestJointOps.test_deepcopy.<locals>.Tracerc��||_dSr�r')rr's  rr0z3TestJointOps.test_deepcopy.<locals>.Tracer.__init__	s
��"��
�
�
rc��|jSrr�rs rrz3TestJointOps.test_deepcopy.<locals>.Tracer.__hash__s
���z�!rNc�*���|jdz��Srr�)r�memo�Tracers  �r�__deepcopy__z7TestJointOps.test_deepcopy.<locals>.Tracer.__deepcopy__
s����v�d�j�1�n�-�-�-rr)r
rrr0rr�)r�s�rr�r�sQ�������
#�
#�
#�
"�
"�
"�
.�
.�
.�
.�
.�
.�
.�
.rr��
r)r<�copy�deepcopyr}r|rLr')rr�r=r��elem�newtr�s      @r�
test_deepcopyzTestJointOps.test_deepcopys����	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�
�F�2�J�J���L�L�!������m�A�������B�q�E�E�2�c�7�7�+�+�+��	�	�D��D�D����B�q�E�E�2�d�8�8�,�,�,������1��d�j�1�1�1�1�1rc����Gd�d���t�fd�td��D����}|D]%}||_||_t|g��|_�&dS)Nc��eZdZdS)�TestJointOps.test_gc.<locals>.ANr	r
rr�Ar���������Drr�c3�,�K�|]}���V��dSrr
)�.0rqr�s  �r�	<genexpr>z'TestJointOps.test_gc.<locals>.<genexpr>s)�����)�)������)�)�)�)�)�)r��)rHr��cycle�sub)rr=r�r�s   @r�test_gczTestJointOps.test_gcs����	�	�	�	�	�	�	�	��)�)�)�)�U�4�[�[�)�)�)�)�)���	#�	#�D��D�J��D�H��D�6�{�{�D�H�H�	#�	#rc�0�Gd�d|j��}|��}t��}|�|��|�||��|�|��|�|��|�|��dS)Nc��eZdZd�ZdS)�6TestJointOps.test_subclass_with_custom_hash.<locals>.Hc�@�tt|��dz��S)Ni���)r2r|rs rrz?TestJointOps.test_subclass_with_custom_hash.<locals>.H.__hash__%s���2�d�8�8�j�0�1�1�1rN)r
rrrr
rr�Hr�$s#������
2�
2�
2�
2�
2rr�)r<rH�addrV�remove�discard)rr�r=r�s    r�test_subclass_with_custom_hashz+TestJointOps.test_subclass_with_custom_hash"s���	2�	2�	2�	2�	2���	2�	2�	2��!�#�#��

�%�%��	���a�����
�
�a�����	�������	���a����	�	�	�!�����rc�L�|�t��g��}|�t|jt��t��g��|�t|jt����t|d��r�|�t|jt����|�t|jt����|�t|jt����dSdS)Nr�)	r<rrFrrTr�r�r�r��rr=s  r�test_badcmpzTestJointOps.test_badcmp/s����L�L�&�(�(��$�$�����,���v�x�x����6J�K�K�K����,������A�A�A��1�e���	@����l�A�E�6�8�8�<�<�<����l�A�I�v�x�x�@�@�@����l�A�H�f�h�h�?�?�?�?�?�	@�	@rc�h�t��}|�|g��}||_|jtkr%|�t|��d��dSt|���d��d}|�t|��|�d|�d���dS)Nz
{set(...)}�(rz({z(...)}))r$r<r'rHrLr&�	partition)r�wr=�names    r�test_cyclical_reprzTestJointOps.test_cyclical_repr:s����M�M���L�L�!���������<�3������T�!�W�W�l�3�3�3�3�3���7�7�$�$�S�)�)�!�,�D����T�!�W�W����t�t�t�&D�E�E�E�E�Erc���d}t�ttt	|������}|�t
d�|D����|��|�|��}|�t
d�|D����|��|�|��|�t
d�|D����|��t|d��r|�
|��|�t
d�|D����|��t�t|����}|�t
d�|D����|��t�t|����}|�t
d�|D����|��t�t|��d	��}|�t
d
�|D����|��|�|t�|d	����dS)Nr�c3�$K�|]}|jV��dSrr-�r�r�s  rr�z<TestJointOps.test_do_not_rehash_dict_keys.<locals>.<genexpr>G�$����;�;��T�_�;�;�;�;�;�;rc3�$K�|]}|jV��dSrr-r�s  rr�z<TestJointOps.test_do_not_rehash_dict_keys.<locals>.<genexpr>Ir�rc3�$K�|]}|jV��dSrr-r�s  rr�z<TestJointOps.test_do_not_rehash_dict_keys.<locals>.<genexpr>Kr�r�symmetric_difference_updatec3�$K�|]}|jV��dSrr-r�s  rr�z<TestJointOps.test_do_not_rehash_dict_keys.<locals>.<genexpr>Nr�rc3�$K�|]}|jV��dSrr-r�s  rr�z<TestJointOps.test_do_not_rehash_dict_keys.<locals>.<genexpr>Pr�rc3�$K�|]}|jV��dSrr-r�s  rr�z<TestJointOps.test_do_not_rehash_dict_keys.<locals>.<genexpr>Rr�r�{c3�$K�|]}|jV��dSrr-r�s  rr�z<TestJointOps.test_do_not_rehash_dict_keys.<locals>.<genexpr>Tr�r)
r>r?r�r*r�rL�sumr<r�r�r�rHrU)r�nr@r=�d2�d3s      r�test_do_not_rehash_dict_keysz)TestJointOps.test_do_not_rehash_dict_keysDs�����M�M�#�o�u�Q�x�x�8�8�9�9������;�;��;�;�;�;�;�Q�?�?�?��L�L��O�O������;�;��;�;�;�;�;�Q�?�?�?�	���Q��������;�;��;�;�;�;�;�Q�?�?�?��1�3�4�4�	-�
�)�)�!�,�,�,�����;�;��;�;�;�;�;�Q�?�?�?�
�]�]�3�q�6�6�
"�
"������;�;��;�;�;�;�;�Q�?�?�?�
�]�]�9�Q�<�<�
(�
(������;�;��;�;�;�;�;�Q�?�?�?�
�]�]�9�Q�<�<��
-�
-������;�;��;�;�;�;�;�Q�?�?�?�����T�]�]�1�c�2�2�3�3�3�3�3rc��Gd�dt��}|��}tj|��}t|dg��}t	|��|_~~t
j��|�|��dud��dS)Nc��eZdZdS)�/TestJointOps.test_container_iterator.<locals>.CNr	r
rrrkrYr�rrkrzCycle was not collected)	�object�weakref�refrHr�rl�gc�collectr�)rrk�objr�	containers     r�test_container_iteratorz$TestJointOps.test_container_iteratorWs���	�	�	�	�	��	�	�	��a�c�c���k�#������a��M�M�	��Y�������
�
������������
�'@�A�A�A�A�Arc�F�tj|t|j��dSr)r�check_free_after_iteratingr�r<rs r�test_free_after_iteratingz&TestJointOps.test_free_after_iteratingcs���*�4��t�|�D�D�D�D�DrN)r
rrrArIrOrRrXrmrrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr
rrr4r4)s�������%�%�%�:�:�:�9�9�9�3�3�3�5�5�5�O�O�O�&	B�	B�	B�.�.�.�(G�G�G�	B�	B�	B�Y�Y�Y� 	B�	B�	B�`�`�`�	B�	B�	B�4�4�4�$�$�$�
5�5�5� '�'�'�M�M�M�*2�2�2�"#�#�#����	@�	@�	@�F�F�F�4�4�4�&
B�
B�
B�E�E�E�E�Err4c���eZdZeZeZd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zej e!ed��d��d���Z"dS)�TestSetc��|���}|�|j��|�|t	|j����|�|j��|�|t	|j����|�t|j|d��|�t|jd��dS)NrCr)r<r0r9rLrHr:rFrGr�s  r�	test_initzTestSet.test_initjs����L�L�N�N��	�
�
�4�9��������C��	�N�N�+�+�+�	�
�
�4�>�"�"�"�����C���/�/�0�0�0����)�Q�Z��A�6�6�6����)�Q�Z��3�3�3�3�3rc���|�td����}|�|��}|�t|��t|����dS�Nr��r<r�r}r|�rr=r�s   r�test_constructor_identityz!TestSet.test_constructor_identitys�P���L�L��q���"�"���L�L��O�O�����B�q�E�E�2�a�5�5�)�)�)�)�)rc�\�tgd���}hd�}|�||��dS)N�rrCr��rrCr��rHrLrs   r�test_set_literalzTestSet.test_set_literalxs6������L�L���G�G������A�����rc���hd�}|�t|��d��|���}|�t|��t��dS)N>rr)rLrQ�poprer2)rr=�stored_values   r� test_set_literal_insertion_orderz(TestSet.test_set_literal_insertion_order}sX���N�N������Q����#�#�#��u�u�w�w������l�+�+�S�1�1�1�1�1rc���g��fd�}|d��|d��|d��h}|��gd���dS)Nc�2����|��dSr)�append)r�eventss �r�recordz9TestSet.test_set_literal_evaluation_order.<locals>.record�s����M�M�#�����rrrCr�r")rL)rr.r=r-s   @r�!test_set_literal_evaluation_orderz)TestSet.test_set_literal_evaluation_order�se�����	�	�	�	�	�
�V�A�Y�Y���q�	�	�6�6�!�9�9�-���������+�+�+�+�+rc�R�|�tt|j��dSr)rFrG�hashr=rs r�	test_hashzTestSet.test_hash�s"�����)�T�4�6�2�2�2�2�2rc���|j���|�|jt����|�t	|j��d��dSr,)r=�clearrLrHrQrs r�
test_clearzTestSet.test_clear�sQ�����������������'�'�'�����T�V���a�(�(�(�(�(rc�(�|j���}|�|j|��|�t	|j��t	|����|�t|��|j��dSr)r=r�rLr}r|rerf�rr�s  r�	test_copyzTestSet.test_copy�sq���f�k�k�m�m��������%�%�%����B�t�v�J�J��3���0�0�0�����c���D�M�2�2�2�2�2rc�X�|j�d��|�d|j��|j���}|j�d��|�|j|��|�t|jjg��dS)N�Q)r=r�rVr�rLrFrGr7s  r�test_addzTestSet.test_add�s�����
�
�3�����
�
�c�4�6�"�"�"��f�k�k�m�m����
�
�3����������%�%�%����)�T�V�Z��4�4�4�4�4rc���|j�d��|�d|j��|�t|jjd��|�t
|jjg��|�t|j��g��}|�	|�|j��|��|�|�|j����|�|�|j��|��|�t|jj|�|j����dS�NrEr:)
r=r��assertNotInrF�KeyErrorrGr<rUr9rVr�s  r�test_removezTestSet.test_remove�s����
�
�c��������d�f�%�%�%����(�D�F�M�3�7�7�7����)�T�V�]�B�7�7�7��L�L�)�D�I�.�.�/�0�0���
�
�d�l�l�4�9�-�-�q�1�1�1�	������d�i�(�(�)�)�)�������d�i�0�0�!�4�4�4����(�D�F�M�4�<�<��	�3J�3J�K�K�K�K�Krc���dD]k}	|j�|��|����2#t$r-}|jd}|�||��Yd}~�dd}~wwxYwdS)N)r:�rr)r=r�ror?r/rL)r�v1�e�v2s    r�test_remove_keyerror_unpackingz&TestSet.test_remove_keyerror_unpacking�s����	�	�B�
���
�
�b�!�!�!�
�	�	������	�
)�
)�
)��V�A�Y��� � ��R�(�(�(�(�(�(�(�(�����
)����	�	s�5�
A,�#A'�'A,c	�F�|�ddg��}	|j�|��|���dS#t$rM}|�|jd|ud�||jd����Yd}~dSd}~wwxYw)Nr��rzKeyError should be {0}, not {1})r<r=r�ror?r�r/�format)r�keyrDs   r�test_remove_keyerror_setz TestSet.test_remove_keyerror_set�s����l�l�A�q�6�"�"��	��F�M�M�#����
�I�I�K�K�K�K�K���	N�	N�	N��O�O�A�F�1�I��,�:�A�A�#�BC�&��)�M�M�
N�
N�
N�
N�
N�
N�
N�
N�
N�����	N���s�A	�	
B �AB�B c��|j�d��|�d|j��|j�d��|�t|jjg��|�t
|j��g��}|�|�|j��|��|�|�|j����|�|�|j��|��|�|�|j����dSr=)	r=r�r>rFrGr<rUr9rVr�s  r�test_discardzTestSet.test_discard�s������s��������d�f�%�%�%�����s�������)�T�V�^�R�8�8�8��L�L�)�D�I�.�.�/�0�0���
�
�d�l�l�4�9�-�-�q�1�1�1�	�	�	�$�,�,�t�y�)�)�*�*�*�������d�i�0�0�!�4�4�4�	�	�	�$�,�,�t�y�)�)�*�*�*�*�*rc��tt|j����D]6}|j���}|�||j���7|�t|jj��dSr)r�rQr=r'r>rFr?)rrqr�s   r�test_popzTestSet.test_pop�sk���s�4�6�{�{�#�#�	+�	+�A��6�:�:�<�<�D����T�4�6�*�*�*�*����(�D�F�J�/�/�/�/�/rc
�N�|j�|j��}|�|d��|j|jzD]}|�||j���|�t|jjt����|�t|jjgg��dD]�\}}tttj
ttt fD]l}|�d��}|�|�||����d��|�|t|�����m��dD]�}d}tttj
ttt fD]�}|�d��}|�|�||��||����d��|�|t|��t|��zt|��z������dS)N))r[r\�r]r^)r_r`�rarbrZ)r[r]r_ra�abcda�ahi)r=�updater:rLr9rVrFrrrGrHrUr>r?rgrhrir<�r�retvalrWr�r�rkr=s       r�test_updatezTestSet.test_update�s�������t�~�.�.�������&�&�&��)�d�n�,�	%�	%�A��M�M�!�T�V�$�$�$�$����(�D�F�M�?�3D�3D�E�E�E����)�T�V�]�R�D�9�9�9�[�	,�	,�D�A�q��)�T�]�C��u�D�
,�
,���L�L��)�)��� � ����!�!�A�$�$����6�6�6�� � ��C��F�F�+�+�+�+�
,�8�	>�	>�A��A��)�T�]�C��u�D�
>�
>���L�L��)�)��� � ����!�!�A�$�$���!���!5�!5�t�<�<�<�� � ��C��F�F�S��V�V�O�c�!�f�f�$<�=�=�=�=�
>�	>�	>rc��|xjt|j��zc_|j|jzD]}|�||j���dSr)r=rHr:r9rV�rrWs  r�test_iorzTestSet.test_ior�sW�����#�d�n�%�%�%����)�d�n�,�	%�	%�A��M�M�!�T�V�$�$�$�$�	%�	%rc
�P�|j�|j��}|�|d��|j|jzD]K}||jvr%||jvr|�||j���0|�||j���L|�t|jjt����|�t|jjgg��dD�]8\}}tttjtt t"fD�]}|�d��}|�|�||����d��|�|t|����d}|�|��}d}|�|�||��||����d��|�|td��t|��zt|��z������:dS)N))r[rW)r]rv)r_rw)rarvrZ�cbc)r=�intersection_updater:rLr9rVr>rFrrrGrHrUr>r?rgrhrir<)	rrWrWr�r�rkr=�ssr�s	         r�test_intersection_updatez TestSet.test_intersection_update�s�����+�+�D�N�;�;�������&�&�&��)�d�n�,�	,�	,�A��D�N�"�"�q�D�I�~�~��
�
�a���(�(�(�(�� � ��D�F�+�+�+�+����(�D�F�$>��@Q�@Q�R�R�R����)�T�V�%?�"��F�F�F�L�		@�		@�D�A�q��)�T�]�C��u�D�
@�
@���L�L��)�)��� � ��!6�!6�q�q��t�t�!<�!<�d�C�C�C�� � ��C��F�F�+�+�+����L�L��$�$����� � ��!6�!6�q�q��t�t�Q�Q�q�T�T�!B�!B�D�I�I�I�� � ��C��L�L��Q���$7��A���$>�?�?�?�?�
@�		@�		@rc��|xjt|j��zc_|j|jzD]K}||jvr%||jvr|�||j���0|�||j���LdSr�r=rHr:r9rVr>rZs  r�	test_iandzTestSet.test_iands������#�d�n�%�%�%����)�d�n�,�	,�	,�A��D�N�"�"�q�D�I�~�~��
�
�a���(�(�(�(�� � ��D�F�+�+�+�+�		,�	,rc	��|j�|j��}|�|d��|j|jzD]K}||jvr%||jvr|�||j���0|�||j���L|�t|jjt����|�t|jjgg��|�t|jjgg��dD�]�\}}tttjt t"t$fD�]�}|�d��}|�|�||����d��|�|t|����|�d��}|���|�||�d����|�d��}|�|d����|�||�d����|�d��}|�|d��|d����|�||�d����������dS)N))r[r�)r]r`�r_rE)rar`rZ�
abcdefghih�aba�cdefghihr[�efghih)r=�difference_updater:rLr9rVr>rFrrrGr�rHrUr>r?rgrhrir<rVs       r�test_difference_updatezTestSet.test_difference_update	s|����)�)�$�.�9�9�������&�&�&��)�d�n�,�	,�	,�A��D�I�~�~�!�4�>�"9�"9��
�
�a���(�(�(�(�� � ��D�F�+�+�+�+����(�D�F�$<�o�>O�>O�P�P�P����)�T�V�%=��t�D�D�D����)�T�V�%G�"��N�N�N�R�	<�	<�D�A�q��)�T�]�C��u�D�
<�
<���L�L��)�)��� � ��!4�!4�Q�Q�q�T�T�!:�!:�D�A�A�A�� � ��C��F�F�+�+�+��L�L��.�.���#�#�%�%�%�� � ��D�L�L��$>�$>�?�?�?��L�L��.�.���#�#�A�A�e�H�H�-�-�-�� � ��D�L�L��$<�$<�=�=�=��L�L��.�.���#�#�A�A�e�H�H�a�a��h�h�7�7�7�� � ��D�L�L��$:�$:�;�;�;�;�
<�	<�	<rc��|xjt|j��zc_|j|jzD]K}||jvr%||jvr|�||j���0|�||j���LdSrrbrZs  r�	test_isubzTestSet.test_isub&s������#�d�n�%�%�%����)�d�n�,�	,�	,�A��D�I�~�~�!�4�>�"9�"9��
�
�a���(�(�(�(�� � ��D�F�+�+�+�+�		,�	,rc	��|j�|j��}|�|d��|j|jzD]L}||jv||jvzr|�||j���1|�||j���M|�t|jjt����|�t|jjgg��dD]�\}}tttjtt t"fD]l}|�d��}|�|�||����d��|�|t|�����m��dS)N))r[r�rQrerRrZ)r=r�r:rLr9rVr>rFrrrGrHrUr>r?rgrhrir<rVs       r� test_symmetric_difference_updatez(TestSet.test_symmetric_difference_update.ss����3�3�D�N�C�C�������&�&�&��)�d�n�,�	,�	,�A��T�Y��1���#6�7�
,��
�
�a���(�(�(�(�� � ��D�F�+�+�+�+����(�D�F�$F��HY�HY�Z�Z�Z����)�T�V�%G�"��N�N�N�X�	,�	,�D�A�q��)�T�]�C��u�D�
,�
,���L�L��)�)��� � ��!>�!>�q�q��t�t�!D�!D�d�K�K�K�� � ��C��F�F�+�+�+�+�
,�	,�	,rc��|xjt|j��zc_|j|jzD]L}||jv||jvzr|�||j���1|�||j���MdSrrbrZs  r�	test_ixorzTestSet.test_ixor>s������#�d�n�%�%�%����)�d�n�,�	,�	,�A��T�Y��1���#6�7�
,��
�
�a���(�(�(�(�� � ��D�F�+�+�+�+�		,�	,rc��|j���}||z}|�||j��||z}|�||j��||z}|�||�����|j���}||z}|�||�����dSr)r=r�rLr<)rr�s  r�test_inplace_on_selfzTestSet.test_inplace_on_selfFs����F�K�K�M�M��	�Q�������D�F�#�#�#�	�Q�������D�F�#�#�#�	�Q�������D�L�L�N�N�+�+�+��F�K�K�M�M��	�Q�������D�L�L�N�N�+�+�+�+�+rc�$�|�d��}tj|��}|�t	|��t	|����d}tj��|�tt|��dS)N�gallahad)	r<r
�proxyrLrgr�
gc_collectrF�ReferenceError)rr=r�s   r�test_weakrefzTestSet.test_weakrefRsv���L�L��$�$���M�!��������Q����Q���(�(�(�����������.�#�q�1�1�1�1�1rc�x�Gd�d��}hd�}|��}||k|�|j��|��}||k|�|j��|��}||k|�|j��|��}||k|�|j��dS)Nc�&�eZdZd�Zd�Zd�Zd�ZdS)�5TestSet.test_rich_compare.<locals>.TestRichSetComparec��d|_dS�NTF)�	gt_called�r�some_sets  r�__gt__z<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__gt__\���!%����urc��d|_dSr~)�	lt_calledr�s  r�__lt__z<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__lt___r�rc��d|_dSr~)�	ge_calledr�s  r�__ge__z<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__ge__br�rc��d|_dSr~)�	le_calledr�s  r�__le__z<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__le__er�rN)r
rrr�r�r�r�r
rr�TestRichSetComparer|[sP������
�
�
�
�
�
�
�
�
�
�
�
�
�
rr�r#)r�rr�r�r�)rr��myset�myobjs    r�test_rich_comparezTestSet.test_rich_compareZs���	�	�	�	�	�	�	�	�"�	�	��"�"�$�$��
��
�
������(�(�(�"�"�$�$��
��
�
������(�(�(�"�"�$�$��
���������(�(�(�"�"�$�$��
���������(�(�(�(�(r�
test_c_apiz*C API test only available in a debug buildc�n�|�t�����d��dS�NT)rLrHr�rs rr�zTestSet.test_c_api~s0��	
������)�)�+�+�T�2�2�2�2�2rN)#r
rrrHr<rfrrr%r)r/r2r5r8r;r@rFrKrMrOrXr[r`rcrkrmrorqrsryr��unittest�
skipUnlessr�r�r
rrrrfs��������G��H�4�4�4�*�*�*�
���
2�2�2�,�,�,�3�3�3�)�)�)�
3�3�3�5�5�5�	L�	L�	L�	�	�	�	�	�	�	+�	+�	+�0�0�0�>�>�>�&%�%�%�
@�@�@�*,�,�,�<�<�<�:,�,�,�,�,�,� ,�,�,�
,�
,�
,�2�2�2�")�")�")�H�X�����l�3�3�E�G�G�3�3�G�G�3�3�3rrc��eZdZdS)�SetSubclassNr	r
rrr�r��rrr�c��eZdZeZeZd�ZdS)�TestSetSubclassc���Gd�dt��}|ddg��}|�t|��|��|�t|��ddh��|�t
��5|d���ddd��n#1swxYwYGd�dt��}|ddgd	�
��}|�t|��|��|�t|��ddh��|�|jd	��Gd�dt��}|ddg��}|�t|��|��|�t|��ddh��|�|j��|�t
��5|ddgd	�
��ddd��dS#1swxYwYdS)
Nc��eZdZdS)�;TestSetSubclass.test_keywords_in_subclass.<locals>.subclassNr	r
rr�subclassr��r�rr�rrCr
��sequencec� ��eZdZd�fd�	Z�xZS)�ETestSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_initNc�X��t���|��||_dSr)�superr0�newarg)r�argr��	__class__s   �rr0zNTestSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_init.__init__�s&������ � ��%�%�%�$����rr)r
rrr0�
__classcell__�r�s@r�subclass_with_initr��s=�������
%�
%�
%�
%�
%�
%�
%�
%�
%�
%rr�r��r�c� ��eZdZd�fd�	Z�xZS)�DTestSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_newNc�Z��t���||��}||_|Sr�r��__new__r���clsr�r�rr�s    �rr�zLTestSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_new.__new__��&����w�w���s�C�0�0��$����rr�r
rrr�r�r�s@r�subclass_with_newr���=�������
�
�
�
�
�
�
�
�
�
rr�)rH�assertIsrerLrFrGr��assertIsNone�rr�rjr�r�s     r�test_keywords_in_subclassz)TestSetSubclass.test_keywords_in_subclass�s���	�	�	�	�	�s�	�	�	��H�a��V�����
�
�d�1�g�g�x�(�(�(�����Q���!�Q��(�(�(�
�
�
�y�
)�
)�	"�	"��H�b�!�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�	%�	%�	%�	%�	%��	%�	%�	%�
���1�v�a�0�0�0���
�
�d�1�g�g�1�2�2�2�����Q���!�Q��(�(�(������1�%�%�%�	�	�	�	�	��	�	�	�

��q�!�f�%�%���
�
�d�1�g�g�0�1�1�1�����Q���!�Q��(�(�(����!�(�#�#�#�
�
�
�y�
)�
)�	0�	0���q�!�f�Q�/�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	0�	0s$�
B�B �#B �G%�%G)�,G)N)r
rrr�r<rHrfr�r
rrr�r��s-�������G��H�0�0�0�0�0rr�c�@�eZdZeZeZd�Zd�Zd�Zd�Z	d�Z
d�Zd�ZdS)	�
TestFrozenSetc��|�|j��}|�|j��|�|t|j����dSr)r<r9r0r:rLrHr�s  rrzTestFrozenSet.test_init�sM���L�L���#�#��	�
�
�4�>�"�"�"�����C��	�N�N�+�+�+�+�+rc���|�td����}|�|��}|�t|��t|����dSr)r<r�rLr|rs   rrz'TestFrozenSet.test_constructor_identity�sP���L�L��q���"�"���L�L��O�O������A����1���&�&�&�&�&rc���|�t|�d����t|�d������d��fd�t���D��}t	��}td��D]F}t|��|�t|�|�������G|�t|��d��dS)N�abcdeb�ebecda�dc�.��g|]}t�����Sr
�r)r�rqrs  �r�
<listcomp>z+TestFrozenSet.test_hash.<locals>.<listcomp>�s���.�.�.��y��|�|�.�.�.r��r)rLr1r<r�rHrr�rQ)r�seq�resultsrqrs    @rr2zTestFrozenSet.test_hash�s��������d�l�l�8�4�4�5�5��d�l�l�8�4�4�5�5�	7�	7�	7�
��.�.�.�.�U�1�X�X�.�.�.���%�%���s���	1�	1�A��C�L�L�L��K�K��T�\�\�#�.�.�/�/�0�0�0�0�����W���q�)�)�)�)�)rc��|j���}|�t|j��t|����dSr)r=r�rLr|r7s  rr8zTestFrozenSet.test_copy�s;���f�k�k�m�m������D�F���R��W�W�-�-�-�-�-rc��ttd����td��zdgz}|�|��}|�t|����}|�||��|�t
|��t
|����i}d||<|�||d��dS)Nr��abcdefg�apple�*)rhr�r<�reversedrLr}r|)rr��key1�key2r@s     r�test_frozen_as_dictkeyz$TestFrozenSet.test_frozen_as_dictkey�s����5��9�9�o�o��Y���/�7�)�;���|�|�C� � ���|�|�H�S�M�M�*�*������t�$�$�$����B�t�H�H�b��h�h�/�/�/�����$������4��"�%�%�%�%�%rc��|�d��}|�t|��t|����dS)N�abcdcda)r<rLr1�rr�s  r�test_hash_cachingzTestFrozenSet.test_hash_caching�s;���L�L��#�#������a���$�q�'�'�*�*�*�*�*rc
�P�
��d}t��}|j}d�t|��D��}td|z��D]3�
|tt	�
fd�|D���������4|�t
|��d|z��d�}d�}td��D]q}d|z}|dz
�t|fD][}t
�fd	�tt|||������D����}	|�d
|	z|���\�rdS)N�
c�"�g|]}|dzd|zf��
SrBr
�r�rqs  rr�z9TestFrozenSet.test_hash_effectiveness.<locals>.<listcomp>�s$��3�3�3�Q�a��c�1�a�4�[�3�3�3rrCc�$��g|]\}}|�z�
|��
Sr
r
)r�rD�mrqs   �rr�z9TestFrozenSet.test_hash_effectiveness.<locals>.<listcomp>�s&���(H�(H�(H�t�q�!�A�a�C�(H��(H�(H�(Hrc��t��g}t|dz
��D]&}t|��}|�|���'|d|�Sr)rUr�r,)r�numsrq�nums    r�zf_rangez7TestFrozenSet.test_hash_effectiveness.<locals>.zf_range�sS���K�K�=�D��1�Q�3�Z�Z�
!�
!����o�o�����C� � � � �����8�Orc3�K�tt|��dz��D]0}ttt	j||����Ed{V���1dSr)r�rQr�rU�	itertools�combinations)r=rqs  r�powersetz7TestFrozenSet.test_hash_effectiveness.<locals>.powerset�se�����3�q�6�6�!�8�_�_�
H�
H���y�)�*@��A�*F�*F�G�G�G�G�G�G�G�G�G�G�
H�
Hr�rc���h|]}|�z��Sr
r
)r��h�masks  �r�	<setcomp>z8TestFrozenSet.test_hash_effectiveness.<locals>.<setcomp>�s���H�H�H�a��T��H�H�HrrH)	rHr�r�r1rUrLrQr��
assertGreater)rr�
hashvalues�addhashvalue�	elemmasksr�r�r�r�rjrqr�s          @@r�test_hash_effectivenessz%TestFrozenSet.test_hash_effectiveness�sm�������U�U�
�!�~��3�3�%��(�(�3�3�3�	��q�!�t���	L�	L�A��L��i�(H�(H�(H�(H�y�(H�(H�(H�I�I�J�J�K�K�K�K�����Z���!�Q�$�/�/�/�	�	�	�	H�	H�	H��r���	+�	+�A��Q��A��q�5�D���)�
+�
+���H�H�H�H�3�t�X�X�d�d�1�g�g�5F�5F�+G�+G�H�H�H�I�I���"�"�1�Q�3��*�*�*�*�
+�	+�	+rN)
r
rrrUr<rfrrr2r8r�r�r�r
rrr�r��s��������G��H�,�,�,�
'�'�'�
*�*�*�.�.�.�&�&�&�+�+�+�+�+�+�+�+rr�c��eZdZdS)�FrozenSetSubclassNr	r
rrr�r��rrr�c�4�eZdZeZeZd�Zd�Zd�Z	d�Z
d�ZdS)�TestFrozenSetSubclassc�f�Gd�dt��}|ddg��}|�t|��|��|�t	|��ddh��|�t��5|d���ddd��n#1swxYwYGd�dt��}|ddgd	�
��}|�t|��|��|�t	|��ddh��|�|jd	��Gd�dt��}|ddgd	�
��}|�t|��|��|�t	|��ddh��|�|jd	��dS)
Nc��eZdZdS)�ATestFrozenSetSubclass.test_keywords_in_subclass.<locals>.subclassNr	r
rrr�r��r�rr�rrCr
r�c��eZdZdd�ZdS)�KTestFrozenSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_initNc��||_dSrr�)rr�r�s   rr0zTTestFrozenSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_init.__init__s
��$����rr)r
rrr0r
rrr�r�s(������
%�
%�
%�
%�
%�
%rr�r�r�c� ��eZdZd�fd�	Z�xZS)�JTestFrozenSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_newNc�Z��t���||��}||_|Srr�r�s    �rr�zRTestFrozenSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_new.__new__r�rrr�r�s@rr�r�r�rr�)rUr�rerLrHrFrGr�r�s     rr�z/TestFrozenSetSubclass.test_keywords_in_subclass�s+��	�	�	�	�	�y�	�	�	��H�a��V�����
�
�d�1�g�g�x�(�(�(�����Q���!�Q��(�(�(�
�
�
�y�
)�
)�	"�	"��H�b�!�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�	%�	%�	%�	%�	%��	%�	%�	%�
���1�v�a�0�0�0���
�
�d�1�g�g�1�2�2�2�����Q���!�Q��(�(�(������1�%�%�%�	�	�	�	�	�	�	�	�	�

��q�!�f�Q�/�/�/���
�
�d�1�g�g�0�1�1�1�����Q���!�Q��(�(�(������1�%�%�%�%�%s�
B�B �#B c���|�td����}|�|��}|�t|��t|����dSrrrs   rrz/TestFrozenSetSubclass.test_constructor_identityr rc��|j���}|�t|j��t|����dSr)r=r�r}r|r7s  rr8zTestFrozenSetSubclass.test_copys;���f�k�k�m�m�����B�t�v�J�J��3���0�0�0�0�0rc��|���}|�|��}|�||��dSr)r<rLrs   r�test_nested_empty_constructorz3TestFrozenSetSubclass.test_nested_empty_constructors:���L�L�N�N���L�L��O�O������A�����rc�.�|j}t��}|��}|��|g��|d��|d��|��|g��|d��|d��|td����||����|t����||||��||��g}|�t	tt
t|������t	|����dS)Nr
rvr)r<rUr�rLrQrHr�r|)r�	Frozensetr��F�efss     r�test_singleton_empty_frozensetz4TestFrozenSetSubclass.test_singleton_empty_frozenset#s����L�	��K�K���I�K�K���y�{�{�I�I�b�M�M�9�9�R�=�=�)�)�B�-�-��y�{�{�I�I�b�M�M�9�9�R�=�=�)�)�B�-�-��y��q���"�"�I�I�i�i�k�k�$:�$:��y����%�%�q�!�Y�Y�q�\�\�9�9�Q�<�<�I��
	
����S��R����.�.�/�/��S���:�:�:�:�:rN)r
rrr�r<rUrfr�rr8r�rr
rrr�r��si�������G��H�&�&�&�6*�*�*�
1�1�1����
	;�	;�	;�	;�	;rr�c��eZdZdZdS)�SetSubclassWithSlots�rlr��__dict__N�r
rr�	__slots__r
rrrr/�������&�I�I�Irrc�.�eZdZeZejZejZdS)�TestSetSubclassWithSlotsN)r
rrrr<r4rAr�r
rrrr2s#������"�G���E� �.�M�M�Mrrc��eZdZdZdS)�FrozenSetSubclassWithSlotsrNrr
rrr
r
7r	rr
c��eZdZeZdS)�TestFrozenSetSubclassWithSlotsN)r
rrr
r<r
rrrr:s������(�G�G�Grrc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestBasicOpsc�r�|j�/|�t|j��|j��dSdSr)r&rLrHrs r�	test_reprzTestBasicOps.test_reprEs8���9� ����T�$�(�^�^�T�Y�7�7�7�7�7�!� rc��t|j��}|�|�d����|�|�d����|dd��d��}|���d�|jD��}|���|�||��dS)N�{�}r���z, c�,�g|]}t|����Sr
)r&)r�r's  rr�z:TestBasicOps.check_repr_against_values.<locals>.<listcomp>Ps��C�C�C�e�d�5�k�k�C�C�Cr)	r&rHr��
startswith�endswith�split�sort�valuesrL)r�text�result�sorted_repr_valuess    r�check_repr_against_valuesz&TestBasicOps.check_repr_against_valuesIs����D�H�~�~���������,�,�-�-�-�����
�
�c�*�*�+�+�+��a��d��!�!�$�'�'�����
�
�
�C�C�t�{�C�C�C�����!�!�!�����!3�4�4�4�4�4rc�`�|�t|j��|j��dSr)rLrQrH�lengthrs r�test_lengthzTestBasicOps.test_lengthTs(������T�X�����4�4�4�4�4rc�F�|�|j|j��dSr�rLrHrs r�test_self_equalityzTestBasicOps.test_self_equalityW�"�������4�8�,�,�,�,�,rc�F�|�|j|j��dSr)rLrHr�rs r�test_equivalent_equalityz%TestBasicOps.test_equivalent_equalityZr(rc�j�|�|j���|j��dSr)rLrHr�r�rs rr8zTestBasicOps.test_copy]s*�����������$�(�3�3�3�3�3rc�Z�|j|jz}|�||j��dSr�rHrLr��rrs  r�test_self_unionzTestBasicOps.test_self_union`�.����D�H�$��������*�*�*�*�*rc�Z�|jtz}|�||j��dSr�rH�	empty_setrLr�r.s  r�test_empty_unionzTestBasicOps.test_empty_uniond�,����I�%��������*�*�*�*�*rc�Z�t|jz}|�||j��dSr)r3rHrLr�r.s  r�test_union_emptyzTestBasicOps.test_union_emptyhs,���T�X�%��������*�*�*�*�*rc�Z�|j|jz}|�||j��dSrr-r.s  r�test_self_intersectionz#TestBasicOps.test_self_intersectionlr0rc�Z�|jtz}|�|t��dSr�rHr3rLr.s  r�test_empty_intersectionz$TestBasicOps.test_empty_intersectionps*����I�%�������+�+�+�+�+rc�Z�t|jz}|�|t��dSr�r3rHrLr.s  r�test_intersection_emptyz$TestBasicOps.test_intersection_emptyt�*���T�X�%�������+�+�+�+�+rc�|�|j�|j��}|�||j��dSr�rHr�rLr.s  r�test_self_isdisjointz!TestBasicOps.test_self_isdisjointxs9����$�$�T�X�.�.������T�X��.�.�.�.�.rc�p�|j�t��}|�|d��dSr�)rHr�r3rLr.s  r�test_empty_isdisjointz"TestBasicOps.test_empty_isdisjoint|s3����$�$�Y�/�/�������&�&�&�&�&rc�p�t�|j��}|�|d��dSr�)r3r�rHrLr.s  r�test_isdisjoint_emptyz"TestBasicOps.test_isdisjoint_empty�s3���%�%�d�h�/�/�������&�&�&�&�&rc�Z�|j|jz}|�|t��dSr�rHrLr3r.s  r�test_self_symmetric_differencez+TestBasicOps.test_self_symmetric_difference��,����D�H�$�������+�+�+�+�+rc�Z�|jtz}|�||j��dSrr;r.s  r�test_empty_symmetric_differencez,TestBasicOps.test_empty_symmetric_difference�r5rc�Z�|j|jz
}|�|t��dSrrIr.s  r�test_self_differencez!TestBasicOps.test_self_difference�rKrc�Z�|jtz
}|�||j��dSrr2r.s  r�test_empty_differencez"TestBasicOps.test_empty_difference�r5rc�Z�t|jz
}|�|t��dSrr>r.s  r�test_empty_difference_revz&TestBasicOps.test_empty_difference_rev�r@rc���|jD]}|�||j���t|j��}|�|���t
|j����dSr)rHrVrr�rL�__length_hint__rQ)r�v�setiters   r�test_iterationzTestBasicOps.test_iteration�si����	*�	*�A��M�M�!�T�[�)�)�)�)��t�x�.�.������0�0�2�2�C���M�M�B�B�B�B�Brc���ttjdz��D]V}tj|j|��}tj|��}|�|j||j�d|�����WdS)Nrr�)r�r�r�r�rHr�rL)rr�r�r�s    rr�zTestBasicOps.test_pickling�s~���6�2�Q�6�7�7�	<�	<�E���T�X�u�-�-�A��<��?�?�D����T�X�t�+/�8�8�8�T�T�:�
<�
<�
<�
<�	<�	<rc�T�|�t��5t���d��ddd��n#1swxYwY|�t��5t���d��ddd��dS#1swxYwYdS)Nr)rFrGrHr�rjrs r�test_issue_37219zTestBasicOps.test_issue_37219�s��
�
�
�y�
)�
)�	"�	"��E�E���S�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�
�
�
�y�
)�
)�	)�	)��E�E�#�#�C�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s#�"A	�	A
�A
�."B�B!�$B!N)r
rrrr!r$r'r*r8r/r4r7r9r<r?rCrErGrJrMrOrQrSrXr�r[r
rrrrCsp������8�8�8�	5�	5�	5�5�5�5�-�-�-�-�-�-�4�4�4�+�+�+�+�+�+�+�+�+�+�+�+�,�,�,�,�,�,�/�/�/�'�'�'�'�'�'�,�,�,�+�+�+�,�,�,�+�+�+�,�,�,�C�C�C�<�<�<�)�)�)�)�)rrc��eZdZd�ZdS)�TestBasicOpsEmptyc��d|_g|_t|j��|_t|j��|_d|_d|_dS)Nz	empty setrzset()��caserrHr�r#r&rs rrAzTestBasicOpsEmpty.setUp�sD��!��	�����$�+�&�&����$�+�&�&��������	�	�	rN�r
rrrAr
rrr]r]�s#����������rr]c� �eZdZd�Zd�Zd�ZdS)�TestBasicOpsSingletonc��d|_dg|_t|j��|_t|j��|_d|_d|_dS)Nzunit set (number)r�rz{3}r_rs rrAzTestBasicOpsSingleton.setUp�sF��)��	��c����$�+�&�&����$�+�&�&��������	�	�	rc�<�|�d|j��dSr�rVrHrs r�test_inzTestBasicOpsSingleton.test_in�s���
�
�a���"�"�"�"�"rc�<�|�d|j��dS�NrC�r>rHrs r�test_not_inz!TestBasicOpsSingleton.test_not_in�� ������D�H�%�%�%�%�%rN�r
rrrArgrkr
rrrcrc�sA���������#�#�#�&�&�&�&�&rrcc� �eZdZd�Zd�Zd�ZdS)�TestBasicOpsTuplec��d|_dg|_t|j��|_t|j��|_d|_d|_dS)Nzunit set (tuple)�r�zerorz
{(0, 'zero')}r_rs rrAzTestBasicOpsTuple.setUp�sF��(��	�"�m����$�+�&�&����$�+�&�&������%��	�	�	rc�<�|�d|j��dS)Nrqrfrs rrgzTestBasicOpsTuple.test_in�s���
�
�k�4�8�,�,�,�,�,rc�<�|�d|j��dS)N�	rjrs rrkzTestBasicOpsTuple.test_not_in�rlrNrmr
rrroro�sA������&�&�&�-�-�-�&�&�&�&�&rroc��eZdZd�ZdS)�TestBasicOpsTriplec��d|_ddtjg|_t	|j��|_t	|j��|_d|_d|_dS)Nz
triple setrrrr�)r`�operatorr�rrHr�r#r&rs rrAzTestBasicOpsTriple.setUp�sM��"��	��&�(�,�/����$�+�&�&����$�+�&�&��������	�	�	rNrar
rrrwrw�s#����������rrwc��eZdZd�Zd�ZdS)�TestBasicOpsStringc��d|_gd�|_t|j��|_t|j��|_d|_dS)Nz
string set�rErzrWr��r`rrHr�r#rs rrAzTestBasicOpsString.setUp�sA��"��	�%�o�o����$�+�&�&����$�+�&�&�������rc�.�|���dSr�r!rs rrzTestBasicOpsString.test_repr�����&�&�(�(�(�(�(rN�r
rrrArr
rrr{r{��2���������)�)�)�)�)rr{c��eZdZd�Zd�ZdS)�TestBasicOpsBytesc��d|_gd�|_t|j��|_t|j��|_d|_dS)Nz	bytes set)�a�b�cr�r~rs rrAzTestBasicOpsBytes.setUp�sC��!��	�(�(�(����$�+�&�&����$�+�&�&�������rc�.�|���dSrr�rs rrzTestBasicOpsBytes.test_repr�r�rNr�r
rrr�r��r�rr�c��eZdZd�Zd�ZdS)�TestBasicOpsMixedStringBytesc��|�tj����tjdt
��d|_gd�|_t|j��|_t|j��|_	d|_
dS)N�ignorezstring and bytes set)rErzr�r�rH)�enterContextr�check_warnings�warnings�simplefilter�BytesWarningr`rrHr�r#rs rrAz"TestBasicOpsMixedStringBytes.setUpss�����/�8�:�:�;�;�;���h��5�5�5�,��	�,�,�,����$�+�&�&����$�+�&�&�������rc�.�|���dSrr�rs rrz&TestBasicOpsMixedStringBytes.test_repr	r�rNr�r
rrr�r��s2���������)�)�)�)�)rr�c#�K�t�r)rGr
rr�baditerr�s����
�Orc#�K�dV�dSr�r
r
rr�gooditerr�s����
�J�J�J�J�Jrc�"�eZdZ	d�Zd�Zd�ZdS)�TestExceptionPropagationc�`�|�ttt����dSr)rFrGrHr�rs r�test_instanceWithExceptionz3TestExceptionPropagation.test_instanceWithExceptions$�����)�S�'�)�)�4�4�4�4�4rc��tgd���td��tdddd���ttd����td��tt����dS)Nr"rrCr�)�one�two�threer`)rHr�r�rs r�test_instancesWithoutExceptionz7TestExceptionPropagation.test_instancesWithoutExceptionsc���G�G�G�����G�����1�A�q�)�)�*�*�*��E�!�H�H�
�
�
��E�
�
�
��H�J�J�����rc��tgd���}	|D]}|�dg���	|�d��dS#t$rYdSwxYw)Nr"rHz0no exception when changing size during iteration)rHrUror)rr=rqs   r�test_changingSizeWhileIteratingz8TestExceptionPropagation.test_changingSizeWhileIterating$s}������L�L��	J��
�
�����!��
�
�
�
�
�

�I�I�H�I�I�I�I�I���	�	�	��D�D�	���s�A�
A�AN)r
rrr�r�r�r
rrr�r�sI������I�5�5�5����J�J�J�J�Jrr�c��eZdZd�ZdS)�
TestSetOfSetsc��tdg��}t|g��}|���}|�t	|��t��|�|��|�|��|�|t����|�|��dSr)rUrHr'rLrer�r�r�)r�inner�outer�elements    r�test_constructorzTestSetOfSets.test_constructor1s����1�#�����U�G�����)�)�+�+������g���	�2�2�2�
�	�	�%����
���U�����������&�&�&�
�
�
�e�����rN)r
rrr�r
rrr�r�0s#����������rr�c�z�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�ZdS)�
TestBinaryOpsc�.�td��|_dS�N�rCrH��rHrs rrAzTestBinaryOps.setUp>����y�>�>����rc	�^�|�|jtdddd�����dS)Nrr��r�r&rs r�test_eqzTestBinaryOps.test_eqAs0�������3�!�a�!�}�}�#5�#5�6�6�6�6�6rc�|�|jtdg��z}|�|td����dS�NrCr�r$r.s  r�test_union_subsetzTestBinaryOps.test_union_subsetDs8����C���H�H�$�������Y���0�0�0�0�0rc��|jtgd���z}|�|tgd�����dS�N�rCrHr��r$r.s  r�test_union_supersetz!TestBinaryOps.test_union_supersetHsB����C����-�-�-�������\�\�\�!2�!2�3�3�3�3�3rc��|jtgd���z}|�|tgd�����dS�N�r�rHr�)rCr�rHr�r�r$r.s  r�test_union_overlapz TestBinaryOps.test_union_overlapLs@����C�	�	�	�N�N�*�������_�_�_�!5�!5�6�6�6�6�6rc��|jtdg��z}|�|tgd�����dS�Nr�r�r$r.s  r�test_union_non_overlapz$TestBinaryOps.test_union_non_overlapP�>����C���H�H�$�������\�\�\�!2�!2�3�3�3�3�3rc�z�|jtd��z}|�|td����dS�N�rCrHr$r.s  r�test_intersection_subsetz&TestBinaryOps.test_intersection_subsetTs6����C��K�K�'�������V���-�-�-�-�-rc��|jtgd���z}|�|tgd�����dS�Nr�r�r$r.s  r�test_intersection_supersetz(TestBinaryOps.test_intersection_supersetXs@����C����-�-�-�������Y�Y�Y���0�0�0�0�0rc��|jtgd���z}|�|tdg����dS�Nr�rHr$r.s  r�test_intersection_overlapz'TestBinaryOps.test_intersection_overlap\s<����C�	�	�	�N�N�*�������a�S���*�*�*�*�*rc�l�|jtdg��z}|�|t��dS�Nr�rIr.s  r�test_intersection_non_overlapz+TestBinaryOps.test_intersection_non_overlap`s2����C���H�H�$�������+�+�+�+�+rc��|j�td����}|�|d��dS)Nr�FrBr.s  r�test_isdisjoint_subsetz$TestBinaryOps.test_isdisjoint_subsetds9����$�$�S��[�[�1�1�������'�'�'�'�'rc��|j�tgd�����}|�|d��dS)Nr�FrBr.s  r�test_isdisjoint_supersetz&TestBinaryOps.test_isdisjoint_superseths?����$�$�S����%6�%6�7�7�������'�'�'�'�'rc��|j�tgd�����}|�|d��dS)Nr�FrBr.s  r�test_isdisjoint_overlapz%TestBinaryOps.test_isdisjoint_overlapls=����$�$�S����^�^�4�4�������'�'�'�'�'rc��|j�tdg����}|�|d��dS)Nr�TrBr.s  r�test_isdisjoint_non_overlapz)TestBinaryOps.test_isdisjoint_non_overlapps;����$�$�S�!��X�X�.�.�������&�&�&�&�&rc�|�|jtd��z}|�|tdg����dS�Nr�r�r$r.s  r�test_sym_difference_subsetz(TestBinaryOps.test_sym_difference_subsetts8����C��K�K�'�������a�S���*�*�*�*�*rc�|�|jtd��z}|�|tdg����dS�Nr�r�r$r.s  r�test_sym_difference_supersetz*TestBinaryOps.test_sym_difference_supersetxs:����C��-�-�-�������a�S���*�*�*�*�*rc�~�|jtd��z}|�|tgd�����dS�Nr�)rCr�r�r�r$r.s  r�test_sym_difference_overlapz)TestBinaryOps.test_sym_difference_overlap|s<����C�	�N�N�*�������\�\�\�!2�!2�3�3�3�3�3rc��|jtdg��z}|�|tgd�����dSr�r$r.s  r�test_sym_difference_non_overlapz-TestBinaryOps.test_sym_difference_non_overlap�r�rN)r
rrrAr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
rrr�r�=s"������"�"�"�7�7�7�1�1�1�4�4�4�7�7�7�4�4�4�.�.�.�1�1�1�+�+�+�,�,�,�(�(�(�(�(�(�(�(�(�'�'�'�+�+�+�+�+�+�4�4�4�4�4�4�4�4rr�c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�
TestUpdateOpsc�.�td��|_dSr�r�rs rrAzTestUpdateOps.setUp�r�rc��|xjtdg��zc_|�|jtd����dSr�r$rs rr�zTestUpdateOps.test_union_subset�s>�����C���H�H���������3�y�>�>�2�2�2�2�2rc��|xjtgd���zc_|�|jtgd�����dSr�r$rs rr�z!TestUpdateOps.test_union_superset�sH�����C����%�%�%��������3�|�|�|�#4�#4�5�5�5�5�5rc��|xjtgd���zc_|�|jtgd�����dSr�r$rs rr�z TestUpdateOps.test_union_overlap�sF�����C�	�	�	�N�N�"��������3����#7�#7�8�8�8�8�8rc��|xjtdg��zc_|�|jtgd�����dSr�r$rs rr�z$TestUpdateOps.test_union_non_overlap��D�����C���H�H���������3�|�|�|�#4�#4�5�5�5�5�5rc��|j�tgd�����|�|jtgd�����dSr�)rHrUrLrs r�test_union_method_callz$TestUpdateOps.test_union_method_call�sJ�������I�I�I���'�'�'������3����#7�#7�8�8�8�8�8rc��|xjtd��zc_|�|jtd����dSr�r$rs rr�z&TestUpdateOps.test_intersection_subset�s<�����C��K�K���������3�v�;�;�/�/�/�/�/rc��|xjtgd���zc_|�|jtgd�����dSr�r$rs rr�z(TestUpdateOps.test_intersection_superset�sF�����C����%�%�%��������3�y�y�y�>�>�2�2�2�2�2rc��|xjtgd���zc_|�|jtdg����dSr�r$rs rr�z'TestUpdateOps.test_intersection_overlap�sB�����C�	�	�	�N�N�"��������3��s�8�8�,�,�,�,�,rc��|xjtdg��zc_|�|jt��dSr�rIrs rr�z+TestUpdateOps.test_intersection_non_overlap�s8�����C���H�H���������9�-�-�-�-�-rc��|j�tgd�����|�|jtdg����dSr�)rHr^rLrs r�test_intersection_method_callz+TestUpdateOps.test_intersection_method_call�sH����$�$�S����^�^�4�4�4������3��s�8�8�,�,�,�,�,rc��|xjtd��zc_|�|jtdg����dSr�r$rs rr�z(TestUpdateOps.test_sym_difference_subset��>�����C��K�K���������3��s�8�8�,�,�,�,�,rc��|xjtd��zc_|�|jtdg����dSr�r$rs rr�z*TestUpdateOps.test_sym_difference_superset�s@�����C��%�%�%��������3��s�8�8�,�,�,�,�,rc��|xjtd��zc_|�|jtgd�����dSr�r$rs rr�z)TestUpdateOps.test_sym_difference_overlap�sB�����C�	�N�N�"��������3�|�|�|�#4�#4�5�5�5�5�5rc��|xjtdg��zc_|�|jtgd�����dSr�r$rs rr�z-TestUpdateOps.test_sym_difference_non_overlap�r�rc��|j�tgd�����|�|jtgd�����dSr�)rHr�rLrs r�test_sym_difference_method_callz-TestUpdateOps.test_sym_difference_method_call�sL����,�,�S����^�^�<�<�<������3�|�|�|�#4�#4�5�5�5�5�5rc��|xjtd��zc_|�|jtdg����dSr�r$rs r�test_difference_subsetz$TestUpdateOps.test_difference_subset�r�rc��|xjtd��zc_|�|jtg����dSr�r$rs r�test_difference_supersetz&TestUpdateOps.test_difference_superset�s>�����C��%�%�%��������3�r�7�7�+�+�+�+�+rc��|xjtd��zc_|�|jtddg����dS�Nr�rCr�r$rs r�test_difference_overlapz%TestUpdateOps.test_difference_overlap�s@�����C�	�N�N�"��������3��1�v�;�;�/�/�/�/�/rc��|xjtdg��zc_|�|jtgd�����dS)Nr�r�r$rs r�test_difference_non_overlapz)TestUpdateOps.test_difference_non_overlap�sB�����C���H�H���������3�y�y�y�>�>�2�2�2�2�2rc��|j�tgd�����|�|jtddg����dSr)rHrjrLrs r�test_difference_method_callz)TestUpdateOps.test_difference_method_call�sJ����"�"�3�y�y�y�>�>�2�2�2������3��1�v�;�;�/�/�/�/�/rN)r
rrrAr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr
rrr�r��sO������"�"�"�3�3�3�6�6�6�9�9�9�6�6�6�9�9�9�0�0�0�3�3�3�-�-�-�.�.�.�-�-�-�-�-�-�-�-�-�6�6�6�6�6�6�6�6�6�-�-�-�,�,�,�0�0�0�3�3�3�0�0�0�0�0rr�c�b�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�ZdS)�
TestMutatec�J�gd�|_t|j��|_dS)Nr})rrHrs rrAzTestMutate.setUp�s"��%�o�o����t�{�#�#����rc��|j�d��|�|jtd����dS)NrWr`�rHr�rLrs r�test_add_presentzTestMutate.test_add_present�s:������S���������3�u�:�:�.�.�.�.�.rc��|j�d��|�|jtd����dS)Nr@r\rrs r�test_add_absentzTestMutate.test_add_absent�s:������S���������3�v�;�;�/�/�/�/�/rc���t��}d}|jD]?}|�|��|dz
}|�t	|��|���@|�||j��dS)Nrr)rHrr�rLrQ)r�tmp�expected_lenrVs    r�test_add_until_fullzTestMutate.test_add_until_full�sw���e�e������	5�	5�A��G�G�A�J�J�J��A��L����S��X�X�|�4�4�4�4�����d�h�'�'�'�'�'rc��|j�d��|�|jtd����dS)Nrz�ac)rHr�rLrs r�test_remove_presentzTestMutate.test_remove_present�s:���������������3�t�9�9�-�-�-�-�-rc��	|j�d��|�d��dS#t$rYdSwxYw)Nr@z7Removing missing element should have raised LookupError)rHr�ro�LookupErrorrs r�test_remove_absentzTestMutate.test_remove_absent�sV��	��H�O�O�C� � � ��I�I�O�P�P�P�P�P���	�	�	��D�D�	���s�/3�
A�Ac���t|j��}|jD]I}|j�|��|dz}|�t|j��|���JdSr)rQrHrr�rL)rrrVs   r�test_remove_until_emptyz"TestMutate.test_remove_until_empty�si���4�8�}�}����	:�	:�A��H�O�O�A�����A��L����S���]�]�L�9�9�9�9�	:�	:rc��|j�d��|�|jtd����dS)NrWr��rHr�rLrs r�test_discard_presentzTestMutate.test_discard_presents<���������������3�t�9�9�-�-�-�-�-rc��|j�d��|�|jtd����dS)Nr@r`rrs r�test_discard_absentzTestMutate.test_discard_absents<���������������3�u�:�:�.�.�.�.�.rc��|j���|�t|j��d��dSr,)rHr4rLrQrs rr5zTestMutate.test_clears8�������������T�X����*�*�*�*�*rc��i}|jr#d||j���<|j�#|�t|��t|j����|jD]}|�||���dSr)rHr'rLrQrrV)r�poppedrVs   rrOzTestMutate.test_pops������h�	*�%)�F�4�8�<�<�>�>�"��h�	*�����V���c�$�+�&6�&6�7�7�7���	%�	%�A��M�M�!�V�$�$�$�$�	%�	%rc��|j�d��|�|jt|j����dS)Nr
�rHrUrLrrs r�test_update_empty_tuplez"TestMutate.test_update_empty_tuples>���������������3�t�{�#3�#3�4�4�4�4�4rc��|j�d��|�|jt|j����dS)NrDr%rs r�test_update_unit_tuple_overlapz)TestMutate.test_update_unit_tuple_overlaps>���������������3�t�{�#3�#3�4�4�4�4�4rc��|j�d��|�|jt|jdgz����dS)N)rEr~r~r%rs r�"test_update_unit_tuple_non_overlapz-TestMutate.test_update_unit_tuple_non_overlap sE������
�#�#�#������3�t�{�c�U�':�#;�#;�<�<�<�<�<rN)r
rrrAr
rrrrrrr r5rOr&r(r*r
rrr	r	�s�������$�$�$�/�/�/�0�0�0�(�(�(�.�.�.����:�:�:�.�.�.�/�/�/�+�+�+�%�%�%�5�5�5�5�5�5�=�=�=�=�=rr	c�0�eZdZddd�Zdddddd	d
�Zd�ZdS)
�TestSubsetsr�r�)�<=�>=�==�!=�>�<r.r-)r/r0r2r1r-r.c��|j}|j}dD�],}||jv}td|zdzt	����}|�||��|tjvrAt|tj|��}||��}|�||��tj	|}td|zdzt	����}|�||��|tjvrAt|tj|��}||��}|�||����.dS)N)r0r/r2r-r1r.rlr�)
�left�right�cases�eval�localsrLr,�case2method�getattr�reverse)rrlr�r`rNr�method�rcases        r�
test_issubsetzTestSubsets.test_issubset4s9���I���J��4�	3�	3�D��t�z�)�H��#��*�s�*�F�H�H�5�5�F����V�X�.�.�.��{�.�.�.� ��K�$;�D�$A�B�B��������� � ���2�2�2� �'��-�E��#��+��+�V�X�X�6�6�F����V�X�.�.�.���/�/�/� ��K�$;�E�$B�C�C��������� � ���2�2�2��%	3�	3rN)r
rrr9r;r>r
rrr,r,&sU������#�%���K���������G�3�3�3�3�3rr,c�>�eZdZe��Ze��ZdZdZdS)�TestSubsetEqualEmptyz
both empty�r/r-r.N�r
rrrHr4r5r�r6r
rrr@r@Ls.�������C�E�E�D��C�E�E�E��D��E�E�Err@c�J�eZdZeddg��Zeddg��ZdZdZdS)�TestSubsetEqualNonEmptyrrCz
equal pairrANrBr
rrrDrDTs:�������C��A��K�K�D��C��A��K�K�E��D��E�E�ErrDc�D�eZdZe��Zeddg��ZdZdZdS)�TestSubsetEmptyNonEmptyrrCzone empty, one non-empty�r0r2r-NrBr
rrrFrF\s4�������C�E�E�D��C��A��K�K�E�&�D��E�E�ErrFc�H�eZdZedg��Zeddg��ZdZdZdS)�TestSubsetPartialrrCz&one a non-empty proper subset of otherrGNrBr
rrrIrIds8�������C���H�H�D��C��A��K�K�E�4�D��E�E�ErrIc�F�eZdZedg��Zedg��ZdZdZdS)�TestSubsetNonOverlaprrCzneither empty, neither containsr0NrBr
rrrKrKls6�������C���H�H�D��C���H�H�E�-�D��E�E�ErrKc�b�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�ZdS)�TestOnlySetsInBinaryOpsc�&�|�|j|jkd��|�|j|jkd��|�|j|jkd��|�|j|jkd��dSr�)rLr rHrs r�
test_eq_nez"TestOnlySetsInBinaryOps.test_eq_nevs��������t�x�/��7�7�7������T�Z�/��7�7�7������t�x�/��6�6�6������T�Z�/��6�6�6�6�6rc������t�fd�����t�fd�����t�fd�����t�fd�����t�fd�����t�fd�����t�fd�����t�fd���dS)	Nc�$���j�jkSr�rHr rs�r�<lambda>z:TestOnlySetsInBinaryOps.test_ge_gt_le_lt.<locals>.<lambda>~����T�X��
�-B�rc�$���j�jkSrrRrs�rrSz:TestOnlySetsInBinaryOps.test_ge_gt_le_lt.<locals>.<lambda>����T�X���-C�rc�$���j�jkSrrRrs�rrSz:TestOnlySetsInBinaryOps.test_ge_gt_le_lt.<locals>.<lambda>�rTrc�$���j�jkSrrRrs�rrSz:TestOnlySetsInBinaryOps.test_ge_gt_le_lt.<locals>.<lambda>�rVrc�$���j�jkSr�r rHrs�rrSz:TestOnlySetsInBinaryOps.test_ge_gt_le_lt.<locals>.<lambda>�����T�Z�$�(�-B�rc�$���j�jkSrrZrs�rrSz:TestOnlySetsInBinaryOps.test_ge_gt_le_lt.<locals>.<lambda>�����T�Z�4�8�-C�rc�$���j�jkSrrZrs�rrSz:TestOnlySetsInBinaryOps.test_ge_gt_le_lt.<locals>.<lambda>�r[rc�$���j�jkSrrZrs�rrSz:TestOnlySetsInBinaryOps.test_ge_gt_le_lt.<locals>.<lambda>�r]r)rFrGrs`r�test_ge_gt_le_ltz(TestOnlySetsInBinaryOps.test_ge_gt_le_lt}s	������)�%B�%B�%B�%B�C�C�C����)�%C�%C�%C�%C�D�D�D����)�%B�%B�%B�%B�C�C�C����)�%C�%C�%C�%C�D�D�D����)�%B�%B�%B�%B�C�C�C����)�%C�%C�%C�%C�D�D�D����)�%B�%B�%B�%B�C�C�C����)�%C�%C�%C�%C�D�D�D�D�Drc�~�	|xj|jzc_|�d��dS#t$rYdSwxYw�Nzexpected TypeError�rHr rorGrs r�test_update_operatorz,TestOnlySetsInBinaryOps.test_update_operator��X��	,��H�H��
�"�H�H�
�I�I�*�+�+�+�+�+���	�	�	��D�D�	�����.�
<�<c��|jr!|j�|j��dS|�t
|jj|j��dSr)�otherIsIterablerHrUr rFrGrs rrXz#TestOnlySetsInBinaryOps.test_update�sN����	F��H�O�O�D�J�'�'�'�'�'����i����$�*�E�E�E�E�Erc�&����t�fd�����t�fd����jr!�j��j��dS��t�jj�j��dS)Nc�"���j�jzSrrRrs�rrSz4TestOnlySetsInBinaryOps.test_union.<locals>.<lambda>�����T�X��
�-B�rc�"���j�jzSrrZrs�rrSz4TestOnlySetsInBinaryOps.test_union.<locals>.<lambda>�����T�Z�$�(�-B�r)rFrGrhrHrdr rs`rrmz"TestOnlySetsInBinaryOps.test_union�s�������)�%B�%B�%B�%B�C�C�C����)�%B�%B�%B�%B�C�C�C���	E��H�N�N�4�:�&�&�&�&�&����i������D�D�D�D�Drc�~�	|xj|jzc_|�d��dS#t$rYdSwxYwrbrcrs r�!test_intersection_update_operatorz9TestOnlySetsInBinaryOps.test_intersection_update_operator�rerfc��|jr!|j�|j��dS|�t
|jj|j��dSr)rhrHr^r rFrGrs rr`z0TestOnlySetsInBinaryOps.test_intersection_update�s\����	*��H�(�(���4�4�4�4�4����i�"�h�:�"�j�
*�
*�
*�
*�
*rc�&����t�fd�����t�fd����jr!�j��j��dS��t�jj�j��dS)Nc�"���j�jzSrrRrs�rrSz;TestOnlySetsInBinaryOps.test_intersection.<locals>.<lambda>�rkrc�"���j�jzSrrZrs�rrSz;TestOnlySetsInBinaryOps.test_intersection.<locals>.<lambda>�rmr)rFrGrhrHr{r rs`rrz)TestOnlySetsInBinaryOps.test_intersection�s�������)�%B�%B�%B�%B�C�C�C����)�%B�%B�%B�%B�C�C�C���	L��H�!�!�$�*�-�-�-�-�-����i���)>��
�K�K�K�K�Krc�~�	|xj|jzc_|�d��dS#t$rYdSwxYwrbrcrs r�#test_sym_difference_update_operatorz;TestOnlySetsInBinaryOps.test_sym_difference_update_operator�rerfc��|jr!|j�|j��dS|�t
|jj|j��dSr)rhrHr�r rFrGrs r�test_sym_difference_updatez2TestOnlySetsInBinaryOps.test_sym_difference_update�s\����	*��H�0�0���<�<�<�<�<����i�"�h�B�"�j�
*�
*�
*�
*�
*rc�&����t�fd�����t�fd����jr!�j��j��dS��t�jj�j��dS)Nc�"���j�jzSrrRrs�rrSz=TestOnlySetsInBinaryOps.test_sym_difference.<locals>.<lambda>�rkrc�"���j�jzSrrZrs�rrSz=TestOnlySetsInBinaryOps.test_sym_difference.<locals>.<lambda>�rmr)rFrGrhrHr�r rs`r�test_sym_differencez+TestOnlySetsInBinaryOps.test_sym_difference�s�������)�%B�%B�%B�%B�C�C�C����)�%B�%B�%B�%B�C�C�C���	T��H�)�)�$�*�5�5�5�5�5����i���)F��
�S�S�S�S�Src�~�	|xj|jzc_|�d��dS#t$rYdSwxYwrbrcrs r�test_difference_update_operatorz7TestOnlySetsInBinaryOps.test_difference_update_operator�rerfc��|jr!|j�|j��dS|�t
|jj|j��dSr)rhrHrjr rFrGrs rrkz.TestOnlySetsInBinaryOps.test_difference_update�s\����	*��H�&�&�t�z�2�2�2�2�2����i�"�h�8�"�j�
*�
*�
*�
*�
*rc�&����t�fd�����t�fd����jr!�j��j��dS��t�jj�j��dS)Nc�"���j�jz
SrrRrs�rrSz9TestOnlySetsInBinaryOps.test_difference.<locals>.<lambda>�rkrc�"���j�jz
SrrZrs�rrSz9TestOnlySetsInBinaryOps.test_difference.<locals>.<lambda>�rmr)rFrGrhrHr�r rs`rr�z'TestOnlySetsInBinaryOps.test_difference�s�������)�%B�%B�%B�%B�C�C�C����)�%B�%B�%B�%B�C�C�C���	J��H����
�+�+�+�+�+����i���)<�d�j�I�I�I�I�IrN)r
rrrOr`rdrXrmror`rrurwr{r}rkr�r
rrrMrMts�������7�7�7�	E�	E�	E�,�,�,�F�F�F�E�E�E�,�,�,�*�*�*�L�L�L�,�,�,�*�*�*�T�T�T�,�,�,�*�*�*�J�J�J�J�JrrMc��eZdZd�ZdS)�TestOnlySetsNumericc�J�td��|_d|_d|_dS)Nr"�F�rHr rhrs rrAzTestOnlySetsNumeric.setUp�s$����^�^�����
�$����rNrar
rrr�r���#������%�%�%�%�%rr�c��eZdZd�ZdS)�TestOnlySetsDictc�P�td��|_ddd�|_d|_dS)Nr"rCrH)rr�Tr�rs rrAzTestOnlySetsDict.setUp�s*����^�^����Q�Z�Z��
�#����rNrar
rrr�r���#������$�$�$�$�$rr�c��eZdZd�ZdS)�TestOnlySetsOperatorc�^�td��|_tj|_d|_dS)Nr"F)rHryr�r rhrs rrAzTestOnlySetsOperator.setUp�s&����^�^����\��
�$����rNrar
rrr�r��r�rr�c��eZdZd�ZdS)�TestOnlySetsTuplec�J�td��|_d|_d|_dS)Nr"r�Tr�rs rrAzTestOnlySetsTuple.setUps$����^�^�����
�#����rNrar
rrr�r�r�rr�c��eZdZd�ZdS)�TestOnlySetsStringc�J�td��|_d|_d|_dS)Nr"r`Tr�rs rrAzTestOnlySetsString.setUp	s$����^�^�����
�#����rNrar
rrr�r�r�rr�c��eZdZd�ZdS)�TestOnlySetsGeneratorc�`�d�}td��|_|��|_d|_dS)Nc3�:K�tddd��D]}|V��dS)Nrr�rC)r�)rqs r�genz(TestOnlySetsGenerator.setUp.<locals>.gens4�����1�b�!�_�_�
�
�������
�
rr"Tr�)rr�s  rrAzTestOnlySetsGenerator.setUps;��	�	�	���^�^����S�U�U��
�#����rNrar
rrr�r�s#������$�$�$�$�$rr�c��eZdZd�Zd�ZdS)�TestCopyingc�~�|j���}t|t���}t|jt���}|�t|��t|����t
t|����D]%}|�||||u���&dS�N�rJ)rHr�rKr&rLrQr�r��rr��dup_list�set_listrqs     rr8zTestCopying.test_copys����h�m�m�o�o���#�4�(�(�(���$�(��-�-�-������X����H�
�
�6�6�6��s�8�}�}�%�%�	8�	8�A��O�O�H�Q�K�8�A�;�6�7�7�7�7�	8�	8rc�|�tj|j��}t|t���}t|jt���}|�t
|��t
|����tt
|����D]$}|�||||���%dSr�)r�r�rHrKr&rLrQr�r�s     r�test_deep_copyzTestCopying.test_deep_copy%s����m�D�H�%�%���#�4�(�(�(���$�(��-�-�-������X����H�
�
�6�6�6��s�8�}�}�%�%�	7�	7�A����X�a�[�(�1�+�6�6�6�6�	7�	7rN)r
rrr8r�r
rrr�r�s2������8�8�8�7�7�7�7�7rr�c��eZdZd�ZdS)�TestCopyingEmptyc�,�t��|_dSrr�rs rrAzTestCopyingEmpty.setUp1s���5�5����rNrar
rrr�r�0s#����������rr�c��eZdZd�ZdS)�TestCopyingSingletonc�0�tdg��|_dS)N�hellor�rs rrAzTestCopyingSingleton.setUp7s����y�>�>����rNrar
rrr�r�6s#������"�"�"�"�"rr�c��eZdZd�ZdS)�TestCopyingTriplec�2�tgd���|_dS)N)rrrNr�rs rrAzTestCopyingTriple.setUp=s���(�(�(�)�)����rNrar
rrr�r�<s#������*�*�*�*�*rr�c��eZdZd�ZdS)�TestCopyingTuplec�0�tdg��|_dS)N�rrCr�rs rrAzTestCopyingTuple.setUpCs����x�=�=����rNrar
rrr�r�Bs#������!�!�!�!�!rr�c��eZdZd�ZdS)�TestCopyingNestedc�0�tdg��|_dS)N)r�)r�rHr�rs rrAzTestCopyingNested.setUpIs���(�)�*�*����rNrar
rrr�r�Hs#������+�+�+�+�+rr�c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestIdentitiesc�V�td��|_td��|_dS)N�abracadabra�alacazam)rHrErzrs rrAzTestIdentities.setUpOs"���]�#�#����Z������rc��|j|j}}|�||z
|k��|�||z
|k��|�||z|k��|�||z|k��|�||z|k��|�||z|k��|�||z||zk��dSr)rErzr��rrErzs   r�test_binopsVsSubsetsz#TestIdentities.test_binopsVsSubsetsSs����v�t�v�1������A���	�"�"�"�����A���	�"�"�"�����A���	�"�"�"�����A���	�"�"�"�����A���	�"�"�"�����A���	�"�"�"�����A���A��
�&�&�&�&�&rc��|j|j}}|�||z||z��|�||z||z��|�||z||z��||kr|�||z
||z
��dSdSr)rErzrLr}r�s   r�test_commutativityz!TestIdentities.test_commutativity]s����v�t�v�1������1��a��c�"�"�"�����1��a��c�"�"�"�����1��a��c�"�"�"���6�6�����!��Q�q�S�)�)�)�)�)��6rc���|j|j}}|�||z
||zz||z
z||z��|�||z||zz||z��|�|||z
z||z��|�||z
|z||z��|�||z
||zz|��|�||z
||zz|��|�||z
||z
z||z��dSr)rErzrLr�s   r�test_summationszTestIdentities.test_summationses���v�t�v�1�����!�A�#��!���a��c�*�A�a�C�0�0�0����!�A�#��!���a��c�*�*�*�����A�a�C��!�A�#�&�&�&����!�A�#�q��!�A�#�&�&�&����!�A�#��!���a�(�(�(����!�A�#��!���a�(�(�(����!�A�#��!���a��c�*�*�*�*�*rc���|j|jt��}}}|�||z
|z|��|�||z
|z|��|�||z||zz|��dSr)rErzrHrL)rrErzrrs    r�test_exclusionzTestIdentities.test_exclusionps{���V�T�V�S�U�U�d�1�����!�A�#�q��$�'�'�'����!�A�#�q��$�'�'�'����!�A�#��!���d�+�+�+�+�+rN)r
rrrAr�r�r�r�r
rrr�r�Ns_������!�!�!�'�'�'�*�*�*�	+�	+�	+�,�,�,�,�,rr�c#�K�	|D]}|V��dSrr
��seqnrqs  r�Rr�ys-�����
����������rc��eZdZ	d�Zd�ZdS)�Gc��||_dSr�r��rr�s  rr0z
G.__init__�s
����	�	�	rc��|j|Srr�rps  r�__getitem__z
G.__getitem__�s���y��|�rN)r
rrr0r�r
rrr�r�~s5������ ��������rr�c�"�eZdZ	d�Zd�Zd�ZdS)�Ic�"�||_d|_dSr,r�r�s  rr0z
I.__init__������	�����rc��|Srr
rs r�__iter__z
I.__iter__�����rc��|jt|j��krt�|j|j}|xjdz
c_|Sr�rqrQr�r��rrVs  r�__next__z
I.__next__��>���6�S���^�^�#�#�=�%8��I�d�f������!�����rN�r
rrr0r�r�r
rrr�r��sD������&�����������rr�c��eZdZ	d�Zd�ZdS)�Igc�"�||_d|_dSr,r�r�s  rr0zIg.__init__�r�rc#�&K�|jD]}|V��dSrr�)r�vals  rr�zIg.__iter__�s,�����9�	�	�C��I�I�I�I�	�	rN�r
rrr0r�r
rrr�r��s5������?��������rr�c��eZdZ	d�Zd�ZdS)�Xc�"�||_d|_dSr,r�r�s  rr0z
X.__init__�r�rc��|jt|j��krt�|j|j}|xjdz
c_|Srr�r�s  rr�z
X.__next__�r�rN)r
rrr0r�r
rrr�r��s5������&��������rr�c��eZdZ	d�Zd�ZdS)�Nc�"�||_d|_dSr,r�r�s  rr0z
N.__init__�r�rc��|Srr
rs rr�z
N.__iter__�r�rNr�r
rrr�r��s5������!��������rr�c�"�eZdZ	d�Zd�Zd�ZdS)�Ec�"�||_d|_dSr,r�r�s  rr0z
E.__init__�r�rc��|Srr
rs rr�z
E.__iter__�r�rc��ddzdS)Nr�rr
rs rr�z
E.__next__�s��	�Q����rNr�r
rrr�r��sD������$�����������rr�c�"�eZdZ	d�Zd�Zd�ZdS)�Sc��dSrr
r�s  rr0z
S.__init__�s���rc��|Srr
rs rr�z
S.__iter__�r�rc��t�r)r�rs rr�z
S.__next__�s���rNr�r
rrr�r��sD�������
�
�
��������rr�)�chainc��	ttd�ttt	|����������S)Nc��|Srr
)rls rrSzL.<locals>.<lambda>�s��a�r)r�r�r�r�r�r�s r�Lr��s1��&���Z�Z��2�a��g�g�;�;���0�0�1�1�1rc� �eZdZd�Zd�Zd�ZdS)�TestVariousIteratorArgsc�v�ttfD�](}ddtd��dtddd��fD�]}ttt
tttfD][}|�	t|||����t���t||��t������\|�t|t|����|�t|t|����|�t |t#|��������*dS)	N�123rvr���dog333333�?���r�r�)rHrUr�r�r�r�r�r�r�rLrKr&rFrGr�r��ZeroDivisionErrorr�)r�consr=�gs    rr�z(TestVariousIteratorArgs.test_constructor�s ���)�$�	B�	B�D��R��t���k�5��d�1�;M�;M�N�
B�
B���Q��A�q�!�,�[�[�A��$�$�V�D�D���1���J�J�D�%A�%A�%A�6�!�!�A�$�$�TX�CY�CY�CY�Z�Z�Z�Z��!�!�)�T�A�a�D�D�9�9�9��!�!�)�T�A�a�D�D�9�9�9��!�!�"3�T�A�a�D�D�A�A�A�A�
B�	B�	Brc
��td��}ddtd��dtddd��d	fD�]O}|j|j|j|j|jfD�]*}tttttfD]�}||��}|||����}t|t��r|�||���M|�t|t �
��t|t �
������|�t$|t'|����|�t$|t)|����|�t*|t-|������,��QdS)N�novemberr�rvr�r�r�r�r��decemberr�)rHr�rdr{r�r�r�r�r�r�r�r��
isinstance�boolrLrKr&rFrGr�r�r�r�)rr=r��methrrNrMs       r�test_inline_methodsz+TestVariousIteratorArgs.test_inline_methods�st���
�O�O���B��d���[�%��T�!�:L�:L�j�Y�	A�	A�D���!�.�!�,��@V�XY�Xd�e�

A�

A���Q��A�q�)�_�_�A�#�t�D�z�z�H�!�T�!�!�D�'�'�]�]�F�!�(�D�1�1�_��(�(���:�:�:�:��(�(���D�)A�)A�)A�6�(�X\�C]�C]�C]�^�^�^�^��!�!�)�T�1�Q�4�4�8�8�8��!�!�)�T�1�Q�4�4�8�8�8��!�!�"3�T�1�Q�4�4�@�@�@�@�

A�	A�	Arc
��ddtd��dtddd��dfD�]�}d	D�]�}ttttt
tfD]�}td
��}|���}t||��t||������t||��||����|�t|t���t|t�������|�tttd
��|��t!|����|�tttd
��|��t#|����|�t$ttd
��|��t'|����������dS)Nr�rvr�r�r�r�r�r)rUr^rjr��januaryr�)r�r�r�r�r�r�r�rHr�r:rhrLrKr&rFrGr�r�r�r�)rr��methnamerr=r�s      r�test_inplace_methodsz,TestVariousIteratorArgs.test_inplace_methods�s����B��d���[�%��T�!�:L�:L�j�Y�	a�	a�D�Q�
a�
a���Q��A�q�!�,�O�O�A��I���A������A�(�G�A�x�(�(��a�a��g�g���7�7�7�(�G�A�x�(�(���4���1�1�1��$�$�V�A�4�%8�%8�%8�&���:M�:M�:M�N�N�N�N��!�!�)�W�S��^�^�X�-N�-N�PQ�RV�PW�PW�X�X�X��!�!�)�W�S��^�^�X�-N�-N�PQ�RV�PW�PW�X�X�X��!�!�"3�W�S��^�^�X�5V�5V�XY�Z^�X_�X_�`�`�`�`�
a�	a�	arN)r
rrr�rrr
rrr�r��sL������B�B�B�
A�
A�
A�
a�
a�
a�
a�
arr�c��eZdZd�Zd�ZdS)�bad_eqc�X�tr t���t�||uSr)�be_bad�set2r4r�rs  rr!z
bad_eq.__eq__�s'���	$��J�J�L�L�L�#�#��u�}�rc��dSr,r
rs rrzbad_eq.__hash__�rrN�r
rrr!rr
rrrr�s2���������
����rrc��eZdZd�Zd�ZdS)�bad_dict_clearc�J�trt���||uSr)r�dict2r4rs  rr!zbad_dict_clear.__eq__�s!���	��K�K�M�M�M��u�}�rc��dSr,r
rs rrzbad_dict_clear.__hash__�rrNrr
rrrr�s2�������������rrc� �eZdZd�Zd�Zd�ZdS)�
TestWeirdBugsc�$�dat��h}d�td��D��ada|�t
|jt��dat��h}t��diada|�	t��dS)NFc�*�h|]}t����Sr
)rr�s  rr�z4TestWeirdBugs.test_8420_set_merge.<locals>.<setcomp>s��,�,�,�Q����,�,�,r�KT)
rrr�rrFr�rUrrr�)r�set1s  r�test_8420_set_mergez!TestWeirdBugs.test_8420_set_merges��������z��,�,�%��)�)�,�,�,�������+�T�[�$�?�?�?���� � �!���!�!�4�(�����(�(��/�/�/�/�/rc��ttd����}|���|�td����t	|��}|���ttd����}|�td����t|��dS)Nr�)rHr�r4rUr�rh)rr=�sirEs    r�test_iter_and_mutatez"TestWeirdBugs.test_iter_and_mutates�����c�
�
�O�O��	���	�	�	�	����s������
�!�W�W��	���	�	�	���s������	����s�������R�����rc����G�fd�d���t����fd�td��D���dh}|����dS)Nc� ��eZdZd�Z�fd�ZdS)�.TestWeirdBugs.test_merge_and_mutate.<locals>.Xc� �td��Sr,)r1rs rrz7TestWeirdBugs.test_merge_and_mutate.<locals>.X.__hash__s
���A�w�w�rc�0������dS)NF)r4)r�or s  �rr!z5TestWeirdBugs.test_merge_and_mutate.<locals>.X.__eq__s������
�
�
��urNr")r s�rr�r%s=�������
�
�
�
�
�
�
�
�
�
rr�c�$��h|]}�����
Sr
r
)r�rqr�s  �rr�z6TestWeirdBugs.test_merge_and_mutate.<locals>.<setcomp>$s���(�(�(������(�(�(rr�r)rHr�rU)rr=r�r s  @@r�test_merge_and_mutatez#TestWeirdBugs.test_merge_and_mutatesz����	�	�	�	�	�	�	�	�	�	�����(�(�(�(�e�B�i�i�(�(�(��
�C��	��������rN)r
rrrr"r*r
rrrrsA������
0�
0�
0�	�	�	�����rrc�$�eZdZ	dZdZd�Zd�ZdS)�TestOperationsMutatingNc�(�����G���fd�d���d�|��fd�ttd����D�����|��fd�ttd����D�����d���fS)Nc�$��eZdZ���fd�Zd�ZdS)�<TestOperationsMutating.make_sets_of_bad_objects.<locals>.Badc�����sdStd��dkr����td��dkr����ttd����S)NF�rrC)rr4r)rr �enabledrrs  ���rr!zCTestOperationsMutating.make_sets_of_bad_objects.<locals>.Bad.__eq__1s`����!� �5��R�=�=�A�%�%��J�J�L�L�L��R�=�=�A�%�%��J�J�L�L�L��I�a�L�L�)�)�)rc� �td��Srir�rs rrzETestOperationsMutating.make_sets_of_bad_objects.<locals>.Bad.__hash__9s�� ��|�|�#rNr)r2rrs���r�Badr/0sG�������
*�
*�
*�
*�
*�
*�
*�
$�
$�
$�
$�
$rr4Fc3�,�K�|]}���V��dSrr
�r��_r4s  �rr�zBTestOperationsMutating.make_sets_of_bad_objects.<locals>.<genexpr>=�)����� E� E�1����� E� E� E� E� E� Er�2c3�,�K�|]}���V��dSrr
r6s  �rr�zBTestOperationsMutating.make_sets_of_bad_objects.<locals>.<genexpr>>r8rT)�constructor1r�r�constructor2)rr4r2rrs @@@@r�make_sets_of_bad_objectsz/TestOperationsMutating.make_sets_of_bad_objects/s�������
	$�
	$�
	$�
	$�
	$�
	$�
	$�
	$�
	$�
	$�
	$�
	$���� � � E� E� E� E��i��m�m�0D�0D� E� E� E�E�E��� � � E� E� E� E��i��m�m�0D�0D� E� E� E�E�E�����T�z�rc���td��D]`}|���\}}	|||���'#t$r-}|�dt	|����Yd}~�Yd}~wwxYwdS)Nr�zchanged size during iteration)r�r=rrVrg)r�functionr7rrrDs      r�check_set_op_does_not_crashz2TestOperationsMutating.check_set_op_does_not_crashCs����s���	G�	G�A��6�6�8�8�J�D�$�
G����t�$�$�$�$���
G�
G�
G��
�
�=�s�1�v�v�F�F�F�F�F�F�F�F�����
G����		G�	Gs�7�
A.�#A)�)A.)r
rrr;r<r=r@r
rrr,r,)sD������'��L��L����(G�G�G�G�Grr,c�h�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�ZdS)�TestBinaryOpsMutatingc�2�|�d���dS)Nc��||kSrr
�rErzs  rrSz=TestBinaryOpsMutating.test_eq_with_mutation.<locals>.<lambda>P�
��a�1�f�r�r@rs r�test_eq_with_mutationz+TestBinaryOpsMutating.test_eq_with_mutationO� ���(�(�)<�)<�=�=�=�=�=rc�2�|�d���dS)Nc��||kSrr
rEs  rrSz=TestBinaryOpsMutating.test_ne_with_mutation.<locals>.<lambda>SrFrrGrs r�test_ne_with_mutationz+TestBinaryOpsMutating.test_ne_with_mutationRrIrc�2�|�d���dS)Nc��||kSrr
rEs  rrSz=TestBinaryOpsMutating.test_lt_with_mutation.<locals>.<lambda>V�
��a�!�e�rrGrs r�test_lt_with_mutationz+TestBinaryOpsMutating.test_lt_with_mutationU� ���(�(�);�);�<�<�<�<�<rc�2�|�d���dS)Nc��||kSrr
rEs  rrSz=TestBinaryOpsMutating.test_le_with_mutation.<locals>.<lambda>YrFrrGrs r�test_le_with_mutationz+TestBinaryOpsMutating.test_le_with_mutationXrIrc�2�|�d���dS)Nc��||kSrr
rEs  rrSz=TestBinaryOpsMutating.test_gt_with_mutation.<locals>.<lambda>\rOrrGrs r�test_gt_with_mutationz+TestBinaryOpsMutating.test_gt_with_mutation[rQrc�2�|�d���dS)Nc��||kSrr
rEs  rrSz=TestBinaryOpsMutating.test_ge_with_mutation.<locals>.<lambda>_rFrrGrs r�test_ge_with_mutationz+TestBinaryOpsMutating.test_ge_with_mutation^rIrc�2�|�d���dS)Nc��||zSrr
rEs  rrSz>TestBinaryOpsMutating.test_and_with_mutation.<locals>.<lambda>b�
��a�!�e�rrGrs r�test_and_with_mutationz,TestBinaryOpsMutating.test_and_with_mutationarQrc�2�|�d���dS)Nc��||zSrr
rEs  rrSz=TestBinaryOpsMutating.test_or_with_mutation.<locals>.<lambda>er]rrGrs r�test_or_with_mutationz+TestBinaryOpsMutating.test_or_with_mutationdrQrc�2�|�d���dS)Nc��||z
Srr
rEs  rrSz>TestBinaryOpsMutating.test_sub_with_mutation.<locals>.<lambda>hr]rrGrs r�test_sub_with_mutationz,TestBinaryOpsMutating.test_sub_with_mutationgrQrc�2�|�d���dS)Nc��||zSrr
rEs  rrSz>TestBinaryOpsMutating.test_xor_with_mutation.<locals>.<lambda>kr]rrGrs r�test_xor_with_mutationz,TestBinaryOpsMutating.test_xor_with_mutationjrQrc�6�d�}|�|��dS)Nc��||z}dSrr
rEs  rr�z8TestBinaryOpsMutating.test_iadd_with_mutation.<locals>.fn���
��F�A�A�ArrGr�s  r�test_iadd_with_mutationz-TestBinaryOpsMutating.test_iadd_with_mutationm�+��	�	�	��(�(��+�+�+�+�+rc�6�d�}|�|��dS)Nc��||z}dSrr
rEs  rr�z7TestBinaryOpsMutating.test_ior_with_mutation.<locals>.fsrjrrGr�s  r�test_ior_with_mutationz,TestBinaryOpsMutating.test_ior_with_mutationrrlrc�6�d�}|�|��dS)Nc��||z}dSrr
rEs  rr�z8TestBinaryOpsMutating.test_isub_with_mutation.<locals>.fxrjrrGr�s  r�test_isub_with_mutationz-TestBinaryOpsMutating.test_isub_with_mutationwrlrc�6�d�}|�|��dS)Nc��||z}dSrr
rEs  rr�z8TestBinaryOpsMutating.test_ixor_with_mutation.<locals>.f}rjrrGr�s  r�test_ixor_with_mutationz-TestBinaryOpsMutating.test_ixor_with_mutation|rlrc��d�}d�}d�}|�|��|�|��|�|��dS)Nc��|D]}�|D]}�dSrr
�rErzrlr�s    r�f1z>TestBinaryOpsMutating.test_iteration_with_mutation.<locals>.f1��0���
�
����
�
���
�
rc��|D]}�|D]}�dSrr
)rErzr�rls    r�f2z>TestBinaryOpsMutating.test_iteration_with_mutation.<locals>.f2�rzrc�2�t||��D]\}}�dSr)�ziprxs    r�f3z>TestBinaryOpsMutating.test_iteration_with_mutation.<locals>.f3�s*���A�q�	�	�
�
���1��
�
rrG)rryr|rs    r�test_iteration_with_mutationz2TestBinaryOpsMutating.test_iteration_with_mutation�ss��	�	�	�
	�	�	�
	�	�	�	
�(�(��,�,�,��(�(��,�,�,��(�(��,�,�,�,�,rN)r
rrrHrLrPrTrWrZr^rardrgrkrorrrur�r
rrrBrBMs�������>�>�>�>�>�>�=�=�=�>�>�>�=�=�=�>�>�>�=�=�=�=�=�=�=�=�=�=�=�=�,�,�,�
,�,�,�
,�,�,�
,�,�,�
-�-�-�-�-rrBc��eZdZeZeZdS)�TestBinaryOpsMutating_Set_SetN�r
rrrHr;r<r
rrr�r����������L��L�L�Lrr�c��eZdZeZeZdS)�'TestBinaryOpsMutating_Subclass_SubclassN�r
rrr�r;r<r
rrr�r����������L��L�L�Lrr�c��eZdZeZeZdS)�"TestBinaryOpsMutating_Set_SubclassN�r
rrrHr;r�r<r
rrr�r����������L��L�L�Lrr�c��eZdZeZeZdS)�"TestBinaryOpsMutating_Subclass_SetN�r
rrr�r;rHr<r
rrr�r����������L��L�L�Lrr�c�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�TestMethodsMutatingc�D�|�tj��dSr)r@rHr�rs r�test_issubset_with_mutationz/TestMethodsMutating.test_issubset_with_mutation�s���(�(���6�6�6�6�6rc�D�|�tj��dSr)r@rHr�rs r�test_issuperset_with_mutationz1TestMethodsMutating.test_issuperset_with_mutation�����(�(���8�8�8�8�8rc�D�|�tj��dSr)r@rHr{rs r�test_intersection_with_mutationz3TestMethodsMutating.test_intersection_with_mutation�s���(�(��)9�:�:�:�:�:rc�D�|�tj��dSr)r@rHrdrs r�test_union_with_mutationz,TestMethodsMutating.test_union_with_mutation�s���(�(���3�3�3�3�3rc�D�|�tj��dSr)r@rHr�rs r�test_difference_with_mutationz1TestMethodsMutating.test_difference_with_mutation�r�rc�D�|�tj��dSr)r@rHr�rs r�'test_symmetric_difference_with_mutationz;TestMethodsMutating.test_symmetric_difference_with_mutation�s���(�(��)A�B�B�B�B�Brc�D�|�tj��dSr)r@rHr�rs r�test_isdisjoint_with_mutationz1TestMethodsMutating.test_isdisjoint_with_mutation�r�rc�D�|�tj��dSr)r@rHrjrs r�$test_difference_update_with_mutationz8TestMethodsMutating.test_difference_update_with_mutation�s���(�(��)>�?�?�?�?�?rc�D�|�tj��dSr)r@rHr^rs r�&test_intersection_update_with_mutationz:TestMethodsMutating.test_intersection_update_with_mutation�s���(�(��)@�A�A�A�A�Arc�D�|�tj��dSr)r@rHr�rs r�.test_symmetric_difference_update_with_mutationzBTestMethodsMutating.test_symmetric_difference_update_with_mutation�s���(�(��)H�I�I�I�I�Irc�D�|�tj��dSr)r@rHrUrs r�test_update_with_mutationz-TestMethodsMutating.test_update_with_mutation�s���(�(���4�4�4�4�4rN)r
rrr�r�r�r�r�r�r�r�r�r�r�r
rrr�r��s�������7�7�7�9�9�9�;�;�;�4�4�4�9�9�9�C�C�C�9�9�9�@�@�@�B�B�B�J�J�J�5�5�5�5�5rr�c��eZdZeZeZdS)�TestMethodsMutating_Set_SetNr�r
rrr�r��r�rr�c��eZdZeZeZdS)�%TestMethodsMutating_Subclass_SubclassNr�r
rrr�r��r�rr�c��eZdZeZeZdS)� TestMethodsMutating_Set_SubclassNr�r
rrr�r��r�rr�c��eZdZeZeZdS)� TestMethodsMutating_Subclass_SetNr�r
rrr�r��r�rr�c� �eZdZeZejZdS)�TestMethodsMutating_Set_DictN)r
rrrHr;r>r?r<r
rrr�r��s�������L��=�L�L�Lrr�c��eZdZeZeZdS)�TestMethodsMutating_Set_ListN)r
rrrHr;rhr<r
rrr�r��s�������L��L�L�Lrr�c#��K�	t|��}	tt|��g��}t|��D]
}|V�||zV��dS#t$rt��V�YdSwxYwr)r�rUr�r�r�)�Urlr�s   rr�r��s�����7��Q���A���t�A�w�w�i� � ���!���	�	�A��G�G�G��a�%�K�K�K�K�	�	�������k�k����������s�:A�A.�-A.c���	d�t|��D���t�fd�tt|����D����S)Nc�.�g|]}t|g����Sr
�rU)r�rls  rr�zcube.<locals>.<listcomp>�s ��3�3�3�Q�)�Q�C�.�.�3�3�3rc�L���g|]��t�fd��D����f�� S)c���g|]}�|z��Sr
r
)r�r=rls  �rr�z#cube.<locals>.<listcomp>.<listcomp>�s���8�8�8���!��8�8�8rr�)r�rl�
singletonss @�rr�zcube.<locals>.<listcomp>�sL����.�.�.���Y�8�8�8�8�Z�8�8�8�9�9�:�.�.�.r)r�r>r�)rr�s @r�cuber��se���+�3�3�%��(�(�3�3�3�J��.�.�.�.�"�5��8�8�,�,�.�.�.�/�/�/rc�����	i}|D][�|�D]P���fd�|�D��}��fd�|�D��}t||z��|t��g��<�Q�\|S)Nc�>��g|]}|�k�t�|g����Sr
r��r�r~rlr�s  ��rr�zlinegraph.<locals>.<listcomp>��*���;�;�;�q�A��F�F�)�Q�q�E�"�"�F�F�Frc�>��g|]}|�k�t�|g����Sr
r�r�s  ��rr�zlinegraph.<locals>.<listcomp>�r�rr�)r�r��nx�nyrlr�s    @@r�	linegraphr��s������	�A�
�3�3���1��	3�	3�A�;�;�;�;�;�A�a�D�;�;�;�B�;�;�;�;�;�A�a�D�;�;�;�B�"+�B�r�E�"2�"2�A�i��1������	3�
�Hrc��	t��}|���D]�\}}|D]�}||D]�}||kr�	|||vr&|�t|||g�����9||D]�}||kr�	|||vr'|�t||||g�����:||D]@}||ks||kr�|||vr'|�t|||||g�����A���ƌь�|Sr)rH�itemsr�rU)r�r�rC�edgesrE�v3�v4�v5s        r�facesr�s\��Q����A��W�W�Y�Y�K�K�	��E��	K�	K�B���e�
K�
K����8�8����2��;�;��E�E�)�R��R�L�1�1�2�2�2�2���e�
K�
K����8�8�$���2��;�;��E�E�)�R��R��,<�"=�"=�>�>�>�>�&'��e�K�K��#%��8�8�r�R�x�x�$,�#%��2��;�;�$%�E�E�)�R��R��R�4H�*I�*I�$J�$J�$J��	K�
K�

K�	K�$
�Hrc��eZdZd�Zd�ZdS)�
TestGraphsc�2�td��}t|��}|�t|��d��|���D]%}|�t|��d���&td�|���D����}|�||��t|��}|�t|��d��|D]%}|�t|��d���&dS)Nr�r�c3�$K�|]}|D]}|V���dSrr
)r�r�rVs   rr�z'TestGraphs.test_cube.<locals>.<genexpr>$s/����A�A�e�5�A�A�a��A�A�A�A�A�A�Arr�rH)r�rHrLrQrr�)rr�	vertices1�edge�	vertices2�	cubefaces�faces       r�	test_cubezTestGraphs.test_cubes����G�G����F�F�	�����Y����+�+�+��H�H�J�J�	+�	+�D����S��Y�Y��*�*�*�*��A�A�q�x�x�z�z�A�A�A�A�A�	�����I�.�.�.��!�H�H�	�����Y����+�+�+��	+�	+�D����S��Y�Y��*�*�*�*�	+�	+rc�*�td��}t|��}|�t|��d��t	|��}|���D]%}|�t|��d���&t	d�|���D����}|�||��t
|��}tjt��}|D]}|t|��xxdz
cc<� |�|dd��|�|dd��|D]B}	|	}
|�t|
��d��|
D]}|�
||����CdS)	Nr��rHc3�$K�|]}|D]}|V���dSrr
)r�r�r�s   rr�z0TestGraphs.test_cuboctahedron.<locals>.<genexpr>9s0����W�W�U�QV�W�W��D�W�W�W�W�W�W�Wrrr�r�rC)r�r�rLrQrHrr�r��defaultdictr2rV)rr�
cuboctahedron�verticesr��
othervertices�	cubofaces�	facesizesr��vertexr��cubeverts            r�test_cuboctahedronzTestGraphs.test_cuboctahedron,s���
��G�G��!�!���
�����]�+�+�R�0�0�0��}�%�%��"�)�)�+�+�	,�	,�E����S��Z�Z��+�+�+�+��W�W�m�.B�.B�.D�.D�W�W�W�W�W�
�����=�1�1�1��-�(�(�	��+�C�0�0�	��	&�	&�D��c�$�i�i� � � �A�%� � � � �����1��q�)�)�)�����1��q�)�)�)�#�	+�	+�F��D����S��Y�Y��*�*�*� �
+�
+���
�
�h��*�*�*�*�
+�	+�	+rN)r
rrr�r�r
rrr�r�s2������
+�
+�
+�+�+�+�+�+rr��__main__)lr��testr�test.supportrrr
ryr�r��randomrrr�r��collections.abcr��	Exceptionrrrr$r2r*r4�TestCaserrHr�r�r�rUr�r�rrr
rr3rr]rcrorwr{r�r�r�r�r�r�r�r�r	r,r@rDrFrIrKrMr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr,rBr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
�mainr
rr�<module>r�s�������������(�(�(�(�(�(�	�	�	�	�������������
�
�
�
�%�%�%�%�%�%�%�%�����������������	�	�	�	�	�y�	�	�	������������ � � � � � � � �
"�"�"�"�"�c�"�"�"�{E�{E�{E�{E�{E�{E�{E�{E�z	[3�[3�[3�[3�[3�l�H�-�[3�[3�[3�z	�	�	�	�	�#�	�	�	�!0�!0�!0�!0�!0�g�!0�!0�!0�HG+�G+�G+�G+�G+�L�(�"3�G+�G+�G+�R	�	�	�	�	�	�	�	�	�6;�6;�6;�6;�6;�M�6;�6;�6;�r'�'�'�'�'�3�'�'�'�/�/�/�/�/�x�0�/�/�/�
'�'�'�'�'��'�'�'�)�)�)�)�)�%=�)�)�)�

�C�E�E�	�f)�f)�f)�f)�f)�f)�f)�f)�T������h�&7����
&�
&�
&�
&�
&�L�(�*;�
&�
&�
&�"
&�
&�
&�
&�
&��h�&7�
&�
&�
&�"������x�'8����	)�	)�	)�	)�	)��x�'8�	)�	)�	)�	)�	)�	)�	)�	)��h�&7�	)�	)�	)�)�)�)�)�)�<��1B�)�)�)�������J�J�J�J�J�x�0�J�J�J�6	�	�	�	�	�H�%�	�	�	�E4�E4�E4�E4�E4�H�%�E4�E4�E4�RR0�R0�R0�R0�R0�H�%�R0�R0�R0�lF=�F=�F=�F=�F=��"�F=�F=�F=�T#3�#3�#3�#3�#3�#3�#3�#3�L�����;��(9���������k�8�+<���������k�8�+<����������X�%6���������;��(9����pJ�pJ�pJ�pJ�pJ�pJ�pJ�pJ�h%�%�%�%�%�1�8�3D�%�%�%�$�$�$�$�$�.��0A�$�$�$�%�%�%�%�%�2�H�4E�%�%�%�$�$�$�$�$�/��1B�$�$�$�$�$�$�$�$�0�(�2C�$�$�$�$�$�$�$�$�3�X�5F�$�$�$�7�7�7�7�7�7�7�7�*�����{�H�$5����"�"�"�"�"�;��(9�"�"�"�*�*�*�*�*��X�%6�*�*�*�!�!�!�!�!�{�H�$5�!�!�!�+�+�+�+�+��X�%6�+�+�+�',�',�',�',�',�X�&�',�',�',�V���
������������������������	�	�	�	�	�	�	�	�������������������������������2�2�2�'a�'a�'a�'a�'a�h�/�'a�'a�'a�R����������������&�&�&�&�&�H�%�&�&�&�R!G�!G�!G�!G�!G�!G�!G�!G�HD-�D-�D-�D-�D-�2�D-�D-�D-�N�����$9�8�;L���������.C�X�EV���������)>��@Q���������)>��@Q����
!5�!5�!5�!5�!5�0�!5�!5�!5�H�����"5�x�7H���������,?��AR���������':�H�<M���������':�H�<M����!�!�!�!�!�#6��8I�!�!�!������#6��8I����	�	�	�/�/�/�

�

�

�
�
�
�4,+�,+�,+�,+�,+��"�,+�,+�,+�b�z����H�M�O�O�O�O�O��r