
    6\h7A                     "   d dl Z d dlmZ d dlZd dlZd dlmZ d dlm	Z	m
Z
 d dlZd dlZd dlmZ  G d d          Z G d d	          Z G d
 de          Z G d de          Z G d de j                  Zedk    r e j                     dS dS )    N)WeakSet)
UserString)Set
MutableSet)supportc                       e Zd ZdS )FooN__name__
__module____qualname__     ;/opt/python-3.11.14/usr/lib/python3.11/test/test_weakset.pyr	   r	              Dr   r	   c                       e Zd Zd ZdS )RefCyclec                     | | _         d S N)cycleselfs    r   __init__zRefCycle.__init__   s    


r   N)r   r   r   r   r   r   r   r   r      s#            r   r   c                       e Zd ZdS )WeakSetSubclassNr
   r   r   r   r   r      r   r   r   c                       e Zd ZdZdS )WeakSetWithSlots)xyN)r   r   r   	__slots__r   r   r   r   r      s        IIIr   r   c                   (   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0S )1TestWeakSetc                 R   d dD             | _         d dD             | _        d dD             | _        d dD             | _        d	 d
D             | _        t          | j                  | _        t          | j                  | _        t          | j                  | _        d t          j
        D             | _        t          | j                   | _        t                              | j                   | _        t!          d          | _        t          | j        g          | _        d S )Nc                 ,    g | ]}t          |          S r   ustr.0cs     r   
