ó
    „ñ:iòZ  ã                   ó†  • S SK r S SKJr  S SKrS SKrS SKrS SKJr  S SKr	S SK
JrJr  S SKJrJrJrJr  \" SS5      rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S r%S r&S r'S r(S r)S r*S  r+S! r,S" r-S# r.S$ r/S% r0S& r1S' r2S( r3S) r4S* r5S+ r6S, r7S- r8 " S. S/\\5      r9 " S0 S1\95      r: " S2 S3\95      r; " S4 S5\;5      r< " S6 S7\;5      r= " S8 S9\;5      r> " S: S;\;5      r? " S< S=\;5      r@ " S> S?\95      rA " S@ SA\95      rB " SB SC\95      rC\DSD:X  a  \ RŠ                  " 5         gg)Eé    N)Ú
namedtuple)ÚTypingError)ÚjitÚnjit)ÚTestCaseÚenable_pyobj_flagsÚMemoryLeakMixinÚcompile_functionÚPoint©ÚaÚbc                 óf   • U SSR                  S U 5       5      0-  n [        SU [        5       5      $ )NÚinitializerz, c              3   ó8   #   • U  H  n[        U5      v •  M     g 7f©N)Úrepr)Ú.0Úargs     ÚX/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_sets.pyÚ	<genexpr>Ú-_build_set_literal_usecase.<locals>.<genexpr>   s   é € Ð+FÂ¸#¬D°¯I¨IÂùs   ‚Ú	build_set)Újoinr
   Úglobals)ÚcodeÚargss     r   Ú_build_set_literal_usecaser      s1   € Ø�= $§)¡)Ñ+FÁÓ+FÓ"FÐGÑG€DÜ˜K¨¬w«yÓ9Ð9ó    c                 ó   • Sn[        X5      $ )Nz@if 1:
    def build_set():
        return {%(initializer)s}
    ©r   ©r   r   s     r   Úset_literal_return_usecaser#      s   € ð€Dô & dÓ1Ð1r   c                 ó   • Sn[        X5      $ )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Ó1Ð1r   c                  óN   • [        5       n U R                  S5        [        U 5      $ ©Né   )ÚsetÚaddÚlen©Úss    r   Úempty_constructor_usecaser.   '   s   € Ü‹€AØ‡E�Eˆ!„HÜˆq‹6€Mr   c                 ó.   • [        U 5      n[        U5      $ r   )r)   r+   ©r   r-   s     r   Úconstructor_usecaser1   ,   s   € ÜˆC‹€AÜˆq‹6€Mr   c                 óT   • [        U 5      n/ nU H  nUR                  U5        M     U$ r   ©r)   Úappend)r   r-   ÚlÚvs       r   Úiterator_usecaser7   0   s*   € ÜˆC‹€AØ
