+
    ;iZ                        ^ RI t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIt	^ RI
HtHt ^ RIHtHtHtHt ]! RRD4      tR tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR t R t!R t"R t#R t$R t%R t&R t'R t(R t)R t*R t+R  t,R! t-R" t.R# t/R$ t0R% t1R& t2R' t3R( t4R) t5R* t6R+ t7R, t8 ! R- R.]]4      t9 ! R/ R0]94      t: ! R1 R2]94      t; ! R3 R4];4      t< ! R5 R6];4      t= ! R7 R8];4      t> ! R9 R:];4      t? ! R; R<];4      t@ ! R= R>]94      tA ! R? R@]94      tB ! RA RB]94      tC]DRC8X  d   ] P                  ! 4        R# R# )E    N)
namedtuple)TypingError)jitnjit)TestCaseenable_pyobj_flagsMemoryLeakMixincompile_functionPointc                 n    V R RP                  R V 4       4      /,          p \        RV \        4       4      # )initializerz, c              3   8   "   T F  p\        V4      x  K  	  R # 5iN)repr).0args   & S/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_sets.py	<genexpr>-_build_set_literal_usecase.<locals>.<genexpr>   s     +F#DIIs   	build_set)joinr
   globals)codeargss   &&r   _build_set_literal_usecaser      s1    =$))+F+F"FGGDKwy99    c                     R p\        W4      # )z@if 1:
    def build_set():
        return {%(initializer)s}
    r   r   r   s   & r   set_literal_return_usecaser       s    D &d11r   c                     R p\        W4      # )z^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    \        4       p V P                  ^4       \        V 4      #    )setaddlenss    r   empty_constructor_usecaser+   '   s    AEE!Hq6Mr   c                 .    \        V 4      p\        V4      # r   )r&   r(   r   r*   s   & r   constructor_usecaser.   ,   s    CAq6Mr   c                 T    \        V 4      p. pV F  pVP                  V4       K  	  V# r   r&   append)r   r*   lvs   &   r   iterator_usecaser4   0   s*    CA