<listcomp>z%TestWeakSet.setUp.<locals>.<listcomp>   s    777!d1gg777r   abr)   c                 ,    g | ]}t          |          S r   r%   r'   s     r   r*   z%TestWeakSet.setUp.<locals>.<listcomp>   s    8881tAww888r   )r   r   zc                 ,    g | ]}t          |          S r   r%   r'   s     r   r*   z%TestWeakSet.setUp.<locals>.<listcomp>    s    ///Qa///r   abc                 ,    g | ]}t          |          S r   r%   r'   s     r   r*   z%TestWeakSet.setUp.<locals>.<listcomp>!   s    555DGG555r   abcdec                 ,    g | ]}t          |          S r   r%   r'   s     r   r*   z%TestWeakSet.setUp.<locals>.<listcomp>"   s    111a$q''111r   defc                 ,    g | ]}t          |          S r   r%   r'   s     r   r*   z%TestWeakSet.setUp.<locals>.<listcomp>&   s    >>>AQ>>>r   F)itemsitems2ab_itemsabcde_items	def_itemsr   
ab_weaksetabcde_weaksetdef_weaksetstringascii_lettersletterssdictfromkeysdr&   objfsr   s    r   setUpzTestWeakSet.setUp   s   77777
88888//$///55W555115111!$-00$T%566"4>22>>)=>>>$$tz**9948*%%r   c                     t          t                    }t          t                    D ]8}|dk    s|                    d          r|                     ||d|z              9d S )N
test_c_api_zWeakSet missing method )dirr   set
startswithassertIn)r   weaksetmethodsmethods      r   test_methodszTestWeakSet.test_methods,   st    W#hh 	= 	=F%%):):3)?)?%MM&.2V;= = = =	= 	=r   c                 J    |                      t          t          g d           d S )N   )assertRaises	TypeErrorr   r   s    r   test_new_or_initzTestWeakSet.test_new_or_init4   s"    )Wb!44444r   c                 D   |                      t          | j                  t          | j                             |                      t          | j                  d           | `t          j                     |                      t          | j                  d           d S )N   r   )assertEquallenrC   rF   rH   rG   r   
gc_collectr   s    r   test_lenzTestWeakSet.test_len7   s~    TVc$&kk222TWq)))HTWq)))))r   c                 R   | j         D ]&}|                     || j        v || j        v            '|                     d| j                   |                     | j        | j                   | `t          j	                     |                     t          d          | j                   d S )NrZ   r7   )rB   r[   rC   rF   assertNotInrP   rG   rH   r   r]   r&   r   r)   s     r   test_containszTestWeakSet.test_contains>   s     	7 	7AQ$&[!tv+6666DF###dh(((HcDG,,,,,r   c                 &   | j                             | j                  }| j        D ]*}|                     ||v || j        v p|| j        v            +|                     | j         t          | j                             |                     t          |          t                     | 	                    t          | j         j        g g           t          t          t          j        t          t           fD ]]}t          | j        | j        z             } || j                  }|                     | j                             |          |           ~^|                     t#          |          t#          | j                  t#          | j                  z              | j                                         t'          j                     |                     t#          |          t#          | j                  t#          | j                  z              d S r   )rC   unionr9   rB   r[   rF   r   r8   typerV   rW   rN   	frozensetrD   rE   listtupler\   popgccollect)r   ur)   Cr   s        r   
test_unionzTestWeakSet.test_unionH   s   FLL%% 	F 	FAQ!VQ$&[%DA4DEEEE!4!4555a'***)TV\B4888ie; 	 	A
T[011A$+ATV\\!__a000QTZ3t{3C3C!CDDD

QTZ3t{3C3C!CDDDDDr   c                    | j                             | j                  }|                     | j         t	          | j                  z  |           |                     | j         t          | j                  z  |           d S r   )rC   rd   r9   r[   rN   rf   r   is     r   test_orzTestWeakSet.test_orY   sk    FLL%%#dk"2"22A666)DK"8"88!<<<<<r   c                 n   t          | j                  }|                    | j                  }| j        D ]*}|                     ||v || j        v o|| j        v            +|                     |t          | j                             |                     t          |          t                      t          t          t          j	        t          t          fD ]H}t          g           }|                     |                     || j                            |           I|                     t          |          t          | j                             | j                                         t          j                     |                     t          |          t          | j                             d S r   )r   rB   intersectionr9   r[   re   rN   rf   rD   rE   rg   rh   r8   r\   ri   rj   rk   )r   rC   rq   r)   rm   r   s         r   test_intersectionzTestWeakSet.test_intersection^   sh   DL!!NN4;'' 	M 	MAQ!VQ$+%5%K!t|:KLLLLGDL11222a'***ie; 	? 	?AAQ^^AAdjMM::A>>>>QT[!1!1222

QT[!1!122222r   c                    |                      | j                            t          | j                                       |                      | j                            t          | j                                        d S r   )
assertTruerC   
isdisjointr   r9   rB   r   s    r   test_isdisjointzTestWeakSet.test_isdisjointm   sc    ))'$+*>*>??@@@DF--gdl.C.CDDDEEEEEr   c                    | j                             | j                  }|                     | j         t	          | j                  z  |           |                     | j         t          | j                  z  |           d S r   )rC   rt   r9   r[   rN   rf   rp   s     r   test_andzTestWeakSet.test_andq   sm    F,,#dk"2"22A666)DK"8"88!<<<<<r   c                    | j                             | j                  }| j        D ]*}|                     ||v || j        v o|| j        v           +|                     | j         t          | j                             |                     t          |          t                     | 	                    t          | j         j        g g           d S r   )rC   
differencer9   rB   r[   rF   r   r8   re   rV   rW   r   rq   r)   s      r   test_differencezTestWeakSet.test_differencev   s    Fdk** 	K 	KAQ!VQ$&[%IQdk5IJJJJ!4!4555a'***)TV%6=====r   c                    | j                             | j                  }|                     | j         t	          | j                  z
  |           |                     | j         t          | j                  z
  |           d S r   )rC   r}   r9   r[   rN   rf   rp   s     r   test_subzTestWeakSet.test_sub~   sm    Fdk**#dk"2"22A666)DK"8"88!<<<<<r   c                 "   | j                             | j                  }| j        D ]+}|                     ||v || j        v || j        v z             ,|                     | j         t          | j                             |                     t          |          t                     | 	                    t          | j         j        g g           |                     t          |          t          | j                  t          | j                  z              | j                                         t          j                     |                     t          |          t          | j                  t          | j                  z              d S r   )rC   symmetric_differencer9   rB   r[   rF   r   r8   re   rV   rW   r\   ri   rj   rk   r~   s      r   test_symmetric_differencez%TestWeakSet.test_symmetric_difference   sA   F''44 	I 	IAQ!Va46ka4;6F%GHHHH!4!4555a'***)TV%@2$GGGQTZ3t{3C3C!CDDD

QTZ3t{3C3C!CDDDDDr   c                    | j                             | j                  }|                     | j         t	          | j                  z  |           |                     | j         t          | j                  z  |           d S r   )rC   r   r9   r[   rN   rf   rp   s     r   test_xorzTestWeakSet.test_xor   sm    F''44#dk"2"22A666)DK"8"88!<<<<<r   c                    |                      | j        | j        k               |                      | j        | j        k               |                      | j        | j        k               |                     | j        | j        k               |                     | j        | j        k               |                      t          d                              d                     |                      t          d                              d                     |                     t          d                              d                     |                     t          d                              d                     d S )Nr,   abccbs)rw   r=   r>   assertFalser?   rN   issubset
issupersetr   s    r   test_sub_and_superzTestWeakSet.test_sub_and_super   s7   4+==>>>*d.@@AAA*do=>>>+t/??@@@+t/??@@@C))%00111E

