Ë
    èÿæiòZ  ã                   ó„  — d dl Z d dlmZ d dlZd dlZd dlZd dlmZ d dlZ	d dl
mZmZ d dlmZmZmZmZ  edd«      Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d „ Z+d!„ Z,d"„ Z-d#„ Z.d$„ Z/d%„ Z0d&„ Z1d'„ Z2d(„ Z3d)„ Z4d*„ Z5d+„ Z6d,„ Z7d-„ Z8 G d.„ d/ee«      Z9 G d0„ d1e9«      Z: G d2„ d3e9«      Z; G d4„ d5e;«      Z< G d6„ d7e;«      Z= G d8„ d9e;«      Z> G d:„ d;e;«      Z? G d<„ d=e;«      Z@ G d>„ d?e9«      ZA G d@„ dAe9«      ZB G dB„ dCe9«      ZCeDdDk(  r e jŠ                  «        yy)Eé    N)Ú
namedtuple)ÚTypingError)ÚjitÚnjit)ÚTestCaseÚenable_pyobj_flagsÚMemoryLeakMixinÚcompile_functionÚPoint©ÚaÚbc                 óf   — | ddj                  d„ |D «       «      iz  } t        d| t        «       «      S )NÚinitializerz, c              3   ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Úrepr)Ú.0Úargs     új/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_sets.pyÚ	<genexpr>z-_build_set_literal_usecase.<locals>.<genexpr>   s   è ø€ Ð+FÁ¸#¬D°¯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                 ó   — 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Ð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Ð1r   c                  óN   — t        «       } | j                  d«       t        | «      S ©Né   )ÚsetÚaddÚlen©Úss    r   Úempty_constructor_usecaser-   '   s   € Ü‹€AØ‡E�Eˆ!„HÜˆq‹6€Mr   c                 ó.   — t        | «      }t        |«      S r   )r(   r*   ©r   r,   s     r   Úconstructor_usecaser0   ,   s   € ÜˆC‹€AÜˆq‹6€Mr   c                 óP   — t        | «      }g }|D ]  }|j                  |«       Œ |S r   ©r(   Úappend)r   r,   ÚlÚvs       r   Úiterator_usecaser6   0   s*   € ÜˆC‹€AØ
€AÛˆØ	�‰��ð à€Hr   c                 ó’   — t        «       }|j                  | «       |j                  |«       |j                  |«       t        |«      S 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   — t        | dd  «      }t        |«      S r&   )r(   Úboolr/   s     r   Úbool_usecaser>   >   s   € äˆC��ˆG‹€AÜ�‹7€Nr   c                 ó^   — t        | «      }|D ]  }|j                  |«       Œ t        |«      S r   )r(   Úremover9   ©r   r   r,   r5   s       r   Úremove_usecaserB   C   s)   € ÜˆA‹€AÛˆØ	�‰��ð ä�‹7€Nr   c                 ó^   — t        | «      }|D ]  }|j                  |«       Œ t        |«      S r   )r(   Údiscardr9   rA   s       r   Údiscard_usecaserE   I   s)   € ÜˆA‹€AÛˆØ	�	‰	�!�ð ä�‹7€Nr   c                 ó’   — t        | «      }t        d«      D ]$  }|j                  |«       |j                  |«       Œ& t	        |«      S )Niè  )r(   Úranger)   rD   r9   )r   Úur5   r,   Úis        r   Úadd_discard_usecaserJ   O   s:   € ÜˆA‹€AÜ�4Ž[ˆØ	�‰ˆaŒØ	�	‰	�!�ð ô �‹7€Nr   c                 ó˜   — t        | «      }g }t        |«      dkD  r.|j                  |j                  «       «       t        |«      dkD  rŒ.|S ©Nr   )r(   r*   r3   Úpop)r   r,   r4   s      r   Úpop_usecaserN   V   s?   € ÜˆA‹€AØ
€AÜ
ˆa‹&�1Š*Ø	�‰�—‘“Ôô ˆa‹&�1‹*à€Hr   c                 óT   — t        | «      }g }|D ]  }|j                  ||v «       Œ |S r   r2   )r   r   r,   r4   r5   s        r   Úcontains_usecaserP   ]   s/   € ÜˆA‹€AØ
€AÛˆØ	�‰��a�Õð à€Hr   c                 ób   — t        | «      }|j                  t        |«      «       t        |«      S r   )r(   Údifference_updater9   ©r   r   r,   s      r   Údifference_update_usecaserT   d   s&   € ÜˆA‹€AØ×Ñœ˜A›ÔÜ�‹7€Nr   c                 ób   — t        | «      }|j                  t        |«      «       t        |«      S r   )r(   Úintersection_updater9   rS   s      r   Úintersection_update_usecaserW   i   s&   € ÜˆA‹€AØ×Ñœ#˜a›&Ô!Ü�‹7€Nr   c                 ób   — t        | «      }|j                  t        |«      «       t        |«      S r   )r(   Úsymmetric_difference_updater9   rS   s      r   Ú#symmetric_difference_update_usecaserZ   n   s&   € ÜˆA‹€AØ×!Ñ!¤# a£&Ô)Ü�‹7€Nr   c                 óH   — t        | «      j                  t        |«      «      S r   )r(   Ú
isdisjointr   s     r   Úisdisjoint_usecaser]   s   ó   € Üˆq‹6×ÑœS ›VÓ$Ð$r   c                 óH   — t        | «      j                  t        |«      «      S r   )r(   Úissubsetr   s     r   Úissubset_usecasera   v   s   € Üˆq‹6�?‰?œ3˜q›6Ó"Ð"r   c                 óH   — t        | «      j                  t        |«      «      S r   )r(   Ú
issupersetr   s     r   Úissuperset_usecaserd   y   r^   r   c                 ód   — t        | «      }|j                  «        t        |«      t        |«      fS r   )r(   Úclearr*   r9   ©r   r,   s     r   Úclear_usecaserh   |   s&   € ÜˆA‹€AØ‡G�G„IÜˆq‹6”4˜“7ˆ?Ðr   c                 ó„   — t        | «      }|j                  «       }|j                  «        t        |«      t	        |«      fS r   )r(   ÚcopyrM   r*   r9   ©r   r,   Ússs      r   Úcopy_usecaserm   �   s2   € ÜˆA‹€AØ	
�‰‹€BØ‡E�E„GÜˆr‹7”D˜“HÐÐr   c                 ó¬   — t        | «      }|j                  «        |j                  «       }|j                  | d   «       t	        |«      t        |«      fS rL   )r(   rf   rj   r)   r*   r9   rk   s      r   Úcopy_usecase_emptyro   ‡   sA   € ÜˆA‹€AØ‡G�G„IØ	
�‰‹€BØ‡E�Eˆ!ˆA‰$„KÜˆr‹7”D˜“HÐÐr   c                 ó¦   — t        | «      }|j                  |«       |j                  «       }|j                  «        t	        |«      t        |«      fS r   )r(   r@   rj   rM   r*   r9   )r   r   r,   rl   s       r   Úcopy_usecase_deletedrq   Ž   s=   € ÜˆA‹€AØ‡H�HˆQ„KØ	
�‰‹€BØ‡E�E„GÜˆr‹7”D˜“HÐÐr   c                 ób   — t        | «      }|j                  t        |«      «      }t        |«      S r   )r(   Ú
differencer9   ©r   r   Úsar,   s       r   Údifference_usecaserv   •   s&   € Ü	ˆQ‹€BØ
�‰”c˜!“fÓ€AÜ�‹7€Nr   c                 ób   — t        | «      }|j                  t        |«      «      }t        |«      S r   )r(   Úintersectionr9   rt   s       r   Úintersection_usecasery   š   s&   € Ü	ˆQ‹€BØ
�‰œ˜A›Ó€AÜ�‹7€Nr   c                 ób   — t        | «      }|j                  t        |«      «      }t        |«      S r   )r(   Úsymmetric_differencer9   rt   s       r   Úsymmetric_difference_usecaser|   Ÿ   s(   € Ü	ˆQ‹€BØ
×Ñ¤ A£Ó'€AÜ�‹7€Nr   c                 ób   — t        | «      }|j                  t        |«      «      }t        |«      S r   )r(   Úunionr9   rt   s       r   Úunion_usecaser   ¤   s&   € Ü	ˆQ‹€BØ
�‰”�Q“Ó€AÜ�‹7€Nr   c                 ó   — t        | «      }|S r   )r(   rg   s     r   Úset_return_usecaser�   ©   s   € ÜˆA‹€AØ€Hr   c                  ó   — y r   © )Úxs    r   Únoopr…   ®   s   € Ør   c                 ó"   — d}| D ]  }||z  }Œ	 |S )z!
    Expect a set of numbers
    r   rƒ   ©r„   Úresr5   s      r   Úunbox_usecaser‰   ±   s!   € ð €CÛˆØˆq‰‰ð à€Jr   c                 ó4   — d}| D ]  }|t        |«      z  }Œ |S )z 
    Expect a set of tuples
    r   ©r*   r‡   s      r   Úunbox_usecase2rŒ   º   s%   € ð €CÛˆØŒs�1‹v‰‰ð à€Jr   c                 ó,   — | \  }}|}|D ]  }||z  }Œ	 |S )z2
    Expect a (number, set of numbers) tuple.
    rƒ   ©r„   r   r   rˆ   r5   s        r   Úunbox_usecase3r�   Ã   s*   € ð �D€A€qØ