A	 Hr   c                     \        4       pVP                  V 4       VP                  V4       VP                  V4       \        V4      # r   )r&   updatelist)abcr*   s   &&& r   update_usecaser;   7   s3    AHHQKHHQKHHQK7Nr   c                 <    \        V R ,          4      p\        V4      # )r%   NN)r&   boolr-   s   & r   bool_usecaser?   >   s    CGA7Nr   c                 b    \        V 4      pV F  pVP                  V4       K  	  \        V4      # r   )r&   remover7   r8   r9   r*   r3   s   &&  r   remove_usecaserC   C   s)    AA	 7Nr   c                 b    \        V 4      pV F  pVP                  V4       K  	  \        V4      # r   )r&   discardr7   rB   s   &&  r   discard_usecaserF   I   s)    AA			! 7Nr   c                     \        V 4      p\        R 4       F%  pVP                  V4       VP                  V4       K'  	  \	        V4      # )i  )r&   ranger'   rE   r7   )r8   ur3   r*   is   &&&  r   add_discard_usecaserK   O   s:    AA4[	a			!  7Nr   c                     \        V 4      p. p\        V4      ^ 8  d"   VP                  VP                  4       4       K1  V# r   )r&   r(   r1   pop)r8   r*   r2   s   &  r   pop_usecaserO   V   s2    AA
A
a&1*	Hr   c                 X    \        V 4      p. pV F  pVP                  WB9   4       K  	  V# r   r0   )r8   r9   r*   r2   r3   s   &&   r   contains_usecaserQ   ]   s-    AA
A	 Hr   c                 b    \        V 4      pVP                  \        V4      4       \        V4      # r   )r&   difference_updater7   r8   r9   r*   s   && r   difference_update_usecaserU   d   s&    AAA7Nr   c                 b    \        V 4      pVP                  \        V4      4       \        V4      # r   )r&   intersection_updater7   rT   s   && r   intersection_update_usecaserX   i   s&    AA#a&!7Nr   c                 b    \        V 4      pVP                  \        V4      4       \        V4      # r   )r&   symmetric_difference_updater7   rT   s   && r   #symmetric_difference_update_usecaser[   n   s&    AA!!#a&)7Nr   c                 H    \        V 4      P                  \        V4      4      # r   )r&   
isdisjointr8   r9   s   &&r   isdisjoint_usecaser_   s       q6SV$$r   c                 H    \        V 4      P                  \        V4      4      # r   )r&   issubsetr^   s   &&r   issubset_usecaserc   v   s    q6??3q6""r   c                 H    \        V 4      P                  \        V4      4      # r   )r&   
issupersetr^   s   &&r   issuperset_usecaserf   y   r`   r   c                 d    \        V 4      pVP                  4        \        V4      \        V4      3# r   )r&   clearr(   r7   r8   r*   s   & r   clear_usecaserj   |   s&    AAGGIq647?r   c                     \        V 4      pVP                  4       pVP                  4        \        V4      \	        V4      3# r   )r&   copyrN   r(   r7   r8   r*   sss   &  r   copy_usecasero      s2    AA	
BEEGr7DHr   c                     \        V 4      pVP                  4        VP                  4       pVP                  V ^ ,          4       \	        V4      \        V4      3# rM   )r&   rh   rl   r'   r(   r7   rm   s   &  r   copy_usecase_emptyrq      sA    AAGGI	
BEE!A$Kr7DHr   c                     \        V 4      pVP                  V4       VP                  4       pVP                  4        \	        V4      \        V4      3# r   )r&   rA   rl   rN   r(   r7   )r8   r9   r*   rn   s   &&  r   copy_usecase_deletedrs      s=    AAHHQK	
BEEGr7DHr   c                 b    \        V 4      pVP                  \        V4      4      p\        V4      # r   )r&   
differencer7   r8   r9   sar*   s   &&  r   difference_usecaserx      s&    	QB
c!fA7Nr   c                 b    \        V 4      pVP                  \        V4      4      p\        V4      # r   )r&   intersectionr7   rv   s   &&  r   intersection_usecaser{      s&    	QB
AA7Nr   c                 b    \        V 4      pVP                  \        V4      4      p\        V4      # r   )r&   symmetric_differencer7   rv   s   &&  r   symmetric_difference_usecaser~      s(    	QB
A'A7Nr   c                 b    \        V 4      pVP                  \        V4      4      p\        V4      # r   )r&   unionr7   rv   s   &&  r   union_usecaser      s&    	QB
QA7Nr   c                     \        V 4      pV# r   )r&   ri   s   & r   set_return_usecaser      s    AAHr   c                     R # r    )xs   &r   noopr      s    r   c                ,    ^ pV  F  pW,          pK  	  V# )z
Expect a set of numbers
r   r   resr3   s   &  r   unbox_usecaser      s     C Jr   c                @    ^ pV  F  pV\        V4      ,          pK  	  V# )z
Expect a set of tuples
r(   r   s   &  r   unbox_usecase2r      s%     Cs1v Jr   c                4    V w  rTpV F  pW4,          pK  	  V# )z*
Expect a (number, set of numbers) tuple.
r   r   r8   r9   r   r3   s   &    r   unbox_usecase3r      s&     DA
C Jr   c                H    V w  rTpV F  pV\        V4      ,          pK  	  V# )z)
Expect a (number, set of tuples) tuple.
r   r   s   &    r   unbox_usecase4r      s,     DA
Cs1v Jr   c                 t    V P                  ^*4       V P                  V4       V \        V 4      \        V4      3# *   )r'   r6   r(   rw   sbs   &&r   reflect_simpler      s-    FF2JIIbMs2wBr   c                     \        V4      ^8  d   \        R4      p V P                  R4       V P                  V4       \        R4      pV P	                  V4       V \        V 4      \        V4      3# )r%   g      E@)g      &@g      6@g     @@g      F@)g     K@g     P@)r(   r&   r'   r6   rZ   )rw   r   scs   && r   reflect_conditionalr      sZ    
2w{%&FF3KIIbM	ZB""2&s2wBr   c                 0    V P                  ^*4       \        hr   )r'   ZeroDivisionErrorr)   s   &r   reflect_exceptionr      s    EE"I
r   c                 F    V P                  VP                  4       4       WJ # r   )r'   rN   r   s   &&r   reflect_dualr      s    FF26688Or   c                     \        4       p. pV  F-  pW19  g   K  VP                  V4       VP                  V4       K/  	  V# r   )r&   r'   r1   )srcseenr   r3   s   &   r   unique_usecaser      s:    5D
C=HHQKJJqM  Jr   c                   V   a a ] tR t^t oV 3R ltR tR tR tR tR t	R t
RtVtV ;t# )	BaseTestc                b   < \         \        V `  4        \        P                  ! ^*4      V n        R# )r   N)superr   setUprandomRandomrnd)self	__class__s   &r   r   BaseTest.setUp   s     h#%==$r   c                \    \         P                  ! \        V4      4      P                  4       # r   )nparangeinttolistr   stops   &&r   _rangeBaseTest._range  s    yyT#**,,r   c                   \        V4       Uu. uF&  q0P                  P                  \        V4      4      NK(  	  pp\	        V\
        P                  4      '       d"   \
        P                  ! WAP                  R7      # V# u upi )z4
