
    dafu                       d Z ddlZddlZddlZddlZddlZddlZddlmZm	Z	 ddl
mZmZmZ ddlZddlZddlmZ ddlZddlZddlmZmZmZmZ ddlmZmZmZ ddlmZ dd	lmZ dd
lmZmZ ddlm Z m!Z!m"Z" ddlm#Z#m$Z$m%Z%m&Z&m'Z' ddlm(Z(m)Z)m*Z*m+Z+ ddlm,Z,m-Z- ddlm.Z.m/Z/m0Z0m1Z1m2Z2 ddlm3Z3m4Z4 ddlm5Z5m6Z6  G d dejn                        Z8 G d dejn                        Z9 edd      Z: G d dejn                        Z; G d dejn                        Z<d Z= G d de<      Z> G d d e-      Z? G d! d"e<      Z@ G d# d$e      ZA G d% d&e      ZB G d' d(ejn                        ZCd) ZDeEd*k(  r ej                          yy)+zUnit tests for collections.py.    N)choice	randrange)productchaincombinations)support)
namedtupleCounterOrderedDict_count_elements)UserDict
UserStringUserList)ChainMap)deque)	Awaitable	Coroutine)AsyncIteratorAsyncIterableAsyncGenerator)HashableIterableIterator	Generator
Reversible)Sized	ContainerCallable
Collection)Set
MutableSet)MappingMutableMappingKeysView	ItemsView
ValuesView)SequenceMutableSequence)
ByteStringBufferc                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestUserObjectsc                     | j                  t        t        |            t        t        |            dj                  |j                  |j                               y )Nz&{a} should have all the methods of {b}ab)assertGreaterEqualsetdirformat__name__)selfr/   r0   s      0/root/Python-3.12.4/Lib/test/test_collections.py_superset_testzTestUserObjects._superset_test    sG    AKAK4;;**** < 	
    c                    |j                         }| j                  |j                  |j                         | j                  |j                  |j                         dg|_        t        j                   |      }| j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         y )Ni  )copyassertIsNotdataassertEqualtestassertIs)r6   objobj_copys      r7   
_copy_testzTestUserObjects._copy_test*   s    88:8==18==1 699S>8==18==1chh.r9   c                 8    | j                  t        t               y N)r8   r   strr6   s    r7   test_str_protocolz!TestUserObjects.test_str_protocol7   s    J,r9   c                 8    | j                  t        t               y rE   )r8   r   listrG   s    r7   test_list_protocolz"TestUserObjects.test_list_protocol:       Hd+r9   c                 8    | j                  t        t               y rE   )r8   r   dictrG   s    r7   test_dict_protocolz"TestUserObjects.test_dict_protocol=   rL   r9   c                 \    t               }|j                  d       | j                  |       y )N{   )r   appendrC   r6   rA   s     r7   test_list_copyzTestUserObjects.test_list_copy@   s     j

3r9   c                 D    t               }d|d<   | j                  |       y )NabcrQ   )r   rC   rS   s     r7   test_dict_copyzTestUserObjects.test_dict_copyE   s    jCr9   c                      G d dt               }| j                   |       d   d       | j                   |       j                  d      d        y )Nc                       e Zd Zd Zy),TestUserObjects.test_dict_missing.<locals>.Ac                      y)N   r6   keys     r7   __missing__z8TestUserObjects.test_dict_missing.<locals>.A.__missing__L       r9   Nr5   
__module____qualname__r`   r]   r9   r7   ArZ   K       r9   re   rQ   r\   )r   r>   r@   get)r6   re   s     r7   test_dict_missingz!TestUserObjects.test_dict_missingJ   s>    	 	 	S3'acggclD)r9   N)r5   rc   rd   r8   rC   rH   rK   rO   rT   rW   rh   r]   r9   r7   r,   r,      s*    
/-,,

*r9   r,   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestChainMapc                 V
   t               }d|d<   d|d<   |j                         }d|d<   d|d<   | j                  |j                  dddddd	g       | j                  |j	                         t        ddd
      j	                                | j                  t        |      d       dD ]  }| j                  ||        t        dddd      j	                         D ]'  \  }}| j                  |j                  |d      |       ) |d= | j                  |j                  ddiddd	g       | j                  |j	                         t        ddd
      j	                                | j                  t        |      d       dD ]  }| j                  ||        t        dddd      j	                         D ]'  \  }}| j                  |j                  |d      |       ) | j                  t        |      t        |      j                  dz   t        |      j                  dz   g       |j                         t        j                  |      fD ]  }| j                  ||       | j                  |j                  |j                         | j                  ||       | j                  |j                  d   |j                  d          t        |j                  dd  |j                  dd        D ]  \  }}| j                  ||         t!        t"        j$                  dz         D ]  }	t#        j&                  t#        j(                  ||	            }| j                  ||       | j                  |j                  |j                         | j                  ||       t        |j                  |j                        D ]  \  }}| j                  |||         t        j*                  |      t-        t        |            fD ]  }| j                  ||       | j                  |j                  |j                         | j                  ||       t        |j                  |j                        D ]  \  }}| j                  |||         |j                         }
d|
d<   | j                  |
j                  ddiddiddd	g       | j                  |
j.                  j                  ddiddd	g       | j                  |
d   d       | j                  |
j.                  d   d       y )N   r/      r0         cr0   rp   r.   r/   r0   rp      rV   d   )r/   r0   rp   zz({'c': 30}, {'a': 1, 'b': 2})z({'c': 30}, {'b': 2, 'a': 1})r      )r   	new_childr>   mapsitemsrN   lenassertInrg   reprtyper5   r;   r<   zipr@   rangepickleHIGHEST_PROTOCOLloadsdumpsdeepcopyevalparents)r6   rp   dr_   kvem1m2protofs              r7   test_basicszTestChainMap.test_basicsY   sy   J##KKM##rr"2N!CDD1b$9$?$?$ABQ# 	"CMM#q!	"1bC0668 	/DAqQUU1c]A.	/ cF3r(N!;<D1R$8$>$>$@AQ# 	"CMM#q!	"1R3/557 	/DAqQUU1c]A.	/d1gG>>G>> 
 	
 499Q<' 	&AQ"QVVQVV,Q"QVVAYq	2affQRj!&&*5 &Bb"%&	& 622Q67 	,EV\\!U34AQ"QVVQVV,Q"affaff- ,B  R+,	, --"tAw- 	,A Q"QVVQVV,Q"affaff- ,B  R+,	, KKM#3(SH1!n!EF3r(N)CD3#3+r9   c                     ddd}ddd}t        ||      }|j                         }|j                  |       | j                  t	        |j                               t	        |j                                      y )Nbach	rembrandt)musicartzvan goghcarmen)r   opera)r   r;   updater>   rJ   ry   )r6   baselineadjustmentscmcombineds        r7   test_orderingzTestChainMap.test_ordering   sb     $K8(8<k8,==?$hnn./bhhj1ABr9   c                     | j                  t               j                  i g       | j                  t        ddi      j                  ddig       y Nrl   rm   )r>   r   rx   rG   s    r7   test_constructorzTestChainMap.test_constructor   s>    2$/1Q%--1w7r9   c                     | j                  t                      | j                  t        i i              | j                  t        ddii              | j                  t        i ddi             y r   )assertFalser   
assertTruerG   s    r7   	test_boolzTestChainMap.test_bool   sU    $"b)*!A+,aU+,r9   c                     G d dt               } |t        dd      t        dd            }t        dddd	
      j                         D ]  \  }}| j                  ||   |        t        dddd
      j                         D ]'  \  }}| j                  |j	                  |d      |       ) t        dddd
      j                         D ]  \  }}| j                  ||v |        | j                  |j                  dd      d|       | j                  |j                  dd      d       | j                  |j                         d       | j                  t              5  |j                          d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zd Zy)2TestChainMap.test_missing.<locals>.DefaultChainMapc                      y)N  r]   r^   s     r7   r`   z>TestChainMap.test_missing.<locals>.DefaultChainMap.__missing__   ra   r9   Nrb   r]   r9   r7   DefaultChainMapr      rf   r9   r   rl   rm   r.   rn   ro   rq   r   r/   r0   rp   r   M   TFr/   i  i  r0   rm   )	r   rN   ry   r>   rg   poppopitemassertRaisesKeyError)r6   r   r   r   r   s        r7   test_missingzTestChainMap.test_missing   sZ   	h 	 D1ND2,<=1R3/557 	&DAqQqT1%	&1R2.446 	.DAqQUU1b\1-	.44459??A 	(DAqQ!VQ'	(sD)1a0sD)40h/x( 	IIK	 	 	s   #E==Fc                 l   t        t        dd      t               t        ddd      t        dd	d
dd      t               t        dd      t        ddddd      t                     }| j                  dj                  |      d       | j                  t	        |j                               g d       y )Nr   8[ )jh'  \    )ir   rp        	  M  ix  )r   r0   grp   r   7      )r   r0   rl   rm   rs      rv   r/   r0   rp   r   r    
abcdefghij)
)r/   rl   )r0   r   )rp   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   r>   joinrJ   ry   r6   r   s     r7   test_order_preservationz$TestChainMap.test_order_preservation   s    a5)ddd3cSC3#>bB'a1Q!4	 	\2aggi$	%r9   c                      G d dt               } |d      }t        |      }d|_        t        |       | j	                  |j                  d       y )Nc                       e Zd Zd Zd Zy)KTestChainMap.test_iter_not_calling_getitem_on_maps.<locals>.DictWithGetItemc                 D    d| _         t        j                  | g|i | y NF)calledr   __init__r6   argskwdss      r7   r   zTTestChainMap.test_iter_not_calling_getitem_on_maps.<locals>.DictWithGetItem.__init__   s!    #!!$666r9   c                 >    d| _         t        j                  | |       y NT)r   r   __getitem__r6   items     r7   r   zWTestChainMap.test_iter_not_calling_getitem_on_maps.<locals>.DictWithGetItem.__getitem__   s    "$$T40r9   N)r5   rc   rd   r   r   r]   r9   r7   DictWithGetItemr      s    71r9   r   rl   r/   Fz__getitem__ was called)r   r   r   r2   r   )r6   r   r   rp   s       r7   %test_iter_not_calling_getitem_on_mapsz2TestChainMap.test_iter_not_calling_getitem_on_maps   sF    	1h 	1 a QKA#;<r9   c                     t        t        dd      t        dd            }| j                  t        |      t        ddd             | j                  t        |j                               t        ddd             y )Nrl   rm   r.   rn   ro   rq   rr   )r   rN   r>   ry   r   s     r7   test_dict_coercionzTestChainMap.test_dict_coercion   s[    TA^TB"%56a$a2"67aggi$a2*>?r9   c                    t               }d|d<   d|d<   ddd}|j                  |      }| j                  |j                  ddddddg       | j	                  ||j                  d	           G d
 dt
              }t               }d|d<   d|d<    |dd      }|j                  |      }| j	                  ||j                  d	          dD ]  }| j                  ||        t        dddd      j                         D ]'  \  }}| j                  |j                  |d      |       ) t        ddd      }|j                  dd      }| j                  |j                  ddddddg       y)z#Tests for changes for issue #16613.rl   r/   rm   r0   rn   ro   rq   r.   r   c                       e Zd Zd Zd Zy).TestChainMap.test_new_child.<locals>.lowerdictc                 n    t        |t              r|j                         }t        j	                  | |      S rE   )
isinstancerF   lowerrN   r   r^   s     r7   r   z:TestChainMap.test_new_child.<locals>.lowerdict.__getitem__   s*    c3'))+C''c22r9   c                 n    t        |t              r|j                         }t        j	                  | |      S rE   )r   rF   r   rN   __contains__r^   s     r7   r   z;TestChainMap.test_new_child.<locals>.lowerdict.__contains__   s*    c3'))+C((s33r9   N)r5   rc   rd   r   r   r]   r9   r7   	lowerdictr      s    34r9   r   rV   rt   )r/   BCru   N)	r   rw   r>   rx   r@   rN   r{   ry   rg   )r6   rp   mr   r   r_   r   r   s           r7   test_new_childzTestChainMap.test_new_child   sd   J##"KKNrr"2N!CDa#	4 	4 J##b!KKNa# 	"CMM#q!	"1bC0668 	/DAqQUU1c]A.	/ 11%&KK"K#"4AA6F!GHr9   c                    t        t        dd      t        dd            }t        t        dd	      t        d
d            }|j                         }t        dd      }ddg}||z  }| j                  |j                  |j                  d   t        |      z  g|j                  dd         ||z  }| j                  ||       ||z  }| j                  |j                  |j                  d   |z  g|j                  dd         | j                  ||z  j                  |t        |      z  g       ||z  }| j                  ||       | j                  t              5  ||z   d d d        |j                         }||z  }| j                  |j                  |j                  d   t        |      z  g|j                  dd          G d dt               } G d dt               }t               t               z  }| j                  t        |      t                | j                  t        |j                  d         t               t                |       z  }| j                  t        |      t                | j                  t        |j                  d         t                |       t               z  }| j                  t        |      |       | j                  t        |j                  d         t               t                |       z  }| j                  t        |      |       | j                  t        |j                  d         t               y # 1 sw Y   xY w)Nrl   rm   r.   rs   r   )rp   r   
   rv   )r/   r   rn   )r0   r   ro   )r/   rp   )rp   rs   )pr   r   c                       e Zd Zy)3TestChainMap.test_union_operators.<locals>.SubclassNr5   rc   rd   r]   r9   r7   Subclassr   "      r9   r   c                        e Zd Z fdZ xZS )6TestChainMap.test_union_operators.<locals>.SubclassRorc                 "    t         |   |      S rE   )super__ror__)r6   other	__class__s     r7   r   z>TestChainMap.test_union_operators.<locals>.SubclassRor.__ror__&  s    wu--r9   )r5   rc   rd   r   __classcell__r   s   @r7   SubclassRorr   %  s    . .r9   r   )	r   rN   r;   r>   rx   r   	TypeErrorr@   r}   )	r6   cm1cm2cm3r   pairstmpr   r   s	            r7   test_union_operatorsz!TestChainMap.test_union_operators  s   ta1~ta1~6tbArQ8hhj27#CiCHHQK$s)$;#Kchhqrl#KLs
c"AgCHHQK!O#Cchhqrl#CD!c'!d3i-9qc" y) 	%K	hhjuCHHQK$u+$=#M#MN	x 		.( 	. j8:%d3i*d388A;'.j8:%d3i*d388A;'.j8:%d3i*d388A;'.j;=(d3i-d388A;'.3	 	s    MM N)r5   rc   rd   r   r   r   r   r   r   r   r   r   r  r]   r9   r7   rj   rj   W   s9    :,xC8-"%"= @
"IH,/r9   rj   TestNTzx y zc                      e Zd Zd Zd Zd Z ej                  ej                  j                  dk\  d      d        Z ej                  ej                  j                  dk\  d      d        Zej                   ej                  ej                  j                  dk\  d      d               Zej                  d	        Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                  d        Zd Zd Zd Zy)TestNamedTuplec                    t        dd      }| j                  |j                  d       | j                  |j                  d       | j                  |j                  t               | j                  |j
                  t        j
                         | j                  |j                  d       | j                  t        t         dd       | j                  t        t         dd       | j                  t        t         dd       | j                  t        t         d	d
       | j                  t        t         d	d       | j                  t        t         d	d       | j                  t        t         d	d       | j                  t        t         d	d       t        dd       t        dd       t        dd      }| j                  dt        |j                               t        dd      }| j                  dt        |j                               | j                  t        |j                  dg       | j                  t        |j                  g d       y )NPointx yr]   xyzabc%zefg ghiclass9abcrV   zefg g%hiz	abc classz	8efg 9ghiz_efg ghizefg efg ghiPoint0zx1 y2_za b cntzthe quick brown foxzu')thequick   )r  r   !   )r	   r>   r5   	__slots__rc   r   tuple_fieldsr   
