§
    2@Äj	`  ã                   óÒ  — d dl Z d dlmZ d dlZd dlZd dlZd dlmZ d dlZ	d dl
mZmZ d dlmZmZmZmZmZ  edd¦  «        Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d „ Z,d!„ Z-d"„ Z.d#„ Z/d$„ Z0d%„ Z1d&„ Z2d'„ Z3d(„ Z4d)„ Z5d*„ Z6d+„ Z7d,„ Z8d-„ Z9 G d.„ d/ee¦  «        Z: G d0„ d1e:¦  «        Z; G d2„ d3e:¦  «        Z< G d4„ d5e<¦  «        Z= G d6„ d7e<¦  «        Z> G d8„ d9e<¦  «        Z? G d:„ d;e<¦  «        Z@ G d<„ d=e<¦  «        ZA G d>„ d?e:¦  «        ZB G d@„ dAe:¦  «        ZC G dB„ dCe:¦  «        ZDeEdDk    r e jF        ¦   «          dS dS )Eé    N)Ú
namedtuple)ÚTypingError)ÚjitÚnjit)ÚTestCaseÚenable_pyobj_flagsÚMemoryLeakMixinÚcompile_functionÚskip_win_arm64_unittuple_uimm12ÚPoint©ÚaÚbc                 ó„   — | dd                      d„ |D ¦   «         ¦  «        iz  } t          d| t          ¦   «         ¦  «        S )NÚinitializerz, c              3   ó4   K  — | ]}t          |¦  «        V — Œd S ©N)Úrepr)Ú.0Úargs     úFC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_sets.pyú	<genexpr>z-_build_set_literal_usecase.<locals>.<genexpr>   s(   è è € Ð+FÐ+F¸#­D°©I¬IÐ+FÐ+FÐ+FÐ+FÐ+FÐ+Fó    Ú	build_set)Újoinr
   Úglobals)ÚcodeÚargss     r   Ú_build_set_literal_usecaser      sB   € Ø�= $§)¢)Ð+FÐ+FÀÐ+FÑ+FÔ+FÑ"FÔ"FÐGÑG€DÝ˜K¨­w©y¬yÑ9Ô9Ð9r   c                 ó&   — d}t          || ¦  «        S )Nz@if 1:
    def build_set():
        return {%(initializer)s}
    ©r   ©r   r   s     r   Úset_literal_return_usecaser#      s   € ð€Dõ & d¨DÑ1Ô1Ð1r   c                 ó&   — d}t          || ¦  «        S )Nz^if 1:
    def build_set():
        my_set = {%(initializer)s}
        return list(my_set)
    r!   r"   s     r   Úset_literal_convert_usecaser%      s   € ð€Dõ
 & d¨DÑ1Ô1Ð1r   c                  óf   — t          ¦   «         } |                      d¦  «         t          | ¦  «        S ©Né   )ÚsetÚaddÚlen©Úss    r   Úempty_constructor_usecaser.   (   s%   € Ý‰Œ€AØ‡E‚Eˆ!�H„H€HÝˆq‰6Œ6€Mr   c                 ó>   — t          | ¦  «        }t          |¦  «        S r   )r)   r+   ©r   r-   s     r   Úconstructor_usecaser1   -   s   € ÝˆC‰Œ€AÝˆq‰6Œ6€Mr   c                 ó\   — t          | ¦  «        }g }|D ]}|                     |¦  «         Œ|S r   ©r)   Úappend)r   r-   ÚlÚvs       r   Úiterator_usecaser7   1   s7   € ÝˆC‰Œ€AØ
€AØð ð ˆØ	�Š�‰ŒˆˆØ€Hr   c                 óº   — t          ¦   «         }|                     | ¦  «         |                     |¦  «         |                     |¦  «         t          |¦  «        S r   )r)   ÚupdateÚlist)r   r   Úcr-   s       r   Úupdate_usecaser<   8   sC   € Ý‰Œ€AØ‡H‚HˆQ�K„K€KØ‡H‚HˆQ�K„K€KØ‡H‚HˆQ�K„K€KÝ�‰7Œ7€Nr   c                 óN   — t          | dd …         ¦  «        }t          |¦  «        S r'   )r)   Úboolr0   s     r   Úbool_usecaser?   ?   s    € åˆC���ŒG‰Œ€AÝ�‰7Œ7€Nr   c                 ór   — t          | ¦  «        }|D ]}|                     |¦  «         Œt          |¦  «        S r   )r)   Úremover:   ©r   r   r-   r6   s       r   Úremove_usecaserC   D   s8   € ÝˆA‰Œ€AØð ð ˆØ	�Š�‰ŒˆˆÝ�‰7Œ7€Nr   c                 ór   — t          | ¦  «        }|D ]}|                     |¦  «         Œt          |¦  «        S r   )r)   Údiscardr:   rB   s       r   Údiscard_usecaserF   J   s8   € ÝˆA‰Œ€AØð ð ˆØ	�	Š	�!‰ŒˆˆÝ�‰7Œ7€Nr   c                 ó¶   — t          | ¦  «        }t          d¦  «        D ],}|                     |¦  «         |                     |¦  «         Œ-t	          |¦  «        S )Niè  )r)   Úranger*   rE   r:   )r   Úur6   r-   Úis        r   Úadd_discard_usecaserK   P   sM   € ÝˆA‰Œ€AÝ�4‰[Œ[ð ð ˆØ	�Šˆa‰ŒˆØ	�	Š	�!‰ŒˆˆÝ�‰7Œ7€Nr   c                 óÂ   — t          | ¦  «        }g }t          |¦  «        dk    r:|                     |                     ¦   «         ¦  «         t          |¦  «        dk    °:|S ©Nr   )r)   r+   r4   Úpop)r   r-   r5   s      r   Úpop_usecaserO   W   sQ   € ÝˆA‰Œ€AØ
€AÝ
ˆa‰&Œ&�1Š*ˆ*Ø	�Š�—’‘”ÑÔÐõ ˆa‰&Œ&�1Š*ˆ*à€Hr   c                 ó`   — t          | ¦  «        }g }|D ]}|                     ||v ¦  «         Œ|S r   r3   )r   r   r-   r5   r6   s        r   Úcontains_usecaserQ   ^   s?   € ÝˆA‰Œ€AØ
€AØð ð ˆØ	�Š��a�ÑÔÐÐØ€Hr   c                 ó‚   — t          | ¦  «        }|                     t          |¦  «        ¦  «         t          |¦  «        S r   )r)   Údifference_updater:   ©r   r   r-   s      r   Údifference_update_usecaserU   e   s2   € ÝˆA‰Œ€AØ×Ò�˜A™œÑÔÐÝ�‰7Œ7€Nr   c                 ó‚   — t          | ¦  «        }|                     t          |¦  «        ¦  «         t          |¦  «        S r   )r)   Úintersection_updater:   rT   s      r   Úintersection_update_usecaserX   j   s2   € ÝˆA‰Œ€AØ×Ò�#˜a™&œ&Ñ!Ô!Ð!Ý�‰7Œ7€Nr   c                 ó‚   — t          | ¦  «        }|                     t          |¦  «        ¦  «         t          |¦  «        S r   )r)   Úsymmetric_difference_updater:   rT   s      r   Ú#symmetric_difference_update_usecaser[   o   s2   € ÝˆA‰Œ€AØ×!Ò!¥# a¡&¤&Ñ)Ô)Ð)Ý�‰7Œ7€Nr   c                 ó`   — t          | ¦  «                             t          |¦  «        ¦  «        S r   )r)   Ú
isdisjointr   s     r   Úisdisjoint_usecaser^   t   ó"   € Ýˆq‰6Œ6×Ò�S ™VœVÑ$Ô$Ð$r   c                 ó`   — t          | ¦  «                             t          |¦  «        ¦  «        S r   )r)   Úissubsetr   s     r   Úissubset_usecaserb   w   s    € Ýˆq‰6Œ6�?Š?�3˜q™6œ6Ñ"Ô"Ð"r   c                 ó`   — t          | ¦  «                             t          |¦  «        ¦  «        S r   )r)   Ú
issupersetr   s     r   Úissuperset_usecasere   z   r_   r   c                 ó„   — t          | ¦  «        }|                     ¦   «          t          |¦  «        t          |¦  «        fS r   )r)   Úclearr+   r:   ©r   r-   s     r   Úclear_usecaseri   }   s0   € ÝˆA‰Œ€AØ‡G‚G�I„I€IÝˆq‰6Œ6•4˜‘7”7ˆ?Ðr   c                 ó¬   — t          | ¦  «        }|                     ¦   «         }|                     ¦   «          t          |¦  «        t	          |¦  «        fS r   )r)   ÚcopyrN   r+   r:   ©r   r-   Ússs      r   Úcopy_usecasern   ‚   s>   € ÝˆA‰Œ€AØ	
�Š‰Œ€BØ‡E‚E�G„G€GÝˆr‰7Œ7•D˜‘H”HÐÐr   c                 óâ   — t          | ¦  «        }|                     ¦   «          |                     ¦   «         }|                     | d         ¦  «         t	          |¦  «        t          |¦  «        fS rM   )r)   rg   rk   r*   r+   r:   rl   s      r   Úcopy_usecase_emptyrp   ˆ   sQ   € ÝˆA‰Œ€AØ‡G‚G�I„I€IØ	
�Š‰Œ€BØ‡E‚Eˆ!ˆAŒ$�K„K€KÝˆr‰7Œ7•D˜‘H”HÐÐr   c                 óÖ   — t          | ¦  «        }|                     |¦  «         |                     ¦   «         }|                     ¦   «          t	          |¦  «        t          |¦  «        fS r   )r)   rA   rk   rN   r+   r:   )r   r   r-   rm   s       r   Úcopy_usecase_deletedrr   �   sM   € ÝˆA‰Œ€AØ‡H‚HˆQ�K„K€KØ	
�Š‰Œ€BØ‡E‚E�G„G€GÝˆr‰7Œ7•D˜‘H”HÐÐr   c                 ó‚   — t          | ¦  «        }|                     t          |¦  «        ¦  «        }t          |¦  «        S r   )r)   Ú
differencer:   ©r   r   Úsar-   s       r   Údifference_usecaserw   –   s/   € Ý	ˆQ‰Œ€BØ
�Š•c˜!‘f”fÑÔ€AÝ�‰7Œ7€Nr   c                 ó‚   — t          | ¦  «        }|                     t          |¦  «        ¦  «        }t          |¦  «        S r   )r)   Úintersectionr:   ru   s       r   Úintersection_usecaserz   ›   s/   € Ý	ˆQ‰Œ€BØ
�Š�˜A™œÑÔ€AÝ�‰7Œ7€Nr   c                 ó‚   — t          | ¦  «        }|                     t          |¦  «        ¦  «        }t          |¦  «        S r   )r)   Úsymmetric_differencer:   ru   s       r   Úsymmetric_difference_usecaser}       s1   € Ý	ˆQ‰Œ€BØ
×Ò¥ A¡¤Ñ'Ô'€AÝ�‰7Œ7€Nr   c                 ó‚   — t          | ¦  «        }|                     t          |¦  «        ¦  «        }t          |¦  «        S r   )r)   Úunionr:   ru   s       r   Úunion_usecaser€   ¥   s/   € Ý	ˆQ‰Œ€BØ
�Š•�Q‘”ÑÔ€AÝ�‰7Œ7€Nr   c                 ó$   — t          | ¦  «        }|S r   )r)   rh   s     r   Úset_return_usecaser‚   ª   s   € ÝˆA‰Œ€AØ€Hr   c                 ó   — d S r   © )Úxs    r   Únoopr†   ¯   s   € Ø€Dr   c                 ó   — d}| D ]}||z  }Œ|S )z!
    Expect a set of numbers
    r   r„   ©r…   Úresr6   s      r   Úunbox_usecaserŠ   ²   s(   € ð €CØð ð ˆØˆq‰ˆˆØ€Jr   c                 ó8   — d}| D ]}|t          |¦  «        z  }Œ|S )z 
    Expect a set of tuples
    r   ©r+   rˆ   s      r   Úunbox_usecase2r�   »   s.   € ð €CØð ð ˆØ�s�1‰vŒv‰ˆˆØ€Jr   c                 ó(   — | \  }}|}|D ]}||z  }Œ|S )z2
    Expect a (number, set of numbers) tuple.
    r„   ©r…   r   r   r‰   r6   s        r   Úunbox_usecase3r�   Ä   s1   € ð �D€A€qØ
€CØð ð ˆØˆq‰ˆˆØ€Jr   c                 óB   — | \  }}|}|D ]}|t          |¦  «        z  }Œ|S )z1
    Expect a (number, set of tuples) tuple.
    rŒ   r�   s        r   Úunbox_usecase4r’   Î   s7   € ð �D€A€qØ
€CØð ð ˆØ�s�1‰vŒv‰ˆˆØ€Jr   c                 ó”   — |                       d¦  «         |                      |¦  «         | t          | ¦  «        t          |¦  «        fS ©Né*   )r*   r9   r+   ©rv   Úsbs     r   Úreflect_simpler˜   Ù   s9   € Ø‡F‚Fˆ2�J„J€JØ‡I‚Iˆb�M„M€MØ�s�2‰wŒw�˜B™œÐÐr   c                 ó   — t          |¦  «        dk    rt          d¦  «        } |                      d¦  «         |                      |¦  «         t          d¦  «        }|                      |¦  «         | t          | ¦  «        t          |¦  «        fS )Nr(   )g      &@g      6@g     €@@g      F@g      E@)g     €K@g     €P@)r+   r)   r*   r9   rZ   )rv   r—   Úscs      r   Úreflect_conditionalr›   Þ   su   € å
ˆ2�w„w�‚{€{ÝÐ%Ñ&Ô&ˆØ‡F‚Fˆ3�K„K€KØ‡I‚Iˆb�M„M€Må	ˆZ‰Œ€BØ×"Ò" 2Ñ&Ô&Ð&Ø�s�2‰wŒw�˜B™œÐÐr   c                 ó:   — |                       d¦  «         t          ‚r”   )r*   ÚZeroDivisionErrorr,   s    r   Úreflect_exceptionrž   é   s   € Ø‡E‚Eˆ"�I„I€IÝ
Ðr   c                 óX   — |                       |                     ¦   «         ¦  «         | |u S r   )r*   rN   r–   s     r   Úreflect_dualr    í   s%   € Ø‡F‚Fˆ2�6Š6‰8Œ8ÑÔÐØ�ˆ8€Or   c                 óŒ   — t          ¦   «         }g }| D ]0}||vr*|                     |¦  «         |                     |¦  «         Œ1|S r   )r)   r*   r4   )ÚsrcÚseenr‰   r6   s       r   Úunique_usecaser¤   ò   sL   € Ý‰5Œ5€DØ
€CØð ð ˆØ�Dˆ=ˆ=Ø�HŠH�Q‰KŒKˆKØ�JŠJ�q‰MŒMˆMøØ€Jr   c                   óB   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	ˆ xZ
S )ÚBaseTestc                 óˆ   •— t          t          | ¦  «                             ¦   «          t          j        d¦  «        | _        d S r”   )Úsuperr¦   ÚsetUpÚrandomÚRandomÚrnd©ÚselfÚ	__class__s    €r   r©   zBaseTest.setUpþ   s4   ø€ Ý�h˜ÑÔ×#Ò#Ñ%Ô%Ð%Ý”= Ñ$Ô$ˆŒˆˆr   c                 óh   — t          j        t          |¦  «        ¦  «                             ¦   «         S r   )ÚnpÚarangeÚintÚtolist©r®   Ústops     r   Ú_rangezBaseTest._range  s$   € ÝŒy�˜T™œÑ#Ô#×*Ò*Ñ,Ô,Ð,r   c                 ó¬   ‡ ‡— ˆ ˆfd„t          |¦  «        D ¦   «         }t          ‰t          j        ¦  «        rt          j        |‰j        ¬¦  «        S |S )zD
        Choose *n* possibly duplicate items from sequence.
        c                 ó^   •— g | ])}‰j                              t          ‰¦  «        ¦  «        ‘Œ*S r„   )r¬   Úchoicer:   )r   rJ   r®   Úseqs     €€r   ú
<listcomp>z+BaseTest._random_choice.<locals>.<listcomp>	  s-   ø€ Ð:Ð:Ð:¨AˆTŒX�_Š_�T #™YœYÑ'Ô'Ð:Ð:Ð:r   ©Údtype)rH   Ú
isinstancer±   ÚndarrayÚarrayr¾   )r®   r»   Únr5   s   ``  r   Ú_random_choicezBaseTest._random_choice  sX   øø€ ð ;Ð:Ð:Ð:Ð:µ°q±´Ð:Ñ:Ô:ˆÝ�c�2œ:Ñ&Ô&ð 	Ý”8˜A S¤YÐ/Ñ/Ô/Ð/àˆHr   c                 ó|   — |                       t          j        |¦  «        ¦  «        }|                      ||¦  «        S )z<
        Get a 1d array with many duplicate values.
        )r·   r±   ÚsqrtrÃ   ©r®   rÂ   r   s      r   Úduplicates_arrayzBaseTest.duplicates_array  s3   € ð �KŠK�œ ™
œ
Ñ#Ô#ˆØ×"Ò" 1 aÑ(Ô(Ð(r   c                 ó^   — |                       |dz  ¦  «        }|                      ||¦  «        S )z;
        Get a 1d array with values spread around.
        gÍÌÌÌÌÌô?)r·   rÃ   rÆ   s      r   Úsparse_arrayzBaseTest.sparse_array  s/   € ð
 �KŠK˜˜S™Ñ!Ô!ˆØ×"Ò" 1 aÑ(Ô(Ð(r   c                 ó²  — t          |t          ¦  «        rI|                      |t          ¦  «         t          ||¦  «        D ]\  }}|                      ||¦  «         Œd S t          |t
          ¦  «        rM|                      |t
          ¦  «         |                      t          |¦  «        t          |¦  «        ¦  «         d S |                      ||¦  «         d S r   )r¿   ÚtupleÚassertIsInstanceÚzipÚ_assert_equal_unorderedr:   ÚassertPreciseEqualÚsorted)r®   r   r   rI   r6   s        r   rÎ   z BaseTest._assert_equal_unordered  sÔ   € Ý�a�ÑÔð 	*Ø×!Ò! !¥UÑ+Ô+Ð+Ý˜A˜q™	œ	ð 3ð 3‘��1Ø×,Ò,¨Q°Ñ2Ô2Ð2Ð2ð3ð 3å˜�4Ñ Ô ð 	*Ø×!Ò! !¥TÑ*Ô*Ð*Ø×#Ò#¥F¨1¡I¤I­v°a©y¬yÑ9Ô9Ð9Ð9Ð9à×#Ò# A qÑ)Ô)Ð)Ð)Ð)r   c                 óL   ‡ ‡‡—  t          d¬¦  «        ‰¦  «        Šˆˆˆ fd„}|S )NT©Únopythonc                  óH   •—  ‰| Ž } ‰| Ž }‰                      ||¦  «         d S r   )rÎ   )r   ÚexpectedÚgotÚcfuncÚpyfuncr®   s      €€€r   Úcheckz)BaseTest.unordered_checker.<locals>.check+  s5   ø€ Ø�v˜t�}ˆHØ�%˜�,ˆCØ×(Ò(¨°3Ñ7Ô7Ð7Ð7Ð7r   ©r   ©r®   rØ   rÙ   r×   s   `` @r   Úunordered_checkerzBaseTest.unordered_checker)  sI   øøø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð ˆr   )Ú__name__Ú
__module__Ú__qualname__r©   r·   rÃ   rÇ   rÉ   rÎ   rÜ   Ú__classcell__©r¯   s   @r   r¦   r¦   ü   s’   ø€ € € € € ð%ð %ð %ð %ð %ð-ð -ð -ðð ð ð)ð )ð )ð)ð )ð )ð	*ð 	*ð 	*ðð ð ð ð ð ð r   r¦   c                   ó*   — e Zd Zd„ Zd„ Zefd„Zd„ ZdS )ÚTestSetLiteralsc                 ó|   — t          |¦  «        } |¦   «         } |¦   «         }|                      ||¦  «         ||fS r   )r   rÏ   )r®   rØ   r×   rÕ   rÖ   s        r   rÙ   zTestSetLiterals.check4  sC   € Ý�V‘”ˆØ�6‘8”8ˆØˆe‰gŒgˆØ×Ò ¨#Ñ.Ô.Ð.Ø�Hˆ}Ðr   c                 óN   — t          d¦  «        }|                      |¦  «         d S )N)r(   é   é   ræ   )r#   rÙ   )r®   rØ   s     r   Útest_build_setzTestSetLiterals.test_build_set;  s'   € Ý+¨LÑ9Ô9ˆØ�
Š
�6ÑÔÐÐÐr   c                 óD  — t          d¦  «        }|                      |¦  «         t          d¦  «        }|                      |¦  «        \  }}|                      t          |                     ¦   «         ¦  «        t          |                     ¦   «         ¦  «        ¦  «         d S )N)r(   ç       @y              @ræ   )rê   ræ   )r#   rÙ   ÚassertIsÚtyperN   )r®   ÚflagsrØ   rÖ   rÕ   s        r   Útest_build_heterogeneous_setz,TestSetLiterals.test_build_heterogeneous_set?  s{   € Ý+¨OÑ<Ô<ˆØ�
Š
�6ÑÔÐÝ+¨HÑ5Ô5ˆØŸ
š
 6Ñ*Ô*‰ˆˆXØ�Š•d˜3Ÿ7š7™9œ9‘o”o¥t¨H¯LªL©N¬NÑ';Ô';Ñ<Ô<Ð<Ð<Ð<r   c                 ó"  — t          |                      d¦  «        ¦  «        }t          |¦  «        } t          d¬¦  «        |¦  «        } |¦   «         } |¦   «         }|                      t          |¦  «        t          |¦  «        ¦  «         d S )Né2   TrÒ   )r:   rÉ   r%   r   rÏ   rÐ   )r®   r   rØ   r×   rÕ   rÖ   s         r   Útest_build_set_nopythonz'TestSetLiterals.test_build_set_nopythonF  s„   € Ý�4×$Ò$ RÑ(Ô(Ñ)Ô)ˆÝ,¨SÑ1Ô1ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà�6‘8”8ˆØˆe‰gŒgˆØ×Ò¥ xÑ 0Ô 0µ&¸±+´+Ñ>Ô>Ð>Ð>Ð>r   N)rÝ   rÞ   rß   rÙ   rè   r   rî   rñ   r„   r   r   rã   rã   2  s[   € € € € € ðð ð ðð ð ð 2Dð =ð =ð =ð =ð?ð ?ð ?ð ?ð ?r   rã   c                   ó  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-d,S )-ÚTestSetsc                 ó^  ‡ ‡‡— t           Š t          d¬¦  «        ‰¦  «        Š‰                       ‰¦   «          ‰¦   «         ¦  «         t          Š t          d¬¦  «        ‰¦  «        Šˆˆˆ fd„} |‰                      d¦  «        ¦  «          |‰                      d¦  «        ¦  «         d S )NTrÒ   c                 óX   •— ‰                       ‰| ¦  «         ‰| ¦  «        ¦  «         d S r   ©rÏ   )r   r×   rØ   r®   s    €€€r   rÙ   z(TestSets.test_constructor.<locals>.checkY  s/   ø€ Ø×#Ò# F F¨3¡K¤K°°°s±´Ñ<Ô<Ð<Ð<Ð<r   éÈ   )r.   r   rÏ   r1   rÇ   rÉ   )r®   rÙ   r×   rØ   s   ` @@r   Útest_constructorzTestSets.test_constructorR  sÌ   øøø€ Ý*ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆØ×Ò  ¡¤¨¨©¬Ñ2Ô2Ð2å$ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	ˆˆd×#Ò# CÑ(Ô(Ñ)Ô)Ð)Øˆˆd×Ò Ñ$Ô$Ñ%Ô%Ð%Ð%Ð%r   c                 óÈ   — t           } t          d¬¦  «        |¦  «        }|                      d¦  «        }|                       ||¦  «        t	          |¦  «        ¦  «         d S )NTrÒ   r÷   )r‚   r   rÇ   ÚassertEqualr)   )r®   rØ   r×   r   s       r   Útest_set_returnzTestSets.test_set_return_  s^   € Ý#ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà×#Ò# CÑ(Ô(ˆØ×Ò˜˜˜s™œ¥S¨¡X¤XÑ.Ô.Ð.Ð.Ð.r   c                 ó¶   — t           }|                      |¦  «        } ||                      d¦  «        ¦  «          ||                      d¦  «        ¦  «         d S ©Nr÷   )r7   rÜ   rÇ   rÉ   ©r®   rØ   rÙ   s      r   Útest_iteratorzTestSets.test_iteratorf  s\   € Ý!ˆØ×&Ò& vÑ.Ô.ˆàˆˆd×#Ò# CÑ(Ô(Ñ)Ô)Ð)Øˆˆd×Ò Ñ$Ô$Ñ%Ô%Ð%Ð%Ð%r   c                 óÖ   — t           }|                      |¦  «        }|                      d¦  «        }|                      d¦  «        }|                      d¦  «        } ||||¦  «         d S ©Nrð   )r<   rÜ   rÉ   rÇ   )r®   rØ   rÙ   r   r   r;   s         r   Útest_updatezTestSets.test_updatem  sh   € ÝˆØ×&Ò& vÑ.Ô.ˆà×Ò˜bÑ!Ô!ˆØ×!Ò! "Ñ%Ô%ˆØ×Ò˜bÑ!Ô!ˆØˆˆa��A‰Œˆˆˆr   c                 ó–   — t           }|                      |¦  «        }|                      d¦  «        }|d d d…         } |||¦  «         d S )Nrð   é
   )rC   rÜ   rÉ   ©r®   rØ   rÙ   r   r   s        r   Útest_removezTestSets.test_removev  sO   € ÝˆØ×&Ò& vÑ.Ô.ˆà×Ò˜bÑ!Ô!ˆØˆdˆd�ˆdŒGˆØˆˆa�‰Œˆˆˆr   c                 óp  — |                       ¦   «          t          } t          d¬¦  «        |¦  «        }t          t	          |                      d¦  «        ¦  «        ¦  «        }|dd …         }|d         f}|                      t          ¦  «        5   |||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTrÒ   rç   r(   r   )Údisable_leak_checkrC   r   rË   r)   rÉ   ÚassertRaisesÚKeyError)r®   rØ   r×   Úitemsr   r   s         r   Útest_remove_errorzTestSets.test_remove_error~  s÷   € à×ÒÑ!Ô!Ð!åˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆõ •c˜$×+Ò+¨AÑ.Ô.Ñ/Ô/Ñ0Ô0ˆØ�!�"�"ŒIˆØ�1ŒXˆKˆØ×Ò�xÑ(Ô(ð 	ð 	ØˆE�!�Q‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÂB+Â+B/Â2B/c                 óª   — t           }|                      |¦  «        }|                      d¦  «        }|                      d¦  «        } |||¦  «         d S r  )rF   rÜ   rÉ   r  s        r   Útest_discardzTestSets.test_discardŒ  sS   € Ý ˆØ×&Ò& vÑ.Ô.ˆà×Ò˜bÑ!Ô!ˆØ×Ò˜bÑ!Ô!ˆØˆˆa�‰Œˆˆˆr   c                 óª   — t           }|                      |¦  «        }dx}}||k    r|                      d¦  «        \  }}||k    ° ||f||¦  «         dS )zü
        Check that the insertion logic does not create an infinite lookup
        chain with deleted entries (insertion should happen at the first
        deleted entry, not at the free entry at the end of the chain).
        See issue #1913.
        Nræ   )rK   rÜ   rÉ   r  s        r   Útest_add_discardzTestSets.test_add_discard”  sn   € õ %ˆØ×&Ò& vÑ.Ô.ˆð ˆˆˆAØ�1ŠfˆfØ×$Ò$ QÑ'Ô'‰DˆAˆqð �1Šfˆfàˆˆqˆd�A�qÑÔÐÐÐr   c                 óz   — t           }|                      |¦  «        } ||                      d¦  «        ¦  «         d S r  )rO   rÜ   rÉ   rþ   s      r   Útest_popzTestSets.test_pop¤  s>   € ÝˆØ×&Ò& vÑ.Ô.ˆàˆˆd×Ò Ñ#Ô#Ñ$Ô$Ð$Ð$Ð$r   c                 óÆ   ‡ ‡‡— t           Š t          d¬¦  «        ‰¦  «        Šˆˆˆ fd„}‰                      d¦  «        }‰                      d¦  «        } |||¦  «         d S )NTrÒ   c                 ó\   •— ‰                       ‰| |¦  «         ‰| |¦  «        ¦  «         d S r   rö   ©r   r   r×   rØ   r®   s     €€€r   rÙ   z%TestSets.test_contains.<locals>.check­  ó3   ø€ Ø×#Ò# F F¨1¨a¡L¤L°%°%¸¸1±+´+Ñ>Ô>Ð>Ð>Ð>r   rð   )rQ   r   rÉ   )r®   rÙ   r   r   r×   rØ   s   `   @@r   Útest_containszTestSets.test_containsª  s‚   øøø€ Ý!ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð ×Ò˜bÑ!Ô!ˆØ×Ò˜bÑ!Ô!ˆØˆˆa�‰Œˆˆˆr   c                 óÖ   — |                       |¦  «        }d}t          j        ||¦  «        D ];\  }}|                      |¦  «        }|                      |¦  «        } |||¦  «         Œ<d S )N©r(   rð   iô  ©rÜ   Ú	itertoolsÚproductrÉ   )r®   rØ   rÙ   ÚsizesÚnaÚnbr   r   s           r   Ú_test_xxx_updatezTestSets._test_xxx_update´  s{   € Ø×&Ò& vÑ.Ô.ˆàˆÝÔ'¨¨uÑ5Ô5ð 	ð 	‰FˆB�Ø×!Ò! "Ñ%Ô%ˆAØ×!Ò! "Ñ%Ô%ˆAØˆE�!�Q‰KŒKˆKˆKð	ð 	r   c                 ó:   — |                       t          ¦  «         d S r   )r   rU   ©r®   s    r   Útest_difference_updatezTestSets.test_difference_update½  s   € Ø×ÒÕ7Ñ8Ô8Ð8Ð8Ð8r   c                 ó:   — |                       t          ¦  «         d S r   )r   rX   r"  s    r   Útest_intersection_updatez!TestSets.test_intersection_updateÀ  s   € Ø×ÒÕ9Ñ:Ô:Ð:Ð:Ð:r   c                 ó:   — |                       t          ¦  «         d S r   )r   r[   r"  s    r   Ú test_symmetric_difference_updatez)TestSets.test_symmetric_difference_updateÃ  s   € Ø×ÒÕAÑBÔBÐBÐBÐBr   c                 óV  ‡ ‡‡—  t          d¬¦  «        ‰¦  «        Šˆˆˆ fd„}t          t          ‰                      d¦  «        ‰                      d¦  «        g¦  «        \  }}||z  ||z
  ||z  ||z  g}d„ |D ¦   «         }t	          j        ||¦  «        D ]\  }} |||¦  «         Œd S )NTrÒ   c                 ó\   •— ‰                       ‰| |¦  «         ‰| |¦  «        ¦  «         d S r   rö   r  s     €€€r   rÙ   z(TestSets._test_comparator.<locals>.checkÈ  r  r   r  é   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r„   )rË   ©r   r…   s     r   r¼   z-TestSets._test_comparator.<locals>.<listcomp>Í  s   € Ð'Ð'Ð'˜Q•�a‘”Ð'Ð'Ð'r   )r   Úmapr)   rÉ   r  r  )r®   rØ   rÙ   r   r   r   r×   s   ``    @r   Ú_test_comparatorzTestSets._test_comparatorÆ  sä   øøø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?õ •3˜×*Ò*¨2Ñ.Ô.°×0AÒ0AÀ"Ñ0EÔ0EÐFÑGÔG‰ˆˆ1Ø�A‘�q˜1‘u˜a !™e Q¨¡UÐ+ˆØ'Ð' $Ð'Ñ'Ô'ˆÝÔ% d¨DÑ1Ô1ð 	ð 	‰DˆAˆqØˆE�!�Q‰KŒKˆKˆKð	ð 	r   c                 ó:   — |                       t          ¦  «         d S r   )r.  r^   r"  s    r   Útest_isdisjointzTestSets.test_isdisjointÑ  ó   € Ø×ÒÕ0Ñ1Ô1Ð1Ð1Ð1r   c                 ó:   — |                       t          ¦  «         d S r   )r.  rb   r"  s    r   Útest_issubsetzTestSets.test_issubsetÔ  s   € Ø×ÒÕ.Ñ/Ô/Ð/Ð/Ð/r   c                 ó:   — |                       t          ¦  «         d S r   )r.  re   r"  s    r   Útest_issupersetzTestSets.test_issuperset×  r1  r   c                 óz   — t           }|                      |¦  «        } ||                      d¦  «        ¦  «         d S r  )ri   rÜ   rÉ   rþ   s      r   Ú