Choose *n* possibly duplicate items from sequence.
dtype)	rH   r   choicer7   
isinstancer   ndarrayarrayr   )r   seqnrJ   r2   s   &&&  r   _random_choiceBaseTest._random_choice  sY     27q:AXX__T#Y':c2::&&88AYY//H	 ;s   ,A?c                n    V P                  \        P                  ! V4      4      pV P                  W!4      # )z,
Get a 1d array with many duplicate values.
)r   r   sqrtr   r   r   r8   s   && r   duplicates_arrayBaseTest.duplicates_array  s+     KK
#""1((r   c                T    V P                  VR,          4      pV P                  W!4      # )z+
Get a 1d array with values spread around.
g?)r   r   r   s   && r   sparse_arrayBaseTest.sparse_array  s'    
 KKS!""1((r   c                r   \        V\        4      '       d>   V P                  V\        4       \        W4       F  w  r4V P	                  W44       K  	  R # \        V\
        4      '       d=   V P                  V\
        4       V P                  \        V4      \        V4      4       R # V P                  W4       R # r   )r   tupleassertIsInstancezip_assert_equal_unorderedr7   assertPreciseEqualsorted)r   r8   r9   rI   r3   s   &&&  r   r    BaseTest._assert_equal_unordered  s    a!!!U+A	,,Q2 "4  !!!T*##F1Ivay9##A)r   c                @   a aa \        R R7      ! S4      oVVV 3R lpV# )Tnopythonc                  B   < S! V !  pS! V !  pSP                  W4       R # 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   ff @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____classdictcell____classcell__)r   __classdict__s   @@r   r   r      s-     %-))	* r   r   c                   >   a  ] tR tRt o R tR t]3R ltR tRt	V t
R# )TestSetLiteralsi1  c                \    \        V4      pV! 4       pV! 4       pV P                  W44       WC3# r   )r   r   )r   r   r   r   r   s   &&   r   r   TestSetLiterals.check3  s/    V8g.}r   c                >    \        R4      pV P                  V4       R# )r%   N)r%         r   )r    r   )r   r   s   & r   test_build_setTestSetLiterals.test_build_set:  s    +L9

6r   c                    \        R4      pV P                  V4       \        R4      pV P                  V4      w  r4V P                  \        VP	                  4       4      \        VP	                  4       4      4       R# )r%   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*d3779otHLLN';<r   c                    \        V P                  ^24      4      p\        V4      p\        RR7      ! V4      pV! 4       pV! 4       pV P	                  \        V4      \        V4      4       R# )2   Tr   N)r7   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   s   @r   r   r   1  s$      2D =? ?r   r   c                   "  a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R  t"R! t#R" t$R# t%R$ t&R% t'R& t(R' t)R( t*R) t+R* t,R+ t-R, t.R-t/V t0R.# )/TestSetsiO  c                  a aa \         o\        R R7      ! S4      oS P                  S! 4       S! 4       4       \        o\        R R7      ! S4      oVVV 3R lpV! S P	                  ^4      4       V! S P                  ^4      4       R# )Tr   c                 D   < SP                  S! V 4      S! V 4      4       R # r   r   )r   r   r   r   s   &r   r   (TestSets.test_constructor.<locals>.checkX  s    ##F3Ks<r   N)r+   r   r   r.   r   r   )r   r   r   r   s   f @@r   test_constructorTestSets.test_constructorQ  sl    *T"6*2$T"6*	= 	d##C()d$%r   c                    \         p\        R R7      ! V4      pV P                  ^4      pV P                  V! V4      \	        V4      4       R# )Tr   N)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                    \         pV P                  V4      pV! V P                  ^4      4       V! V P                  ^4      4       R#    N)r4   r   r   r   r   r   r   s   &  r   test_iteratorTestSets.test_iteratore  s=    !&&v.d##C()d$%r   c                    \         pV P                  V4      pV P                  ^24      pV P                  ^24      pV P                  ^24      pV! W4V4       R# r   N)r;   r   r   r   )r   r   r   r8   r9   r:   s   &     r   test_updateTestSets.test_updatel  sP    &&v.b!!!"%b!aAr   c                x    \         pV P                  V4      pV P                  ^24      pVR,          pV! W44       R# )r   :NN
   N)rC   r   r   r   r   r   r8   r9   s   &    r   test_removeTestSets.test_removeu  s7    &&v.b!dGar   c                F   V P                  4        \        p\        R R7      ! V4      p\        \	        V P                  ^4      4      4      pVR,          pV^ ,          3pV P                  \        4      ;_uu_ 4        V! WE4       RRR4       R#   + '       g   i     R# ; i)Tr   r=   N)disable_leak_checkrC   r   r   r&   r   assertRaisesKeyError)r   r   r   itemsr8   r9   s   &     r   test_remove_errorTestSets.test_remove_error}  sy    !T"6* c$++A./0"I1XKx((!K )(((s   <	BB 	c                    \         pV P                  V4      pV P                  ^24      pV P                  ^24      pV! W44       R# r  )rF   r   r   r  s   &    r   test_discardTestSets.test_discard  s>     &&v.b!b!ar   c                    \         pV P                  V4      pR;r4W48X  d   V P                  ^4      w  r4K  V! V3WD4       R# )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.
N)rK   r   r   r  s   &    r   test_add_discardTestSets.test_add_discard  sG     %&&v. f$$Q'DAqqdAr   c                b    \         pV P                  V4      pV! V P                  ^24      4       R# r  )rO   r   r   r  s   &  r   test_popTestSets.test_pop  s*    &&v.d#$r   c                   a aa \         o\        R R7      ! S4      oVVV 3R lpS P                  ^24      pS P                  ^24      pV! W#4       R# )Tr   c                 D   < SP                  S! W4      S! W4      4       R # r   r  r8   r9   r   r   r   s   &&r   r   %TestSets.test_contains.<locals>.check      ##F1L%+>r   N)rQ   r   r   )r   r   r8   r9   r   r   s   f   @@r   test_containsTestSets.test_contains  sE    !T"6*	? b!b!ar   c                    V P                  V4      pRp\        P                  ! W34       F/  w  rEV P                  V4      pV P                  V4      pV! Wg4       K1  	  R# )r%   Nr%   r   i  r   	itertoolsproductr   )r   r   r   sizesnanbr8   r9   s   &&      r   _test_xxx_updateTestSets._test_xxx_update  sU    &&v.''5FB!!"%A!!"%A!K 6r   c                0    V P                  \        4       R # r   )r:  rU   r   s   &r   test_difference_updateTestSets.test_difference_update  s    78r   c                0    V P                  \        4       R # r   )r:  rX   r=  s   &r   test_intersection_update!TestSets.test_intersection_update  s    9:r   c                0    V P                  \        4       R # r   )r:  r[   r=  s   &r    test_symmetric_difference_update)TestSets.test_symmetric_difference_update  s    ABr   c                l  a aa \        R R7      ! S4      oVVV 3R lp\        \        S P                  ^
4      S P                  ^4      .4      w  r4W4,          W4,
          W4,          W4,          .pV Uu. uF  p\	        V4      NK  	  pp\
        P                  ! WU4       F  w  r4V! W44       K  	  R# u upi )Tr   c                 D   < SP                  S! W4      S! W4      4       R # r   r  r-  s   &&r   r   (TestSets._test_comparator.<locals>.check  r/  r   N)r   mapr&   r   r   r5  r6  )r   r   r   r8   r9   r   r   r   s   ff     @r   _test_comparatorTestSets._test_comparator  s    T"6*	? 3**2.0A0A"0EFGquaeQU+"&'$Qa$'%%d1DA!K 2 (s   2B1c                0    V P                  \        4       R # r   )rJ  r_   r=  s   &r   test_isdisjointTestSets.test_isdisjoint      01r   c                0    V P                  \        4       R # r   )rJ  rc   r=  s   &r   test_issubsetTestSets.test_issubset  s    ./r   c                0    V P                  \        4       R # r   )rJ  rf   r=  s   &r   test_issupersetTestSets.test_issuperset  rO  r   c                b    \         pV P                  V4      pV! V P                  ^24      4       R# r  )rj   r   r   r  s   &  r   