ValueErrorassertNotInr|   r   _make)r6   r  r  s      r7   test_factoryzTestNamedTuple.test_factory?  s   7E*1"-))84**E,=,=>
3*j&)D*j'9E*j&)D*j%D*j%E*j%E*j%D*j%G8W%3 34tBJJ/0./tBJJ/0)U[[2$7)U[[,?r9   c                 v   t        ddd      }| j                  |j                  ddd       | j                   |dd	      d
       | j                   |d      d       | j                   |       d       t        ddd      }| j                  |j                  ddi       | j                   |dd	      d
       | j                   |d      d       t        ddd      }| j                  |j                  i        | j                   |dd	      d
       | j                  t              5   |d       d d d        | j                  t              5   |        d d d        | j                  t              5   |dd	d       d d d        | j                  t              5  t        ddd      }d d d        | j                  t              5  t        ddd      }d d d        | j                  t              5  t        ddd      }d d d        t        ddd       }| j                  |j                  i        | j                  |j                  j                  d        | j                   |dd      d       | j                  t              5   |d       d d d        t        ddddg      }| j                  |j                  ddd       | j                  |j                  j                  d       | j                   |dd	      d
       | j                   |d      d       | j                   |       d       t        ddt        ddg            }| j                  |j                  ddd       | j                  |j                  j                  d       | j                   |dd	      d
       | j                   |d      d       | j                   |       d       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   {xY w# 1 sw Y   \xY w# 1 sw Y   =xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr  r  )r   rn   )defaultsr   rn   r  rl   rm   rl   rm   )rl   rn   )rn   r
  r]   rs   r   rn   ro   F)	r	   r>   _field_defaultsr   r   assertIsNone__new____defaults__iterr6   r  s     r7   test_defaultszTestNamedTuple.test_defaults\  s   7EH=..br0BCq!f-q7+(+7EE:..b	:q!f-q7+7EB7..3q!f-y) 	!H	 y) 	G	y) 	!QN	y) 	FwEE	Fy) 	<w;E	<y) 	?w>E	? 7ED9..3%--44d;r21y) 	"I	 7ERH=..br0BC33X>q!f-q7+(+7ED"bNC..br0BC33X>q!f-q7+(+C	 		 		 		F 	F	< 	<	? 	?	 	sT   +	O O-6O:P
P6P!	P. O*-O7:PPP!P+.P8c                    t        dd      } |dd      }| j                  t              5  d|_        d d d        | j                  t              5  |`d d d        | j                  t              5  d|d<   d d d        | j                  t              5  |d= d d d        | j                  |j                  d       | j                  |d   d       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   txY w# 1 sw Y   _xY w)Nr  r  r  r   r  r   )r	   r   AttributeErrorr	  r   r>   r6   r  r   s      r7   test_readonlyzTestNamedTuple.test_readonly  s    7E*"bM~. 	AC	~. 		y) 	AaD	y) 	!	b!1r"	 		 		 		 	s/   CC0C)C5CC&)C25C>rm   z)Docstrings are omitted with -O2 and abovec                     t        dd      }| j                  |j                  d       d|_        | j                  |j                  d       y )Nr  r  zPoint(x, y)z2D point)r	   r>   __doc__r$  s     r7   test_factory_doc_attrz$TestNamedTuple.test_factory_doc_attr  s?     7E*6"
3r9   c                    t        dd      }| j                  |j                  j                  d       | j                  |j                  j                  d       d|j                  _        | j                  |j                  j                  d       t        dd      }| j                  |j                  j                  d       d|j                  _        | j                  |j                  j                  d       y )Nr  r  zAlias for field number 0zAlias for field number 1zdocstring for Point.xVectorzdocstring for Vector.x)r	   r>   r	  r+  r
  )r6   r  r.  s      r7   test_field_doczTestNamedTuple.test_field_doc  s     7E**DE*DE1*ABHe,))+EF3))+CDr9   c                 $   t        dddg      }t        dddg      }| j                  |j                  j                  |j                  j                         | j                  |j
                  j                  |j                  j                         y )NPr   nQor   )r	   r@   r   r+  r4  r2  r   )r6   r1  r3  s      r7   test_field_doc_reusez#TestNamedTuple.test_field_doc_reuse  s`     sS#J'sS#J'acckk133;;/acckk133;;/r9   c                    t        dd      }| j                  t        |j                        d       | j                  t        |j                        d       d|j                  _        d|j                  _        | j                  t        |j                        d       | j                  t        |j                        d       y )	Nr  r  z+_tuplegetter(0, 'Alias for field number 0')z+_tuplegetter(1, 'Alias for field number 1')zThe x-coordinatezThe y-coordinatez#_tuplegetter(0, 'The x-coordinate')z#_tuplegetter(1, 'The y-coordinate'))r	   r>   r|   r	  r
  r+  r$  s     r7   test_field_reprzTestNamedTuple.test_field_repr  s    7E*egg(UVegg(UV,,egg(MNegg(MNr9   c                     ddgddgddgddgdd	gd
dgfD ]-  \  }}| j                  t        d|d      j                  |       / y )N)efgzg%hi)r9  _1)rV   r  rV   r:  )8efg9ghi)_0r:  )rV   _efg)rV   r9  r9  ghi)rV   r9  _2r@  )rV   r   r	  )rV   r:  r	  NTTrename)r>   r	   r  )r6   specrenameds      r7   test_name_fixerzTestNamedTuple.test_name_fixer  sl    }-}-|,m,)+FG12
 	SMD' Zd4@HH'R	Sr9   c                 l    t        dddgt              }| j                  |j                  t               y )NrB  r	  r
  )module)r	   collectionsr>   rc   r6   rB  s     r7   test_module_parameterz$TestNamedTuple.test_module_parameter  s(    sCj=4r9   c                    t        dd      } |dd      }| j                  | |dd             | j                  | |dd             | j                  | |dd             | j                  | |d        | j                  | |di t        dd             | j                  t        |d	       | j                  t        |d	d
d       | j                  t              5   |d	d
       d d d        | j                  t              5   |d	       d d d        | j                  t        |      d       | j                  dt        |             | j                  ||j                  ddg             | j                  |j                  d       | j                  |j                  d	      d       | j                  |j                         t        dd             	 |j                  d	d
       | j                  d       t        dd      } |dd      }| j                  t        |      d       t        dd      } |dd      }| j                  t        |      d       y # 1 sw Y   {xY w# 1 sw Y   axY w# t        $ r Y w xY w)Nr  r  r  r   r  )r
  )r
  r	  r  r   rl   rm   rs   )XXXr
  r	  zPoint(x=11, y=22)__weakref__)rl   r   )r	  errorz%Did not detect an incorrect fieldnamezx, yr]   )r	   r>   rN   r   r   r|   r  r3   r  r  _replace_asdict_failr  r(  s      r7   test_instancezTestNamedTuple.test_instance  s7   7E*"bMEB"-.E"O,EB"-.E8,-E5D2$456)UA.)UAq!4y) 	a1	y) 	AJ	a"56A/EKKR12J/a'2dR2&67	@JJ!J$ JJ>? 7F+B"a"56 7J/B"a"565	 		 	  		s*   !I%	
I2I? %I/2I<?	J
Jc                 f   t        dd      } |dd      }| j                  |t               | j                  |d       | j                  t        |      d       | j                  t	        |      ddg       | j                  t        |      d       | j                  t        | d       |\  }}| j                  |||f       | j                  |d   |d   fd       | j                  t              5  |d    d d d        | j                  |d	   d       | j                  t        |      t        d             | j                  |j                  |       | j                  |j                  |       | j                  t              5  |j                   d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)
Nr  r  r  r   rN  r   rl   rs   )r	   assertIsInstancer  r>   rJ   maxr   
IndexErrorhashr	  r
  r'  ru   )r6   r  r   r	  r
  s        r7   test_tuplenesszTestNamedTuple.test_tupleness  ss   7E*"bMa'H%q8,a2r(+Q$a"%1QF#!A$!x0z* 	aD	2#a$x.1a a ~. 	CC	 		 		 	s   1FF'F$'F0c           	         t        dd      }| j                   |       d       | j                  |j                  g       d       | j                  t         |             d       | j                   |       j	                         i        | j                   |       j
                  d       t        dd      }| j                   |d      d       | j                  |j                  dg      d       | j                   |d      j                  d       | j                  t         |d            d	       | j                   |d      j	                         ddi       | j                   |d      j                  d
      d       | j                   |d      j
                  d       t        j                  }t        t        d t        |      D                    }t        |      }t        d|      } |t        |       }| j                  |t        t        |                   | j                  |j                  t        |            t        t        |                   t        |      D ]!  \  }}| j                  t!        ||      |       # t        |       |j	                         }	t#        t%        |t        |                  }
| j                  |	|
        |j                  di t#        |d   d
f|d   dfg      }t        t        |            }d
|d<   d|d<   | j                  |t        |             | j                  |j
                  t        |             y )NZeror   r]   zZero()Dotr   rl   rl   zDot(d=1)r   )r   )r   c           	   3      K   | ]C  }d j                  t        d      D cg c]  }t        t        j                         c}       E yc c}w w)r   r   N)r   r   r   stringascii_letters).0r   r   s      r7   	<genexpr>z0TestNamedTuple.test_odd_sizes.<locals>.<genexpr>%  sM      J;< +09"6&' #))=)="> "6 7 J "6s   A A