test_clearzTestSets.test_clearÚ  s>   € ÝˆØ×&Ò& vÑ.Ô.ˆàˆˆd×Ò Ñ#Ô#Ñ$Ô$Ð$Ð$Ð$r   c                 ó°  — t           }|                      |¦  «        } ||                      d¦  «        ¦  «         t          }|                      |¦  «        }|                      d¦  «        } ||¦  «         t          }|                      |¦  «        } |dd¦  «         |                      d¦  «        } |||t          |¦  «        dz           ¦  «         d S )Nrð   r(   ©r(   ræ   é   é   ræ   )rn   rÜ   rÉ   rp   rr   r+   )r®   rØ   rÙ   r   s       r   Ú	test_copyzTestSets.test_copyà  sÕ   € åˆØ×&Ò& vÑ.Ô.ˆØˆˆd×Ò Ñ#Ô#Ñ$Ô$Ð$å#ˆØ×&Ò& vÑ.Ô.ˆØ×Ò˜aÑ Ô ˆØˆˆa‰Œˆõ &ˆØ×&Ò& vÑ.Ô.ˆØˆˆm˜QÑÔÐØ×Ò˜bÑ!Ô!ˆØˆˆa�•3�q‘6”6˜Q‘;”Ñ Ô Ð Ð Ð r   c                 ó¶   — t           }|                      |¦  «        } ||                      d¦  «        ¦  «          ||                      d¦  «        ¦  «         d S )Nr(   ræ   )r?   rÜ   rÉ   rþ   s      r   Ú	test_boolzTestSets.test_boolò  s\   € ÝˆØ×&Ò& vÑ.Ô.ˆàˆˆd×Ò Ñ"Ô"Ñ#Ô#Ð#Øˆˆd×Ò Ñ"Ô"Ñ#Ô#Ð#Ð#Ð#r   c                 óø   — |                       |¦  «        }d\  }} |||¦  «         d}t          j        ||¦  «        D ];\  }}|                      |¦  «        }|                      |¦  «        } |||¦  «         Œ<d S )N)r9  )ræ   rç   é   r;  r•   r  r  )r®   rØ   rÙ   r   r   r  r  r  s           r   Ú_test_set_operatorzTestSets._test_set_operatorù  s“   € Ø×&Ò& vÑ.Ô.ˆà/‰ˆˆ1Øˆˆa�‰ŒˆàˆÝÔ'¨¨uÑ5Ô5ð 	ð 	‰FˆB�Ø×!Ò! "Ñ%Ô%ˆAØ×!Ò! "Ñ%Ô%ˆAØˆE�!�Q‰KŒKˆKˆKð	ð 	r   c                 ób   — dt          |¬¦  «        z  }t          d|t          ¦   «         ¦  «        S )Nzrif 1:
        def operator_usecase(a, b):
            s = set(a) %(op)s set(b)
            return list(s)
        ©ÚopÚoperator_usecase©Údictr
   r   ©r®   rD  r   s      r   Úmake_operator_usecasezTestSets.make_operator_usecase  ó4   € ðõ �bˆk‰kŒkñ	ˆõ
  Ð 2°D½'¹)¼)ÑDÔDÐDr   c                 ób   — dt          |¬¦  «        z  }t          d|t          ¦   «         ¦  «        S )Nz½if 1:
        def inplace_operator_usecase(a, b):
            sa = set(a)
            sb = set(b)
            sc = sa
            sc %(op)s sb
            return list(sc), list(sa)
        rC  Úinplace_operator_usecaserF  rH  s      r   Úmake_inplace_operator_usecasez&TestSets.make_inplace_operator_usecase  ó4   € ðõ �bˆk‰kŒkñˆõ  Ð :¸DÅ'Á)Ä)ÑLÔLÐLr   c                 ób   — dt          |¬¦  «        z  }t          d|t          ¦   «         ¦  «        S )Nz\if 1:
        def comparison_usecase(a, b):
            return set(a) %(op)s set(b)
        rC  Úcomparison_usecaserF  rH  s      r   Úmake_comparison_usecasez TestSets.make_comparison_usecase  ó4   € ðõ �bˆk‰kŒkñˆõ  Ð 4°d½G¹I¼IÑFÔFÐFr   c                 ó:   — |                       t          ¦  «         d S r   )rA  rw   r"  s    r   Útest_differencezTestSets.test_difference  s   € Ø×ÒÕ 2Ñ3Ô3Ð3Ð3Ð3r   c                 ó:   — |                       t          ¦  «         d S r   )rA  rz   r"  s    r   Útest_intersectionzTestSets.test_intersection"  s   € Ø×ÒÕ 4Ñ5Ô5Ð5Ð5Ð5r   c                 ó:   — |                       t          ¦  «         d S r   )rA  r}   r"  s    r   Útest_symmetric_differencez"TestSets.test_symmetric_difference%  s   € Ø×ÒÕ <Ñ=Ô=Ð=Ð=Ð=r   c                 ó:   — |                       t          ¦  «         d S r   )rA  r€   r"  s    r   Ú