test_clearTestSets.test_clear  s*    &&v.d#$r   c                b   \         pV P                  V4      pV! V P                  ^24      4       \        pV P                  V4      pV P                  ^4      pV! V4       \        pV P                  V4      pV! R^4       V P                  ^24      pV! W3\        V4      ^,          ,          4       R# )r   Nr%   r         )ro   r   r   rq   rs   r(   )r   r   r   r8   s   &   r   	test_copyTestSets.test_copy  s    &&v.d#$#&&v.a a &&&v.mQb!a3q6Q; r   c                    \         pV P                  V4      pV! V P                  ^4      4       V! V P                  ^4      4       R# )r%   N)r?   r   r   r  s   &  r   	test_boolTestSets.test_bool  s=    &&v.d"#d"#r   c                    V P                  V4      pRRrCV! W44       Rp\        P                  ! WU4       F/  w  rgV P                  V4      pV P                  V4      pV! W44       K1  	  R# )r%   NrZ  )r   r      r\  r   r3  r4  )r   r   r   r8   r9   r7  r8  r9  s   &&      r   _test_set_operatorTestSets._test_set_operator  sd    &&v./1a''5FB!!"%A!!"%A!K 6r   c                R    R \        VR7      ,          p\        RV\        4       4      # )zrif 1:
        def operator_usecase(a, b):
            s = set(a) %(op)s set(b)
            return list(s)
        opoperator_usecasedictr
   r   r   rh  r   s   && r   make_operator_usecaseTestSets.make_operator_usecase  +     bk	
   2D')DDr   c                R    R \        VR7      ,          p\        RV\        4       4      # )zif 1:
        def inplace_operator_usecase(a, b):
            sa = set(a)
            sb = set(b)
            sc = sa
            sc %(op)s sb
            return list(sc), list(sa)
        rg  inplace_operator_usecaserj  rl  s   && r   make_inplace_operator_usecase&TestSets.make_inplace_operator_usecase  +     bk   :D')LLr   c                R    R \        VR7      ,          p\        RV\        4       4      # )z\if 1:
        def comparison_usecase(a, b):
            return set(a) %(op)s set(b)
        rg  comparison_usecaserj  rl  s   && r   make_comparison_usecase TestSets.make_comparison_usecase  +     bk   4dGIFFr   c                0    V P                  \        4       R # r   )rd  rx   r=  s   &r   test_differenceTestSets.test_difference  s     23r   c                0    V P                  \        4       R # r   )rd  r{   r=  s   &r   test_intersectionTestSets.test_intersection!  s     45r   c                0    V P                  \        4       R # r   )rd  r~   r=  s   &r   test_symmetric_difference"TestSets.test_symmetric_difference$  s     <=r   c                0    V P                  \        4       R # r   )rd  r   r=  s   &r   