--c22333S**511222U..s3344444r   c                 :   |                      | j        | j        k                |                     | j        | j        k                |                     | j        | j        k                |                     t                      t                      k                d S r   )rw   r=   r>   r   r?   r   r   s    r   test_ltzTestWeakSet.test_lt   s    $*<<===+d.>>???4?:;;;WYY./////r   c                 :   |                      | j        | j        k               |                     | j        | j        k               |                     | j        | j        k               |                     t                      t                      k               d S r   )rw   r>   r=   r   r?   r   r   s    r   test_gtzTestWeakSet.test_gt   s    *T_<===+d.>>???4?:;;;WYY./////r   c                     t          d t          d          D                       }|D ]%}||_        ||_        t          |g          |_        &d S )Nc              3   2   K   | ]}t                      V  d S r   )r	   r(   rq   s     r   	<genexpr>z&TestWeakSet.test_gc.<locals>.<genexpr>   s&      //aCEE//////r   i  )r   ranger   subrN   )r   rC   elems      r   test_gczTestWeakSet.test_gc   s\    //5;;///// 	' 	'DDJDHvDHH	' 	'r   c                 0    G d dt                     } |            }t                      }|                    |           |                     ||           |                    |           |                    |           |                    |           d S )Nc                       e Zd Zd ZdS )5TestWeakSet.test_subclass_with_custom_hash.<locals>.Hc                 @    t          t          |           dz            S )Ni)intidr   s    r   __hash__z>TestWeakSet.test_subclass_with_custom_hash.<locals>.H.__hash__   s    2d88j0111r   N)r   r   r   r   r   r   r   Hr      s#        2 2 2 2 2r   r   )r   rN   addrP   removediscard)r   r   rC   fs       r   test_subclass_with_custom_hashz*TestWeakSet.test_subclass_with_custom_hash   s    	2 	2 	2 	2 	2 	2 	2 	2 !##
%%	aa		a			!r   c                    t                      }|                    | j                   |                     || j                   |                    | j                   |                     |t          | j                             |                     t          |j        |d           |                     t          |j        d           d S )NrU   rZ   )r   r   r8   r[   rC   r9   rV   rW   )r   rC   s     r   	test_initzTestWeakSet.test_init   s    II	

4:DF###	