€CÛˆØˆq‰‰ð à€Jr   c                 ó>   — | \  }}|}|D ]  }|t        |«      z  }Œ |S )z1
    Expect a (number, set of tuples) tuple.
    r‹   rŽ   s        r   Úunbox_usecase4r‘   Í   s.   € ð �D€A€qØ
€CÛˆØŒs�1‹v‰‰ð à€Jr   c                 ót   — | j                  d«       | j                  |«       | t        | «      t        |«      fS ©Né*   )r)   r8   r*   ©ru   Úsbs     r   Úreflect_simpler—   Ø   s-   € Ø‡F�Fˆ2„JØ‡I�Iˆb„MØŒs�2‹wœ˜B›ÐÐr   c                 óÞ   — t        |«      dkD  rt        d«      } | j                  d«       | j                  |«       t        d«      }| j	                  |«       | t        | «      t        |«      fS )Nr'   )g      &@g      6@g     €@@g      F@g      E@)g     €K@g     €P@)r*   r(   r)   r8   rY   )ru   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   — | j                  d«       t        ‚r“   )r)   ÚZeroDivisionErrorr+   s    r   Úreflect_exceptionr�   è   s   € Ø‡E�Eˆ"„IÜ
Ðr   c                 óH   — | j                  |j                  «       «       | |u S r   )r)   rM   r•   s     r   Úreflect_dualrŸ   ì   s   € Ø‡F�Fˆ2�6‰6‹8ÔØ�ˆ8€Or   c                 óz   — t        «       }g }| D ])  }||vsŒ|j                  |«       |j                  |«       Œ+ |S r   )r(   r)   r3   )ÚsrcÚseenrˆ   r5   s       r   Úunique_usecaser£   ñ   s<   € Ü‹5€DØ
€CÛˆØ�DŠ=Ø�H‰H�QŒKØ�J‰J�q�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«      | _        y r“   )Úsuperr¥   ÚsetUpÚrandomÚRandomÚrnd)ÚselfÚ	__class__s    €r   r¨   zBaseTest.setUpý   s    ø€ ÜŒh˜Ñ#Ô%Ü—=‘= Ó$ˆ�r   c                 óZ   — t        j                  t        |«      «      j                  «       S r   )ÚnpÚarangeÚintÚtolist©r¬   Ústops     r   Ú_rangezBaseTest._range  s   € Ü�y‰yœ˜T›Ó#×*Ñ*Ó,Ð,r   c                 óú   — t        |«      D �cg c]&  }| j                  j                  t        |«      «      ‘Œ( }}t	        |t
        j                  «      r!t        j                  ||j                  ¬«      S |S c c}w )zD
        Choose *n* possibly duplicate items from sequence.
        ©Údtype)	rG   r«   Úchoicer9   Ú