test_unionTestSets.test_union'  s    .r   c                F    V P                  V P                  R 4      4       R# )&Nrd  rm  r=  s   &r   test_andTestSets.test_and*       : :3 ?@r   c                F    V P                  V P                  R 4      4       R# )|Nr  r=  s   &r   test_orTestSets.test_or-  r  r   c                F    V P                  V P                  R 4      4       R# )-Nr  r=  s   &r   test_subTestSets.test_sub0  r  r   c                F    V P                  V P                  R 4      4       R# )^Nr  r=  s   &r   test_xorTestSets.test_xor3  r  r   c                F    V P                  V P                  R 4      4       R# )z==Nrd  rw  r=  s   &r   test_eqTestSets.test_eq6       < <T BCr   c                F    V P                  V P                  R 4      4       R# )z!=Nr  r=  s   &r   test_neTestSets.test_ne9  r  r   c                F    V P                  V P                  R 4      4       R# )z<=Nr  r=  s   &r   test_leTestSets.test_le<  r  r   c                F    V P                  V P                  R 4      4       R# )<Nr  r=  s   &r   test_ltTestSets.test_lt?       < <S ABr   c                F    V P                  V P                  R 4      4       R# )z>=Nr  r=  s   &r   test_geTestSets.test_geB  r  r   c                F    V P                  V P                  R 4      4       R# )>Nr  r=  s   &r   test_gtTestSets.test_gtE  r  r   c                F    V P                  V P                  R 4      4       R# )z&=Nrd  rr  r=  s   &r   	test_iandTestSets.test_iandH       B B4 HIr   c                F    V P                  V P                  R 4      4       R# )z|=Nr  r=  s   &r   test_iorTestSets.test_iorK  r  r   c                F    V P                  V P                  R 4      4       R# )z-=Nr  r=  s   &r   	test_isubTestSets.test_isubN  r  r   c                F    V P                  V P                  R 4      4       R# )z^=Nr  r=  s   &r   	test_ixorTestSets.test_ixorQ  r  r   r   N)1r   r   r   r   r  r
  r  r  r  r   r#  r&  r)  r0  r:  r>  rA  rD  rJ  rM  rQ  rT  rW  r]  r`  rd  rm  rr  rw  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   s   @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 Jr   r  c                   *   a  ] tR tRt o RtR tRtV tR# )TestFloatSetsiU  z%