ABig*   )r	   r>   r  r|   rT  r  r   rS  r   EXCEEDS_RECURSION_LIMITrJ   r2   r   rz   r  	enumerategetattrrN   r~   )r6   r_  r`  r2  namesrg  r0   posnamer   
d_expectedb2b2_expecteds                r7   test_odd_sizeszTestNamedTuple.test_odd_sizes  s   &"%$B,dfx0)2.,$Q&A3.Q1%c!fz2Q)C73Q3/8Q0++S J@EaJ J KJ&qNE%(O,58,eE!Ho>"5) 	4ICWQ-s3	4QIIK#eU1X./
J'QZZB$q3rB@AB58nABU;/0E%L1r9   c           	      d   t        ddd      }t        fD ]  }t        |d      }t        |d      }t        d|j                  dz         D ]b  } | |||            }| j                  ||       | j                  |j                  |j                         | j                  d	 |||             d  y )
Nr   rn   ro   r	  r
  ru   r   r   rX  rl   s   OrderedDict)r  r   rl  r   r   r>   r  r  )r6   r   rI  r   r   protocolqs          r7   test_picklezTestNamedTuple.test_pickle9  s    R2$i 	EFFG,EFG,E!"f&=&=&AB E%8,-  A&  AII6  q(1CD	E	Er9   c                     t        ddd      }t        j                  t        j                  fD ]B  } ||      }| j                  ||       | j                  |j                  |j                         D y )Nr   rn   ro   ru  )r  r;   r   r>   r  )r6   r   copierrw  s       r7   	test_copyzTestNamedTuple.test_copyD  s]    R2$ii. 	3Fq	AQ"QYY		2	3r9   c           
         t        dd      } |ddddd      }| j                  |d       |j                  d	d
ddd      }| j                  |d       h d}t        d|      }t        t	        t        |                  } || }| j                  ||        |di t        t        |j                  |            }| j                  ||       |j                  |      }| j                  ||       t        |       | j                  |j                         t        t        |j                  |                   |j                  |      }t        d |D              } |j                  di t        t        |j                  |            }| j                  ||       | j                  |j                  t        |             | j                  |j                         |       y )NTz"itemgetter property self cls tuplerl   rm   rs   r   rv   )rl   rm   rs   r   rv   r   rn   ro   (   2   )
itemgetterpropertyr6   clsr  )r   rn   ro   r~  r  >   r/   r   r   r   rsr	  r
  ru   AtanbebyoftoupForGotaddallbutr  docrg   gothasrz   mapnewr   r2   rF   sysr  user~   MakeNoteTypeUsedalsor   r;   rN   exechelpr   r   likerJ   rx   mustro  r|   seenr6   sidestepthanthisr}   useduserworkAliasBuildFieldr  addedbuildrR  fieldframeindexnamedrm  needsplainsplitstarttheirr  validwherewhichBypassCreateHelperJythonModifyReturncannoteffecteitherfieldsgettermethodrI  nicelynumberobjectoptionr   rD  resultrc  unpackvaluesReturnsconvertcreateddefinedexamplegreaterkeywordmessagemethodsregularreplacestringstargetsverboseExpectedr   Validatearg_listbuiltinscreationfunctiongenerateinstanceiterablekeywordsmetadataoperatorpicklingr  repr_fmtsequencesubclasstypenamevariabler   	Variables	arguments	debugging	docstring	duplicaterk  	f_globals	formatted	functions	indexable	interning	namespace	replacing	specified	tuple_new
IronPythonr  
accessible
dictionary
docstringsr   r  r	   
num_fields
particular
positional
startswith
underscore
unexpectedEncounteredr   classmethodrJ  field_namesidentifiersinstantiatemodule_namenamedtuple_environmentsisidentifierautomaticallyintrospectionr'  representationclass_namespacereuse_itemgetterc              3   &   K   | ]	  }|d z    yw)r   Nr]   )re  r   s     r7   rf  z5TestNamedTuple.test_name_conflicts.<locals>.<genexpr>  s     /1!B$/   r]   )r	   r>   rS  r  r   rz   rN   r~   r  r  r|   rT  __getnewargs__)r6   r}  tnewtwordsr  	newvaluess          r7   test_name_conflictsz"TestNamedTuple.test_name_conflictsK  s    s@AaAq!K(zzR"22RzP/0/: sE"uSZ()vJF#-SF+,-F#GGFOF#Qd3qyy&+A&BCGGFO///	qzz<DQYY	!:;<y)E%L1))+V4r9   c                     t        dd      }| j                  t         |d            d        G d d|      }| j                  t         |d            d       y )Nre   r	  rl   zA(x=1)c                       e Zd Zy)#TestNamedTuple.test_repr.<locals>.BNr   r]   r9   r7   r   r    r   r9   r   zB(x=1))r	   r>   r|   )r6   re   r   s      r7   	test_reprzTestNamedTuple.test_repr  sJ    sC adX.	 	adX.r9   c                 B   | j                  t              5  t        dddgd      }d d d        t        dddgd      }| j                  |j                  d       | j                  t              5  t        dddgd	d      }d d d        y # 1 sw Y   dxY w# 1 sw Y   y xY w)
NrB  r	  r
  TrV   defrC  r;  F)r   r   r	   r>   r  rK  s     r7   test_keyword_only_argumentsz*TestNamedTuple.test_keyword_only_arguments  s    y) 	4D3*d3B	4 uenT:]3y) 	?D5%.%>B	? 	?	4 	4
	? 	?s   B	/B	BBc           	           G d dt        dddg            } |dd      }| j                  |j                         t        dd	g             d
|_        | j                  |j
                  dd
i       y )Nc                       e Zd Zy)BTestNamedTuple.test_namedtuple_subclass_issue_24931.<locals>.PointNr   r]   r9   r7   r  r$    r   r9   r  _Pointr	  r
  rs   r   )r	  rs   )r
  r   rv   w)r	   r>   rT  r   r&  __dict__)r6   r  r/   s      r7   $test_namedtuple_subclass_issue_24931z3TestNamedTuple.test_namedtuple_subclass_issue_24931  se    	Jx#s4 	 !QKk8X2F&GHc1X.r9   c                    t        dd       dd      }| j                  t        j                  j                               | j                  j                  j                  |      d       | j                  t        j                  j                  |d       | j                  t        j                  j                  |       t        t        j                  dz         D ]q  | j                        5   G fdd	t              } |dd
g      }| j                  |j                  d       | j                  |j                   d
       d d d        s y # 1 sw Y   ~xY w)Nr  r  r  r   r  rl   r   c                       e Zd Z ej                   ej
                  W  j                  W             Z ej                   ej
                  W  j                  W             Zy)6TestNamedTuple.test_field_descriptor.<locals>.NewPointN)r5   rc   rd   r   r   r   r	  r
  )r  r   s   r7   NewPointr,    sE    $\V\\%''5%ABA$\V\\%''5%ABAr9   r-  rm   )r	   r   inspectisdatadescriptorr	  r>   __get__r   r'  __set__
__delete__r   r   r   subTestr  r
  )r6   r   r-  npr  r   s       @@r7   test_field_descriptorz$TestNamedTuple.test_field_descriptor  s   7E*"bM009:+R0.%''//1bA.%''*<*<a@622Q67 		*EE* *Cu C q!f%  q)  q)* *		** *s   9AEE"	c                     t        dd      }|j                  }| j                  |j                  d   i        | j                  |j                  i        y )Nr   r]   __builtins__)r	   r!  r>   __globals__r7  )r6   rA   new_funcs      r7   test_new_builtins_issue_43102z,TestNamedTuple.test_new_builtins_issue_43102  sH    b!;;--n=rB..3r9   c                 T    t        dd      }| j                  |j                  d       y )Nr  r  r  )r	   r>   __match_args__r$  s     r7   test_match_argszTestNamedTuple.test_match_args  s$    7E*--z:r9   c                    t        j                  dd      }|t        t        t           f   }| j	                  |j
                  |       | j	                  |j                  d       | j	                  |j                  t        t        t           f        |ddg      }| j                  t        |      |       | j	                  |ddgf       y )NGroupz	key groupr]   rl   rm   )
rJ  r	   intrJ   r>   
__origin____parameters____args__r@   r}   )r6   r?  re   r/   s       r7   test_non_generic_subscriptz)TestNamedTuple.test_non_generic_subscript  s     &&w<#tCy.!u-))2.c49%56a!Id1gu%QH%r9   N) r5   rc   rd   r  r%  r)  unittestskipIfr  flagsoptimizer,  r/  r   cpython_onlyr5  r7  rG  rL  rV  r]  rs  rx  r{  r  r  r!  r(  r5  r:  r=  rD  r]   r9   r7   r  r  =  sC   @:0,d# X__SYY''1,@B4B4 X__SYY''1,@B
EB
E X__SYY''1,@B0B 0 	O 	O	S5$7L.$2L	E3>5@/?/ * *&4;
&r9   r  c                       e Zd Zd Zd Zd Zy)ABCTestCasec                     t         j                  |d       }t        d|f|      } |        |D ]:  }|j                         }||= t        d|f|      }| j	                  t
        ||       < y )Nc                      yNr   r]   r  r   s     r7   <lambda>z7ABCTestCase.validate_abstract_methods.<locals>.<lambda>      r9   r   )rN   fromkeysr}   r;   r   r   )r6   rV   rm  methodstubsr   ro  stubss          r7   validate_abstract_methodsz%ABCTestCase.validate_abstract_methods  sr    mmE+=> sfk*	  	2D$$&EdS3&%(AiD1		2r9   c                 <   d }t        dt        fdd i      }t        |||       | j                   |       |       | j	                  t        ||             t        dt        fdd i      }| j                   |       |       | j                  t        ||             y )Nc                      yrN  r]   rO  s     r7   rP  z1ABCTestCase.validate_isinstance.<locals>.<lambda>  rQ  r9   r   __hash__)r}   r  setattrrY  r   
issubclassassertNotIsInstancer   )r6   rV   ro  stubr   s        r7   validate_isinstancezABCTestCase.validate_isinstance  s    !vi*d!344ac3'
1c*+vi*d!34  c*As+,r9   c                 (   g d}i }|D ]  }d|z   dz   }t        t        |      ||<     G d d      }|j                         D ]M  \  }}t        ||      s |       } |||       | j	                  |j
                  dt        |      d|       O y )N)	ltgtlegeneorandxorsub__c                   <    e Zd Zd Zd ZeZeZeZeZeZ	eZ
eZeZeZy).ABCTestCase.validate_comparison.<locals>.Otherc                     d| _         y r   
right_siderG   s    r7   r   z7ABCTestCase.validate_comparison.<locals>.Other.__init__  s	    "'r9   c                     d| _         yr   rl  )r6   r   s     r7   __eq__z5ABCTestCase.validate_comparison.<locals>.Other.__eq__  s    "&r9   N)r5   rc   rd   r   ro  __lt____gt____le____ge____ne__r   __rand____rxor____rsub__r]   r9   r7   Otherrj    s;    ( FFFFFGHHHr9   rx  zRight side not called for .)rl  r  ry   hasattrr   rm  r}   )r6   r  ops	operatorsopro  rx  r   s           r7   validate_comparisonzABCTestCase.validate_comparison  s    G	 	6B"9t#D%h5IdO	6	 	  ") 	6HD"8T*GExOOE,,#H~t.5 6	6r9   N)r5   rc   rd   rU  r]  r~  r]   r9   r7   rK  rK    s    2
-6r9   rK  c               #      K   d  y wrE   r]   r]   r9   r7   	_test_genr    s	     	   c                   l    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y)TestOneTrickPonyABCsc           	         d }t         j                  d        }d } G d d      } G d dt              }| j                  t        d       d t                |       t               g}|D ]S  }| j                  |t               | j                  t        t        |      t              t        t        |                   U  |        |       g}|D ]@  }| j                  |t               | j                  t        t        |      t                     B  |       }	| j                  |	t                |       }	| j                  |	t               |	j                           G d	 d
      }
t        j                  |
       | j                  t!         |
       t                     | j                  t        |
t                     d }
t#        j$                          y )Nc               3      K   d  y wrE   r]   r]   r9   r7   genz0TestOneTrickPonyABCs.test_Awaitable.<locals>.gen  	     r  c               3      K   d  y wrE   r]   r]   r9   r7   coroz1TestOneTrickPonyABCs.test_Awaitable.<locals>.coro  	     r  c                     K   y wrE   r]   r]   r9   r7   new_coroz5TestOneTrickPonyABCs.test_Awaitable.<locals>.new_coro  	        c                       e Zd Zd Zy)0TestOneTrickPonyABCs.test_Awaitable.<locals>.Barc              3      K   d  y wrE   r]   rG   s    r7   	__await__z:TestOneTrickPonyABCs.test_Awaitable.<locals>.Bar.__await__"  	     r  Nr5   rc   rd   r  r]   r9   r7   Barr  !      r9   r  c                   ,     e Zd Zd Zd fd	Zd Z xZS )8TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoroc                     |S rE   r]   r6   values     r7   sendz=TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.send&      r9   c                 (    t         |   |||       y rE   r   throwr6   typvaltbr   s       r7   r  z>TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.throw(      c3+r9   c              3      K   d  y wrE   r]   rG   s    r7   r  zBTestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.__await__*  r  r  NNr5   rc   rd   r  r  r  r   r   s   @r7   MinimalCoror  %      ,r9   r  r  c                       e Zd Zy)5TestOneTrickPonyABCs.test_Awaitable.<locals>.CoroLikeNr   r]   r9   r7   CoroLiker  C      r9   r  )types	coroutiner   rU  r   r@  r  r[  r   rZ  r}   r|   rY  r   closeregisterr   r   
gc_collectr6   r  r  r  r  r  non_samplesr	  samplesrp   r  s              r7   test_Awaitablez#TestOneTrickPonyABCs.test_Awaitable  sr   	 
	 
			 		) 	 	&&y+>SUCE684 	LA$$Q	2ZQ;T$q']K	L 5+-( 	<A!!!Y/OOJtAw	:;	< F 	  I.Ja+		8$
8:y9:
8Y78r9   c           	         d }t         j                  d        }d } G d d      } G d dt              }| j                  t        dd	d
       d t	                |       t                |       g}|D ]S  }| j                  |t               | j                  t        t        |      t              t        t        |                   U  |       g}|D ]@  }| j                  |t               | j                  t        t        |      t                     B  |       }	| j                  |	t                |       }	| j                  |	t               |	j                           G d d      }
| j                  t         |
       t                     | j                  t        |
t                      G d d      }
| j                  t         |
       t                     | j                  t        |
t                     y )Nc               3      K   d  y wrE   r]   r]   r9   r7   r  z0TestOneTrickPonyABCs.test_Coroutine.<locals>.genK  r  r  c               3      K   d  y wrE   r]   r]   r9   r7   r  z1TestOneTrickPonyABCs.test_Coroutine.<locals>.coroN  r  r  c                     K   y wrE   r]   r]   r9   r7   r  z5TestOneTrickPonyABCs.test_Coroutine.<locals>.new_coroR  r  r  c                       e Zd Zd Zy)0TestOneTrickPonyABCs.test_Coroutine.<locals>.Barc              3      K   d  y wrE   r]   rG   s    r7   r  z:TestOneTrickPonyABCs.test_Coroutine.<locals>.Bar.__await__V  r  r  Nr  r]   r9   r7   r  r  U  r  r9   r  c                   ,     e Zd Zd Zd fd	Zd Z xZS )8TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoroc                     |S rE   r]   r  s     r7   r  z=TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.sendZ  r  r9   c                 (    t         |   |||       y rE   r  r  s       r7   r  z>TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.throw\  r  r9   c              3      K   d  y wrE   r]   rG   s    r7   r  zBTestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.__await__^  r  r  r  r  r   s   @r7   r  r  Y  r  r9   r  r  r  r  c                   &    e Zd Zd ZddZd Zd Zy)5TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLikec                      y rE   r]   r  s     r7   r  z:TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.sendx      r9   Nc                      y rE   r]   r6   r  r  r  s       r7   r  z;TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.throwz  r  r9   c                      y rE   r]   rG   s    r7   r  z;TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.close|  r  r9   c                      y rE   r]   rG   s    r7   r  z?TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.__await__~  r  r9   r  )r5   rc   rd   r  r  r  r  r]   r9   r7   r  r  w  s    r9   r  c                       e Zd Zd Zd Zd Zy)r  c                      y rE   r]   r  s     r7   r  z:TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.send  r  r9   c                      y rE   r]   rG   s    r7   r  z;TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.close  r  r9   c                      y rE   r]   rG   s    r7   r  z?TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.__await__  r  r9   N)r5   rc   rd   r  r  r  r]   r9   r7   r  z5TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike  s    r9   )r  r  r   rU  r@  r  r[  r   rZ  r}   r|   rY  r   r   r  r   r  s              r7   test_Coroutinez#TestOneTrickPonyABCs.test_CoroutineJ  s   	 
	 
			 		) 	 	&&y+vwOSUCE68SU; 	LA$$Q	2ZQ;T$q']K	L =/ 	<A!!!Y/OOJtAw	:;	< F 	  I.Ja+			 	 	
8:y9:
8Y78	 	 	HJ	:;Hi89r9   c                    t               t               t               t               g}|D ]S  }| j	                  |t
               | j                  t        t        |      t
              t        t        |                   U d t               t               t               t               t               t               t        t        t         t        t#               g}|D ]S  }| j%                  |t
               | j'                  t        t        |      t
              t        t        |                   U | j)                  t*        t
                G d dt
              }| j-                  t/         |             d       | j                  t        t        |             | j1                  t
        d       | j3                  t
        d       y )Nc                        e Zd Z fdZ xZS )-TestOneTrickPonyABCs.test_Hashable.<locals>.Hc                      t         |          S rE   )r   rX  r6   r   s    r7   rX  z6TestOneTrickPonyABCs.test_Hashable.<locals>.H.__hash__      w'))r9   )r5   rc   rd   rX  r   r   s   @r7   Hr        * *r9   r  r   rX  )	bytearrayrJ   r2   rN   r[  r   r   rZ  r}   r|   r@  floatcomplexrF   r  	frozensetr  bytesrY  r   r   r   r>   r\  rU  r]  )r6   r  r	  r  r  s        r7   test_Hashablez"TestOneTrickPonyABCs.test_Hashable  s?    {DFCE46: 	KA$$Q1ZQ:DaMJ	K 5%'7957IKfdEG	  	JA!!!X.OOJtAw94Q=I	J 	)X.	* 	* 	acA&C+,&&x<  :6r9   c           	          G d d      }| j                  t         |       t                     | j                  t        |t                     d t        g g}|D ]S  }| j                  |t               | j                  t        t        |      t              t        t        |                   U | j                  t        d       | j                  t        d       y )Nc                       e Zd Zd Zy)3TestOneTrickPonyABCs.test_AsyncIterable.<locals>.AIc                     | S rE   r]   rG   s    r7   	__aiter__z=TestOneTrickPonyABCs.test_AsyncIterable.<locals>.AI.__aiter__      r9   N)r5   rc   rd   r  r]   r9   r7   AIr    s    r9   r  r  )r   r   r   rZ  r  r[  r   r}   r|   rU  r]  )r6   r  r  r	  s       r7   test_AsyncIterablez'TestOneTrickPonyABCs.test_AsyncIterable  s    	 	 	
2478
2}56VR( 	PA$$Q6ZQ?d1gO	P 	&&}kB  <r9   c           	          G d d      }| j                  t         |       t                     | j                  t        |t                     d t        g g}|D ]S  }| j                  |t               | j                  t        t        |      t              t        t        |                   U  G d d      }| j                   |       t               | j                  t        dd       y )Nc                       e Zd Zd Zd Zy)3TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AIc                     | S rE   r]   rG   s    r7   r  z=TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AI.__aiter__  r  r9   c                    K   t         wrE   StopAsyncIterationrG   s    r7   	__anext__z=TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AI.__anext__       ((   	N)r5   rc   rd   r  r  r]   r9   r7   r  r    s    )r9   r  c                       e Zd Zd Zy):TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AnextOnlyc                    K   t         wrE   r  rG   s    r7   r  zDTestOneTrickPonyABCs.test_AsyncIterator.<locals>.AnextOnly.__anext__  r  r  N)r5   rc   rd   r  r]   r9   r7   	AnextOnlyr    s    )r9   r  r  r  )
r   r   r   rZ  r  r[  r   r}   r|   rU  )r6   r  r  r	  r  s        r7   test_AsyncIteratorz'TestOneTrickPonyABCs.test_AsyncIterator  s    	) 	)
 	
2478
2}56VR( 	PA$$Q6ZQ?d1gO	P	) 	) 	  m<&&}k;Or9   c                    g d}|D ]S  }| j                  |t               | j                  t        t	        |      t              t        t	        |                   U t               t               t               t               t               t               t               t               j                         t               j                         t               j                         t!               d dD        g}|D ]S  }| j#                  |t               | j%                  t        t	        |      t              t        t	        |                   U  G d dt              }| j'                  t         |             g        | j                  t        t        |             | j)                  t        d       | j+                  t        d        G d d      } G d	 d
|      }| j%                  t        |t                     | j%                  t-         |       t                     | j                  t        |t                     | j                  t-         |       t                     y )N)Nri  Q	@              ?c              3       K   | ]  }|  y wrE   r]   re  r	  s     r7   rf  z5TestOneTrickPonyABCs.test_Iterable.<locals>.<genexpr>       ?!A?   r]   c                        e Zd Z fdZ xZS )-TestOneTrickPonyABCs.test_Iterable.<locals>.Ic                      t         |          S rE   )r   __iter__r  s    r7   r   z6TestOneTrickPonyABCs.test_Iterable.<locals>.I.__iter__  r  r9   )r5   rc   rd   r   r   r   s   @r7   Ir    r  r9   r  r   c                       e Zd Zd Zy).TestOneTrickPonyABCs.test_Iterable.<locals>.Itc                     t        g       S rE   r#  rG   s    r7   r   z7TestOneTrickPonyABCs.test_Iterable.<locals>.It.__iter__  
    tBxr9   Nr5   rc   rd   r   r]   r9   r7   Itr        /r9   r  c                       e Zd ZdZy)5TestOneTrickPonyABCs.test_Iterable.<locals>.ItBlockedNr  r]   r9   r7   	ItBlockedr        Hr9   r  )r[  r   r   rZ  r}   r|   r  rF   r  rJ   r2   r  rN   keysry   r  r  rY  r   r>   rU  r]  r   )r6   r  r	  r  r  r  r  s          r7   test_Iterablez"TestOneTrickPonyABCs.test_Iterable  s   * 	KA$$Q1ZQ:DaMJ	K 7CE7DFCE9;6;;=$&,,.$&--/;"r?	  	JA!!!X.OOJtAw94Q=I	J	* 	* 	acB'C+,&&x<  :6	0 	0	 	
2x01
2423Ix89IK:;r9   c                 	   d dddt               t               g}|D ]S  }| j                  |t               | j	                  t        t        |      t              t        t        |                   U t               d dD        t        g       t        g       g}|D ]S  }| j                  |t               | j	                  t        t        |      t              t        t        |                   U t               t               t               t               t               t               j!                         t               j#                         t               j%                         t'               t'               j!                         t'               j#                         t'               j%                         t)               t)               j!                         t)               j#                         t)               j%                         g}|D ]S  }| j+                  |t               | j-                  t        t        |      t              t        t        |                   U | j-                  t        t.        t              t        t.                     | j	                  t        t0        t              t        t0                     | j	                  t        t2        t              t        t2                      G d dt              }| j5                  t        t         |                   g        | j	                  t        t6        |             | j9                  t        dd	        G d
 d      } G d d|      }| j	                  t        |t                     | j	                  t;         |       t                     | j-                  t        |t                     | j-                  t;         |       t                      G d d      } G d d|      }	 G d d|      }
| j-                  t        |t                     | j-                  t;         |       t                     | j	                  t        |	t                     | j	                  t;         |	       t                     | j	                  t        |
t                     | j	                  t;         |
       t                     y )Nri  r  r  c              3       K   | ]  }|  y wrE   r]   r  s     r7   rf  z7TestOneTrickPonyABCs.test_Reversible.<locals>.<genexpr>  s     qr  r]   c                       e Zd Zd Zd Zy)/TestOneTrickPonyABCs.test_Reversible.<locals>.Rc                 (    t        t                     S rE   r#  rJ   rG   s    r7   r   z8TestOneTrickPonyABCs.test_Reversible.<locals>.R.__iter__      DF|#r9   c                 (    t        t                     S rE   r  rG   s    r7   __reversed__z<TestOneTrickPonyABCs.test_Reversible.<locals>.R.__reversed__  r  r9   Nr5   rc   rd   r   r  r]   r9   r7   Rr    s    $$r9   r  r  r   c                       e Zd Zd Zy)7TestOneTrickPonyABCs.test_Reversible.<locals>.RevNoIterc                     t        g       S rE   reversedrG   s    r7   r  zDTestOneTrickPonyABCs.test_Reversible.<locals>.RevNoIter.__reversed__      8B<$7r9   Nr5   rc   rd   r  r]   r9   r7   	RevNoIterr    s    7r9   r"  c                       e Zd Zd Zy)9TestOneTrickPonyABCs.test_Reversible.<locals>.RevPlusIterc                     t        g       S rE   r  rG   s    r7   r   zBTestOneTrickPonyABCs.test_Reversible.<locals>.RevPlusIter.__iter__  r  r9   Nr  r]   r9   r7   RevPlusIterr$    r	  r9   r&  c                       e Zd Zd Zd Zy)1TestOneTrickPonyABCs.test_Reversible.<locals>.Revc                     t        g       S rE   r  rG   s    r7   r   z:TestOneTrickPonyABCs.test_Reversible.<locals>.Rev.__iter__  r  r9   c                     t        g       S rE   r  rG   s    r7   r  z>TestOneTrickPonyABCs.test_Reversible.<locals>.Rev.__reversed__  r   r9   Nr  r]   r9   r7   Revr(    s    /7r9   r+  c                       e Zd ZdZy):TestOneTrickPonyABCs.test_Reversible.<locals>.RevItBlockedNr  r]   r9   r7   RevItBlockedr-    r  r9   r.  c                       e Zd ZdZy);TestOneTrickPonyABCs.test_Reversible.<locals>.RevRevBlockedNr!  r]   r9   r7   RevRevBlockedr0        Lr9   r1  )r2   r  r[  r   r   rZ  r}   r|   r  r#  r  r  rF   r  rJ   r   r  ry   r  r
   rN   rY  r   r'   r"   r#   r>   r  rU  r   )r6   r  r	  non_reversiblesr  r  r"  r&  r+  r.  r1  s              r7   test_Reversiblez$TestOneTrickPonyABCs.test_Reversible  sC   Rr35)+> 	MA$$Q
3ZQ<d47mL	M %;Bb8B<P  	MA$$Q
3ZQ<d47mL	M 7CE57DFKM=%%')<)<)>='')79ginn6F9??$gi&6&6&8$&6;;=$&,,.$&--/	C
  	LA!!!Z0OOJtAw
;T$q']K	L 	
8Z8$x.IGZ8$w-HNJ?nAUV	$
 	$
 	hqsm,b1E1-.&&z>:N	8 	8	0) 	0Iz:;IK<=
;
;<
;=*=>	8 	8	3 		 C 	 
3
34
35*56L*=>LNJ?@M:>?MOZ@Ar9   c                    d dddd g}|D ]S  }| j                  |t               | j                  t        t	        |      t              t        t	        |                   U t               t        d      t        t                     d dD        g}|D ]S  }| j                  |t               | j                  t        t	        |      t              t        t	        |                   U t               t               t               t               t               t               t               t               j!                         t               j#                         t               j%                         g
}|D ]S  }| j'                  |t               | j)                  t        t	        |      t              t        t	        |                   U | j)                  t        t*        t              t        t*                     | j)                  t        t,        t              t        t,                     | j)                  t        t.        t              t        t.                     | j)                  t        t0        t              t        t0                     | j)                  t        t2        t              t        t2                     | j)                  t        t*        t              t        t2                      G d d	t              } G d
 d|      }| j5                  t        t         |                   g        | j                  t        t        |             | j                  t        t        |             | j                  t        t6        |             | j5                  t        t         |                   g        | j                  t        t        |             | j                  t        t        |             | j                  t        t6        |             | j9                  t        ddd        G d d      } G d d      } G d d      }	| j                  t        |t                     | j                  t;         |       t                     | j                  t        |t                     | j                  t;         |       t                     | j                  t        |	t                     | j                  t;         |	       t                      G d d      }
 G d d      }| j                  t        |
t                     | j                  t;         |
       t                     | j                  t        |t                     | j                  t;         |       t                      G d d      } G d d|      }| j                  t        |t                     | j                  t;         |       t                     y )Nri  r  r  c                     d| z  S )Nrm   r]   rP  s    r7   rP  z6TestOneTrickPonyABCs.test_Collection.<locals>.<lambda>&  s
    1 r9   r9   c              3       K   | ]  }|  y wrE   r]   r  s     r7   rf  z7TestOneTrickPonyABCs.test_Collection.<locals>.<genexpr>,  s     _Aa_r  r]   c                       e Zd Zd Zd Zd Zy)1TestOneTrickPonyABCs.test_Collection.<locals>.Colc                 (    t        t                     S rE   r  rG   s    r7   r   z:TestOneTrickPonyABCs.test_Collection.<locals>.Col.__iter__@  r  r9   c                      yrN  r]   rG   s    r7   __len__z9TestOneTrickPonyABCs.test_Collection.<locals>.Col.__len__B      r9   c                      yr   r]   r   s     r7   r   z>TestOneTrickPonyABCs.test_Collection.<locals>.Col.__contains__D      r9   Nr5   rc   rd   r   r<  r   r]   r9   r7   Colr9  ?      $r9   rA  c                       e Zd Zy)4TestOneTrickPonyABCs.test_Collection.<locals>.DerColNr   r]   r9   r7   DerColrD  F  r  r9   rE  r<  r   r   c                       e Zd Zd Zd Zy)7TestOneTrickPonyABCs.test_Collection.<locals>.ColNoIterc                      yrN  r]   rG   s    r7   r<  z?TestOneTrickPonyABCs.test_Collection.<locals>.ColNoIter.__len__S      ar9   c                      yr   r]   r   s     r7   r   zDTestOneTrickPonyABCs.test_Collection.<locals>.ColNoIter.__contains__T      r9   N)r5   rc   rd   r<  r   r]   r9   r7   	ColNoIterrG  R  s    '6r9   rL  c                       e Zd Zd Zd Zy)7TestOneTrickPonyABCs.test_Collection.<locals>.ColNoSizec                     t        g       S rE   r  rG   s    r7   r   z@TestOneTrickPonyABCs.test_Collection.<locals>.ColNoSize.__iter__V  r  r9   c                      yr   r]   r   s     r7   r   zDTestOneTrickPonyABCs.test_Collection.<locals>.ColNoSize.__contains__W  rK  r9   N)r5   rc   rd   r   r   r]   r9   r7   	ColNoSizerN  U  s    /6r9   rQ  c                       e Zd Zd Zd Zy)7TestOneTrickPonyABCs.test_Collection.<locals>.ColNoContc                     t        g       S rE   r  rG   s    r7   r   z@TestOneTrickPonyABCs.test_Collection.<locals>.ColNoCont.__iter__Y  r  r9   c                      yrN  r]   rG   s    r7   r<  z?TestOneTrickPonyABCs.test_Collection.<locals>.ColNoCont.__len__Z  rI  r9   N)r5   rc   rd   r   r<  r]   r9   r7   	ColNoContrS  X  s    /'r9   rV  c                       e Zd Zd Zd ZdZy)7TestOneTrickPonyABCs.test_Collection.<locals>.SizeBlockc                     t        g       S rE   r  rG   s    r7   r   z@TestOneTrickPonyABCs.test_Collection.<locals>.SizeBlock.__iter__c  r  r9   c                      yr   r]   rG   s    r7   r   zDTestOneTrickPonyABCs.test_Collection.<locals>.SizeBlock.__contains__d  s    5r9   N)r5   rc   rd   r   r   r<  r]   r9   r7   	SizeBlockrX  b  s    /0Gr9   r[  c                       e Zd Zd Zd ZdZy)7TestOneTrickPonyABCs.test_Collection.<locals>.IterBlockc                      yrN  r]   rG   s    r7   r<  z?TestOneTrickPonyABCs.test_Collection.<locals>.IterBlock.__len__g  rI  r9   c                      yr   r]   rG   s    r7   r   zDTestOneTrickPonyABCs.test_Collection.<locals>.IterBlock.__contains__h  s    4r9   N)r5   rc   rd   r<  r   r   r]   r9   r7   	IterBlockr]  f  s    '/Hr9   r`  c                       e Zd Zd Zd Zd Zy)5TestOneTrickPonyABCs.test_Collection.<locals>.ColImplc                 (    t        t                     S rE   r  rG   s    r7   r   z>TestOneTrickPonyABCs.test_Collection.<locals>.ColImpl.__iter__p  r  r9   c                      yrN  r]   rG   s    r7   r<  z=TestOneTrickPonyABCs.test_Collection.<locals>.ColImpl.__len__r  r=  r9   c                      yr   r]   r   s     r7   r   zBTestOneTrickPonyABCs.test_Collection.<locals>.ColImpl.__contains__t  r?  r9   Nr@  r]   r9   r7   ColImplrb  o  rB  r9   rf  c                       e Zd ZdZy)4TestOneTrickPonyABCs.test_Collection.<locals>.NonColN)r5   rc   rd   r   r]   r9   r7   NonColrh  v  r2  r9   ri  )r[  r   r   rZ  r}   r|   r  r#  r  r2   r  rN   r  rF   r  rJ   r  ry   r  rY  r   r'   r"   r#   r    r!   r>   r  rU  r   )r6   non_collectionsr	  non_col_iterablesr  rA  rE  rL  rQ  rV  r[  r`  rf  ri  s                 r7   test_Collectionz$TestOneTrickPonyABCs.test_Collection$  s   T2}=  	MA$$Q
