§
    ƒÛg[  ã                   ó  — d dl Z d dlmZ d dlZd dl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mZ d dlmZ d dlmZ d dl 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„ Z0d „ Z1d!„ Z2d"„ Z3d#„ Z4d$„ Z5d%„ Z6d&„ Z7d'„ Z8d(„ Z9d)„ Z:d*„ Z;d+„ Z<d,„ Z=d-„ Z>d.„ Z?d/„ Z@ G d0„ d1ee¦  «        ZA G d2„ d3eA¦  «        ZB G d4„ d5eA¦  «        ZC G d6„ d7eC¦  «        ZD G d8„ d9eC¦  «        ZE G d:„ d;eC¦  «        ZF G d<„ d=eC¦  «        ZG G d>„ d?eC¦  «        ZH G d@„ dAeA¦  «        ZI G dB„ dCeA¦  «        ZJ G dD„ dEeA¦  «        ZKeLdFk    r e jM        ¦   «          dS dS )Gé    N)Ú
namedtuple)ÚTypingError)Úcompile_isolatedÚFlagsÚerrors©Újit)Útypes)ÚTestCaseÚenable_pyobj_flagsÚMemoryLeakMixinÚtagÚcompile_functionÚ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     úK/granary/edev/quantum/lib/python3.11/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_usecaser2   ,   s%   € Ý‰Œ€AØ‡E‚Eˆ!�H„H€HÝˆq‰6Œ6€Mr   c                 ó>   — t          | ¦  «        }t          |¦  «        S r   )r-   r/   ©r   r1   s     r   Úconstructor_usecaser5   1   s   € ÝˆC‰Œ€AÝˆq‰6Œ6€Mr   c                 ó\   — t          | ¦  «        }g }|D ]}|                     |¦  «         Œ|S r   ©r-   Úappend)r   r1   ÚlÚvs       r   Úiterator_usecaser;   5   s7   € ÝˆC‰Œ€AØ
€AØð ð ˆØ	�Š�‰ŒˆˆØ€Hr   c                 óº   — t          ¦   «         }|                     | ¦  «         |                     |¦  «         |                     |¦  «         t          |¦  «        S r   )r-   ÚupdateÚlist)r   r   Úcr1   s       r   Úupdate_usecaser@   <   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-   Úboolr4   s     r   Úbool_usecaserC   C   s    € åˆC���ŒG‰Œ€AÝ�‰7Œ7€Nr   c                 ór   — t          | ¦  «        }|D ]}|                     |¦  «         Œt          |¦  «        S r   )r-   Úremover>   ©r   r   r1   r:   s       r   Úremove_usecaserG   H   s8   € ÝˆA‰Œ€AØð ð ˆØ	�Š�‰ŒˆˆÝ�‰7Œ7€Nr   c                 ór   — t          | ¦  «        }|D ]}|                     |¦  «         Œt          |¦  «        S r   )r-   Údiscardr>   rF   s       r   Údiscard_usecaserJ   N   s8   € ÝˆA‰Œ€AØð ð ˆØ	�	Š	�!‰ŒˆˆÝ�‰7Œ7€Nr   c                 ó¶   — t          | ¦  «        }t          d¦  «        D ],}|                     |¦  «         |                     |¦  «         Œ-t	          |¦  «        S )Niè  )r-   Úranger.   rI   r>   )r   Úur:   r1   Úis        r   Úadd_discard_usecaserO   T   sM   € ÝˆA‰Œ€AÝ�4‰[Œ[ð ð ˆØ	�Šˆa‰ŒˆØ	�	Š	�!‰ŒˆˆÝ�‰7Œ7€Nr   c                 óÂ   — t          | ¦  «        }g }t          |¦  «        dk    r:|                     |                     ¦   «         ¦  «         t          |¦  «        dk    °:|S ©Nr   )r-   r/   r8   Úpop)r   r1   r9   s      r   Úpop_usecaserS   [   sQ   € ÝˆA‰Œ€AØ
€AÝ
ˆa‰&Œ&�1Š*ˆ*Ø	�Š�—’‘”ÑÔÐõ ˆa‰&Œ&�1Š*ˆ*à€Hr   c                 ó`   — t          | ¦  «        }g }|D ]}|                     ||v ¦  «         Œ|S r   r7   )r   r   r1   r9   r:   s        r   Úcontains_usecaserU   b   s?   € ÝˆA‰Œ€AØ
€AØð ð ˆØ	�Š��a�ÑÔÐÐØ€Hr   c                 ó‚   — t          | ¦  «        }|                     t          |¦  «        ¦  «         t          |¦  «        S r   )r-   Údifference_updater>   ©r   r   r1   s      r   Údifference_update_usecaserY   i   s2   € ÝˆA‰Œ€AØ×Ò�˜A™œÑÔÐÝ�‰7Œ7€Nr   c                 ó‚   — t          | ¦  «        }|                     t          |¦  «        ¦  «         t          |¦  «        S r   )r-   Úintersection_updater>   rX   s      r   Úintersection_update_usecaser\   n   s2   € ÝˆA‰Œ€AØ×Ò�#˜a™&œ&Ñ!Ô!Ð!Ý�‰7Œ7€Nr   c                 ó‚   — t          | ¦  «        }|                     t          |¦  «        ¦  «         t          |¦  «        S r   )r-   Úsymmetric_difference_updater>   rX   s      r   Ú#symmetric_difference_update_usecaser_   s   s2   € ÝˆA‰Œ€AØ×!Ò!¥# a¡&¤&Ñ)Ô)Ð)Ý�‰7Œ7€Nr   c                 ó`   — t          | ¦  «                             t          |¦  «        ¦  «        S r   )r-   Ú
isdisjointr   s     r   Úisdisjoint_usecaserb   x   ó"   € Ýˆq‰6Œ6×Ò�S ™VœVÑ$Ô$Ð$r   c                 ó`   — t          | ¦  «                             t          |¦  «        ¦  «        S r   )r-   Úissubsetr   s     r   Úissubset_usecaserf   {   s    € Ýˆq‰6Œ6�?Š?�3˜q™6œ6Ñ"Ô"Ð"r   c                 ó`   — t          | ¦  «                             t          |¦  «        ¦  «        S r   )r-   Ú
issupersetr   s     r   Úissuperset_usecaseri   ~   rc   r   c                 ó„   — t          | ¦  «        }|                     ¦   «          t          |¦  «        t          |¦  «        fS r   )r-   Úclearr/   r>   ©r   r1   s     r   Úclear_usecaserm   �   s0   € ÝˆA‰Œ€AØ‡G‚G�I„I€IÝˆq‰6Œ6•4˜‘7”7ˆ?Ðr   c                 ó¬   — t          | ¦  «        }|                     ¦   «         }|                     ¦   «          t          |¦  «        t	          |¦  «        fS r   )r-   ÚcopyrR   r/   r>   ©r   r1   Ússs      r   Úcopy_usecaserr   †   s>   € ÝˆA‰Œ€AØ	
�Š‰Œ€BØ‡E‚E�G„G€GÝˆr‰7Œ7•D˜‘H”HÐÐr   c                 óâ   — t          | ¦  «        }|                     ¦   «          |                     ¦   «         }|                     | d         ¦  «         t	          |¦  «        t          |¦  «        fS rQ   )r-   rk   ro   r.   r/   r>   rp   s      r   Úcopy_usecase_emptyrt   Œ   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-   rE   ro   rR   r/   r>   )r   r   r1   rq   s       r   Úcopy_usecase_deletedrv   “   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   Úsar1   s       r   Údifference_usecaser{   š   s/   € Ý	ˆQ‰Œ€BØ
�Š•c˜!‘f”fÑÔ€AÝ�‰7Œ7€Nr   c                 ó‚   — t          | ¦  «        }|                     t          |¦  «        ¦  «        }t          |¦  «        S r   )r-   Úintersectionr>   ry   s       r   Úintersection_usecaser~   Ÿ   s/   € Ý	ˆQ‰Œ€BØ
�Š�˜A™œÑÔ€AÝ�‰7Œ7€Nr   c                 ó‚   — t          | ¦  «        }|                     t          |¦  «        ¦  «        }t          |¦  «        S r   )r-   Úsymmetric_differencer>   ry   s       r   Úsymmetric_difference_usecaser�   ¤   s1   € Ý	ˆQ‰Œ€BØ
×Ò¥ A¡¤Ñ'Ô'€AÝ�‰7Œ7€Nr   c                 ó‚   — t          | ¦  «        }|                     t          |¦  «        ¦  «        }t          |¦  «        S r   )r-   Úunionr>   ry   s       r   Úunion_usecaser„   ©   s/   € Ý	ˆQ‰Œ€BØ
�Š•�Q‘”ÑÔ€AÝ�‰7Œ7€Nr   c                 ó$   — t          | ¦  «        }|S r   )r-   rl   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‰   Úresr:   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�   r:   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.   r=   r/   ©rz   Ú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.   r=   r^   )rz   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.   ÚZeroDivisionErrorr0   s    r   Úreflect_exceptionr¢   í   s   € Ø‡E‚Eˆ"�I„I€IÝ
Ðr   c                 óX   — |                       |                     ¦   «         ¦  «         | |u S r   )r.   rR   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.   r8   )ÚsrcÚseenr�   r:   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                 óD   — t          j        t          |¦  «        ¦  «        S r   )ÚnpÚarangeÚint©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   rN   r±   Úseqs     €€r   ú
<listcomp>z+BaseTest._random_choice.<locals>.<listcomp>  s-   ø€ Ð:Ð:Ð:¨AˆTŒX�_Š_�T #™YœYÑ'Ô'Ð:Ð:Ð:r   ©Údtype)rL   Ú
isinstancer´   ÚndarrayÚarrayrÀ   )r±   r½   Únr9   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   rM   r:   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efd„Zefd„Zd„ ZdS )ÚTestSetLiteralsc                 óR   — t          d¦  «        }|                      ||¬¦  «         d S )N)r,   é   é   rå   ©Úflags)r'   Úrun_nullary_func)r±   rè   rÚ   s      r   Útest_build_setzTestSetLiterals.test_build_set8  s.   € Ý+¨LÑ9Ô9ˆØ×Ò˜f¨EÐÑ2Ô2Ð2Ð2Ð2r   c                 óL  — t          d¦  «        }|                      ||¬¦  «         t          d¦  «        }|                      ||¬¦  «        \  }}|                      t          |                     ¦   «         ¦  «        t          |                     ¦   «         ¦  «        ¦  «         d S )N)r,   ç       @y              @rå   rç   )rì   rå   )r'   ré   ÚassertIsÚtyperR   )r±   rè   rÚ   rØ   r×   s        r   Útest_build_heterogeneous_setz,TestSetLiterals.test_build_heterogeneous_set<  s‰   € Ý+¨OÑ<Ô<ˆØ×Ò˜f¨EÐÑ2Ô2Ð2Ý+¨HÑ5Ô5ˆØ×-Ò-¨f¸EÐ-ÑBÔB‰ˆˆ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_nopythonD  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ã   6  sT   € € € € € à#5ð 3ð 3ð 3ð 3ð 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>.checkW  s/   ø€ Ø×#Ò# F F¨3¡K¤K°°°s±´Ñ<Ô<Ð<Ð<Ð<r   éÈ   )r2   r	   rÑ   r5   rÉ   rË   )r±   rÛ   rÙ   rÚ   s   ` @@r   Útest_constructorzTestSets.test_constructorP  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ø   )r;   rÝ   rÉ   rË   ©r±   rÚ   rÛ   s      r   Útest_iteratorzTestSets.test_iteratord  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_updatek  sh   € ÝˆØ×&Ò& vÑ.Ô.ˆà×Ò˜bÑ!Ô!ˆØ×!Ò! "Ñ%Ô%ˆØ×Ò˜bÑ!Ô!ˆØˆˆa��A‰Œˆˆˆr   c                 ó–   — t           }|                      |¦  «        }|                      d¦  «        }|d d d…         } |||¦  «         d S )Nrñ   é
   )rG   rÝ   rË   ©r±   rÚ   rÛ   r   r   s        r   Útest_removezTestSets.test_removet  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_checkrG   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  )rJ   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å   )rO   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  )rS   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ñ   )rU   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!  rY   ©r±   s    r   Útest_difference_updatezTestSets.test_difference_update»  s   € Ø×ÒÕ7Ñ8Ô8Ð8Ð8Ð8r   c                 ó:   — |                       t          ¦  «         d S r   )r!  r\   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/  rb   r#  s    r   Útest_isdisjointzTestSets.test_isdisjointÏ  ó   € Ø×ÒÕ0Ñ1Ô1Ð1Ð1Ð1r   c                 ó:   — |                       t          ¦  «         d S r   )r/  rf   r#  s    r   Útest_issubsetzTestSets.test_issubsetÒ  s   € Ø×ÒÕ.Ñ/Ô/Ð/Ð/Ð/r   c                 ó:   — |                       t          ¦  «         d S r   )r/  ri   r#  s    r   Útest_issupersetzTestSets.test_issupersetÕ  r2  r   c                 óz   — t           }|                      |¦  «        } ||                      d¦  «        ¦  «         d S r  )rm   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å   )rr   rÝ   rË   rt   rv   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å   )rC   rÝ   rË   rÿ   s      r   Ú	test_boolzTestSets.test_boolð  s\   € ÝˆØ×&Ò& vÑ.Ô.ˆàˆˆd×Ò Ñ"Ô"Ñ#Ô#Ð#Øˆˆd×Ò Ñ"Ô"Ñ#Ô#Ð#Ð#Ð#r   c                 óø   — |                       |¦  «        }d\  }} |||¦  «         d}t          j        ||¦  «        D ];\  }}|                      |¦  «        }|                      |¦  «        } |||¦  «         Œ<d S )N)r:  )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±   rE  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)
        rD  Úinplace_operator_usecaserG  rI  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)
        rD  Úcomparison_usecaserG  rI  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   )rB  r{   r#  s    r   Útest_differencezTestSets.test_difference  s   € Ø×ÒÕ 2Ñ3Ô3Ð3Ð3Ð3r   c                 ó:   — |                       t          ¦  «         d S r   )rB  r~   r#  s    r   Útest_intersectionzTestSets.test_intersection   s   € Ø×ÒÕ 4Ñ5Ô5Ð5Ð5Ð5r   c                 ó:   — |                       t          ¦  «         d S r   )rB  r�   r#  s    r   Útest_symmetric_differencez"TestSets.test_symmetric_difference#  s   € Ø×ÒÕ <Ñ=Ô=Ð=Ð=Ð=r   c                 ó:   — |                       t          ¦  «         d S r   )rB  r„   r#  s    r   Ú
test_unionzTestSets.test_union&  s   € Ø×Ò¥Ñ.Ô.Ð.Ð.Ð.r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nú&©rB  rJ  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_sub/  r`  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nú^r^  r#  s    r   Útest_xorzTestSets.test_xor2  r`  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz==©rB  rR  r#  s    r   Útest_eqzTestSets.test_eq5  ó*   € Ø×Ò × <Ò <¸TÑ BÔ BÑCÔCÐCÐCÐCr   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz!=rk  r#  s    r   Útest_nezTestSets.test_ne8  rm  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz<=rk  r#  s    r   Útest_lezTestSets.test_le;  rm  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nú<rk  r#  s    r   Útest_ltzTestSets.test_lt>  ó*   € Ø×Ò × <Ò <¸SÑ AÔ AÑBÔBÐBÐBÐBr   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz>=rk  r#  s    r   Útest_gezTestSets.test_geA  rm  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nú>rk  r#  s    r   Útest_gtzTestSets.test_gtD  ru  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz&=©rB  rN  r#  s    r   Ú	test_iandzTestSets.test_iandG  ó*   € Ø×Ò × BÒ BÀ4Ñ HÔ HÑIÔIÐIÐIÐIr   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz|=r|  r#  s    r   Útest_iorzTestSets.test_iorJ  r~  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz-=r|  r#  s    r   Ú	test_isubzTestSets.test_isubM  r~  r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz^=r|  r#  s    r   Ú	test_ixorzTestSets.test_ixorP  r~  r   N).rÞ   rß   rà   rù   rü   r   r  r  r  r  r  r  r  r!  r$  r&  r(  r/  r1  r4  r6  r8  r=  r?  rB  rJ  rN  rR  rU  rW  rY  r[  r_  rc  rf  ri  rl  ro  rq  rt  rw  rz  r}  r€  r‚  r„  rˆ   r   r   rô   rô   N  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†  T  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._rangec  sq   € ÝŒI�d¥"¤(Ð+Ñ+Ô+ˆØÐ"Ñ"ˆØ�‰^×#Ò#¥B¤HÑ-Ô-ˆØ�2‰g˜‰]×"Ò"¥2¤8Ñ,Ô,ˆÝ•C˜˜1˜a‘L”LÑ!Ô!Ð!r   Nr‰  rˆ   r   r   rŒ  rŒ  _  s-   € € € € € ðð ð"ð "ð "ð "ð "r   rŒ  c                   ó   — e Zd ZdZd„ Zd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   rN   s     r   r¾   z*TestUnicodeSets._range.<locals>.<listcomp>p  s"   € Ð:Ð:Ð: A�—’˜Q‘”Ð:Ð:Ð:r   )rL   r¶   r·   s     r   r¹   zTestUnicodeSets._rangeo  s$   € Ø:Ð:­­s°4©y¬yÑ)9Ô)9Ð:Ñ:Ô:Ð:r   Nr‰  rˆ   r   r   r•  r•  k  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Ô   r:  )r   r   r?   z!All Sets must be of the same type©r	   r-   ÚassertRaisesRegexr   ©r±   rÚ   rÙ   r   r   Úmsgs         r   rB  z'TestSetsInvalidDtype._test_set_operatoru  sÎ   € ð #•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆå���ÑÔˆÝ���Ñ Ô ˆØ1ˆØ×#Ò#¥K°Ñ5Ô5ð 	ð 	ØˆE�!�Q‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁA3Á3A7Á:A7N)rÞ   rß   rà   rB  rˆ   r   r   rš  rš  s  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>   rX   s      r   r�   z,TestSetsInvalid.symmetric_difference_usecaseƒ  s    € Ø×"Ò" 1Ñ%Ô%ˆÝ�A‰wŒwˆr   c                 óJ   — |                       |¦  «        }t          |¦  «        S r   )rx   r>   rX   s      r   r{   z"TestSetsInvalid.difference_usecase‡  s   € Ø�LŠL˜‰OŒOˆÝ�A‰wŒwˆr   c                 óJ   — |                       |¦  «        }t          |¦  «        S r   )r}   r>   rX   s      r   r~   z$TestSetsInvalid.intersection_usecase‹  s   € Ø�NŠN˜1ÑÔˆÝ�A‰wŒwˆr   c                 óJ   — |                       |¦  «        }t          |¦  «        S r   )rƒ   r>   rX   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Ô   r:  ©r,   rå   ræ   zAll arguments must be Setsrœ  rž  s         r   rB  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   )rB  r¡  r{   r#  s    r   rU  zTestSetsInvalid.test_differencež  s   € Ø×Ò¥Ô BÑCÔCÐCÐCÐCr   c                 óD   — |                       t          j        ¦  «         d S r   )rB  r¡  r~   r#  s    r   rW  z!TestSetsInvalid.test_intersection¡  s   € Ø×Ò¥Ô DÑEÔEÐEÐEÐEr   c                 óD   — |                       t          j        ¦  «         d S r   )rB  r¡  r�   r#  s    r   rY  z)TestSetsInvalid.test_symmetric_difference¤  s   € Ø×Ò¥Ô LÑMÔMÐMÐMÐMr   c                 óD   — |                       t          j        ¦  «         d S r   )rB  r¡  r„   r#  s    r   r[  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)
        rD  rF  rG  rI  s      r   rJ  z%TestSetsInvalid.make_operator_usecaseª  rK  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)
        rD  rM  rG  rI  s      r   rN  z-TestSetsInvalid.make_inplace_operator_usecase²  rO  r   c                 ób   — dt          |¬¦  «        z  }t          d|t          ¦   «         ¦  «        S )NzWif 1:
        def comparison_usecase(a, b):
            return set(a) %(op)s b
        rD  rQ  rG  rI  s      r   rR  z'TestSetsInvalid.make_comparison_usecase½  rS  r   N)rÞ   rß   rà   r�   r{   r~   r„   rB  rU  rW  rY  r[  rJ  rN  rR  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ÚassertRegexpMatchesÚstrÚ	exception)r±   rŸ  Úraisess      r   Úassert_type_errorzTestUnboxing.assert_type_errorÊ  s¨   è è € à×Ò�yÑ)Ô)ð 	¨VØˆEˆEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	àˆ?Ø×$Ò$¥S¨Ô)9Ñ%:Ô%:¸CÑ@Ô@Ð@Ð@Ð@ð ˆ?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-   rL   ©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š   € € € € € ðð ð ÔðAð Añ ÔðAðð ð ðð ð ð'ð 'ð 'ð