Test sets with floating-point keys.
c                    \         P                  ! V\         P                  R 7      \         P                  ! R4      ,          # )r   g?)r   r   float32r   s   &&r   r   TestFloatSets._range\  s$    yyRZZ02::c?BBr   r   Nr   r   r   r   __doc__r   r   r   r   s   @r   r  r  U  s     C Cr   r  c                   *   a  ] tR tRt o RtR tRtV tR# )TestTupleSetsi`  z
Test sets with tuple keys.
c                0   \         P                  ! V\         P                  R 7      pVR,          pVR,          P                  \         P                  4      pV^ ,	          ^,          P                  \         P
                  4      p\        \        W4V4      4      # )r   l   UU*UU* l   *UU )r   r   int64astypeint32bool_r7   r   )r   r   r8   r9   r:   ds   &&    r   r   TestTupleSets._ranged  sf    IId"((+""^##BHH-2g]""288,CaL!!r   r   Nr  r   s   @r   r  r  `  s     " "r   r  c                   *   a  ] tR tRt o RtR tRtV tR# )TestUnicodeSetsil  zJ
Test sets with unicode keys. For the purpose of testing refcounted sets.
c                r    \        \        V4      4       Uu. uF  pR P                  V4      NK  	  up# u upi )zA{})rH   r   format)r   r   rJ   s   && r   r   TestUnicodeSets._rangep  s-    ).s4y)9:)9AQ)9:::s   4r   Nr  r   s   @r   r  r  l  s     ; ;r   r  c                   &   a  ] tR tRt o R tRtV tR# )TestSetsInvalidDtypeit  c                    \        R R7      ! V4      p\        . RO4      p\        . RO4      pRpV P                  \        V4      ;_uu_ 4        V! W44       RRR4       R#   + '       g   i     R# ; i)Tr   z!All Sets must be of the same typeNrZ  )r8   r9   r:   r   r&   assertRaisesRegexr   r   r   r   r8   r9   msgs   &&    r   rd  'TestSetsInvalidDtype._test_set_operatorv  sU     T"6* 1##K55!K 6555s   	A  A1	r   N)r   r   r   r   rd  r   r   r   s   @r   r  r  t  s     	 	r   r  c                   h   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tRtV tR# )TestSetsInvalidi  c                :    V P                  V4      p\        V4      # r   )r}   r7   rT   s   && r   r~   ,TestSetsInvalid.symmetric_difference_usecase  s    ""1%Awr   c                :    V P                  V4      p\        V4      # r   )ru   r7   rT   s   && r   rx   "TestSetsInvalid.difference_usecase  s    LLOAwr   c                :    V P                  V4      p\        V4      # r   )rz   r7   rT   s   && r   r{   $TestSetsInvalid.intersection_usecase  s    NN1Awr   c                :    V P                  V4      p\        V4      # r   )r   r7   rT   s   && r   r   TestSetsInvalid.union_usecase  s    GGAJAwr   c                    \        R R7      ! V4      p\        . RO4      pRpRpV P                  \        V4      ;_uu_ 4        V! W44       RRR4       R#   + '       g   i     R# ; i)Tr   zAll arguments must be SetsNrZ  r%   r   r   r  r  s   &&    r   rd  "TestSetsInvalid._test_set_operator  sP     T"6**##K55!K 6555s   	AA&	c                D    V P                  \        P                  4       R # r   )rd  r  rx   r=  s   &r   r{  TestSetsInvalid.test_difference  s     B BCr   c                D    V P                  \        P                  4       R # r   )rd  r  r{   r=  s   &r   r~  !TestSetsInvalid.test_intersection  s     D DEr   c                D    V P                  \        P                  4       R # r   )rd  r  r~   r=  s   &r   r  )TestSetsInvalid.test_symmetric_difference  s     L LMr   c                D    V P                  \        P                  4       R # r   )rd  r  r   r=  s   &r   r  TestSetsInvalid.test_union  s     = =>r   c                R    R \        VR7      ,          p\        RV\        4       4      # )zhif 1:
        def operator_usecase(a, b):
            s = a %(op)s b
            return list(s)
        rg  ri  rj  rl  s   && r   rm  %TestSetsInvalid.make_operator_usecase  ro  r   c                R    R \        VR7      ,          p\        RV\        4       4      # )zif 1:
        def inplace_operator_usecase(a, b):
            sa = a
            sb = b
            sc = sa
            sc %(op)s sb
            return list(sc), list(sa)
        rg  rq  rj  rl  s   && r   rr  -TestSetsInvalid.make_inplace_operator_usecase  rt  r   c                R    R \        VR7      ,          p\        RV\        4       4      # )zWif 1:
        def comparison_usecase(a, b):
            return set(a) %(op)s b
        rg  rv  rj  rl  s   && r   rw  'TestSetsInvalid.make_comparison_usecase  ry  r   r   N)r   r   r   r   r~   rx   r{   r   rd  r{  r~  r  r  rm  rr  rw  r   r   r   s   @r   r  r    sM     	DFN?E	MG Gr   r  c                   l   a  ] tR tRt o Rt]P                  R 4       tR tR t	R t