isinstancer¯   ÚndarrayÚarrayr¸   )r¬   ÚseqÚnrI   r4   s        r   Ú_random_choicezBaseTest._random_choice  sZ   € ô 27°q´Ó:±¨AˆT�X‰X�_‰_œT #›YÕ'°ˆÐ:Ü�cœ2Ÿ:™:Ô&Ü—8‘8˜A S§Y¡YÔ/Ð/àˆHùò	 ;s   Ž+A8c                 ón   — | j                  t        j                  |«      «      }| j                  ||«      S )z<
        Get a 1d array with many duplicate values.
        )rµ   r¯   Úsqrtr¿   ©r¬   r¾   r   s      r   Úduplicates_arrayzBaseTest.duplicates_array  s-   € ð �K‰KœŸ™ ›
Ó#ˆØ×"Ñ" 1 aÓ(Ð(r   c                 óN   — | j                  |dz  «      }| j                  ||«      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                 óX  — t        |t        «      r=| j                  |t        «       t        ||«      D ]  \  }}| j	                  ||«       Œ y t        |t
        «      r;| j                  |t
        «       | j                  t        |«      t        |«      «       y | j                  ||«       y r   )rº   ÚtupleÚassertIsInstanceÚzipÚ_assert_equal_unorderedr9   ÚassertPreciseEqualÚsorted)r¬   r   r   rH   r5   s        r   rÊ   z BaseTest._assert_equal_unordered  s‚   € Ü�aœÔØ×!Ñ! !¤UÔ+Ü˜A˜qž	‘��1Ø×,Ñ,¨Q°Õ2ñ "ä˜œ4Ô Ø×!Ñ! !¤TÔ*Ø×#Ñ#¤F¨1£I¬v°a«yÕ9à×#Ñ# A qÕ)r   c                 ó>   ‡ ‡‡—  t        d¬«      ‰«      Šˆˆˆ fd„}|S )NT©Únopythonc                  ó>   •—  ‰| Ž } ‰| Ž }‰j                  ||«       y r   )rÊ   )r   ÚexpectedÚgotÚcfuncÚpyfuncr¬   s      €€€r   Úcheckz)BaseTest.unordered_checker.<locals>.check*  s%   ø€ Ù˜t�}ˆHÙ˜�,ˆCØ×(Ñ(¨°3Õ7r   ©r   ©r¬   rÔ   rÕ   rÓ   s   `` @r   Úunordered_checkerzBaseTest.unordered_checker(  s    ú€ Ø"”˜TÔ" 6Ó*ˆö	8ð ˆr   )Ú__name__Ú
__module__Ú__qualname__r¨   rµ   r¿   rÃ   rÅ   rÊ   rØ   Ú__classcell__)r­   s   @r   r¥   r¥   û   s&   ø„ ô%ò-òò)ò)ò	*ör   r¥   c                   ó(   — e Zd Zd„ Zd„ Zefd„Zd„ Zy)ÚTestSetLiteralsc                 ó`   — t        |«      } |«       } |«       }| j                  ||«       ||fS r   )r   rË   )r¬   rÔ   rÓ   rÑ   rÒ   s        r   rÕ   zTestSetLiterals.check3  s3   € Ü�V“ˆÙ“8ˆÙ‹gˆØ×Ñ ¨#Ô.Ø�Hˆ}Ðr   c                 ó<   — t        d«      }| j                  |«       y )N)r'   é   é   rá   )r"   rÕ   )r¬   rÔ   s     r   Útest_build_setzTestSetLiterals.test_build_set:  s   € Ü+¨LÓ9ˆØ�
‰
�6Õr   c                 óú   — t        d«      }| j                  |«       t        d«      }| j                  |«      \  }}| j                  t        |j	                  «       «      t        |j	                  «       «      «       y )N)r'   ç       @y              @rá   )rå   rá   )r"   rÕ   ÚassertIsÚtyperM   )r¬   ÚflagsrÔ   rÒ   rÑ   s        r   Útest_build_heterogeneous_setz,TestSetLiterals.test_build_heterogeneous_set>  sW   € Ü+¨OÓ<ˆØ�
‰
�6ÔÜ+¨HÓ5ˆØŸ
™
 6Ó*‰ˆˆXØ�‰”d˜3Ÿ7™7›9“o¤t¨H¯L©L«NÓ';Õ<r   c                 óÖ   — t        | j                  d«      «      }t        |«      } t        d¬«      |«      } |«       } |«       }| j	                  t        |«      t        |«      «       y )Né2   TrÎ   )r9   rÅ   r$   r   rË   rÌ   )r¬   r   rÔ   rÓ   rÑ   rÒ   s         r   Útest_build_set_nopythonz'TestSetLiterals.test_build_set_nopythonE  sY   € Ü�4×$Ñ$ RÓ(Ó)ˆÜ,¨SÓ1ˆØ"”˜TÔ" 6Ó*ˆá“8ˆÙ‹gˆØ×Ñ¤ xÓ 0´&¸³+Õ>r   N)rÙ   rÚ   rÛ   rÕ   rã   r   ré   rì   rƒ   r   r   rÞ   rÞ   1  s   „ òòð 2Dó =ó?r   rÞ   c                   ó  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-y,)-ÚTestSetsc                 ó  ‡ ‡‡— t         Š t        d¬«      ‰«      Š‰ j                   ‰«        ‰«       «       t        Š t        d¬«      ‰«      Šˆˆˆ fd„} |‰ j	                  d«      «        |‰ j                  d«      «       y )NTrÎ   c                 óB   •— ‰j                   ‰| «       ‰| «      «       y r   ©rË   )r   rÓ   rÔ   r¬   s    €€€r   rÕ   z(TestSets.test_constructor.<locals>.checkX  s   ø€ Ø×#Ñ#¡F¨3£K±°s³Õ<r   éÈ   )r-   r   rË   r0   rÃ   rÅ   )r¬   rÕ   rÓ   rÔ   s   ` @@r   Útest_constructorzTestSets.test_constructorQ  sp   ú€ Ü*ˆØ"”˜TÔ" 6Ó*ˆØ×Ñ¡£©«Ô2ä$ˆØ"”˜TÔ" 6Ó*ˆö	=ñ 	ˆd×#Ñ# CÓ(Ô)Ùˆd×Ñ Ó$Õ%r   c                 ó˜   — t         } t        d¬«      |«      }| j                  d«      }| j                   ||«      t	        |«      «       y )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Õ.r   c                 óŽ   — t         }| j                  |«      } || j                  d«      «        || j                  d«      «       y ©Nrò   )r6   rØ   rÃ   rÅ   ©r¬   rÔ   rÕ   s      r   Útest_iteratorzTestSets.test_iteratore  s=   € Ü!ˆØ×&Ñ& vÓ.ˆáˆd×#Ñ# CÓ(Ô)Ùˆd×Ñ Ó$Õ%r   c                 ó¬   — t         }| j                  |«      }| j                  d«      }| j                  d«      }| j                  d«      } ||||«       y ©Nrë   )r;   rØ   rÅ   rÃ   )r¬   rÔ   rÕ   r   r   r:   s         r   Útest_updatezTestSets.test_updatel  sR   € ÜˆØ×&Ñ& vÓ.ˆà×Ñ˜bÓ!ˆØ×!Ñ! "Ó%ˆØ×Ñ˜bÓ!ˆÙˆa��A�r   c                 óv   — t         }| j                  |«      }| j                  d«      }|d d d…   } |||«       y )Nrë   é
   )rB   rØ   rÅ   ©r¬   rÔ   rÕ   r   r   s        r   Útest_removezTestSets.test_removeu  s=   € ÜˆØ×&Ñ& vÓ.ˆà×Ñ˜bÓ!ˆØ‰d�ˆd‰GˆÙˆa��r   c                 ó  — | j                  «        t        } t        d¬«      |«      }t        t	        | j                  d«      «      «      }|dd  }|d   f}| j                  t        «      5   |||«       d d d «       y # 1 sw Y   y xY w)NTrÎ   râ   r'   r   )Údisable_leak_checkrB   r   rÇ   r(   rÅ   ÚassertRaisesÚKeyError)r¬   rÔ   rÓ   Úitemsr   r   s         r   Útest_remove_errorzTestSets.test_remove_error}  sy   € à×ÑÔ!äˆØ"”˜TÔ" 6Ó*ˆô ”c˜$×+Ñ+¨AÓ.Ó/Ó0ˆØ�!�"ˆIˆØ�1‰XˆKˆØ×ÑœxÕ(Ù�!�QŒK÷ )×(Ñ(ús   Á,