3ZQ<d47mL	M '[$s)T)+5F,_." 	MA$$Q
3ZQ<d47mL	M 5)+tvuwuw646;;=$&,,.$&--/K 	LA!!!Z0OOJtAw
;T$q']K	L 	
8Z8$x.I
7J7gG
>:>$($8	:
3
3T#Y?
:z:D<LM
8Z8$z:JK	* 	 	 Sd35k*B/D#./C-.E3/0d68n-r2D&12C01E623&&z9j3A	C	7 	7	7 	7	( 	( 	Iz:;IK<=Iz:;IK<=Iz:;IK<=	 		 	 	Iz:;IK<=Iz:;IK<=	 		 W 	 FJ78FHj9:r9   c                    d ddddddg i t               g
}|D ]S  }| j                  |t               | j                  t	        t        |      t              t        t        |                   U t        t                     t        t                     t        t                     t        t                     t        t                     t        t                     t        t                     t        t               j                               t        t               j                               t        t               j!                               t#               d dD        g}|D ]S  }| j%                  |t               | j'                  t	        t        |      t              t        t        |                   U | j)                  t        dd	        G d
 d      }| j                   |       t               y )Nri  r  r  r9   r   r]   c              3       K   | ]  }|  y wrE   r]   r  s     r7   rf  z5TestOneTrickPonyABCs.test_Iterator.<locals>.<genexpr>  r  r  __next__r   c                       e Zd Zd Zy)4TestOneTrickPonyABCs.test_Iterator.<locals>.NextOnlyc              3      K   d y wNrl   r]   rG   s    r7   ro  z=TestOneTrickPonyABCs.test_Iterator.<locals>.NextOnly.__next__  s     r  N)r5   rc   rd   ro  r]   r9   r7   NextOnlyrq    s    r9   rt  )r2   r[  r   r   rZ  r}   r|   r#  r  rF   r  rJ   rN   r  r  ry   r  r  rY  r   rU  )r6   r  r	  r  rt  s        r7   test_Iteratorz"TestOneTrickPonyABCs.test_Iterator|  sX   Rr3BBF 	KA$$Q1ZQ:DaMJ	K =$su+=$tv,TV;Y[ 1&TV\\^(<(;"r?  	JA!!!X.OOJtAw94Q=I	J 	&&xZH	 	 	  X6r9   c                     G d d      } G d d      } G d d      }d ddd	d
ddg i t               t        d      t        g        |        |        |       g}|D ]S  }| j                  |t               | j	                  t        t        |      t              t        t        |                   U  G d d      } G d dt              }d } |        d         |        |       g}	|	D ]i  }| j                  |t               | j                  |t               | j                  t        t        |      t              t        t        |                   k | j                  t        dd        |       }
| j                  |
t        |
             | j                  |
j                  d       t        |
             | j                  d|