€AÛˆØ	�‰�Žñ à€Hr   c                 ó’   • [        5       nUR                  U 5        UR                  U5        UR                  U5        [        U5      $ r   )r)   ÚupdateÚlist)r   r   Úcr-   s       r   Úupdate_usecaser<   7   s3   € Ü‹€AØ‡H�HˆQ„KØ‡H�HˆQ„KØ‡H�HˆQ„KÜ�‹7€Nr   c                 ó4   • [        U SS  5      n[        U5      $ r'   )r)   Úboolr0   s     r   Úbool_usecaser?   >   s   € äˆC��ˆG‹€AÜ�‹7€Nr   c                 ób   • [        U 5      nU H  nUR                  U5        M     [        U5      $ r   )r)   Úremover:   ©r   r   r-   r6   s       r   Úremove_usecaserC   C   s)   € ÜˆA‹€AÛˆØ	�‰�Žñ ä�‹7€Nr   c                 ób   • [        U 5      nU H  nUR                  U5        M     [        U5      $ r   )r)   Údiscardr:   rB   s       r   Údiscard_usecaserF   I   s)   € ÜˆA‹€AÛˆØ	�	‰	�!Žñ ä�‹7€Nr   c                 ó–   • [        U 5      n[        S5       H%  nUR                  U5        UR                  U5        M'     [	        U5      $ )Niè  )r)   Úranger*   rE   r:   )r   Úur6   r-   Úis        r   Úadd_discard_usecaserK   O   s:   € ÜˆA‹€AÜ�4Ž[ˆØ	�‰ˆaŒØ	�	‰	�!Žñ ô �‹7€Nr   c                 óž   • [        U 5      n/ n[        U5      S:”  a0  UR                  UR                  5       5        [        U5      S:”  a  M0  U$ ©Nr   )r)   r+   r4   Úpop)r   r-   r5   s      r   Úpop_usecaserO   V   s?   € ÜˆA‹€AØ
€AÜ
ˆa‹&�1‹*Ø	�‰�—‘“Ôô ˆa‹&�1�*à€Hr   c                 óX   • [        U 5      n/ nU H  nUR                  XB;   5        M     U$ r   r3   )r   r   r-   r5   r6   s        r   Úcontains_usecaserQ   ]   s-   € ÜˆA‹€AØ
€AÛˆØ	�‰�‘Öñ à€Hr   c                 ób   • [        U 5      nUR                  [        U5      5        [        U5      $ r   )r)   Údifference_updater:   ©r   r   r-   s      r   Údifference_update_usecaserU   d   s&   € ÜˆA‹€AØ×Ñœ˜A›ÔÜ�‹7€Nr   c                 ób   • [        U 5      nUR                  [        U5      5        [        U5      $ r   )r)   Úintersection_updater:   rT   s      r   Úintersection_update_usecaserX   i   s&   € ÜˆA‹€AØ×Ñœ#˜a›&Ô!Ü�‹7€Nr   c                 ób   • [        U 5      nUR                  [        U5      5        [        U5      $ r   )r)   Úsymmetric_difference_updater:   rT   s      r   Ú#symmetric_difference_update_usecaser[   n   s&   € ÜˆA‹€AØ×!Ñ!¤# a£&Ô)Ü�‹7€Nr   c                 óH   • [        U 5      R                  [        U5      5      $ r   )r)   Ú
isdisjointr   s     r   Úisdisjoint_usecaser^   s   ó   € Üˆq‹6×ÑœS ›VÓ$Ð$r   c                 óH   • [        U 5      R                  [        U5      5      $ r   )r)   Úissubsetr   s     r   Úissubset_usecaserb   v   s   € Üˆq‹6�?‰?œ3˜q›6Ó"Ð"r   c                 óH   • [        U 5      R                  [        U5      5      $ r   )r)   Ú
issupersetr   s     r   Úissuperset_usecasere   y   r_   r   c                 ód   • [        U 5      nUR                  5         [        U5      [        U5      4$ r   )r)   Úclearr+   r:   ©r   r-   s     r   Úclear_usecaseri   |   s&   € ÜˆA‹€AØ‡G�G„IÜˆq‹6”4˜“7ˆ?Ðr   c                 ó„   • [        U 5      nUR                  5       nUR                  5         [        U5      [	        U5      4$ r   )r)   ÚcopyrN   r+   r:   ©r   r-   Ússs      r   Úcopy_usecasern   �   s2   € ÜˆA‹€AØ	
�‰‹€BØ‡E�E„GÜˆr‹7”D˜“HÐÐr   c                 ó¬   • [        U 5      nUR                  5         UR                  5       nUR                  U S   5        [	        U5      [        U5      4$ rM   )r)   rg   rk   r*   r+   r:   rl   s      r   Úcopy_usecase_emptyrp   ‡   sA   € ÜˆA‹€AØ‡G�G„IØ	
�‰‹€BØ‡E�Eˆ!ˆA‰$„KÜˆr‹7”D˜“HÐÐr   c                 ó¦   • [        U 5      nUR                  U5        UR                  5       nUR                  5         [	        U5      [        U5      4$ r   )r)   rA   rk   rN   r+   r:   )r   r   r-   rm   s       r   Úcopy_usecase_deletedrr   Ž   s=   € ÜˆA‹€AØ‡H�HˆQ„KØ	
�‰‹€BØ‡E�E„GÜˆr‹7”D˜“HÐÐr   c                 ób   • [        U 5      nUR                  [        U5      5      n[        U5      $ r   )r)   Ú
differencer:   ©r   r   Úsar-   s       r   Údifference_usecaserw   •   s&   € Ü	ˆQ‹€BØ
�‰”c˜!“fÓ€AÜ�‹7€Nr   c                 ób   • [        U 5      nUR                  [        U5      5      n[        U5      $ r   )r)   Úintersectionr:   ru   s       r   Úintersection_usecaserz   š   s&   € Ü	ˆQ‹€BØ
�‰œ˜A›Ó€AÜ�‹7€Nr   c                 ób   • [        U 5      nUR                  [        U5      5      n[        U5      $ r   )r)   Úsymmetric_differencer:   ru   s       r   Úsymmetric_difference_usecaser}   Ÿ   s(   € Ü	ˆQ‹€BØ
×Ñ¤ A£Ó'€AÜ�‹7€Nr   c                 ób   • [        U 5      nUR                  [        U5      5      n[        U5      $ r   )r)   Úunionr:   ru   s       r   Úunion_usecaser€   ¤   s&   € Ü	ˆQ‹€BØ
�‰”�Q“Ó€AÜ�‹7€Nr   c                 ó   • [        U 5      nU$ r   )r)   rh   s     r   Úset_return_usecaser‚   ©   s   € ÜˆA‹€AØ€Hr   c                 ó   • g r   © )Úxs    r   Únoopr†   ®   s   € Ør   c                 ó$   • SnU  H  nX-  nM	     U$ )z
Expect a set of numbers
r   r„   ©r…   Úresr6   s      r   Úunbox_usecaserŠ   ±   s   € ð €CÛˆØ‰Šñ à€Jr   c                 ó8   • SnU  H  nU[        U5      -  nM     U$ )z
Expect a set of tuples
r   ©r+   rˆ   s      r   Úunbox_usecase2r�   º   s%   € ð €CÛˆØŒs�1‹v‰Šñ à€Jr   c                 ó,   • U u  pUnU H  nX4-  nM	     U$ )z*
Expect a (number, set of numbers) tuple.
r„   ©r…   r   r   r‰   r6   s        r   Úunbox_usecase3r�   Ã   s&   € ð �D€AØ
€CÛˆØ‰Šñ à€Jr   c                 ó@   • U u  pUnU H  nU[        U5      -  nM     U$ )z)
Expect a (number, set of tuples) tuple.
rŒ   r�   s        r   Úunbox_usecase4r’   Í   s,   € ð �D€AØ
€CÛˆØŒs�1‹v‰Šñ à€Jr   c                 ót   • U R                  S5        U R                  U5        U [        U 5      [        U5      4$ ©Né*   )r*   r9   r+   ©rv   Úsbs     r   Úreflect_simpler˜   Ø   s-   € Ø‡F�Fˆ2„JØ‡I�Iˆb„MØŒs�2‹wœ˜B›ÐÐr   c                 óà   • [        U5      S:”  a  [        S5      n U R                  S5        U R                  U5        [        S5      nU R	                  U5        U [        U 5      [        U5      4$ )Nr(   )g      &@g      6@g     €@@g      F@g      E@)g     €K@g     €P@)r+   r)   r*   r9   rZ   )rv   r—   Úscs      r   Úreflect_conditionalr›   Ý   sZ   € ä
ˆ2ƒw�ƒ{ÜÐ%Ó&ˆØ‡F�Fˆ3„KØ‡I�Iˆb„Mä	ˆZ‹€BØ×"Ñ" 2Ô&ØŒs�2‹wœ˜B›ÐÐr   c                 ó0   • U R                  S5        [        er”   )r*   ÚZeroDivisionErrorr,   s    r   Úreflect_exceptionrž   è   s   € Ø‡E�Eˆ"„IÜ
Ðr   c                 óF   • U R                  UR                  5       5        XL $ r   )r*   rN   r–   s     r   Úreflect_dualr    ì   s   € Ø‡F�Fˆ2�6‰6‹8ÔØˆ8€Or   c                 ó‚   • [        5       n/ nU  H,  nX1;  d  M
  UR                  U5        UR                  U5        M.     U$ r   )r)   r*   r4   )ÚsrcÚseenr‰   r6   s       r   Úunique_usecaser¤   ñ   s:   € Ü‹5€DØ
€CÛˆØ�=Ø�H‰H�QŒKØ�J‰J�qŽMñ ð €Jr   c                   óL   ^ • \ rS rSrU 4S jrS rS rS rS rS r	S r
S	rU =r$ )
ÚBaseTestéû   c                 ó`   >• [         [        U ]  5         [        R                  " S5      U l        g r”   )Úsuperr¦   ÚsetUpÚrandomÚRandomÚrnd)ÚselfÚ	__class__s    €r   rª   ÚBaseTest.setUpý   s    ø€ ÜŒh˜Ñ#Ô%Ü—=’= Ó$ˆ�r   c                 ó\   • [         R                  " [        U5      5      R                  5       $ r   )ÚnpÚarangeÚintÚtolist©r®   Ústops     r   Ú_rangeÚBaseTest._range  s   € Ü�yŠyœ˜T›Ó#×*Ñ*Ó,Ð,r   c                 ó  • [        U5       Vs/ s H&  o0R                  R                  [        U5      5      PM(     nn[	        U[
        R                  5      (       a  [
        R                  " XAR                  S9$ U$ s  snf )z4
Choose *n* possibly duplicate items from sequence.
©Údtype)	rH   r­   Úchoicer:   Ú
isinstancer²   ÚndarrayÚarrayr¼   )r®   ÚseqÚnrJ   r5   s        r   Ú_random_choiceÚBaseTest._random_choice  sY   € ô 27°q´Ó:²¨A�X‰X�_‰_œT #›YÖ'±ˆÐ:Ü�cœ2Ÿ:™:×&Ñ&Ü—8’8˜A§Y¡YÑ/Ð/àˆHùò	 ;s   Ž-A<c                 ón   • U R                  [        R                  " U5      5      nU R                  X!5      $ )z,
Get a 1d array with many duplicate values.
)r¸   r²   ÚsqrtrÃ   ©r®   rÂ   r   s      r   Úduplicates_arrayÚBaseTest.duplicates_array  s+   € ð �K‰KœŸš ›
Ó#ˆØ×"Ñ" 1Ó(Ð(r   c                 óL   • U R                  US-  5      nU R                  X!5      $ )z+
Get a 1d array with values spread around.
gÍÌÌÌÌÌô?)r¸   rÃ   rÇ   s      r   Úsparse_arrayÚBaseTest.sparse_array  s'   € ð
 �K‰K˜˜S™Ó!ˆØ×"Ñ" 1Ó(Ð(r   c                 óh  • [        U[        5      (       a<  U R                  U[        5        [        X5       H  u  p4U R	                  X45        M     g [        U[
        5      (       a;  U R                  U[
        5        U R                  [        U5      [        U5      5        g U R                  X5        g r   )r¾   ÚtupleÚassertIsInstanceÚzipÚ_assert_equal_unorderedr:   ÚassertPreciseEqualÚsorted)r®   r   r   rI   r6   s        r   rÑ   Ú BaseTest._assert_equal_unordered  s€   € Ü�aœ×ÑØ×!Ñ! !¤UÔ+Ü˜Až	‘�Ø×,Ñ,¨QÖ2ò "ä˜œ4× Ñ Ø×!Ñ! !¤TÔ*Ø×#Ñ#¤F¨1£I¬v°a«yÕ9à×#Ñ# AÕ)r   c                 ó:   ^ ^^• [        SS9" T5      mUUU 4S jnU$ )NT©Únopythonc                  ó<   >• T" U 6 nT" U 6 nTR                  X5        g r   )rÑ   )r   ÚexpectedÚgotÚcfuncÚpyfuncr®   s      €€€r   ÚcheckÚ)BaseTest.unordered_checker.<locals>.check*  s#   ø€ Ù˜t�}ˆHÙ˜�,ˆCØ×(Ñ(¨Õ7r   ©r   ©r®   rÜ   rÝ   rÛ   s   `` @r   Úunordered_checkerÚBaseTest.unordered_checker(  s   ú€ Ü˜TÒ" 6Ó*ˆ÷	8ð ˆr   )r­   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rª   r¸   rÃ   rÈ   rË   rÑ   rá   Ú__static_attributes__Ú__classcell__)r¯   s   @r   r¦   r¦   û   s+   ø† õ%ò-òò)ò)ò	*÷ð r   r¦   c                   ó2   • \ rS rSrS rS r\4S jrS rSr	g)ÚTestSetLiteralsi1  c                 ó\   • [        U5      nU" 5       nU" 5       nU R                  X45        XC4$ r   )r   rÒ   )r®   rÜ   rÛ   rÙ   rÚ   s        r   rÝ   ÚTestSetLiterals.check3  s/   € Ü�V“ˆÙ“8ˆÙ‹gˆØ×Ñ Ô.Øˆ}Ðr   c                 ó<   • [        S5      nU R                  U5        g )N)r(   é   é   rî   )r#   rÝ   )r®   rÜ   s     r   Útest_build_setÚTestSetLiterals.test_build_set:  s   € Ü+¨LÓ9ˆØ�
‰
�6Õr   c                 óø   • [        S5      nU R                  U5        [        S5      nU R                  U5      u  p4U R                  [        UR	                  5       5      [        UR	                  5       5      5        g )N)r(   ç       @y              @rî   )ró   rî   )r#   rÝ   ÚassertIsÚtyperN   )r®   ÚflagsrÜ   rÚ   rÙ   s        r   Útest_build_heterogeneous_setÚ,TestSetLiterals.test_build_heterogeneous_set>  sU   € Ü+¨OÓ<ˆØ�
‰
�6ÔÜ+¨HÓ5ˆØŸ
™
 6Ó*‰ˆØ�‰”d˜3Ÿ7™7›9“o¤t¨H¯L©L«NÓ';Õ<r   c                 óÐ   • [        U R                  S5      5      n[        U5      n[        SS9" U5      nU" 5       nU" 5       nU R	                  [        U5      [        U5      5        g )Né2   TrÖ   )r:   rË   r%   r   rÒ   rÓ   )r®   r   rÜ   rÛ   rÙ   rÚ   s         r   Útest_build_set_nopythonÚ'TestSetLiterals.test_build_set_nopythonE  sW   € Ü�4×$Ñ$ RÓ(Ó)ˆÜ,¨SÓ1ˆÜ˜TÒ" 6Ó*ˆá“8ˆÙ‹gˆØ×Ñ¤ xÓ 0´&¸³+Õ>r   r„   N)
rã   rä   rå   ræ   rÝ   rð   r   r÷   rû   rç   r„   r   r   rê   rê   1  s   † òòð 2Dô =õ?r   rê   c                   ó  • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S-r/g.)/ÚTestSetsiO  c                 ó  ^ ^^• [         m[        SS9" T5      mT R                  T" 5       T" 5       5        [        m[        SS9" T5      mUUU 4S jnU" T R	                  S5      5        U" T R                  S5      5        g )NTrÖ   c                 óB   >• TR                  T" U 5      T" U 5      5        g r   ©rÒ   )r   rÛ   rÜ   r®   s    €€€r   rÝ   Ú(TestSets.test_constructor.<locals>.checkX  s   ø€ Ø×#Ñ#¡F¨3£K±°s³Õ<r   éÈ   )r.   r   rÒ   r1   rÈ   rË   )r®   rÝ   rÛ   rÜ   s   ` @@r   Útest_constructorÚTestSets.test_constructorQ  sl   ú€ Ü*ˆÜ˜TÒ" 6Ó*ˆØ×Ñ¡£©«Ô2ä$ˆÜ˜TÒ" 6Ó*ˆ÷	=ñ 	ˆd×#Ñ# CÓ(Ô)Ùˆd×Ñ Ó$Õ%r   c                 ó’   • [         n[        SS9" U5      nU R                  S5      nU R                  U" U5      [	        U5      5        g )NTrÖ   r  )r‚   r   rÈ   ÚassertEqualr)   )r®   rÜ   rÛ   r   s       r   Útest_set_returnÚTestSets.test_set_return^  s>   € Ü#ˆÜ˜TÒ" 6Ó*ˆà×#Ñ# CÓ(ˆØ×Ñ™˜s›¤S¨£XÕ.r   c                 óŽ   • [         nU R                  U5      nU" U R                  S5      5        U" U R                  S5      5        g ©Nr  )r7   rá   rÈ   rË   ©r®   rÜ   rÝ   s      r   Útest_iteratorÚTestSets.test_iteratore  s=   € Ü!ˆØ×&Ñ& vÓ.ˆáˆd×#Ñ# CÓ(Ô)Ùˆd×Ñ Ó$Õ%r   c                 óª   • [         nU R                  U5      nU R                  S5      nU R                  S5      nU R                  S5      nU" X4U5        g ©Nrú   )r<   rá   rË   rÈ   )r®   rÜ   rÝ   r   r   r;   s         r   Útest_updateÚTestSets.test_updatel  sP   € ÜˆØ×&Ñ& vÓ.ˆà×Ñ˜bÓ!ˆØ×!Ñ! "Ó%ˆØ×Ñ˜bÓ!ˆÙˆa�A�r   c                 ót   • [         nU R                  U5      nU R                  S5      nUS S S2   nU" X45        g )Nrú   é
   )rC   rá   rË   ©r®   rÜ   rÝ   r   r   s        r   Útest_removeÚTestSets.test_removeu  s;   € ÜˆØ×&Ñ& vÓ.ˆà×Ñ˜bÓ!ˆØ‰d�ˆd‰GˆÙˆa�r   c                 ó  • U R                  5         [        n[        SS9" U5      n[        [	        U R                  S5      5      5      nUSS  nUS   4nU R                  [        5         U" XE5        S S S 5        g ! , (       d  f       g = f)NTrÖ   rï   r(   r   )Údisable_leak_checkrC   r   rÎ   r)   rË   ÚassertRaisesÚKeyError)r®   rÜ   rÛ   Úitemsr   r   s         r   Útest_remove_errorÚTestSets.test_remove_error}  su   € à×ÑÔ!äˆÜ˜TÒ" 6Ó*ˆô ”c˜$×+Ñ+¨AÓ.Ó/Ó0ˆØ�!�"ˆIˆØ�1‰XˆKˆØ×ÑœxÕ(Ù�!ŒK÷ )×(Ö(ús   Á)	A;Á;
B	c                 ó†   • [         nU R                  U5      nU R                  S5      nU R                  S5      nU" X45        g r  )rF   rá   rË   r  s        r   Útest_discardÚTestSets.test_discard‹  s>   € Ü ˆØ×&Ñ& vÓ.ˆà×Ñ˜bÓ!ˆØ×Ñ˜bÓ!ˆÙˆa�r   c                 óŠ   • [         nU R                  U5      nS=p4X4:X  a  U R                  S5      u  p4X4:X  a  M  U" U4XD5        g)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_discardÚTestSets.test_add_discard“  sL   € ô %ˆØ×&Ñ& vÓ.ˆð ˆˆØ‹fØ×$Ñ$ QÓ'‰DˆAð �fáˆqˆd�AÕr   c                 ó`   • [         nU R                  U5      nU" U R                  S5      5        g r  )rO   rá   rË   r  s      r   Útest_popÚTestSets.test_pop£  s*   € ÜˆØ×&Ñ& vÓ.ˆáˆd×Ñ Ó#Õ$r   c                 ó˜   ^ ^^• [         m[        SS9" T5      mUUU 4S jnT R                  S5      nT R                  S5      nU" X#5        g )NTrÖ   c                 óB   >• TR                  T" X5      T" X5      5        g r   r  ©r   r   rÛ   rÜ   r®   s     €€€r   rÝ   Ú%TestSets.test_contains.<locals>.check¬  ó   ø€ Ø×#Ñ#¡F¨1£L±%¸³+Õ>r   rú   )rQ   r   rË   )r®   rÝ   r   r   rÛ   rÜ   s   `   @@r   Útest_containsÚTestSets.test_contains©  sE   ú€ Ü!ˆÜ˜TÒ" 6Ó*ˆ÷	?ð ×Ñ˜bÓ!ˆØ×Ñ˜bÓ!ˆÙˆa�r   c                 ó¼   • U R                  U5      nSn[        R                  " X35       H/  u  pEU R                  U5      nU R                  U5      nU" Xg5        M1     g )N©r(   rú   iô  ©rá   Ú	itertoolsÚproductrË   )r®   rÜ   rÝ   ÚsizesÚnaÚnbr   r   s           r   Ú_test_xxx_updateÚTestSets._test_xxx_update³  sU   € Ø×&Ñ& vÓ.ˆàˆÜ×'Ò'¨Ö5‰FˆBØ×!Ñ! "Ó%ˆAØ×!Ñ! "Ó%ˆAÙ�!ŽKò 6r   c                 ó.   • U R                  [        5        g r   )r7  rU   ©r®   s    r   Útest_difference_updateÚTestSets.test_difference_update¼  s   € Ø×ÑÔ7Õ8r   c                 ó.   • U R                  [        5        g r   )r7  rX   r:  s    r   Útest_intersection_updateÚ!TestSets.test_intersection_update¿  s   € Ø×ÑÔ9Õ:r   c                 ó.   • U R                  [        5        g r   )r7  r[   r:  s    r   Ú test_symmetric_difference_updateÚ)TestSets.test_symmetric_difference_updateÂ  s   € Ø×ÑÔAÕBr   c                 óF  ^ ^^• [        SS9" T5      mUUU 4S jn[        [        T R                  S5      T R                  S5      /5      u  p4X4-  X4-
  X4-  X4-  /nU Vs/ s H  n[	        U5      PM     nn[
        R                  " XU5       H  u  p4U" X45        M     g s  snf )NTrÖ   c                 óB   >• TR                  T" X5      T" X5      5        g r   r  r*  s     €€€r   rÝ   Ú(TestSets._test_comparator.<locals>.checkÇ  r,  r   r  é   )r   Úmapr)   rË   rÎ   r2  r3  )r®   rÜ   rÝ   r   r   r   r…   rÛ   s   ``     @r   Ú_test_comparatorÚTestSets._test_comparatorÅ  s“   ú€ Ü˜TÒ" 6Ó*ˆ÷	?ô ”3˜×*Ñ*¨2Ó.°×0AÑ0AÀ"Ó0EÐFÓG‰ˆØ‘�q‘u˜a™e Q¡UÐ+ˆÙ"&Ó'¢$˜Q”�a–¡$ˆÐ'Ü×%Ò% dÖ1‰DˆAÙ�!ŽKò 2ùò (s   ÁBc                 ó.   • U R                  [        5        g r   )rH  r^   r:  s    r   Útest_isdisjointÚTestSets.test_isdisjointÐ  ó   € Ø×ÑÔ0Õ1r   c                 ó.   • U R                  [        5        g r   )rH  rb   r:  s    r   Útest_issubsetÚTestSets.test_issubsetÓ  s   € Ø×ÑÔ.Õ/r   c                 ó.   • U R                  [        5        g r   )rH  re   r:  s    r   Útest_issupersetÚTestSets.test_issupersetÖ  rM  r   c                 ó`   • [         nU R                  U5      nU" U R                  S5      5        g r  )ri   rá   rË   r  s      r   Ú