A?Á?Bc                 óˆ   — t         }| j                  |«      }| j                  d«      }| j                  d«      } |||«       y rü   )rE   rØ   rÅ   r   s        r   Útest_discardzTestSets.test_discard‹  s@   € Ü ˆØ×&Ñ& vÓ.ˆà×Ñ˜bÓ!ˆØ×Ñ˜bÓ!ˆÙˆa��r   c                 óŽ   — t         }| j                  |«      }dx}}||k(  r| j                  d«      \  }}||k(  rŒ ||f||«       y)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á   )rJ   rØ   rÅ   r   s        r   Útest_add_discardzTestSets.test_add_discard“  sV   € ô %ˆØ×&Ñ& vÓ.ˆð ˆˆˆAØ�1ŠfØ×$Ñ$ QÓ'‰DˆAˆqð �1‹fáˆqˆd�A�qÕr   c                 ó`   — t         }| j                  |«      } || j                  d«      «       y rü   )rN   rØ   rÅ   rù   s      r   Útest_popzTestSets.test_pop£  s*   € ÜˆØ×&Ñ& vÓ.ˆáˆd×Ñ Ó#Õ$r   c                 óž   ‡ ‡‡— t         Š t        d¬«      ‰«      Šˆˆˆ fd„}‰ j                  d«      }‰ j                  d«      } |||«       y )NTrÎ   c                 óF   •— ‰j                   ‰| |«       ‰| |«      «       y r   rñ   ©r   r   rÓ   rÔ   r¬   s     €€€r   rÕ   z%TestSets.test_contains.<locals>.check¬  ó   ø€ Ø×#Ñ#¡F¨1¨a£L±%¸¸1³+Õ>r   rë   )rP   r   rÅ   )r¬   rÕ   r   r   rÓ   rÔ   s   `   @@r   Útest_containszTestSets.test_contains©  sI   ú€ Ü!ˆØ"”˜TÔ" 6Ó*ˆö	?ð ×Ñ˜bÓ!ˆØ×Ñ˜bÓ!ˆÙˆa��r   c                 ó¼   — | j                  |«      }d}t        j                  ||«      D ]0  \  }}| j                  |«      }| j                  |«      } |||«       Œ2 y )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‰FˆB�Ø×!Ñ! "Ó%ˆAØ×!Ñ! "Ó%ˆAÙ�!�Q�Kñ 6r   c                 ó.   — | j                  t        «       y r   )r  rT   ©r¬   s    r   Útest_difference_updatezTestSets.test_difference_update¼  s   € Ø×ÑÔ7Õ8r   c                 ó.   — | j                  t        «       y r   )r  rW   r  s    r   Útest_intersection_updatez!TestSets.test_intersection_update¿  s   € Ø×ÑÔ9Õ:r   c                 ó.   — | j                  t        «       y r   )r  rZ   r  s    r   Ú test_symmetric_difference_updatez)TestSets.test_symmetric_difference_updateÂ  s   € Ø×ÑÔAÕBr   c                 óN  ‡ ‡‡—  t        d¬«      ‰«      Šˆˆˆ fd„}t        t        ‰ j                  d«      ‰ j                  d«      g«      \  }}||z  ||z
  ||z  ||z  g}|D �cg c]  }t	        |«      ‘Œ }}t        j                  ||«      D ]  \  }} |||«       Œ y c c}w )NTrÎ   c                 óF   •— ‰j                   ‰| |«       ‰| |«      «       y r   rñ   r  s     €€€r   rÕ   z(TestSets._test_comparator.<locals>.checkÇ  r  r   rÿ   é   )r   Úmapr(   rÅ   rÇ   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ÐFÓG‰ˆˆ1Ø�A‘�q˜1‘u˜a !™e Q¨¡UÐ+ˆÙ"&Ó'¡$˜Q”�a• $ˆÐ'Ü×%Ñ% d¨DÖ1‰DˆAˆqÙ�!�Q�Kñ 2ùò (s   Á&B"c                 ó.   — | j                  t        «       y r   )r'  r]   r  s    r   Útest_isdisjointzTestSets.test_isdisjointÐ  ó   € Ø×ÑÔ0Õ1r   c                 ó.   — | j                  t        «       y r   )r'  ra   r  s    r   Útest_issubsetzTestSets.test_issubsetÓ  s   € Ø×ÑÔ.Õ/r   c                 ó.   — | j                  t        «       y r   )r'  rd   r  s    r   Útest_issupersetzTestSets.test_issupersetÖ  r*  r   c                 ó`   — t         }| j                  |«      } || j                  d«      «       y rü   )rh   rØ   rÅ   rù   s      r   Ú