j                  d             | j!                  |
j#                                | j%                  t&        |
j(                  t&               | j+                  t&        d|
j(                  t&        t'        d             | j%                  t,        |
j(                  t-                       G d dt              }| j%                  t&         |       j"                          G d dt              }| j%                  t.         |       j"                         y )Nc                   &    e Zd Zd Zd Zd ZddZy)4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1c                     | S rE   r]   rG   s    r7   r   z=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.__iter__      tr9   c                      y rE   r]   rG   s    r7   ro  z=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.__next__      tr9   c                      y rE   r]   rG   s    r7   r  z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.close      Tr9   Nc                      y rE   r]   r  s       r7   r  z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.throw      Tr9   r  )r5   rc   rd   r   ro  r  r  r]   r9   r7   NonGen1rx    s    ++!9r9   r  c                   $    e Zd Zd Zd Zd Zd Zy)4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2c                     | S rE   r]   rG   s    r7   r   z=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.__iter__  rz  r9   c                      y rE   r]   rG   s    r7   ro  z=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.__next__  r|  r9   c                      y rE   r]   rG   s    r7   r  z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.close  r~  r9   c                     |S rE   r]   r  s     r7   r  z9TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.send      %<r9   N)r5   rc   rd   r   ro  r  r  r]   r9   r7   NonGen2r    s    ++!/r9   r  c                        e Zd Zd Zd ZddZy)4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3c                      y rE   r]   rG   s    r7   r  z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.close  r~  r9   c                     |S rE   r]   r  s     r7   r  z9TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.send  r  r9   Nc                      y rE   r]   r  s       r7   r  z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.throw  r  r9   r  )r5   rc   rd   r  r  r  r]   r9   r7   NonGen3r    s    !/9r9   r  ri  r  r  r9   r   r]   c                   ,    e Zd Zd Zd Zd Zd ZddZy)0TestOneTrickPonyABCs.test_Generator.<locals>.Genc                     | S rE   r]   rG   s    r7   r   z9TestOneTrickPonyABCs.test_Generator.<locals>.Gen.__iter__  rz  r9   c                      y rE   r]   rG   s    r7   ro  z9TestOneTrickPonyABCs.test_Generator.<locals>.Gen.__next__  r|  r9   c                      y rE   r]   rG   s    r7   r  z6TestOneTrickPonyABCs.test_Generator.<locals>.Gen.close  r~  r9   c                     |S rE   r]   r  s     r7   r  z5TestOneTrickPonyABCs.test_Generator.<locals>.Gen.send  r  r9   Nc                      y rE   r]   r  s       r7   r  z6TestOneTrickPonyABCs.test_Generator.<locals>.Gen.throw  r  r9   r  )r5   rc   rd   r   ro  r  r  r  r]   r9   r7   Genr    s    ++!/9r9   r  c                   &     e Zd Zd Zd fd	Z xZS )7TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGenc                     |S rE   r]   r  s     r7   r  z<TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGen.send  r  r9   c                 (    t         |   |||       y rE   r  r  s       r7   r  z=TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGen.throw  r  r9   r  )r5   rc   rd   r  r  r   r   s   @r7   
MinimalGenr    s    , ,r9   r  c               3      K   d y wrs  r]   r]   r9   r7   r  z0TestOneTrickPonyABCs.test_Generator.<locals>.gen  s     Gr  c               3      K   d  S rE   r]   r]   r9   r7   rP  z5TestOneTrickPonyABCs.test_Generator.<locals>.<lambda>  s     Er9   r  r  rm   z^huhu$huhuc                       e Zd Zd Zd Zy)8TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClosec                     |S rE   r]   r  s     r7   r  z=TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClose.send  r  r9   c                     t         rE   r  r6   r   s     r7   r  z>TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClose.throw  s    *$4r9   Nr5   rc   rd   r  r  r]   r9   r7   FailOnCloser    s    /4r9   r  c                       e Zd Zd Zd Zy)@TestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExitc                     |S rE   r]   r  s     r7   r  zETestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExit.send  r  r9   c                      y rE   r]   r  s     r7   r  zFTestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExit.throw  s    Dr9   Nr  r]   r9   r7   IgnoreGeneratorExitr    s    /(r9   r  )r2   r#  r[  r   r   rZ  r}   r|   rY  r   r   rU  r@   r  nextr>   r   r  r   r  r  assertRaisesRegexStopIterationRuntimeError)r6   r  r  r  r  r	  r  r  r  r  mgenr  r  s                r7   test_Generatorz#TestOneTrickPonyABCs.test_Generator  s:   	: 	:	0 	0	: 	: "dBRRSUHd2h	79giA  	LA$$Q	2ZQ;T$q']K	L	: 	:	, 	,	 5?-sujlC 	KA!!!X.!!!Y/OOJtAw	:DaMJ	K 	&&y&'B |dDJ'diiotDz2DIIaL)$**,'*djj*=z8#zz:z&7I	K-]_E	5) 	5 	*km&9&9:	)) 	) 	,(;(=(C(CDr9   c                 
    G d d      } G d d      } G d d      }d ddd	d
ddg i t               t        d      t        g        |        |        |       g}|D ]S  }| j                  |t               | j	                  t        t        |      t              t        t        |                   U  G d d      } G d dt              }d } |        |        |       g}	|	D ]i  }| j                  |t               | j                  |t               | j                  t        t        |      t              t        t        |                   k | j                  t        dd       d }
 |       }| j                  ||j                                | j                   |
|j                  d              |
|j                                      | j!                  d |
|j                  d                   | j#                   |
|j%                                      | j'                  t(              5   |
|j+                  t(                     d d d         G d dt              }| j'                  t(              5   |
 |       j%                                d d d         G d dt              }| j'                  t,              5   |
 |       j%                                d d d        y # 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   y xY w)Nc                   &    e Zd Zd Zd Zd ZddZy):TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1c                     | S rE   r]   rG   s    r7   r  zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.__aiter__      r9   c                      y rE   r]   rG   s    r7   r  zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.__anext__      r9   c                      y rE   r]   rG   s    r7   aclosezATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.aclose      dr9   Nc                      y rE   r]   r  s       r7   athrowzATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.athrow      dr9   r  )r5   rc   rd   r  r  r  r  r]   r9   r7   NonAGen1r    s    ,,":r9   r  c                   $    e Zd Zd Zd Zd Zd Zy):TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2c                     | S rE   r]   rG   s    r7   r  zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.__aiter__  r  r9   c                      y rE   r]   rG   s    r7   r  zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.__anext__  r  r9   c                      y rE   r]   rG   s    r7   r  zATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.aclose  r  r9   c                     |S rE   r]   r  s     r7   asendz@TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.asend      5Lr9   N)r5   rc   rd   r  r  r  r  r]   r9   r7   NonAGen2r    s    ,,"0r9   r  c                        e Zd Zd Zd ZddZy):TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3c                      y rE   r]   rG   s    r7   r  zATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3.aclose  r  r9   c                     |S rE   r]   r  s     r7   r  z@TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3.asend  r  r9   Nc                      y rE   r]   r  s       r7   r  zATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3.athrow  r  r9   r  )r5   rc   rd   r  r  r  r]   r9   r7   NonAGen3r    s    "0:r9   r  ri  r  r  r9   r   r]   c                   ,    e Zd Zd Zd Zd Zd ZddZy)5TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Genc                     | S rE   r]   rG   s    r7   r  z?TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.__aiter__  r  r9   c                    K   y wrE   r]   rG   s    r7   r  z?TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.__anext__  s     dr  c                    K   y wrE   r]   rG   s    r7   r  z<TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.aclose  s     Dr  c                    K   |S wrE   r]   r  s     r7   r  z;TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.asend  
     ,   Nc                    K   y wrE   r]   r  s       r7   r  z<TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.athrow  s     Dr  r  )r5   rc   rd   r  r  r  r  r  r]   r9   r7   r  r    s    ,2(6@r9   r  c                   &     e Zd Zd Zd fd	Z xZS )=TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.MinimalAGenc                    K   |S wrE   r]   r  s     r7   r  zCTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.MinimalAGen.asend  s     r  c                 D   K   t         |   |||       d {    y 7 wrE   )r   r  r  s       r7   r  zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.MinimalAGen.athrow  s     gnS#r222s     r  )r5   rc   rd   r  r  r   r   s   @r7   MinimalAGenr    s    3 3r9   r  c                    K   d y wrs  r]   r]   r9   r7   r  z5TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.gen  s     Gr  r  r  c                     d }	 	 | j                  d        # t        $ r(}|j                  r|j                  d   nd }Y d }~|S d }~ww xY wrN  )r  r  r   )r  r  exs      r7   	run_asyncz;TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.run_async  sN    FIIdO  % +-77RWWQZFMs    	AAArm   c                       e Zd Zd Zd Zy)=TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.FailOnClosec                    K   |S wrE   r]   r  s     r7   r  zCTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.FailOnClose.asend   r  r  c                    K   t         wrE   r  r  s     r7   r  zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.FailOnClose.athrow!  s     +;r  Nr5   rc   rd   r  r  r]   r9   r7   r  r    s    6;r9   r  c                       e Zd Zd Zd Zy)ETestOneTrickPonyABCs.test_AsyncGenerator.<locals>.IgnoreGeneratorExitc                    K   |S wrE   r]   r  s     r7   r  zKTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.IgnoreGeneratorExit.asend'  r  r  c                    K   y wrE   r]   r  s     r7   r  zLTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.IgnoreGeneratorExit.athrow(  s     4r  Nr  r]   r9   r7   r  r  &  s    6/r9   r  )r2   r#  r[  r   r   rZ  r}   r|   rY  r   r   rU  r@   r  r  r  r>   r   r  r   r  r  r  )r6   r  r  r  r  r	  r  r  r  r  r  r  r  r  s                 r7   test_AsyncGeneratorz(TestOneTrickPonyABCs.test_AsyncGenerator  s{   	; 	;	1 	1	; 	; "dBRRSUHd2h
HJ
D  	QA$$Q7ZQ@$tAw-P	Q	A 	A	3. 	3	 5#%/ 	PA!!!]3!!!^4OOJtAw?d1gO	P 	&&~wI	 }dDNN,-i

4 019T^^=M3NOIdjjm45)DKKM23z* 	/dkk*-.	/	<. 	< z* 	.km**,-	.	0. 	0 |, 	6)+2245	6 	6	/ 	/	. 	.	6 	6s$   ,K!4K-<K9!K*-K69Lc                    d dddt               d dD        g}|D ]S  }| j                  |t               | j                  t	        t        |      t              t        t        |                   U t               t               t               t               t               t               t               t               j                         t               j                         t               j!                         g
}|D ]S  }| j#                  |t               | j%                  t	        t        |      t              t        t        |                   U | j'                  t        d       | j)                  t        d       y )Nri  r  r  c              3       K   | ]  }|  y wrE   r]   r  s     r7   rf  z2TestOneTrickPonyABCs.test_Sized.<locals>.<genexpr>0       ar  r]   r<  )r  r[  r   r   rZ  r}   r|   r  rF   r  rJ   r2   r  rN   r  ry   r  rY  r   rU  r]  r6   r  r	  r  s       r7   
test_SizedzTestOneTrickPonyABCs.test_Sized-  s   Rr {&2  	HA$$Q.ZQ7d1gG	H 7CE7DFCE9;6;;=$&,,.$&--/  	GA!!!U+OOJtAw6T!WF	G 	&&ui8  	2r9   c           
         d dddt               d dD        g}|D ]S  }| j                  |t               | j                  t	        t        |      t              t        t        |                   U t               t               t               t               t               t               t               t               j                         t               j                         g	}|D ]S  }| j!                  |t               | j#                  t	        t        |      t              t        t        |                   U | j%                  t        d       | j'                  t        d       y )Nri  r  r  c              3       K   | ]  }|  y wrE   r]   r  s     r7   rf  z6TestOneTrickPonyABCs.test_Container.<locals>.<genexpr>B  r  r  r]   r   )r  r[  r   r   rZ  r}   r|   r  rF   r  rJ   r2   r  rN   r  ry   rY  r   rU  r]  r  s       r7   test_Containerz#TestOneTrickPonyABCs.test_Container?  s   Rr {&2  	LA$$Q	2ZQ;T$q']K	L 7CE7DFCE9;6;;=$&,,.  	KA!!!Y/OOJtAw	:DaMJ	K 	&&y.A  N;r9   c                 j   d ddddddg i t               t               d dD        g}|D ]S  }| j                  |t               | j	                  t        t        |      t              t        t        |                   U d t        t        t        t        t        j                  g j                  g}|D ]S  }| j                  |t               | j                  t        t        |      t              t        t        |                   U | j                  t        d	       | j!                  t        d	       y )
Nri  r  r  r   r9   r]   c              3       K   | ]  }|  y wrE   r]   r  s     r7   rf  z5TestOneTrickPonyABCs.test_Callable.<locals>.<genexpr>U  r  r  c                       y rE   r]   r]   r9   r7   rP  z4TestOneTrickPonyABCs.test_Callable.<locals>.<lambda>Z  rQ  r9   __call__)r2   r  r[  r   r   rZ  r}   r|   r@  r  rz   rJ   rR   rY  r   rU  r]  r  s       r7   test_Callablez"TestOneTrickPonyABCs.test_CallableQ  s    Rr3BCE {&2
  	KA$$Q1ZQ:DaMJ	K  f;;		
  	JA!!!X.OOJtAw94Q=I	J 	&&x<  :6r9   c                     t         t        t        t        t        t
        t        fD ]G  } G d d|      }| j                  t        ||             | j                  t        t        |             I y )Nc                       e Zd Zy)7TestOneTrickPonyABCs.test_direct_subclassing.<locals>.CNr   r]   r9   r7   r   r  g  s    r9   r   )r   r   r   r   r   r   r   r   rZ  r   r@  r6   r   r   s      r7   test_direct_subclassingz,TestOneTrickPonyABCs.test_direct_subclassinge  sT    8Xz5)XU 	1AA OOJq!,-ZQ/0		1r9   c                    t         t        t        t        t        t
        t        fD ]^  } G d d      }| j                  t        ||      |j                         |j                  |       | j                  t        ||             ` y )Nc                       e Zd ZdZy)1TestOneTrickPonyABCs.test_registration.<locals>.CN)r5   rc   rd   rX  r]   r9   r7   r   r   n  s    r9   r   )r   r   r   r   r   r   r   r   rZ  r5   r  r   r  s      r7   test_registrationz&TestOneTrickPonyABCs.test_registrationl  sc    8Xz5)XU 	.A   Z1-qzz:JJqMOOJq!,-	.r9   N)r5   rc   rd   r  r  r  r  r  r  r4  rl  ru  r  r  r  r  r  r  r  r]   r9   r7   r  r    s`    2hA:F74=P( <D7BrU;p72EENO6b3$<$7(1.r9   r  c                   2    e Zd ZddZd Zd Zd Zd Zd Zy)	WithSetc                 $    t        |      | _        y rE   )r2   r=   )r6   its     r7   r   zWithSet.__init__v  s    G	r9   c                 ,    t        | j                        S rE   rz   r=   rG   s    r7   r<  zWithSet.__len__y  s    499~r9   c                 ,    t        | j                        S rE   r#  r=   rG   s    r7   r   zWithSet.__iter__|  s    DIIr9   c                     || j                   v S rE   r=   r   s     r7   r   zWithSet.__contains__  s    tyy  r9   c                 :    | j                   j                  |       y rE   )r=   r  r   s     r7   r  zWithSet.add  s    		dr9   c                 :    | j                   j                  |       y rE   )r=   discardr   s     r7   r  zWithSet.discard  s    		$r9   Nr]   )	r5   rc   rd   r   r<  r   r   r  r  r]   r9   r7   r  r  t  s     ! r9   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y)TestCollectionABCsc                    t         t        fD ]<  }| j                   |       t               | j	                  t        |t                     > | j                  t        ddd        G d dt              }| j                   |              y )Nr   r   r<  c                       e Zd Zd Zd Zd Zy)*TestCollectionABCs.test_Set.<locals>.MySetc                      yr   r]   r6   r	  s     r7   r   z7TestCollectionABCs.test_Set.<locals>.MySet.__contains__  r?  r9   c                      yrN  r]   rG   s    r7   r<  z2TestCollectionABCs.test_Set.<locals>.MySet.__len__  r=  r9   c                     t        g       S rE   r  rG   s    r7   r   z3TestCollectionABCs.test_Set.<locals>.MySet.__iter__      Bxr9   Nr5   rc   rd   r   r<  r   r]   r9   r7   MySetr         r9   r  )r2   r  rY  r    r   rZ  rU  r~  )r6   sampler  s      r7   test_SetzTestCollectionABCs.test_Set  so    I& 	5F!!&(C0OOJvs34	5 	&&sNJ	R	 C 	  	  )r9   c                      G d dt               } |        |       }}| j                  t        |      t        |      k(         y )Nc                   *    e Zd Zd Zd Zd Zd Zd Zy)8TestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSetc                     g d| _         y )Nrl   rm   rs   contentsrG   s    r7   r   zATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__init__  s	     )r9   c                     || j                   v S rE   r$  r  s     r7   r   zETestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__contains__      DMM))r9   c                 ,    t        | j                        S rE   rz   r%  rG   s    r7   r<  z@TestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__len__  s    4==))r9   c                 ,    t        | j                        S rE   r#  r%  rG   s    r7   r   zATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__iter__      DMM**r9   c                 "    | j                         S rE   )_hashrG   s    r7   rX  zATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__hash__  s    zz|#r9   N)r5   rc   rd   r   r   r<  r   rX  r]   r9   r7   OneTwoThreeSetr!    s    ***+$r9   r/  )r    r   r\  )r6   r/  r/   r0   s       r7   test_hash_Setz TestCollectionABCs.test_hash_Set  s8    
	$S 
	$ !11Q47*+r9   c                      G d dt               } |d      } |d      } |d      }| j                  |j                  |             | j                  |j                  |             y )Nc                   $    e Zd Zd Zd Zd Zd Zy)5TestCollectionABCs.test_isdisjoint_Set.<locals>.MySetc                     || _         y rE   r$  r6   itrs     r7   r   z>TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__init__  	     #r9   c                     || j                   v S rE   r$  r  s     r7   r   zBTestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__contains__  r'  r9   c                 ,    t        | j                        S rE   r+  rG   s    r7   r   z>TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__iter__  r,  r9   c                 R    t        | j                  D cg c]  }| c}      S c c}w rE   r)  r  s     r7   r<  z=TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__len__      t}}5!A5665   	$Nr5   rc   rd   r   r   r   r<  r]   r9   r7   r  r3        $*+7r9   r  r#  )r   rv      )rl   rv   r?  )r    r   