test_unionzTestSets.test_union(  s   € Ø×Ò¥Ñ.Ô.Ð.Ð.Ð.r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nú&©rA  rI  r"  s    r   Útest_andzTestSets.test_and+  ó*   € Ø×Ò × :Ò :¸3Ñ ?Ô ?Ñ@Ô@Ð@Ð@Ð@r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nú|r]  r"  s    r   Útest_orzTestSets.test_or.  r_  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nú-r]  r"  s    r   Útest_subzTestSets.test_sub1  r_  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nú^r]  r"  s    r   Útest_xorzTestSets.test_xor4  r_  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz==©rA  rQ  r"  s    r   Útest_eqzTestSets.test_eq7  ó*   € Ø×Ò × <Ò <¸TÑ BÔ BÑCÔCÐCÐCÐCr   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz!=rj  r"  s    r   Útest_nezTestSets.test_ne:  rl  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz<=rj  r"  s    r   Útest_lezTestSets.test_le=  rl  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nú<rj  r"  s    r   Útest_ltzTestSets.test_lt@  ó*   € Ø×Ò × <Ò <¸SÑ AÔ AÑBÔBÐBÐBÐBr   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz>=rj  r"  s    r   Útest_gezTestSets.test_geC  rl  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nú>rj  r"  s    r   Útest_gtzTestSets.test_gtF  rt  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz&=©rA  rM  r"  s    r   Ú	test_iandzTestSets.test_iandI  ó*   € Ø×Ò × BÒ BÀ4Ñ HÔ HÑIÔIÐIÐIÐIr   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz|=r{  r"  s    r   Útest_iorzTestSets.test_iorL  r}  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz-=r{  r"  s    r   Ú	test_isubzTestSets.test_isubO  r}  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz^=r{  r"  s    r   Ú	test_ixorzTestSets.test_ixorR  r}  r   N).rÝ   rÞ   rß   rø   rû   rÿ   r  r  r  r  r  r  r  r   r#  r%  r'  r.  r0  r3  r5  r7  r<  r>  rA  rI  rM  rQ  rT  rV  rX  rZ  r^  rb  re  rh  rk  rn  rp  rs  rv  ry  r|  r  r�  rƒ  r„   r   r   ró   ró   P  sÑ  € € € € € ð&ð &ð &ð/ð /ð /ð&ð &ð &ðð ð ðð ð ðð ð ðð ð ðð ð ð %ð %ð %ðð ð ðð ð ð9ð 9ð 9ð;ð ;ð ;ðCð Cð Cð	ð 	ð 	ð2ð 2ð 2ð0ð 0ð 0ð2ð 2ð 2ð%ð %ð %ð!ð !ð !ð$$ð $ð $ð
ð 
ð 
ðEð Eð Eð	Mð 	Mð 	MðGð Gð Gð4ð 4ð 4ð6ð 6ð 6ð>ð >ð >ð/ð /ð /ðAð Að AðAð Að AðAð Að AðAð Að AðDð Dð DðDð Dð DðDð Dð DðCð Cð CðDð Dð DðCð Cð CðJð Jð JðJð Jð JðJð Jð JðJð Jð Jð Jð Jr   ró   c                   ó   — e Zd ZdZd„ ZdS )ÚTestFloatSetsz-
    Test sets with floating-point keys.
    c                 ól   — t          j        |t           j        ¬¦  «        t          j        d¦  «        z  S )Nr½   gš™™™™™¹?)r±   r²   Úfloat32rµ   s     r   r·   zTestFloatSets._range]  s&   € ÝŒy˜¥R¤ZÐ0Ñ0Ô0µ2´:¸c±?´?ÑBÐBr   N©rÝ   rÞ   rß   Ú__doc__r·   r„   r   r   r…  r…  V  s2   € € € € € ðð ðCð Cð Cð Cð Cr   r…  c                   ó   — e Zd ZdZd„ ZdS )ÚTestTupleSetsz$
    Test sets with tuple keys.
    c                 ó  — t          j        |t           j        ¬¦  «        }|dz  }|dz                       t           j        ¦  «        }|dz	  dz                       t           j        ¦  «        }t          t          |||¦  «        ¦  «        S )Nr½   l   UUª*UUª* l   ª*UU é    r(   )r±   r²   Úint64ÚastypeÚint32Úbool_r:   rÍ   )r®   r¶   r   r   r;   Úds         r   r·   zTestTupleSets._rangee  sq   € ÝŒI�d¥"¤(Ð+Ñ+Ô+ˆØÐ"Ñ"ˆØ�‰^×#Ò#¥B¤HÑ-Ô-ˆØ�2‰g˜‰]×"Ò"¥2¤8Ñ,Ô,ˆÝ•C˜˜1˜a‘L”LÑ!Ô!Ð!r   Nrˆ  r„   r   r   r‹  r‹  a  s-   € € € € € ðð ð"ð "ð "ð "ð "r   r‹  c                   ól   ‡ — e Zd ZdZd„ Zeˆ fd„¦   «         Zeˆ fd„¦   «         Zeˆ fd„¦   «         Zˆ xZ	S )ÚTestUnicodeSetszR
    Test sets with unicode keys. For the purpose of testing refcounted sets.
    c                 óN   — d„ t          t          |¦  «        ¦  «        D ¦   «         S )Nc                 ó8   — g | ]}d                       |¦  «        ‘ŒS )zA{})Úformat)r   rJ   s     r   r¼   z*TestUnicodeSets._range.<locals>.<listcomp>r  s"   € Ð:Ð:Ð: A�—’˜Q‘”Ð:Ð:Ð:r   )rH   r³   rµ   s     r   r·   zTestUnicodeSets._rangeq  s$   € Ø:Ð:­­s°4©y¬yÑ)9Ô)9Ð:Ñ:Ô:Ð:r   c                 óH   •— t          ¦   «                              ¦   «          d S r   )r¨   r0  r­   s    €r   r0  zTestUnicodeSets.test_isdisjointu  ó   ø€ å‰Œ×ÒÑ!Ô!Ð!Ð!Ð!r   c                 óH   •— t          ¦   «                              ¦   «          d S r   )r¨   r3  r­   s    €r   r3  zTestUnicodeSets.test_issubsety  s   ø€ å‰Œ×ÒÑÔÐÐÐr   c                 óH   •— t          ¦   «                              ¦   «          d S r   )r¨   r5  r­   s    €r   r5  zTestUnicodeSets.test_issuperset}  r™  r   )