R tR tR	 tR
tV tR# )TestUnboxingi  z6
Test unboxing of Python sets into native Numba sets.
c              #     "   V P                  \        4      ;_uu_ 4       pR x  R R R 4       Ve(   V P                  \        XP                  4      V4       R # R #   + '       g   i     L=; i5ir   )r  	TypeErrorassertRegexstr	exception)r   r  raisess   && r   assert_type_errorTestUnboxing.assert_type_error  sM     y))V *?S!1!12C8  *)s   A-A5A-A*	%A-c                @   a aa \        R R7      ! S4      oVVV 3R lpV# )Tr   c                 J   < S! V 4      pS! V 4      pSP                  W!4       R # 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   ff @r   check_unaryTestUnboxing.check_unary  s    T"6*	3 r   c                    V P                  \        4      pV! \        ^^.4      4       V! \        RR.4      4       V! \        \        ^d4      4      4       R# )r%   y              ?y              @N)r  r   r&   rH   r   r   s   & r   test_numbersTestUnboxing.test_numbers  sB      /c1a&kc2t*oc%*or   c                |    V P                  \        4      pV! \        RR.4      4       V! \        RR.4      4       R# )r%   N)r%   r   )r   r[  )r%                  @)r   y              @)r  r   r&   r  s   & r   test_tuplesTestUnboxing.test_tuples  s6      0c66"#$c7G$%&r   c                Z    V P                  \        4      pV! ^\        . RO4      34       R# )r%   N)r   r   r[  )r  r   r&   r  s   & r   test_set_inside_tuple"TestUnboxing.test_set_inside_tuple  s#      0q#i.!"r   c                Z    V P                  \        4      pV! ^\        RR.4      34       R# )r%   N)r   )r   )r  r   r&   r  s   & r   test_set_of_tuples_inside_tuple,TestUnboxing.test_set_of_tuples_inside_tuple  s(      0q#tTl#$%r   c                |   R p\         p\        RR7      ! V4      p\        ^R.4      pV P                  V4      ;_uu_ 4        V! V4       RRR4       V P	                  V\        ^R.4      4       V P                  V4      ;_uu_ 4        V! \        ^R.4      4       RRR4       V P                  V4      ;_uu_ 4        V! ^\        ^R.4      34       RRR4       V P                  V4      ;_uu_ 4        V! \        ^\        ^R.4      4      4       RRR4       \        RR.4      pV P                  \        \        34      ;_uu_ 4       pV! V4       RRR4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)zcan't unbox heterogeneous setTr   g      @Nr	  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  sI   -T"6*1c(m##C((#J ) 	c1c(m,##C((#q"g, ) ##C((1c1b'l#$ )##C((%32w<() ) 4.! 
J788F#J 98! )(( )( )((( 988s<   	EE1=F4F
	F*E.	1F	F	F'	*F;	r   N)r   r   r   r   r  