isdisjointr   r6   r  s1s2s3s        r7   test_isdisjoint_Setz&TestCollectionABCs.test_isdisjoint_Set  sZ    	7C 	7 999b)*r*+r9   c                 r    G d dt               } |d      } |d      } |d      } |d      }| j                  ||kD         | j                  ||k         | j                  ||k         | j                  ||k         | j                  ||k\         | j                  ||       | j	                  ||       y )Nc                   $    e Zd Zd Zd Zd Zd Zy)3TestCollectionABCs.test_equality_Set.<locals>.MySetc                     || _         y rE   r$  r5  s     r7   r   z<TestCollectionABCs.test_equality_Set.<locals>.MySet.__init__  r7  r9   c                     || j                   v S rE   r$  r  s     r7   r   z@TestCollectionABCs.test_equality_Set.<locals>.MySet.__contains__  r'  r9   c                 ,    t        | j                        S rE   r+  rG   s    r7   r   z<TestCollectionABCs.test_equality_Set.<locals>.MySet.__iter__  r,  r9   c                 R    t        | j                  D cg c]  }| c}      S c c}w rE   r)  r  s     r7   r<  z;TestCollectionABCs.test_equality_Set.<locals>.MySet.__len__  r;  r<  Nr=  r]   r9   r7   r  rH    r>  r9   r  ra  r  )rs   r   )r    r   r   r>   assertNotEqual)r6   r  rB  rC  rD  s4s         r7   test_equality_Setz$TestCollectionABCs.test_equality_Set  s    	7C 	7 4[6]6]6]R R r"r"r"R B#r9   c                 |     G d dt               } |d      } |d      }||z  }| j                  | |d             y )Nc                   $    e Zd Zd Zd Zd Zd Zy)5TestCollectionABCs.test_arithmetic_Set.<locals>.MySetc                     || _         y rE   r$  r5  s     r7   r   z>TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__init__  r7  r9   c                     || j                   v S rE   r$  r  s     r7   r   zBTestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__contains__  r'  r9   c                 ,    t        | j                        S rE   r+  rG   s    r7   r   z>TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__iter__  r,  r9   c                 R    t        | j                  D cg c]  }| c}      S c c}w rE   r)  r  s     r7   r<  z=TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__len__  r;  r<  Nr=  r]   r9   r7   r  rR    r>  r9   r  r#  )rs   r   rv   )rs   )r    r>   rA  s        r7   test_arithmetic_Setz&TestCollectionABCs.test_arithmetic_Set  sA    	7C 	7 99"WU4[)r9   c                 <   | j                  t               t               | j                  t	        t        t                     | j                  t               t               | j                  t	        t        t                     | j                  t        ddddd       y )Nr   r   r<  r  r  )	rY  r2   r!   r   rZ  r[  r  r   rU  rG   s    r7   test_MutableSetz"TestCollectionABCs.test_MutableSet  si    ceZ0
3
34  j9Iz:;&&z>:y9	r9   c                 ~    t        d      }|t        d      z  }| j                  t        |      t        d             y )Nabcdcdefcd)r  r>   r2   r6   r  s     r7   test_issue_5647z"TestCollectionABCs.test_issue_5647  s1    FO	WV_QT+r9   c                      G d dt               }g d} ||      }|j                         }| j                  t        |      t        |      dz
         | j	                  ||       | j                  ||       y )Nc                   >    e Zd ZdgZd
dZd Zd Zd Zd Zd Z	d	 Z
y)1TestCollectionABCs.test_issue_4920.<locals>.MySet__sNc                 ,    |g }t        |      | _        y rE   )r2   	_MySet__s)r6   ry   s     r7   r   z:TestCollectionABCs.test_issue_4920.<locals>.MySet.__init__  s    =EUr9   c                     || j                   v S rE   )re  )r6   r   s     r7   r   z>TestCollectionABCs.test_issue_4920.<locals>.MySet.__contains__  s    DHH}$r9   c                 ,    t        | j                        S rE   )r#  re  rG   s    r7   r   z:TestCollectionABCs.test_issue_4920.<locals>.MySet.__iter__  s    DHH~%r9   c                 ,    t        | j                        S rE   )rz   re  rG   s    r7   r<  z9TestCollectionABCs.test_issue_4920.<locals>.MySet.__len__      488}$r9   c                 X    || j                   v}| j                   j                  |       |S rE   )re  r  r6   r   r  s      r7   r  z5TestCollectionABCs.test_issue_4920.<locals>.MySet.add  s$    (Qr9   c                 X    || j                   v }| j                   j                  |       |S rE   )re  r  rk  s      r7   r  z9TestCollectionABCs.test_issue_4920.<locals>.MySet.discard   s&    DHH}  #r9   c                 0    dt        t        |             z  S )Nz	MySet(%s))r|   rJ   rG   s    r7   __repr__z:TestCollectionABCs.test_issue_4920.<locals>.MySet.__repr__  s    "T$t*%555r9   rE   )r5   rc   rd   r  r   r   r   r<  r  r  rn  r]   r9   r7   r  rb    s,    gI$%&%6r9   r  )rv   +   rm   rl   rl   )r!   r   r>   rz   r  r{   )r6   r  ry   r  r  s        r7   test_issue_4920z"TestCollectionABCs.test_issue_4920  sc    	6J 	6, %LEEGQUa0Aar9   c                 :   t               }t        t        d            }t        |      }||z  }| j                  ||       t        |      }||z  }| j                  ||       t        |      }||z  }| j                  ||       ||z  }| j                  ||       y )Nr   )r  r   r>   )r6   emptyfullr  s       r7   test_issue8750z!TestCollectionABCs.test_issue8750  s    	uRy!DM	QE"DM	QE"DM	QD!	QD!r9   c                      G d dt               } G d dt               } |       } |       }| j                  ||k         | j                  ||k         | j                  ||kD         | j                  ||k\         y )Nc                       e Zd Zd Zd Zd Zy);TestCollectionABCs.test_issue16373.<locals>.MyComparableSetc                      yr   r]   r  s     r7   r   zHTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__contains__   r?  r9   c                      yrN  r]   rG   s    r7   r<  zCTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__len__"  r=  r9   c                     t        g       S rE   r  rG   s    r7   r   zDTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__iter__$  r  r9   Nr  r]   r9   r7   MyComparableSetrw    r  r9   r{  c                   *    e Zd Zd Zd Zd Zd Zd Zy)>TestCollectionABCs.test_issue16373.<locals>.MyNonComparableSetc                      yr   r]   r  s     r7   r   zKTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__contains__'  r?  r9   c                      yrN  r]   rG   s    r7   r<  zFTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__len__)  r=  r9   c                     t        g       S rE   r  rG   s    r7   r   zGTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__iter__+  r  r9   c                     t         S rE   NotImplementedr  s     r7   rr  zETestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__le__-      %%r9   c                     t         S rE   r  r  s     r7   rp  zETestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__lt__/  r  r9   N)r5   rc   rd   r   r<  r   rr  rp  r]   r9   r7   MyNonComparableSetr}  &  s     &&r9   r  )r    r   r   )r6   r{  r  csncss        r7   test_issue16373z"TestCollectionABCs.test_issue16373  sp    	 c 	 
	& 
	&  "r"r	"r"r	"r9   c                 
    G d dt               }t        d      }t        j                  } ||||g      }|t	        ||d      t        ||d      t        ||d      g}|D ]  }|D ]  }| j                  ||         | j                  |j                  |      d       | j                  |j                  |      d       | j                  |j                  |      d       | j                  |j                  |      d       y )Nc                       e Zd Zd Zd Zd Zy):TestCollectionABCs.test_issue26915.<locals>.CustomSequencec                     || _         y rE   _seqr6   seqs     r7   r   zCTestCollectionABCs.test_issue26915.<locals>.CustomSequence.__init__<  s	    	r9   c                      | j                   |   S rE   r  r6   r  s     r7   r   zFTestCollectionABCs.test_issue26915.<locals>.CustomSequence.__getitem__>  s    yy''r9   c                 ,    t        | j                        S rE   )rz   r  rG   s    r7   r<  zBTestCollectionABCs.test_issue26915.<locals>.CustomSequence.__len__@      499~%r9   Nr5   rc   rd   r   r   r<  r]   r9   r7   CustomSequencer  ;  s     (&r9   r  nanr  r   rl   rm   )r'   r  r   NEVER_EQr%   r$   r&   r{   r>   r  count)r6   r  r  rA   r  
containers	containerelems           r7   test_issue26915z"TestCollectionABCs.test_issue269159  s    	&X 	& Elc3_-##&'%&33'(	

 $ 	/I! /dI./	/ 	3+3+3+3+r9   c                 L    | j                  t        |      t        |             y rE   )assertSetEqualr2   )r6   rB  rC  s      r7   assertSameSetz TestCollectionABCs.assertSameSetT  s    CGSW-r9   c                 
    G d dt               } |g dd      }|dhz
  }| j                  ||       | j                  d|j                         | j                  ddh|       |d	hz  }| j                  ||       | j                  d|j                         | j                  h d
|       |dhz  }| j                  ||       | j                  d|j                         | j                  dh|       |dd	hz  }| j                  ||       | j                  d|j                         | j                  h d|       |dd	gz  }| j                  ||       | j                  d|j                         | j                  h d|       y)z=Verify _from_iterable overridden to an instance method works.c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	OTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterablec                 L    |st        d      || _        t        |      | _        y )Nzcreated_by must be specified)r  
created_byr2   _values)r6   r  r  s      r7   r   zXTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.__init__[  s#    !$%CDD","6{r9   c                 &     t        |       |d      S )Nfrom_iterable)r}   )r6   r  s     r7   _from_iterablez^TestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable._from_iterablea  s    !tDz&/::r9   c                     || j                   v S rE   r  r  s     r7   r   z\TestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.__contains__d  s    ,,r9   c              3   8   K   | j                   E d {    y 7 wrE   r  rG   s    r7   r   zXTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.__iter__g  s     <<''s   c                 ,    t        | j                        S rE   )rz   r  rG   s    r7   r<  zWTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.__len__j  s    4<<((r9   c                 :    | j                   j                  |       y rE   )r  r  r  s     r7   r  zSTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.addm  s      'r9   c                 :    | j                   j                  |       y rE   )r  r  r  s     r7   r  zWTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.discardp  s    $$U+r9   N)
r5   rc   rd   r   r  r   r   r<  r  r  r]   r9   r7   SetUsingInstanceFromIterabler  Z  s%    +;-()(,r9   r  r#  r?   rl   r  rm   rs   r   >   rl   rm   rs   r   >   rl   rm   r   N)r!   rY  r>   r  )r6   r  implactuals       r7   test_Set_from_iterablez)TestCollectionABCs.test_Set_from_iterableX  sp   	,: 	,2 ,Iv>f&BC&*;*;<!Q(f&BC&*;*;<v.f&BC&*;*;<!f%Af&BC&*;*;<F+ 	Ad$@A1D)r9   c                 @    G d dt               }t        d      }t        d      }t        d      } |d      } |d      } |d      }t        d      }t        d      }	t        d      }
||z  }| j                  ||z  |       | j                  ||z  |       | j                  ||z  |       | j                  ||	z  |       ||z  }| j                  ||z  |       | j                  ||z  |       | j                  ||z  |       | j                  ||	z  |       ||z
  }||z
  }| j                  ||z
  |       | j                  ||z
  |       | j                  ||z
  |       | j                  ||z
  |       | j                  ||z
  |       | j                  ||z
  |       | j                  ||	z
  |       | j                  ||z
  |       ||z  }| j                  ||z  |       | j                  ||z  |       | j                  ||z  |       | j                  ||	z  |       | j	                  ||k         | j                  ||k         | j                  ||k         | j	                  ||k         | j                  ||k         | j                  ||k         | j	                  ||k         | j                  ||k         | j                  ||k         | j                  t              5  ||