rÝ   rÞ   rß   r‰  r·   r   r0  r3  r5  rà   rá   s   @r   r”  r”  m  sª   ø€ € € € € ðð ð;ð ;ð ;ð %ð"ð "ð "ð "ñ %Ô$ð"ð %ð ð  ð  ð  ñ %Ô$ð ð %ð"ð "ð "ð "ñ %Ô$ð"ð "ð "ð "ð "r   r”  c                   ó   — e Zd Zd„ ZdS )ÚTestSetsInvalidDtypec                 ó   —  t          d¬¦  «        |¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }d}|                      t          |¦  «        5   |||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTrÒ   r9  )r   r   r;   z!All Sets must be of the same type©r   r)   ÚassertRaisesRegexr   ©r®   rØ   r×   r   r   Úmsgs         r   rA  z'TestSetsInvalidDtype._test_set_operator„  sÎ   € ð #•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆå���ÑÔˆÝ���Ñ Ô ˆØ1ˆØ×#Ò#¥K°Ñ5Ô5ð 	ð 	ØˆE�!�Q‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁA3Á3A7Á:A7N)rÝ   rÞ   rß   rA  r„   r   r   r�  r�  ‚  s#   € € € € € ð	ð 	ð 	ð 	ð 	r   r�  c                   óV   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ ZdS )ÚTestSetsInvalidc                 óJ   — |                       |¦  «        }t          |¦  «        S r   )r|   r:   rT   s      r   r}   z,TestSetsInvalid.symmetric_difference_usecase’  s    € Ø×"Ò" 1Ñ%Ô%ˆÝ�A‰wŒwˆr   c                 óJ   — |                       |¦  «        }t          |¦  «        S r   )rt   r:   rT   s      r   rw   z"TestSetsInvalid.difference_usecase–  s   € Ø�LŠL˜‰OŒOˆÝ�A‰wŒwˆr   c                 óJ   — |                       |¦  «        }t          |¦  «        S r   )ry   r:   rT   s      r   rz   z$TestSetsInvalid.intersection_usecaseš  s   € Ø�NŠN˜1ÑÔˆÝ�A‰wŒwˆr   c                 óJ   — |                       |¦  «        }t          |¦  «        S r   )r   r:   rT   s      r   r€   zTestSetsInvalid.union_usecasež  s   € Ø�GŠG�A‰JŒJˆÝ�A‰wŒwˆr   c                 óâ   —  t          d¬¦  «        |¦  «        }t          g d¢¦  «        }d}d}|                      t          |¦  «        5   |||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTrÒ   r9  ©r(   ræ   rç   zAll arguments must be SetsrŸ  r¡  s         r   rA  z"TestSetsInvalid._test_set_operator¢  sÂ   € ð #•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆå���ÑÔˆØˆØ*ˆØ×#Ò#¥K°Ñ5Ô5ð 	ð 	ØˆE�!�Q‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á
A$Á$A(Á+A(c                 óD   — |                       t          j        ¦  «         d S r   )rA  r¤  rw   r"  s    r   rT  zTestSetsInvalid.test_difference­  s   € Ø×Ò¥Ô BÑCÔCÐCÐCÐCr   c                 óD   — |                       t          j        ¦  «         d S r   )rA  r¤  rz   r"  s    r   rV  z!TestSetsInvalid.test_intersection°  s   € Ø×Ò¥Ô DÑEÔEÐEÐEÐEr   c                 óD   — |                       t          j        ¦  «         d S r   )rA  r¤  r}   r"  s    r   rX  z)TestSetsInvalid.test_symmetric_difference³  s   € Ø×Ò¥Ô LÑMÔMÐMÐMÐMr   c                 óD   — |                       t          j        ¦  «         d S r   )rA  r¤  r€   r"  s    r   rZ  zTestSetsInvalid.test_union¶  s   € Ø×Ò¥Ô =Ñ>Ô>Ð>Ð>Ð>r   c                 ób   — dt          |¬¦  «        z  }t          d|t          ¦   «         ¦  «        S )Nzhif 1:
        def operator_usecase(a, b):
            s = a %(op)s b
            return list(s)
        rC  rE  rF  rH  s      r   rI  z%TestSetsInvalid.make_operator_usecase¹  rJ  r   c                 ób   — dt          |¬¦  «        z  }t          d|t          ¦   «         ¦  «        S )Nz³if 1:
        def inplace_operator_usecase(a, b):
            sa = a
            sb = b
            sc = sa
            sc %(op)s sb
            return list(sc), list(sa)
        rC  rL  rF  rH  s      r   rM  z-TestSetsInvalid.make_inplace_operator_usecaseÁ  rN  r   c                 ób   — dt          |¬¦  «        z  }t          d|t          ¦   «         ¦  «        S )NzWif 1:
        def comparison_usecase(a, b):
            return set(a) %(op)s b
        rC  rP  rF  rH  s      r   rQ  z'TestSetsInvalid.make_comparison_usecaseÌ  rR  r   N)rÝ   rÞ   rß   r}   rw   rz   r€   rA  rT  rV  rX  rZ  rI  rM  rQ  r„   r   r   r¤  r¤  �  sÜ   € € € € € ðð ð ðð ð ðð ð ðð ð ð	ð 	ð 	ðDð Dð DðFð Fð FðNð Nð Nð?ð ?ð ?ðEð Eð Eð	Mð 	Mð 	MðGð Gð Gð Gð Gr   r¤  c                   óV   — e Zd ZdZej        d„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	S )
