
    0hhs                    
   S SK r S SKJr  S SKJr  S SKrS SKrS SKrS SKrS SK	r	S SK
JrJr  S SKrS SKrS SKrS SKr " S S\5      rS r " S S	5      r " S
 S5      r " S S\5      r " S S5      r " S S\\ R2                  5      r " S S\5      r " S S\5      r " S S\\ R2                  5      r " S S\5      r  " S S\5      r! " S S\5      r" " S S\ R2                  5      r# " S  S!\5      r$ " S" S#\#5      r%\" 5       r& " S$ S%5      r' " S& S'\'\ R2                  5      r( " S( S)\'\ R2                  5      r) " S* S+\'\ R2                  5      r* " S, S-\'\ R2                  5      r+ " S. S/\'\ R2                  5      r, " S0 S1\'\ R2                  5      r- " S2 S3\'\ R2                  5      r.S4 r/S5 r0 " S6 S7\ R2                  5      r1 " S8 S9\ R2                  5      r2 " S: S;\ R2                  5      r3 " S< S=\ R2                  5      r4 " S> S?\ R2                  5      r5 " S@ SA5      r6 " SB SC\6\ R2                  5      r7 " SD SE\6\ R2                  5      r8 " SF SG\6\ R2                  5      r9 " SH SI\6\ R2                  5      r: " SJ SK\6\ R2                  5      r; " SL SM5      r< " SN SO\<\ R2                  5      r= " SP SQ\<\ R2                  5      r> " SR SS\<\ R2                  5      r? " ST SU\<\ R2                  5      r@ " SV SW\<\ R2                  5      rA " SX SY\<\ R2                  5      rB " SZ S[5      rC " S\ S]\C\ R2                  5      rD " S^ S_\C\ R2                  5      rE " S` Sa\C\ R2                  5      rF " Sb Sc\C\ R2                  5      rG " Sd Se\C\ R2                  5      rH " Sf Sg\ R2                  5      rISh rJ " Si Sj5      rK " Sk Sl5      rL " Sm Sn5      rM " So Sp5      rN " Sq Sr5      rO " Ss St5      rP " Su Sv5      rQS SwKJRrR  Sx rS " Sy Sz\ R2                  5      rT " S{ S|5      rU " S} S~5      rV " S S\ R2                  5      rW " S S5      rX " S S\X5      rY " S S\Y\ R2                  5      rZ " S S\Y\ R2                  5      r[ " S S\Y\ R2                  5      r\ " S S\Y\ R2                  5      r] " S S\X5      r^ " S S\^\ R2                  5      r_ " S S\^\ R2                  5      r` " S S\^\ R2                  5      ra " S S\^\ R2                  5      rb " S S\^\ R2                  5      rc " S S\^\ R2                  5      rdS reS rfS rgS rh " S S\ R2                  5      ri\jS:X  a  \ R                  " 5         gg)    N)support)warnings_helper)	randrangeshufflec                       \ rS rSrSrg)PassThru    N__name__
__module____qualname____firstlineno____static_attributes__r
       6/opt/python-3.13.8/usr/lib/python3.13/test/test_set.pyr   r          r   r   c               #      #    [         e7fN)r   r
   r   r   check_pass_thrur      s
     
N   	c                        \ rS rSrS rS rSrg)BadCmp   c                     gN   r
   selfs    r   __hash__BadCmp.__hash__       r   c                     [         er   )RuntimeErrorr   others     r   __eq__BadCmp.__eq__   s    r   r
   Nr   r   r   r   r    r'   r   r
   r   r   r   r      s    r   r   c                       \ rS rSrS rSrg)ReprWrapper   c                 ,    [        U R                  5      $ r   )reprvaluer   s    r   __repr__ReprWrapper.__repr__   s    DJJr   r
   N)r   r   r   r   r0   r   r
   r   r   r+   r+      s     r   r+   c                        \ rS rSrS rS rSrg)HashCountingInt!   c                     SU l         g Nr   
hash_count)r   argss     r   __init__HashCountingInt.__init__#   s	    r   c                 V    U =R                   S-  sl         [        R                  U 5      $ r   )r8   intr    r   s    r   r    HashCountingInt.__hash__%   s    1||D!!r   r7   N)r   r   r   r   r:   r    r   r
   r   r   r3   r3   !   s    "r   r3   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g)TestJointOps)   c                     S=U l         nSU l        SU l        U R                  U5      U l        [
        R                  U5      U l        g )N