test_clearÚTestSets.test_clearÙ  s*   € ÜˆØ×&Ñ& vÓ.ˆáˆd×Ñ Ó#Õ$r   c                 óP  • [         nU R                  U5      nU" U R                  S5      5        [        nU R                  U5      nU R                  S5      nU" U5        [        nU R                  U5      nU" SS5        U R                  S5      nU" X3[        U5      S-     5        g )Nrú   r(   ©r(   rî   é   é   rî   )rn   rá   rË   rp   rr   r+   )r®   rÜ   rÝ   r   s       r   Ú	test_copyÚTestSets.test_copyß  s›   € äˆØ×&Ñ& vÓ.ˆÙˆd×Ñ Ó#Ô$ä#ˆØ×&Ñ& vÓ.ˆØ×Ñ˜aÓ ˆÙˆaŒô &ˆØ×&Ñ& vÓ.ˆÙˆm˜QÔØ×Ñ˜bÓ!ˆÙˆa”3�q“6˜Q‘;‘Õ r   c                 óŽ   • [         nU R                  U5      nU" U R                  S5      5        U" U R                  S5      5        g )Nr(   rî   )r?   rá   rË   r  s      r   Ú	test_boolÚTestSets.test_boolñ  s=   € ÜˆØ×&Ñ& vÓ.ˆáˆd×Ñ Ó"Ô#Ùˆd×Ñ Ó"Õ#r   c                 óÔ   • U R                  U5      nSu  p4U" X45        Sn[        R                  " XU5       H/  u  pgU R                  U5      nU R                  U5      nU" X45        M1     g )N)rX  )rî   rï   é   rZ  r•   r0  r1  )r®   rÜ   rÝ   r   r   r4  r5  r6  s           r   Ú_test_set_operatorÚTestSets._test_set_operatorø  sc   € Ø×&Ñ& vÓ.ˆà/‰ˆÙˆaŒàˆÜ×'Ò'¨Ö5‰FˆBØ×!Ñ! "Ó%ˆAØ×!Ñ! "Ó%ˆAÙ�!ŽKò 6r   c                 óD   • S[        US9-  n[        SU[        5       5      $ )Nzrif 1:
        def operator_usecase(a, b):
            s = set(a) %(op)s set(b)
            return list(s)
        ©ÚopÚoperator_usecase©Údictr
   r   ©r®   rf  r   s      r   Úmake_operator_usecaseÚTestSets.make_operator_usecase  ó+   € ðô �b‰kñ	ˆô
  Ð 2°D¼'»)ÓDÐDr   c                 óD   • S[        US9-  n[        SU[        5       5      $ )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)
        re  Úinplace_operator_usecaserh  rj  s      r   Úmake_inplace_operator_usecaseÚ&TestSets.make_inplace_operator_usecase  ó+   € ðô �b‰kñˆô  Ð :¸DÄ'Ã)ÓLÐLr   c                 óD   • S[        US9-  n[        SU[        5       5      $ )Nz\if 1:
        def comparison_usecase(a, b):
            return set(a) %(op)s set(b)
        re  Úcomparison_usecaserh  rj  s      r   Úmake_comparison_usecaseÚ TestSets.make_comparison_usecase  ó+   € ðô �b‰kñˆô  Ð 4°d¼G»IÓFÐFr   c                 ó.   • U R                  [        5        g r   )rb  rw   r:  s    r   Útest_differenceÚTestSets.test_difference  s   € Ø×ÑÔ 2Õ3r   c                 ó.   • U R                  [        5        g r   )rb  rz   r:  s    r   Útest_intersectionÚTestSets.test_intersection!  s   € Ø×ÑÔ 4Õ5r   c                 ó.   • U R                  [        5        g r   )rb  r}   r:  s    r   Útest_symmetric_differenceÚ"TestSets.test_symmetric_difference$  s   € Ø×ÑÔ <Õ=r   c                 ó.   • U R                  [        5        g r   )rb  r€   r:  s    r   Ú