ÚTestUnboxingz>
    Test unboxing of Python sets into native Numba sets.
    c              #   óÎ   K  — |                       t          ¦  «        5 }d V — d d d ¦  «         n# 1 swxY w Y   |�*|                      t          |j        ¦  «        |¦  «         d S d S r   )r	  Ú	TypeErrorÚassertRegexÚstrÚ	exception)r®   r¢  Úraisess      r   Úassert_type_errorzTestUnboxing.assert_type_errorÙ  s¨   è è € à×Ò�yÑ)Ô)ð 	¨VØˆEˆEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	àˆ?Ø×Ò�S Ô!1Ñ2Ô2°CÑ8Ô8Ð8Ð8Ð8ð ˆ?s   �.®2µ2c                 óL   ‡ ‡‡—  t          d¬¦  «        ‰¦  «        Šˆˆˆ fd„}|S )NTrÒ   c                 ó`   •—  ‰| ¦  «        } ‰| ¦  «        }‰                      ||¦  «         d S r   rö   )r   rÕ   rÖ   r×   rØ   r®   s      €€€r   rÙ   z'TestUnboxing.check_unary.<locals>.checkâ  s9   ø€ Ø�v˜c‘{”{ˆHØ�%˜‘*”*ˆCØ×#Ò# C¨Ñ2Ô2Ð2Ð2Ð2r   rÚ   rÛ   s   `` @r   Úcheck_unaryzTestUnboxing.check_unaryà  sI   øøø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð ˆr   c                 óì   — |                       t          ¦  «        } |t          ddg¦  «        ¦  «          |t          ddg¦  «        ¦  «          |t          t          d¦  «        ¦  «        ¦  «         d S )Nr(   ræ   y              ð?y              @éd   )r½  rŠ   r)   rH   ©r®   rÙ   s     r   Útest_numberszTestUnboxing.test_numbersè  sk   € Ø× Ò ¥Ñ/Ô/ˆØˆ�c�1�a�&‰kŒkÑÔÐØˆ�c�2�t�*‰oŒoÑÔÐàˆ�c•%˜‘*”*‰oŒoÑÔÐÐÐr   c                 ó¢   — |                       t          ¦  «        } |t          ddg¦  «        ¦  «          |t          ddg¦  «        ¦  «         d S )N)r(   ræ   )rç   r:  )r(   ù               @)rç   y              @)r½  r�   r)   rÀ  s     r   Útest_tupleszTestUnboxing.test_tuplesï  sU   € Ø× Ò ¥Ñ0Ô0ˆØˆ�c�6˜6Ð"Ñ#Ô#Ñ$Ô$Ð$Øˆ�c�7˜GÐ$Ñ%Ô%Ñ&Ô&Ð&Ð&Ð&r   c                 ór   — |                       t          ¦  «        } |dt          g d¢¦  «        f¦  «         d S )Nr(   )ræ   rç   r:  )r½  r�   r)   rÀ  s     r   Útest_set_inside_tuplez"TestUnboxing.test_set_inside_tupleô  s:   € Ø× Ò ¥Ñ0Ô0ˆØˆˆq•#�i�i�i‘.”.Ð!Ñ"Ô"Ð"Ð"Ð"r   c                 ór   — |                       t          ¦  «        } |dt          ddg¦  «        f¦  «         d S )Nr(   )ræ   )rç   )r½  r’   r)   rÀ  s     r   Útest_set_of_tuples_inside_tuplez,TestUnboxing.test_set_of_tuples_inside_tupleø  s<   € Ø× Ò ¥Ñ0Ô0ˆØˆˆq•#�t˜T�lÑ#Ô#Ð$Ñ%Ô%Ð%Ð%Ð%r   c           
      óœ  — d}t           } t          d¬¦  «        |¦  «        }t          ddg¦  «        }|                      |¦  «        5   ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |t          ddg¦  «        ¦  «         |                      |¦  «        5   |t          ddg¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        5   |dt          ddg¦  «        f¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        5   |t          dt          ddg¦  «        ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          ddg¦  «        }|                      t          t          f¦  «        5 } ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nzcan't unbox heterogeneous setTrÒ   r(   g      @rÃ  )r(   )ræ   rç   )	r†   r   r)   rº  rú   r   r	  Ú