#ð #ð #ð&ð &ð &ðð ð ð ð 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Ù   r1   s       r   Útest_reflect_exceptionz(TestSetReflection.test_reflect_exception"  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-   ro   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>E  s   € Ð Ð Ð ˜�r�!‰uŒuÐ Ð Ð r   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rˆ   rä  r-  s     r   r¾   z8TestSetReflection.test_reflect_clean.<locals>.<listcomp>G  s   € Ð+Ð+Ð+ A�"˜Q™%œ%Ð+Ð+Ð+r   N)r	   rŠ   r-   rû   )r±   rÙ   r1   Úidss       r   Útest_reflect_cleanz$TestSetReflection.test_reflect_clean>  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_uniqueO  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-   r=   r.   )rN   ÚRs     r   Úimplz9TestExamples.test_type_coercion_from_update.<locals>.implX  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_updateV  s5   € ð	ð 	ð 	ð ×&Ò& tÑ,Ô,ˆØˆ‰Œˆˆˆr   N)rÞ   rß   rà   rŠ  rì  rò  rˆ   r   r   rê  rê  J  s<   € € € € € ðð ð&ð &ð &ð	ð 	ð 	ð 	ð 	r   rê  Ú__main__)NÚunittestÚcollectionsr   rÌ  r  Úmathr®   ÚsysÚnumba.core.errorsr   Únumpyr´   Únumba.core.compilerr   r   r   Únumbar	   Ú
numba.corer
   Únumba.tests.supportr   r   r   r   r   r   r#   r'   r)   r2   r5   r;   r@   rC   rG   rJ   rO   rS   rU   rY   r\   r_   rb   rf   ri   rm   rr   rt   rv   r{   r~   r�   r„   r†   rŠ   rŽ   r‘   r”   r–   rœ   rŸ   r¢   r¤   r¨   rª   rã   rô   r†  rŒ  r•  rš  r¡  r°  rÏ  rê  rÞ   Úmainrˆ   r   r   ú<module>rÿ     sz  ðØ €€€à "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø 
€
€
€
Ø )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€ð8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 	ˆ
�7˜JÑ'Ô'€ð:ð :ð :ð2ð 2ð 2ð2ð 2ð 2ðð ð ð
ð ð ðð ð ðð ð ðð ð ð
ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð
ð ð ð
ð ð ð
%ð %ð %ð#ð #ð #ð%ð %ð %ðð ð ð
ð ð ðð ð ðð ð ðð ð ð
ð ð ð
ð ð ð
ð ð ð
ð ð ð
	ð 	ð 	ðð ð ðð ð ðð ð ðð ð ð ð  ð  ð
	 ð 	 ð 	 ðð ð ðð ð ð
ð ð ð3ð 3ð 3ð 3ð 3ˆ ñ 3ô 3ð 3ðl?ð ?ð ?ð ?ð ?�hñ ?ô ?ð ?ð0C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   