k   d d d        | j                  t              5  ||k   d d d        | j                  t              5  ||	k   d d d        | j	                  ||k         | j	                  ||k         | j                  ||k         | j	                  ||k         | j	                  ||k         | j                  ||k         | j	                  ||k         | j	                  ||k         | j                  ||k         | j                  t              5  ||
k   d d d        | j                  t              5  ||k   d d d        | j                  t              5  ||	k   d d d        | j	                  ||kD         | j                  ||kD         | j                  ||kD         | j	                  ||kD         | j                  ||kD         | j                  ||kD         | j	                  ||kD         | j                  ||kD         | j                  ||kD         | j                  t              5  ||
kD   d d d        | j                  t              5  ||kD   d d d        | j                  t              5  ||	kD   d d d        | j	                  ||k\         | j	                  ||k\         | j                  ||k\         | j	                  ||k\         | j	                  ||k\         | j                  ||k\         | j	                  ||k\         | j	                  ||k\         | j                  ||k\         | j                  t              5  ||
k\   d d d        | j                  t              5  ||k\   d d d        | j                  t              5  ||	k\   d d d        | j	                  ||k(         | j	                  ||k(         | j	                  ||k(         | j                  ||k(         | j                  ||k(         | j                  ||k(         | j                  ||
k(         | j                  ||k(         | j                  ||	k(         | j                  ||k7         | j                  ||k7         | j                  ||k7         | j	                  ||k7         | j	                  ||k7         | j	                  ||k7         | j	                  ||
k7         | j	                  ||k7         | j	                  ||	k7         y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   $xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   .xY w# 1 sw Y   xY w# 1 sw Y   xY w)	Nc                   ,    e Zd ZddZd Zd Zd Zd Zy)LTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSetc                 t    g | _         |D ],  }|| j                   vs| j                   j                  |       . y rE   )r=   rR   )r6   elementsr  s      r7   r   zUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__init__  s6    	$ /D499,		((./r9   c                     || j                   v S rE   r  )r6   r  s     r7   r   zYTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__contains__  s    tyy((r9   c                 ,    t        | j                        S rE   r	  rG   s    r7   r   zUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__iter__  s    DII&r9   c                 ,    t        | j                        S rE   r  rG   s    r7   r<  zTTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__len__  r  r9   c                 8    dj                  | j                        S )Nz	Set({!r}))r4   r=   rG   s    r7   rn  zUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__repr__  s    "))$))44r9   Nr  )r5   rc   rd   r   r   r   r<  rn  r]   r9   r7   ListSetr    s    /
)'&5r9   r  rV   bcdabcdeabccbabcddcb
abcdeedcba)r    r2   rJ   r  r   r   r   r   )r6   r  r1r2r3f1f2f3l1l2l3target
fwd_target
rev_targets                 r7   (test_Set_interoperability_with_real_setsz;TestCollectionABCs.test_Set_interoperability_with_real_sets  s   	5c 	5 ZZ\U^U^W(^(^,b27F+27F+27F+27F+b27F+27F+27F+27F+"W
"W
27J/27J/27J/27J/27J/27J/27J/27J/b27F+27F+27F+27F+ 	R b!b!R b!b!R b!b!y) 	G	y) 	G	y) 	G	 	b!b!r"b!b!r"b!b!r"y) 	"H	y) 	"H	y) 	"H	 	R b!b!R b!b!R b!b!y) 	G	y) 	G	y) 	G	 	b!b!r"b!b!r"b!b!r"y) 	"H	y) 	G	y) 	"H	 	b!b!b!r"r"r"r"r"r" 	r"r"r"b!b!b!b!b!b!]	 		 		 		 		 		 		 		 		 		 		 		 	s   0``6``+0`8a*aa0a,a9*bb```(+`58aaaa),a69bbbc                    i dhd hdhdhdhh dddz  ddz  hh d	d
dht               t               t               ht        d      ht               hh t        d      h t        d      h dz
  h t        t        j
                  dz
  t        j
                  dz         g}|D ]=  }t        |      }| j                  t        |      t        j                  |      |       ? y )Nrl   rX  g        rV   >   rl   rm   rs   r   rt   e   >   r   r/   r0   abFTr    >   ,  rt      )msg)
r  r  r  r   r  maxsizer>   r\  r    r.  )r6   setsr  fss       r7   test_Set_hash_matches_frozensetz2TestCollectionABCs.test_Set_hash_matches_frozenset(  s    dVbTC55'9Wb#g 4udmXvx*U5\Nik]eDkNNeDkN_<8eCKK"$ckkB&678
  	=A1BT"Xsyy}!<	=r9   c                 L   t         fD ]<  }| j                   |       t               | j                  t	        |t                     > | j                  t        dddd        G d dt              }| j                   |              | j                  t        t         |              y )Nr   r   r<  r   c                       e Zd Zd Zd Zd Zy)2TestCollectionABCs.test_Mapping.<locals>.MyMappingc                      yrN  r]   rG   s    r7   r<  z:TestCollectionABCs.test_Mapping.<locals>.MyMapping.__len__;  r=  r9   c                     t         rE   )r[  )r6   r   s     r7   r   z>TestCollectionABCs.test_Mapping.<locals>.MyMapping.__getitem__=  s      r9   c                     t        d      S )Nr]   r  rG   s    r7   r   z;TestCollectionABCs.test_Mapping.<locals>.MyMapping.__iter__?  r  r9   N)r5   rc   rd   r<  r   r   r]   r9   r7   	MyMappingr  :  s    ! r9   r  )
rN   rY  r"   r   rZ  rU  r~  r   r   r  )r6   r  r  s      r7   test_MappingzTestCollectionABCs.test_Mapping4  s    f 	9F!!&(G4OOJvw78	9 	&&w
I		  	  	  -)Xy{;r9   c           	          t         fD ]<  }| j                   |       t               | j                  t	        |t                     > | j                  t        dddddd       y )Nr   r   r<  r   __setitem____delitem__)rN   rY  r#   r   rZ  rU  r6   r  s     r7   test_MutableMappingz&TestCollectionABCs.test_MutableMappingD  sZ    f 	@F!!&(N;OOJv~>?	@ 	&&~~zS\=-	9r9   c                 X   t               }d|d<   | j                  |j                         t               | j                  |j                         t               | j                  |j                         t               | j                  |j                         t               | j                  |j                         t               | j                  |j                         t               t               }d|d<   |j                         dhz  }| j                  |t               t        |       d|d<   | j                  t        |      ddg       t               }d|d<   |j                         dhz  }| j                  |t               t        |       d|d<   | j                  |ddh       y )Nrv   redorange   blue)r  rs   )r  rv   )r   rY  r  r    r$   r  r   r&   ry   r%   r2   rJ   r>   sorted)r6   mymapru   s      r7   test_MutableMapping_subclassz/TestCollectionABCs.test_MutableMapping_subclassK  sH   
eejjlC0ejjlH5ellnj9ellnj9ekkmS1ekkmY7
eJJLH:%a%QfXu$56
eKKM]O+a%Qf]J78r9   c                 .   t         t        t        t        fD ]<  }| j	                   |       t
               | j                  t        |t
                     > | j	                  t        d      t
               | j                  t        t        t
                     | j	                  t        d      t
               | j                  t        t        t
                     | j                  t        t        t
                     | j                  t
        dddd       y )Nr   r9   r   r   r<  r   )r  rJ   r  rF   rY  r'   r   rZ  r   
memoryviewrU  r  s     r7   test_Sequencez TestCollectionABCs.test_Sequencef  s    dE3/ 	:F!!&(H5OOJvx89	: 	eBi2
5(34jox8
:x89
312&&xY	r9   c                      G d dt               } fd}t        t        fD ]  } |d      }ddgt        t        dt	        |      dz               z   } ||      }t        |      d	hz  D ]`  } ||||f       t        dt	        |      dz         D ]8  } |||||f       t        dt	        |      dz         D ]  }	 ||||||	f        : b  y )
Nc                        e Zd ZddZd Zd Zy)ATestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclassc                     || _         y rE   r  r  s     r7   r   zJTestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__init__t  s	    r9   c                      | j                   |   S rE   r  r  s     r7   r   zMTestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__getitem__w      xx&r9   c                 ,    t        | j                        S rE   )rz   r  rG   s    r7   r<  zITestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__len__z  ri  r9   Nr  r  r]   r9   r7   SequenceSubclassr  s  s    '%r9   r  c                    	  | j                   | } |j                   | }j                  ||| d|       y # t        $ r= j                  t              5   |j                   |  d d d        Y y # 1 sw Y   Y y xY ww xY w)Nz.index)r  r>   r  r   )seq1seq2
index_argsexpectedr  r6   s        r7   assert_index_samezBTestCollectionABCs.test_Sequence_mixins.<locals>.assert_index_same~  s    I%4::z2
 $Z0  HdJ&GI  ,&&z2 ,DJJ
+, , ,,s'   : B A2(B 2A<	7B <B abracadabraiirs   ru   )r'   rJ   rF   r   rz   r2   )
r6   r  r  ty	nativeseqindexesseqseqletterr  stops
   `         r7   test_Sequence_mixinsz'TestCollectionABCs.test_Sequence_mixinsr  s    	%x 	%		I ) 
	FB=)IuoU2s9~7I-J(KKG%i0Fi.C50 F!)VfY?"2s9~'9: FE%i&%I %b#i.1*< = F)%vt/DFFFF	
	Fr9   c                 .   t         t        fD ]Z  }| j                  t              5  | j	                   |       t
               d d d        | j                  t        |t
                     \ t        t        t        fD ]Z  }| j                  t              5  | j                   |       t
               d d d        | j                  t        |t
                     \ | j                  t              5  | j                  t        d      t
               d d d        | j                  t        t        t
                     | j                  t              5  | j                  t
        dd       d d d        | j                  t              5   G d dt
              }d d d        | j                  t              5   G d dt
        t              }d d d        y # 1 sw Y   xY w# 1 sw Y   -xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   nxY w# 1 sw Y   y xY w)Nr9   r   r<  c                       e Zd Zy)-TestCollectionABCs.test_ByteString.<locals>.XNr   r]   r9   r7   Xr    r  r9   r  c                       e Zd Zy)-TestCollectionABCs.test_ByteString.<locals>.ZNr   r]   r9   r7   Zr    r  r9   r  )r  r  assertWarnsDeprecationWarningrY  r)   r   rZ  rF   rJ   r  r[  r   r  rU  r   )r6   r  r  r  s       r7   test_ByteStringz"TestCollectionABCs.test_ByteString  s   i( 	<F!!"45 <%%fh
;<OOJvz:;	< D%( 	=F!!"45 ?((:>?Z
;<	= 01 	B$$Z_jA	BJ
;<01 	Q**:}iP	Q 01 	&%J%	& 01 	10J	0	1 	1!< <? ?	B 	B	Q 	Q	& 	&	1 	1sG   GG- G'G3G?/HG	G$	'G03G<?HHc                 r   t         t        t        fD ]=  }| j                   |d      t               | j                  t        |t                     ? t        t        t        fD ]<  }| j                   |       t               | j                  t        |t                     > | j                  t        d       y )N   x
__buffer__)r  r  r  rY  r*   r   rZ  rF   rJ   r  r[  r   rU  r  s     r7   test_BufferzTestCollectionABCs.test_Buffer  s    i4 	8F!!&,7OOJvv67	8 D%( 	9F$$VXv6Z78	9 	&&v|<r9   c           
         t         t        t        fD ]<  }| j                   |       t               | j                  t        |t                     > t        t        t        fD ]<  }| j                   |       t               | j                  t        |t                     > | j                  t        t        t                     | j                  t        ddddddd       y )Nr   r   r<  r   r  r  insert)r  rF   r  r[  r(   r   rZ  rJ   r  r   rY  r   rU  r  s     r7   test_MutableSequencez'TestCollectionABCs.test_MutableSequence  s    c5) 	BF$$VX?Z@A	B Y. 	AF!!&(O<OOJv?@	A 	C9:&&
}m]H	Nr9   c                     G d dt               } |       }|j                  d       |j                  d       | j                  t	        |      d       | j                  |d   d       |j                          | j                  |d   d       |j                          | j                  t	        |      d       |j                  d       | j                  t	        |      d       |d	z  }| j                  t	        |      d
       | j                  |d   d       |j                          | j                  t	        |      d       d} |       }|j                  ||z          |j                          |j                  |       |j                  |       | j                  t	        |      t	        |             | j                  t        |      t        |             y )Nc                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)OTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclassc                     g | _         y rE   lstrG   s    r7   r   zXTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__init__  s	    r9   c                 "    || j                   |<   y rE   r!  r6   r  r  s      r7   r  z[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__setitem__  s    "'r9   c                      | j                   |   S rE   r!  r  s     r7   r   z[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__getitem__  r  r9   c                 ,    t        | j                        S rE   )rz   r"  rG   s    r7   r<  zWTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__len__  ri  r9   c                     | j                   |= y rE   r!  r  s     r7   r  z[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__delitem__  s    HHUOr9   c                 <    | j                   j                  ||       y rE   )r"  r  r$  s      r7   r  zVTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.insert  s    u-r9   N)	r5   rc   rd   r   r  r   r<  r  r  r]   r9   r7   MutableSequenceSubclassr    s     ('%$.r9   r)  r   )rl   rm   rs   r   rv   rs   rl   r   r  r?  rX  ro   ABCD)
r(   rR   extendr>   rz   reverser   removeclearrJ   )r6   r)  mssry   mss2s        r7   test_MutableSequence_mixinsz.TestCollectionABCs.test_MutableSequence_mixins  sn   	.o 	.& &'

1

< S1%Q#Q#	S1%

1S1%|S1%R"%		S1% &(EEM"		

5

3S3t9-cDJ/r9   c                 v    | j                  t              5   G d dt              }d d d        y # 1 sw Y   y xY w)Nc                   >    e Zd Zej                  ej                  z  Zy)9TestCollectionABCs.test_illegal_patma_flags.<locals>.BothN)r5   rc   rd   r'   	__flags__r"   __abc_tpflags__r]   r9   r7   Bothr4    s    #+#5#58I8I#Ir9   r7  )r   r   r   )r6   r7  s     r7   test_illegal_patma_flagsz+TestCollectionABCs.test_illegal_patma_flags  s7    y) 	KKz K	K 	K 	Ks   /8N)r5   rc   rd   r  r0  rE  rO  rW  rY  r_  rp  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r1  r8  r]   r9   r7   r  r    s    *,, $,*, >"#:,6.6*pV"p
=< 996
!FF1,=	N00dKr9   r  c                       e Zd Zd Zd Zy)CounterSubclassWithSetItemc                 D    d| _         t        j                  | g|i | y r   r   r
   r   r   s      r7   r   z#CounterSubclassWithSetItem.__init__  !    ---r9   c                 @    d| _         t        j                  | ||       y r   )r   r
   r  )r6   r_   r  s      r7   r  z&CounterSubclassWithSetItem.__setitem__  s    D#u-r9   N)r5   rc   rd   r   r  r]   r9   r7   r:  r:    s    ..r9   r:  c                       e Zd Zd Zd Zy)CounterSubclassWithGetc                 D    d| _         t        j                  | g|i | y r   r<  r   s      r7   r   zCounterSubclassWithGet.__init__  r=  r9   c                 >    d| _         t        j                  | ||      S r   )r   r
   rg   )r6   r_   defaults      r7   rg   zCounterSubclassWithGet.get
  s    {{4g..r9   N)r5   rc   rd   r   rg   r]   r9   r7   r@  r@    s    ./r9   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y)TestCounterc           
      0   t        d      }| j                  |t        dddd             | j                  |t        ddd             | j                  |t               | j                  |t               | j                  t        t         t                     | j                  t        t         t                     | j                  t        |      d       | j                  t        |j                               d       | j                  t        |j                               g d       | j                  t        |j                               g d       | j                  t        |      g d       | j                  t        |j                               g d       | j                  |d	   d       | j                  |d
   d       | j                  |j                  d      d       | j                  |j                  d
      d       | j                  |j                  d	d      d       | j                  |j                  d
d      d       | j                  |t        ddd             | j                  t        |      d       | j                  |j!                         g d       t#        d      D ](  }| j                  |j!                  |      g dd |        * | j                  dj%                  |j'                               d       |dxx   dz  cc<   |d	xx   dz  cc<   |d= |d= |dxx   dz  cc<   d|d<   |dxx   dz  cc<   | j                  |t        ddddd             | j                  dj%                  |j'                               d       | j                  |j)                  d      d       | j+                  d|       t#        d      D ]'  }|j-                         \  }}| j+                  ||       ) |j/                          | j                  |i        | j                  t        |      d       | j1                  t2        t         j4                  d       | j1                  t6        t8        |       |j;                  t        dd             |j;                  d        |j;                  t        d!             |j;                          |j=                  d"       |j=                  d#       |j=                          | j                  |t        d$d%dd&             | j                  |j?                  dd      d       | j                  |d   d       | j                  |j?                  dd      d       | j                  |d   d       y )'Nabcabars   rm   rl   rr   r?  )rs   rm   rl   ))r/   rs   r   rp   rl   r0   ru   r   rp   TFr   z!Counter({'a': 3, 'b': 2, 'c': 1})rv   r   aaabbcr/   r   rh  r   r   r   )r/   r0   r   r   r   aaaaffffz	Counter()rV   r.   )rp   Paaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbb   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcdci+  r   r   ) r
   r>   rY  rN   r"   r   rZ  rz   sumr  rJ   r  ry   r   rg   r|   most_commonr   r   r  r   r  r   r.  r   NotImplementedErrorrR  r   r\  r   r   
setdefault)r6   rp   r   r  cnts        r7   r   zTestCounter.test_basics  sX   HG!!$<=>Ga123a&a)
7D12
7G45Q#QXXZ!,ahhj)95affh9a/2aggi7	93#3#,d3,e4sB+sB,D1Q/0a"EF*HIq 	AAQ]]1-;BQ?A	A 	.9	#!	#!cFcF	#!#	#!D1R2;<.
;sQ'a q 	&A		ID#T1%	& 	
	Ba+.-w/?/?G)T1-	Q 	1	,-.	
	

()	

5	

D3#a89c1-q13#c1-q13#r9   c                    | j                  t        t        d      j                               dg       | j                  t        t        d      j                               dg       | j                  t        t        d       j                               dg       | j	                  t
        t        d       | j	                  t
        t        dd       | j	                  t
        t        j                         y )Nri  rG   r6   ri  r  r  ri  r  Nr]   )r>   rJ   r
   ry   r   r   r   rG   s    r7   	test_initzTestCounter.test_initL  s    g2.4467,Hgr288:;>N=OPgt4::<=@R?ST)Wb1)Wb"5)W%5%56r9   c                 `    t        ddd      }| j                  |j                         d       y )Nr   rv   r   rr      )r
   r>   totalr6   rp   s     r7   