test_clearzTestSets.test_clearÙ  s*   € ÜˆØ×&Ñ& vÓ.ˆáˆd×Ñ Ó#Õ$r   c                 óR  — t         }| j                  |«      } || j                  d«      «       t        }| j                  |«      }| j                  d«      } ||«       t        }| j                  |«      } |dd«       | j                  d«      } |||t        |«      dz     «       y )Nrë   r'   ©r'   rá   é   é   rá   )rm   rØ   rÅ   ro   rq   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˜Q‘;‘Õ r   c                 óŽ   — t         }| j                  |«      } || j                  d«      «        || j                  d«      «       y )Nr'   rá   )r>   rØ   rÅ   rù   s      r   Ú	test_boolzTestSets.test_boolñ  s=   € ÜˆØ×&Ñ& vÓ.ˆáˆd×Ñ Ó"Ô#Ùˆd×Ñ Ó"Õ#r   c                 óØ   — | j                  |«      }d\  }} |||«       d}t        j                  ||«      D ]0  \  }}| j                  |«      }| j                  |«      } |||«       Œ2 y )N)r2  )rá   râ   é   r4  r”   r  r  )r¬   rÔ   rÕ   r   r   r  r  r  s           r   Ú_test_set_operatorzTestSets._test_set_operatorø  sm   € Ø×&Ñ& vÓ.ˆà/‰ˆˆ1Ùˆa�ŒàˆÜ×'Ñ'¨¨uÖ5‰FˆB�Ø×!Ñ! "Ó%ˆAØ×!Ñ! "Ó%ˆAÙ�!�Q�Kñ 6r   c                 óJ   — 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¬   r=  r   s      r   Úmake_operator_usecasezTestSets.make_operator_usecase  ó+   € ðô �bŒkñ	ˆô
  Ð 2°D¼'»)ÓDÐDr   c                 óJ   — 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)
        r<  Úinplace_operator_usecaser?  rA  s      r   Úmake_inplace_operator_usecasez&TestSets.make_inplace_operator_usecase  ó+   € ðô �bŒkñˆô  Ð :¸DÄ'Ã)ÓLÐLr   c                 óJ   — dt        |¬«      z  }t        d|t        «       «      S )Nz\if 1:
        def comparison_usecase(a, b):
            return set(a) %(op)s set(b)
        r<  Úcomparison_usecaser?  rA  s      r   Úmake_comparison_usecasez TestSets.make_comparison_usecase  ó+   € ðô �bŒkñˆô  Ð 4°d¼G»IÓFÐFr   c                 ó.   — | j                  t        «       y r   )r:  rv   r  s    r   Útest_differencezTestSets.test_difference  s   € Ø×ÑÔ 2Õ3r   c                 ó.   — | j                  t        «       y r   )r:  ry   r  s    r   Útest_intersectionzTestSets.test_intersection!  s   € Ø×ÑÔ 4Õ5r   c                 ó.   — | j                  t        «       y r   )r:  r|   r  s    r   Útest_symmetric_differencez"TestSets.test_symmetric_difference$  s   € Ø×ÑÔ <Õ=r   c                 ó.   — | j                  t        «       y r   )r:  r   r  s    r   Ú