IndexErrorÚ
ValueError)r®   r¢  rØ   r×   ÚvalÚlstr¹  s          r   Útest_errorszTestUnboxing.test_errorsü  s  € à-ˆÝˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆÝ�1�c�(‰mŒmˆØ×#Ò# CÑ(Ô(ð 	ð 	ØˆE�#‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×Ò˜�c 1 c (™mœmÑ,Ô,Ð,Ø×#Ò# CÑ(Ô(ð 	 ð 	 ØˆE•#�q˜"�g‘,”,ÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð ×#Ò# CÑ(Ô(ð 	%ð 	%ØˆE�1•c˜1˜b˜'‘l”lÐ#Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%à×#Ò# CÑ(Ô(ð 	*ð 	*ØˆE•%˜�3  2˜w™<œ<Ñ(Ô(Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*õ �4˜�.Ñ!Ô!ˆð ×Ò¥
­JÐ7Ñ8Ô8ð 	¸FØˆE�#‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	sZ   Á	A!Á!A%Á(A%Â&CÃCÃCÃ-DÄDÄDÄ6)E+Å+E/Å2E/Æ(GÇGÇGN)rÝ   rÞ   rß   r‰  Ú
contextlibÚcontextmanagerrº  r½  rÁ  rÄ  rÆ  rÈ  rÎ  r„   r   r   r³  r³  Ô  s—   € € € € € ðð ð Ôð9ð 9ñ Ôð9ðð ð ðð ð ð'ð 'ð 'ð
#ð #ð #ð&ð &ð &ðð ð ð ð r   r³  c                   ó6   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestSetReflectionzE
    Test reflection of native Numba sets on Python set objects.
    c                 ó>  —  t          d¬¦  «        |¦  «        }t          g d¢¦  «        t          dg¦  «        ft          g d¢¦  «        t          g d¢¦  «        fg}|D ]½\  }}t          |¦  «        }t          |¦  «        } |||¦  «        }|                      ||¦  «        5   |||¦  «        }	|                      |	|¦  «         |                      ||¦  «         |                      |d         |u |	d         |u ¦  «         ~~	d d d ¦  «         n# 1 swxY w Y   Œ¾d S )NTrÒ   )g      ð?rê   g      @g      @g        )g      @g      @g      @g       @g      "@r   )r   r)   ÚassertRefCountrÏ   rú   )
