
    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Srg)ReprWrapper   z*Used to test self-referential repr() callsc                 ,    [        U R                  5      $ r   )reprvaluer   s    r   __repr__ReprWrapper.__repr__   s    DJJr   r
   N)r   r   r   r   __doc__r0   r   r
   r   r   r+   r+      s
    0 r   r+   c                   $    \ rS rSrSrS rS rSrg)HashCountingInt!   zBint-like object that counts the number of times __hash__ is calledc                     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   )r9   intr    r   s    r   r    HashCountingInt.__hash__%   s    1||D!!r   r8   N)r   r   r   r   r2   r;   r    r   r
   r   r   r4   r4   !   s    H"r   r4   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   rG   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	TypeErrorrJ   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   )	sortedrK   rN   assertEqualrU   r   rJ   r   rV   )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\   lenrK   rN   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   )
rI   r\   rK   rN   rU   rV   __contains__rJ   	frozensetassertIn)r   crK   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   rR   )rK   unionrH   rI   r\   rN   rJ   rG   typebasetyperU   r   r   rV   rW   rg   rL   rM   strlisttuple)r   uri   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)rK   rw   rH   r\   rW   rg   failrV   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 )Nrm   rn   ccrp    rr   bcrt   cbcfbagb)rK   intersectionrH   rI   r\   rN   rJ   rG   rx   ry   rU   r   r   rW   rg   rL   rM   rz   r{   r|   idassertNotEqual)r   r   ri   r~   rK   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      (       + $ )z&Pure python equivalent of isdisjoint())rW   r   )s1s2s     r   f'TestJointOps.test_isdisjoint.<locals>.f{   s    2w++B///r   )
r   rT   abrs   ababacrn   r   rp   rr   rt   TF)rJ   rW   rg   rL   rM   rz   r{   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)rK   r   rH   r\   rW   rg   r   rV   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 )Nrm   rn   r   rp   rs   rr   rT   rt   r   ri   )rK   
differencerH   rI   r\   rN   rJ   rG   rx   ry   rU   r   r   rV   rW   rg   rL   rM   rz   r{   r|   r   r   ri   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)rK   r   rH   r\   rW   rg   r   rV   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 )
Nrm   rn   abdrp   rq   rr   rT   rt   ru   )rK   symmetric_differencerH   rI   r\   rN   rJ   rG   rx   ry   rU   r   r   rV   rW   rg   rL   rM   rz   r{   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)rK   r   rH   r\   rW   rg   r   rV   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\   rK   rW   rG   rg   r   rH   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   )maprg   rJ   r\   rb   )r   trK   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defrT   rs   cbs)r   rJ   r   assertFalserW   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_PROTOCOLrx   rK   rW   rg   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   iterrK   rJ   r   r   assertIsInstancecollectionsrs   Iteratorr\   nextStopIteration)r   protoitorgdatarN   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   )rJ   copydeepcopyr   r   r\   r/   )r   r   rK   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     )[[     )rW   r   cyclesub)r   rK   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  )rJ   rW   addrh   removediscard)r   r  rK   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  )	rJ   r   rU   r$   rf   r   r  r  r  r   rK   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+   rJ   r/   rW   r\   r.   	partition)r   wrK   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   r8   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   r8   r'  s     r   r  r(  I  r)  r*  c              3   8   #    U  H  oR                   v   M     g 7fr   r8   r'  s     r   r  r(  K  r)  r*  symmetric_difference_updatec              3   8   #    U  H  oR                   v   M     g 7fr   r8   r'  s     r   r  r(  N  r)  r*  c              3   8   #    U  H  oR                   v   M     g 7fr   r8   r'  s     r   r  r(  P  r)  r*  c              3   8   #    U  H  oR                   v   M     g 7fr   r8   r'  s     r   r  r(  R  r)  r*  {   c              3   8   #    U  H  oR                   v   M     g 7fr   r8   r'  s     r   r  r(  T  r)  r*  )rL   rM   r   r4   r   r\   sumrJ   r   r   r-  rW   rg   )r   nrN   rK   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refrW   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   rJ   r   s    r   test_free_after_iterating&TestJointOps.test_free_after_iteratingc  s    **4t||Dr   )rN   rI   rH   rK   rG   N) r   r   r   r   rO   rX   r_   rc   rj   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r#  r7  rC  rG  r   r
   r   r   rA   rA   )   s    %:935O&	B.(G	BY 	B`	B4$
5 'M*2"#	@F4&
BEr   rA   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 )NrR   r   )rJ   r;   rG   r\   rW   rH   rU   rV   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   rJ   r   r   r   r   rK   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   rR   r      r   rR   r   rW   r\   rQ  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\   rb   poprx   r>   )r   rK   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)rA  eventss    r   record9TestSet.test_set_literal_evaluation_order.<locals>.record  s    MM#r   r   rR   r   rV  )r\   )r   rd  rK   rc  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   )rU   rV   hashrK   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 r7   )rK   clearr\   rW   rb   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   )rK   r   r\   r   r   rx   ry   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)rK   r  rh   r   r\   rU   rV   rq  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 NrT   ru  )
rK   r  assertNotInrU   KeyErrorrV   rJ   rg   rG   rh   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)ru  )r   r   )rK   r  r   r{  r:   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})rJ   rK   r  r   r{  r   r:   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 ry  )	rK   r  rz  rU   rV   rJ   rg   rG   rh   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   rb   rK   r\  rz  rU   r{  )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))rn   ro   rp   rq   )rr   rs   rt   ru   rm   )rn   rp   rr   rt   abcdaahi)rK   updaterH   r\   rG   rh   rU   r   r   rV   rW   rg   rL   rM   rz   r{   r|   rJ   r   retvalri   r   r   r~   rK   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   )rK   rW   rH   rG   rh   r   ri   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))rn   ri   )rp   r   )rr   r   )rt   r   rm   cbc)rK   intersection_updaterH   r\   rG   rh   rz  rU   r   r   rV   rW   rg   rL   rM   rz   r{   r|   rJ   )	r   r  ri   r   r   r~   rK   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   rK   rW   rH   rG   rh   rz  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))rn   r   )rp   rs   rr   rT   )rt   rs   rm   
abcdefghihabacdefghihrn   efghih)rK   difference_updaterH   r\   rG   rh   rz  rU   r   r   rV   r-  rW   rg   rL   rM   rz   r{   r|   rJ   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))rn   r   r  r  r  rm   )rK   r-  rH   r\   rG   rh   rz  rU   r   r   rV   rW   rg   rL   rM   rz   r{   r|   rJ   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   )rK   r   r\   rJ   )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)	rJ   r=  proxyr\   rz   r   
gc_collectrU   ReferenceError)r   rK   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  rW  )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   rW   rJ   ry   rL  rR  rY  r^  rf  rj  rn  rr  rv  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r
   r   r   rJ  rJ  f  s    GH4*

2,3)
35	L			+0>&%
@*,<:,, ,
,2")r   rJ  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   rR   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   )rW   assertIsrx   r\   rU   rV   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  rJ   rW   ry   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   )rJ   rG   r;   rH   r\   rW   r  s     r   rL  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 rO  )rJ   r   r\   r   rQ  s      r   rR  '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\   ri  rJ   r   r   rW   r   r  rb   )r   r4  r   seqresultss        r   rj  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   )rK   r   r\   r   rq  s     r   rr  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*   )r{   r   rJ   reversedr\   r   r   )r   r  key1key2rN   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)rJ   r\   ri  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   rR   c                     [        5       /n[        U S-
  5       H  n[        U5      nUR                  U5        M!     US U  $ r   )rg   r   rb  )r4  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   rb   r   rg   	itertoolscombinations)rK   r   s     r   powerset7TestFrozenSet.test_hash_effectiveness.<locals>.powerset  s9     3q6!8_y)*@*@*FGGG %Gs   AAA
A   r  )	rW   r  r   ri  rg   r\   rb   r   assertGreater)r   r4  
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   rg   rJ   ry   rL  rR  rj  rr  r  r#  r9  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  rA    r  r   r  r   rR   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  rC    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   rG    r  r   r   )rg   r  rx   r\   rW   rU   rV   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 rO  rP  rQ  s      r   rR  /TestFrozenSetSubclass.test_constructor_identity  rT  r   c                     U R                   R                  5       nU R                  [        U R                   5      [        U5      5        g r   )rK   r   r   r   rq  s     r   rr  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   )rJ   r\   rQ  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   )rJ   rg   r   r\   rb   rW   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<  rJ   rg   ry   r  rR  rr  rP  rV  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   rY  rY  +      &Ir   rY  c                   H    \ rS rSr\r\R                  r\R                  rSr	g)TestSetSubclassWithSlotsi.  r
   N)
r   r   r   r   rY  rJ   rA   rO   r   r   r
   r   r   r`  r`  .  s    "GE ..Mr   r`  c                       \ rS rSrSrSrg)FrozenSetSubclassWithSlotsi3  rZ  r
   Nr\  r
   r   r   rb  rb  3  r^  r   rb  c                       \ rS rSr\rSrg)TestFrozenSetSubclassWithSlotsi6  r
   N)r   r   r   r   rb  rJ   r   r
   r   r   rd  rd  6  s    (Gr   rd  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\   rW   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.   rW   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\   rb   rW   lengthr   s    r   test_lengthTestBasicOps.test_lengthP  s    TXX4r   c                 P    U R                  U R                  U R                  5        g r   r\   rW   r   s    r   test_self_equalityTestBasicOps.test_self_equalityS      488,r   c                 P    U R                  U R                  U R                  5        g r   )r\   rW   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\   rW   r   r   r   s    r   rr  TestBasicOps.test_copyY  s     $((3r   c                 l    U R                   U R                   -  nU R                  XR                  5        g r   rW   r\   r   r   rt  s     r   test_self_unionTestBasicOps.test_self_union\  &    DHH$*r   c                 `    U R                   [        -  nU R                  XR                  5        g r   rW   	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  rW   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   rW   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  rW   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   rW   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)rW   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   rW   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   rW   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   )rW   rh   rr  r   r\   __length_hint__rb   )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   rW   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)Nr1  )rU   rV   rW   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   rh  rv  rz  r~  r  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r   r
   r   r   rf  rf  ?  sv    8	55--4++++,,/'',+,+,C<)r   rf  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()caserr  rW   r   ry  r.   r   s    r   rO   TestBasicOpsEmpty.setUp  s>    !	$++&$++&	r   r  r   ry  r.   rW   rr  Nr   r   r   r   rO   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   rO   TestBasicOpsSingleton.setUp  s@    )	c$++&$++&	r   c                 <    U R                  SU R                  5        g rO  rh   rW   r   s    r   test_inTestBasicOpsSingleton.test_in  s    a"r   c                 <    U R                  SU R                  5        g NrR   rz  rW   r   s    r   test_not_in!TestBasicOpsSingleton.test_not_in      DHH%r   r  Nr   r   r   r   rO   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   rO   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  rr  rW   r   ry  r.   r   s    r   rO   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rT   r   ri   r   r  rr  rW   r   ry  r   s    r   rO   TestBasicOpsString.setUp  s7    "	%$++&$++&r   c                 $    U R                  5         g r   rv  r   s    r   rh  TestBasicOpsString.test_repr      &&(r   r  r   ry  rW   rr  Nr   r   r   r   rO   rh  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   rO   TestBasicOpsBytes.setUp  s7    !	($++&$++&r   c                 $    U R                  5         g r   r  r   s    r   rh  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)rT   r   r  r   r  )enterContextr   check_warningswarningssimplefilterBytesWarningr  rr  rW   r   ry  r   s    r   rO   "TestBasicOpsMixedStringBytes.setUp  s^    /88:;h5,	,$++&$++&r   c                 $    U R                  5         g r   r  r   s    r   rh  &TestBasicOpsMixedStringBytes.test_repr  r  r   r  Nr  r
   r   r   r  r    s    )r   r  c               #      #    [         e7fr   )rV   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Srg)TestExceptionPropagationi  z?SF 628246:  Set constructor should not trap iterator TypeErrorsc                 J    U R                  [        [        [        5       5        g r   )rU   rV   rW   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 )NrV  r   rR   r   )onetwothreers   )rW   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)NrV  r  z0no exception when changing size during iteration)rW   r  r   r$   )r   rK   r   s      r   test_changingSizeWhileIterating8TestExceptionPropagation.test_changingSizeWhileIterating   sK    L	J! 
 IIHI  		s   < 
A	A	r
   N)	r   r   r   r   r2   r  r  r!  r   r
   r   r   r  r    s    I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   )rg   rW   r\  r\   rx   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rR   r     rW   r   s    r   rO   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 NrR   r/  rX  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rR   r  r0     rX  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  r5  )rR   r   r  r5  r0  rX  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>  rX  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rR   r  rX  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/  rX  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 NrD  r  rX  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 )NrN  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 )NrD  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 NrN  r0  rX  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?  rX  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 NrD  )rR   r   r5  r0  rX  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 rH  rX  r  s     r   test_sym_difference_non_overlap-TestBinaryOps.test_sym_difference_non_overlap|  rK  r   r1  N)r   r   r   r   rO   r6  r:  r@  rE  rI  rO  rS  rW  r[  r^  ra  rd  rg  rk  ro  rs  rv  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.  r1  r   s    r   rO   TestUpdateOps.setUp  r3  r   c                     U =R                   [        S/5      -  sl         U R                  U R                   [        S5      5        g r9  rX  r   s    r   r:  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=  rX  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 rC  rX  r   s    r   rE   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 rH  rX  r   s    r   rI  $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 rC  )rW   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 rM  rX  r   s    r   rO  &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 rR  rX  r   s    r   rS  (TestUpdateOps.test_intersection_superset  s-    C%%3y>2r   c                     U =R                   [        / SQ5      -  sl         U R                  U R                   [        S/5      5        g rV  rX  r   s    r   rW  'TestUpdateOps.test_intersection_overlap  s.    C	N"3s8,r   c                     U =R                   [        S/5      -  sl         U R                  U R                   [        5        g rZ  r  r   s    r   r[  +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 rV  )rW   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 rj  rX  r   s    r   rk  (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 rn  rX  r   s    r   ro  *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 rr  rX  r   s    r   rs  )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 rH  rX  r   s    r   rv  -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 rr  )rW   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 rj  rX  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=  rX  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 NrD  rR   r0  rX  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/  rX  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  )rW   r  r\   r   s    r   test_difference_method_call)TestUpdateOps.test_difference_method_call  s4    ""3y>231v;/r   r1  N)r   r   r   r   rO   r:  r@  rE  rI  r  rO  rS  rW  r[  r  rk  ro  rs  rv  r  r  r  r  r  r  r   r
   r   r   ry  ry    sk    "3696903-.---666-,030r   ry  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  )rr  rW   r   s    r   rO   TestMutate.setUp  s    %t{{#r   c                     U R                   R                  S5        U R                  U R                   [        S5      5        g )Nri   rs   rW   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 )NrN   ro   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   )rW   rr  r  r\   rb   )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)rW   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)NrN   z7Removing missing element should have raised LookupError)rW   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   )rb   rW   rr  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 )Nri   r   rW   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 )NrN   rs   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 r7   )rW   rm  r\   rb   r   s    r   rn  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   )rW   r\  r\   rb   rr  rh   )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
   rW   r  r\   rr  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 )NrS   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)rT   r   r   r  r   s    r   "test_update_unit_tuple_non_overlap-TestMutate.test_update_unit_tuple_non_overlap  s6    
#3t{{cU':#;<r   )rW   rr  N)r   r   r   r   rO   r  r  r  r  r  r  r  r  rn  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^   rt  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   rW   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   rR   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   rR   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   rR   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   rR   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&   rW   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   rW   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&   rW   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   )rU   rV   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rW   r&   r   rV   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   )otherIsIterablerW   r  r&   rU   rV   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   )rU   rV   r"  rW   rw   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"  rW   r  r&   rU   rV   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
  r0    r  r   )rU   rV   r"  rW   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"  rW   r-  r&   rU   rV   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   )rU   rV   r"  rW   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"  rW   r  r&   rU   rV   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
  rF    r  r   )rU   rV   r"  rW   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   r4  r7  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 )NrV     FrW   r&   r"  r   s    r   rO   TestOnlySetsNumeric.setUp  s    ^
$r   r&   r"  rW   Nr  r
   r   r   rJ  rJ        %r   rJ  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 )NrV  rR   r  )r   r   TrM  r   s    r   rO   TestOnlySetsDict.setUp  s     ^QZ
#r   rO  Nr  r
   r   r   rR  rR        $r   rR  c                       \ rS rSrS rSrg)TestOnlySetsOperatori  c                 \    [        S5      U l         [        R                  U l        SU l        g )NrV  F)rW   r  r  r&   r"  r   s    r   rO   TestOnlySetsOperator.setUp  s     ^\\
$r   rO  Nr  r
   r   r   rW  rW    rP  r   rW  c                       \ rS rSrS rSrg)TestOnlySetsTuplei  c                 @    [        S5      U l         SU l        SU l        g )NrV  r/  TrM  r   s    r   rO   TestOnlySetsTuple.setUp  s    ^
#r   rO  Nr  r
   r   r   r[  r[    rU  r   r[  c                       \ rS rSrS rSrg)TestOnlySetsStringi  c                 @    [        S5      U l         SU l        SU l        g )NrV  rs   TrM  r   s    r   rO   TestOnlySetsString.setUp  s    ^
#r   rO  Nr  r
   r   r   r_  r_    rU  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   rR   )r   )r   s    r   gen(TestOnlySetsGenerator.setUp.<locals>.gen  s     1b!_ %s   rV  TrM  )r   rf  s     r   rO   TestOnlySetsGenerator.setUp  s%    	 ^U
#r   rO  Nr  r
   r   r   rc  rc    s    $r   rc  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  )rW   r   r[   r.   r\   rb   r   r   r   r   dup_listset_listr   s        r   rr  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 rl  )r   r   rW   r[   r.   r\   rb   r   rn  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   rr  rs  r   r
   r   r   rj  rj    s    87r   rj  c                       \ rS rSrS rSrg)TestCopyingEmptyi,  c                 "    [        5       U l         g r   r1  r   s    r   rO   TestCopyingEmpty.setUp-  s    5r   r1  Nr  r
   r   r   rv  rv  ,  s    r   rv  c                       \ rS rSrS rSrg)TestCopyingSingletoni2  c                 &    [        S/5      U l         g )Nhellor1  r   s    r   rO   TestCopyingSingleton.setUp3  s    y>r   r1  Nr  r
   r   r   rz  rz  2  s    "r   rz  c                       \ rS rSrS rSrg)TestCopyingTriplei8  c                 (    [        / SQ5      U l         g )N)r  r   Nr1  r   s    r   rO   TestCopyingTriple.setUp9  s    ()r   r1  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   rR   r1  r   s    r   rO   TestCopyingTuple.setUp?  s    x=r   r1  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  r1  r   s    r   rO   TestCopyingNested.setUpE  s    ()*r   r1  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)rW   rT   r   r   s    r   rO   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   )rT   r   r   r   rT   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   )rT   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   )rT   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   )rT   r   rW   r\   )r   rT   r   r  s       r   test_exclusionTestIdentities.test_exclusionl  s[    VVTVVSUd!#q$'!#q$'!#d+r   rT   r   N)
r   r   r   r   rO   r  r  r  r  r   r
   r   r   r  r  J  s    !'*	+,r   r  c              #   &   #    U  H  nUv   M	     g7f)zRegular generatorNr
   seqnr   s     r   Rr  u  s      s   c                   $    \ rS rSrSrS rS rSrg)Giz  zSequence using __getitem__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   r2   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Srg)Ii  z Sequence using iterator protocolc                     Xl         SU l        g r7   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   rb   r  r   r   r  s     r   __next__
I.__next__  ?    66S^#=%8IIdff!r   r   r  N	r   r   r   r   r2   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g)Igi  z9Sequence using iterator protocol defined with a generatorc                     Xl         SU l        g r7   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   r2   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)Xi  z Missing __getitem__ and __iter__c                     Xl         SU l        g r7   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   r2   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)Ni  zIterator missing __next__()c                     Xl         SU l        g r7   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Srg)Ei  zTest propagation of exceptionsc                     Xl         SU l        g r7   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Srg)Si  zTest immediate stopc                     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      $ )z Test multiple tiers of iteratorsc                     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?    r5  rm  )rW   rg   r   r  r  r  r  r  r  r\   r[   r.   rU   rV   r  r  ZeroDivisionErrorr  )r   consrK   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  r5  decemberrm  )rW   r   rw   r   r   r   r   r  r  r  r  r  
isinstanceboolr\   r[   r.   rU   rV   r  r  r  r  )r   rK   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  r5  r  )r  r  r  r-  januaryrm  )r   r  r  r  r  r  r  rW   r   r  r{   r\   r[   r.   rU   rV   r  r  r  r  )r   r   methnamer  rK   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set2rm  r  r%   s     r   r'   bad_eq.__eq__  s    6JJL##}r   c                     gr7   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  dict2rm  r%   s     r   r'   bad_dict_clear.__eq__  s    6KKM}r   c                     gr7   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  rU   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  )rW   r   rm  r  r   r{   )r   rK   sirT   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      $ r7   )ri  r   s    r   r    7TestWeirdBugs.test_merge_and_mutate.<locals>.X.__hash__  s    Awr   c                 &   > TR                  5         g)NF)rm  )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   )rW   r   r  )r   r  r   rK   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Sr	g)TestOperationsMutatingi%  zRegression test for bpo-46615Nc                    ^^^^  " 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   rR   )r   rm  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
   r1  s     r   r  r3  :  r4  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   r9  r$   rh   rz   )r   functionr2  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   r2   r7  r8  r9  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  rD  r   rE  r   s    r   test_ne_with_mutation+TestBinaryOpsMutating.test_ne_with_mutationN  rH  r   c                 (    U R                  S 5        g )Nc                 
    X:  $ r   r
   r  s     r   r
  =TestBinaryOpsMutating.test_lt_with_mutation.<locals>.<lambda>R      aer   rE  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  rD  r   rE  r   s    r   test_le_with_mutation+TestBinaryOpsMutating.test_le_with_mutationT  rH  r   c                 (    U R                  S 5        g )Nc                 
    X:  $ r   r
   r  s     r   r
  =TestBinaryOpsMutating.test_gt_with_mutation.<locals>.<lambda>X  rQ  r   rE  r   s    r   test_gt_with_mutation+TestBinaryOpsMutating.test_gt_with_mutationW  rT  r   c                 (    U R                  S 5        g )Nc                 
    X:  $ r   r
   r  s     r   r
  =TestBinaryOpsMutating.test_ge_with_mutation.<locals>.<lambda>[  rD  r   rE  r   s    r   test_ge_with_mutation+TestBinaryOpsMutating.test_ge_with_mutationZ  rH  r   c                 (    U R                  S 5        g )Nc                 
    X-  $ r   r
   r  s     r   r
  >TestBinaryOpsMutating.test_and_with_mutation.<locals>.<lambda>^  rQ  r   rE  r   s    r   test_and_with_mutation,TestBinaryOpsMutating.test_and_with_mutation]  rT  r   c                 (    U R                  S 5        g )Nc                 
    X-  $ r   r
   r  s     r   r
  =TestBinaryOpsMutating.test_or_with_mutation.<locals>.<lambda>a  rQ  r   rE  r   s    r   test_or_with_mutation+TestBinaryOpsMutating.test_or_with_mutation`  rT  r   c                 (    U R                  S 5        g )Nc                 
    X-
  $ r   r
   r  s     r   r
  >TestBinaryOpsMutating.test_sub_with_mutation.<locals>.<lambda>d  rQ  r   rE  r   s    r   test_sub_with_mutation,TestBinaryOpsMutating.test_sub_with_mutationc  rT  r   c                 (    U R                  S 5        g )Nc                 
    X-  $ r   r
   r  s     r   r
  >TestBinaryOpsMutating.test_xor_with_mutation.<locals>.<lambda>g  rQ  r   rE  r   s    r   test_xor_with_mutation,TestBinaryOpsMutating.test_xor_with_mutationf  rT  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   rE  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  r{  r   rE  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  r{  r   rE  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  r{  r   rE  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
   rT   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
   )rT   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   rE  )r   r  r  r  s       r   test_iteration_with_mutation2TestBinaryOpsMutating.test_iteration_with_mutation}  s=    	
	
	 	((,((,((,r   r
   N)r   r   r   r   rF  rL  rR  rX  r]  rb  rg  rl  rq  rv  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   rW   r7  r8  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  r7  r8  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   rW   r7  r  r8  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  r7  rW   r8  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=  rW   r   r   s    r   test_issubset_with_mutation/TestMethodsMutating.test_issubset_with_mutation  s    ((6r   c                 B    U R                  [        R                  5        g r   )r=  rW   r   r   s    r   test_issuperset_with_mutation1TestMethodsMutating.test_issuperset_with_mutation      ((8r   c                 B    U R                  [        R                  5        g r   )r=  rW   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=  rW   rw   r   s    r   test_union_with_mutation,TestMethodsMutating.test_union_with_mutation  s    ((3r   c                 B    U R                  [        R                  5        g r   )r=  rW   r   r   s    r   test_difference_with_mutation1TestMethodsMutating.test_difference_with_mutation  r  r   c                 B    U R                  [        R                  5        g r   )r=  rW   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=  rW   r   r   s    r   test_isdisjoint_with_mutation1TestMethodsMutating.test_isdisjoint_with_mutation  r  r   c                 B    U R                  [        R                  5        g r   )r=  rW   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=  rW   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=  rW   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=  rW   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   rW   r7  rL   rM   r8  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   rW   r7  r{   r8  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)z-Generates all subsets of a set or sequence U.N)r   rg   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 )z!Graph of n-dimensional hypercube.)r   rg   rL   r/  )r4  r   
singletonsrK   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 )zyGraph, the vertices of which are edges of G,
with two vertices being adjacent iff the corresponding
edges share a vertex.)rg   )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$ )zKReturn a set of faces in G.  Where a face is a set of vertices on that face)rW   itemsr  rg   )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   r0  r  )r  rW   r\   rb   rr  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?  r0  rR   )r  r  r\   rb   rW   rr  r  r   defaultdictr>   rh   )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>   r4   rA   TestCaserJ  rW   r  r  r  rg   r<  r>  rY  r`  rb  rd  r  rf  r  r  r  r  r  r  r  r  r  r  r$  r,  ry  r  r  r  r  r  r  r  r  rJ  rR  rW  r[  r_  rc  rj  rv  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r	  r  r%  r@  r  r  r  r  r  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   