4;GDK00111)QZA666)QZ33333r   c                     t          | j                  }t          |          }|                     t          |          t          |                     d S r   )r   r8   assertNotEqualr   )r   rC   ts      r   test_constructor_identityz%TestWeakSet.test_constructor_identity   sD    DJAJJBqEE2a55)))))r   c                 R    |                      t          t          | j                   d S r   )rV   rW   hashrC   r   s    r   	test_hashzTestWeakSet.test_hash   s"    )T4622222r   c                     | j                                          |                     | j         t          g                      |                     t	          | j                   d           d S )Nr   )rC   clearr[   r   r\   r   s    r   
test_clearzTestWeakSet.test_clear   sS    ---TVa(((((r   c                     | j                                         }|                     | j         |           |                     t	          | j                   t	          |                     d S r   )rC   copyr[   r   r   )r   dups     r   	test_copyzTestWeakSet.test_copy   sS    fkkmm%%%BtvJJ300000r   c                    t          d          }| j                            |           |                     || j                   | j                                        }| j                            |           |                     | j        |           |                     t          | j        j        g            | j                            t                                 t          j                     |                     t          | j                  dk               | j                            | j                   |                     t          | j                  dk               d S )NQrZ   )r&   rC   r   rP   r   r[   rV   rW   rH   r	   r   r]   rw   r\   rG   )r   r   r   s      r   test_addzTestWeakSet.test_add   s	   II

1a   fkkmm

1%%%)TVZ444CEEDG)***DHDG)*****r   c                 &   t          d          }| j                            |           |                     || j                   |                     t
          | j        j        |           |                     t          | j        j        g            d S )Nr,   )r&   rC   r   r`   rV   KeyErrorrW   )r   r   s     r   test_removezTestWeakSet.test_remove   sw    IIaDF###(DFM1555)TV]B77777r   c                 ,   t          d          t          d          }}| j                            |           |                     || j                   | j                            |           |                     t
          | j        j        g            d S )Nr,   r   )r&   rC   r   r`   rV   rW   )r   r,   qs      r   test_discardzTestWeakSet.test_discard   sy    Cyy$s))1qDF###q)TV^R88888r   c                     t          t          | j                            D ]6}| j                                        }|                     || j                   7|                     t          | j        j                   d S r   )r   r\   rC   ri   r`   rV   r   )r   rq   r   s      r   test_popzTestWeakSet.test_pop   sk    s46{{## 	+ 	+A6::<<DT46****(DFJ/////r   c                    | j                             | j                  }|                     |d            | j        | j        z   D ]}|                     || j                    |                     t          | j         j        g g           d S r   )rC   updater9   r[   r8   rP   rV   rW   r   retvalr)   s      r   test_updatezTestWeakSet.test_update   s    t{++&&&*t{* 	% 	%AMM!TV$$$$)TV]RD99999r   c                     | j                             t          | j                             | j        | j        z   D ]}|                     || j                    d S r   )rC   r   rN   r9   r8   rP   ra   s     r   test_update_setzTestWeakSet.test_update_set  s[    c$+&&'''*t{* 	% 	%AMM!TV$$$$	% 	%r   c                     | xj         t          | j                  z  c_         | j        | j        z   D ]}|                     || j                    d S r   )rC   rN   r9   r8   rP   ra   s     r   test_iorzTestWeakSet.test_ior	  sW    #dk"""*t{* 	% 	%AMM!TV$$$$	% 	%r   c                 t   | j                             | j                  }|                     |d            | j        | j        z   D ]K}|| j        v r%|| j        v r|                     || j                    0|                     || j                    L|                     t          | j         j        g g           d S r   )	rC   intersection_updater9   r[   r8   rP   r`   rV   rW   r   s      r   test_intersection_updatez$TestWeakSet.test_intersection_update  s    ++DK88&&&*t{* 	, 	,ADKAOOa((((  DF++++)TV%?"FFFFFr   c                     | xj         t          | j                  z  c_         | j        | j        z   D ]K}|| j        v r%|| j        v r|                     || j                    0|                     || j                    Ld S r   rC   rN   r9   r8   rP   r`   ra   s     r   	test_iandzTestWeakSet.test_iand  s    #dk"""*t{* 	, 	,ADKAOOa((((  DF++++		, 	,r   c                    | j                             | j                  }|                     |d            | j        | j        z   D ]K}|| j        v r%|| j        vr|                     || j                    0|                     || j                    L|                     t          | j         j        g g           |                     t          | j         j	        g g           d S r   )