test_unionzTestSets.test_union'  s   € Ø×Ñ¤Õ.r   c                 óD   — | j                  | j                  d«      «       y )NÚ&©r:  rB  r  s    r   Útest_andzTestSets.test_and*  ó   € Ø×Ñ × :Ñ :¸3Ó ?Õ@r   c                 óD   — | j                  | j                  d«      «       y )NÚ|rV  r  s    r   Útest_orzTestSets.test_or-  rX  r   c                 óD   — | j                  | j                  d«      «       y )NÚ-rV  r  s    r   Útest_subzTestSets.test_sub0  rX  r   c                 óD   — | j                  | j                  d«      «       y )NÚ^rV  r  s    r   Útest_xorzTestSets.test_xor3  rX  r   c                 óD   — | j                  | j                  d«      «       y )Nz==©r:  rJ  r  s    r   Útest_eqzTestSets.test_eq6  ó   € Ø×Ñ × <Ñ <¸TÓ BÕCr   c                 óD   — | j                  | j                  d«      «       y )Nz!=rc  r  s    r   Útest_nezTestSets.test_ne9  re  r   c                 óD   — | j                  | j                  d«      «       y )Nz<=rc  r  s    r   Útest_lezTestSets.test_le<  re  r   c                 óD   — | j                  | j                  d«      «       y )NÚ<rc  r  s    r   Útest_ltzTestSets.test_lt?  ó   € Ø×Ñ × <Ñ <¸SÓ AÕBr   c                 óD   — | j                  | j                  d«      «       y )Nz>=rc  r  s    r   Útest_gezTestSets.test_geB  re  r   c                 óD   — | j                  | j                  d«      «       y )NÚ>rc  r  s    r   Útest_gtzTestSets.test_gtE  rm  r   c                 óD   — | j                  | j                  d«      «       y )Nz&=©r:  rF  r  s    r   Ú	test_iandzTestSets.test_iandH  ó   € Ø×Ñ × BÑ BÀ4Ó HÕIr   c                 óD   — | j                  | j                  d«      «       y )Nz|=rt  r  s    r   Útest_iorzTestSets.test_iorK  rv  r   c                 óD   — | j                  | j                  d«      «       y )Nz-=rt  r  s    r   Ú	test_isubzTestSets.test_isubN  rv  r   c                 óD   — | j                  | j                  d«      «       y )Nz^=rt  r  s    r   Ú	test_ixorzTestSets.test_ixorQ  rv  r   N).rÙ   rÚ   rÛ   ró   rö   rú   rý   r  r  r	  r  r  r  r  r  r   r"  r'  r)  r,  r.  r0  r5  r7  r:  rB  rF  rJ  rM  rO  rQ  rS  rW  r[  r^  ra  rd  rg  ri  rl  ro  rr  ru  rx  rz  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                   ó   — e Zd ZdZd„ Zy)ÚTestFloatSetsz-
    Test sets with floating-point keys.
    c                 óx   — t        j                  |t         j                  ¬«      t        j                  d«      z  S )Nr·   gš™™™™™¹?)r¯   r°   Úfloat32r³   s     r   rµ   zTestFloatSets._range\  s$   € Ü�y‰y˜¤R§Z¡ZÔ0´2·:±:¸c³?ÑBÐBr   N©rÙ   rÚ   rÛ   Ú__doc__rµ   rƒ   r   r   r~  r~  U  s   „ ñóCr   r~  c                   ó   — e Zd ZdZd„ Zy)ÚTestTupleSetsz$
    Test sets with tuple keys.
    c                 ó  — t        j                  |t         j                  ¬«      }|dz  }|dz  j                  t         j                  «      }|dz	  dz  j                  t         j
                  «      }t        t        |||«      «      S )Nr·   l   UUª*UUª* l   ª*UU é    r'   )r¯   r°   Úint64ÚastypeÚint32Úbool_r9   rÉ   )r¬   r´   r   r   r:   Úds         r   rµ   zTestTupleSets._ranged  sh   € Ü�I‰I�d¤"§(¡(Ô+ˆØÐ"Ñ"ˆØ�‰^×#Ñ#¤B§H¡HÓ-ˆØ�2‰g˜‰]×"Ñ"¤2§8¡8Ó,ˆÜ”C˜˜1˜a“LÓ!Ð!r   Nr�  rƒ   r   r   r„  r„  `  s   „ ñó"r   r„  c                   ó   — e Zd ZdZd„ Zy)ÚTestUnicodeSetszR
    Test sets with unicode keys. For the purpose of testing refcounted sets.
    c                 ón   — t        t        |«      «      D �cg c]  }dj                  |«      ‘Œ c}S c c}w )NzA{})rG   r±   Úformat)r¬   r´   rI   s      r   rµ   zTestUnicodeSets._rangep  s-   € Ü).¬s°4«yÔ)9Ó:Ñ)9 A�—‘˜Q•Ð)9Ñ:Ð:ùÒ:s   —2Nr�  rƒ   r   r   r�  r�  l  s   „ ñó;r   r�  c                   ó   — e Zd Zd„ Zy)ÚTestSetsInvalidDtypec                 óÈ   —  t        d¬«      |«      }t        g d¢«      }t        g d¢«      }d}| j                  t        |«      5   |||«       d d d «       y # 1 sw Y   y xY w)NTrÎ   r2  )r   r   r:   z!All Sets must be of the same type©r   r(   ÚassertRaisesRegexr   ©r¬   rÔ   rÓ   r   r   Úmsgs         r   r:  z'TestSetsInvalidDtype._test_set_operatorv  sS   € ð #”˜TÔ" 6Ó*ˆä’ÓˆÜ’Ó ˆØ1ˆØ×#Ñ#¤K°Õ5Ù�!�QŒK÷ 6×5Ñ5ús   Á