contextlibcontextmanagerr  r  r  r
  r  r  r  r   r   r   s   @r   r  r    sG      9 9'
#& r   r  c                   H   a  ] tR tRt o RtR tR tR tR tR t	R t
R	tV tR
# )TestSetReflectioni  z=
Test reflection of native Numba sets on Python set objects.
c                   \        R R7      ! V4      p\        . RO4      \        R.4      3\        . RO4      \        . RO4      3.pV F  w  rE\        V4      p\        V4      pV! We4      pV P                  Wu4      ;_uu_ 4        V! Wu4      p	V P                  W4       V P                  Wg4       V P	                  V^ ,          VJ V	^ ,          VJ 4       ??	RRR4       K  	  R#   + '       g   i     K  ; i)Tr   g        N)g      ?r   g      @g      @)g      @g      @g      @g       @g      "@)r   r&   assertRefCountr   r	  )
r   r   r   samplesdestr   r   r   pyrescress
   &&        r   check_reflection"TestSetReflection.check_reflection  s    T"6*()3t95()3/C+DE !ID4yHd)C8)E$$S..S''4''6  qX!5tAw#~F4 /.	 ! /..s   AC##C4c                0    V P                  \        4       R # r   )r#  r   r=  s   &r   test_reflect_simple%TestSetReflection.test_reflect_simple  s    n-r   c                0    V P                  \        4       R # r   )r#  r   r=  s   &r   test_reflect_conditional*TestSetReflection.test_reflect_conditional   s    12r   c           	     x   \         p\        RR7      ! V4      p\        . RO4      pV P                  V4      ;_uu_ 4        V P	                  \
        4      ;_uu_ 4        V! V4       RRR4       V P                  V\        . RO4      4       RRR4       R#   + '       g   i     L7; i  + '       g   i     R# ; i)zL
When the function exits with an exception, sets should still be
reflected.
Tr   Nr  )r%   r   r   r   )r   r   r&   r  r  r   r   )r   r   r   r*   s   &   r   test_reflect_exception(TestSetReflection.test_reflect_exception#  s    
 #T"6*	N  ##""#455a 6##As='9: $#55 $##s#   B(	B	&%B(B% B((B9	c                    \         p\        RR7      ! V4      p\        . RO4      pVP                  4       pV! W34      pV! WD4      pV P	                  WV4       V P	                  W44       V P                  W44       R# )zN
When the same set object is reflected twice, behaviour should
be consistent.
Tr   Nr  )r   r   r&   rl   r   assertRefCountEqual)r   r   r   pysetcsetr   r   s   &      r   test_reflect_same_set'TestSetReflection.test_reflect_same_set0  sj    
 T"6*Izz|%'D.,  -r   c                    \        RR7      ! \        4      p\        R.4      pV Uu. uF  p\        V4      NK  	  ppV! V4       T P	                  V Uu. uF  p\        V4      NK  	  upV4       R# u upi u upi )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!ua a+A"Q%+S1 !+s   A2A7r   N)r   r   r   r   r  r#  r&  r)  r,  r2  r7  r   r   r   s   @r   r  r    s-       .3;.	2 	2r   r  c                   0   a  ] tR tRt o RtR tR tRtV tR# )TestExamplesiK  z
Examples of using sets.
c                    \         pV P                  V4      pV! V P                  ^4      4       V! V P                  ^4      4       R# r  )r   r   r   r   r  s   &  r   test_uniqueTestExamples.test_uniqueP  s=    &&v.d##C()d$%r   c                <    R  pV P                  V4      pV! 4        R# )c                      \         P                  ! ^4      p \        4       pVP                  0 Rm4       VP	                  V 4       V# )r%   >   r%   r   r   )r   uint64r&   r6   r'   )rJ   Rs     r   impl9TestExamples.test_type_coercion_from_update.<locals>.implY  s2    		!AAHHYEE!HHr   N)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   s   @r   r:  r:  K  s     &	 	r   r:  __main__r^   )Funittestcollectionsr   r  r5  r   numba.core.errorsr   numpyr   numbar   r   numba.tests.supportr   r   r	   r
   r   r   r    r"   r+   r.   r4   r;   r?   rC   rF   rK   rO   rQ   rU   rX   r[   r_   rc   rf   rj   ro   rq   rs   rx   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>rN     s    "    )  3 3 	7J':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 @2F8 0 zMMO r   