r®   rØ   r×   ÚsamplesÚdestr¢   rÕ   rÖ   ÚpyresÚcress
             r   Úcheck_reflectionz"TestSetReflection.check_reflection  s�  € Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆÝÐ(Ð(Ð(Ñ)Ô)­3°¨t©9¬9Ð5ÝÐ(Ð(Ð(Ñ)Ô)­3Ð/CÐ/CÐ/CÑ+DÔ+DÐEðˆð !ð 		 ð 		 ‰IˆD�#Ý˜4‘y”yˆHÝ�d‘)”)ˆCØ�F˜8 SÑ)Ô)ˆEØ×$Ò$ S¨#Ñ.Ô.ð  ð  Ø�u˜S #‘”�Ø×'Ò'¨¨eÑ4Ô4Ð4Ø×'Ò'¨°#Ñ6Ô6Ð6Ø× Ò   q¤¨XÐ!5°t¸A´wÀ#°~ÑFÔFÐFØ˜4ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  øð			 ð 		 s   Â$A!DÄD	ÄD	c                 ó:   — |                       t          ¦  «         d S r   )rÙ  r˜   r"  s    r   Útest_reflect_simplez%TestSetReflection.test_reflect_simple+  s   € Ø×Ò�nÑ-Ô-Ð-Ð-Ð-r   c                 ó:   — |                       t          ¦  «         d S r   )rÙ  r›   r"  s    r   Útest_reflect_conditionalz*TestSetReflection.test_reflect_conditional.  s   € Ø×ÒÕ1Ñ2Ô2Ð2Ð2Ð2r   c                 óˆ  — t           } t          d¬¦  «        |¦  «        }t          g d¢¦  «        }|                      |¦  «        5  |                      t
          ¦  «        5   ||¦  «         ddd¦  «         n# 1 swxY w Y   |                      |t          g d¢¦  «        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zd
        When the function exits with an exception, sets should still be
        reflected.
        TrÒ   rª  N)r(   ræ   rç   r•   )rž   r   r)   rÔ  r	  r�   rÏ   )r®   rØ   r×   r-   s       r   Útest_reflect_exceptionz(TestSetReflection.test_reflect_exception1  sC  € õ
 #ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆÝ�	�	�	‰NŒNˆØ× Ò  Ñ#Ô#ð 	;ð 	;Ø×"Ò"Õ#4Ñ5Ô5ð ð Ø��a‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à×#Ò# A¥s¨=¨=¨=Ñ'9Ô'9Ñ:Ô:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð 	;ð 	;s6   ÁB7Á"A:Á.B7Á:A>	Á>B7ÂA>	Â(B7Â7B;Â>B;c                 óD  — t           } t          d¬¦  «        |¦  «        }t          g d¢¦  «        }|                     ¦   «         } |||¦  «        } |||¦  «        }|                      ||¦  «         |                      ||¦  «         |                      ||¦  «         dS )zf
        When the same set object is reflected twice, behaviour should
        be consistent.
        TrÒ   rª  N)r    r   r)   rk   rÏ   ÚassertRefCountEqual)r®   rØ   r×   ÚpysetÚcsetrÕ   rÖ   s          r   Útest_reflect_same_setz'TestSetReflection.test_reflect_same_set>  s©   € õ
 ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆÝ�I�I�I‘”ˆØ�zŠz‰|Œ|ˆØ�6˜% Ñ'Ô'ˆØˆe�D˜$ÑÔˆØ×Ò ¨#Ñ.Ô.Ð.Ø×Ò  tÑ,Ô,Ð,Ø× Ò  ¨Ñ-Ô-Ð-Ð-Ð-r   c                 óÐ   —  t          d¬¦  «        t          ¦  «        }t          dg¦  «        }d„ |D ¦   «         } ||¦  «         |                      d„ |D ¦   «         |¦  «         dS )zO
        When the set wasn't mutated, no reflection should take place.
        TrÒ   y              )@c                 ó,   — g | ]}t          |¦  «        ‘ŒS r„   ©Úidr,  s     r   r¼   z8TestSetReflection.test_reflect_clean.<locals>.<listcomp>T  s   € Ð Ð Ð ˜�r�!‰uŒuÐ Ð Ð r   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r„   rç  r,  s     r   r¼   z8TestSetReflection.test_reflect_clean.<locals>.<listcomp>V  s   € Ð+Ð+Ð+ A�"˜Q™%œ%Ð+Ð+Ð+r   N)r   r†   r)   rú   )r®   r×   r-   Úidss       r   Útest_reflect_cleanz$TestSetReflection.test_reflect_cleanM  sv   € ð #•˜TÐ"Ñ"Ô"¥4Ñ(Ô(ˆå��‰LŒLˆØ Ð ˜aÐ Ñ Ô ˆØˆˆa‰ŒˆØ×ÒÐ+Ð+¨Ð+Ñ+Ô+¨SÑ1Ô1Ð1Ð1Ð1r   N)
rÝ   rÞ   rß   r‰  rÙ  rÛ  rÝ  rß  rä  rë  r„   r   r   rÒ  rÒ    sx   € € € € € ðð ð ð  ð  ð .ð .ð .ð3ð 3ð 3ð;ð ;ð ;ð.ð .ð .ð	2ð 	2ð 	2ð 	2ð 	2r   rÒ  c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚTestExamplesz!
    Examples of using sets.
    c                 ó¶   — t           }|                      |¦  «        } ||                      d¦  «        ¦  «          ||                      d¦  «        ¦  «         d S rý   )r¤   rÜ   rÇ   rÉ   rþ   s      r   Útest_uniquezTestExamples.test_unique^  s\   € ÝˆØ×&Ò& vÑ.Ô.ˆàˆˆd×#Ò# CÑ(Ô(Ñ)Ô)Ð)Øˆˆd×Ò Ñ$Ô$Ñ%Ô%Ð%Ð%Ð%r   c                 óJ   — d„ }|                       |¦  «        } |¦   «          d S )Nc                  ó¢   — t          j        d¦  «        } t          ¦   «         }|                     h d£¦  «         |                     | ¦  «         |S )Nr(   >   r(   ræ   rç   )r±   Úuint64r)   r9   r*   )rJ   ÚRs     r   Úimplz9TestExamples.test_type_coercion_from_update.<locals>.implg  sB   € Ý”	˜!‘”ˆAÝ‘”ˆAØ�HŠH�Y�Y�YÑÔÐØ�EŠE�!‰HŒHˆHØˆHr   )rÜ   )r®   rô  rÙ   s      r   Útest_type_coercion_from_updatez+TestExamples.test_type_coercion_from_updatee  s5   € ð	ð 	ð 	ð ×&Ò& tÑ,Ô,ˆØˆ‰Œˆˆˆr   N)rÝ   rÞ   rß   r‰  rï  rõ  r„   r   r   rí  rí  Y  s<   € € € € € ðð ð&ð &ð &ð	ð 	ð 	ð 	ð 	r   rí  Ú__main__)GÚunittestÚcollectionsr   rÏ  r  rª   Únumba.core.errorsr   Únumpyr±   Únumbar   r   Únumba.tests.supportr   r   r	   r
   r   r   r   r#   r%   r.   r1   r7   r<   r?   rC   rF   rK   rO   rQ   rU   rX   r[   r^   rb   re   ri   rn   rp   rr   rw   rz   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Ý   Úmainr„   r   r   ú<module>rþ     sC  ðØ €€€à "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð à Ð Ð Ð Ð Ð Ð Ð ðBð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð
 	ˆ