test_unionÚTestSets.test_union'  s   € Ø×Ñ¤Õ.r   c                 óD   • U R                  U R                  S5      5        g )NÚ&©rb  rk  r:  s    r   Útest_andÚTestSets.test_and*  ó   € Ø×Ñ × :Ñ :¸3Ó ?Õ@r   c                 óD   • U R                  U R                  S5      5        g )NÚ|r†  r:  s    r   Útest_orÚTestSets.test_or-  r‰  r   c                 óD   • U R                  U R                  S5      5        g )NÚ-r†  r:  s    r   Útest_subÚTestSets.test_sub0  r‰  r   c                 óD   • U R                  U R                  S5      5        g )NÚ^r†  r:  s    r   Útest_xorÚTestSets.test_xor3  r‰  r   c                 óD   • U R                  U R                  S5      5        g )Nz==©rb  ru  r:  s    r   Útest_eqÚTestSets.test_eq6  ó   € Ø×Ñ × <Ñ <¸TÓ BÕCr   c                 óD   • U R                  U R                  S5      5        g )Nz!=r—  r:  s    r   Útest_neÚTestSets.test_ne9  rš  r   c                 óD   • U R                  U R                  S5      5        g )Nz<=r—  r:  s    r   Útest_leÚTestSets.test_le<  rš  r   c                 óD   • U R                  U R                  S5      5        g )NÚ<r—  r:  s    r   Útest_ltÚTestSets.test_lt?  ó   € Ø×Ñ × <Ñ <¸SÓ AÕBr   c                 óD   • U R                  U R                  S5      5        g )Nz>=r—  r:  s    r   Útest_geÚTestSets.test_geB  rš  r   c                 óD   • U R                  U R                  S5      5        g )NÚ>r—  r:  s    r   Útest_gtÚTestSets.test_gtE  r¥  r   c                 óD   • U R                  U R                  S5      5        g )Nz&=©rb  rp  r:  s    r   Ú	test_iandÚTestSets.test_iandH  ó   € Ø×Ñ × BÑ BÀ4Ó HÕIr   c                 óD   • U R                  U R                  S5      5        g )Nz|=r®  r:  s    r   Útest_iorÚTestSets.test_iorK  r±  r   c                 óD   • U R                  U R                  S5      5        g )Nz-=r®  r:  s    r   Ú	test_isubÚTestSets.test_isubN  r±  r   c                 óD   • U R                  U R                  S5      5        g )Nz^=r®  r:  s    r   Ú	test_ixorÚTestSets.test_ixorQ  r±  r   r„   N)0rã   rä   rå   ræ   r  r  r  r  r  r  r   r#  r&  r-  r7  r;  r>  rA  rH  rK  rO  rR  rU  r[  r^  rb  rk  rp  ru  ry  r|  r  r‚  r‡  rŒ  r�  r”  r˜  rœ  rŸ  r£  r§  r«  r¯  r³  r¶  r¹  rç   r„   r   r   rþ   rþ   O  së   † ò&ò/ò&òòòòòò %òòò9ò;òCò	ò2ò0ò2ò%ò!ò$$ò
òEò	MòGò4ò6ò>ò/òAòAòAòAòDòDòDòCòDòCòJòJòJõJr   rþ   c                   ó   • \ rS rSrSrS rSrg)ÚTestFloatSetsiU  z%
Test sets with floating-point keys.
c                 óv   • [         R                  " U[         R                  S9[         R                  " S5      -  $ )Nr»   gš™™™™™¹?)r²   r³   Úfloat32r¶   s     r   r¸   ÚTestFloatSets._range\  s$   € Ü�yŠy˜¤R§Z¡ZÑ0´2·:²:¸c³?ÑBÐBr   r„   N©rã   rä   rå   ræ   Ú__doc__r¸   rç   r„   r   r   r¼  r¼  U  s   † ñõCr   r¼  c                   ó   • \ rS rSrSrS rSrg)ÚTestTupleSetsi`  z
Test sets with tuple keys.
c                 ó
  • [         R                  " U[         R                  S9nUS-  nUS-  R                  [         R                  5      nUS-	  S-  R                  [         R
                  5      n[        [        X4U5      5      $ )Nr»   l   UUª*UUª* l   ª*UU é    r(   )r²   r³   Úint64ÚastypeÚint32Úbool_r:   rÐ   )r®   r·   r   r   r;   Úds         r   r¸   ÚTestTupleSets._ranged  sf   € Ü�IŠI�d¤"§(¡(Ñ+ˆØÐ"Ñ"ˆØ�‰^×#Ñ#¤B§H¡HÓ-ˆØ�2‰g˜‰]×"Ñ"¤2§8¡8Ó,ˆÜ”C˜˜a“LÓ!Ð!r   r„   NrÀ  r„   r   r   rÃ  rÃ  `  s   † ñõ"r   rÃ  c                   ó   • \ rS rSrSrS rSrg)ÚTestUnicodeSetsil  zJ