AÁA!N)rÙ   rÚ   rÛ   r:  rƒ   r   r   r‘  r‘  t  s   „ ó	r   r‘  c                   óT   — 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y)ÚTestSetsInvalidc                 ó:   — | j                  |«      }t        |«      S r   )r{   r9   rS   s      r   r|   z,TestSetsInvalid.symmetric_difference_usecase„  s   € Ø×"Ñ" 1Ó%ˆÜ�A‹wˆr   c                 ó:   — | j                  |«      }t        |«      S r   )rs   r9   rS   s      r   rv   z"TestSetsInvalid.difference_usecaseˆ  s   € Ø�L‰L˜‹OˆÜ�A‹wˆr   c                 ó:   — | j                  |«      }t        |«      S r   )rx   r9   rS   s      r   ry   z$TestSetsInvalid.intersection_usecaseŒ  s   € Ø�N‰N˜1ÓˆÜ�A‹wˆr   c                 ó:   — | j                  |«      }t        |«      S r   )r~   r9   rS   s      r   r   zTestSetsInvalid.union_usecase�  s   € Ø�G‰G�A‹JˆÜ�A‹wˆr   c                 ó²   —  t        d¬«      |«      }t        g d¢«      }d}d}| j                  t        |«      5   |||«       d d d «       y # 1 sw Y   y xY w)NTrÎ   r2  ©r'   rá   râ   zAll arguments must be Setsr“  r•  s         r   r:  z"TestSetsInvalid._test_set_operator”  sN   € ð #”˜TÔ" 6Ó*ˆä’ÓˆØˆØ*ˆØ×#Ñ#¤K°Õ5Ù�!�QŒK÷ 6×5Ñ5ús   º
AÁAc                 óB   — | j                  t        j                  «       y r   )r:  r˜  rv   r  s    r   rM  zTestSetsInvalid.test_differenceŸ  s   € Ø×Ñ¤× BÑ BÕCr   c                 óB   — | j                  t        j                  «       y r   )r:  r˜  ry   r  s    r   rO  z!TestSetsInvalid.test_intersection¢  s   € Ø×Ñ¤× DÑ DÕEr   c                 óB   — | j                  t        j                  «       y r   )r:  r˜  r|   r  s    r   rQ  z)TestSetsInvalid.test_symmetric_difference¥  s   € Ø×Ñ¤× LÑ LÕMr   c                 óB   — | j                  t        j                  «       y r   )r:  r˜  r   r  s    r   rS  zTestSetsInvalid.test_union¨  s   € Ø×Ñ¤× =Ñ =Õ>r   c                 óJ   — dt        |¬«      z  }t        d|t        «       «      S )Nzhif 1:
        def operator_usecase(a, b):
            s = a %(op)s b
            return list(s)
        r<  r>  r?  rA  s      r   rB  z%TestSetsInvalid.make_operator_usecase«  rC  r   c                 óJ   — 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)
        r<  rE  r?  rA  s      r   rF  z-TestSetsInvalid.make_inplace_operator_usecase³  rG  r   c                 óJ   — dt        |¬«      z  }t        d|t        «       «      S )NzWif 1:
        def comparison_usecase(a, b):
            return set(a) %(op)s b
        r<  rI  r?  rA  s      r   rJ  z'TestSetsInvalid.make_comparison_usecase¾  rK  r   N)rÙ   rÚ   rÛ   r|   rv   ry   r   r:  rM  rO  rQ  rS  rB  rF  rJ  rƒ   r   r   r˜  r˜  ‚  sD   „ òòòòò	òDòFòNò?òEò	MóGr   r˜  c                   óX   — e Zd ZdZej
                  d„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zy	)
ÚTestUnboxingz>
    Test unboxing of Python sets into native Numba sets.
    c              #   ó¸   K  — | j                  t        «      5 }d –— d d d «       |�&| j                  t        j                  «      |«       y y # 1 sw Y   Œ2xY w­wr   )r  Ú	TypeErrorÚassertRegexÚstrÚ	exception)r¬   r–  Úraisess      r   Úassert_type_errorzTestUnboxing.assert_type_errorË  sK   è ø€ à×ÑœyÔ)¨VÛ÷ *àˆ?Ø×ÑœS ×!1Ñ!1Ó2°CÕ8ð ÷ *Ð)üs   ‚A˜A�1AÁAÁAc                 ó>   ‡ ‡‡—  t        d¬«      ‰«      Šˆˆˆ fd„}|S )NTrÎ   c                 óJ   •—  ‰| «      } ‰| «      }‰j                  ||«       y r   rñ   )r   rÑ   rÒ   rÓ   rÔ   r¬   s      €€€r   rÕ   z'TestUnboxing.check_unary.<locals>.checkÔ  s%   ø€ Ù˜c“{ˆHÙ˜“*ˆCØ×#Ñ# C¨Õ2r   rÖ   r×   s   `` @r   Úcheck_unaryzTestUnboxing.check_unaryÒ  s    ú€ Ø"”˜TÔ" 6Ó*ˆö	3ð ˆr   c                 ó®   — | j                  t        «      } |t        ddg«      «        |t        ddg«      «        |t        t        d«      «      «       y )Nr'   rá   y              ð?y              @éd   )r±  r‰   r(   rG   ©r¬   rÕ   s     r   Útest_numberszTestUnboxing.test_numbersÚ  sB   € Ø× Ñ ¤Ó/ˆÙŒc�1�a�&‹kÔÙŒc�2�t�*‹oÔáŒc”%˜“*‹oÕr   c                 óz   — | j                  t        «      } |t        ddg«      «        |t        ddg«      «       y )N)r'   rá   )râ   r3  )r'   ù               @)râ   y              @)r±  rŒ   r(   r´  s     r   Útest_tupleszTestUnboxing.test_tuplesá  s6   € Ø× Ñ ¤Ó0ˆÙŒc�6˜6Ð"Ó#Ô$ÙŒc�7˜GÐ$Ó%Õ&r   c                 óX   — | j                  t        «      } |dt        g d¢«      f«       y )Nr'   )rá   râ   r3  )r±  r�   r(   r´  s     r   Útest_set_inside_tuplez"TestUnboxing.test_set_inside_tupleæ  s#   € Ø× Ñ ¤Ó0ˆÙˆq”#’i“.Ð!Õ"r   c                 óX   — | j                  t        «      } |dt        ddg«      f«       y )Nr'   )rá   )râ   )r±  r‘   r(   r´  s     r   Útest_set_of_tuples_inside_tuplez,TestUnboxing.test_set_of_tuples_inside_tupleê  s(   € Ø× Ñ ¤Ó0ˆÙˆq”#�t˜T�lÓ#Ð$Õ%r   c           
      óà  — d}t         } t        d¬«      |«      }t        ddg«      }| j                  |«      5   ||«       d d d «       | j	                  |t        ddg«      «       | j                  |«      5   |t        ddg«      «       d d d «       | j                  |«      5   |dt        ddg«      f«       d d d «       | j                  |«      5   |t        dt        ddg«      «      «       d d d «       t        ddg«      }| j                  t        t        f«      5 } ||«       d d d «       y # 1 sw Y   ŒóxY w# 1 sw Y   ŒµxY w# 1 sw Y   Œ’xY w# 1 sw Y   ŒgxY w# 1 sw Y   y xY w)	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î  s6  € à-ˆÜˆØ"”˜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;   ¹	D4Á8E Â%EÃEÄ"	E$Ä4D=Å E	ÅEÅE!Å$E-N)rÙ   rÚ   rÛ   r‚  Ú