�7˜JÑ'Ô'€ð:ð :ð :ð2ð 2ð 2ð2ð 2ð 2ðð ð ð
ð ð ðð ð ðð ð ðð ð ð
ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð
ð ð ð
ð ð ð
%ð %ð %ð#ð #ð #ð%ð %ð %ðð ð ð
ð ð ðð ð ðð ð ðð ð ð
ð ð ð
ð ð ð
ð ð ð
ð ð ð
	ð 	ð 	ðð ð ðð ð ðð ð ðð ð ð ð  ð  ð
	 ð 	 ð 	 ðð ð ðð ð ð
ð ð ð3ð 3ð 3ð 3ð 3ˆ ñ 3ô 3ð 3ðl?ð ?ð ?ð ?ð ?�hñ ?ô ?ð ?ð<CJð CJð CJð CJð CJˆxñ CJô CJð CJðLCð Cð Cð Cð C�Hñ Cô Cð Cð	"ð 	"ð 	"ð 	"ð 	"�Hñ 	"ô 	"ð 	"ð"ð "ð "ð "ð "�hñ "ô "ð "ð*ð ð ð ð ˜8ñ ô ð ðAGð AGð AGð AGð AG�hñ AGô AGð AGðH?ð ?ð ?ð ?ð ?�8ñ ?ô ?ð ?ðD@2ð @2ð @2ð @2ð @2˜ñ @2ô @2ð @2ðFð ð ð ð �8ñ ô ð ð0 ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   