test_totalzTestCounter.test_totalT  s&    bA#B'r9   c                    | j                  t        t        d      j                               g d       | j                  t        t        d      j                               g d       | j                  t        t        d      j	                               g d       d}d}t        t        j                  ||z               D ci c]  \  }}||
 c}}fd	}t        |      t        |      }}| j                   ||             | j                   ||              | j                   |||z                | j                   |||z
               | j                   |||z               | j                   |||z               t        |      t        |      }}||z  }| j                   ||             t        |      t        |      }}||z  }| j                   ||             t        |      t        |      }}||z  }| j                   ||             t        |      t        |      }}||z  }| j                   ||             t        |      t        |      }}|j                  |       | j                   ||             t        |      t        |      }}|j                  |       | j                   ||             y c c}}w )
Nr  )r/   rv   r   )r  rm   rH  )r   rl   xyzpdqqdpzyx))r	  rm   )r
  rm   )ru   rm   )r   rm   )r   rm   )rw  rm   zabracadabra simsalabim)r/   r/   r/   r/   r/   r/   r/   r0   r0   r0   r  r  rp   r    r  r  r   r   r   r   laaabbcdddeefggghhijjjkklabbcccdeefffhkkllllmmnnoc                 N    | D cg c]  }|   	 }}|t        |      k(  S c c}w )z6Return true if the letters occur in the expected order)r  )r  r	  	positionsorders      r7   correctly_orderedz>TestCounter.test_order_preservation.<locals>.correctly_orderedl  s/    5896v9I9y 111 :s   ")r>   rJ   r
   ry   r  rk  rN   rR  r   r   subtract)	r6   psqsr   r	  ri  r   rw  rh  s	           @r7   r   z#TestCounter.test_order_preservationX  sa   gm4::<=A	C
 	gn5;;=>K	M 	g&>?HHJKH	I (',5dmmBG6L,MNyq&N	2
 r{GBK1)1"-.)1"-.)!a%01)!a%01)!a%01)!a%01r{GBK1	Q)!,-r{GBK1	Q)!,-r{GBK1	Q)!,-r{GBK1	Q)!,-r{GBK1	)!,-r{GBK1	

1)!,-I Os   Kc                    t               }|j                  d       | j                  t        |j	                               dg       t               }|j                  d       | j                  t        |j	                               dg       t               }|j                  d        | j                  t        |j	                               dg       | j                  t        t               j                  d       | j                  t        t               j                  i i        | j                  t        t         j                         y )Nri  rG   rU  rV  rW  rX  )r
   r   r>   rJ   ry   r   r   r]  s     r7   test_updatezTestCounter.test_update  s    I	baggi<.9I	"aggi+;*<=I	$aggi+=*>?)WY%5%5r:)WY%5%5r2>)W^^4r9   c           
      h    t        dj                                fd} |j                                 |t        j                                |t        j                               t	        t
        j                  dz         D ]L  } j                  |      5   |t        j                  t        j                  |                   d d d        N  |t        t                           t               }|j                          ||        |t                     y # 1 sw Y   xY w)Nz)which witch had which witches wrist watchc                 `    d| d}j                  | |       j                  |        y )Nz
copy: z
words: )r<   r>   )dupr  r6   r  s     r7   checkz'TestCounter.test_copying.<locals>.check  s/    -0%8CS%-S%(r9   rl   r*  )r
   r  r;   r   r   r   r   r3  r   r   r   r|   r   )r6   rr  r   update_testr  s   `   @r7   test_copyingzTestCounter.test_copying  s     CIIKL	) 	ejjldiidmmE"#622Q67 	@EE* @fll6<<u#=>?@ @	@ 	d4; i5!kgen@ @s   0D((D1	c                     G d dt               } |d      }|j                         }| j                  ||       | j                  t        |      t        |             | j                  t	        |      t	        |             y )Nc                       e Zd Zy)1TestCounter.test_copy_subclass.<locals>.MyCounterNr   r]   r9   r7   	MyCounterrw    r   r9   rx  slartibartfast)r
   r;   r>   rz   r}   )r6   rx  rp   r   s       r7   test_copy_subclasszTestCounter.test_copy_subclass  sd    	 	&'FFHAQQ(a$q'*r9   c                    d}| j                  t        t        |      j                               t        |             | j                  t        t        |            t        t	        |                   | j                  t        t        |            t        t        |      j                                      | j                  t	        t        |            t	        |             y )Nz%she sells sea shells by the sea shore)r>   r  r
   r  r2   rN   ry   r^  s     r7   test_conversionszTestCounter.test_conversions  s    3
 3 3 56q	B
+VCF^<gaj)4
0@0@0B+CDWQZ#a&1r9   c                 x    t        ddd      }|D ]'  }| j                  ||v        | j                  ||       ) y )Nr   rJ  r   rr   )r
   r   r{   )r6   rp   r  s      r7   "test_invariant_for_the_in_operatorz.TestCounter.test_invariant_for_the_in_operator  s=    bB!$ 	#DOODAI&MM$"	#r9   c                    t        ddd      t               z   }| j                  t        |      t        d             d}t        d      D ]  }t        t        d |D                    }|j	                  d	d
d       t        t        d |D                    }|j	                  d	d
d       t         j
                  d ft         j                  d ft         j                  d ft         j                  d ffD ]b  \  }} |||      }|D ])  }	| j                   |||	   ||	         ||	   ||	||f       + | j                  d |j                         D               d  d}t        d      D ]  }t        t        d |D                    }t        t        d |D                    }t         j                  t        j                  ft         j                  t        j                  ft         j                  t        j                  ffD ]k  \  }}
 |||      } |
t        |j                               t        |j                                     }| j                  |t        j                  |d	             m 	 y )Nr   rJ  r   rr   r   r[  r  c              3   8   K   | ]  }|t        d d      f  ywrJ  r   Nr   re  r  s     r7   rf  z7TestCounter.test_multiset_operations.<locals>.<genexpr>       JdIbO4J   rl   rX  r   r   r   c              3   8   K   | ]  }|t        d d      f  ywr  r  r  s     r7   rf  z7TestCounter.test_multiset_operations.<locals>.<genexpr>  r  r  r   r   r   c                      t        d| |z         S rN  rZ  r  s     r7   rP  z6TestCounter.test_multiset_operations.<locals>.<lambda>      s1ac{ r9   c                      t        d| |z
        S rN  r  r  s     r7   rP  z6TestCounter.test_multiset_operations.<locals>.<lambda>  r  r9   c                     t        d| |      S rN  r  r  s     r7   rP  z6TestCounter.test_multiset_operations.<locals>.<lambda>  s    c!Aaj r9   c                 .    t        dt        | |            S rN  )rZ  minr  s     r7   rP  z6TestCounter.test_multiset_operations.<locals>.<lambda>  s    s1c!Ah/? r9   c              3   &   K   | ]	  }|d kD    yw)r   Nr]   r  s     r7   rf  z7TestCounter.test_multiset_operations.<locals>.<genexpr>  s     =!=r  abcdefrt   c              3   8   K   | ]  }|t        d d      f  ywr   rm   Nr  r  s     r7   rf  z7TestCounter.test_multiset_operations.<locals>.<genexpr>       JdIaO4Jr  c              3   8   K   | ]  }|t        d d      f  ywr  r  r  s     r7   rf  z7TestCounter.test_multiset_operations.<locals>.<genexpr>  r  r  )r
   r>   rN   r   r   __add____sub____or____and__r   r  r2   r  rR  )r6   rp   r  r   r   rw  	counteropnumberopr  r	  setopcounter_result
set_results                r7   test_multiset_operationsz$TestCounter.test_multiset_operations  s   bB!$wy0a$*-t 	>AJJJKAHHqB!H$JJJKAHHqB!H$":;":;!89"?@	( >#	8 #1a! ;A$$XadAaD%96!9&/Aq%9;; =V]]_==>	>& s 	OAJJJKAJJJKA#++.,#++.% O 	5
 "+1a"3qzz|#4c!**,6GH
  z11MNO		Or9   c                    d}t        d      D ]A  }t        t        d |D                    }|j                  ddd       t        t        d |D                    }|j                  ddd	       t        j                  t        j
                  ft        j                  t        j                  ft        j                  t        j                  ft        j                  t        j                  ffD ]_  \  }}|j                         }t        |      } |||      }	 |||      }
| j                  |
|	       | j                  t        |
      |       a D y )
Nr[  r  c              3   8   K   | ]  }|t        d d      f  ywr  r  r  s     r7   rf  z6TestCounter.test_inplace_operations.<locals>.<genexpr>  r  r  rl   rX  r   r  c              3   8   K   | ]  }|t        d d      f  ywr  r  r  s     r7   rf  z6TestCounter.test_inplace_operations.<locals>.<genexpr>  r  r  r  )r   r
   rN   r   __iadd__r  __isub__r  __ior__r  __iand__r  r;   idr>   )r6   r  r   r   rw  
inplace_op
regular_oprp   c_idregular_resultinplace_results              r7   test_inplace_operationsz#TestCounter.test_inplace_operations  s   t 	;AJJJKAHHqB!H$JJJKAHHqB!H$!!7??3!!7??3'..1!!7??3	+ ;&
J FFH!u!+Aq!1!+Aq!1  @  N!3T:;	;r9   c                    t        dddddd      }|j                  dd	d
dddd       | j                  |t        dddddddd             t        dddddd      }|j                  t        dd	d
dddd             | j                  |t        dddddddd             t        d      }|j                  d       | j                  |t        ddddd             t               }|j                  d       | j                  t        |j	                               dg       t               }|j                  d       | j                  t        |j	                               dg       | j                  t        t               j                  d       | j                  t        t               j                  i i        | j                  t        t         j                         y )Nrh  r   rv   r   r[  r~  r/   r0   rp   r   r   r   rl   rm   r  rn   ro   i)r/   r0   rp   r   r   r   r   irJ     ir  )r/   r0   rp   r   r   r   r   r   aaabbcd	aaaabbccerX  r   ri  rG   )r6   rV  )r  r  )r
   rj  r>   rJ   ry   r   r   r]  s     r7   test_subtractzTestCounter.test_subtract	  s   bAbB4	

Q!rR2s
;GbB!qB#rRSbAbB4	

7Q!rR2sCDGbB!qB#rRSI	

;GbAqB?@I	


aggi=/:I	

B
aggi+<*=>)WY%7%7<)WY%7%7R@)W%5%56r9   c           	          t        dddddd      }| j                  t        |      t        dddd             | j                  t        |       t        d	             y )
Nrh  r   rv   r   r[  r~  r  )rp   r   r   r   r   )r
   r>   rN   r]  s     r7   
test_unaryzTestCounter.test_unary	  sQ    bAbB4qb4!rR2#>?qb4!9-r9   c                 |    t        dd       }t        |      }| j                  d|       | j                  d|       y )Nrm   r.   z'a': 2z	'b': None)r
   r|   r{   )r6   rp   r  s      r7   test_repr_nonsortablez!TestCounter.test_repr_nonsortable 	  s3    a4 Gh"k1%r9   c           	         t        d      }t               }t        ||       | j                  |dddddd       t	               }t        ||       | j                  |t	        g d             t        d      }| j                  |j                         | j                  t        |      dddddd       t        d      }| j                  |j                         | j                  t        |      dddddd       y )Nr  rv   rm   rl   )r/   r  r0   rp   r   r`  )r/   r0   rp   r   r  )	rJ   rN   r   r>   r   r:  r   r   r@  )r6   elemsr   r   rp   s        r7   test_helper_functionz TestCounter.test_helper_function&	  s    ]#F5!!!!!!DEM5!KL	N '}5!aq"JK"=1!aq"JKr9   c                    t        t        dt        d                  t        j                  fdt        t              dz         D              }|D cg c]  }t        t        |             }}t        |d      D ]L  \  }}t        |j                               }t        |j                               }| j                  t        ||z         ||z         | j                  t        ||z
        ||z
         | j                  t        ||z        ||z         | j                  t        ||z        ||z         | j                  ||k(  ||k(         | j                  ||k7  ||k7         | j                  ||k  ||k         | j                  ||k\  ||k\         | j                  ||k  ||k         | j                  ||kD  ||kD         O y c c}w )Nrr   rm   c              3   6   K   | ]  }t        |        y wrE   )r   )re  r  r  s     r7   rf  zTTestCounter.test_multiset_operations_equivalent_to_set_operations.<locals>.<genexpr>@	  s     &Sa|Aq'9&Ss   rl   )repeat)rJ   r   r   r   r  rz   r
   rN   r2   r  r>   )	r6   powersetgroupscounterscpcqspsqr  s	           @r7   5test_multiset_operations_equivalent_to_set_operationszATestCounter.test_multiset_operations_equivalent_to_set_operations;	  s    %(34&&&S5QPQ?&SS8@AfGDL)AAhq1 	/FBR[[]#BR[[]#BSb\273Sb\273Sb\273Sb\273R2XrRx0R2XrRx0R2XrRx0R2XrRx0R"Wb2g.R"Wb2g.	/ Bs   Gc                     | j                  t        ddd      t        d             | j                  t        dd      t        d             y Nrs   rm   r   rr   ababar.   babab)r>   r
   rM  rG   s    r7   test_eqzTestCounter.test_eqP	  s<    1Q/1ABGa1-ww/?@r9   c                     | j                  t        ddd      t        d      k         | j                  t        dd      t        d      k         y r  r   r
   r   rG   s    r7   test_lezTestCounter.test_leT	  s@    !qA.''2BBC1*gg.>>?r9   c                     | j                  t        ddd      t        d      k         | j                  t        ddd      t        d      k         y )Nrs   rl   r   rr   r  rm   r  rG   s    r7   test_ltzTestCounter.test_ltX	  sB    !qA.1AAB1Q/''2BBCr9   c                     | j                  t        ddd      t        d      k\         | j                  t        ddd      t        d      k\         y )Nrm   rl   r   rr   aabrs   aabdr  rG   s    r7   test_gezTestCounter.test_ge\	  s@    !qA.'%.@A1Q/76?BCr9   c                     | j                  t        ddd      t        d      kD         | j                  t        ddd      t        d      kD         y )Nrs   rm   r   rr   r  rl   r  rG   s    r7   test_gtzTestCounter.test_gt`	  s@    !qA.?@1Q/'%.@Ar9   N)r5   rc   rd   r   rY  r^  r   rn  rt  rz  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r]   r9   r7   rE  rE    su    :$x7(7.r5(+2#%ON;*7*.
&L*/*A@DDBr9   rE  c                 V    |j                  t        j                  t                     |S rE   )addTestdoctestDocTestSuiterJ  )loadertestspatterns      r7   
load_testsr  e	  s    	MM'&&{34Lr9   __main__)Gr+  rJ  r;   r  r.  r  r   randomr   r   	itertoolsr   r   r   rc  r  r?   r   r  rE  r	   r
   r   r   r   r   r   r   r   collections.abcr   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   TestCaser,   rj   r  r  rK  r  r  r  r  r:  r@  rE  r  r5   mainr]   r9   r7   <module>r     sE   $       $ 2 2  
    I I 6 6    0 H H O O B B + T T 5 .1*h'' 1*p]/8$$ ]/H 
Hg	&R&X&& R&r96(## 96v
^	.; ^	.@ j  (l	K l	Kh. ./W /TB(## TBn

 zHMMO r9   