contextlibÚcontextmanagerr®  r±  rµ  r¸  rº  r¼  rÂ  rƒ   r   r   r§  r§  Æ  s?   „ ñð ×Ññ9ó ð9òòò'ò
#ò&ór   r§  c                   ó4   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	Ú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        |«      } |||«      }| j                  ||«      5   |||«      }	| j                  |	|«       | j                  ||«       | j	                  |d   |u |	d   |u «       ~~	d d d «       ŒŒ y # 1 sw Y   Œ—xY w)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Ð5ÜÒ(Ó)¬3Ò/CÓ+DÐEðˆó !‰IˆD�#Ü˜4“yˆHÜ�d“)ˆCÙ˜8 SÓ)ˆEØ×$Ñ$ S¨#Õ.Ù˜S #“�Ø×'Ñ'¨¨eÔ4Ø×'Ñ'¨°#Ô6Ø× Ñ   q¡¨XÐ!5°t¸A±wÀ#°~ÔFØ˜4÷ /Ð.ñ	 !÷ /Ð.ús   Á?ACÃC	c                 ó.   — | j                  t        «       y r   )rÍ  r—   r  s    r   Útest_reflect_simplez%TestSetReflection.test_reflect_simple  s   € Ø×ÑœnÕ-r   c                 ó.   — | j                  t        «       y r   )rÍ  rš   r  s    r   Útest_reflect_conditionalz*TestSetReflection.test_reflect_conditional   s   € Ø×ÑÔ1Õ2r   c                 ó8  — t         } t        d¬«      |«      }t        g d¢«      }| j                  |«      5  | j	                  t
        «      5   ||«       ddd«       | j                  |t        g d¢«      «       ddd«       y# 1 sw Y   Œ/xY w# 1 sw Y   yxY w)zd
        When the function exits with an exception, sets should still be
        reflected.
        TrÎ   rž  N)r'   rá   râ   r”   )r�   r   r(   rÈ  r  rœ   rË   )r¬   rÔ   rÓ   r,   s       r   Útest_reflect_exceptionz(TestSetReflection.test_reflect_exception#  sy   € ô
 #ˆØ"”˜TÔ" 6Ó*ˆÜ’	‹NˆØ× Ñ  Õ#Ø×"Ñ"Ô#4Õ5Ù�a”÷ 6à×#Ñ# A¤sª=Ó'9Ô:÷ $Ð#ß5Ð5ú÷ $Ð#ús#   ·BÁ	BÁ%BÂB	Â	BÂBc                 óþ   — t         } t        d¬«      |«      }t        g d¢«      }|j                  «       } |||«      } |||«      }| j	                  ||«       | j	                  ||«       | j                  ||«       y)zf
        When the same set object is reflected twice, behaviour should
        be consistent.
        TrÎ   rž  N)rŸ   r   r(   rj   rË   ÚassertRefCountEqual)r¬   rÔ   rÓ   ÚpysetÚcsetrÑ   rÒ   s          r   Útest_reflect_same_setz'TestSetReflection.test_reflect_same_set0  sv   € ô
 ˆØ"”˜TÔ" 6Ó*ˆÜ’I“ˆØ�z‰z‹|ˆÙ˜% Ó'ˆÙ�D˜$ÓˆØ×Ñ ¨#Ô.Ø×Ñ  tÔ,Ø× Ñ  ¨Õ-r   c                 óî   —  t        d¬«      t        «      }t        dg«      }|D �cg c]  }t        |«      ‘Œ }} ||«       | j	                  |D �cg c]  }t        |«      ‘Œ c}|«       yc c}w c c}w )zO
        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_cleanz$TestSetReflection.test_reflect_clean?  sj   € ð #”˜TÔ"¤4Ó(ˆä��‹LˆÙÓ ™a˜Œr�!�u˜aˆÐ ÙˆaŒØ×Ñ©Ó+© Aœ"˜Q�%¨Ñ+¨SÕ1ùò !ùâ+s   §A-ÁA2N)
rÙ   rÚ   rÛ   r‚  rÍ  rÏ  rÑ  rÓ  rØ  rÜ  rƒ   r   r   rÆ  rÆ    s%   „ ñò ò .ò3ò;ò.ó	2r   rÆ  c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚTestExamplesz!
    Examples of using sets.
    c                 óŽ   — t         }| j                  |«      } || j                  d«      «        || j                  d«      «       y rø   )r£   rØ   rÃ   rÅ   rù   s      r   Útest_uniquezTestExamples.test_uniqueP  s=   € ÜˆØ×&Ñ& vÓ.ˆáˆd×#Ñ# CÓ(Ô)Ùˆd×Ñ Ó$Õ%r   c                 ó:   — d„ }| j                  |«      } |«        y )Nc                  óŒ   — t        j                  d«      } t        «       }|j                  h d£«       |j	                  | «       |S )Nr'   >   r'   rá   râ   )r¯   Úuint64r(   r8   r)   )rI   ÚRs     r   Úimplz9TestExamples.test_type_coercion_from_update.<locals>.implY  s2   € Ü—	‘	˜!“ˆAÜ“ˆAØ�H‰H’YÔØ�E‰E�!ŒHØˆHr   )rØ   )r¬   rå  rÕ   s      r   Útest_type_coercion_from_updatez+TestExamples.test_type_coercion_from_updateW  s   € ò	ð ×&Ñ& tÓ,ˆÙ�r   N)rÙ   rÚ   rÛ   r‚  rà  ræ  rƒ   r   r   rÞ  rÞ  K  s   „ ñò&ó	r   rÞ  Ú__main__)FÚunittestÚcollectionsr   rÃ  r  r©   Únumba.core.errorsr   Únumpyr¯   Únumbar   r   Únumba.tests.supportr   r   r	   r
   r   r   r"   r$   r-   r0   r6   r;   r>   rB   rE   rJ   rN   rP   rT   rW   rZ   r]   ra   rd   rh   rm   ro   rq   rv   ry   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ï     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ÒØ€H‡M�M…Oð r   