Test sets with unicode keys. For the purpose of testing refcounted sets.
c                 ót   • [        [        U5      5       Vs/ s H  nSR                  U5      PM     sn$ s  snf )NzA{})rH   r´   Úformat)r®   r·   rJ   s      r   r¸   ÚTestUnicodeSets._rangep  s-   € Ü).¬s°4«yÔ)9Ó:Ò)9 A�—‘˜Q–Ñ)9Ñ:Ð:ùÒ:s   —5r„   NrÀ  r„   r   r   rÍ  rÍ  l  s   † ñõ;r   rÍ  c                   ó   • \ rS rSrS rSrg)ÚTestSetsInvalidDtypeit  c                 óÊ   • [        SS9" U5      n[        / SQ5      n[        / SQ5      nSnU R                  [        U5         U" X45        S S S 5        g ! , (       d  f       g = f)NTrÖ   rX  )r   r   r;   z!All Sets must be of the same type©r   r)   ÚassertRaisesRegexr   ©r®   rÜ   rÛ   r   r   Úmsgs         r   rb  Ú'TestSetsInvalidDtype._test_set_operatorv  sO   € ô ˜TÒ" 6Ó*ˆä’ÓˆÜ’Ó ˆØ1ˆØ×#Ñ#¤K°Õ5Ù�!ŒK÷ 6×5Ö5ús   Á	AÁ
A"r„   N)rã   rä   rå   ræ   rb  rç   r„   r   r   rÒ  rÒ  t  s   † õ	r   rÒ  c                   ó\   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)ÚTestSetsInvalidi‚  c                 ó:   • U R                  U5      n[        U5      $ r   )r|   r:   rT   s      r   r}   Ú,TestSetsInvalid.symmetric_difference_usecase„  s   € Ø×"Ñ" 1Ó%ˆÜ�A‹wˆr   c                 ó:   • U R                  U5      n[        U5      $ r   )rt   r:   rT   s      r   rw   Ú"TestSetsInvalid.difference_usecaseˆ  s   € Ø�L‰L˜‹OˆÜ�A‹wˆr   c                 ó:   • U R                  U5      n[        U5      $ r   )ry   r:   rT   s      r   rz   Ú$TestSetsInvalid.intersection_usecaseŒ  s   € Ø�N‰N˜1ÓˆÜ�A‹wˆr   c                 ó:   • U R                  U5      n[        U5      $ r   )r   r:   rT   s      r   r€   ÚTestSetsInvalid.union_usecase�  s   € Ø�G‰G�A‹JˆÜ�A‹wˆr   c                 ó´   • [        SS9" U5      n[        / SQ5      nSnSnU R                  [        U5         U" X45        S S S 5        g ! , (       d  f       g = f)NTrÖ   rX  ©r(   rî   rï   zAll arguments must be SetsrÔ  rÖ  s         r   rb  Ú"TestSetsInvalid._test_set_operator”  sJ   € ô ˜TÒ" 6Ó*ˆä’ÓˆØˆØ*ˆØ×#Ñ#¤K°Õ5Ù�!ŒK÷ 6×5Ö5ús   ·	A	Á	
Ac                 óB   • U R                  [        R                  5        g r   )rb  rÚ  rw   r:  s    r   ry  ÚTestSetsInvalid.test_differenceŸ  s   € Ø×Ñ¤× BÑ BÕCr   c                 óB   • U R                  [        R                  5        g r   )rb  rÚ  rz   r:  s    r   r|  Ú!TestSetsInvalid.test_intersection¢  s   € Ø×Ñ¤× DÑ DÕEr   c                 óB   • U R                  [        R                  5        g r   )rb  rÚ  r}   r:  s    r   r  Ú)TestSetsInvalid.test_symmetric_difference¥  s   € Ø×Ñ¤× LÑ LÕMr   c                 óB   • U R                  [        R                  5        g r   )rb  rÚ  r€   r:  s    r   r‚  ÚTestSetsInvalid.test_union¨  s   € Ø×Ñ¤× =Ñ =Õ>r   c                 óD   • S[        US9-  n[        SU[        5       5      $ )Nzhif 1:
        def operator_usecase(a, b):
            s = a %(op)s b
            return list(s)
        re  rg  rh  rj  s      r   rk  Ú%TestSetsInvalid.make_operator_usecase«  rm  r   c                 óD   • S[        US9-  n[        SU[        5       5      $ )Nz³if 1:
        def inplace_operator_usecase(a, b):
            sa = a
            sb = b
            sc = sa
            sc %(op)s sb
            return list(sc), list(sa)
        re  ro  rh  rj  s      r   rp  Ú-TestSetsInvalid.make_inplace_operator_usecase³  rr  r   c                 óD   • S[        US9-  n[        SU[        5       5      $ )NzWif 1:
        def comparison_usecase(a, b):
            return set(a) %(op)s b
        re  rt  rh  rj  s      r   ru  Ú'TestSetsInvalid.make_comparison_usecase¾  rw  r   r„   N)rã   rä   rå   ræ   r}   rw   rz   r€   rb  ry  r|  r  r‚  rk  rp  ru  rç   r„   r   r   rÚ  rÚ  ‚  sD   † òòòòò	òDòFòNò?òEò	MõGr   rÚ  c                   ó`   • \ rS rSrSr\R                  S 5       rS rS r	S r
S rS rS	 rS
rg)ÚTestUnboxingiÆ  z6
Test unboxing of Python sets into native Numba sets.
c              #   óÄ   #   • U R                  [        5       nS v •  S S S 5        Ub&  U R                  [        WR                  5      U5        g g ! , (       d  f       N8= f7fr   )r  Ú	TypeErrorÚassertRegexÚstrÚ	exception)r®   r×  Úraisess      r   Úassert_type_errorÚTestUnboxing.assert_type_errorË  sJ   é € à×ÑœyÔ)¨VÛ÷ *à‰?Ø×ÑœS ×!1Ñ!1Ó2°CÕ8ð ÷ *Õ)üs   ‚A ˜A�2A Á
AÁA c                 ó:   ^ ^^• [        SS9" T5      mUUU 4S jnU$ )NTrÖ   c                 óH   >• T" U 5      nT" U 5      nTR                  X!5        g r   r  )r   rÙ   rÚ   rÛ   rÜ   r®   s      €€€r   rÝ   Ú'TestUnboxing.check_unary.<locals>.checkÔ  s#   ø€ Ù˜c“{ˆHÙ˜“*ˆCØ×#Ñ# CÕ2r   rß   rà   s   `` @r   Úcheck_unaryÚTestUnboxing.check_unaryÒ  s   ú€ Ü˜TÒ" 6Ó*ˆ÷	3ð ˆr   c                 ó®   • U R                  [        5      nU" [        SS/5      5        U" [        SS/5      5        U" [        [        S5      5      5        g )Nr(   rî   y              ð?y              @éd   )r  rŠ   r)   rH   ©r®   rÝ   s     r   Útest_numbersÚTestUnboxing.test_numbersÚ  sB   € Ø× Ñ ¤Ó/ˆÙŒc�1�a�&‹kÔÙŒc�2�t�*‹oÔáŒc”%˜“*‹oÕr   c                 óz   • U R                  [        5      nU" [        SS/5      5        U" [        SS/5      5        g )N)r(   rî   )rï   rY  )r(   ù               @)rï   y              @)r  r�   r)   r  s     r   Útest_tuplesÚTestUnboxing.test_tuplesá  s6   € Ø× Ñ ¤Ó0ˆÙŒc�6˜6Ð"Ó#Ô$ÙŒc�7˜GÐ$Ó%Õ&r   c                 óX   • U R                  [        5      nU" S[        / SQ5      45        g )Nr(   )rî   rï   rY  )r  r�   r)   r  s     r   Útest_set_inside_tupleÚ"TestUnboxing.test_set_inside_tupleæ  s#   € Ø× Ñ ¤Ó0ˆÙˆq”#’i“.Ð!Õ"r   c                 óX   • U R                  [        5      nU" S[        SS/5      45        g )Nr(   )rî   )rï   )r  r’   r)   r  s     r   Útest_set_of_tuples_inside_tupleÚ,TestUnboxing.test_set_of_tuples_inside_tupleê  s(   € Ø× Ñ ¤Ó0ˆÙˆq”#�t˜T�lÓ#Ð$Õ%r   c           
      ó  • Sn[         n[        SS9" U5      n[        SS/5      nU R                  U5         U" U5        S S S 5        U R	                  U[        SS/5      5        U R                  U5         U" [        SS/5      5        S S S 5        U R                  U5         U" S[        SS/5      45        S S S 5        U R                  U5         U" [        S[        SS/5      5      5        S S S 5        [        SS/5      nU R                  [        [        45       nU" U5        S S S 5        g ! , (       d  f       Nø= f! , (       d  f       N¿= f! , (       d  f       N¡= f! , (       d  f       N{= f! , (       d  f       g = f)	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_errorsÚTestUnboxing.test_errorsî  s4  € à-ˆÜˆÜ˜TÒ" 6Ó*ˆÜ�1�c�(‹mˆØ×#Ñ# CÕ(Ù�#ŒJ÷ )ð 	×Ñ˜œc 1 c (›mÔ,Ø×#Ñ# CÕ(Ù”#�q˜"�g“,Ô÷ )ð ×#Ñ# CÕ(Ù�1”c˜1˜b˜'“lÐ#Ô$÷ )à×#Ñ# CÕ(Ù”%˜œ3  2˜w›<Ó(Ô)÷ )ô �4˜�.Ó!ˆð ×Ñ¤
¬JÐ7Ô8¸FÙ�#ŒJ÷ 9Ð8÷! )Õ(ú÷ )Õ(ú÷ )Õ(úç(Õ(ú÷ 9Õ8ús;   ¶	D1Á5EÂ"EÃE$Ä	E5Ä1
D?Å
EÅ
E!Å$
E2Å5
Fr„   N)rã   rä   rå   ræ   rÁ  Ú
contextlibÚcontextmanagerrü  r  r  r
  r  r  r  rç   r„   r   r   rõ  rõ  Æ  s?   † ñð ×Ññ9ó ð9òòò'ò
#ò&õr   rõ  c                   ó<   • \ rS rSrSrS rS rS rS rS r	S r
S	rg
)ÚTestSetReflectioni  z=
Test reflection of native Numba sets on Python set objects.
c                 óÂ  • [        SS9" U5      n[        / SQ5      [        S/5      4[        / SQ5      [        / SQ5      4/nU H…  u  pE[        U5      n[        U5      nU" Xe5      nU R                  Xu5         U" Xu5      n	U R                  X˜5        U R                  Xg5        U R	                  US   UL U	S   UL 5        AA	S S S 5        M‡     g ! , (       d  f       M™  = f)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_reflectionÚ"TestSetReflection.check_reflection  sÔ   € Ü˜TÒ" 6Ó*ˆÜÒ(Ó)¬3°¨t«9Ð5ÜÒ(Ó)¬3Ò/CÓ+DÐEðˆó !‰IˆDÜ˜4“yˆHÜ�d“)ˆCÙ˜8Ó)ˆEØ×$Ñ$ SÕ.Ù˜S“�Ø×'Ñ'¨Ô4Ø×'Ñ'¨Ô6Ø× Ñ   q¡¨XÐ!5°t¸A±wÀ#°~ÔFØ˜4÷ /Ñ.ò	 !÷ /Ö.ús   Á9A	CÃ
C	c                 ó.   • U R                  [        5        g r   )r#  r˜   r:  s    r   Útest_reflect_simpleÚ%TestSetReflection.test_reflect_simple  s   € Ø×ÑœnÕ-r   c                 ó.   • U R                  [        5        g r   )r#  r›   r:  s    r   Útest_reflect_conditionalÚ*TestSetReflection.test_reflect_conditional   s   € Ø×ÑÔ1Õ2r   c                 óF  • [         n[        SS9" U5      n[        / SQ5      nU R                  U5         U R	                  [
        5         U" U5        SSS5        U R                  U[        / SQ5      5        SSS5        g! , (       d  f       N4= f! , (       d  f       g= f)zL
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_exceptionÚ(TestSetReflection.test_reflect_exception#  sw   € ô
 #ˆÜ˜TÒ" 6Ó*ˆÜ’	‹NˆØ× Ñ  Õ#Ø×"Ñ"Ô#4Õ5Ù�a”÷ 6à×#Ñ# A¤sª=Ó'9Ô:÷ $Ð#ß5Õ5ú÷ $Õ#ús#   ´BÁ
	BÁ%BÂ
B	ÂBÂ
B c                 óî   • [         n[        SS9" U5      n[        / SQ5      nUR                  5       nU" X35      nU" XD5      nU R	                  XV5        U R	                  X45        U R                  X45        g)zN
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_setÚ'TestSetReflection.test_reflect_same_set0  sj   € ô
 ˆÜ˜TÒ" 6Ó*ˆÜ’I“ˆØ�z‰z‹|ˆÙ˜%Ó'ˆÙ�DÓˆØ×Ñ Ô.Ø×Ñ Ô,Ø× Ñ  Õ-r   c                 óô   • [        SS9" [        5      n[        S/5      nU Vs/ s H  n[        U5      PM     nnU" U5        U R	                  U Vs/ s H  n[        U5      PM     snU5        gs  snf s  snf )z?
When the set wasn't mutated, no reflection should take place.
TrÖ   y              )@N)r   r†   r)   Úidr  )r®   rÛ   r-   r…   Úidss        r   Útest_reflect_cleanÚ$TestSetReflection.test_reflect_clean?  sh   € ô ˜TÒ"¤4Ó(ˆä��‹LˆÙÓ ša˜Œr�!Žu™aˆÐ ÙˆaŒØ×Ñ©Ó+ª Aœ"˜Qž%©Ñ+¨SÕ1ùò !ùâ+s   ¤A0ÁA5r„   N)rã   rä   rå   ræ   rÁ  r#  r&  r)  r,  r2  r7  rç   r„   r   r   r  r    s%   † ñò ò .ò3ò;ò.õ	2r   r  c                   ó$   • \ rS rSrSrS rS rSrg)ÚTestExamplesiK  z
Examples of using sets.
c                 óŽ   • [         nU R                  U5      nU" U R                  S5      5        U" U R                  S5      5        g r  )r¤   rá   rÈ   rË   r  s      r   Útest_uniqueÚTestExamples.test_uniqueP  s=   € ÜˆØ×&Ñ& vÓ.ˆáˆd×#Ñ# CÓ(Ô)Ùˆd×Ñ Ó$Õ%r   c                 ó:   • S nU R                  U5      nU" 5         g )Nc                  óŽ   • [         R                  " S5      n [        5       nUR                  1 Sk5        UR	                  U 5        U$ )Nr(   >   r(   rî   rï   )r²   Úuint64r)   r9   r*   )rJ   ÚRs     r   ÚimplÚ9TestExamples.test_type_coercion_from_update.<locals>.implY  s2   € Ü—	’	˜!“ˆAÜ“ˆAØ�H‰H’YÔØ�E‰E�!ŒHØˆHr   )rá   )r®   rB  rÝ   s      r   Útest_type_coercion_from_updateÚ+TestExamples.test_type_coercion_from_updateW  s   € ò	ð ×&Ñ& tÓ,ˆÙ�r   r„   N)rã   rä   rå   ræ   rÁ  r<  rD  rç   r„   r   r   r:  r:  K  s   † ñò&õ	r   r:  Ú__main__)FÚunittestÚcollectionsr   r  r2  r«   Únumba.core.errorsr   Únumpyr²   Únumbar   r   Únumba.tests.supportr   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>rN     s¢  ðÛ å "Û Û Û Ý )ã ç ÷3ó 3ñ 	�7˜JÓ'€ò:ò2ò2òò
òòòò
òòòòòò
ò
ò
%ò#ò%òò
òòòò
ò
ò
ò
ò
	òòòòò ò
	 òòò
ô3ˆ ô 3ôl?�hô ?ô<CJˆxô CJôLC�Hô Cô	"�Hô 	"ô;�hô ;ô˜8ô ôAG�hô AGôH?�8ô ?ôD@2˜ô @2ôF�8ô ð0 ˆzÓØ‡M‚M…Oð r   