
    0hhA                        S SK r S SKJr  S SKrS SKrS SKJr  S SKJ	r	J
r
  S SKrS SKrS SKJr   " S S5      r " S S	5      r " S
 S\5      r " S S\5      r " S S\ R&                  5      r\S:X  a  \ R,                  " 5         gg)    N)WeakSet)
UserString)Set
MutableSet)supportc                       \ rS rSrSrg)Foo    N__name__
__module____qualname____firstlineno____static_attributes__r       :/opt/python-3.13.8/usr/lib/python3.13/test/test_weakset.pyr	   r	          r   r	   c                       \ rS rSrS rSrg)RefCycle   c                     X l         g Ncycleselfs    r   __init__RefCycle.__init__   s    
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g)WeakSetSubclass   r   Nr   r   r   r   r!   r!      r   r   r!   c                       \ rS rSrSrSrg)WeakSetWithSlots   )xyr   N)r   r   r   r   	__slots__r   r   r   r   r$   r$      s    Ir   r$   c                   .   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1r3g2)3TestWeakSet   c                 V   S Vs/ s H  n[        U5      PM     snU l        S Vs/ s H  n[        U5      PM     snU l        S Vs/ s H  n[        U5      PM     snU l        S Vs/ s H  n[        U5      PM     snU l        S Vs/ s H  n[        U5      PM     snU l        [        U R                  5      U l        [        U R                  5      U l        [        U R
                  5      U l	        [        R                   Vs/ s H  n[        U5      PM     snU l        [        U R                  5      U l        [        R                  U R                  5      U l        [        S5      U l        [        U R"                  /5      U l        g s  snf s  snf s  snf s  snf s  snf s  snf )Nabc)r&   r'   zababcdedefF)ustritemsitems2ab_itemsabcde_items	def_itemsr   
ab_weaksetabcde_weaksetdef_weaksetstringascii_lettersletterssdictfromkeysdobjfsr   r0   s     r   setUpTestWeakSet.setUp   s2   '67!d1g7
(781tAw8*./$Qa$/-45WDGW5+015a$q'51!$--0$T%5%56"4>>2)/)=)=>)=AQ)=>$tzz*9488*% 88/51 ?s"   FFF(F	F!F&c                     [        [        5      n[        [        5       H0  nUR                  S5      (       a  M  U R	                  X!SU-   5        M2     g )N_zWeakSet missing method )dirr   set
startswithassertIn)r   weaksetmethodsmethods      r   test_methodsTestWeakSet.test_methods,   sC    W#hF  %%MM&2V;= r   c                 <    U R                  [        [        / S5        g )N   )assertRaises	TypeErrorr   r   s    r   test_new_or_initTestWeakSet.test_new_or_init4   s    )Wb!4r   c                 6   U R                  [        U R                  5      [        U R                  5      5        U R                  [        U R                  5      S5        U ?[        R                  " 5         U R                  [        U R                  5      S5        g )N   r   )assertEquallenrB   rE   rG   rF   r   
gc_collectr   s    r   test_lenTestWeakSet.test_len7   sc    TVVc$&&k2TWWq)HTWWq)r   c                 z   U R                    H-  nU R                  XR                  ;   XR                  ;   5        M/     U R	                  SU R                  5        U R                  U R                  U R                  5        U ?[        R                  " 5         U R	                  [        S5      U R                  5        g )Nr\   r5   )rA   r]   rB   rE   assertNotInrP   rF   rG   r   r_   r6   rH   s     r   test_containsTestWeakSet.test_contains>   s    AQ&&[!vv+6  	DFF#dhh(HcDGG,r   c                 X   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                  5      5        U R	                  [        U5      [        5        U R                  [        U R                   R                  / /5        [        [        [        R                  [        [         4 Hc  n[        U R                  U R                  -   5      nU" U R                  5      nU R	                  U R                   R                  U5      U5        AMe     U R	                  [#        U5      [#        U R                  5      [#        U R                  5      -   5        U R                  R%                  5         [&        R(                  " 5         U R	                  [#        U5      [#        U R                  5      [#        U R                  5      -   5        g r   )rB   unionr8   rA   r]   rE   r   r7   typerW   rX   rN   	frozensetrC   rD   listtupler^   popgccollect)r   ur0   Cr&   s        r   
test_unionTestWeakSet.test_unionH   s`   FFLL%AQVQ&&[%DA4DE !45a'*)TVV\\B48ie;A

T[[01A$++ATVV\\!_a0	 <
 	QTZZ3t{{3C!CD


QTZZ3t{{3C!CDr   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        g r   )rB   rg   r8   r]   rN   ri   r   is     r   test_orTestWeakSet.test_orY   s\    FFLL%#dkk"22A6)DKK"88!<r   c                 b   [        U R                  5      nUR                  U R                  5      nU R                   H8  nU R	                  X2;   X0R                  ;   =(       a    X0R                  ;   5        M:     U R	                  U[        U R                  5      5        U R	                  [        U5      [         5        [        [        [        R                  [        [        4 H?  n[        / 5      nU R	                  UR                  U" U R                  5      5      U5        MA     U R	                  [        U5      [        U R                  5      5        U R                  R                  5         [        R                   " 5         U R	                  [        U5      [        U R                  5      5        g r   )r   rA   intersectionr8   r]   rh   rN   ri   rC   rD   rj   rk   r7   r^   rl   rm   rn   )r   rB   ru   r0   rp   r&   s         r   test_intersectionTestWeakSet.test_intersection^   s   DLL!NN4;;'AQVQ++%5%K!||:KL GDLL12a'*ie;AAQ^^AdjjM:A> < 	QT[[!12


QT[[!12r   c                    U R                  U R                  R                  [        U R                  5      5      5        U R                  U R                  R                  [        U R
                  5      5      (       + 5        g r   )
assertTruerB   
isdisjointr   r8   rA   r   s    r   test_isdisjointTestWeakSet.test_isdisjointm   sM    ))'$++*>?@DFF--gdll.CDDEr   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        g r   )rB   ry   r8   r]   rN   ri   rt   s     r   test_andTestWeakSet.test_andq   s^    FF,#dkk"22A6)DKK"88!<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                  5      5        U R	                  [        U5      [        5        U R                  [        U R                   R                  / /5        g r   )rB   
differencer8   rA   r]   rE   r   r7   rh   rW   rX   r   ru   r0   s      r   test_differenceTestWeakSet.test_differencev   s    FFdkk*AQVQ&&[%IQkk5IJ !45a'*)TVV%6%6=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        g r   )rB   r   r8   r]   rN   ri   rt   s     r   test_subTestWeakSet.test_sub~   s^    FFdkk*#dkk"22A6)DKK"88!<r   c                 4   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                  5      5        U R	                  [        U5      [        5        U R                  [        U R                   R                  / /5        U R	                  [        U5      [        U R                  5      [        U R                  5      -   5        U R                  R                  5         [        R                  " 5         U R	                  [        U5      [        U R                  5      [        U R                  5      -   5        g r   )rB   symmetric_differencer8   rA   r]   rE   r   r7   rh   rW   rX   r^   rl   rm   rn   r   s      r   test_symmetric_difference%TestWeakSet.test_symmetric_difference   s   FF''4AQVa66ka;;6F%GH !45a'*)TVV%@%@2$GQTZZ3t{{3C!CD


QTZZ3t{{3C!CDr   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        g r   )rB   r   r8   r]   rN   ri   rt   s     r   test_xorTestWeakSet.test_xor   s^    FF''4#dkk"22A6)DKK"88!<r   c                    U R                  U R                  U R                  :*  5        U R                  U R                  U R                  :*  5        U R                  U R                  U R                  :  5        U R                  U R                  U R                  :*  5        U R                  U R                  U R                  :  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 )Nr.   abccbs)r}   r<   r=   assertFalser>   rN   issubset
issupersetr   s    r   test_sub_and_superTestWeakSet.test_sub_and_super   s   4+=+==>**d.@.@@A**doo=>++t/?/??@++t/?/??@C))%01E
--c23S**512U..s34r   c                 <   U R                  U R                  U R                  :  5        U R                  U R                  U R                  :  5        U R                  U R                  U R                  :  5        U R                  [        5       [        5       :  5        g r   )r}   r<   r=   r   r>   r   r   s    r   test_ltTestWeakSet.test_lt   sn    $*<*<<=++d.>.>>?4??:;WY./r   c                 <   U R                  U R                  U R                  :  5        U R                  U R                  U R                  :  5        U R                  U R                  U R                  :  5        U R                  [        5       [        5       :  5        g r   )r}   r=   r<   r   r>   r   r   s    r   test_gtTestWeakSet.test_gt   sn    **T__<=++d.>.>>?4??:;WY./r   c                     [        S [        S5       5       5      nU H   nXl        X"l        [        U/5      Ul        M"     g )Nc              3   6   #    U  H  n[        5       v   M     g 7fr   )r	   ).0ru   s     r   	<genexpr>&TestWeakSet.test_gc.<locals>.<genexpr>   s     /;aCEE;s   i  )r   ranger   subrN   )r   rB   elems      r   test_gcTestWeakSet.test_gc   s7    /5;//DJHvDH r   c                      " S S[         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)5TestWeakSet.test_subclass_with_custom_hash.<locals>.H   c                 0    [        [        U 5      S-  5      $ )Ni)intidr   s    r   __hash__>TestWeakSet.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   )r   rN   addrP   removediscard)r   r   rB   fs       r   test_subclass_with_custom_hash*TestWeakSet.test_subclass_with_custom_hash   sV    	2 	2 #
%	aa		a			!r   c                    [        5       nUR                  U R                  5        U R                  XR                  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 )NrV   r\   )r   r   r7   r]   rB   r8   rW   rX   )r   rB   s     r   	test_initTestWeakSet.test_init   s    I	

4::FF#	

4;;GDKK01)QZZA6)QZZ3r   c                     [        U R                  5      n[        U5      nU R                  [        U5      [        U5      5        g r   )r   r7   assertNotEqualr   )r   rB   ts      r   test_constructor_identity%TestWeakSet.test_constructor_identity   s1    DJJAJBqE2a5)r   c                 N    U R                  [        [        U R                  5        g r   )rW   rX   hashrB   r   s    r   	test_hashTestWeakSet.test_hash   s    )T4662r   c                     U R                   R                  5         U R                  U R                   [        / 5      5        U R                  [	        U R                   5      S5        g )Nr   )rB   clearr]   r   r^   r   s    r   
test_clearTestWeakSet.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        g r   )rB   copyr]   r   r   )r   dups     r   	test_copyTestWeakSet.test_copy   sA    ffkkm%BtvvJ30r   c                    [        S5      nU R                  R                  U5        U R                  XR                  5        U R                  R	                  5       nU R                  R                  U5        U R                  U R                  U5        U R                  [        U R                  R                  / 5        U R                  R                  [        5       5        [        R                  " 5         U R                  [        U R                  5      S:H  5        U R                  R                  U R                  5        U R                  [        U R                  5      S:H  5        g )NQr\   )r6   rB   r   rP   r   r]   rW   rX   rG   r	   r   r_   r}   r^   rF   )r   r&   r   s      r   test_addTestWeakSet.test_add   s    I

1a ffkkm

1%)TVVZZ4CEDGG)*DHHDGG)*r   c                 2   [        S5      nU R                  R                  U5        U R                  XR                  5        U R	                  [
        U R                  R                  U5        U R	                  [        U R                  R                  / 5        g )Nr.   )r6   rB   r   rc   rW   KeyErrorrX   )r   r&   s     r   test_removeTestWeakSet.test_remove   sa    IaFF#(DFFMM15)TVV]]B7r   c                 &   [        S5      [        S5      p!U R                  R                  U5        U R                  XR                  5        U R                  R                  U5        U R	                  [
        U R                  R                  / 5        g )Nr.   r   )r6   rB   r   rc   rW   rX   )r   r.   qs      r   test_discardTestWeakSet.test_discard   s]    Cy$s)1qFF#q)TVV^^R8r   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   r^   rB   rl   rc   rW   r   )r   ru   r   s      r   test_popTestWeakSet.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        g r   )rB   updater8   r]   r7   rP   rW   rX   r   retvalr0   s      r   test_updateTestWeakSet.test_update   sk    t{{+&**t{{*AMM!VV$ +)TVV]]RD9r   c                     U R                   R                  [        U R                  5      5        U R                  U R                  -    H  nU R                  XR                   5        M      g r   )rB   r   rN   r8   r7   rP   rH   s     r   test_update_setTestWeakSet.test_update_set  sB    c$++&'**t{{*AMM!VV$ +r   c                     U =R                   [        U R                  5      -  sl         U R                  U R                  -    H  nU R	                  XR                   5        M      g r   )rB   rN   r8   r7   rP   rH   s     r   test_iorTestWeakSet.test_ior	  s@    #dkk""**t{{*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        g r   )	rB   intersection_updater8   r]   r7   rP   rc   rW   rX   r   s      r   test_intersection_update$TestWeakSet.test_intersection_update  s    ++DKK8&**t{{*AKKAOa(  FF+	 +
 	)TVV%?%?"Fr   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   rB   rN   r8   r7   rP   rc   rH   s     r   	test_iandTestWeakSet.test_iand  sd    #dkk""**t{{*AKKAOa(  FF+	 +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        U R                  [        U R                   R                  / /5        g r   )
rB   difference_updater8   r]   r7   rP   rc   rW   rX   symmetric_difference_updater   s      r   test_difference_update"TestWeakSet.test_difference_update   s    ))$++6&**t{{*AJJ1KK#7a(  FF+	 +
 	)TVV%=%=tD)TVV%G%G"Nr   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   rH   s     r   	test_isubTestWeakSet.test_isub+  sd    #dkk""**t{{*AJJ1KK#7a(  FF+	 +r   c                    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        g r   )	rB   r   r8   r]   r7   rP   rc   rW   rX   r   s      r    test_symmetric_difference_update,TestWeakSet.test_symmetric_difference_update3  s    33DKK@&**t{{*AZZA$45a(  FF+	 +
 	)TVV%G%G"Nr   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   rH   s     r   	test_ixorTestWeakSet.test_ixor=  sg    #dkk""**t{{*AZZA$45a(  FF+	 +r   c                 `   U R                   R                  5       nX-  nU R                  XR                   5        X-  nU R                  XR                   5        X-  nU R                  U[        5       5        U R                   R                  5       nX-  nU R                  U[        5       5        g r   )rB   r   r]   r   )r   r   s     r   test_inplace_on_self TestWeakSet.test_inplace_on_selfE  s    FFKKM	FF#	FF#	GI&FFKKM	GI&r   c                 p   U R                  U R                  U R                  :H  5        U R                  U R                  [        U R                  5      :H  5        U R	                  U R                  [        U R                  5      :H  5        U R	                  U R                  [        U R                  5      :H  5        U R	                  U R                  [        U R                  5      :H  5        U R	                  U R                  [        [        /5      :H  5        U R	                  U R                  S:H  5        g )Nr\   )	r}   rB   r   r7   r   rN   rj   rk   r	   r   s    r   test_eqTestWeakSet.test_eqQ  s    $&&()'$**"5563tzz?234

#3345#4457C5>121%r   c                     U R                  U R                  [        U R                  5      :g  5        [	        5       n[	        5       nU R                  X:g  5        g r   )r}   rB   rN   r7   r   r   )r   s1s2s      r   test_neTestWeakSet.test_ne[  s=    #djj/12YY"r   c                 v   S Vs/ s H  n[        U5      PM     nn[        U5      n[        U5      n[        U5        US	 [        R
                  " 5         U R                  [        [        U5      5      [        U5      [        U5      S-
  /5        AU R                  [        U5      [        U5      5        g s  snf )Nr-   r\   )
r6   r   iternextrm   rn   rP   r^   rj   r]   )r   r0   r7   rB   its        r   !test_weak_destroy_while_iterating-TestWeakSet.test_weak_destroy_while_iteratinga  s     #22/Qa/2EN!WR"I


c$r(mc%j#e*q.%ABQU, 3s   B6c                   ^^ [         R                   Vs/ s H  n[        U5      PM     snm[        T5      m[        R
                  UU4S j5       nU" 5        nU R                  UT5        S S S 5        U" 5        nU R                  [        TR                  U5        S S S 5        U R                  WT5        U" 5        nTR                  U5        S S S 5        U R                  UT5        TR                  5       nU" 5        nTR                  U5        S S S 5        U R                  [        T5      [        U5      5        U" 5        nTR!                  5         S S S 5        U R                  [        T5      S5        g s  snf ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nt= f)Nc               3     >#     [        T5      n [        [        [        U 5      5      5      n[        [        TR	                  5       5      5      nX:X  a  [        U 5        [
        R                  " 5         Uv   S n g ! S n f = f7fr   )r  r6   strr  rl   rm   rn   )r  yieldedro   r7   rB   s      r   testcontextMTestWeakSet.test_weak_destroy_and_mutate_while_iterating.<locals>.testcontextu  sa     !Ws48}-UYY[)*< H

Ts   BA3A; 8B;A??Br   )r?   r@   r6   r   
contextlibcontextmanagerrc   rW   r   r   r   rP   r   r   r]   r^   r   )r   r0   r  ro   r   r7   rB   s        @@r   ,test_weak_destroy_and_mutate_while_iterating8TestWeakSet.test_weak_destroy_and_mutate_while_iteratingq  sH   "("6"67"6Qa"67EN		"	"	 
#	  ]aQ" ]ah!4 A]aEE!H aFFH]aHHQK QQ(]aGGI Q#C 8& ]] ] ] ]sA   E;F ;"F>F#F4G 
F
F #
F14
G
Gc                    Sn[        U5       Vs/ s H  n[        5       PM     nn[        U5      nA[        U5      n [	        U5        [        R                  " 5         [        U5      nA[        R                  " 5         [        R                  " 5         [        U5      nU R                  US5        U R                  US5        g s  snf ! [
         a     Nf = f)N   )r   r\   r   )r   r   r   r  r  StopIterationrm   rn   r^   rP   r]   )r   Nru   r7   rB   r  n1n2s           r   test_len_cyclesTestWeakSet.test_len_cycles  s    %*1X.XX.EN!W	H 	

V





Vb&!Q! /  		s   CC	 	
CCc                 `   U R                   " [        R                  /[        R                  " 5       Q76   [	        SS5       H  nSn[        R
                  " S5        [        R                  " XU5        [	        U5       Vs/ s H  n[        5       PM     nn[        U5      nA[        U5      n [        U5        [        U5      nA[        U5      nU R                  US5        U R                  Xr5        U R                  US5        U R                  X5        M     g s  snf ! [         a     Nsf = f)Nr\   d   r  r   )
addCleanuprm   set_thresholdget_thresholdr   rn   r   r   r  r  r  r^   assertGreaterEqualassertLessEqual)	r   thr   ru   r7   rB   r  r!  r"  s	            r   test_len_raceTestWeakSet.test_len_race  s    ((>2+;+;+=>3-BAJJqMRR().q2AXZE2AaBR QBQB##B*  '##B*  ('   3 ! s    D.D  
D-,D-c                 t    [        U R                  5      [        U R                  R                  5      :X  d   eg r   )reprrB   datar   s    r   	test_reprTestWeakSet.test_repr  s%    DFF|tDFFKK0000r   c                     U R                  U R                  [        5        U R                  U R                  [        5        g r   )assertIsInstancerB   r   r   r   s    r   test_abcTestWeakSet.test_abc  s*    dffc*dffj1r   c                    [         [        4 GH  nU" U R                  5      nS/Ul        S/Ul        [
        R
                  " U5      nU R                  X15        U R                  X25        U R                  X25        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  [        US5      5        [
        R                  " U5      nU R                  X15        U R                  X25        U R                  X25        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  [        US5      5        GM     g )Nr&   r1   r'   )r   r$   r7   r&   r1   r   r5  r]   assertIsNotassertIsr   hasattrdeepcopy)r   clsrB   r   s       r   test_copyingTestWeakSet.test_copying  sV   ,,CDJJA%AC%AC))A,C!!#+S$S$MM#%%%MM#%%%WS#./--"C!!#+S$S$SUUACC(SUUACC(SUUACC(SUUACC(WS#./+ -r   )r9   r<   r:   r=   rE   r;   r>   rG   r7   r8   rA   rF   rB   N)4r   r   r   r   rI   rS   rY   r`   rd   rq   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-  r2  r6  r>  r   r   r   r   r*   r*      s    & =5*-E"=
3F=
>=

E=
	500'5*
3)
1
+890:%
%
G,	O,O,
'&#- #$J ()0120r   r*   __main__)unittestweakrefr   r   r?   collectionsr   r6   collections.abcr   r   rm   r  testr   r	   r   r!   r$   TestCaser*   r   mainr   r   r   <module>rH     sy        * + 	  	 	 	g 	w E0(## E0P zMMO r   