rC   difference_updater9   r[   r8   rP   r`   rV   rW   symmetric_difference_updater   s      r   test_difference_updatez"TestWeakSet.test_difference_update   s    ))$+66&&&*t{* 	, 	,ADJ1DK#7#7a((((  DF++++)TV%=tDDD)TV%G"NNNNNr   c                     | xj         t          | j                  z  c_         | j        | j        z   D ]K}|| j        v r%|| j        vr|                     || j                    0|                     || j                    Ld S r   r   ra   s     r   	test_isubzTestWeakSet.test_isub+  s    #dk"""*t{* 	, 	,ADJ1DK#7#7a((((  DF++++		, 	,r   c                 v   | j                             | j                  }|                     |d            | j        | j        z   D ]L}|| j        v || j        v z  r|                     || j                    1|                     || j                    M|                     t          | j         j        g g           d S r   )	rC   r   r9   r[   r8   rP   r`   rV   rW   r   s      r    test_symmetric_difference_updatez,TestWeakSet.test_symmetric_difference_update3  s    33DK@@&&&*t{* 	, 	,ATZA$45 ,a((((  DF++++)TV%G"NNNNNr   c                    | xj         t          | j                  z  c_         | j        | j        z   D ]L}|| j        v || j        v z  r|                     || j                    1|                     || j                    Md S r   r   ra   s     r   	test_ixorzTestWeakSet.test_ixor=  s    #dk"""*t{* 	, 	,ATZA$45 ,a((((  DF++++		, 	,r   c                    | j                                         }||z  }|                     || j                    ||z  }|                     || j                    ||z  }|                     |t                                 | j                                         }||z  }|                     |t                                 d S r   )rC   r   r[   r   )r   r   s     r   test_inplace_on_selfz TestWeakSet.test_inplace_on_selfE  s    FKKMM	QDF###	QDF###	QGII&&&FKKMM	QGII&&&&&r   c                 j   |                      | j        | j        k               |                      | j        t          | j                  k               |                     | j        t          | j                  k               |                     | j        t          | j                  k               |                     | j        t          | j                  k               |                     | j        t          t          g          k               |                     | j        dk               d S )NrZ   )	rw   rC   r   r8   r   rN   rg   rh   r	   r   s    r   test_eqzTestWeakSet.test_eqQ  s    $&()))'$*"5"556663tz??23334
#3#334445#4#445557C5>>12221%%%%%r   c                     |                      | j        t          | j                  k               t	                      }t	                      }|                     ||k               d S r   )rw   rC   rN   r8   r   r   )r   s1s2s      r   test_nezTestWeakSet.test_ne[  sS    #dj//1222YYYYr"""""r   c                    d dD             }t          |          }t          |          }t          |           |d= t          j                     |                     t          t          |                    t          |          t          |          dz
  g           ~|                     t          |          t          |                     d S )Nc                 ,    g | ]}t          |          S r   r%   r'   s     r   r*   zATestWeakSet.test_weak_destroy_while_iterating.<locals>.<listcomp>d  s    222Qa222r   r+   rZ   )	r   iternextrj   rk   rP   r\   rg   r[   )r   r8   rC   its       r   !test_weak_destroy_while_iteratingz-TestWeakSet.test_weak_destroy_while_iteratinga  s     32/222ENN!WWR"I

c$r((mmc%jj#e**q.%ABBBQU,,,,,r   c                    d t           j        D             t                    t          j        fd            } |            5 }|                     |           d d d            n# 1 swxY w Y    |            5 }|                     t          j        |           d d d            n# 1 swxY w Y   |                     |            |            5 }	                    |           d d d            n# 1 swxY w Y   | 
                    |                                           } |            5 }                    |           d d d            n# 1 swxY w Y   |                     t                    t          |                      |            5 }                                 d d d            n# 1 swxY w Y   |                     t                    d           d S )Nc                 ,    g | ]}t          |          S r   r%   r'   s     r   r*   zLTestWeakSet.test_weak_destroy_and_mutate_while_iterating.<locals>.<listcomp>s  s    777Qa777r   c               3   D  K   	 t                    } t          t          t          |                               }t          t                                                              }||k    rt          |            t          j                     |V  d } d S # d } w xY wr   )r   r&   strr   ri   rj   rk   )r   yieldedrl   r8   rC   s      r   testcontextzMTestWeakSet.test_weak_destroy_and_mutate_while_iterating.<locals>.testcontextu  s      !WWs488}}--UYY[[))**a<< HHH