simsalabim
madagascar4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)word	otherwordlettersthetypesdictfromkeysd)r   rF   s     r   setUpTestJointOps.setUp,   s<    ''	D%Md#t$r   c                     U R                  [        U R                  / S5        U R                  [        [        5       R                  SS9  g )N   r   a)assertRaises	TypeErrorrI   setr:   r   s    r   test_new_or_initTestJointOps.test_new_or_init3   s5    )T\\2q9)SU^^q9r   c                    [        U R                  5      n[        U R                  5      nU R                  X5        U R	                  [
        U R                  [        5       5        U R	                  [        U R                  / /5        g r   )	sortedrJ   rM   assertEqualrT   r   rI   r   rU   )r   actualexpecteds      r   test_uniquification TestJointOps.test_uniquification7   s[    $&&>*(DLL/2CD)T\\B48r   c                 t    U R                  [        U R                  5      [        U R                  5      5        g r   )r[   lenrJ   rM   r   s    r   test_lenTestJointOps.test_len>   s"    TVVc$&&k2r   c                 v   U R                    H-  nU R                  XR                  ;   XR                  ;   5        M/     U R	                  [
        U R                  R                  / /5        U R                  [        U R                   5      /5      nU R                  U R                  U R                   5      U5        g r   )
rH   r[   rJ   rM   rT   rU   __contains__rI   	frozensetassertIn)r   crJ   s      r   test_containsTestJointOps.test_containsA   s    AQ&&[!vv+6 )TVV%8%82$?LL)DLL123dll4<<0!4r   c           	         U R                   R                  U R                  5      nU R                   H8  nU R	                  X!;   X R
                  ;   =(       d    X R                  ;   5        M:     U R	                  U R                   U R                  U R                  5      5        U R	                  [        U5      U R                  5        U R                  [        U R                   R                  [        5       5        U R                  [        U R                   R                  / /5        [        [        [         R"                  [$        [&        [(        4 GHF  nU R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  U" S5      5      [        S	5      5        U R	                  U R                  S5      R                  U" S5      U" S
5      5      [        S5      5        GMI     U R                  5       nU R	                  UR                  [        S/5      U[        S/5      5      U R                  SS/5      5        g )Nabcbacdcabcdefgfeabcefgccbabcefabceffgr   rQ   )rJ   unionrG   rH   r[   rM   rI   rF   typebasetyperT   r   r   rU   rV   rf   rK   rL   strlisttuple)r   urh   Cxs        r   
test_unionTestJointOps.test_unionH   s   FFLL(AQVQ&&[%GA4GH dii!89a$--0(DFFLL/2CD)TVV\\B48iT5@AT\\'2885BCKPT\\'2887Dc(mTT\\'2885BCJOT\\'2884A3w<PT\\'2884!D'JCPXMZ A LLNaS1c1#h7q!f9MNr   c                    U R                   R                  U R                  5      nU R                  U R                   [	        U R                  5      -  U5        U R                  U R                   [        U R                  5      -  U5         U R                   U R                  -    U R                  S5        g ! [         a     g f = f)Nz(s|t did not screen-out general iterables)rJ   rv   rG   r[   rV   rf   failrU   r   is     r   test_orTestJointOps.test_or[   s    FFLL(#dnn"55q9)DNN";;Q?	BFFT^^# II@A  		   B6 6
CCc           	         U R                   R                  U R                  5      nU R                   H8  nU R	                  X!;   X R
                  ;   =(       a    X R                  ;   5        M:     U R	                  U R                   U R                  U R                  5      5        U R	                  [        U5      U R                  5        U R                  [        U R                   R                  [        5       5        [        [        [        R                   ["        [$        [&        4 GHF  nU R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  U" S	5      U" S
5      5      [        S5      5        GMI     U R                  S5      nUR                  5       nU R                  [        5       :X  a%  U R	                  [)        U5      [)        U5      5        g U R+                  [)        U5      [)        U5      5        g )Nrl   rm   ccro    rq   bcrs   cbcfbagb)rJ   intersectionrG   rH   r[   rM   rI   rF   rw   rx   rT   r   r   rV   rf   rK   rL   ry   rz   r{   idassertNotEqual)r   r   rh   r}   rJ   zs         r   test_intersectionTestJointOps.test_intersectionf   s    FF/AQVQ&&[%HQ..5HI dii!89a$--0(DFF$7$79JKiT5@AT\\'2??%I3t9UT\\'2??'
KSQSWUT\\'2??%I3t9UT\\'2??$H#b'RT\\'2??&	1U8TVYZ]V^_ A LL!NN<<9;&RUBqE*1r!u-r   c                 R   S nS H  nU R                  U5      nS H  n[        [        [        R                  [
        [        [        4 HS  nU" U5      nUR                  U5      nU" X65      nU R                  Xx5        U R                  USL =(       d    USL 5        MU     M     M     g )Nc                 @    [        U 5      R                  U5      (       + $ r   )rV   r   )s1s2s     r   f'TestJointOps.test_isdisjoint.<locals>.f{   s    2w++B///r   )
r   rS   abrr   ababacrm   r   ro   rq   rs   TF)rI   rV   rf   rK   rL   ry   rz   r{   
isdisjointr[   
assertTrue)	r   r   largr   rargr}   r   r\   r]   s	            r   test_isdisjointTestJointOps.test_isdisjointz   s    	0 VDd#BYiT5HA4B]]2.F yH$$V6OOFdN$EfoF I Z Vr   c                    U R                   R                  U R                  5      nU R                  U R                   [	        U R                  5      -  U5        U R                  U R                   [        U R                  5      -  U5         U R                   U R                  -    U R                  S5        g ! [         a     g f = f)Nz(s&t did not screen-out general iterables)rJ   r   rG   r[   rV   rf   r   rU   r   s     r   test_andTestJointOps.test_and   s    FF/#dnn"55q9)DNN";;Q?	BFFT^^# II@A  		r   c           	         U R                   R                  U R                  5      nU R                   H8  nU R	                  X!;   X R
                  ;   =(       a    X R                  ;  5        M:     U R	                  U R                   U R                  U R                  5      5        U R	                  [        U5      U R                  5        U R                  [        U R                   R                  [        5       5        U R                  [        U R                   R                  / /5        [        [        [         R"                  [$        [&        [(        4 GH~  nU R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  5       [        S5      5        U R	                  U R                  S5      R                  U" S5      U" S	5      5      [        S
5      5        GM     g )Nrl   rm   r   ro   rr   rq   rS   rs   r   rh   )rJ   
differencerG   rH   r[   rM   rI   rF   rw   rx   rT   r   r   rU   rV   rf   rK   rL   ry   rz   r{   r   r   rh   r}   s       r   test_differenceTestJointOps.test_difference   s   FFdnn-AQVQ&&[%LQnn5LM dii!89a$--0(DFF$5$57HI)TVV%6%6=iT5@AT\\'2==ahGTST\\'2==ajI3u:VT\\'2==ahGSRT\\'2==agFE
ST\\'2==?ULT\\'2==afafMsSVxX Ar   c                    U R                   R                  U R                  5      nU R                  U R                   [	        U R                  5      -
  U5        U R                  U R                   [        U R                  5      -
  U5         U R                   U R                  -
    U R                  S5        g ! [         a     g f = f)Nz(s-t did not screen-out general iterables)rJ   r   rG   r[   rV   rf   r   rU   r   s     r   test_subTestJointOps.test_sub   s    FFdnn-#dnn"55q9)DNN";;Q?	BFFT^^# II@A  		r   c                    U R                   R                  U R                  5      nU R                   H2  nU R	                  X!;   X R
                  ;   X R                  ;   -  5        M4     U R	                  U R                   U R                  U R                  5      5        U R	                  [        U5      U R                  5        U R                  [        U R                   R                  [        5       5        U R                  [        U R                   R                  / /5        [        [        [         R"                  [$        [&        [(        4 GH   nU R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  U" S5      5      [        S5      5        U R	                  U R                  S5      R                  U" S5      5      [        S	5      5        GM     g )
Nrl   rm   abdro   rp   rq   rS   rs   rt   )rJ   symmetric_differencerG   rH   r[   rM   rI   rF   rw   rx   rT   r   r   rU   rV   rf   rK   rL   ry   rz   r{   r   s       r   test_symmetric_difference&TestJointOps.test_symmetric_difference   s   FF''7AQVa66ka>>6I%JK dii!89a$--0(DFF$?$?ARS)TVV%@%@2$GiT5@AT\\'2GG%QSVW\S]^T\\'2GG'
SUXYaUbcT\\'2GG%QSVWZS[\T\\'2GG$PRUV]R^_	 Ar   c                    U R                   R                  U R                  5      nU R                  U R                   [	        U R                  5      -  U5        U R                  U R                   [        U R                  5      -  U5         U R                   U R                  -    U R                  S5        g ! [         a     g f = f)Nz(s^t did not screen-out general iterables)rJ   r   rG   r[   rV   rf   r   rU   r   s     r   test_xorTestJointOps.test_xor   s    FF''7#dnn"55q9)DNN";;Q?	BFFT^^# II@A  		r   c                     U R                  U R                  [        U R                  5      5        U R                  U R                  [	        U R                  5      5        U R                  U R                  U R                  :H  S5        U R                  U R                  [        U R                  5      5        U R                  U R                  [	        U R                  5      5        U R                  U R                  U R                  :g  S5        g NFT)r[   rJ   rV   rF   rf   r   rG   r   s    r   test_equalityTestJointOps.test_equality   s    TYY0499!56499,e4DFFC$78DFFIdnn$=>499,d3r   c                     [        [        / SQ5      nU R                  U5      nU R                  [	        U5      S5        g )N)abcdefbcdbdcbfedfedccba   )maprf   rI   r[   ra   )r   trJ   s      r   test_setOfFrozensets!TestJointOps.test_setOfFrozensets   s0    	FGLLOQ#r   c                    [        U R                  / SQ5      u  pnU R                  X:  5        U R                  X:*  5        U R                  X":*  5        U R                  X!:  5        U R                  X!:  5        U R                  X#:  5        U R                  X#:*  5        U R                  X#:  5        U R                  X#:  5        U R                  [	        S5      R                  S5      5        U R                  [	        S5      R                  S5      5        U R                  [	        S5      R                  S5      5        U R                  [	        S5      R                  S5      5        g )N)r   abcdedefrS   rr   cbs)r   rI   r   assertFalserV   issubset
issuperset)r   pqrs       r   test_sub_and_superTestJointOps.test_sub_and_super   s   dll$:;a  C))%01E
--c23S**512U..s34r   c                 (   [        [        R                  S-   5       GHq  n[        U R                  5      [
        [        4;  a$  S/U R                  l        S/U R                  l        [        R                  " U R                  U5      n[        R                  " U5      nU R                  U R                  X0R                  < SU< 35        [        U R                  5      [
        [        4;  d  M  U R                  U R                  R                  UR                  5        U R                  U R                  R                  UR                  5        U R                  [        U R                  S5      5        U R                  ?U R                  ?GMt     g )Nr   r~   r    != y)rangepickleHIGHEST_PROTOCOLrw   rJ   rV   rf   r~   r   dumpsloadsr[   r   hasattr)r   r   r   dups       r   test_picklingTestJointOps.test_pickling   s    v..23ADFF|C#3355TVVQ'A,,q/CTVVS*DEDFF|C#33  3551  3551  !56FFHdffh 4r   c                    [        [        R                  S-   5       GH,  n[        U R                  5      nU R                  U R                  5      n[        R                  " X!5      n[        R                  " U5      nU R                  U[        R                  R                  5        U R                  U R                  U5      U5        [        R                  " U5      n [        U5      n[        R                  " XQ5      n[        R                  " U5      nU R                  U R                  U5      X0R                  U45      -
  5        GM/     g ! [         a     GM@  f = fr   )r   r   r   iterrJ   rI   r   r   assertIsInstancecollectionsrr   Iteratorr[   nextStopIteration)r   protoitorgdatarM   itdrops          r   test_iterator_pickling#TestJointOps.test_iterator_pickling   s    622Q67ELE<<'DU*AaB !!"koo&>&>?T\\"-t4aBBx R'AaBT\\"-tllD76K/KL% 8 ! s   E
EEc                 x  ^  " U4S jS5      mT" S5      nU R                  U/5      n[        R                  " U5      nU R                  [	        U5      [	        U5      5        U H  nUnM     U R                  [	        U5      [	        W5      5        U R                  UR                  S-   UR                  5        g )Nc                   2   > \ rS rSrS rS rSU 4S jjrSrg)*TestJointOps.test_deepcopy.<locals>.Traceri  c                     Xl         g r   r/   )r   r/   s     r   r:   3TestJointOps.test_deepcopy.<locals>.Tracer.__init__	  s    "
r   c                     U R                   $ r   r   r   s    r   r    3TestJointOps.test_deepcopy.<locals>.Tracer.__hash__  s    zz!r   Nc                 .   > T" U R                   S-   5      $ r   r   )r   memoTracers     r   __deepcopy__7TestJointOps.test_deepcopy.<locals>.Tracer.__deepcopy__  s    djj1n--r   r   r   )r   r   r   r   r:   r    r   r   )r   s   r   r   r     s    #". .r   r   
   r   )rI   copydeepcopyr   r   r[   r/   )r   r   rJ   r   elemnewtr   s         @r   test_deepcopyTestJointOps.test_deepcopy  s    	. 	. 2JLL!mmABqE2c7+DD BqE2d8,1djj1r   c                    ^  " S S5      m[        U4S j[        S5       5       5      nU H   nXl        X"l        [        U/5      Ul         M"     g )Nc                       \ rS rSrSrg)TestJointOps.test_gc.<locals>.Ai  r
   Nr   r
   r   r   Ar        r   r  c              3   2   >#    U  H  nT" 5       v   M     g 7fr   r
   ).0r   r  s     r   	<genexpr>'TestJointOps.test_gc.<locals>.<genexpr>  s     )[[     )rV   r   cyclesub)r   rJ   r   r  s      @r   test_gcTestJointOps.test_gc  sB    	 	)U4[))DJHD6{DH r   c                      " S SU R                   5      nU" 5       n[        5       nUR                  U5        U R                  X#5        UR	                  U5        UR                  U5        UR                  U5        g )Nc                       \ rS rSrS rSrg)6TestJointOps.test_subclass_with_custom_hash.<locals>.Hi$  c                 0    [        [        U 5      S-  5      $ )Ni)r=   r   r   s    r   r    ?TestJointOps.test_subclass_with_custom_hash.<locals>.H.__hash__%  s    2d8j011r   r
   N)r   r   r   r   r    r   r
   r   r   Hr  $  s    2r   r  )rI   rV   addrg   removediscard)r   r  rJ   r   s       r   test_subclass_with_custom_hash+TestJointOps.test_subclass_with_custom_hash"  sZ    	2 	2 #
%	aa		a			!r   c                 
   U R                  [        5       /5      nU R                  [        U R                   [        5       [        5       /5        U R                  [        UR                  [        5       5        [        US5      (       a|  U R                  [        UR                  [        5       5        U R                  [        UR                  [        5       5        U R                  [        UR                  [        5       5        g g )Nr  )	rI   r   rT   r$   re   r   r  r  r  r   rJ   s     r   test_badcmpTestJointOps.test_badcmp/  s    LL&($,vx6JK,A1elAEE68<lAIIvx@lAHHfh? r   c                 (   [        5       nU R                  U/5      nX!l        U R                  [        :X  a  U R	                  [        U5      S5        g [        U5      R                  S5      S   nU R	                  [        U5      U< SU< S35        g )Nz
{set(...)}(r   z({z(...)}))r+   rI   r/   rV   r[   r.   	partition)r   wrJ   names       r   test_cyclical_reprTestJointOps.test_cyclical_repr:  sp    MLL!<<3T!Wl37$$S)!,DT!Wt&DEr   c                    Sn[         R                  [        [        [	        U5      5      5      nU R                  [        S U 5       5      U5        U R                  U5      nU R                  [        S U 5       5      U5        UR                  U5        U R                  [        S U 5       5      U5        [        US5      (       a  UR                  U5        U R                  [        S U 5       5      U5        [         R                  [        U5      5      nU R                  [        S U 5       5      U5        [         R                  [        U5      5      nU R                  [        S U 5       5      U5        [         R                  [        U5      S	5      nU R                  [        S
 U 5       5      U5        U R                  U[         R                  US	5      5        g )Nr   c              3   8   #    U  H  oR                   v   M     g 7fr   r7   r  r   s     r   r  <TestJointOps.test_do_not_rehash_dict_keys.<locals>.<genexpr>G       ;__   c              3   8   #    U  H  oR                   v   M     g 7fr   r7   r&  s     r   r  r'  I  r(  r)  c              3   8   #    U  H  oR                   v   M     g 7fr   r7   r&  s     r   r  r'  K  r(  r)  symmetric_difference_updatec              3   8   #    U  H  oR                   v   M     g 7fr   r7   r&  s     r   r  r'  N  r(  r)  c              3   8   #    U  H  oR                   v   M     g 7fr   r7   r&  s     r   r  r'  P  r(  r)  c              3   8   #    U  H  oR                   v   M     g 7fr   r7   r&  s     r   r  r'  R  r(  r)  {   c              3   8   #    U  H  oR                   v   M     g 7fr   r7   r&  s     r   r  r'  T  r(  r)  )rK   rL   r   r3   r   r[   sumrI   r   r   r,  rV   rf   )r   nrM   rJ   d2d3s         r   test_do_not_rehash_dict_keys)TestJointOps.test_do_not_rehash_dict_keysD  sd   MM#ouQx89;;;Q?LLO;;;Q?	Q;;;Q?1344))!,;;;Q?]]3q6";;;Q?]]9Q<(;;;Q?]]9Q<-;;;Q?T]]1c23r   c                      " S S[         5      nU" 5       n[        R                  " U5      n[        US/5      n[	        U5      Ul        AA[        R                  " 5         U R                  U" 5       S L S5        g )Nc                       \ rS rSrSrg)/TestJointOps.test_container_iterator.<locals>.CiY  r
   Nr   r
   r   r   r}   r:  Y  r  r   r}   r   zCycle was not collected)	objectweakrefrefrV   r   r~   gccollectr   )r   r}   objr=  	containers        r   test_container_iterator$TestJointOps.test_container_iteratorW  s^    	 	ckk#aM	Y


'@Ar   c                 P    [         R                  " U [        U R                  5        g r   )r   check_free_after_iteratingr   rI   r   s    r   test_free_after_iterating&TestJointOps.test_free_after_iteratingc  s    **4t||Dr   )rM   rH   rG   rJ   rF   N) r   r   r   r   rN   rW   r^   rb   ri   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r"  r6  rB  rF  r   r
   r   r   r@   r@   )   s    %:935O&	B.(G	BY 	B`	B4$
5 'M*2"#	@F4&
BEr   r@   c                       \ rS rSr\r\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)TestSetif  c                    U R                  5       nUR                  U R                  5        U R                  U[	        U R                  5      5        UR                  U R
                  5        U R                  U[	        U R
                  5      5        U R                  [        UR                  US5        U R                  [        UR                  S5        g )NrQ   r   )rI   r:   rF   r[   rV   rG   rT   rU   r  s     r   	test_initTestSet.test_initj  s    LLN	

499C		N+	

4>>"C/0)QZZA6)QZZ3r   c                     U R                  [        S5      5      nU R                  U5      nU R                  [        U5      [        U5      5        g Nr   rI   r   r   r   r   rJ   r   s      r   test_constructor_identity!TestSet.test_constructor_identitys  9    LLq"LLOBqE2a5)r   c                 H    [        / SQ5      n1 SknU R                  X5        g )Nr   rQ   r      r   rQ   r   rV   r[   rP  s      r   test_set_literalTestSet.test_set_literalx  s    Lr   c                     1 SknU R                  [        U5      S5        UR                  5       nU R                  [        U5      [        5        g )N>   r   r   )r[   ra   poprw   r=   )r   rJ   stored_values      r    test_set_literal_insertion_order(TestSet.test_set_literal_insertion_order}  s;    Q#uuwl+S1r   c                 l   ^ / mU4S jnU" S5      U" S5      U" S5      1nU R                  T/ SQ5        g )Nc                 (   > TR                  U 5        g r   )append)r@  eventss    r   record9TestSet.test_set_literal_evaluation_order.<locals>.record  s    MM#r   r   rQ   r   rU  )r[   )r   rc  rJ   rb  s      @r   !test_set_literal_evaluation_order)TestSet.test_set_literal_evaluation_order  s5    	AYq	6!9-+r   c                 N    U R                  [        [        U R                  5        g r   )rT   rU   hashrJ   r   s    r   	test_hashTestSet.test_hash  s    )T4662r   c                     U R                   R                  5         U R                  U R                   [        5       5        U R                  [	        U R                   5      S5        g r6   )rJ   clearr[   rV   ra   r   s    r   
test_clearTestSet.test_clear  s=    'TVVa(r   c                    U R                   R                  5       nU R                  U R                   U5        U R                  [	        U R                   5      [	        U5      5        U R                  [        U5      U R                  5        g r   )rJ   r   r[   r   r   rw   rx   r   r   s     r   	test_copyTestSet.test_copy  sY    ffkkm%BtvvJ30cDMM2r   c                 j   U R                   R                  S5        U R                  SU R                   5        U R                   R                  5       nU R                   R                  S5        U R	                  U R                   U5        U R                  [        U R                   R                  / 5        g )NQ)rJ   r  rg   r   r[   rT   rU   rp  s     r   test_addTestSet.test_add  so    

3c466"ffkkm

3%)TVVZZ4r   c                    U R                   R                  S5        U R                  SU R                   5        U R                  [        U R                   R                  S5        U R                  [
        U R                   R                  / 5        U R                  [        U R                  5      /5      nU R                  U R                  U R                  5      U5        UR                  U R                  U R                  5      5        U R                  U R                  U R                  5      U5        U R                  [        U R                   R                  U R                  U R                  5      5        g NrS   rt  )
rJ   r  assertNotInrT   KeyErrorrU   rI   rf   rF   rg   r  s     r   test_removeTestSet.test_remove  s    cdff%(DFFMM37)TVV]]B7LL)DII./0dll499-q1	dii()dii0!4(DFFMM4<<		3JKr   c                     S H/  n U R                   R                  U5        U R                  5         M1     g ! [         a+  nUR                  S   nU R                  X5         S nAMd  S nAff = f)N)rt  )r   r   )rJ   r  r   rz  r9   r[   )r   v1ev2s       r   test_remove_keyerror_unpacking&TestSet.test_remove_keyerror_unpacking  s\    Bb!
 		   )VVAY  (()s   7
A, A''A,c           	      ,   U R                  SS/5      n U R                  R                  U5        U R                  5         g ! [         aH  nU R                  UR                  S   UL SR                  UUR                  S   5      5         S nAg S nAff = f)Nr      r   zKeyError should be {0}, not {1})rI   rJ   r  r   rz  r   r9   format)r   keyr  s      r   test_remove_keyerror_set TestSet.test_remove_keyerror_set  s    llAq6"	FFMM# IIK  	NOOAFF1I,:AA#BC&&)MN N	Ns   A 
B>BBc                    U R                   R                  S5        U R                  SU R                   5        U R                   R                  S5        U R                  [        U R                   R                  / 5        U R                  [        U R                  5      /5      nU R                  U R                  U R                  5      U5        UR                  U R                  U R                  5      5        U R                  U R                  U R                  5      U5        UR                  U R                  U R                  5      5        g rx  )	rJ   r  ry  rT   rU   rI   rf   rF   rg   r  s     r   test_discardTestSet.test_discard  s    sdff%s)TVV^^R8LL)DII./0dll499-q1			$,,tyy)*dii0!4			$,,tyy)*r   c                    [        [        U R                  5      5       H8  nU R                  R                  5       nU R	                  X R                  5        M:     U R                  [        U R                  R                  5        g r   )r   ra   rJ   r[  ry  rT   rz  )r   r   r   s      r   test_popTestSet.test_pop  sT    s466{#A66::<DT66* $ 	(DFFJJ/r   c           
          U R                   R                  U R                  5      nU R                  US 5        U R                  U R                  -    H  nU R                  X R                   5        M      U R                  [        U R                   R                  [        5       5        U R                  [        U R                   R                  / /5        S H  u  p4[        [        [        R                  [        [        [         4 HV  nU R#                  S5      nU R                  UR                  U" U5      5      S 5        U R                  U[        U5      5        MX     M     S H  nSn[        [        [        R                  [        [        [         4 Hu  nU R#                  S5      nU R                  UR                  U" U5      U" U5      5      S 5        U R                  U[        U5      [        U5      -  [        U5      -  5        Mw     M     g )N))rm   rn   ro   rp   )rq   rr   rs   rt   rl   )rm   ro   rq   rs   abcdaahi)rJ   updaterG   r[   rF   rg   rT   r   r   rU   rV   rf   rK   rL   ry   rz   r{   rI   r   retvalrh   r   r   r}   rJ   s          r   test_updateTestSet.test_update  sr   t~~.&))dnn,AMM!VV$ -(DFFMM?3DE)TVV]]RD9[DA)T]]CuDLL)  !A$6  CF+ E \
 8AA)T]]CuDLL)  !A$!!5t<  CFSVOc!f$<= E 8r   c                     U =R                   [        U R                  5      -  sl         U R                  U R                  -    H  nU R	                  XR                   5        M      g r   )rJ   rV   rG   rF   rg   r   rh   s     r   test_iorTestSet.test_ior  s@    #dnn%%))dnn,AMM!VV$ -r   c           
      *   U R                   R                  U R                  5      nU R                  US 5        U R                  U R                  -    HY  nX R                  ;   a,  X R                  ;   a  U R                  X R                   5        M>  U R                  X R                   5        M[     U R                  [        U R                   R                  [        5       5        U R                  [        U R                   R                  / /5        S GH   u  p4[        [        [        R                  [        [         ["        4 H  nU R%                  S5      nU R                  UR                  U" U5      5      S 5        U R                  U[        U5      5        SnU R%                  U5      nSnU R                  UR                  U" U5      U" U5      5      S 5        U R                  U[        S5      [        U5      -  [        U5      -  5        M     GM     g )N))rm   rh   )ro   r   )rq   r   )rs   r   rl   cbc)rJ   intersection_updaterG   r[   rF   rg   ry  rT   r   r   rU   rV   rf   rK   rL   ry   rz   r{   rI   )	r   r  rh   r   r   r}   rJ   ssr   s	            r   test_intersection_update TestSet.test_intersection_update  s   ++DNN;&))dnn,ANN"qII~a(  FF+	 -
 	(DFF$>$>@QR)TVV%?%?"FLDA)T]]CuDLL)  !6!6qt!<dC  CF+LL$  !6!6qtQqT!BDI  CLQ$7A$>? E Mr   c                 @   U =R                   [        U R                  5      -  sl         U R                  U R                  -    HY  nXR                  ;   a,  XR                  ;   a  U R	                  XR                   5        M>  U R                  XR                   5        M[     g r   rJ   rV   rG   rF   rg   ry  r  s     r   	test_iandTestSet.test_iand  sd    #dnn%%))dnn,ANN"qII~a(  FF+	 -r   c           	      J   U R                   R                  U R                  5      nU R                  US 5        U R                  U R                  -    HY  nX R                  ;   a,  X R                  ;  a  U R                  X R                   5        M>  U R                  X R                   5        M[     U R                  [        U R                   R                  [        5       5        U R                  [        U R                   R                  / /5        U R                  [        U R                   R                  / /5        S GHd  u  p4[        [        [        R                  [         ["        [$        4 GH/  nU R'                  S5      nU R                  UR                  U" U5      5      S 5        U R                  U[        U5      5        U R'                  S5      nUR                  5         U R                  X`R'                  S5      5        U R'                  S5      nUR                  U" S5      5        U R                  X`R'                  S5      5        U R'                  S5      nUR                  U" S5      U" S5      5        U R                  X`R'                  S5      5        GM2     GMg     g )N))rm   r   )ro   rr   rq   rS   )rs   rr   rl   
abcdefghihabacdefghihrm   efghih)rJ   difference_updaterG   r[   rF   rg   ry  rT   r   r   rU   r,  rV   rf   rK   rL   ry   rz   r{   rI   r  s          r   test_difference_updateTestSet.test_difference_update	  s   ))$..9&))dnn,AII~!>>"9a(  FF+	 -
 	(DFF$<$<o>OP)TVV%=%=tD)TVV%G%G"NRDA)T]]CuDLL)  !4!4QqT!:DA  CF+LL.##%  LL$>?LL.##AeH-  LL$<=LL.##AeHah7  LL$:; E Sr   c                 @   U =R                   [        U R                  5      -  sl         U R                  U R                  -    HY  nXR                  ;   a,  XR                  ;  a  U R	                  XR                   5        M>  U R                  XR                   5        M[     g r   r  r  s     r   	test_isubTestSet.test_isub&  sd    #dnn%%))dnn,AII~!>>"9a(  FF+	 -r   c           	      B   U R                   R                  U R                  5      nU R                  US 5        U R                  U R                  -    H]  nX R                  ;   X R                  ;   -  (       a  U R                  X R                   5        MB  U R                  X R                   5        M_     U R                  [        U R                   R                  [        5       5        U R                  [        U R                   R                  / /5        S H  u  p4[        [        [        R                  [        [         ["        4 HV  nU R%                  S5      nU R                  UR                  U" U5      5      S 5        U R                  U[        U5      5        MX     M     g )N))rm   r   r  r  r  rl   )rJ   r,  rG   r[   rF   rg   ry  rT   r   r   rU   rV   rf   rK   rL   ry   rz   r{   rI   r  s          r    test_symmetric_difference_update(TestSet.test_symmetric_difference_update.  s!   33DNNC&))dnn,AYY1#67a(  FF+	 -
 	(DFF$F$FHYZ)TVV%G%G"NXDA)T]]CuDLL)  !>!>qt!DdK  CF+ E Yr   c                 H   U =R                   [        U R                  5      -  sl         U R                  U R                  -    H]  nXR                  ;   XR                  ;   -  (       a  U R	                  XR                   5        MB  U R                  XR                   5        M_     g r   r  r  s     r   	test_ixorTestSet.test_ixor>  sg    #dnn%%))dnn,AYY1#67a(  FF+	 -r   c                 t   U R                   R                  5       nX-  nU R                  XR                   5        X-  nU R                  XR                   5        X-  nU R                  XR                  5       5        U R                   R                  5       nX-  nU R                  XR                  5       5        g r   )rJ   r   r[   rI   )r   r   s     r   test_inplace_on_selfTestSet.test_inplace_on_selfF  s    FFKKM	FF#	FF#	LLN+FFKKM	LLN+r   c                     U R                  S5      n[        R                  " U5      nU R                  [	        U5      [	        U5      5        S n[
        R                  " 5         U R                  [        [        U5        g )Ngallahad)	rI   r<  proxyr[   ry   r   
gc_collectrT   ReferenceError)r   rJ   r   s      r   test_weakrefTestSet.test_weakrefR  sY    LL$MM!QQ(.#q1r   c                 P    " S S5      n1 SknU" 5       nX#:    U R                  UR                  5        U" 5       nX#:    U R                  UR                  5        U" 5       nX#:*    U R                  UR                  5        U" 5       nX#:    U R                  UR                  5        g )Nc                   ,    \ rS rSrS rS rS rS rSrg)5TestSet.test_rich_compare.<locals>.TestRichSetComparei[  c                     SU l         gNTF)	gt_calledr   some_sets     r   __gt__<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__gt__\      !%r   c                     SU l         gr  )	lt_calledr  s     r   __lt__<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__lt___  r  r   c                     SU l         gr  )	ge_calledr  s     r   __ge__<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__ge__b  r  r   c                     SU l         gr  )	le_calledr  s     r   __le__<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__le__e  r  r   )r  r  r  r  N)	r   r   r   r   r  r  r  r  r   r
   r   r   TestRichSetComparer  [  s    r   r  rV  )r   r  r  r  r  )r   r  mysetmyobjs       r   test_rich_compareTestSet.test_rich_compareZ  s    	 	" "$("$("$("$(r   r
   N)!r   r   r   r   rV   rI   rx   rK  rQ  rX  r]  re  ri  rm  rq  ru  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r
   r   r   rI  rI  f  s    GH4*

2,3)
35	L			+0>&%
@*,<:,, ,
,2")r   rI  c                       \ rS rSrSrg)SetSubclassi  r
   Nr   r
   r   r   r  r    r   r   r  c                   "    \ rS rSr\r\rS rSr	g)TestSetSubclassi  c                 2    " S S[         5      nU" SS/5      nU R                  [        U5      U5        U R                  [        U5      SS15        U R	                  [
        5         U" SS9  S S S 5         " S S[         5      nU" SS/S	S
9nU R                  [        U5      U5        U R                  [        U5      SS15        U R                  UR                  S	5         " S S[         5      nU" SS/5      nU R                  [        U5      U5        U R                  [        U5      SS15        U R                  UR                  5        U R	                  [
        5         U" SS/S	S
9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       g = f)Nc                       \ rS rSrSrg);TestSetSubclass.test_keywords_in_subclass.<locals>.subclassi  r
   Nr   r
   r   r   subclassr    r  r   r  r   rQ   r
   sequencec                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )ETestSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_initi  c                 0   > [         TU ]  U5        X l        g r   )superr:   newarg)r   argr  	__class__s      r   r:   NTestSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_init.__init__  s     %$r   r  r   )r   r   r   r   r:   r   __classcell__r  s   @r   subclass_with_initr    s    % %r   r  r   r  c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )DTestSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_newi  c                 2   > [         TU ]  X5      nX#l        U$ r   r  __new__r  clsr  r  r   r  s       r   r  LTestSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_new.__new__      ws0$r   r  r   r   r   r   r   r  r   r  r  s   @r   subclass_with_newr         r   r  )rV   assertIsrw   r[   rT   rU   r  assertIsNoner   r  r|   r  r  s        r   test_keywords_in_subclass)TestSetSubclass.test_keywords_in_subclass  sM   	s 	aVd1gx(Q!Q(y)b! *	% 	% 1va0d1g12Q!Q(1%	 	
 q!f%d1g01Q!Q(!((#y)q!fQ/ *)- *), *)s   'E6#
F6
F
Fr
   N)
r   r   r   r   r  rI   rV   rx   r  r   r
   r   r   r  r    s    GH0r   r  c                   F    \ rS rSr\r\rS rS rS r	S r
S rS rS rS	rg
)TestFrozenSeti  c                     U R                  U R                  5      nUR                  U R                  5        U R	                  U[        U R                  5      5        g r   )rI   rF   r:   rG   r[   rV   r  s     r   rK  TestFrozenSet.test_init  s<    LL#	

4>>"C		N+r   c                     U R                  [        S5      5      nU R                  U5      nU R                  [        U5      [        U5      5        g rN  )rI   r   r[   r   rP  s      r   rQ  'TestFrozenSet.test_constructor_identity  s9    LLq"LLOA1&r   c                    U R                  [        U R                  S5      5      [        U R                  S5      5      5        Sn[        U5       Vs/ s H  n[	        U5      PM     nn[        5       n[        S5       H7  n[        U5        UR                  [        U R                  U5      5      5        M9     U R                  [        U5      S5        g s  snf )Nabcdebebecdad      r   )	r[   rh  rI   r   r   rV   r   r  ra   )r   r3  r   seqresultss        r   ri  TestFrozenSet.test_hash  s    dll845dll845	7 %*1X.Xy|X.%sACLKKT\\#./0  	Wq) /s   Cc                     U R                   R                  5       nU R                  [        U R                   5      [        U5      5        g r   )rJ   r   r[   r   rp  s     r   rq  TestFrozenSet.test_copy  s-    ffkkmDFFRW-r   c                 @   [        [        S5      5      [        S5      -   S/-   nU R                  U5      nU R                  [        U5      5      nU R	                  X#5        U R                  [        U5      [        U5      5        0 nSXB'   U R	                  XC   S5        g )Nr   abcdefgapple*   )rz   r   rI   reversedr[   r   r   )r   r  key1key2rM   s        r   test_frozen_as_dictkey$TestFrozenSet.test_frozen_as_dictkey  s    59oY/7);||C ||HSM*$BtHbh/"%r   c                 n    U R                  S5      nU R                  [        U5      [        U5      5        g )Nabcdcda)rI   r[   rh  r   r   s     r   test_hash_cachingTestFrozenSet.test_hash_caching  s(    LL#a$q'*r   c                 n   Sn[        5       nUR                  n[        U5       Vs/ s H  oDS-   SU-  4PM     nn[        SU-  5       H=  nU" [        [	        U VVs/ s H  u  pgXt-  (       d  M  UPM     snn5      5      5        M?     U R                  [        U5      SU-  5        S nS n	[        S5       Hi  nSU-  n
U
S-
  n[        U4 HP  n[        [        [        U	" U" U5      5      5       Vs1 s H  oU-  iM	     sn5      nU R                  SU-  U
5        MR     Mk     g s  snf s  snnf s  snf )N   r   rQ   c                     [        5       /n[        U S-
  5       H  n[        U5      nUR                  U5        M!     US U  $ r   )rf   r   ra  )r3  numsr   nums       r   zf_range7TestFrozenSet.test_hash_effectiveness.<locals>.zf_range  s?    K=D1Q3ZoC    8Or   c              3      #    [        [        U 5      S-   5       H/  n[        [        [        R
                  " X5      5       S h  vN   M1     g  N	7fr   )r   ra   r   rf   	itertoolscombinations)rJ   r   s     r   powerset7TestFrozenSet.test_hash_effectiveness.<locals>.powerset  s9     3q6!8_y)*@*@*FGGG %Gs   AAA
A   r  )	rV   r  r   rh  rf   r[   ra   r   assertGreater)r   r3  
hashvaluesaddhashvaluer   	elemmasksr  mr)  r.  r   maskr'  hr|   s                  r   test_hash_effectiveness%TestFrozenSet.test_hash_effectiveness  s   U
!~~*/(3(Qc1a4[(	3q!tAiy(HytqACy(HIJK Z!Q$/		H rAQAq5D)3tXd1g5F+GH+GaT+GHI""1Q3* * # 4(H& Is   D'D,0D,4D2r
   N)r   r   r   r   rf   rI   rx   rK  rQ  ri  rq  r  r"  r8  r   r
   r   r   r  r    s/    GH,
'
*.&++r   r  c                       \ rS rSrSrg)FrozenSetSubclassi  r
   Nr   r
   r   r   r;  r;    r   r   r;  c                   :    \ rS rSr\r\rS rS r	S r
S rS rSrg)	TestFrozenSetSubclassi  c                     " S S[         5      nU" SS/5      nU R                  [        U5      U5        U R                  [	        U5      SS15        U R                  [        5         U" SS9  S S S 5         " S S[         5      nU" SS/S	S
9nU R                  [        U5      U5        U R                  [	        U5      SS15        U R                  UR                  S	5         " S S[         5      nU" SS/S	S
9nU R                  [        U5      U5        U R                  [	        U5      SS15        U R                  UR                  S	5        g ! , (       d  f       N= f)Nc                       \ rS rSrSrg)ATestFrozenSetSubclass.test_keywords_in_subclass.<locals>.subclassi  r
   Nr   r
   r   r   r  r@    r  r   r  r   rQ   r
   r  c                       \ rS rSrSS jrSrg)KTestFrozenSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_initi  Nc                     X l         g r   r  )r   r  r  s      r   r:   TTestFrozenSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_init.__init__   s    $r   r  r   )r   r   r   r   r:   r   r
   r   r   r  rB    s    %r   r  r   r  c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )JTestFrozenSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_newi  c                 2   > [         TU ]  X5      nX#l        U$ r   r  r  s       r   r  RTestFrozenSetSubclass.test_keywords_in_subclass.<locals>.subclass_with_new.__new__  r  r   r  r   r  r  s   @r   r  rF    r   r   r  )rf   r  rw   r[   rV   rT   rU   r  r  s        r   r  /TestFrozenSetSubclass.test_keywords_in_subclass  s$   	y 	aVd1gx(Q!Q(y)b! *	% 	% 1va0d1g12Q!Q(1%		 	
 q!fQ/d1g01Q!Q(1%' *)s   'E
Ec                     U R                  [        S5      5      nU R                  U5      nU R                  [        U5      [        U5      5        g rN  rO  rP  s      r   rQ  /TestFrozenSetSubclass.test_constructor_identity  rS  r   c                     U R                   R                  5       nU R                  [        U R                   5      [        U5      5        g r   )rJ   r   r   r   rp  s     r   rq  TestFrozenSetSubclass.test_copy  s-    ffkkmBtvvJ30r   c                 h    U R                  5       nU R                  U5      nU R                  X5        g r   )rI   r[   rP  s      r   test_nested_empty_constructor3TestFrozenSetSubclass.test_nested_empty_constructor  s(    LLNLLOr   c                    U R                   n[        5       nU" 5       nU" 5       U" / 5      U" S5      U" S5      U" 5       U" / 5      U" S5      U" S5      U" [        S5      5      U" U" 5       5      U" [        5       5      X#U" U5      U" U5      /nU R                  [	        [        [        [        U5      5      5      [	        U5      5        g )Nr
   r   r   )rI   rf   r   r[   ra   rV   r   r   )r   	Frozensetr   Fefss        r   test_singleton_empty_frozenset4TestFrozenSetSubclass.test_singleton_empty_frozenset  s    LL	KK{IbM9R=)B-{IbM9R=)B-q"Iik$:%qYq\9Q<I
 	SR./S:r   r
   N)r   r   r   r   r;  rI   rf   rx   r  rQ  rq  rO  rU  r   r
   r   r   r=  r=    s%    GH&6*
1
	;r   r=  c                       \ rS rSrSrSrg)SetSubclassWithSlotsi+  r~   r   __dict__r
   Nr   r   r   r   	__slots__r   r
   r   r   rX  rX  +      &Ir   rX  c                   H    \ rS rSr\r\R                  r\R                  rSr	g)TestSetSubclassWithSlotsi.  r
   N)
r   r   r   r   rX  rI   r@   rN   r   r   r
   r   r   r_  r_  .  s    "GE ..Mr   r_  c                       \ rS rSrSrSrg)FrozenSetSubclassWithSlotsi3  rY  r
   Nr[  r
   r   r   ra  ra  3  r]  r   ra  c                       \ rS rSr\rSrg)TestFrozenSetSubclassWithSlotsi6  r
   N)r   r   r   r   ra  rI   r   r
   r   r   rc  rc  6  s    (Gr   rc  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g)TestBasicOpsi?  c                 ~    U R                   b0  U R                  [        U R                  5      U R                   5        g g r   )r.   r[   rV   r   s    r   	test_reprTestBasicOps.test_reprA  s-    99 T$((^TYY7 !r   c                    [        U R                  5      nU R                  UR                  S5      5        U R                  UR	                  S5      5        USS R                  S5      nUR                  5         U R                   Vs/ s H  n[        U5      PM     nnUR                  5         U R                  X$5        g s  snf )N{}r   z, )	r.   rV   r   
startswithendswithsplitsortvaluesr[   )r   textresultr/   sorted_repr_valuess        r   check_repr_against_values&TestBasicOps.check_repr_against_valuesE  s    DHH~,-c*+a!!$'7;{{C{ed5k{C!4 Ds   Cc                 b    U R                  [        U R                  5      U R                  5        g r   )r[   ra   rV   lengthr   s    r   test_lengthTestBasicOps.test_lengthP  s    TXX4r   c                 P    U R                  U R                  U R                  5        g r   r[   rV   r   s    r   test_self_equalityTestBasicOps.test_self_equalityS      488,r   c                 P    U R                  U R                  U R                  5        g r   )r[   rV   r   r   s    r   test_equivalent_equality%TestBasicOps.test_equivalent_equalityV  r  r   c                 l    U R                  U R                  R                  5       U R                  5        g r   )r[   rV   r   r   r   s    r   rq  TestBasicOps.test_copyY  s     $((3r   c                 l    U R                   U R                   -  nU R                  XR                  5        g r   rV   r[   r   r   rs  s     r   test_self_unionTestBasicOps.test_self_union\  &    DHH$*r   c                 `    U R                   [        -  nU R                  XR                  5        g r   rV   	empty_setr[   r   r  s     r   test_empty_unionTestBasicOps.test_empty_union`  "    I%*r   c                 `    [         U R                  -  nU R                  XR                  5        g r   )r  rV   r[   r   r  s     r   test_union_emptyTestBasicOps.test_union_emptyd  s"    TXX%*r   c                 l    U R                   U R                   -  nU R                  XR                  5        g r   r  r  s     r   test_self_intersection#TestBasicOps.test_self_intersectionh  r  r   c                 V    U R                   [        -  nU R                  U[        5        g r   rV   r  r[   r  s     r   test_empty_intersection$TestBasicOps.test_empty_intersectionl  s     I%+r   c                 V    [         U R                  -  nU R                  U[         5        g r   r  rV   r[   r  s     r   test_intersection_empty$TestBasicOps.test_intersection_emptyp       TXX%+r   c                     U R                   R                  U R                   5      nU R                  XR                   (       + 5        g r   rV   r   r[   r  s     r   test_self_isdisjoint!TestBasicOps.test_self_isdisjointt  s.    $$TXX.XX.r   c                 f    U R                   R                  [        5      nU R                  US5        g NT)rV   r   r  r[   r  s     r   test_empty_isdisjoint"TestBasicOps.test_empty_isdisjointx  s&    $$Y/&r   c                 f    [         R                  U R                  5      nU R                  US5        g r  )r  r   rV   r[   r  s     r   test_isdisjoint_empty"TestBasicOps.test_isdisjoint_empty|  s&    %%dhh/&r   c                 b    U R                   U R                   -  nU R                  U[        5        g r   rV   r[   r  r  s     r   test_self_symmetric_difference+TestBasicOps.test_self_symmetric_difference  $    DHH$+r   c                 `    U R                   [        -  nU R                  XR                   5        g r   r  r  s     r   test_empty_symmetric_difference,TestBasicOps.test_empty_symmetric_difference  r  r   c                 b    U R                   U R                   -
  nU R                  U[        5        g r   r  r  s     r   test_self_difference!TestBasicOps.test_self_difference  r  r   c                 `    U R                   [        -
  nU R                  XR                  5        g r   r  r  s     r   test_empty_difference"TestBasicOps.test_empty_difference  r  r   c                 V    [         U R                  -
  nU R                  U[         5        g r   r  r  s     r   test_empty_difference_rev&TestBasicOps.test_empty_difference_rev  r  r   c                     U R                    H  nU R                  XR                  5        M      [        U R                   5      nU R	                  UR                  5       [        U R                   5      5        g r   )rV   rg   rq  r   r[   __length_hint__ra   )r   vsetiters      r   test_iterationTestBasicOps.test_iteration  sN    AMM![[) txx.002CMBr   c                    [        [        R                  S-   5       Hh  n[        R                  " U R                  U5      n[        R
                  " U5      nU R                  U R                  UU R                  < SU< 35        Mj     g )Nr   r   )r   r   r   r   rV   r   r[   )r   r   r   r   s       r   r   TestBasicOps.test_pickling  s_    622Q67ETXXu-A<<?DTXXt+/88T:< 8r   c                 $   U R                  [        5         [        5       R                  S5        S S S 5        U R                  [        5         [        5       R	                  S5        S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)Nr0  )rT   rU   rV   r   r  r   s    r   test_issue_37219TestBasicOps.test_issue_37219  s[    y)ES! *y)E##C( *) *)))s   A0B0
A>
Br
   N)r   r   r   r   rg  ru  ry  r}  r  rq  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r   r
   r   r   re  re  ?  sv    8	55--4++++,,/'',+,+,C<)r   re  c                       \ rS rSrS rSrg)TestBasicOpsEmptyi  c                     SU l         / U l        [        U R                  5      U l        [        U R                  5      U l        SU l        SU l        g )Nz	empty setr   zset()caserq  rV   r   rx  r.   r   s    r   rN   TestBasicOpsEmpty.setUp  s>    !	$++&$++&	r   r  r   rx  r.   rV   rq  Nr   r   r   r   rN   r   r
   r   r   r  r    s    r   r  c                   &    \ rS rSrS rS rS rSrg)TestBasicOpsSingletoni  c                     SU l         S/U l        [        U R                  5      U l        [        U R                  5      U l        SU l        SU l        g )Nzunit set (number)r   r   z{3}r  r   s    r   rN   TestBasicOpsSingleton.setUp  s@    )	c$++&$++&	r   c                 <    U R                  SU R                  5        g rN  rg   rV   r   s    r   test_inTestBasicOpsSingleton.test_in  s    a"r   c                 <    U R                  SU R                  5        g NrQ   ry  rV   r   s    r   test_not_in!TestBasicOpsSingleton.test_not_in      DHH%r   r  Nr   r   r   r   rN   r  r  r   r
   r   r   r  r    s    #&r   r  c                   &    \ rS rSrS rS rS rSrg)TestBasicOpsTuplei  c                     SU l         S/U l        [        U R                  5      U l        [        U R                  5      U l        SU l        SU l        g )Nzunit set (tuple)r   zeror   z{(0, 'zero')}r  r   s    r   rN   TestBasicOpsTuple.setUp  s@    (	"m$++&$++&%	r   c                 <    U R                  SU R                  5        g )Nr  r  r   s    r   r  TestBasicOpsTuple.test_in  s    k488,r   c                 <    U R                  SU R                  5        g )N	   r  r   s    r   r  TestBasicOpsTuple.test_not_in  r  r   r  Nr  r
   r   r   r  r    s    &-&r   r  c                       \ rS rSrS rSrg)TestBasicOpsTriplei  c                     SU l         SS[        R                  /U l        [	        U R                  5      U l        [	        U R                  5      U l        SU l        S U l        g )Nz
triple setr   r  r   )r  operatorr  rq  rV   r   rx  r.   r   s    r   rN   TestBasicOpsTriple.setUp  sI    "	&(,,/$++&$++&	r   r  Nr  r
   r   r   r  r    s    r   r  c                        \ rS rSrS rS rSrg)TestBasicOpsStringi  c                     SU l         / SQU l        [        U R                  5      U l        [        U R                  5      U l        SU l        g )Nz
string setrS   r   rh   r   r  rq  rV   r   rx  r   s    r   rN   TestBasicOpsString.setUp  s7    "	%$++&$++&r   c                 $    U R                  5         g r   ru  r   s    r   rg  TestBasicOpsString.test_repr      &&(r   r  r   rx  rV   rq  Nr   r   r   r   rN   rg  r   r
   r   r   r  r        )r   r  c                        \ rS rSrS rS rSrg)TestBasicOpsBytesi  c                     SU l         / SQU l        [        U R                  5      U l        [        U R                  5      U l        SU l        g )Nz	bytes set)   a   b   cr   r  r   s    r   rN   TestBasicOpsBytes.setUp  s7    !	($++&$++&r   c                 $    U R                  5         g r   r  r   s    r   rg  TestBasicOpsBytes.test_repr  r  r   r  Nr  r
   r   r   r  r    r  r   r  c                        \ rS rSrS rS rSrg)TestBasicOpsMixedStringBytesi  c                    U R                  [        R                  " 5       5        [        R                  " S[
        5        SU l        / SQU l        [        U R                  5      U l        [        U R                  5      U l	        SU l
        g )Nignorezstring and bytes set)rS   r   r  r  r  )enterContextr   check_warningswarningssimplefilterBytesWarningr  rq  rV   r   rx  r   s    r   rN   "TestBasicOpsMixedStringBytes.setUp  s^    /88:;h5,	,$++&$++&r   c                 $    U R                  5         g r   r  r   s    r   rg  &TestBasicOpsMixedStringBytes.test_repr  r  r   r  Nr  r
   r   r   r  r    s    )r   r  c               #      #    [         e7fr   )rU   r
   r   r   baditerr  
  s
     
Or   c               #      #    Sv   g 7fr  r
   r
   r   r   gooditerr    s
     
Js   c                   &    \ rS rSrS rS rS rSrg)TestExceptionPropagationi  c                 J    U R                  [        [        [        5       5        g r   )rT   rU   rV   r  r   s    r   test_instanceWithException3TestExceptionPropagation.test_instanceWithException  s    )S')4r   c                     [        / SQ5        [        S5        [        SSSS.5        [        [        S5      5        [        S5        [        [        5       5        g )NrU  r   rQ   r   )onetwothreerr   )rV   r   r  r   s    r   test_instancesWithoutException7TestExceptionPropagation.test_instancesWithoutException  s:    GG1Aq)*E!HE
HJr   c                     [        / SQ5      n U H  nUR                  S/5        M     U R                  S5        g ! [         a     g f = f)NrU  r  z0no exception when changing size during iteration)rV   r  r   r$   )r   rJ   r   s      r   test_changingSizeWhileIterating8TestExceptionPropagation.test_changingSizeWhileIterating   sK    L	J! 
 IIHI  		s   < 
A	A	r
   N)r   r   r   r   r  r  r   r   r
   r   r   r  r    s    5Jr   r  c                       \ rS rSrS rSrg)TestSetOfSetsi,  c                 ,   [        S/5      n[        U/5      nUR                  5       nU R                  [	        U5      [         5        UR                  U5        UR                  U5        U R                  U[        5       5        UR                  U5        g r   )rf   rV   r[  r[   rw   r  r  r  )r   innerouterelements       r   test_constructorTestSetOfSets.test_constructor-  sm    1#UG))+g	2		%U&er   r
   N)r   r   r   r   r(  r   r
   r   r   r#  r#  ,  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S rS rS rS rS rSrg)TestBinaryOpsi9  c                 $    [        S5      U l         g NrQ   r     rV   r   s    r   rN   TestBinaryOps.setUp:      y>r   c           	      V    U R                  U R                  [        SSSS.5      5        g )Nr   r      r.  r|  r   s    r   test_eqTestBinaryOps.test_eq=  s!    3!a!}#56r   c                 l    U R                   [        S/5      -  nU R                  U[        S5      5        g NrQ   r.  rW  r  s     r   test_union_subsetTestBinaryOps.test_union_subset@  s*    CH$Y0r   c                 r    U R                   [        / SQ5      -  nU R                  U[        / SQ5      5        g NrQ   r  r/     rW  r  s     r   test_union_superset!TestBinaryOps.test_union_supersetD  s*    C--\!23r   c                 r    U R                   [        / SQ5      -  nU R                  U[        / SQ5      5        g Nr   r  r4  )rQ   r   r  r4  r/  rW  r  s     r   test_union_overlap TestBinaryOps.test_union_overlapH  s)    C	N*_!56r   c                 p    U R                   [        S/5      -  nU R                  U[        / SQ5      5        g Nr>  r=  rW  r  s     r   test_union_non_overlap$TestBinaryOps.test_union_non_overlapL  +    CH$\!23r   c                 j    U R                   [        S5      -  nU R                  U[        S5      5        g NrQ   r  rW  r  s     r   test_intersection_subset&TestBinaryOps.test_intersection_subsetP  s(    CK'V-r   c                 r    U R                   [        / SQ5      -  nU R                  U[        / SQ5      5        g Nr=  r.  rW  r  s     r   test_intersection_superset(TestBinaryOps.test_intersection_supersetT  s)    C--Y0r   c                 p    U R                   [        / SQ5      -  nU R                  U[        S/5      5        g NrC  r  rW  r  s     r   test_intersection_overlap'TestBinaryOps.test_intersection_overlapX  s*    C	N*aS*r   c                 b    U R                   [        S/5      -  nU R                  U[        5        g Nr>  r  r  s     r   test_intersection_non_overlap+TestBinaryOps.test_intersection_non_overlap\  s&    CH$+r   c                 p    U R                   R                  [        S5      5      nU R                  US5        g )NrM  Fr  r  s     r   test_isdisjoint_subset$TestBinaryOps.test_isdisjoint_subset`  s*    $$S[1'r   c                 t    U R                   R                  [        / SQ5      5      nU R                  US5        g )Nr=  Fr  r  s     r   test_isdisjoint_superset&TestBinaryOps.test_isdisjoint_supersetd  s+    $$S%67'r   c                 t    U R                   R                  [        / SQ5      5      nU R                  US5        g )NrC  Fr  r  s     r   test_isdisjoint_overlap%TestBinaryOps.test_isdisjoint_overlaph  s*    $$S^4'r   c                 r    U R                   R                  [        S/5      5      nU R                  US5        g )Nr>  Tr  r  s     r   test_isdisjoint_non_overlap)TestBinaryOps.test_isdisjoint_non_overlapl  s,    $$S!X.&r   c                 l    U R                   [        S5      -  nU R                  U[        S/5      5        g NrM  r/  rW  r  s     r   test_sym_difference_subset(TestBinaryOps.test_sym_difference_subsetp  s*    CK'aS*r   c                 l    U R                   [        S5      -  nU R                  U[        S/5      5        g Nr=  r>  rW  r  s     r   test_sym_difference_superset*TestBinaryOps.test_sym_difference_supersett  s+    C--aS*r   c                 n    U R                   [        S5      -  nU R                  U[        / SQ5      5        g NrC  )rQ   r   r4  r/  rW  r  s     r   test_sym_difference_overlap)TestBinaryOps.test_sym_difference_overlapx  s)    C	N*\!23r   c                 p    U R                   [        S/5      -  nU R                  U[        / SQ5      5        g rG  rW  r  s     r   test_sym_difference_non_overlap-TestBinaryOps.test_sym_difference_non_overlap|  rJ  r   r0  N)r   r   r   r   rN   r5  r9  r?  rD  rH  rN  rR  rV  rZ  r]  r`  rc  rf  rj  rn  rr  ru  r   r
   r   r   r+  r+  9  s\    "71474.1+,((('++44r   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g)TestUpdateOpsi  c                 $    [        S5      U l         g r-  r0  r   s    r   rN   TestUpdateOps.setUp  r2  r   c                     U =R                   [        S/5      -  sl         U R                  U R                   [        S5      5        g r8  rW  r   s    r   r9  TestUpdateOps.test_union_subset  s.    CH3y>2r   c                     U =R                   [        / SQ5      -  sl         U R                  U R                   [        / SQ5      5        g r<  rW  r   s    r   r?  !TestUpdateOps.test_union_superset  s.    C%%3|#45r   c                     U =R                   [        / SQ5      -  sl         U R                  U R                   [        / SQ5      5        g rB  rW  r   s    r   rD   TestUpdateOps.test_union_overlap  s-    C	N"3#78r   c                     U =R                   [        S/5      -  sl         U R                  U R                   [        / SQ5      5        g rG  rW  r   s    r   rH  $TestUpdateOps.test_union_non_overlap  /    CH3|#45r   c                     U R                   R                  [        / SQ5      5        U R                  U R                   [        / SQ5      5        g rB  )rV   r  r[   r   s    r   test_union_method_call$TestUpdateOps.test_union_method_call  s/    I'3#78r   c                     U =R                   [        S5      -  sl         U R                  U R                   [        S5      5        g rL  rW  r   s    r   rN  &TestUpdateOps.test_intersection_subset  s,    CK3v;/r   c                     U =R                   [        / SQ5      -  sl         U R                  U R                   [        / SQ5      5        g rQ  rW  r   s    r   rR  (TestUpdateOps.test_intersection_superset  s-    C%%3y>2r   c                     U =R                   [        / SQ5      -  sl         U R                  U R                   [        S/5      5        g rU  rW  r   s    r   rV  'TestUpdateOps.test_intersection_overlap  s.    C	N"3s8,r   c                     U =R                   [        S/5      -  sl         U R                  U R                   [        5        g rY  r  r   s    r   rZ  +TestUpdateOps.test_intersection_non_overlap  s*    CH9-r   c                     U R                   R                  [        / SQ5      5        U R                  U R                   [        S/5      5        g rU  )rV   r  r[   r   s    r   test_intersection_method_call+TestUpdateOps.test_intersection_method_call  s2    $$S^43s8,r   c                     U =R                   [        S5      -  sl         U R                  U R                   [        S/5      5        g ri  rW  r   s    r   rj  (TestUpdateOps.test_sym_difference_subset  .    CK3s8,r   c                     U =R                   [        S5      -  sl         U R                  U R                   [        S/5      5        g rm  rW  r   s    r   rn  *TestUpdateOps.test_sym_difference_superset  s/    C%%3s8,r   c                     U =R                   [        S5      -  sl         U R                  U R                   [        / SQ5      5        g rq  rW  r   s    r   rr  )TestUpdateOps.test_sym_difference_overlap  s-    C	N"3|#45r   c                     U =R                   [        S/5      -  sl         U R                  U R                   [        / SQ5      5        g rG  rW  r   s    r   ru  -TestUpdateOps.test_sym_difference_non_overlap  r  r   c                     U R                   R                  [        / SQ5      5        U R                  U R                   [        / SQ5      5        g rq  )rV   r,  r[   r   s    r   test_sym_difference_method_call-TestUpdateOps.test_sym_difference_method_call  s1    ,,S^<3|#45r   c                     U =R                   [        S5      -  sl         U R                  U R                   [        S/5      5        g ri  rW  r   s    r   test_difference_subset$TestUpdateOps.test_difference_subset  r  r   c                     U =R                   [        S5      -  sl         U R                  U R                   [        / 5      5        g r<  rW  r   s    r   test_difference_superset&TestUpdateOps.test_difference_superset  s-    C%%3r7+r   c                     U =R                   [        S5      -  sl         U R                  U R                   [        SS/5      5        g NrC  rQ   r/  rW  r   s    r   test_difference_overlap%TestUpdateOps.test_difference_overlap  s0    C	N"31v;/r   c                     U =R                   [        S/5      -  sl         U R                  U R                   [        / SQ5      5        g )Nr>  r.  rW  r   s    r   test_difference_non_overlap)TestUpdateOps.test_difference_non_overlap  s.    CH3y>2r   c                     U R                   R                  [        / SQ5      5        U R                  U R                   [        SS/5      5        g r  )rV   r  r[   r   s    r   test_difference_method_call)TestUpdateOps.test_difference_method_call  s4    ""3y>231v;/r   r0  N)r   r   r   r   rN   r9  r?  rD  rH  r  rN  rR  rV  rZ  r  rj  rn  rr  ru  r  r  r  r  r  r  r   r
   r   r   rx  rx    sk    "3696903-.---666-,030r   rx  c                   h    \ 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)
TestMutatei  c                 J    / SQU l         [        U R                   5      U l        g )Nr  )rq  rV   r   s    r   rN   TestMutate.setUp  s    %t{{#r   c                     U R                   R                  S5        U R                  U R                   [        S5      5        g )Nrh   rr   rV   r  r[   r   s    r   test_add_presentTestMutate.test_add_present  s*    S3u:.r   c                     U R                   R                  S5        U R                  U R                   [        S5      5        g )NrM   rn   r  r   s    r   test_add_absentTestMutate.test_add_absent  s*    S3v;/r   c                     [        5       nSnU R                   H4  nUR                  U5        US-  nU R                  [	        U5      U5        M6     U R                  XR                   5        g )Nr   r   )rV   rq  r  r[   ra   )r   tmpexpected_lenr  s       r   test_add_until_fullTestMutate.test_add_until_full  sY    eAGGAJALSX|4  	hh'r   c                     U R                   R                  S5        U R                  U R                   [        S5      5        g )Nr   ac)rV   r  r[   r   s    r   test_remove_presentTestMutate.test_remove_present  s*    3t9-r   c                 ~     U R                   R                  S5        U R                  S5        g ! [         a     g f = f)NrM   z7Removing missing element should have raised LookupError)rV   r  r   LookupErrorr   s    r   test_remove_absentTestMutate.test_remove_absent  s6    	HHOOC IIOP 		s   ,/ 
<<c                     [        U R                  5      nU R                   HH  nU R                  R                  U5        US-  nU R	                  [        U R                  5      U5        MJ     g r   )ra   rV   rq  r  r[   )r   r  r  s      r   test_remove_until_empty"TestMutate.test_remove_until_empty  sO    488}AHHOOAALS]L9 r   c                     U R                   R                  S5        U R                  U R                   [        S5      5        g )Nrh   r   rV   r  r[   r   s    r   test_discard_presentTestMutate.test_discard_present   s,    3t9-r   c                     U R                   R                  S5        U R                  U R                   [        S5      5        g )NrM   rr   r  r   s    r   test_discard_absentTestMutate.test_discard_absent  s,    3u:.r   c                     U R                   R                  5         U R                  [        U R                   5      S5        g r6   )rV   rl  r[   ra   r   s    r   rm  TestMutate.test_clear  s(    TXX*r   c                 ,   0 nU R                   (       a/  S XR                   R                  5       '   U R                   (       a  M/  U R                  [        U5      [        U R                  5      5        U R                   H  nU R                  X!5        M     g r   )rV   r[  r[   ra   rq  rg   )r   poppedr  s      r   r  TestMutate.test_pop  sb    hh%)F88<<>" hhhVc$++&67AMM!$ r   c                     U R                   R                  S5        U R                  U R                   [        U R                  5      5        g )Nr
   rV   r  r[   rq  r   s    r   test_update_empty_tuple"TestMutate.test_update_empty_tuple  s/    3t{{#34r   c                     U R                   R                  S5        U R                  U R                   [        U R                  5      5        g )NrR   r  r   s    r   test_update_unit_tuple_overlap)TestMutate.test_update_unit_tuple_overlap  s/    3t{{#34r   c                     U R                   R                  S5        U R                  U R                   [        U R                  S/-   5      5        g )N)rS   r   r   r  r   s    r   "test_update_unit_tuple_non_overlap-TestMutate.test_update_unit_tuple_non_overlap  s6    
#3t{{cU':#;<r   )rV   rq  N)r   r   r   r   rN   r  r  r  r  r  r  r  r  rm  r  r  r  r  r   r
   r   r   r  r    sH    $/0(.:./+%55=r   r  c                   6    \ rS rSrSSS.rSSSSS	S
S.rS rSrg)TestSubsetsi"  r   r   )<=>===!=><r  r  )r  r  r  r  r  r  c                 d   U R                   nU R                  nS GH  nX0R                  ;   n[        SU-   S-   [	        5       5      nU R                  XT5        U[        R                  ;   a6  [        U[        R                  U   5      nU" U5      nU R                  XT5        [        R                  U   n[        SU-   S-   [	        5       5      nU R                  XT5        U[        R                  ;   d  M  [        U[        R                  U   5      nU" U5      nU R                  XT5        GM     g )N)r  r  r  r  r  r  r~   r   )
leftrightcasesevallocalsr[   r  case2methodgetattrreverse)r   r~   r   r  r]   rs  methodrcases           r   test_issubsetTestSubsets.test_issubset0  s    IIJJ4Dzz)H#*s*FH5FV.{... K$;$;D$AB  2  ''-E#++VX6FV./// K$;$;E$BC  2% 5r   r
   N)r   r   r   r   r  r  r  r   r
   r   r   r  r  "  s/    #%K G3r   r  c                   8    \ rS rSr\" 5       r\" 5       rSrSrSr	g)TestSubsetEqualEmptyiH  z
both emptyr  r  r  r
   N
r   r   r   r   rV   r  r  r!  r  r   r
   r   r   r  r  H  s    EDEEDEr   r  c                   D    \ rS rSr\" SS/5      r\" SS/5      rSrSrSr	g)TestSubsetEqualNonEmptyiP  r   rQ   z
equal pairr  r
   Nr  r
   r   r   r  r  P  s&    AKDAKEDEr   r  c                   >    \ rS rSr\" 5       r\" SS/5      rSrSrSr	g)TestSubsetEmptyNonEmptyiX  r   rQ   zone empty, one non-emptyr  r  r  r
   Nr  r
   r   r   r  r  X  s     EDAKE&DEr   r  c                   B    \ rS rSr\" S/5      r\" SS/5      rSrSrSr	g)TestSubsetPartiali`  r   rQ   z&one a non-empty proper subset of otherr  r
   Nr  r
   r   r   r  r  `  s$    HDAKE4DEr   r  c                   @    \ rS rSr\" S/5      r\" S/5      rSrSrSr	g)TestSubsetNonOverlapih  r   rQ   zneither empty, neither containsr  r
   Nr  r
   r   r   r   r   h  s"    HDHE-DEr   r   c                   h    \ 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)TestOnlySetsInBinaryOpsip  c                 L   U R                  U R                  U R                  :H  S5        U R                  U R                  U R                  :H  S5        U R                  U R                  U R                  :g  S5        U R                  U R                  U R                  :g  S5        g r   )r[   r&   rV   r   s    r   
test_eq_ne"TestOnlySetsInBinaryOps.test_eq_ner  sv    txx/7TZZ/7txx/6TZZ/6r   c                   ^  T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  [        U 4S j5        g )	Nc                  6   > T R                   T R                  :  $ r   rV   r&   r   s   r   <lambda>:TestOnlySetsInBinaryOps.test_ge_gt_le_lt.<locals>.<lambda>z      TXX

-Br   c                  6   > T R                   T R                  :*  $ r   r  r   s   r   r	  r
  {      TXX-Cr   c                  6   > T R                   T R                  :  $ r   r  r   s   r   r	  r
  |  r  r   c                  6   > T R                   T R                  :  $ r   r  r   s   r   r	  r
  }  r  r   c                  6   > T R                   T R                  :  $ r   r&   rV   r   s   r   r	  r
        TZZ$((-Br   c                  6   > T R                   T R                  :*  $ r   r  r   s   r   r	  r
        TZZ488-Cr   c                  6   > T R                   T R                  :  $ r   r  r   s   r   r	  r
    r  r   c                  6   > T R                   T R                  :  $ r   r  r   s   r   r	  r
    r  r   )rT   rU   r   s   `r   test_ge_gt_le_lt(TestOnlySetsInBinaryOps.test_ge_gt_le_lty  s    )%BC)%CD)%BC)%CD)%BC)%CD)%BC)%CDr   c                      U =R                   U R                  -  sl         U R                  S5        g ! [         a     g f = fNzexpected TypeErrorrV   r&   r   rU   r   s    r   test_update_operator,TestOnlySetsInBinaryOps.test_update_operator  <    	,HH

"H II*+  		   3 
A A c                     U R                   (       a&  U R                  R                  U R                  5        g U R	                  [
        U R                  R                  U R                  5        g r   )otherIsIterablerV   r  r&   rT   rU   r   s    r   r  #TestOnlySetsInBinaryOps.test_update  s=    HHOODJJ'i$**Er   c                 F  ^  T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  (       a&  T R                  R	                  T R
                  5        g T R                  [        T R                  R                  T R
                  5        g )Nc                  6   > T R                   T R                  -  $ r   r  r   s   r   r	  4TestOnlySetsInBinaryOps.test_union.<locals>.<lambda>  r  r   c                  6   > T R                   T R                  -  $ r   r  r   s   r   r	  r%    r  r   )rT   rU   r!  rV   rv   r&   r   s   `r   r   "TestOnlySetsInBinaryOps.test_union  s`    )%BC)%BCHHNN4::&iDr   c                      U =R                   U R                  -  sl         U R                  S5        g ! [         a     g f = fr  r  r   s    r   !test_intersection_update_operator9TestOnlySetsInBinaryOps.test_intersection_update_operator  r  r  c                     U R                   (       a&  U R                  R                  U R                  5        g U R	                  [
        U R                  R                  U R                  5        g r   )r!  rV   r  r&   rT   rU   r   s    r   r  0TestOnlySetsInBinaryOps.test_intersection_update  sE    HH((4i"hh::"jj*r   c                 F  ^  T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  (       a&  T R                  R	                  T R
                  5        g T R                  [        T R                  R                  T R
                  5        g )Nc                  6   > T R                   T R                  -  $ r   r  r   s   r   r	  ;TestOnlySetsInBinaryOps.test_intersection.<locals>.<lambda>  r  r   c                  6   > T R                   T R                  -  $ r   r  r   s   r   r	  r/    r  r   )rT   rU   r!  rV   r   r&   r   s   `r   r   )TestOnlySetsInBinaryOps.test_intersection  sd    )%BC)%BCHH!!$**-i)>)>

Kr   c                      U =R                   U R                  -  sl         U R                  S5        g ! [         a     g f = fr  r  r   s    r   #test_sym_difference_update_operator;TestOnlySetsInBinaryOps.test_sym_difference_update_operator  r  r  c                     U R                   (       a&  U R                  R                  U R                  5        g U R	                  [
        U R                  R                  U R                  5        g r   )r!  rV   r,  r&   rT   rU   r   s    r   test_sym_difference_update2TestOnlySetsInBinaryOps.test_sym_difference_update  sE    HH00<i"hhBB"jj*r   c                 F  ^  T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  (       a&  T R                  R	                  T R
                  5        g T R                  [        T R                  R                  T R
                  5        g )Nc                  6   > T R                   T R                  -  $ r   r  r   s   r   r	  =TestOnlySetsInBinaryOps.test_sym_difference.<locals>.<lambda>  r  r   c                  6   > T R                   T R                  -  $ r   r  r   s   r   r	  r:    r  r   )rT   rU   r!  rV   r   r&   r   s   `r   test_sym_difference+TestOnlySetsInBinaryOps.test_sym_difference  sd    )%BC)%BCHH))$**5i)F)F

Sr   c                      U =R                   U R                  -  sl         U R                  S5        g ! [         a     g f = fr  r  r   s    r   test_difference_update_operator7TestOnlySetsInBinaryOps.test_difference_update_operator  r  r  c                     U R                   (       a&  U R                  R                  U R                  5        g U R	                  [
        U R                  R                  U R                  5        g r   )r!  rV   r  r&   rT   rU   r   s    r   r  .TestOnlySetsInBinaryOps.test_difference_update  sE    HH&&tzz2i"hh88"jj*r   c                 F  ^  T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  (       a&  T R                  R	                  T R
                  5        g T R                  [        T R                  R                  T R
                  5        g )Nc                  6   > T R                   T R                  -
  $ r   r  r   s   r   r	  9TestOnlySetsInBinaryOps.test_difference.<locals>.<lambda>  r  r   c                  6   > T R                   T R                  -
  $ r   r  r   s   r   r	  rE    r  r   )rT   rU   r!  rV   r   r&   r   s   `r   r   'TestOnlySetsInBinaryOps.test_difference  sd    )%BC)%BCHH

+i)<)<djjIr   r
   N)r   r   r   r   r  r  r  r  r   r)  r  r   r3  r6  r<  r?  r  r   r   r
   r   r   r  r  p  sN    7	E,FE,*L,*T,*Jr   r  c                       \ rS rSrS rSrg)TestOnlySetsNumerici  c                 @    [        S5      U l         SU l        SU l        g )NrU     FrV   r&   r!  r   s    r   rN   TestOnlySetsNumeric.setUp  s    ^
$r   r&   r!  rV   Nr  r
   r   r   rI  rI        %r   rI  c                       \ rS rSrS rSrg)TestOnlySetsDicti  c                 F    [        S5      U l         SSS.U l        SU l        g )NrU  rQ   r  )r   r   TrL  r   s    r   rN   TestOnlySetsDict.setUp  s     ^QZ
#r   rN  Nr  r
   r   r   rQ  rQ        $r   rQ  c                       \ rS rSrS rSrg)TestOnlySetsOperatori  c                 \    [        S5      U l         [        R                  U l        SU l        g )NrU  F)rV   r  r  r&   r!  r   s    r   rN   TestOnlySetsOperator.setUp  s     ^\\
$r   rN  Nr  r
   r   r   rV  rV    rO  r   rV  c                       \ rS rSrS rSrg)TestOnlySetsTuplei  c                 @    [        S5      U l         SU l        SU l        g )NrU  r.  TrL  r   s    r   rN   TestOnlySetsTuple.setUp  s    ^
#r   rN  Nr  r
   r   r   rZ  rZ    rT  r   rZ  c                       \ rS rSrS rSrg)TestOnlySetsStringi  c                 @    [        S5      U l         SU l        SU l        g )NrU  rr   TrL  r   s    r   rN   TestOnlySetsString.setUp  s    ^
#r   rN  Nr  r
   r   r   r^  r^    rT  r   r^  c                       \ rS rSrS rSrg)TestOnlySetsGeneratori  c                 P    S n[        S5      U l         U" 5       U l        SU l        g )Nc               3   <   #    [        SSS5       H  n U v   M	     g 7f)Nr   r   rQ   )r   )r   s    r   gen(TestOnlySetsGenerator.setUp.<locals>.gen  s     1b!_ %s   rU  TrL  )r   re  s     r   rN   TestOnlySetsGenerator.setUp  s%    	 ^U
#r   rN  Nr  r
   r   r   rb  rb    s    $r   rb  c                        \ rS rSrS rS rSrg)TestCopyingi  c                 0   U R                   R                  5       n[        U[        S9n[        U R                   [        S9nU R	                  [        U5      [        U5      5        [        [        U5      5       H  nU R                  X$   X4   L 5        M     g Nr  )rV   r   rZ   r.   r[   ra   r   r   r   r   dup_listset_listr   s        r   rq  TestCopying.test_copy  sm    hhmmo#4($((-XH6s8}%AOOHK8;67 &r   c                 :   [         R                  " U R                  5      n[        U[        S9n[        U R                  [        S9nU R                  [        U5      [        U5      5        [        [        U5      5       H  nU R                  X$   X4   5        M     g rk  )r   r   rV   rZ   r.   r[   ra   r   rm  s        r   test_deep_copyTestCopying.test_deep_copy!  so    mmDHH%#4($((-XH6s8}%AX[(+6 &r   r
   N)r   r   r   r   rq  rr  r   r
   r   r   ri  ri    s    87r   ri  c                       \ rS rSrS rSrg)TestCopyingEmptyi,  c                 "    [        5       U l         g r   r0  r   s    r   rN   TestCopyingEmpty.setUp-  s    5r   r0  Nr  r
   r   r   ru  ru  ,  s    r   ru  c                       \ rS rSrS rSrg)TestCopyingSingletoni2  c                 &    [        S/5      U l         g )Nhellor0  r   s    r   rN   TestCopyingSingleton.setUp3  s    y>r   r0  Nr  r
   r   r   ry  ry  2  s    "r   ry  c                       \ rS rSrS rSrg)TestCopyingTriplei8  c                 (    [        / SQ5      U l         g )N)r  r   Nr0  r   s    r   rN   TestCopyingTriple.setUp9  s    ()r   r0  Nr  r
   r   r   r~  r~  8  s    *r   r~  c                       \ rS rSrS rSrg)TestCopyingTuplei>  c                 &    [        S/5      U l         g )Nr   rQ   r0  r   s    r   rN   TestCopyingTuple.setUp?  s    x=r   r0  Nr  r
   r   r   r  r  >  s    !r   r  c                       \ rS rSrS rSrg)TestCopyingNestediD  c                 &    [        S/5      U l         g )N)r  )r   r  r0  r   s    r   rN   TestCopyingNested.setUpE  s    ()*r   r0  Nr  r
   r   r   r  r  D  s    +r   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestIdentitiesiJ  c                 D    [        S5      U l        [        S5      U l        g )Nabracadabraalacazam)rV   rS   r   r   s    r   rN   TestIdentities.setUpK  s    ]#Zr   c                 j   U R                   U R                  p!U R                  X-
  U:  5        U R                  X!-
  U:  5        U R                  X-  U:  5        U R                  X-  U:  5        U R                  X-  U:  5        U R                  X-  U:  5        U R                  X-  X-  :  5        g r   )rS   r   r   r   rS   r   s      r   test_binopsVsSubsets#TestIdentities.test_binopsVsSubsetsO  s    vvtvv1	"	"	"	"	"	"&r   c                     U R                   U R                  p!U R                  X-  X!-  5        U R                  X-  X!-  5        U R                  X-  X!-  5        X:w  a  U R                  X-
  X!-
  5        g g r   )rS   r   r[   r   r  s      r   test_commutativity!TestIdentities.test_commutativityY  sk    vvtvv1ac"ac"ac"6QS) r   c                    U R                   U R                  p!U R                  X-
  X-  -  X!-
  -  X-  5        U R                  X-  X-  -  X-  5        U R                  XU-
  -  X-  5        U R                  X-
  U-  X-  5        U R                  X-
  X-  -  U5        U R                  X!-
  X-  -  U5        U R                  X-
  X!-
  -  X-  5        g r   )rS   r   r[   r  s      r   test_summationsTestIdentities.test_summationsa  s    vvtvv1!#ac*AC0!#ac*aC!#&!#q!#&!#a(!#a(!#ac*r   c                     U R                   U R                  [        5       p2nU R                  X-
  U-  U5        U R                  X!-
  U-  U5        U R                  X-  X-  -  U5        g r   )rS   r   rV   r[   )r   rS   r   r  s       r   test_exclusionTestIdentities.test_exclusionl  s[    VVTVVSUd!#q$'!#q$'!#d+r   rS   r   N)
r   r   r   r   rN   r  r  r  r  r   r
   r   r   r  r  J  s    !'*	+,r   r  c              #   &   #    U  H  nUv   M	     g 7fr   r
   seqnr   s     r   Rr  u  s      s   c                        \ rS rSrS rS rSrg)Giz  c                     Xl         g r   r  r   r  s     r   r:   
G.__init__|  s    	r   c                      U R                   U   $ r   r  r   s     r   __getitem__G.__getitem__~  s    yy|r   r  N)r   r   r   r   r:   r  r   r
   r   r   r  r  z  s    r   r  c                   &    \ rS rSrS rS rS rSrg)Ii  c                     Xl         SU l        g r6   r  r  s     r   r:   
I.__init__      	r   c                     U $ r   r
   r   s    r   __iter__
I.__iter__      r   c                     U R                   [        U R                  5      :  a  [        eU R                  U R                      nU =R                   S-  sl         U$ r   r   ra   r  r   r   r  s     r   __next__
I.__next__  ?    66S^#=%8IIdff!r   r   r  Nr   r   r   r   r:   r  r  r   r
   r   r   r  r    s    r   r  c                        \ rS rSrS rS rSrg)Igi  c                     Xl         SU l        g r6   r  r  s     r   r:   Ig.__init__  r  r   c              #   :   #    U R                    H  nUv   M	     g 7fr   r  )r   vals     r   r  Ig.__iter__  s     99CI s   r  Nr   r   r   r   r:   r  r   r
   r   r   r  r    s    r   r  c                        \ rS rSrS rS rSrg)Xi  c                     Xl         SU l        g r6   r  r  s     r   r:   
X.__init__  r  r   c                     U R                   [        U R                  5      :  a  [        eU R                  U R                      nU =R                   S-  sl         U$ r   r  r  s     r   r  
X.__next__  r  r   r  N)r   r   r   r   r:   r  r   r
   r   r   r  r    s    r   r  c                        \ rS rSrS rS rSrg)Ni  c                     Xl         SU l        g r6   r  r  s     r   r:   
N.__init__  r  r   c                     U $ r   r
   r   s    r   r  
N.__iter__  r  r   r  Nr  r
   r   r   r  r    s    r   r  c                   &    \ rS rSrS rS rS rSrg)Ei  c                     Xl         SU l        g r6   r  r  s     r   r:   
E.__init__  r  r   c                     U $ r   r
   r   s    r   r  
E.__iter__  r  r   c                     SS-    g )Nr   r   r
   r   s    r   r  
E.__next__  s	    	Qr   r  Nr  r
   r   r   r  r    s    r   r  c                   &    \ rS rSrS rS rS rSrg)Si  c                     g r   r
   r  s     r   r:   
S.__init__  s    r   c                     U $ r   r
   r   s    r   r  
S.__iter__  r  r   c                     [         er   )r   r   s    r   r  
S.__next__  s    r   r
   Nr  r
   r   r   r  r    s    r   r  )chainc                 d    [        [        S [        [        [	        U 5      5      5      5      5      $ )Nc                     U $ r   r
   )r~   s    r   r	  L.<locals>.<lambda>  s    ar   )r  r   r  r  r  r  s    r   Lr    s     Z2ag;011r   c                   &    \ rS rSrS rS rS rSrg)TestVariousIteratorArgsi  c                    [         [        4 H  nSS[        S5      S[        SSS5      4 H  n[        [        [
        [        [        [        4 H?  nU R                  [        U" U" U5      5      [        S9[        U" U5      [        S95        MA     U R                  [        U[        U5      5        U R                  [        U[        U5      5        U R                  [         U[#        U5      5        M     M     g )	N123r   r	  dog333333?    r4  rl  )rV   rf   r   r  r  r  r  r  r  r[   rZ   r.   rT   rU   r  r  ZeroDivisionErrorr  )r   consrJ   gs       r   r(  (TestVariousIteratorArgs.test_constructor  s    )$DRtk5d1;MNQAq!,A$$VD1JD%A6!A$TXCYZ -!!)TAaD9!!)TAaD9!!"3TAaDA O %r   c                    [        S5      nSS[        S5      S[        SSS5      S	4 GH.  nUR                  UR                  UR                  UR
                  UR                  4 H  n[        [        [        [        [        4 Hk  nU" U5      nU" U" U5      5      n[        U[        5      (       a  U R                  Xe5        MA  U R                  [        U[         S
9[        U[         S
95        Mm     U R#                  [$        U['        U5      5        U R#                  [$        U[)        U5      5        U R#                  [*        U[-        U5      5        M     GM1     g )Nnovemberr  r   r	  r  r  r  r4  decemberrl  )rV   r   rv   r   r   r   r   r  r  r  r  r  
isinstanceboolr[   rZ   r.   rT   rU   r  r  r  r  )r   rJ   r   methr  r]   r\   s          r   test_inline_methods+TestVariousIteratorArgs.test_inline_methods  s	   
OBd[%T!:LjYD!..!,,@V@VXYXdXdeQAq)A#DzH!!D']F!(D11((:((D)A6(X\C]^ * !!)T1Q48!!)T1Q48!!"3T1Q4@ f Zr   c                    SS[        S5      S[        SSS5      S4 GHK  nS	 GH@  n[        [        [        [        [
        [        4 H  n[        S
5      nUR                  5       n[        XB5      " [        U" U5      5      5        [        XR5      " U" U5      5        U R                  [        U[        S9[        U[        S95        M     U R                  [        [        [        S
5      U5      [!        U5      5        U R                  [        [        [        S
5      U5      [#        U5      5        U R                  [$        [        [        S
5      U5      ['        U5      5        GMC     GMN     g )Nr  r   r	  r  r  r  r4  r  )r  r  r  r,  januaryrl  )r   r  r  r  r  r  r  rV   r   r  rz   r[   rZ   r.   rT   rU   r  r  r  r  )r   r   methnamer  rJ   r   s         r   test_inplace_methods,TestVariousIteratorArgs.test_inplace_methods  s   Bd[%T!:LjYDQQAq!,AIAAA(ag7A(41$$VA4%8&:MN - !!)WS^X-NPQRVPWX!!)WS^X-NPQRVPWX!!"3WS^X5VXYZ^X_`Q Zr   r
   N)r   r   r   r   r(  r  r  r   r
   r   r   r  r    s    BAar   r  c                        \ rS rSrS rS rSrg)bad_eqi  c                 R    [         (       a  [        R                  5         [        eXL $ r   )be_badset2rl  r  r%   s     r   r'   bad_eq.__eq__  s    6JJL##}r   c                     gr6   r
   r   s    r   r    bad_eq.__hash__  r"   r   r
   Nr   r   r   r   r'   r    r   r
   r   r   r  r    s    
r   r  c                        \ rS rSrS rS rSrg)bad_dict_cleari  c                 F    [         (       a  [        R                  5         XL $ r   )r  dict2rl  r%   s     r   r'   bad_dict_clear.__eq__  s    6KKM}r   c                     gr6   r
   r   s    r   r    bad_dict_clear.__hash__  r"   r   r
   Nr  r
   r   r   r  r    s    r   r  c                   &    \ rS rSrS rS rS rSrg)TestWeirdBugsi  c                    Sq [        5       1n[        S5       Vs1 s H  n[        5       iM     snqSq U R	                  [
        UR                  [        5        Sq [        5       1n[        5       S 0qSq UR                  [        5        g s  snf )NFK   T)
r  r  r   r  rT   r  r  r  r
  r,  )r   set1r   s      r   test_8420_set_merge!TestWeirdBugs.test_8420_set_merge  s}     z"'),)Q),+T[[$? !!4(((/ -s   B
c                 (   [        [        S5      5      nUR                  5         UR                  [        S5      5        [	        U5      nUR                  5         [        [        S5      5      nUR                  [        S5      5        [        U5        g )Nr  )rV   r   rl  r  r   rz   )r   rJ   sirS   s       r   test_iter_and_mutate"TestWeirdBugs.test_iter_and_mutate  s_    c
O			s!W		s	sRr   c                    ^  " U4S jS5      n[        5       m[        S5       Vs1 s H	  o!" 5       iM     snmS1nUR                  T5        g s  snf )Nc                   (   > \ rS rSrS rU 4S jrSrg).TestWeirdBugs.test_merge_and_mutate.<locals>.Xi  c                     [        S5      $ r6   )rh  r   s    r   r    7TestWeirdBugs.test_merge_and_mutate.<locals>.X.__hash__  s    Awr   c                 &   > TR                  5         g)NF)rl  )r   or&   s     r   r'   5TestWeirdBugs.test_merge_and_mutate.<locals>.X.__eq__  s    r   r
   Nr)   )r&   s   r   r  r    s     r   r  r   r   )rV   r   r  )r   r  r   rJ   r&   s       @r   test_merge_and_mutate#TestWeirdBugs.test_merge_and_mutate  sG    	 	 #Bi(ii(C	 )s   Ar
   N)r   r   r   r   r  r  r!  r   r
   r   r   r  r    s    0	r   r  c                   (    \ rS rSrSrSrS rS rSrg)TestOperationsMutatingi%  Nc                    ^^^^  " UUU4S jS5      mSmU R                  U4S j[        [        S5      5       5       5      mU R                  U4S j[        [        S5      5       5       5      mSmTT4$ )Nc                   ,   > \ rS rSrU UU4S jrS rSrg)<TestOperationsMutating.make_sets_of_bad_objects.<locals>.Badi,  c                    > T(       d  g[        S5      S:X  a  TR                  5         [        S5      S:X  a  TR                  5         [        [        S5      5      $ )NF   r   rQ   )r   rl  r  )r   r&   enabledr  r  s     r   r'   CTestOperationsMutating.make_sets_of_bad_objects.<locals>.Bad.__eq__-  sB     R=A%JJLR=A%JJLIaL))r   c                     [        S5      $ r  )r   r   s    r   r    ETestOperationsMutating.make_sets_of_bad_objects.<locals>.Bad.__hash__5  s     |#r   r
   Nr  )r*  r  r  s   r   Badr'  ,  s    *$r   r.  Fc              3   2   >#    U  H  nT" 5       v   M     g 7fr   r
   r  _r.  s     r   r  BTestOperationsMutating.make_sets_of_bad_objects.<locals>.<genexpr>9        E0D10Dr  2   c              3   2   >#    U  H  nT" 5       v   M     g 7fr   r
   r0  s     r   r  r2  :  r3  r  T)constructor1r   r   constructor2)r   r.  r*  r  r  s    @@@@r   make_sets_of_bad_objects/TestOperationsMutating.make_sets_of_bad_objects+  sa    
	$ 
	$    Eim0D EE   Eim0D EETzr   c                     [        S5       H  nU R                  5       u  p4 U" X45        M      g ! [         a&  nU R                  S[	        U5      5         S nAMN  S nAff = f)Nr  zchanged size during iteration)r   r8  r$   rg   ry   )r   functionr1  r  r  r  s         r   check_set_op_does_not_crash2TestOperationsMutating.check_set_op_does_not_crash?  sX    sA668JDG$    G=s1vFFGs   /
AAAr
   )	r   r   r   r   r6  r7  r8  r<  r   r
   r   r   r$  r$  %  s     LL(Gr   r$  c                   n    \ 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)TestBinaryOpsMutatingiI  c                 (    U R                  S 5        g )Nc                 
    X:H  $ r   r
   r  s     r   r	  =TestBinaryOpsMutating.test_eq_with_mutation.<locals>.<lambda>L      afr   r<  r   s    r   test_eq_with_mutation+TestBinaryOpsMutating.test_eq_with_mutationK      (()<=r   c                 (    U R                  S 5        g )Nc                 
    X:g  $ r   r
   r  s     r   r	  =TestBinaryOpsMutating.test_ne_with_mutation.<locals>.<lambda>O  rC  r   rD  r   s    r   test_ne_with_mutation+TestBinaryOpsMutating.test_ne_with_mutationN  rG  r   c                 (    U R                  S 5        g )Nc                 
    X:  $ r   r
   r  s     r   r	  =TestBinaryOpsMutating.test_lt_with_mutation.<locals>.<lambda>R      aer   rD  r   s    r   test_lt_with_mutation+TestBinaryOpsMutating.test_lt_with_mutationQ      (();<r   c                 (    U R                  S 5        g )Nc                 
    X:*  $ r   r
   r  s     r   r	  =TestBinaryOpsMutating.test_le_with_mutation.<locals>.<lambda>U  rC  r   rD  r   s    r   test_le_with_mutation+TestBinaryOpsMutating.test_le_with_mutationT  rG  r   c                 (    U R                  S 5        g )Nc                 
    X:  $ r   r
   r  s     r   r	  =TestBinaryOpsMutating.test_gt_with_mutation.<locals>.<lambda>X  rP  r   rD  r   s    r   test_gt_with_mutation+TestBinaryOpsMutating.test_gt_with_mutationW  rS  r   c                 (    U R                  S 5        g )Nc                 
    X:  $ r   r
   r  s     r   r	  =TestBinaryOpsMutating.test_ge_with_mutation.<locals>.<lambda>[  rC  r   rD  r   s    r   test_ge_with_mutation+TestBinaryOpsMutating.test_ge_with_mutationZ  rG  r   c                 (    U R                  S 5        g )Nc                 
    X-  $ r   r
   r  s     r   r	  >TestBinaryOpsMutating.test_and_with_mutation.<locals>.<lambda>^  rP  r   rD  r   s    r   test_and_with_mutation,TestBinaryOpsMutating.test_and_with_mutation]  rS  r   c                 (    U R                  S 5        g )Nc                 
    X-  $ r   r
   r  s     r   r	  =TestBinaryOpsMutating.test_or_with_mutation.<locals>.<lambda>a  rP  r   rD  r   s    r   test_or_with_mutation+TestBinaryOpsMutating.test_or_with_mutation`  rS  r   c                 (    U R                  S 5        g )Nc                 
    X-
  $ r   r
   r  s     r   r	  >TestBinaryOpsMutating.test_sub_with_mutation.<locals>.<lambda>d  rP  r   rD  r   s    r   test_sub_with_mutation,TestBinaryOpsMutating.test_sub_with_mutationc  rS  r   c                 (    U R                  S 5        g )Nc                 
    X-  $ r   r
   r  s     r   r	  >TestBinaryOpsMutating.test_xor_with_mutation.<locals>.<lambda>g  rP  r   rD  r   s    r   test_xor_with_mutation,TestBinaryOpsMutating.test_xor_with_mutationf  rS  r   c                 ,    S nU R                  U5        g )Nc                     X-  n g r   r
   r  s     r   r   8TestBinaryOpsMutating.test_iadd_with_mutation.<locals>.fj  	    FAr   rD  r!  s     r   test_iadd_with_mutation-TestBinaryOpsMutating.test_iadd_with_mutationi      	((+r   c                 ,    S nU R                  U5        g )Nc                     X-  n g r   r
   r  s     r   r   7TestBinaryOpsMutating.test_ior_with_mutation.<locals>.fo  rz  r   rD  r!  s     r   test_ior_with_mutation,TestBinaryOpsMutating.test_ior_with_mutationn  r}  r   c                 ,    S nU R                  U5        g )Nc                     X-  n g r   r
   r  s     r   r   8TestBinaryOpsMutating.test_isub_with_mutation.<locals>.ft  rz  r   rD  r!  s     r   test_isub_with_mutation-TestBinaryOpsMutating.test_isub_with_mutations  r}  r   c                 ,    S nU R                  U5        g )Nc                     X-  n g r   r
   r  s     r   r   8TestBinaryOpsMutating.test_ixor_with_mutation.<locals>.fy  rz  r   rD  r!  s     r   test_ixor_with_mutation-TestBinaryOpsMutating.test_ixor_with_mutationx  r}  r   c                 |    S nS nS nU R                  U5        U R                  U5        U R                  U5        g )Nc                 (    U  H  nM     U H  nM     g r   r
   rS   r   r~   r   s       r   f1>TestBinaryOpsMutating.test_iteration_with_mutation.<locals>.f1~        r   c                 (    U H  nM     U  H  nM     g r   r
   )rS   r   r   r~   s       r   f2>TestBinaryOpsMutating.test_iteration_with_mutation.<locals>.f2  r  r   c                 ,    [        X5       H  u  p#M     g r   )zipr  s       r   f3>TestBinaryOpsMutating.test_iteration_with_mutation.<locals>.f3  s    A	 "r   rD  )r   r  r  r  s       r   test_iteration_with_mutation2TestBinaryOpsMutating.test_iteration_with_mutation}  s=    	
	
	 	((,((,((,r   r
   N)r   r   r   r   rE  rK  rQ  rW  r\  ra  rf  rk  rp  ru  r{  r  r  r  r  r   r
   r   r   r?  r?  I  sM    >>=>=>====,
,
,
,
-r   r?  c                       \ rS rSr\r\rSrg)TestBinaryOpsMutating_Set_Seti  r
   Nr   r   r   r   rV   r6  r7  r   r
   r   r   r  r        LLr   r  c                       \ rS rSr\r\rSrg)'TestBinaryOpsMutating_Subclass_Subclassi  r
   Nr   r   r   r   r  r6  r7  r   r
   r   r   r  r        LLr   r  c                       \ rS rSr\r\rSrg)"TestBinaryOpsMutating_Set_Subclassi  r
   N	r   r   r   r   rV   r6  r  r7  r   r
   r   r   r  r        LLr   r  c                       \ rS rSr\r\rSrg)"TestBinaryOpsMutating_Subclass_Seti  r
   N	r   r   r   r   r  r6  rV   r7  r   r
   r   r   r  r        LLr   r  c                   V    \ 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)TestMethodsMutatingi  c                 B    U R                  [        R                  5        g r   )r<  rV   r   r   s    r   test_issubset_with_mutation/TestMethodsMutating.test_issubset_with_mutation  s    ((6r   c                 B    U R                  [        R                  5        g r   )r<  rV   r   r   s    r   test_issuperset_with_mutation1TestMethodsMutating.test_issuperset_with_mutation      ((8r   c                 B    U R                  [        R                  5        g r   )r<  rV   r   r   s    r   test_intersection_with_mutation3TestMethodsMutating.test_intersection_with_mutation  s    (()9)9:r   c                 B    U R                  [        R                  5        g r   )r<  rV   rv   r   s    r   test_union_with_mutation,TestMethodsMutating.test_union_with_mutation  s    ((3r   c                 B    U R                  [        R                  5        g r   )r<  rV   r   r   s    r   test_difference_with_mutation1TestMethodsMutating.test_difference_with_mutation  r  r   c                 B    U R                  [        R                  5        g r   )r<  rV   r   r   s    r   'test_symmetric_difference_with_mutation;TestMethodsMutating.test_symmetric_difference_with_mutation  s    (()A)ABr   c                 B    U R                  [        R                  5        g r   )r<  rV   r   r   s    r   test_isdisjoint_with_mutation1TestMethodsMutating.test_isdisjoint_with_mutation  r  r   c                 B    U R                  [        R                  5        g r   )r<  rV   r  r   s    r   $test_difference_update_with_mutation8TestMethodsMutating.test_difference_update_with_mutation  s    (()>)>?r   c                 B    U R                  [        R                  5        g r   )r<  rV   r  r   s    r   &test_intersection_update_with_mutation:TestMethodsMutating.test_intersection_update_with_mutation  s    (()@)@Ar   c                 B    U R                  [        R                  5        g r   )r<  rV   r,  r   s    r   .test_symmetric_difference_update_with_mutationBTestMethodsMutating.test_symmetric_difference_update_with_mutation  s    (()H)HIr   c                 B    U R                  [        R                  5        g r   )r<  rV   r  r   s    r   test_update_with_mutation-TestMethodsMutating.test_update_with_mutation  s    ((4r   r
   N)r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r   r
   r   r   r  r    s=    79;49C9@BJ5r   r  c                       \ rS rSr\r\rSrg)TestMethodsMutating_Set_Seti  r
   Nr  r
   r   r   r  r    r  r   r  c                       \ rS rSr\r\rSrg)%TestMethodsMutating_Subclass_Subclassi  r
   Nr  r
   r   r   r  r    r  r   r  c                       \ rS rSr\r\rSrg) TestMethodsMutating_Set_Subclassi  r
   Nr  r
   r   r   r  r    r  r   r  c                       \ rS rSr\r\rSrg) TestMethodsMutating_Subclass_Seti  r
   Nr  r
   r   r   r  r    r  r   r  c                   0    \ rS rSr\r\R                  rSr	g)TestMethodsMutating_Set_Dicti  r
   N)
r   r   r   r   rV   r6  rK   rL   r7  r   r
   r   r   r  r    s    L==Lr   r  c                       \ rS rSr\r\rSrg)TestMethodsMutating_Set_Listi  r
   N)	r   r   r   r   rV   r6  rz   r7  r   r
   r   r   r  r    s    LLr   r  c              #      #    [        U 5      n  [        [        U 5      /5      n[        U 5       H  nUv   X!-  v   M     g ! [         a    [        5       v    g f = f7fr   )r   rf   r   r.  r   )Ur~   r  s      r   r.  r.    sU     QAtAwi !AG%K   ks(   A1A  AAAAAc                    [        U 5       Vs/ s H  n[        U/5      PM     nn[        [        [        U 5      5       VVs/ s H#  nU[        U Vs/ s H  o1U-  PM	     sn5      4PM%     snn5      $ s  snf s  snf s  snnf r   )r   rf   rK   r.  )r3  r~   
singletonsrJ   s       r   cuber    sy    */(3(Q)QC.(J3"58,.,Q YZ8Z!Z89:,. / / 48 .s   A4A>
A9 A>
9A>
c           	         0 nU  Hr  nX    Hg  nX    Vs/ s H  oDU:w  d  M
  [        X$/5      PM     nnX    Vs/ s H  oDU:w  d  M
  [        X4/5      PM     nn[        XV-   5      U[        X#/5      '   Mi     Mt     U$ s  snf s  snf r   )rf   )r  r  r~   r   r   nxnys          r   	linegraphr    s     	AA,-D;DqF")QE"DB;,-D;DqF")QE"DB;"+BE"2Ai  
 H <;s   	A=A=	BBc                    [        5       nU R                  5        H  u  p#U H  nX    H  nX%:X  a  M
  X U   ;   a  UR                  [        X$U/5      5        M0  X    Hn  nXd:X  a  M
  X U   ;   a  UR                  [        X$XV/5      5        M0  X    H6  nXu:X  d  Xt:X  a  M  X U   ;   d  M  UR                  [        X$XVU/5      5        M8     Mp     M     M     M     U$ r   )rV   itemsr  rf   )r  r   r~  edgesr  v3v4v5s           r   facesr    s     	AWWY	Be82;EE)RRL12e8$2;EE)RR,<"=>&'e#%8rx$,#%2;$%EE)RRR4H*I$J	 ', $   & Hr   c                        \ rS rSrS rS rSrg)
TestGraphsi  c                    [        S5      n[        U5      nU R                  [        U5      S5        UR	                  5        H  nU R                  [        U5      S5        M      [        S UR	                  5        5       5      nU R                  X$5        [        U5      nU R                  [        U5      S5        U H  nU R                  [        U5      S5        M      g )Nr   r>  c              3   6   #    U  H  o  H  o"v   M     M     g 7fr   r
   )r  r  r  s      r   r  'TestGraphs.test_cube.<locals>.<genexpr>   s     Aze5a5z   r/  r  )r  rV   r[   ra   rq  r  )r   r  	vertices1edge	vertices2	cubefacesfaces          r   	test_cubeTestGraphs.test_cube  s    GF	Y+HHJDSY* AqxxzAA	.!H	Y+DSY* r   c                    [        S5      n[        U5      nU R                  [        U5      S5        [	        U5      nUR                  5        H  nU R                  [        U5      S5        M      [	        S UR                  5        5       5      nU R                  X55        [        U5      n[        R                  " [        5      nU H  nU[        U5      ==   S-  ss'   M     U R                  US   S5        U R                  US   S5        U H:  n	U	n
U R                  [        U
5      S5        U
 H  nU R                  X5        M     M<     g )	Nr      r  c              3   6   #    U  H  o  H  o"v   M     M     g 7fr   r
   )r  r  r  s      r   r  0TestGraphs.test_cuboctahedron.<locals>.<genexpr>5  s     W.DUQVDQVD.Dr  r   r>  r/  rQ   )r  r  r[   ra   rV   rq  r  r   defaultdictr=   rg   )r   r  cuboctahedronverticesr  othervertices	cubofaces	facesizesr  vertexr  cubeverts               r   test_cuboctahedronTestGraphs.test_cuboctahedron(  s    G!!]+R0}%"))+ESZ+ ,Wm.B.B.DWW1-(	++C0	Dc$i A%  1q)1q)#FDSY* h* ! $r   r
   N)r   r   r   r   r  r  r   r
   r   r   r  r    s    ++r   r  __main__)lunittesttestr   test.supportr   r>  r<  r  r   r   randomr   r   r
  r   collections.abcr,  	Exceptionr   r   r   r+   r=   r3   r@   TestCaserI  rV   r  r  r  rf   r;  r=  rX  r_  ra  rc  r  re  r  r  r  r  r  r  r  r  r  r  r#  r+  rx  r  r  r  r  r  r  r   r  rI  rQ  rV  rZ  r^  rb  ri  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  r  r  r  r  r  r  r  r  r.  r  r  r  r  r   mainr
   r   r   <module>r     s^     ( 	     %    	y 	    
"c "{E {Ez	V)lH-- V)r	# 	!0g !0HG+L("3"3 G+R		 	6;M 6;r'3 '/x00 /
' ')%= )
 E	f) f)Th&7&7 &L(*;*; &"&h&7&7 &"x'8'8 	)x'8'8 	)	)h&7&7 	))<1B1B )Jx00 J6	H%% 	E4H%% E4RR0H%% R0lF="" F=T#3 #3L;(9(9 k8+<+< k8+<+< X%6%6 ;(9(9 pJ pJh%183D3D %$.0A0A $%2H4E4E %$/1B1B $$0(2C2C $$3X5F5F $7 7*{H$5$5 ";(9(9 "*X%6%6 *!{H$5$5 !+X%6%6 +',X&& ',V
   	 	    2'ah// 'aR  &H%% &R!G !GHD-2 D-N$98;L;L .CXEVEV )>@Q@Q )>@Q@Q 
!50 !5H"5x7H7H ,?ARAR ':H<M<M ':H<M<M !#68I8I !#68I8I 	/
4,+"" ,+b zMMO r   