T				s   BB Br   )r@   rA   r   
contextlibcontextmanagerr`   rV   r   r   r   rP   r   r   r[   r\   r   )r   r   rl   r   r8   rC   s       @@r   ,test_weak_destroy_and_mutate_while_iteratingz8TestWeakSet.test_weak_destroy_and_mutate_while_iteratingq  s   77&"6777ENN		"	 	 	 	 	 
#	"	  []] 	#aQ"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#[]] 	5ah!444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5A[]] 	aEE!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	aFFHH[]] 	aHHQKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	QQ((([]] 	aGGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Q#####sZ   
A--A14A1"B00B47B4C==DD<EE"%E"#GGGc                    d}d t          |          D             }t          |          }~t          |          }	 t          |           n# t          $ r Y nw xY wt          j                     t          |          }~t          j                     t          j                     t          |          }|                     |d           | 	                    |d           d S )N   c                 *    g | ]}t                      S r   r   r   s     r   r*   z/TestWeakSet.test_len_cycles.<locals>.<listcomp>  s    ......r   )r   rZ   r   )
r   r   r   r   StopIterationrj   rk   r\   rP   r[   )r   Nr8   rC   r   n1n2s          r   test_len_cycleszTestWeakSet.test_len_cycles  s    ..U1XX...ENN!WW	HHHH 	 	 	D	

VV



VVb&!!!Qs   A 
AAc                 v    | j         t          j        gt          j                    R   t	          dd          D ]}d}t          j        d           t          j        |||           d t	          |          D             }t          |          }~t          |          }	 t          |           n# t          $ r Y nw xY wt          |          }~t          |          }|                     |d           |                     ||           |                     |d           |                     ||           d S )NrZ   d   r   r   c                 *    g | ]}t                      S r   r   r   s     r   r*   z-TestWeakSet.test_len_race.<locals>.<listcomp>  s    222AXZZ222r   )
addCleanuprj   set_thresholdget_thresholdr   rk   r   r   r   r   r\   assertGreaterEqualassertLessEqual)r   thr   r8   rC   r   r   r   s           r   test_len_racezTestWeakSet.test_len_race  sH   (>2+;+=+=>>>>3-- 	) 	)BAJqMMMRR(((22q222EAaBR    QBQB##B***  Q'''##B***  R(((('	) 	)s   !B11
B>=B>c                     d S r   r   r   s    r   	test_reprzTestWeakSet.test_repr  s      r   c                     |                      | j        t                     |                      | j        t                     d S r   )assertIsInstancerC   r   r   r   s    r   test_abczTestWeakSet.test_abc  s8    dfc***dfj11111r   c                    t           t          fD ]} || j                  }dg|_        dg|_        t          j        |          }|                     ||           |                     ||           |                     ||           | 	                    |j        |j                   | 	                    |j        |j                   | 
                    t          |d                     t          j        |          }|                     ||           |                     ||           |                     ||           |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   | 
                    t          |d                     d S )Nr   r/   r   )r   r   r8   r   r/   r   r	  r[   assertIsNotassertIsr   hasattrdeepcopy)r   clsrC   r   s       r   test_copyingzTestWeakSet.test_copying  s   ,, 	0 	0CDJA%AC%AC)A,,C!!#s+++S!$$$S!$$$MM#%%%%MM#%%%%WS#..///-""C!!#s+++S!$$$S!$$$SUAC(((SUAC(((SUAC(((SUAC(((WS#..////+	0 	0r   N)2r   r   r   rI   rS   rX   r^   rb   rn   rr   ru   ry   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r   r   r   r"   r"      s       & & & = = =5 5 5* * *- - -E E E"= = =
3 3 3F F F= = =
> > >= = =

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