
    ;e]q                       	 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.m/Z/m0Z0m1Z1 d dlm2Z2m3Z3 d dlm4Z4  G d dej5                  Z6 G d dej5                  Z7 edd          Z8 G d dej5                  Z9 G d dej5                  Z:d Z; G d de:          Z< G d de,          Z= G d  d!e:          Z> G d" d#e          Z? G d$ d%e          Z@ G d& d'ej5                  ZAd( ZBeCd)k    r ejD                     dS dS )*    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)
ByteStringc                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestUserObjectsc                     |                      t          t          |                    t          t          |                    d                    |j        |j                             d S )Nz&{a} should have all the methods of {b}ab)assertGreaterEqualsetdirformat__name__)selfr.   r/   s      ,/usr/lib/python3.11/test/test_collections.py_superset_testzTestUserObjects._superset_test    sd    AKKAKK4;;** <  	
 	
 	
 	
 	
    c                    |                                 }|                     |j        |j                   |                     |j        |j                   dg|_        t          j         |          }|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   d S )Ni  )copyassertIsNotdataassertEqualtestassertIs)r5   objobj_copys      r6   
_copy_testzTestUserObjects._copy_test*   s    88::8=1118=111 69S>>8=1118=111ch.....r8   c                 F    |                      t          t                     d S N)r7   r   strr5   s    r6   test_str_protocolz!TestUserObjects.test_str_protocol7   s    J,,,,,r8   c                 F    |                      t          t                     d S rD   )r7   r   listrF   s    r6   test_list_protocolz"TestUserObjects.test_list_protocol:       Hd+++++r8   c                 F    |                      t          t                     d S rD   )r7   r   dictrF   s    r6   test_dict_protocolz"TestUserObjects.test_dict_protocol=   rK   r8   c                 v    t                      }|                    d           |                     |           d S )N{   )r   appendrB   r5   r@   s     r6   test_list_copyzTestUserObjects.test_list_copy@   s2    jj

3r8   c                 V    t                      }d|d<   |                     |           d S )NabcrP   )r   rB   rR   s     r6   test_dict_copyzTestUserObjects.test_dict_copyE   s,    jjCr8   N)
r4   
__module____qualname__r7   rB   rG   rJ   rN   rS   rV    r8   r6   r+   r+      s}        
 
 
/ / /- - -, , ,, , ,  
    r8   r+   c                   J    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S )TestChainMapc                 (   t                      }d|d<   d|d<   |                                }d|d<   d|d<   |                     |j        dddddd	g           |                     |                                t          ddd
                                                     |                     t          |          d           dD ]}|                     ||           t          dddd                                          D ]/\  }}|                     |                    |d          |           0|d= |                     |j        ddiddd	g           |                     |                                t          ddd
                                                     |                     t          |          d           dD ]}|                     ||           t          dddd                                          D ]/\  }}|                     |                    |d          |           0|                     t          |          t          |          j        dz   t          |          j        dz   g           |                                t          j        |          fD ]}|                     ||           |                     |j        |j                   |                     ||           |                     |j        d         |j        d                    t          |j        dd          |j        dd                    D ]\  }}|                     ||           t!          t"          j        dz             D ]}	t#          j        t#          j        ||	                    }|                     ||           |                     |j        |j                   |                     ||           t          |j        |j                  D ]\  }}|                     |||           t          j        |          t-          t          |                    fD ]}|                     ||           |                     |j        |j                   |                     ||           t          |j        |j                  D ]\  }}|                     |||           |                                }
d|
d<   |                     |
j        ddiddiddd	g           |                     |
j        j        ddiddd	g           |                     |
d         d           |                     |
j        d         d           d S )N   r.      r/         cr/   ra   r-   r.   r/   ra      rU   d   )r.   r/   ra   zz({'c': 30}, {'a': 1, 'b': 2})z({'c': 30}, {'b': 2, 'a': 1})r      )r   	new_childr=   mapsitemsrM   lenassertIngetreprtyper4   r:   r;   zipr?   rangepickleHIGHEST_PROTOCOLloadsdumpsdeepcopyevalparents)r5   ra   dkeykvem1m2protofs              r6   test_basicszTestChainMap.test_basicsQ   sz   JJ##KKMM##rr"2"2NN!CDDDD1b$9$9$9$?$?$A$ABBBQ### 	" 	"CMM#q!!!!1bC0006688 	/ 	/DAqQUU1c]]A....cF3r(NN!;<<<D1R$8$8$8$>$>$@$@AAAQ### 	" 	"CMM#q!!!!1R3///5577 	/ 	/DAqQUU1c]]A....d1ggGG>>GG>> 
 	 	 	
 49Q<<' 	& 	&AQ"""QVQV,,,Q"""QVAYq	222afQRRj!&*55 & &Bb"%%%%& 62Q677 	, 	,EV\!U3344AQ"""QVQV,,,Q"""afaf-- , ,B  R++++,-""tAww-- 	, 	,A Q"""QVQV,,,Q"""afaf-- , ,B  R++++, KKMM#3(SH1!nn!EFFF3r(NN)CDDD3###3+++++r8   c                 4   ddd}ddd}t          ||          }|                                }|                    |           |                     t	          |                                          t	          |                                                     d S )Nbach	rembrandt)musicartzvan goghcarmen)r   opera)r   r:   updater=   rI   rj   )r5   baselineadjustmentscmcombineds        r6   test_orderingzTestChainMap.test_ordering   s     $K88(8<<k8,,==??$$$hnn..//bhhjj1A1ABBBBBr8   c                     |                      t                      j        i g           |                      t          ddi          j        ddig           d S Nr]   r^   )r=   r   ri   rF   s    r6   test_constructorzTestChainMap.test_constructor   sO    2$///1Q%-1w77777r8   c                 "   |                      t                                 |                      t          i i                      |                     t          ddii                      |                     t          i ddi                     d S r   )assertFalser   
assertTruerF   s    r6   	test_boolzTestChainMap.test_bool   s~    $$$"b))***!A++,,,aU++,,,,,r8   c                     G d dt                     } |t          dd          t          dd                    }t          dddd	
                                          D ]!\  }}|                     ||         |           "t          dddd
                                          D ]/\  }}|                     |                    |d          |           0t          dddd
                                          D ]\  }}|                     ||v |           |                     |                    dd          d|           |                     |                    dd          d           |                     |                                d           |                     t                    5  |                                 d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )2TestChainMap.test_missing.<locals>.DefaultChainMapc                     dS )N  rY   r5   rz   s     r6   __missing__z>TestChainMap.test_missing.<locals>.DefaultChainMap.__missing__   s    sr8   N)r4   rW   rX   r   rY   r8   r6   DefaultChainMapr      s#            r8   r   r]   r^   r-   r_   r`   rb   r   r.   r/   ra   ry   M   TFr.   i  i  r/   r^   )	r   rM   rj   r=   rm   poppopitemassertRaisesKeyError)r5   r   ry   r{   r|   s        r6   test_missingzTestChainMap.test_missing   s2   	 	 	 	 	h 	 	 	 OD1NNND2,<,<,<==1R3///5577 	& 	&DAqQqT1%%%%1R2...4466 	. 	.DAqQUU1b\\1----4445999??AA 	( 	(DAqQ!VQ''''sD))1a000sD))4000h///x(( 	 	IIKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   4GGGc                    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                                }|                     d                    |          d           |                     t	          |                                          g d           d S )Nr   8[ )jh'  \    )iry   ra        	  M  ix  )r   r/   gra   r   7      )r}   r/   r]   r^   rd      rg   r.   r/   ra   ry   r}    
abcdefghij)
)r.   r]   )r/   r   )ra   r   )ry   r   )r}   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   r=   joinrI   rj   r5   ry   s     r6   test_order_preservationz$TestChainMap.test_order_preservation   s    a5)))ddd333cSC3#>>>bB'''a1Q!444	 	 	\222aggii$ $ $	% 	% 	% 	% 	%r8   c                      G d dt                     } |d          }t          |          }d|_        t          |           |                     |j        d           d S )Nc                       e Zd Zd Zd ZdS )KTestChainMap.test_iter_not_calling_getitem_on_maps.<locals>.DictWithGetItemc                 >    d| _         t          j        | g|R i | d S NF)calledr   __init__r5   argskwdss      r6   r   zTTestChainMap.test_iter_not_calling_getitem_on_maps.<locals>.DictWithGetItem.__init__   s0    #!$666666666r8   c                 >    d| _         t          j        | |           d S NT)r   r   __getitem__r5   items     r6   r   zWTestChainMap.test_iter_not_calling_getitem_on_maps.<locals>.DictWithGetItem.__getitem__   s"    "$T400000r8   N)r4   rW   rX   r   r   rY   r8   r6   DictWithGetItemr      s2        7 7 71 1 1 1 1r8   r   r]   r.   Fz__getitem__ was called)r   r   r   r1   r   )r5   r   ry   ra   s       r6   %test_iter_not_calling_getitem_on_mapsz2TestChainMap.test_iter_not_calling_getitem_on_maps   s|    	1 	1 	1 	1 	1h 	1 	1 	1 Oa   QKKA#;<<<<<r8   c                 R   t          t          dd          t          dd                    }|                     t          |          t          ddd                     |                     t          |                                          t          ddd                     d S )Nr]   r^   r-   r_   r`   rb   rc   )r   rM   r=   rj   r   s     r6   test_dict_coercionzTestChainMap.test_dict_coercion   s    TA^^^TB"%5%5%566a$a2"6"6"6777aggii$a2*>*>*>?????r8   c                 H   	 t                      }d|d<   d|d<   ddd}|                    |          }|                     |j        ddddddg           |                     ||j        d	                     G d
 dt
                    }t                      }d|d<   d|d<    |dd          }|                    |          }|                     ||j        d	                    dD ]}|                     ||           t          dddd                                          D ]/\  }}|                     |                    |d          |           0t          ddd          }|                    dd          }|                     |j        ddddddg           d S )Nr]   r.   r^   r/   r_   r`   rb   r-   r   c                       e Zd Zd Zd ZdS ).TestChainMap.test_new_child.<locals>.lowerdictc                     t          |t                    r|                                }t                              | |          S rD   )
isinstancerE   lowerrM   r   r   s     r6   r   z:TestChainMap.test_new_child.<locals>.lowerdict.__getitem__   s7    c3'' &))++C''c222r8   c                     t          |t                    r|                                }t                              | |          S rD   )r   rE   r   rM   __contains__r   s     r6   r   z;TestChainMap.test_new_child.<locals>.lowerdict.__contains__   s7    c3'' &))++C((s333r8   N)r4   rW   rX   r   r   rY   r8   r6   	lowerdictr      s2        3 3 34 4 4 4 4r8   r   rU   re   )r.   BCrf   )	r   rh   r=   ri   r?   rM   rl   rj   rm   )r5   ra   mry   r   rz   r{   r|   s           r6   test_new_childzTestChainMap.test_new_child   s   -JJ##"KKNNrr"2"2NN!CDDDa###	4 	4 	4 	4 	4 	4 	4 	4 JJ##Ib!!!KKNNa### 	" 	"CMM#q!!!!1bC0006688 	/ 	/DAqQUU1c]]A....11%%&&KK"K##"4"4AA6F6F!GHHHHHr8   c                    t          t          dd          t          dd                    }t          t          dd	          t          d
d                    }|                                }t          dd          }ddg}||z  }|                     |j        |j        d         t          |          z  g|j        dd                     ||z  }|                     ||           ||z  }|                     |j        |j        d         |z  g|j        dd                     |                     ||z  j        |t          |          z  g           ||z  }|                     ||           |                     t                    5  ||z   d d d            n# 1 swxY w Y   |                                }||z  }|                     |j        |j        d         t          |          z  g|j        dd                      G d dt                     } G d dt                     }t                      t                      z  }|                     t          |          t                      |                     t          |j        d                   t                     t                       |            z  }|                     t          |          t                      |                     t          |j        d                   t                      |            t                      z  }|                     t          |          |           |                     t          |j        d                   t                     t                       |            z  }|                     t          |          |           |                     t          |j        d                   t                     d S )Nr]   r^   r-   rd   r   )ra   ry   
   rg   )r.   r}   r_   )r/   ry   r`   )r.   ra   )ra   rd   )pr   r   c                       e Zd ZdS )3TestChainMap.test_union_operators.<locals>.SubclassNr4   rW   rX   rY   r8   r6   Subclassr             Dr8   r   c                        e Zd Z fdZ xZS )6TestChainMap.test_union_operators.<locals>.SubclassRorc                 F    t                                          |          S rD   )super__ror__)r5   other	__class__s     r6   r   z>TestChainMap.test_union_operators.<locals>.SubclassRor.__ror__  s    wwu---r8   )r4   rW   rX   r   __classcell__r   s   @r6   SubclassRorr     s8        . . . . . . . . .r8   r   )	r   rM   r:   r=   ri   r   	TypeErrorr?   ro   )	r5   cm1cm2cm3ry   pairstmpr   r   s	            r6   test_union_operatorsz!TestChainMap.test_union_operators   s   ta1~~~ta1~~~66tbArQ88hhjj27#CiCHQK$s))$;#Kchqrrl#KLLLs
c"""AgCHQK!O#Cchqrrl#CDDD!c'!d3ii-999qc""" y)) 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	hhjjuCHQK$u++$=#M#MNNN	 	 	 	 	x 	 	 		. 	. 	. 	. 	.( 	. 	. 	. jj8::%d3ii***d38A;''...jj88::%d3ii***d38A;''...hjj8::%d3ii***d38A;''...jj;;==(d3ii---d38A;''.....s   F  F$'F$N)r4   rW   rX   r   r   r   r   r   r   r   r   r   r   rY   r8   r6   r[   r[   O   s        :, :, :,xC C C8 8 8- - -  "% % %"= = = @ @ @
"I "I "IH,/ ,/ ,/ ,/ ,/r8   r[   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dS )TestNamedTuplec                    t          dd          }|                     |j        d           |                     |j        d           |                     |j        t                     |                     |j        t          j                   |                     |j        d           |                     t          t           dd           |                     t          t           dd           |                     t          t           dd           |                     t          t           d	d
           |                     t          t           d	d           |                     t          t           d	d           |                     t          t           d	d           |                     t          t           d	d           t          dd           t          dd           t          dd          }| 
                    dt          |j                             t          dd          }| 
                    dt          |j                             |                     t          |j        dg           |                     t          |j        g d           d S )NPointx yrY   xyzabc%zefg ghiclass9abcrU   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=   r4   	__slots__rW   r   tuple_fieldsr   
ValueErrorassertNotInrn   r   _make)r5   r   r  s      r6   test_factoryzTestNamedTuple.test_factory7  s   7E**111"---)8444*E,=>>>
333*j&)DDD*j'9EEE*j&)DDD*j%DDD*j%EEE*j%EEE*j%DDD*j%GGG8W%%%3   344tBJ//000.//tBJ//000)U[2$777)U[,,,?????r8   c                 	   t          ddd          }|                     |j        ddd           |                      |dd	          d
           |                      |d          d           |                      |            d           t          ddd          }|                     |j        ddi           |                      |dd	          d
           |                      |d          d           t          ddd          }|                     |j        i            |                      |dd	          d
           |                     t                    5   |d           d d d            n# 1 swxY w Y   |                     t                    5   |             d d d            n# 1 swxY w Y   |                     t                    5   |dd	d           d d d            n# 1 swxY w Y   |                     t                    5  t          ddd          }d d d            n# 1 swxY w Y   |                     t                    5  t          ddd          }d d d            n# 1 swxY w Y   |                     t                    5  t          ddd          }d d d            n# 1 swxY w Y   t          ddd           }|                     |j        i            |                     |j        j        d            |                      |dd          d           |                     t                    5   |d           d d d            n# 1 swxY w Y   t          ddddg          }|                     |j        ddd           |                     |j        j        d           |                      |dd	          d
           |                      |d          d           |                      |            d           t          ddt          ddg                    }|                     |j        ddd           |                     |j        j        d           |                      |dd	          d
           |                      |d          d           |                      |            d           d S )Nr   r   )r   r_   )defaultsr   r_   r   r]   r^   r]   r^   )r]   r_   )r_   r   rY   rd   r   r_   r`   F)	r	   r=   _field_defaultsr   r   assertIsNone__new____defaults__iterr5   r   s     r6   test_defaultszTestNamedTuple.test_defaultsT  s   7EH===.br0B0BCCCq!f---q7+++(+++7EE:::.b	:::q!f---q7+++7EB777.333q!f---y)) 	 	E!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	EGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	E!QNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	F 	FwEEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fy)) 	< 	<w;;;E	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<y)) 	? 	?w>>>E	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 7ED999.333%-4d;;;r2111y)) 	 	E"III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 7ERH===.br0B0BCCC3X>>>q!f---q7+++(+++7ED"bNNCCC.br0B0BCCC3X>>>q!f---q7+++(+++++s~   #E;;E?E? F77F;>F;G66G:=G:H::H>H>I>>JJ#KK	KM,,M03M0c                 ^   t          dd          } |dd          }|                     t                    5  d|_        d d d            n# 1 swxY w Y   |                     t                    5  |`d d d            n# 1 swxY w Y   |                     t                    5  d|d<   d d d            n# 1 swxY w Y   |                     t                    5  |d= d d d            n# 1 swxY w Y   |                     |j        d           |                     |d         d           d S )Nr   r   r  r   r  r   )r	   r   AttributeErrorr   r   r=   r5   r   r   s      r6   test_readonlyzTestNamedTuple.test_readonly  s   7E**E"bMM~.. 	 	AC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	~.. 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	AaD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	b!!!1r"""""sG   AAA0A??BB$B66B:=B:C++C/2C/r^   z)Docstrings are omitted with -O2 and abovec                     t          dd          }|                     |j        d           d|_        |                     |j        d           d S )Nr   r   zPoint(x, y)z2D point)r	   r=   __doc__r  s     r6   test_factory_doc_attrz$TestNamedTuple.test_factory_doc_attr  sP     7E**666"
33333r8   c                    t          dd          }|                     |j        j        d           |                     |j        j        d           d|j        _        |                     |j        j        d           t          dd          }|                     |j        j        d           d|j        _        |                     |j        j        d           d S )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   )r5   r   r#  s      r6   test_field_doczTestNamedTuple.test_field_doc  s     7E***DEEE*DEEE1*ABBBHe,,)+EFFF3)+CDDDDDr8   c                     t          dddg          }t          dddg          }|                     |j        j        |j        j                   |                     |j        j        |j        j                   d S )NPr   nQor   )r	   r?   r   r   r)  r'  r   )r5   r&  r(  s      r6   test_field_doc_reusez#TestNamedTuple.test_field_doc_reuse  sh     sS#J''sS#J''ack13;///ack13;/////r8   c                    t          dd          }|                     t          |j                  d           |                     t          |j                  d           d|j        _        d|j        _        |                     t          |j                  d           |                     t          |j                  d           d S )	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=   rn   r   r   r   r  s     r6   test_field_reprzTestNamedTuple.test_field_repr  s    7E**eg(UVVVeg(UVVV,,eg(MNNNeg(MNNNNNr8   c                     ddgddgddgddgdd	gd
dgfD ]0\  }}|                      t          d|d          j        |           1d S )N)efgzg%hi)r.  _1)rU   r   rU   r/  )8efg9ghi)_0r/  )rU   _efg)rU   r.  r.  ghi)rU   r.  _2r5  )rU   r   r   )rU   r/  r   NTTrename)r=   r	   r  )r5   specrenameds      r6   test_name_fixerzTestNamedTuple.test_name_fixer  s    }-}-|,m,)+FG12
 	S 	SMD' Zd4@@@H'RRRR	S 	Sr8   c                 x    t          dddgt                    }|                     |j        t                     d S )Nr7  r   r   )module)r	   collectionsr=   rW   r5   r7  s     r6   test_module_parameterz$TestNamedTuple.test_module_parameter  s8    sCj===44444r8   c                 P   t          dd          } |dd          }|                     | |dd                     |                     | |dd                     |                     | |dd                     |                     | |d            |                     | |di t          dd                     |                     t          |d	           |                     t          |d	d
d           |                     t                    5   |d	d
           d d d            n# 1 swxY w Y   |                     t                    5   |d	           d d d            n# 1 swxY w Y   |                     t          |          d           |                     dt          |                     |                     ||                    ddg                     |                     |j	        d           |                     |
                    d	          d           |                     |                                t          dd                     	 |
                    d	d
           |                     d           n# t          $ r Y nw xY wt          dd          } |dd          }|                     t          |          d           t          dd          } |dd          }|                     t          |          d           d S )Nr   r   r  r   r   )r   )r   r   r  r   r]   r^   rd   )XXXr   r   zPoint(x=11, y=22)__weakref__)r]   r   )r   errorz%Did not detect an incorrect fieldnamezx, yrY   )r	   r=   rM   r   r   rn   r  r2   r  r  _replace_asdict_failr  r  s      r6   test_instancezTestNamedTuple.test_instance  s   7E**E"bMMEEB"---...EE"OOO,,,EEB"---...EE8,---EE55D2$4$4$455666)UA...)UAq!444y)) 	 	Ea1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	EAJJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	a"5666A///EKKR11222J///a'222dR2&6&6&6777	@JJ!J$$$ JJ>????  	 	 	D	 7F++EB"a"5666 7J//EB"a"566666s6   D22D69D6E00E47E4)J 
J#"J#c                    t          dd          } |dd          }|                     |t                     |                     |d           |                     t          |          d           |                     t	          |          ddg           |                     t          |          d           |                     t          | d           |\  }}|                     |||f           |                     |d         |d         fd           |                     t                    5  |d          d d d            n# 1 swxY w Y   |                     |d	         d           |                     t          |          t          d                     |                     |j	        |           |                     |j
        |           |                     t                    5  |j         d d d            d S # 1 swxY w Y   d S )
Nr   r   r  r   rC  r   r]   rd   )r	   assertIsInstancer
  r=   rI   maxr   
IndexErrorhashr   r   r  rf   )r5   r   r   r   r   s        r6   test_tuplenesszTestNamedTuple.test_tupleness  s`   7E**E"bMMa'''H%%%q8,,,a2r(+++Q$$$a"%%%1QF###!A$!x000z** 	 	aDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	2###a$x..111a   a   ~.. 	 	CC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   1	EE
E
-HH	Hc           	      T   t          dd          }|                      |            d           |                     |                    g           d           |                     t           |                      d           |                      |                                            i            |                      |            j        d           t          dd          }|                      |d          d           |                     |                    dg          d           |                      |d          j        d           |                     t           |d                    d	           |                      |d                                          ddi           |                      |d                              d
          d           |                      |d          j        d           d}t          t          d t          |          D                                 }t          |          }t          d|          } |t          |           }|                     |t          t          |                               |                     |                    t          |                    t          t          |                               t          |          D ])\  }}|                     t          ||          |           *t          |           |                                }	t          t!          |t          |                              }
|                     |	|
            |j        di t          |d         d
f|d         dfg          }t          t          |                    }d
|d<   d|d<   |                     |t          |                     |                     |j        t          |                     d S )NZeror   rY   zZero()Dotry   r]   r]   zDot(d=1)r   )ry   )r   i  c              3   n   K   | ]0}d                      d t          d          D                       V  1dS )r   c                 @    g | ]}t          t          j                  S rY   )r   stringascii_letters).0r   s     r6   
<listcomp>z;TestNamedTuple.test_odd_sizes.<locals>.<genexpr>.<listcomp>  s3     "6 "6 "6&' #))=">"> "6 "6 "6r8   r   N)r   rq   )r[  r   s     r6   	<genexpr>z0TestNamedTuple.test_odd_sizes.<locals>.<genexpr>  sn       J J;<  "6 "6+099"6 "6 "6 7 7 J J J J J Jr8   Big*   )r	   r=   r  rn   rI  r  ry   rH  rI   r1   rq   rk   r
  	enumerategetattrrM   rp   )r5   rT  rU  r'  namesr^  r/   posnamery   
d_expectedb2b2_expecteds                r6   test_odd_sizeszTestNamedTuple.test_odd_sizes  s   &"%%$$$B,,,ddffx000))2...,,,$$Q&&&A3...Q1%%%cc!ffz222Q))C7333Q3//888Q000S J J@EaJ J J J J K KJJ&&CqNE%((OO,,,588,,eE!HHoo>>>"5)) 	4 	4ICWQ--s3333QIIKK#eU1XX..//
J'''QZBB$q3rB@AABB588nnABU;//000E%LL11111r8   c           	         t          ddd          }t          fD ]}t          |d          }t          |d          }t          d|j        dz             D ]m} | |||                    }|                     ||           |                     |j        |j                   |                     d	 |||                     nd S )
Nr   r_   r`   r   r   rf   rt   ru   rM  r]   s   OrderedDict)r   rr   rb  rq   rs   r=   r  r  )r5   r   r>  rt   ru   protocolqs          r6   test_picklezTestNamedTuple.test_pickle1  s    R2$$$i 	E 	EFFG,,EFG,,E!"f&=&ABB E EE%%8,,--  A&&&  AI666  q(1C1CDDDD	E	E 	Er8   c                     t          ddd          }t          j        t          j        fD ]C} ||          }|                     ||           |                     |j        |j                   Dd S )Nr   r_   r`   rk  )r   r:   rv   r=   r  )r5   r   copierrm  s       r6   	test_copyzTestNamedTuple.test_copy<  sx    R2$$$i. 	3 	3Fq		AQ"""QY	2222	3 	3r8   c           
         t          dd          } |ddddd          }|                     |d           |                    d	d
ddd          }|                     |d           h d}t          d|          }t          t	          t          |                              } || }|                     ||            |di t          t          |j        |                    }|                     ||           |	                    |          }|                     ||           t          |           |                     |                                t          t          |j        |                               |	                    |          }t          d |D                       } |j        di t          t          |j        |                    }|                     ||           |                     |j        t          |                     |                     |                                |           d S )NTz"itemgetter property self cls tupler]   r^   rd   r   rg   )r]   r^   rd   r   rg   r   r_   r`   (   2   )
itemgetterpropertyr5   clsr
  )r   r_   r`   rt  ru  >   r.   ry   r   r   rsr   r   rf   AtanbebyoftoupForGotaddallbutrx  docrm   gothasrk   mapnewr   r1   rE   sysr  userp   MakeNoteTypeUsedalsor   r:   rM   exechelpr   r   likerI   ri   mustre  rn   seenr5   sidestepthanthisro   useduserworkAliasBuildFieldr   addedbuildrG  fieldframeindexnamedrc  needsplainsplitstarttheirr
  validwherewhichBypassCreateHelperJythonModifyReturncannoteffecteitherfieldsgettermethodr>  nicelynumberobjectoptionrr   r9  resultrY  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picklingrw  repr_fmtsequencesubclasstypenamevariabler   	Variables	arguments	debugging	docstring	duplicatera  	f_globals	formatted	functions	indexable	interning	namespace	replacing	specified	tuple_new
IronPythonr  
accessible
dictionary
docstringsr   rv  r	   
num_fields
particular
positional
startswith
underscore
unexpectedEncounteredr   classmethodr?  field_namesidentifiersinstantiatemodule_namenamedtuple_environmentsisidentifierautomaticallyintrospectionr  representationclass_namespacereuse_itemgetterc              3       K   | ]	}|d z  V  
dS )r   NrY   )r[  r|   s     r6   r]  z5TestNamedTuple.test_name_conflicts.<locals>.<genexpr>{  s&      //1!B$//////r8   rY   )r	   r=   rH  r
  rq   rk   rM   rp   r  r  rn   rI  __getnewargs__)r5   rs  tnewtwordsr  	newvaluess          r6   test_name_conflictsz"TestNamedTuple.test_name_conflictsC  s$    s@AAAaAq!K(((zzR"22RzPP/000/ / /: sE""uSZZ(())AvJF###A--SF++,,--F###GGFOOF###Qd3qy&+A+A&B&BCCCGGFOO///////	qz<<DQY	!:!:;;<<y)))E%LL111))++V44444r8   c                     t          dd          }|                     t           |d                    d            G d d|          }|                     t           |d                    d           d S )NAr   r]   zA(x=1)c                       e Zd ZdS )#TestNamedTuple.test_repr.<locals>.BNr   rY   r8   r6   r   r    r   r8   r   zB(x=1))r	   r=   rn   )r5   r  r   s      r6   	test_reprzTestNamedTuple.test_repr  s    sC  aaddX...	 	 	 	 	 	 	 	aaddX.....r8   c                 |   |                      t                    5  t          dddgd          }d d d            n# 1 swxY w Y   t          dddgd          }|                     |j        d           |                      t                    5  t          dddgd	d          }d d d            d S # 1 swxY w Y   d S )
Nr7  r   r   TrU   defr8  r0  F)r   r   r	   r=   r  r@  s     r6   test_keyword_only_argumentsz*TestNamedTuple.test_keyword_only_arguments  sA   y)) 	4 	4D3*d33B	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 uenT:::]333y)) 	? 	?D5%.%>>B	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   ;??B11B58B5c           	          G d dt          dddg                    } |dd          }|                     |                                t          dd	g                     d
|_        |                     |j        dd
i           d S )Nc                       e Zd ZdS )BTestNamedTuple.test_namedtuple_subclass_issue_24931.<locals>.PointNr   rY   r8   r6   r   r    r   r8   r   _Pointr   r   rd   r   )r   rd   )r   r   rg   w)r	   r=   rI  r   r  __dict__)r5   r   r.   s      r6   $test_namedtuple_subclass_issue_24931z3TestNamedTuple.test_namedtuple_subclass_issue_24931  s    	 	 	 	 	Jx#s44 	 	 	 E!QKKk8X2F&G&GHHHc1X.....r8   c                    t          dd           dd          }|                     t          j        j                             |                     j                            |          d           |                     t          j        j	        |d           |                     t          j        j
        |           t          t          j        dz             D ]|                               5   G fdd	t                    } |dd
g          }|                     |j        d           |                     |j        d
           d d d            n# 1 swxY w Y   d S )Nr   r   r  r   r  r]   r   c                       e Zd Z ej         ej         j                            Z ej         ej         j                            ZdS )6TestNamedTuple.test_field_descriptor.<locals>.NewPointN)r4   rW   rX   rr   rt   ru   r   r   )r   r   s   r6   NewPointr"    sQ        $\V\%'5%A%ABBA$\V\%'5%A%ABBAAAr8   r#  r^   )r	   r   inspectisdatadescriptorr   r=   __get__r   r  __set__
__delete__rq   rr   rs   subTestr
  r   )r5   r   r#  npr   r   s       @@r6   test_field_descriptorz$TestNamedTuple.test_field_descriptor  s   7E**E"bMM099:::++R000.%'/1bAAA.%'*<a@@@62Q677 		* 		*EE** * *C C C C C C C Cu C C C Xq!f%%  q)))  q)))* * * * * * * * * * * * * * *		* 		*s   :AE  E$	'E$	c                     t          dd          }|j        }|                     |j        d         i            |                     |j        i            d S )Nr   rY   __builtins__)r	   r  r=   __globals__r-  )r5   r@   new_funcs      r6   test_new_builtins_issue_43102z,TestNamedTuple.test_new_builtins_issue_43102  sU    b!!;-n=rBBB.33333r8   c                 \    t          dd          }|                     |j        d           d S )Nr   r   r   )r	   r=   __match_args__r  s     r6   test_match_argszTestNamedTuple.test_match_args  s0    7E**-z:::::r8   c                    t          j        dd          }|t          t          t                   f         }|                     |j        |           |                     |j        d           |                     |j        t          t          t                   f            |ddg          }|                     t          |          |           |                     |ddgf           d S )NGroupz	key grouprY   r]   r^   )
r?  r	   intrI   r=   
__origin____parameters____args__r?   ro   )r5   r5  r  r.   s       r6   test_non_generic_subscriptz)TestNamedTuple.test_non_generic_subscript  s     &w<<#tCy.!u---)2...c49%5666Aa!IId1ggu%%%QH%%%%%r8   N) r4   rW   rX   r  r  r  unittestskipIfr  flagsoptimizer!  r$  r   cpython_onlyr*  r,  r<  rA  rK  rR  ri  rn  rq  r  r  r  r  r+  r0  r3  r:  rY   r8   r6   r   r   5  s/       @ @ @:0, 0, 0,d# # # X_SY'1,@B B4 4B B4 X_SY'1,@B B
E 
EB B
E X_SY'1,@B B0 0B B 0 	O 	O 	O	S 	S 	S5 5 5$7 $7 $7L  .$2 $2 $2L	E 	E 	E3 3 3>5 >5 >5@/ / /? ? ?/ / / * * *&4 4 4; ; ;
& 
& 
& 
& 
&r8   r   c                        e Zd Zd Zd Zd ZdS )ABCTestCasec                 
   t                               |d           }t          d|f|          } |             |D ]G}|                                }||= t          d|f|          }|                     t
          ||           Hd S )Nc                     dS Nr   rY   rz  r   s     r6   <lambda>z7ABCTestCase.validate_abstract_methods.<locals>.<lambda>  s    A r8   r   )rM   fromkeysro   r:   r   r   )r5   rU   rc  methodstubsr   re  stubss          r6   validate_abstract_methodsz%ABCTestCase.validate_abstract_methods  s    mmE+=+=>> sfk**	  	2 	2D$$&&EdS3&%((AiD1111		2 	2r8   c                    d }t          dt          fdd i          }t          |||           |                      |            |           |                     t          ||                     t          dt          fdd i          }|                      |            |           |                     t          ||                     d S )Nc                     dS rD  rY   rE  s     r6   rF  z1ABCTestCase.validate_isinstance.<locals>.<lambda>  s     r8   r   __hash__)ro   r  setattrrN  r   
issubclassassertNotIsInstancer   )r5   rU   re  stubr   s        r6   validate_isinstancezABCTestCase.validate_isinstance  s    !!vi*d!3444aacc3'''
1c**+++vi*d!344  c***As++,,,,,r8   c                 T   g d}i }|D ]"}d|z   dz   }t          t          |          ||<   # G d d          }|                                D ]Z\  }}t          ||          s |            } |||           |                     |j        dt          |          d|           [d S )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dS ).ABCTestCase.validate_comparison.<locals>.Otherc                     d| _         d S r   
right_siderF   s    r6   r   z7ABCTestCase.validate_comparison.<locals>.Other.__init__  s    "'r8   c                     d| _         dS r   ra  )r5   r   s     r6   __eq__z5ABCTestCase.validate_comparison.<locals>.Other.__eq__  s    "&tr8   N)r4   rW   rX   r   rd  __lt____gt____le____ge____ne__r   __rand____rxor____rsub__rY   r8   r6   Otherr_    s[        ( ( (   FFFFFGHHHHHr8   rm  zRight side not called for .)rb  r  rj   hasattrr   rb  ro   )r5   r  ops	operatorsopre  rm  r   s           r6   validate_comparisonzABCTestCase.validate_comparison  s    GGG	 	6 	6B"9t#D%h55IdOO	 	 	 	 	 	 	 	  ")) 	6 	6HD"8T** EGGEBxOOE,,#H~~~~tt.5 6 6 6 6	6 	6r8   N)r4   rW   rX   rJ  rR  rs  rY   r8   r6   rA  rA    sA        2 2 2
- 
- 
-6 6 6 6 6r8   rA  c               #      K   d V  d S rD   rY   rY   r8   r6   	_test_genru  	  s      	EEEEEr8   c                   n    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S )TestOneTrickPonyABCsc           	         d }t           j        d             }d } G d d          } G d dt                    }|                     t          d           d t                       |            t                      g}|D ]m}|                     |t                     |                     t          t          |          t                    t          t          |                               n |             |            g}|D ]R}|                     |t                     |                     t          t          |          t                               S |            }	|                     |	t                      |            }	|                     |	t                     |	                                  G d	 d
          }
t          j        |
           |                     t!           |
            t                               |                     t          |
t                               d }
t#          j                     d S )Nc               3      K   d V  d S rD   rY   rY   r8   r6   genz0TestOneTrickPonyABCs.test_Awaitable.<locals>.gen        EEEEEr8   c               3      K   d V  d S rD   rY   rY   r8   r6   coroz1TestOneTrickPonyABCs.test_Awaitable.<locals>.coro        EEEEEr8   c                  
   K   d S rD   rY   rY   r8   r6   new_coroz5TestOneTrickPonyABCs.test_Awaitable.<locals>.new_coro        Dr8   c                       e Zd Zd ZdS )0TestOneTrickPonyABCs.test_Awaitable.<locals>.Barc              3      K   d V  d S rD   rY   rF   s    r6   	__await__z:TestOneTrickPonyABCs.test_Awaitable.<locals>.Bar.__await__        r8   Nr4   rW   rX   r  rY   r8   r6   Barr    #            r8   r  c                   ,     e Zd Zd Zd fd	Zd Z xZS )8TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoroc                     |S rD   rY   r5   values     r6   sendz=TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.send      r8   Nc                 N    t                                          |||           d S rD   r   throwr5   typvaltbr   s       r6   r  z>TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.throw   #    c3+++++r8   c              3      K   d V  d S rD   rY   rF   s    r6   r  zBTestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.__await__"  r  r8   NNr4   rW   rX   r  r  r  r   r   s   @r6   MinimalCoror    [          , , , , , ,      r8   r  r  c                       e Zd ZdS )5TestOneTrickPonyABCs.test_Awaitable.<locals>.CoroLikeNr   rY   r8   r6   CoroLiker  ;            r8   r  )types	coroutiner   rJ  r   r6  r  rP  r   rO  ro   rn   rN  r   closeregisterr   r   
gc_collectr5   rz  r}  r  r  r  non_samplesr   samplesra   r  s              r6   test_Awaitablez#TestOneTrickPonyABCs.test_Awaitable  sQ   	 	 	 
	 	 
		 	 		 	 	 	 	 	 	 		 	 	 	 	) 	 	 	 	&&y+>>>SUUCCEE6884 	L 	LA$$Q	222ZQ;;T$q'']]KKKK355++--( 	< 	<A!!!Y///OOJtAww	::;;;;DFF 	  I...HJJa+++				8$$$
88::y99:::
8Y77888r8   c           	         d }t           j        d             }d } G d d          } G d dt                    }|                     t          dd	d
           d t	                       |            t                       |            g}|D ]m}|                     |t                     |                     t          t          |          t                    t          t          |                               n |            g}|D ]R}|                     |t                     |                     t          t          |          t                               S |            }	|                     |	t                      |            }	|                     |	t                     |	                                  G d d          }
|                     t           |
            t                               |                     t          |
t                                G d d          }
|                     t           |
            t                               |                     t          |
t                               d S )Nc               3      K   d V  d S rD   rY   rY   r8   r6   rz  z0TestOneTrickPonyABCs.test_Coroutine.<locals>.genC  r{  r8   c               3      K   d V  d S rD   rY   rY   r8   r6   r}  z1TestOneTrickPonyABCs.test_Coroutine.<locals>.coroF  r~  r8   c                  
   K   d S rD   rY   rY   r8   r6   r  z5TestOneTrickPonyABCs.test_Coroutine.<locals>.new_coroJ  r  r8   c                       e Zd Zd ZdS )0TestOneTrickPonyABCs.test_Coroutine.<locals>.Barc              3      K   d V  d S rD   rY   rF   s    r6   r  z:TestOneTrickPonyABCs.test_Coroutine.<locals>.Bar.__await__N  r  r8   Nr  rY   r8   r6   r  r  M  r  r8   r  c                   ,     e Zd Zd Zd fd	Zd Z xZS )8TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoroc                     |S rD   rY   r  s     r6   r  z=TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.sendR  r  r8   Nc                 N    t                                          |||           d S rD   r  r  s       r6   r  z>TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.throwT  r  r8   c              3      K   d V  d S rD   rY   rF   s    r6   r  zBTestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.__await__V  r  r8   r  r  r   s   @r6   r  r  Q  r  r8   r  r  r  r  c                   (    e Zd Zd ZddZd Zd ZdS )5TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLikec                     d S rD   rY   r  s     r6   r  z:TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.sendp      r8   Nc                     d S rD   rY   r5   r  r  r  s       r6   r  z;TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.throwr  r  r8   c                     d S rD   rY   rF   s    r6   r  z;TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.closet  r  r8   c                     d S rD   rY   rF   s    r6   r  z?TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.__await__v  r  r8   r  )r4   rW   rX   r  r  r  r  rY   r8   r6   r  r  o  sU                   r8   r  c                        e Zd Zd Zd Zd ZdS )r  c                     d S rD   rY   r  s     r6   r  z:TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.send|  r  r8   c                     d S rD   rY   rF   s    r6   r  z;TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.close~  r  r8   c                     d S rD   rY   rF   s    r6   r  z?TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.__await__  r  r8   N)r4   rW   rX   r  r  r  rY   r8   r6   r  z5TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike{  sA                r8   )r  r  r   rJ  r6  r  rP  r   rO  ro   rn   rN  r   r   r  r   r  s              r6   test_Coroutinez#TestOneTrickPonyABCs.test_CoroutineB  s   	 	 	 
	 	 
		 	 		 	 	 	 	 	 	 		 	 	 	 	) 	 	 	 	&&y+vwOOOSUUCCEE688SSUU; 	L 	LA$$Q	222ZQ;;T$q'']]KKKK;==/ 	< 	<A!!!Y///OOJtAww	::;;;;DFF 	  I...HJJa+++					 	 	 	 	 	 	 	 	
88::y99:::
8Y77888	 	 	 	 	 	 	 	 	HHJJ	::;;;Hi8899999r8   c                    t                      t                      t                      t                      g}|D ]m}|                     |t
                     |                     t          t          |          t
                    t          t          |                               nd t                      t                      t                      t                      t                      t                      t          t          t           t          t#                      g}|D ]m}|                     |t
                     |                     t          t          |          t
                    t          t          |                               n|                     t*          t
                      G d dt
                    }|                     t/           |                      d           |                     t          t          |                     |                     t
          d           |                     t
          d           d S )Nc                        e Zd Z fdZ xZS )-TestOneTrickPonyABCs.test_Hashable.<locals>.Hc                 D    t                                                      S rD   )r   rM  r5   r   s    r6   rM  z6TestOneTrickPonyABCs.test_Hashable.<locals>.H.__hash__      ww'')))r8   )r4   rW   rX   rM  r   r   s   @r6   Hr    8        * * * * * * * * *r8   r  r   rM  )	bytearrayrI   r1   rM   rP  r   r   rO  ro   rn   r6  floatcomplexrE   r
  	frozensetr  bytesrN  r   r   r   r=   rQ  rJ  rR  )r5   r  r   r  r  s        r6   test_Hashablez"TestOneTrickPonyABCs.test_Hashable  s    {{DFFCEE466: 	K 	KA$$Q111ZQ::DaMMJJJJ55%''7995577IKKfdEGG	  	J 	JA!!!X...OOJtAww994Q==IIII)X...	* 	* 	* 	* 	* 	* 	* 	* 	aaccA&&&C++,,,&&x<<<  :66666r8   c           	      0    G d d          }|                      t           |            t                               |                      t          |t                               d t          g g}|D ]m}|                     |t                     |                     t          t          |          t                    t          t          |                               n| 	                    t          d           | 
                    t          d           d S )Nc                       e Zd Zd ZdS )3TestOneTrickPonyABCs.test_AsyncIterable.<locals>.AIc                     | S rD   rY   rF   s    r6   	__aiter__z=TestOneTrickPonyABCs.test_AsyncIterable.<locals>.AI.__aiter__      r8   N)r4   rW   rX   r  rY   r8   r6   AIr    s#            r8   r  r  )r   r   r   rO  r  rP  r   ro   rn   rJ  rR  )r5   r  r  r   s       r6   test_AsyncIterablez'TestOneTrickPonyABCs.test_AsyncIterable  s   	 	 	 	 	 	 	 	 	
224477888
2}55666VR( 	P 	PA$$Q666ZQ??d1ggOOOO&&}kBBB  <<<<<r8   c           	      \    G d d          }|                      t           |            t                               |                      t          |t                               d t          g g}|D ]m}|                     |t                     |                     t          t          |          t                    t          t          |                               n G d d          }|                      |            t                     | 	                    t          dd           d S )Nc                       e Zd Zd Zd ZdS )3TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AIc                     | S rD   rY   rF   s    r6   r  z=TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AI.__aiter__  r  r8   c                    K   t           rD   StopAsyncIterationrF   s    r6   	__anext__z=TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AI.__anext__        ((r8   N)r4   rW   rX   r  r  rY   r8   r6   r  r    s2          ) ) ) ) )r8   r  c                       e Zd Zd ZdS ):TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AnextOnlyc                    K   t           rD   r  rF   s    r6   r  zDTestOneTrickPonyABCs.test_AsyncIterator.<locals>.AnextOnly.__anext__  r  r8   N)r4   rW   rX   r  rY   r8   r6   	AnextOnlyr    s#        ) ) ) ) )r8   r  r  r  )
r   r   r   rO  r  rP  r   ro   rn   rJ  )r5   r  r  r   r  s        r6   test_AsyncIteratorz'TestOneTrickPonyABCs.test_AsyncIterator  s6   	) 	) 	) 	) 	) 	) 	) 	)
 	
224477888
2}55666VR( 	P 	PA$$Q666ZQ??d1ggOOOO	) 	) 	) 	) 	) 	) 	) 	) 	  m<<<&&}k;OOOOOr8   c                 @   g d}|D ]m}|                      |t                     |                     t          t	          |          t                    t          t	          |                               nt                      t                      t                      t                      t                      t                      t                      t                                                      t                                                      t                                                      t!                      d dD             g}|D ]m}|                     |t                     |                     t          t	          |          t                    t          t	          |                               n G d dt                    }|                     t           |                      g            |                     t          t          |                     |                     t          d           |                     t          d            G d d          } G d	 d
|          }|                     t          |t                               |                     t-           |            t                               |                     t          |t                               |                     t-           |            t                               d S )N)Nr`  Q	@              ?c              3      K   | ]}|V  d S rD   rY   r[  r   s     r6   r]  z5TestOneTrickPonyABCs.test_Iterable.<locals>.<genexpr>        ??!A??????r8   rY   c                        e Zd Z fdZ xZS )-TestOneTrickPonyABCs.test_Iterable.<locals>.Ic                 D    t                                                      S rD   )r   __iter__r  s    r6   r  z6TestOneTrickPonyABCs.test_Iterable.<locals>.I.__iter__  r  r8   )r4   rW   rX   r  r   r   s   @r6   Ir    r  r8   r  r  c                       e Zd Zd ZdS ).TestOneTrickPonyABCs.test_Iterable.<locals>.Itc                      t          g           S rD   r  rF   s    r6   r  z7TestOneTrickPonyABCs.test_Iterable.<locals>.It.__iter__      tBxxr8   Nr4   rW   rX   r  rY   r8   r6   Itr            /////r8   r  c                       e Zd ZdZdS )5TestOneTrickPonyABCs.test_Iterable.<locals>.ItBlockedNr  rY   r8   r6   	ItBlockedr            HHHr8   r  )rP  r   r   rO  ro   rn   r  rE   r
  rI   r1   r  rM   keysrj   r  ru  rN  r   r=   rJ  rR  r   )r5   r  r   r  r  r  r  s          r6   test_Iterablez"TestOneTrickPonyABCs.test_Iterable  s   *** 	K 	KA$$Q111ZQ::DaMMJJJJ77CEE77DFFCEE9;;66;;==$&&,,..$&&--//;;"?r???	  	J 	JA!!!X...OOJtAww994Q==IIII	* 	* 	* 	* 	* 	* 	* 	* 	aaccB'''C++,,,&&x<<<  :666	0 	0 	0 	0 	0 	0 	0 	0	 	 	 	 	 	 	 	
2x00111
224422333Ix88999IIKK::;;;;;r8   c                    d dddt                      t                      g}|D ]m}|                     |t                     |                     t          t          |          t                    t          t          |                               nt                      d dD             t          g           t          g           g}|D ]m}|                     |t                     |                     t          t          |          t                    t          t          |                               nt                      t                      t                      t                      t                      t                                                      t                                                      t                                                      t'                      t'                                                      t'                                                      t'                                                      t)                      t)                                                      t)                                                      t)                                                      g}|D ]m}|                     |t                     |                     t          t          |          t                    t          t          |                               n|                     t          t.          t                    t          t.                               |                     t          t0          t                    t          t0                               |                     t          t2          t                    t          t2                                G d dt                    }|                     t          t           |                                g            |                     t          t6          |                     |                     t          dd	            G d
 d          } G d d|          }|                     t          |t                               |                     t;           |            t                               |                     t          |t                               |                     t;           |            t                                G d d          } G d d|          }	 G d d|          }
|                     t          |t                               |                     t;           |            t                               |                     t          |	t                               |                     t;           |	            t                               |                     t          |
t                               |                     t;           |
            t                               d S )Nr`  r  r  c              3      K   | ]}|V  d S rD   rY   r  s     r6   r]  z7TestOneTrickPonyABCs.test_Reversible.<locals>.<genexpr>  s      qr8   rY   c                       e Zd Zd Zd ZdS )/TestOneTrickPonyABCs.test_Reversible.<locals>.Rc                 8    t          t                                S rD   r  rI   rF   s    r6   r  z8TestOneTrickPonyABCs.test_Reversible.<locals>.R.__iter__      DFF||#r8   c                 8    t          t                                S rD   r  rF   s    r6   __reversed__z<TestOneTrickPonyABCs.test_Reversible.<locals>.R.__reversed__  r  r8   Nr4   rW   rX   r  r	  rY   r8   r6   Rr    s2        $ $ $$ $ $ $ $r8   r  r	  r  c                       e Zd Zd ZdS )7TestOneTrickPonyABCs.test_Reversible.<locals>.RevNoIterc                      t          g           S rD   reversedrF   s    r6   r	  zDTestOneTrickPonyABCs.test_Reversible.<locals>.RevNoIter.__reversed__      8B<<$7r8   Nr4   rW   rX   r	  rY   r8   r6   	RevNoIterr    s        77777r8   r  c                       e Zd Zd ZdS )9TestOneTrickPonyABCs.test_Reversible.<locals>.RevPlusIterc                      t          g           S rD   r  rF   s    r6   r  zBTestOneTrickPonyABCs.test_Reversible.<locals>.RevPlusIter.__iter__  r  r8   Nr  rY   r8   r6   RevPlusIterr    r  r8   r  c                       e Zd Zd Zd ZdS )1TestOneTrickPonyABCs.test_Reversible.<locals>.Revc                      t          g           S rD   r  rF   s    r6   r  z:TestOneTrickPonyABCs.test_Reversible.<locals>.Rev.__iter__  r  r8   c                      t          g           S rD   r  rF   s    r6   r	  z>TestOneTrickPonyABCs.test_Reversible.<locals>.Rev.__reversed__  r  r8   Nr
  rY   r8   r6   Revr    s"        ///77777r8   r  c                       e Zd ZdZdS ):TestOneTrickPonyABCs.test_Reversible.<locals>.RevItBlockedNr  rY   r8   r6   RevItBlockedr    r  r8   r  c                       e Zd ZdZdS );TestOneTrickPonyABCs.test_Reversible.<locals>.RevRevBlockedNr  rY   r8   r6   RevRevBlockedr!            LLLr8   r"  )r1   r  rP  r   r   rO  ro   rn   ru  r  r  r  rE   r
  rI   r   r  rj   r  r
   rM   rN  r   r'   r"   r#   r=   r  rJ  r   )r5   r  r   non_reversiblesr  r  r  r  r  r  r"  s              r6   test_Reversiblez$TestOneTrickPonyABCs.test_Reversible  s5   Rr355)++> 	M 	MA$$Q
333ZQ<<d477mmLLLL$;;Bb8B<<P  	M 	MA$$Q
333ZQ<<d477mmLLLL77CEE577DFFKMM==%%'')<)<)>)>==''))799giinn6F6F99??$$gii&6&6&8&8$&&66;;==$&&,,..$&&--//	C
  	L 	LA!!!Z000OOJtAww
;;T$q'']]KKKK
8Z88$x..IIIGZ88$w--HHHNJ??nAUAUVVV	$ 	$ 	$ 	$ 	$
 	$ 	$ 	$
 	hqqssmm,,b111E1--...&&z>:NNN	8 	8 	8 	8 	8 	8 	8 	8	0 	0 	0 	0 	0) 	0 	0 	0Iz::;;;IIKK<<===
;
;;<<<
;;==*==>>>	8 	8 	8 	8 	8 	8 	8 	8	 	 	 	 	3 	 	 		  	  	  	  	 C 	  	  	 
3
33444
3355*55666L*==>>>LLNNJ??@@@M:>>???MMOOZ@@AAAAAr8   c                    d dddd g}|D ]m}|                      |t                     |                     t          t	          |          t                    t          t	          |                               nt                      t          d          t          t                                d dD             g}|D ]m}|                      |t                     |                     t          t	          |          t                    t          t	          |                               nt                      t                      t                      t                      t                      t                      t                      t                                                      t                                                      t                                                      g
}|D ]m}|                     |t                     |                     t          t	          |          t                    t          t	          |                               n|                     t          t*          t                    t          t*                               |                     t          t,          t                    t          t,                               |                     t          t.          t                    t          t.                               |                     t          t0          t                    t          t0                               |                     t          t2          t                    t          t2                               |                     t          t*          t                    t          t2                                G d d	t                    } G d
 d|          }|                     t          t           |                                g            |                     t          t          |                     |                     t          t          |                     |                     t          t6          |                     |                     t          t           |                                g            |                     t          t          |                     |                     t          t          |                     |                     t          t6          |                     |                     t          ddd            G d d          } G d d          } G d d          }	|                     t          |t                               |                     t;           |            t                               |                     t          |t                               |                     t;           |            t                               |                     t          |	t                               |                     t;           |	            t                                G d d          }
 G d d          }|                     t          |
t                               |                     t;           |
            t                               |                     t          |t                               |                     t;           |            t                                G d d          } G d d|          }|                     t          |t                               |                     t;           |            t                               d S )Nr`  r  r  c                     d| z  S )Nr^   rY   rE  s    r6   rF  z6TestOneTrickPonyABCs.test_Collection.<locals>.<lambda>  s
    1 r8   r8   c              3      K   | ]}|V  d S rD   rY   r  s     r6   r]  z7TestOneTrickPonyABCs.test_Collection.<locals>.<genexpr>$  s      __Aa______r8   rY   c                        e Zd Zd Zd Zd ZdS )1TestOneTrickPonyABCs.test_Collection.<locals>.Colc                 8    t          t                                S rD   r  rF   s    r6   r  z:TestOneTrickPonyABCs.test_Collection.<locals>.Col.__iter__8  r  r8   c                     dS rD  rY   rF   s    r6   __len__z9TestOneTrickPonyABCs.test_Collection.<locals>.Col.__len__:      qr8   c                     dS r   rY   r   s     r6   r   z>TestOneTrickPonyABCs.test_Collection.<locals>.Col.__contains__<      ur8   Nr4   rW   rX   r  r-  r   rY   r8   r6   Colr*  7  A        $ $ $      r8   r2  c                       e Zd ZdS )4TestOneTrickPonyABCs.test_Collection.<locals>.DerColNr   rY   r8   r6   DerColr5  >  r  r8   r6  r-  r  r   c                       e Zd Zd Zd ZdS )7TestOneTrickPonyABCs.test_Collection.<locals>.ColNoIterc                     dS rD  rY   rF   s    r6   r-  z?TestOneTrickPonyABCs.test_Collection.<locals>.ColNoIter.__len__K      aar8   c                     dS r   rY   r   s     r6   r   zDTestOneTrickPonyABCs.test_Collection.<locals>.ColNoIter.__contains__L      r8   N)r4   rW   rX   r-  r   rY   r8   r6   	ColNoIterr8  J  s"        '''66666r8   r=  c                       e Zd Zd Zd ZdS )7TestOneTrickPonyABCs.test_Collection.<locals>.ColNoSizec                      t          g           S rD   r  rF   s    r6   r  z@TestOneTrickPonyABCs.test_Collection.<locals>.ColNoSize.__iter__N  r  r8   c                     dS r   rY   r   s     r6   r   zDTestOneTrickPonyABCs.test_Collection.<locals>.ColNoSize.__contains__O  r<  r8   N)r4   rW   rX   r  r   rY   r8   r6   	ColNoSizer?  M  s"        ///66666r8   rB  c                       e Zd Zd Zd ZdS )7TestOneTrickPonyABCs.test_Collection.<locals>.ColNoContc                      t          g           S rD   r  rF   s    r6   r  z@TestOneTrickPonyABCs.test_Collection.<locals>.ColNoCont.__iter__Q  r  r8   c                     dS rD  rY   rF   s    r6   r-  z?TestOneTrickPonyABCs.test_Collection.<locals>.ColNoCont.__len__R  r:  r8   N)r4   rW   rX   r  r-  rY   r8   r6   	ColNoContrD  P  s"        ///'''''r8   rG  c                       e Zd Zd Zd ZdZdS )7TestOneTrickPonyABCs.test_Collection.<locals>.SizeBlockc                      t          g           S rD   r  rF   s    r6   r  z@TestOneTrickPonyABCs.test_Collection.<locals>.SizeBlock.__iter__[  r  r8   c                     dS r   rY   rF   s    r6   r   zDTestOneTrickPonyABCs.test_Collection.<locals>.SizeBlock.__contains__\  s    55r8   N)r4   rW   rX   r  r   r-  rY   r8   r6   	SizeBlockrI  Z  s%        ///000GGGr8   rL  c                       e Zd Zd Zd ZdZdS )7TestOneTrickPonyABCs.test_Collection.<locals>.IterBlockc                     dS rD  rY   rF   s    r6   r-  z?TestOneTrickPonyABCs.test_Collection.<locals>.IterBlock.__len___  r:  r8   c                     dS r   rY   rF   s    r6   r   zDTestOneTrickPonyABCs.test_Collection.<locals>.IterBlock.__contains__`  s    44r8   N)r4   rW   rX   r-  r   r  rY   r8   r6   	IterBlockrN  ^  s%        '''///HHHr8   rQ  c                        e Zd Zd Zd Zd ZdS )5TestOneTrickPonyABCs.test_Collection.<locals>.ColImplc                 8    t          t                                S rD   r  rF   s    r6   r  z>TestOneTrickPonyABCs.test_Collection.<locals>.ColImpl.__iter__h  r  r8   c                     dS rD  rY   rF   s    r6   r-  z=TestOneTrickPonyABCs.test_Collection.<locals>.ColImpl.__len__j  r.  r8   c                     dS r   rY   r   s     r6   r   zBTestOneTrickPonyABCs.test_Collection.<locals>.ColImpl.__contains__l  r0  r8   Nr1  rY   r8   r6   ColImplrS  g  r3  r8   rW  c                       e Zd ZdZdS )4TestOneTrickPonyABCs.test_Collection.<locals>.NonColN)r4   rW   rX   r   rY   r8   r6   NonColrY  n  r#  r8   rZ  )rP  r   r   rO  ro   rn   ru  r  r  r1   r  rM   r  rE   r
  rI   r  rj   r  rN  r   r'   r"   r#   r    r!   r=   r  rJ  r   )r5   non_collectionsr   non_col_iterablesr  r2  r6  r=  rB  rG  rL  rQ  rW  rZ  s                 r6   test_Collectionz$TestOneTrickPonyABCs.test_Collection  s   T2}}=  	M 	MA$$Q
333ZQ<<d477mmLLLL&[[$s))T)++5F5F,____." 	M 	MA$$Q
333ZQ<<d477mmLLLL55)++tvvuwwuww66466;;==$&&,,..$&&--//K 	L 	LA!!!Z000OOJtAww
;;T$q'']]KKKK
8Z88$x..III
7J77gGGG
>:>>$($8$8	: 	: 	:
3
33T#YY???
:z::D<L<LMMM
8Z88$z:J:JKKK	 	 	 	 	* 	 	 	 	 Sd3355kk**B///D#..///C--...E3//000d6688nn--r222D&11222C00111E622333&&z9j3A	C 	C 	C	7 	7 	7 	7 	7 	7 	7 	7	7 	7 	7 	7 	7 	7 	7 	7	( 	( 	( 	( 	( 	( 	( 	( 	Iz::;;;IIKK<<===Iz::;;;IIKK<<===Iz::;;;IIKK<<===	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	Iz::;;;IIKK<<===Iz::;;;IIKK<<===	 	 	 	 	 	 	 		  	  	  	  	 W 	  	  	 FJ77888FFHHj99:::::r8   c                 6   d ddddddg i t                      g
}|D ]m}|                     |t                     |                     t	          t          |          t                    t          t          |                               nt          t                                t          t                                t          t                                t          t                                t          t                                t          t                                t          t                                t          t                                                                t          t                                                                t          t                                                                t#                      d dD             g}|D ]m}|                     |t                     |                     t	          t          |          t                    t          t          |                               n|                     t          dd	            G d
 d          }|                      |            t                     d S )Nr`  r  r  r8   r   rY   c              3      K   | ]}|V  d S rD   rY   r  s     r6   r]  z5TestOneTrickPonyABCs.test_Iterator.<locals>.<genexpr>  r  r8   __next__r  c                       e Zd Zd ZdS )4TestOneTrickPonyABCs.test_Iterator.<locals>.NextOnlyc              3      K   dV  d S Nr]   rY   rF   s    r6   r`  z=TestOneTrickPonyABCs.test_Iterator.<locals>.NextOnly.__next__  s      r8   N)r4   rW   rX   r`  rY   r8   r6   NextOnlyrb    s#            r8   re  )r1   rP  r   r   rO  ro   rn   r  r  rE   r
  rI   rM   r  r  rj   r  ru  rN  r   rJ  )r5   r  r   r  re  s        r6   test_Iteratorz"TestOneTrickPonyABCs.test_Iteratort  s   Rr3BBF 	K 	KA$$Q111ZQ::DaMMJJJJ==$suu++==$tvv,,TVV;;Y[[ 1 1&&TVV\\^^(<(<((;;"?r???  	J 	JA!!!X...OOJtAww994Q==IIII&&xZHHH	 	 	 	 	 	 	 	 	  X66666r8   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 ]m}|                     |t                     |                     t          t          |          t                    t          t          |                               n G d d          } G d dt                    }d } |             d              |             |            g}	|	D ]}|                     |t                     |                     |t                     | 
                    t          t          |          t                    t          t          |                               |                     t          dd            |            }
|                     |
t          |
                     |                     |
                    d           t          |
                     |                     d|
                    d                     |                     |
                                           |                     t&          |
j        t&                     |                     t&          d|
j        t&          t'          d                     |                     t,          |
j        t-                                  G d dt                    }|                     t&           |            j                    G d dt                    }|                     t.           |            j                   d S )Nc                   (    e Zd Zd Zd Zd ZddZdS )4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1c                     | S rD   rY   rF   s    r6   r  z=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.__iter__      tr8   c                     d S rD   rY   rF   s    r6   r`  z=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.__next__      ttr8   c                     d S rD   rY   rF   s    r6   r  z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.close        r8   Nc                     d S rD   rY   r  s       r6   r  z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.throw  ro  r8   r  )r4   rW   rX   r  r`  r  r  rY   r8   r6   NonGen1ri    s7        ++++++!!!999999r8   rq  c                   &    e Zd Zd Zd Zd Zd ZdS )4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2c                     | S rD   rY   rF   s    r6   r  z=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.__iter__  rk  r8   c                     d S rD   rY   rF   s    r6   r`  z=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.__next__  rm  r8   c                     d S rD   rY   rF   s    r6   r  z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.close  ro  r8   c                     |S rD   rY   r  s     r6   r  z9TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.send      %<r8   N)r4   rW   rX   r  r`  r  r  rY   r8   r6   NonGen2rs    s4        ++++++!!!/////r8   ry  c                   "    e Zd Zd Zd ZddZdS )4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3c                     d S rD   rY   rF   s    r6   r  z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.close  ro  r8   c                     |S rD   rY   r  s     r6   r  z9TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.send  rx  r8   Nc                     d S rD   rY   r  s       r6   r  z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.throw  ro  r8   r  )r4   rW   rX   r  r  r  rY   r8   r6   NonGen3r{    s.        !!!///999999r8   r  r`  r  r  r8   r   rY   c                   .    e Zd Zd Zd Zd Zd ZddZdS )0TestOneTrickPonyABCs.test_Generator.<locals>.Genc                     | S rD   rY   rF   s    r6   r  z9TestOneTrickPonyABCs.test_Generator.<locals>.Gen.__iter__  rk  r8   c                     d S rD   rY   rF   s    r6   r`  z9TestOneTrickPonyABCs.test_Generator.<locals>.Gen.__next__  rm  r8   c                     d S rD   rY   rF   s    r6   r  z6TestOneTrickPonyABCs.test_Generator.<locals>.Gen.close  ro  r8   c                     |S rD   rY   r  s     r6   r  z5TestOneTrickPonyABCs.test_Generator.<locals>.Gen.send  rx  r8   Nc                     d S rD   rY   r  s       r6   r  z6TestOneTrickPonyABCs.test_Generator.<locals>.Gen.throw  ro  r8   r  )r4   rW   rX   r  r`  r  r  r  rY   r8   r6   Genr    s@        ++++++!!!///999999r8   r  c                   &     e Zd Zd Zd fd	Z xZS )7TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGenc                     |S rD   rY   r  s     r6   r  z<TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGen.send  r  r8   Nc                 N    t                                          |||           d S rD   r  r  s       r6   r  z=TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGen.throw  r  r8   r  )r4   rW   rX   r  r  r   r   s   @r6   
MinimalGenr    sL          , , , , , , , , , ,r8   r  c               3      K   dV  d S rd  rY   rY   r8   r6   rz  z0TestOneTrickPonyABCs.test_Generator.<locals>.gen  s      GGGGGr8   c               3      K   d V S rD   rY   rY   r8   r6   rF  z5TestOneTrickPonyABCs.test_Generator.<locals>.<lambda>  s      EEEEr8   r  r  r^   z^huhu$huhuc                       e Zd Zd Zd ZdS )8TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClosec                     |S rD   rY   r  s     r6   r  z=TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClose.send  rx  r8   c                     t           rD   r  r5   r   s     r6   r  z>TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClose.throw  s    *$4r8   Nr4   rW   rX   r  r  rY   r8   r6   FailOnCloser    s"        ///44444r8   r  c                       e Zd Zd Zd ZdS )@TestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExitc                     |S rD   rY   r  s     r6   r  zETestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExit.send  rx  r8   c                     d S rD   rY   r  s     r6   r  zFTestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExit.throw  ro  r8   Nr  rY   r8   r6   IgnoreGeneratorExitr    s"        ///(((((r8   r  )r1   r  rP  r   r   rO  ro   rn   rN  r   r   rJ  r?   r  nextr=   r  r  r   r  r  assertRaisesRegexStopIterationRuntimeError)r5   rq  ry  r  r  r   r  r  rz  r  mgenr  r  s                r6   test_Generatorz#TestOneTrickPonyABCs.test_Generator  s   	: 	: 	: 	: 	: 	: 	: 	:	0 	0 	0 	0 	0 	0 	0 	0	: 	: 	: 	: 	: 	: 	: 	: "dBRRSUUHHd2hh		7799ggiiA  	L 	LA$$Q	222ZQ;;T$q'']]KKKK	: 	: 	: 	: 	: 	: 	: 	:	, 	, 	, 	, 	, 	, 	, 	,	 	 	 355???--ssuujjllC 	K 	KA!!!X...!!!Y///OOJtAww	::DaMMJJJJ&&y&'BBB z||dDJJ'''diiootDzz222DIIaLL)))$**,,'''*dj*===z8#z:z&7I7I	K 	K 	K-]__EEE	5 	5 	5 	5 	5) 	5 	5 	5 	*kkmm&9:::	) 	) 	) 	) 	)) 	) 	) 	) 	,(;(;(=(=(CDDDDDr8   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 ]m}|                     |t                     |                     t          t          |          t                    t          t          |                               n G d d          } G d dt                    }d } |             |             |            g}	|	D ]}|                     |t                     |                     |t                     | 
                    t          t          |          t                    t          t          |                               |                     t          dd           d }
 |            }|                     ||                                           |                      |
|                    d                      |
|                                                     |                     d |
|                    d                               |                      |
|                                                     |                     t(                    5   |
|                    t(                               d d d            n# 1 swxY w Y    G d dt                    }|                     t(                    5   |
 |                                                       d d d            n# 1 swxY w Y    G d dt                    }|                     t,                    5   |
 |                                                       d d d            d S # 1 swxY w Y   d S )Nc                   (    e Zd Zd Zd Zd ZddZdS ):TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1c                     | S rD   rY   rF   s    r6   r  zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.__aiter__      r8   c                     d S rD   rY   rF   s    r6   r  zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.__anext__      r8   c                     d S rD   rY   rF   s    r6   aclosezATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.aclose  ro  r8   Nc                     d S rD   rY   r  s       r6   athrowzATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.athrow  ro  r8   r  )r4   rW   rX   r  r  r  r  rY   r8   r6   NonAGen1r    s7        ,,,,,,"""::::::r8   r  c                   &    e Zd Zd Zd Zd Zd ZdS ):TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2c                     | S rD   rY   rF   s    r6   r  zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.__aiter__  r  r8   c                     d S rD   rY   rF   s    r6   r  zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.__anext__  r  r8   c                     d S rD   rY   rF   s    r6   r  zATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.aclose  ro  r8   c                     |S rD   rY   r  s     r6   asendz@TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.asend      5Lr8   N)r4   rW   rX   r  r  r  r  rY   r8   r6   NonAGen2r    s4        ,,,,,,"""00000r8   r  c                   "    e Zd Zd Zd ZddZdS ):TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3c                     d S rD   rY   rF   s    r6   r  zATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3.aclose  ro  r8   c                     |S rD   rY   r  s     r6   r  z@TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3.asend  r  r8   Nc                     d S rD   rY   r  s       r6   r  zATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3.athrow  ro  r8   r  )r4   rW   rX   r  r  r  rY   r8   r6   NonAGen3r    s.        """000::::::r8   r  r`  r  r  r8   r   rY   c                   .    e Zd Zd Zd Zd Zd ZddZdS )5TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Genc                     | S rD   rY   rF   s    r6   r  z?TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.__aiter__  r  r8   c                 
   K   d S rD   rY   rF   s    r6   r  z?TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.__anext__  s
      ddr8   c                 
   K   d S rD   rY   rF   s    r6   r  z<TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.aclose  
        r8   c                 
   K   |S rD   rY   r  s     r6   r  z;TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.asend  
      ,r8   Nc                 
   K   d S rD   rY   r  s       r6   r  z<TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.athrow  r  r8   r  )r4   rW   rX   r  r  r  r  r  rY   r8   r6   r  r    s@        ,,,222(((666@@@@@@r8   r  c                   &     e Zd Zd Zd fd	Z xZS )=TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.MinimalAGenc                 
   K   |S rD   rY   r  s     r6   r  zCTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.MinimalAGen.asend  s      r8   Nc                 ^   K   t                                          |||           d {V  d S rD   )r   r  r  s       r6   r  zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.MinimalAGen.athrow  s9      ggnnS#r22222222222r8   r  )r4   rW   rX   r  r  r   r   s   @r6   MinimalAGenr    sL          3 3 3 3 3 3 3 3 3 3r8   r  c                    K   dW V  d S rd  rY   rY   r8   r6   rz  z5TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.gen  s      GGGGGGr8   r  r  c                     d }	 	 |                      d            n-# t          $ r }|j        r|j        d         nd }Y d }~n	d }~ww xY wE|S )NTr   )r  r  r   )r}  r  exs      r6   	run_asyncz;TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.run_async  sn    FIIdOOOO$   +-7<RWQZZFEEEE Ms    
AA  Ar^   c                       e Zd Zd Zd ZdS )=TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.FailOnClosec                 
   K   |S rD   rY   r  s     r6   r  zCTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.FailOnClose.asend  r  r8   c                    K   t           rD   r  r  s     r6   r  zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.FailOnClose.athrow  s      +;r8   Nr4   rW   rX   r  r  rY   r8   r6   r  r    s"        666;;;;;r8   r  c                       e Zd Zd Zd ZdS )ETestOneTrickPonyABCs.test_AsyncGenerator.<locals>.IgnoreGeneratorExitc                 
   K   |S rD   rY   r  s     r6   r  zKTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.IgnoreGeneratorExit.asend  r  r8   c                 
   K   d S rD   rY   r  s     r6   r  zLTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.IgnoreGeneratorExit.athrow   r  r8   Nr  rY   r8   r6   r  r    s"        666/////r8   r  )r1   r  rP  r   r   rO  ro   rn   rN  r   r   rJ  r?   r  r  r  r=   r  r  r   r  r  r  )r5   r  r  r  r  r   r  r  rz  r  r  r  r  r  s                 r6   test_AsyncGeneratorz(TestOneTrickPonyABCs.test_AsyncGenerator  s   	; 	; 	; 	; 	; 	; 	; 	;	1 	1 	1 	1 	1 	1 	1 	1	; 	; 	; 	; 	; 	; 	; 	; "dBRRSUUHHd2hh

HHJJ

D  	Q 	QA$$Q777ZQ@@$tAww--PPPP	A 	A 	A 	A 	A 	A 	A 	A	3 	3 	3 	3 	3. 	3 	3 	3	 	 	 355##%%/ 	P 	PA!!!]333!!!^444OOJtAww??d1ggOOOO&&~wIII	 	 	 {}}dDNN,,---ii

4 0 01199T^^=M=M3N3NOOOIIdjjmm44555))DKKMM22333z** 	/ 	/Idkk*--...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/	< 	< 	< 	< 	<. 	< 	< 	< z** 	. 	.Ikkmm**,,---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.	0 	0 	0 	0 	0. 	0 	0 	0 |,, 	6 	6I))++2244555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s6   $K<<L L 4&M&&M*-M*&OOOc                    d dddt                      d dD             g}|D ]m}|                     |t                     |                     t	          t          |          t                    t          t          |                               nt                      t                      t                      t                      t                      t                      t                      t                                                      t                                                      t                                                      g
}|D ]m}|                     |t                     |                     t	          t          |          t                    t          t          |                               n|                     t          d           |                     t          d           d S )Nr`  r  r  c              3      K   | ]}|V  d S rD   rY   r  s     r6   r]  z2TestOneTrickPonyABCs.test_Sized.<locals>.<genexpr>(        ar8   rY   r-  )ru  rP  r   r   rO  ro   rn   r  rE   r
  rI   r1   r  rM   r  rj   r  rN  r   rJ  rR  r5   r  r   r  s       r6   
test_SizedzTestOneTrickPonyABCs.test_Sized%  sp   Rr {{&2  	H 	HA$$Q...ZQ77d1ggGGGG77CEE77DFFCEE9;;66;;==$&&,,..$&&--//  	G 	GA!!!U+++OOJtAww66T!WWFFFF&&ui888  	22222r8   c           
         d dddt                      d dD             g}|D ]m}|                     |t                     |                     t	          t          |          t                    t          t          |                               nt                      t                      t                      t                      t                      t                      t                      t                                                      t                                                      g	}|D ]m}|                     |t                     |                     t	          t          |          t                    t          t          |                               n|                     t          d           |                     t          d           d S )Nr`  r  r  c              3      K   | ]}|V  d S rD   rY   r  s     r6   r]  z6TestOneTrickPonyABCs.test_Container.<locals>.<genexpr>:  r  r8   rY   r   )ru  rP  r   r   rO  ro   rn   r  rE   r
  rI   r1   r  rM   r  rj   rN  r   rJ  rR  r  s       r6   test_Containerz#TestOneTrickPonyABCs.test_Container7  sb   Rr {{&2  	L 	LA$$Q	222ZQ;;T$q'']]KKKK77CEE77DFFCEE9;;66;;==$&&,,..  	K 	KA!!!Y///OOJtAww	::DaMMJJJJ&&y.AAA  N;;;;;r8   c                    d ddddddg i t                      t                      d dD             g}|D ]m}|                     |t                     |                     t          t          |          t                    t          t          |                               nd t          t          t          t          t          j        g j        g}|D ]m}|                     |t                     |                     t          t          |          t                    t          t          |                               n|                     t          d	           |                     t          d	           d S )
Nr`  r  r  r   r8   rY   c              3      K   | ]}|V  d S rD   rY   r  s     r6   r]  z5TestOneTrickPonyABCs.test_Callable.<locals>.<genexpr>M  r  r8   c                      d S rD   rY   rY   r8   r6   rF  z4TestOneTrickPonyABCs.test_Callable.<locals>.<lambda>R  s    4 r8   __call__)r1   ru  rP  r   r   rO  ro   rn   r6  r  rk   rI   rQ   rN  r   rJ  rR  r  s       r6   test_Callablez"TestOneTrickPonyABCs.test_CallableI  sB   Rr3BCEE {{&2
  	K 	KA$$Q111ZQ::DaMMJJJJ<f;	
  	J 	JA!!!X...OOJtAww994Q==IIII&&x<<<  :66666r8   c                    t           t          t          t          t          t
          t          fD ][} G d d|          }|                     t          ||                     | 	                    t          t          |                     \d S )Nc                       e Zd ZdS )7TestOneTrickPonyABCs.test_direct_subclassing.<locals>.CNr   rY   r8   r6   r   r  _  s        r8   r   )r   r   r   r   r   r   r   r   rO  r   r6  r5   r   r   s      r6   test_direct_subclassingz,TestOneTrickPonyABCs.test_direct_subclassing]  s    8Xz5)XU 	1 	1A    A   OOJq!,,---ZQ//0000		1 	1r8   c                 @   t           t          t          t          t          t
          t          fD ]p} G d d          }|                     t          ||          |j	                   |
                    |           |                     t          ||                     qd S )Nc                       e Zd ZdZdS )1TestOneTrickPonyABCs.test_registration.<locals>.CN)r4   rW   rX   rM  rY   r8   r6   r   r  f  s        r8   r   )r   r   r   r   r   r   r   r   rO  r4   r  r   r  s      r6   test_registrationz&TestOneTrickPonyABCs.test_registrationd  s    8Xz5)XU 	. 	.A               Z1--qz:::JJqMMMOOJq!,,----	. 	.r8   N)r4   rW   rX   r  r  r  r  r  r   r%  r]  rf  r  r  r  r  r  r  r  rY   r8   r6   rw  rw    s        2 2 2hA: A: A:F7 7 74= = =P P P( <  <  <D7B 7B 7BrU; U; U;p7 7 72EE EE EENO6 O6 O6b3 3 3$< < <$7 7 7(1 1 1. . . . .r8   rw  c                   4    e Zd Zd	dZd Zd Zd Zd Zd ZdS )
WithSetrY   c                 .    t          |          | _        d S rD   )r1   r<   )r5   its     r6   r   zWithSet.__init__n  s    GG			r8   c                 *    t          | j                  S rD   rk   r<   rF   s    r6   r-  zWithSet.__len__q  s    49~~r8   c                 *    t          | j                  S rD   r  r<   rF   s    r6   r  zWithSet.__iter__t  s    DIr8   c                     || j         v S rD   r<   r   s     r6   r   zWithSet.__contains__w  s    ty  r8   c                 :    | j                             |           d S rD   )r<   r  r   s     r6   r  zWithSet.addz  s    	dr8   c                 :    | j                             |           d S rD   )r<   discardr   s     r6   r  zWithSet.discard}  s    	$r8   NrY   )	r4   rW   rX   r   r-  r  r   r  r  rY   r8   r6   r  r  l  ss               ! ! !           r8   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S )TestCollectionABCsc                 X   t           t          fD ]M}|                      |            t                     |                     t          |t                               N|                     t          ddd            G d dt                    }|                      |                       d S )Nr   r  r-  c                        e Zd Zd Zd Zd ZdS )*TestCollectionABCs.test_Set.<locals>.MySetc                     dS r   rY   r5   r   s     r6   r   z7TestCollectionABCs.test_Set.<locals>.MySet.__contains__  r0  r8   c                     dS rD  rY   rF   s    r6   r-  z2TestCollectionABCs.test_Set.<locals>.MySet.__len__  r.  r8   c                      t          g           S rD   r  rF   s    r6   r  z3TestCollectionABCs.test_Set.<locals>.MySet.__iter__      Bxxr8   Nr4   rW   rX   r   r-  r  rY   r8   r6   MySetr    A                     r8   r	  )r1   r  rN  r    r   rO  rJ  rs  )r5   sampler	  s      r6   test_SetzTestCollectionABCs.test_Set  s    I& 	5 	5F!!&&((C000OOJvs334444&&sNJ	RRR	  	  	  	  	 C 	  	  	  	  )))))r8   c                      G d dt                     } |             |            }}|                     t          |          t          |          k               d S )Nc                   ,    e Zd Zd Zd Zd Zd Zd ZdS )8TestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSetc                     g d| _         d S )Nr]   r^   rd   contentsrF   s    r6   r   zATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__init__  s     )		r8   c                     || j         v S rD   r  r  s     r6   r   zETestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__contains__      DM))r8   c                 *    t          | j                  S rD   rk   r  rF   s    r6   r-  z@TestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__len__  s    4=)))r8   c                 *    t          | j                  S rD   r  r  rF   s    r6   r  zATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__iter__      DM***r8   c                 *    |                                  S rD   )_hashrF   s    r6   rM  zATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__hash__  s    zz||#r8   N)r4   rW   rX   r   r   r-  r  rM  rY   r8   r6   OneTwoThreeSetr    s_        * * ** * ** * *+ + +$ $ $ $ $r8   r  )r    r   rQ  )r5   r  r.   r/   s       r6   test_hash_Setz TestCollectionABCs.test_hash_Set  sp    
	$ 
	$ 
	$ 
	$ 
	$S 
	$ 
	$ 
	$ ~!1!11Q477*+++++r8   c                     G d dt                     } |d          } |d          } |d          }|                     |                    |                     |                     |                    |                     d S )Nc                   &    e Zd Zd Zd Zd Zd ZdS )5TestCollectionABCs.test_isdisjoint_Set.<locals>.MySetc                     || _         d S rD   r  r5   itrs     r6   r   z>TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__init__       #r8   c                     || j         v S rD   r  r  s     r6   r   zBTestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__contains__  r  r8   c                 *    t          | j                  S rD   r  rF   s    r6   r  z>TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__iter__  r  r8   c                 >    t          d | j        D                       S )Nc                     g | ]}|S rY   rY   r  s     r6   r\  zQTestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__len__.<locals>.<listcomp>      555!A555r8   r  rF   s    r6   r-  z=TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__len__  !    55t}555666r8   Nr4   rW   rX   r   r   r  r-  rY   r8   r6   r	  r!    P        $ $ $* * *+ + +7 7 7 7 7r8   r	  r  )r   rg      )r]   rg   r.  )r    r   
isdisjointr   r5   r	  s1s2s3s        r6   test_isdisjoint_Setz&TestCollectionABCs.test_isdisjoint_Set  s    	7 	7 	7 	7 	7C 	7 	7 	7 U9U9U9b))***r**+++++r8   c                     G d dt                     } |d          } |d          } |d          } |d          }|                     ||k               |                     ||k                |                     ||k               |                     ||k               |                     ||k               |                     ||           |                     ||           d S )Nc                   &    e Zd Zd Zd Zd Zd ZdS )3TestCollectionABCs.test_equality_Set.<locals>.MySetc                     || _         d S rD   r  r#  s     r6   r   z<TestCollectionABCs.test_equality_Set.<locals>.MySet.__init__  r%  r8   c                     || j         v S rD   r  r  s     r6   r   z@TestCollectionABCs.test_equality_Set.<locals>.MySet.__contains__  r  r8   c                 *    t          | j                  S rD   r  rF   s    r6   r  z<TestCollectionABCs.test_equality_Set.<locals>.MySet.__iter__  r  r8   c                 >    t          d | j        D                       S )Nc                     g | ]}|S rY   rY   r  s     r6   r\  zOTestCollectionABCs.test_equality_Set.<locals>.MySet.__len__.<locals>.<listcomp>  r*  r8   r  rF   s    r6   r-  z;TestCollectionABCs.test_equality_Set.<locals>.MySet.__len__  r+  r8   Nr,  rY   r8   r6   r	  r7    r-  r8   r	  rV  r  )rd   r   )r    r   r   r=   assertNotEqual)r5   r	  r1  r2  r3  s4s         r6   test_equality_Setz$TestCollectionABCs.test_equality_Set  s   	7 	7 	7 	7 	7C 	7 	7 	7 U4[[U6]]U6]]U6]]R   R   r"""r"""r"""R   B#####r8   c                      G d dt                     } |d          } |d          }||z  }|                     | |d                     d S )Nc                   &    e Zd Zd Zd Zd Zd ZdS )5TestCollectionABCs.test_arithmetic_Set.<locals>.MySetc                     || _         d S rD   r  r#  s     r6   r   z>TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__init__  r%  r8   c                     || j         v S rD   r  r  s     r6   r   zBTestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__contains__  r  r8   c                 *    t          | j                  S rD   r  rF   s    r6   r  z>TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__iter__  r  r8   c                 >    t          d | j        D                       S )Nc                     g | ]}|S rY   rY   r  s     r6   r\  zQTestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__len__.<locals>.<listcomp>  r*  r8   r  rF   s    r6   r-  z=TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__len__  r+  r8   Nr,  rY   r8   r6   r	  rB    r-  r8   r	  r  )rd   r   rg   )rd   )r    r=   r0  s        r6   test_arithmetic_Setz&TestCollectionABCs.test_arithmetic_Set  sy    	7 	7 	7 	7 	7C 	7 	7 	7 U9U9"WUU4[[)))))r8   c                    |                      t                      t                     |                     t	          t          t                               |                     t                      t                     |                     t	          t          t                               |                     t          ddddd           d S )Nr   r  r-  r  r  )	rN  r1   r!   r   rO  rP  r  r   rJ  rF   s    r6   test_MutableSetz"TestCollectionABCs.test_MutableSet  s    ceeZ000
3
33444  j999Iz::;;;&&z>:y9	 	 	 	 	r8   c                     t          d          }|t          d          z  }|                     t          |          t          d                     d S )Nabcdcdefcd)r  r=   r1   r5   rz  s     r6   test_issue_5647z"TestCollectionABCs.test_issue_5647  sE    FOO	WV__QT+++++r8   c                 0    G d dt                     }g d} ||          }|                                }|                     t          |          t          |          dz
             |                     ||           |                     ||           d S )Nc                   @    e Zd ZdgZd
dZd Zd Zd Zd Zd Z	d	 Z
dS )1TestCollectionABCs.test_issue_4920.<locals>.MySet__sNc                 6    |g }t          |          | _        d S rD   )r1   	_MySet__s)r5   rj   s     r6   r   z:TestCollectionABCs.test_issue_4920.<locals>.MySet.__init__  s    =EUr8   c                     || j         v S rD   )rV  )r5   r|   s     r6   r   z>TestCollectionABCs.test_issue_4920.<locals>.MySet.__contains__  s    DH}$r8   c                 *    t          | j                  S rD   )r  rV  rF   s    r6   r  z:TestCollectionABCs.test_issue_4920.<locals>.MySet.__iter__  s    DH~~%r8   c                 *    t          | j                  S rD   )rk   rV  rF   s    r6   r-  z9TestCollectionABCs.test_issue_4920.<locals>.MySet.__len__      48}}$r8   c                 L    || j         v}| j                             |           |S rD   )rV  r  r5   r|   r  s      r6   r  z5TestCollectionABCs.test_issue_4920.<locals>.MySet.add  s$    (Qr8   c                 L    || j         v }| j                             |           |S rD   )rV  r  r\  s      r6   r  z9TestCollectionABCs.test_issue_4920.<locals>.MySet.discard  s(    DH}  ###r8   c                 @    dt          t          |                     z  S )Nz	MySet(%s))rn   rI   rF   s    r6   __repr__z:TestCollectionABCs.test_issue_4920.<locals>.MySet.__repr__  s    "T$t**%5%555r8   rD   )r4   rW   rX   r	  r   r   r  r-  r  r  r_  rY   r8   r6   r	  rS    s        gI$ $ $ $% % %& & &% % %    6 6 6 6 6r8   r	  )rg   +   r^   r]   r]   )r!   r   r=   rk   r  rl   )r5   r	  rj   rz  ry  s        r6   test_issue_4920z"TestCollectionABCs.test_issue_4920  s    	6 	6 	6 	6 	6J 	6 	6 	6, 

E%LLEEGGQUa000Aar8   c                    t                      }t          t          d                    }t          |          }||z  }|                     ||           t          |          }||z  }|                     ||           t          |          }||z  }|                     ||           ||z  }|                     ||           d S )Nr   )r  rq   r=   )r5   emptyfullrz  s       r6   test_issue8750z!TestCollectionABCs.test_issue8750  s    		uRyy!!DMM	QE"""DMM	QE"""DMM	QD!!!	QD!!!!!r8   c                 B    G d dt                     } G d dt                     } |            } |            }|                     ||k                |                     ||k               |                     ||k               |                     ||k               d S )Nc                        e Zd Zd Zd Zd ZdS );TestCollectionABCs.test_issue16373.<locals>.MyComparableSetc                     dS r   rY   r  s     r6   r   zHTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__contains__  r0  r8   c                     dS rD  rY   rF   s    r6   r-  zCTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__len__  r.  r8   c                      t          g           S rD   r  rF   s    r6   r  zDTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__iter__  r  r8   Nr  rY   r8   r6   MyComparableSetrh    r
  r8   rl  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )>TestCollectionABCs.test_issue16373.<locals>.MyNonComparableSetc                     dS r   rY   r  s     r6   r   zKTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__contains__  r0  r8   c                     dS rD  rY   rF   s    r6   r-  zFTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__len__!  r.  r8   c                      t          g           S rD   r  rF   s    r6   r  zGTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__iter__#  r  r8   c                     t           S rD   NotImplementedr  s     r6   rg  zETestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__le__%      %%r8   c                     t           S rD   rs  r  s     r6   re  zETestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__lt__'  ru  r8   N)r4   rW   rX   r   r-  r  rg  re  rY   r8   r6   MyNonComparableSetrn    s_                 & & && & & & &r8   rw  )r    r   r   )r5   rl  rw  csncss        r6   test_issue16373z"TestCollectionABCs.test_issue16373  s    	  	  	  	  	 c 	  	  	 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& _  ""r"""r	"""r"""r	"""""r8   c                 r    G d dt                     }t          d          }t          j        } ||||g          }|t	          ||d          t          ||d          t          ||d          g}|D ]}|D ]}|                     ||           |                     |	                    |          d           |                     |	                    |          d           |                     |
                    |          d           |                     |
                    |          d           d S )Nc                        e Zd Zd Zd Zd ZdS ):TestCollectionABCs.test_issue26915.<locals>.CustomSequencec                     || _         d S rD   _seqr5   seqs     r6   r   zCTestCollectionABCs.test_issue26915.<locals>.CustomSequence.__init__4  s    			r8   c                     | j         |         S rD   r  r5   r  s     r6   r   zFTestCollectionABCs.test_issue26915.<locals>.CustomSequence.__getitem__6  s    y''r8   c                 *    t          | j                  S rD   )rk   r  rF   s    r6   r-  zBTestCollectionABCs.test_issue26915.<locals>.CustomSequence.__len__8      49~~%r8   Nr4   rW   rX   r   r   r-  rY   r8   r6   CustomSequencer}  3  sA             ( ( (& & & & &r8   r  nanr  r   r]   r^   )r'   r  r   NEVER_EQr%   r$   r&   rl   r=   r  count)r5   r  r  r@   r  
containers	containerelems           r6   test_issue26915z"TestCollectionABCs.test_issue269151  s[   	& 	& 	& 	& 	&X 	& 	& 	& Ellnc3_--##&&''%%&&33''((	

 $ 	/ 	/I! / /dI..../3+++3+++3+++3+++++r8   c                 f    |                      t          |          t          |                     d S rD   )assertSetEqualr1   )r5   r1  r2  s      r6   assertSameSetz TestCollectionABCs.assertSameSetL  s*    CGGSWW-----r8   c                 b   	  G d dt                     } |g dd          }|dhz
  }|                     ||           |                     d|j                   |                     ddh|           |d	hz  }|                     ||           |                     d|j                   |                     h d
|           |dhz  }|                     ||           |                     d|j                   |                     dh|           |dd	hz  }|                     ||           |                     d|j                   |                     h d|           |dd	gz  }|                     ||           |                     d|j                   |                     h d|           d S )Nc                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	OTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterablec                 ^    |st          d          || _        t          |          | _        d S )Nzcreated_by must be specified)r  
created_byr1   _values)r5   r  r  s      r6   r   zXTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.__init__S  s2    ! F$%DEEE","6{{r8   c                 4     t          |           |d          S )Nfrom_iterable)ro   )r5   r  s     r6   _from_iterablez^TestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable._from_iterableY  s    !tDzz&/:::r8   c                     || j         v S rD   r  r  s     r6   r   z\TestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.__contains__\  s    ,,r8   c              3   $   K   | j         E d {V  d S rD   r  rF   s    r6   r  zXTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.__iter___  s&      <'''''''''r8   c                 *    t          | j                  S rD   )rk   r  rF   s    r6   r-  zWTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.__len__b  s    4<(((r8   c                 :    | j                             |           d S rD   )r  r  r  s     r6   r  zSTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.adde  s      '''''r8   c                 :    | j                             |           d S rD   )r  r  r  s     r6   r  zWTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.discardh  s    $$U+++++r8   N)
r4   rW   rX   r   r  r   r  r-  r  r  rY   r8   r6   SetUsingInstanceFromIterabler  R  s}        + + +; ; ;- - -( ( () ) )( ( (, , , , ,r8   r  r  r>   r]   r  r^   rd   r   >   r]   r^   rd   r   >   r]   r^   r   )r!   rN  r=   r  )r5   r  implactuals       r6   test_Set_from_iterablez)TestCollectionABCs.test_Set_from_iterableP  s   K	, 	, 	, 	, 	,: 	, 	, 	,2 ,+IIIv>>f&BCCC&*;<<<!Q(((f&BCCC&*;<<<v...f&BCCC&*;<<<!f%%%Af&BCCC&*;<<<F+++ 	Ad$@AAA111D)))))r8   c                     G d dt                     }t          d          }t          d          }t          d          } |d          } |d          } |d          }t          d          }t          d          }	t          d          }
||z  }|                     ||z  |           |                     ||z  |           |                     ||z  |           |                     ||	z  |           ||z  }|                     ||z  |           |                     ||z  |           |                     ||z  |           |                     ||	z  |           ||z
  }||z
  }|                     ||z
  |           |                     ||z
  |           |                     ||z
  |           |                     ||z
  |           |                     ||z
  |           |                     ||z
  |           |                     ||	z
  |           |                     ||z
  |           ||z  }|                     ||z  |           |                     ||z  |           |                     ||z  |           |                     ||	z  |           |                     ||k                |                     ||k                |                     ||k                |                     ||k                |                     ||k                |                     ||k                |                     ||k                |                     ||k                |                     ||k                |                     t                    5  ||
k      d d d            n# 1 swxY w Y   |                     t                    5  ||k      d d d            n# 1 swxY w Y   |                     t                    5  ||	k      d d d            n# 1 swxY w Y   |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     t                    5  ||
k     d d d            n# 1 swxY w Y   |                     t                    5  ||k     d d d            n# 1 swxY w Y   |                     t                    5  ||	k     d d d            n# 1 swxY w Y   |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     t                    5  ||
k     d d d            n# 1 swxY w Y   |                     t                    5  ||k     d d d            n# 1 swxY w Y   |                     t                    5  ||	k     d d d            n# 1 swxY w Y   |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     t                    5  ||
k     d d d            n# 1 swxY w Y   |                     t                    5  ||k     d d d            n# 1 swxY w Y   |                     t                    5  ||	k     d d d            n# 1 swxY w Y   |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||
k               |                     ||k               |                     ||	k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||
k               |                     ||k               |                     ||	k               d S )	Nc                   .    e Zd ZddZd Zd Zd Zd ZdS )	LTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSetrY   c                 d    g | _         |D ]%}|| j         vr| j                             |           &d S rD   )r<   rQ   )r5   elementsr  s      r6   r   zUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__init__  sF    	$ / /D49,,	((.../ /r8   c                     || j         v S rD   r  )r5   r  s     r6   r   zYTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__contains__  s    ty((r8   c                 *    t          | j                  S rD   r  rF   s    r6   r  zUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__iter__  s    DI&r8   c                 *    t          | j                  S rD   r  rF   s    r6   r-  zTTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__len__  r  r8   c                 6    d                     | j                  S )Nz	Set({!r}))r3   r<   rF   s    r6   r_  zUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__repr__  s    "))$)444r8   Nr  )r4   rW   rX   r   r   r  r-  r_  rY   r8   r6   ListSetr    sd        / / / /
) ) )' ' '& & &5 5 5 5 5r8   r  rU   bcdabcdeabccbabcddcb
abcdeedcba)r    r1   rI   r  r   r   r   r   )r5   r  r1r2r3f1f2f3l1l2l3target
fwd_target
rev_targets                 r6   (test_Set_interoperability_with_real_setsz;TestCollectionABCs.test_Set_interoperability_with_real_sets  s   	5 	5 	5 	5 	5c 	5 	5 	5 ZZZZ\\WU^^WU^^WW(^^(^^,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)) 	 	GG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	GG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	GG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	b!!!b!!!r"""b!!!b!!!r"""b!!!b!!!r"""y)) 	 	"HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	"HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	"HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	R   b!!!b!!!R   b!!!b!!!R   b!!!b!!!y)) 	 	GG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	GG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	GG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	b!!!b!!!r"""b!!!b!!!r"""b!!!b!!!r"""y)) 	 	"HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	GG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	"HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	b!!!b!!!b!!!r"""r"""r"""r"""r"""r""" 	r"""r"""r"""b!!!b!!!b!!!b!!!b!!!b!!!!!s   N**N.1N.O""O&)O&PP!P T33T7:T7U++U/2U/V##V'*V')Z<<[ [ ![44[8;[8\,,\03\02aa	a	*a==bb"b55b9<b9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 ]H}t          |          }|                     t          |          t          j	        |          |           Id S )Nr]   rM  g        rU   >   r]   r^   rd   r   re   e   >   r   r.   r/   abFTr    >   ,  re      )msg)
r  r  r  rq   r  maxsizer=   rQ  r    r  )r5   setsrz  fss       r6   test_Set_hash_matches_frozensetz2TestCollectionABCs.test_Set_hash_matches_frozenset   s   dVbTC55'999Wb#g 4 4 4udmXXvxx*U5\\Nikk]eDkkNNeDkkN___<8eCK"$ckB&6778
  	= 	=A1BT"XXsy}}!<<<<	= 	=r8   c                    t           fD ]M}|                      |            t                     |                     t	          |t                               N|                     t          dddd            G d dt                    }|                      |                       |                     t          t           |                       d S )Nr   r  r-  r   c                        e Zd Zd Zd Zd ZdS )2TestCollectionABCs.test_Mapping.<locals>.MyMappingc                     dS rD  rY   rF   s    r6   r-  z:TestCollectionABCs.test_Mapping.<locals>.MyMapping.__len__3  r.  r8   c                     t           rD   )rP  )r5   r   s     r6   r   z>TestCollectionABCs.test_Mapping.<locals>.MyMapping.__getitem__5  s      r8   c                      t          d          S )NrY   r  rF   s    r6   r  z;TestCollectionABCs.test_Mapping.<locals>.MyMapping.__iter__7  r  r8   N)r4   rW   rX   r-  r   r  rY   r8   r6   	MyMappingr  2  sA          ! ! !         r8   r  )
rM   rN  r"   r   rO  rJ  rs  r   r   r  )r5   r  r  s      r6   test_MappingzTestCollectionABCs.test_Mapping,  s    f 	9 	9F!!&&((G444OOJvw778888&&w
I	 	 		  	  	  	  	  	  	  	  	  ---)Xyy{{;;;;;r8   c           	          t           fD ]M}|                      |            t                     |                     t	          |t                               N|                     t          dddddd           d S )Nr   r  r-  r   __setitem____delitem__)rM   rN  r#   r   rO  rJ  r5   r  s     r6   test_MutableMappingz&TestCollectionABCs.test_MutableMapping<  s    f 	@ 	@F!!&&((N;;;OOJv~>>????&&~~zS\=-	9 	9 	9 	9 	9r8   c                 *   t                      }d|d<   |                     |                                t                     |                     |                                t                     |                     |                                t                     |                     |                                t                     |                     |                                t                     |                     |                                t                     t                      }d|d<   |                                dhz  }|                     |t                     t          |           d|d<   |                     t          |          ddg           t                      }d|d<   |                                dhz  }|                     |t                     t          |           d|d<   |                     |ddh           d S )Nrg   redorange   blue)r  rd   )r  rg   )r   rN  r  r    r$   r  r   r&   rj   r%   r1   rI   r=   sorted)r5   mymaprf   s      r6   test_MutableMapping_subclassz/TestCollectionABCs.test_MutableMapping_subclassC  s   

eejjllC000ejjllH555ellnnj999ellnnj999ekkmmS111ekkmmY777

eJJLLH:%a%%%QfXu$5666

eKKMM]O+a%%%Qf]J788888r8   c                    t           t          t          t          fD ]M}|                      |            t
                     |                     t          |t
                               N|                     t          d          t
                     |                     t          t          t
                               |                     t          d          t
                     |                     t          t          t
                               |                     t          t          t
                               | 
                    t
          dddd           d S )Nr   r8   r   r  r-  r   )r
  rI   r  rE   rN  r'   r   rO  rq   
memoryviewrJ  r  s     r6   test_Sequencez TestCollectionABCs.test_Sequence^  s   dE3/ 	: 	:F!!&&((H555OOJvx889999eBii222
5(33444joox888
:x88999
311222&&xY	 	 	 	 	r8   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 ]u} ||||f           t          dt	          |          dz             D ]D} |||||f           t          dt	          |          dz             D ]}	 ||||||	f           Evd S )
Nc                   "    e Zd ZddZd Zd ZdS )ATestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclassrY   c                     || _         d S rD   r  r  s     r6   r   zJTestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__init__l  s    r8   c                     | j         |         S rD   r  r  s     r6   r   zMTestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__getitem__o      x&r8   c                 *    t          | j                  S rD   )rk   r  rF   s    r6   r-  zITestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__len__r  rZ  r8   Nr  r  rY   r8   r6   SequenceSubclassr  k  sF           ' ' '% % % % %r8   r  c                    	  | j         | } |j         | }                    ||| d|           d S # t          $ rB                     t                    5   |j         |  d d d            Y d S # 1 swxY w Y   Y d S w xY w)Nz.index)r  r=   r  r   )seq1seq2
index_argsexpectedr  r5   s        r6   assert_index_samezBTestCollectionABCs.test_Sequence_mixins.<locals>.assert_index_samev  s   I%4:z2
 $Z0  HdddJJ&GI I I I I  , , ,&&z22 , ,DJ
++, , , , , , , , , , , , , , , , , , , ,,s3   
5 $BA2$B2A6	6B9A6	:B Babracadabraiird   rf   )r'   rI   rE   rq   rk   r1   )
r5   r  r  ty	nativeseqindexesseqseqletterr  stops
   `         r6   test_Sequence_mixinsz'TestCollectionABCs.test_Sequence_mixinsj  s   	% 	% 	% 	% 	%x 	% 	% 	%		I 		I 		I 		I 		I ) 
	F 
	FB=))IuoU2s9~~7I-J-J(K(KKG%%i00Fi..C50 F F!!)VfY???"2s9~~'9:: F FE%%i&%III %b#i..1*< = = F F))%vt/DF F F FFFF	
	F 
	Fr8   c                 d   t           t          fD ]M}|                      |            t                     |                     t          |t                               Nt          t          t          fD ]M}| 	                     |            t                     | 
                    t          |t                               N| 	                    t          d          t                     | 
                    t          t          t                               |                     t          dd           d S )Nr8   r   r-  )r  r  rN  r)   r   rO  rE   rI   r
  rP  r   r  rJ  r  s     r6   test_ByteStringz"TestCollectionABCs.test_ByteString  s    i( 	< 	<F!!&&((J777OOJvz::;;;;D%( 	= 	=F$$VVXXz:::Z
;;<<<<  C*===J
;;<<<&&z=)LLLLLr8   c           
      *   t           t          t          fD ]M}|                      |            t                     |                     t          |t                               Nt          t          t          fD ]M}| 
                     |            t                     |                     t          |t                               N|                     t          t          t                               |                     t          ddddddd           d S )Nr   r  r-  r   r  r  insert)r
  rE   r  rP  r(   r   rO  rI   r  r   rN  r   rJ  r  s     r6   test_MutableSequencez'TestCollectionABCs.test_MutableSequence  s    c5) 	B 	BF$$VVXX???Z@@AAAAY. 	A 	AF!!&&((O<<<OOJv??@@@@C99:::&&
}m]H	N 	N 	N 	N 	Nr8   c                     G d dt                     } |            }|                    d           |                    d           |                     t	          |          d           |                     |d         d           |                                 |                     |d         d           |                                 |                     t	          |          d           |                    d           |                     t	          |          d           |d	z  }|                     t	          |          d
           |                     |d         d           |                                 |                     t	          |          d           d} |            }|                    ||z              |                                 |                    |           |                    |           |                     t	          |          t	          |                     |                     t          |          t          |                     d S )Nc                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )OTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclassc                     g | _         d S rD   lstrF   s    r6   r   zXTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__init__  s    r8   c                     || j         |<   d S rD   r  r5   r  r  s      r6   r  z[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__setitem__  s    "'r8   c                     | j         |         S rD   r  r  s     r6   r   z[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__getitem__  r  r8   c                 *    t          | j                  S rD   )rk   r  rF   s    r6   r-  zWTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__len__  rZ  r8   c                     | j         |= d S rD   r  r  s     r6   r  z[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__delitem__  s    HUOOOr8   c                 <    | j                             ||           d S rD   )r  r   r	  s      r6   r   zVTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.insert  s    u-----r8   N)	r4   rW   rX   r   r  r   r-  r  r   rY   r8   r6   MutableSequenceSubclassr    sn          ( ( (' ' '% % %$ $ $. . . . .r8   r  r   )r]   r^   rd   r   rg   rd   r]   r   r  r.  rM  r`   ABCD)
r(   rQ   extendr=   rk   reverser   removeclearrI   )r5   r  mssrj   mss2s        r6   test_MutableSequence_mixinsz.TestCollectionABCs.test_MutableSequence_mixins  s   	. 	. 	. 	. 	.o 	. 	. 	.& &%''

1

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

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

5

3S3t99---cDJJ/////r8   c                     |                      t                    5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nc                   ,    e Zd Zej        ej        z  ZdS )9TestCollectionABCs.test_illegal_patma_flags.<locals>.BothN)r4   rW   rX   r'   	__flags__r"   __abc_tpflags__rY   r8   r6   Bothr    s        #+#58I#Ir8   r  )r   r   r   )r5   r  s     r6   test_illegal_patma_flagsz+TestCollectionABCs.test_illegal_patma_flags  s    y)) 	K 	KK K K K Kz K K K	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Ks   <A A N)r4   rW   rX   r  r  r4  r?  rH  rJ  rP  ra  re  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rY   r8   r6   r  r    s       * * *, , ,, , , $ $ $,* * *  , , ,     >" " "# # #:, , ,6. . .6* 6* 6*pV" V" V"p
= 
= 
=< < < 9 9 99 9 96
 
 
!F !F !FF	M 	M 	M	N 	N 	N00 00 00dK K K K Kr8   r  c                       e Zd Zd Zd ZdS )CounterSubclassWithSetItemc                 >    d| _         t          j        | g|R i | d S r   r   r
   r   r   s      r6   r   z#CounterSubclassWithSetItem.__init__  0    ---------r8   c                 @    d| _         t          j        | ||           d S r   )r   r
   r  )r5   rz   r  s      r6   r  z&CounterSubclassWithSetItem.__setitem__  s$    D#u-----r8   N)r4   rW   rX   r   r  rY   r8   r6   r  r    s2        . . .. . . . .r8   r  c                       e Zd Zd Zd ZdS )CounterSubclassWithGetc                 >    d| _         t          j        | g|R i | d S r   r!  r   s      r6   r   zCounterSubclassWithGet.__init__  r"  r8   c                 <    d| _         t          j        | ||          S r   )r   r
   rm   )r5   rz   defaults      r6   rm   zCounterSubclassWithGet.get  s    {4g...r8   N)r4   rW   rX   r   rm   rY   r8   r6   r%  r%    s2        . . ./ / / / /r8   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S )TestCounterc           
         t          d          }|                     |t          dddd                     |                     |t          ddd                     |                     |t                     |                     |t                     |                     t          t           t                               |                     t          t           t                               |                     t          |          d           |                     t          |	                                          d           |                     t          |	                                          g d           |                     t          |                                          g d           |                     t          |          g d           |                     t          |                                          g d           |                     |d	         d           |                     |d
         d           |                     |                    d          d           |                     |                    d
          d           |                     |                    d	d          d           |                     |                    d
d          d           |                     |t          ddd                     |                     t          |          d           |                     |                                g d           t#          d          D ]5}|                     |                    |          g dd |                    6|                     d                    |                                          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<   |                     |t          ddddd                     |                     d                    |                                          d           |                     |                    d          d           |                     d|           t#          d          D ]/}|                                \  }}|                     ||           0|                                 |                     |i            |                     t          |          d           |                     t2          t           j        d           |                     t6          t8          |           |                    t          dd                     |                    d            |                    t          d!                     |                                 |                    d"           |                    d#           |                                 |                     |t          d$d%dd&                     |                     |                    dd          d           |                     |d         d           |                     |                    dd          d           |                     |d         d           d S )'Nabcabard   r^   r]   rc   r.  )rd   r^   r]   ))r.   rd   r   ra   r]   r/   rf   r   ra   TFr   z!Counter({'a': 3, 'b': 2, 'c': 1})rg   r   aaabbcr.   ry   r_  r}   r   r   )r.   r/   ry   r}   r   aaaaffffz	Counter()rU   r-   )ra   Paaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbb   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcdci+  r   r   ) r
   r=   rN  rM   r"   r   rO  rk   sumr  rI   r  rj   r   rm   rn   most_commonrq   r   r  r   r  r   r  r   NotImplementedErrorrG  r   rQ  r   r   
setdefault)r5   ra   r   r  cnts        r6   r   zTestCounter.test_basics  s   HG!!$<$<==>>>Ga1222333a&&&a)))
7D11222
7G44555Q###QXXZZ!,,,ahhjj))999555affhh999a///222aggii777	9 	9 	93###3###,,d333,,e444sB+++sB,,,D1Q///000a"EFFF*H*H*HIIIq 	A 	AAQ]]1--;;;BQB?A A A A..999	#!	#!cFcF	#!#	#!D1R2;;;<<<..
;;;sQ'''a   q 	& 	&A		ID#T1%%%%				Ba+...-w/?GGG)T1---	Q   	1	,--...	


	

()))	

5	

D3#a888999c1--q1113###c1--q1113#####r8   c                 n   |                      t          t          d                                                    dg           |                      t          t          d                                                    dg           |                      t          t          d                                                     dg           |                     t
          t          d           |                     t
          t          dd           |                     t
          t          j                   d S )Nr`  rF   r5   r`  r  r  r`  r  NrY   )r=   rI   r
   rj   r   r   r   rF   s    r6   	test_initzTestCounter.test_init0  s    g2...446677,HHHgr22288::;;>N=OPPPgt444::<<==@R?STTT)Wb111)Wb"555)W%566666r8   c                 z    t          ddd          }|                     |                                d           d S )Nr   rg   r   rc      )r
   r=   totalr5   ra   s     r6   
test_totalzTestCounter.test_total8  s:    bA###B'''''r8   c                 &   |                      t          t          d                                                    g d           |                      t          t          d                                                    g d           |                      t          t          d                                                    g d           d}d}d	 t          t                              ||z                       D             fd
}t          |          t          |          }}|                      ||
                      |                      ||                      |                      |||z                        |                      |||z
                       |                      |||z                       |                      |||z                       t          |          t          |          }}||z  }|                      ||                     t          |          t          |          }}||z  }|                      ||                     t          |          t          |          }}||z  }|                      ||                     t          |          t          |          }}||z  }|                      ||                     t          |          t          |          }}|	                    |           |                      ||                     t          |          t          |          }}|
                    |           |                      ||                     d S )Nr  )r.   rg   r   )ry  r^   r-  )ry   r]   xyzpdqqdpzyx))r   r^   )r   r^   )rf   r^   )r   r^   )ry   r^   )rm  r^   zabracadabra simsalabim)r.   r.   r.   r.   r.   r.   r.   r/   r/   r/   ry  ry  ra   ry    rz  rz  r   r   r   r   laaabbcdddeefggghhijjjkklabbcccdeefffhkkllllmmnnoc                     i | ]\  }}||	S rY   rY   )r[  r   r  s      r6   
<dictcomp>z7TestCounter.test_order_preservation.<locals>.<dictcomp>O  s    NNNyq&NNNr8   c                 H    	 fd| D             }|t          |          k    S )Nc                      g | ]
}|         S rY   rY   )r[  r  orders     r6   r\  zRTestCounter.test_order_preservation.<locals>.correctly_ordered.<locals>.<listcomp>R  s    9996v999r8   )r  )r  	positionsrO  s     r6   correctly_orderedz>TestCounter.test_order_preservation.<locals>.correctly_orderedP  s2    D9999S999Iy 1 111r8   )r=   rI   r
   rj   r  ra  rM   rG  r   r   subtract)r5   psqsrQ  r   rm  rO  s         @r6   r   z#TestCounter.test_order_preservation<  s   gm44::<<==AAA	C 	C 	C
 	gn55;;==>>KKK	M 	M 	M 	g&>??HHJJKKH H H	I 	I 	I ('NNIdmmBG6L6L,M,MNNN	2 	2 	2 	2 	2
 r{{GBKK1))1"--...))1"--...))!a%00111))!a%00111))!a%00111))!a%00111r{{GBKK1	Q))!,,---r{{GBKK1	Q))!,,---r{{GBKK1	Q))!,,---r{{GBKK1	Q))!,,---r{{GBKK1	))!,,---r{{GBKK1	

1))!,,-----r8   c                 "   t                      }|                    d           |                     t          |                                          dg           t                      }|                    d           |                     t          |                                          dg           t                      }|                    d            |                     t          |                                          dg           |                     t          t                      j        d           |                     t          t                      j        i i            |                     t          t           j                   d S )Nr`  rF   r:  r;  r<  r=  )r
   r   r=   rI   rj   r   r   rB  s     r6   test_updatezTestCounter.test_updateu  s-   II	baggii<.999II	"aggii+;*<===II	$aggii+=*>???)WYY%5r:::)WYY%5r2>>>)W^44444r8   c           
          t          d                                           fd} |                                            |t          j                              |t          j                             t	          t
          j        dz             D ]`}                     |          5   |t          j        t          j	        |                               d d d            n# 1 swxY w Y   a |t          t                                         t                      }|                                ||            |t                               d S )Nz)which witch had which witches wrist watchc                 r    d| d}                     | |                               |            d S )Nz
copy: z
words: )r;   r=   )dupr  r5   r  s     r6   checkz'TestCounter.test_copying.<locals>.check  sI     -0SS%%8CS%---S%(((((r8   r]   r   )r
   r  r:   rv   rq   rr   rs   r)  rt   ru   rw   rn   r   )r5   rZ  r   update_testr  s   `   @r6   test_copyingzTestCounter.test_copying  s    CIIKKLL	) 	) 	) 	) 	) 	) 	ejjlldidmE""###62Q677 	@ 	@EE** @ @fl6<u#=#=>>???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @d4;;   ii5!!!kgenns   51C22C6	9C6	c                 V    G d dt                     } |d          }|                                }|                     ||           |                     t          |          t          |                     |                     t	          |          t	          |                     d S )Nc                       e Zd ZdS )1TestCounter.test_copy_subclass.<locals>.MyCounterNr   rY   r8   r6   	MyCounterr_    r   r8   r`  slartibartfast)r
   r:   r=   rk   ro   )r5   r`  ra   ry   s       r6   test_copy_subclasszTestCounter.test_copy_subclass  s    	 	 	 	 	 	 	 	I&''FFHHAQQ(((a$q''*****r8   c                 n   d}|                      t          t          |                                                    t          |                     |                      t          t          |                    t          t	          |                               |                      t          t          |                    t          t          |                                                               |                      t	          t          |                    t	          |                     d S )Nz%she sells sea shells by the sea shore)r=   r  r
   r  r1   rM   rj   rO  s     r6   test_conversionszTestCounter.test_conversions  s    3

 3 3 5 566q		BBB

++VCFF^^<<<gajj))4

0@0@0B0B+C+CDDDWQZZ#a&&11111r8   c                     t          ddd          }|D ]/}|                     ||v            |                     ||           0d S )Nr   r/  r   rc   )r
   r   rl   )r5   ra   r  s      r6   "test_invariant_for_the_in_operatorz.TestCounter.test_invariant_for_the_in_operator  s\    bB!$$$ 	# 	#DOODAI&&&MM$""""	# 	#r8   c                    t          ddd          t                      z   }|                     t          |          t          d                     d}t          d          D ]8}t          t          d |D                                 }|                    d	d
d           t          t          d |D                                 }|                    d	d
d           t           j        d ft           j        d ft           j        d ft           j        d ffD ]~\  }} |||          }|D ]9}	|                      |||	         ||	                   ||	         ||	||f           :| 	                    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 ]\  }}
 |||          } |
t          |                                          t          |                                                    }|                     |t                              |d	                     #d S )Nr   r/  r   rc   r   rL  r  c              3   :   K   | ]}|t          d d          fV  dS r/  r   Nr   r[  r  s     r6   r]  z7TestCounter.test_multiset_operations.<locals>.<genexpr>  /      JJdIbOO4JJJJJJr8   r]   rM  r}   r   r   c              3   :   K   | ]}|t          d d          fV  dS ri  rj  rk  s     r6   r]  z7TestCounter.test_multiset_operations.<locals>.<genexpr>  rl  r8   r   r   r   c                 (    t          d| |z             S rD  rO  r   s     r6   rF  z6TestCounter.test_multiset_operations.<locals>.<lambda>      s1ac{{ r8   c                 (    t          d| |z
            S rD  rq  r   s     r6   rF  z6TestCounter.test_multiset_operations.<locals>.<lambda>  rr  r8   c                 $    t          d| |          S rD  rq  r   s     r6   rF  z6TestCounter.test_multiset_operations.<locals>.<lambda>  s    c!Aajj r8   c                 >    t          dt          | |                    S rD  )rO  minr   s     r6   rF  z6TestCounter.test_multiset_operations.<locals>.<lambda>  s    s1c!Ahh/?/? r8   c              3   "   K   | ]
}|d k    V  dS )r   NrY   r  s     r6   r]  z7TestCounter.test_multiset_operations.<locals>.<genexpr>  s&      ==!======r8   abcdefre   c              3   :   K   | ]}|t          d d          fV  dS r   r^   Nrj  rk  s     r6   r]  z7TestCounter.test_multiset_operations.<locals>.<genexpr>  /      JJdIaOO4JJJJJJr8   c              3   :   K   | ]}|t          d d          fV  dS rz  rj  rk  s     r6   r]  z7TestCounter.test_multiset_operations.<locals>.<genexpr>  r{  r8   )r
   r=   rM   rq   r   __add____sub____or____and__r   r  r1   r  rG  )r5   ra   r  r   r   rm  	counteropnumberopr  r   setopcounter_result
set_results                r6   test_multiset_operationsz$TestCounter.test_multiset_operations  s   bB!$$$wyy0a$***---t 	> 	>AJJJJJJJKKAHHqB!H$$$JJJJJJJKKAHHqB!H$$$":":;":":;!8!89"?"?@	( > >#	8 #1a! ; ;A$$XXadAaD%9%96!9&/Aq%9; ; ; ; ==V]]__=======> s 	O 	OAJJJJJJJKKAJJJJJJJKKA#+.,#+.% O O 	5
 "+1a"U3qzz||#4#4c!**,,6G6GHH
  z11M1MNNNNO		O 	Or8   c                    d}t          d          D ]W}t          t          d |D                                 }|                    ddd           t          t          d |D                                 }|                    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 ]y\  }}|                                }t          |          } |||          }	 |||          }
|                     |
|	           |                     t          |
          |           zYd S )
NrL  r  c              3   :   K   | ]}|t          d d          fV  dS ri  rj  rk  s     r6   r]  z6TestCounter.test_inplace_operations.<locals>.<genexpr>  rl  r8   r]   rM  r   rm  c              3   :   K   | ]}|t          d d          fV  dS ri  rj  rk  s     r6   r]  z6TestCounter.test_inplace_operations.<locals>.<genexpr>  rl  r8   ro  )rq   r
   rM   r   __iadd__r}  __isub__r~  __ior__r  __iand__r  r:   idr=   )r5   r  r   r   rm  
inplace_op
regular_opra   c_idregular_resultinplace_results              r6   test_inplace_operationsz#TestCounter.test_inplace_operations  s_   t 	; 	;AJJJJJJJKKAHHqB!H$$$JJJJJJJKKAHHqB!H$$$!7?3!7?3'.1!7?3	+ ; ;&
J FFHH!uu!+Aq!1!1!+Aq!1!1  @@@  N!3!3T::::;	; 	;r8   c                    t          dddddd          }|                    dd	d
dddd           |                     |t          dddddddd                     t          dddddd          }|                    t          dd	d
dddd                     |                     |t          dddddddd                     t          d          }|                    d           |                     |t          ddddd                     t                      }|                    d           |                     t          |                                          dg           t                      }|                    d           |                     t          |                                          dg           |                     t          t                      j        d           |                     t          t                      j        i i            |                     t          t           j                   d S )Nr_  r   rg   r   r@  rt  r.   r/   ra   ry   r}   r   r]   r^   r  r_   r`   i)r.   r/   ra   ry   r}   r   r   ir/     iru  )r.   r/   ra   ry   r}   r   r   r   aaabbcd	aaaabbccerM  r   r`  rF   )r5   r;  )r  r  )r
   rR  r=   rI   rj   r   r   rB  s     r6   test_subtractzTestCounter.test_subtract  s   bAbB444	

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

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

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


aggii=/:::II	

B
aggii+<*=>>>)WYY%7<<<)WYY%7R@@@)W%566666r8   c           	          t          dddddd          }|                     t          |
           t          dddd                     |                     t          |           t          d	                     d S )
Nr_  r   rg   r   r@  rt  r  )ra   ry   r}   r   r   )r
   r=   rM   rB  s     r6   
test_unaryzTestCounter.test_unary  sw    bAbB444qb4!rR2#>#>#>???qb4!999-----r8   c                     t          dd           }t          |          }|                     d|           |                     d|           d S )Nr^   r-   z'a': 2z	'b': None)r
   rn   rl   )r5   ra   ry  s      r6   test_repr_nonsortablez!TestCounter.test_repr_nonsortable	  sM    a4   GGh"""k1%%%%%r8   c           	      f   t          d          }t                      }t          ||           |                     |dddddd           t	                      }t          ||           |                     |t	          g d                     t          d          }|                     |j                   |                     t          |          dddddd           t          d          }|                     |j                   |                     t          |          dddddd           d S )Nr  rg   r^   r]   )r.   ry  r/   ra   ry   rE  )r.   r/   ra   ry   ry  )	rI   rM   r   r=   r   r  r   r   r%  )r5   elemsry   r   ra   s        r6   test_helper_functionz TestCounter.test_helper_function
	  s2   ]##FF5!!!!!!!!DDEEEMM5!!!KKKLL	N 	N 	N '}55!!!aq"J"JKKK"=11!!!aq"J"JKKKKKr8   c                 T   t          t          dt          d                              t          j        fdt          t                    dz             D                       }d |D             }t          |d          D ]\  }}t          |                                          }t          |                                          }|                     t          ||z             ||z             |                     t          ||z
            ||z
             |                     t          ||z            ||z             |                     t          ||z            ||z             |                     ||k    ||k               |                     ||k    ||k               |                     ||k    ||k               |                     ||k    ||k               |                     ||k     ||k                |                     ||k    ||k               d S )Nrc   r^   c              3   8   K   | ]}t          |          V  d S rD   )r   )r[  ry  rz  s     r6   r]  zTTestCounter.test_multiset_operations_equivalent_to_set_operations.<locals>.<genexpr>$	  s-      &S&Sa|Aq'9'9&S&S&S&S&S&Sr8   r]   c                 F    g | ]}t          t          |                    S rY   )r
   rM   )r[  groupss     r6   r\  zUTestCounter.test_multiset_operations_equivalent_to_set_operations.<locals>.<listcomp>%	  s&    AAAfGDLL))AAAr8   )repeat)	rI   r   rq   r   r  rk   r1   r  r=   )r5   powersetcounterscpcqspsqrz  s          @r6   5test_multiset_operations_equivalent_to_set_operationszATestCounter.test_multiset_operations_equivalent_to_set_operations	  s    %((3344&&S&S&S&S5QPQ??&S&S&SSSAAAAAhq111 	/ 	/FBR[[]]##BR[[]]##BSb\\27333Sb\\27333Sb\\27333Sb\\27333R2XrRx000R2XrRx000R2XrRx000R2XrRx000R"Wb2g...R"Wb2g....	/ 	/r8   c                     |                      t          ddd          t          d                     |                     t          dd          t          d                     d S Nrd   r^   r   rc   ababar-   babab)r=   r
   r=  rF   s    r6   test_eqzTestCounter.test_eq4	  s`    1Q///1A1ABBBGa1---ww/?/?@@@@@r8   c                     |                      t          ddd          t          d          k               |                     t          dd          t          d          k               d S r  r   r
   r   rF   s    r6   test_lezTestCounter.test_le8	  sd    !qA...''2B2BBCCC1***gg.>.>>?????r8   c                     |                      t          ddd          t          d          k                |                     t          ddd          t          d          k                d S )Nrd   r]   r   rc   r  r^   r  rF   s    r6   test_ltzTestCounter.test_lt<	  sf    !qA...1A1AABBB1Q///''2B2BBCCCCCr8   c                     |                      t          ddd          t          d          k               |                     t          ddd          t          d          k               d S )Nr^   r]   r   rc   aabrd   aabdr  rF   s    r6   test_gezTestCounter.test_ge@	  sb    !qA...'%..@AAA1Q///76??BCCCCCr8   c                     |                      t          ddd          t          d          k               |                     t          ddd          t          d          k               d S )Nrd   r^   r   rc   r  r]   r  rF   s    r6   test_gtzTestCounter.test_gtD	  sb    !qA...?@@@1Q///'%..@AAAAAr8   N)r4   rW   rX   r   r>  rC  r   rV  r\  rb  rd  rf  r  r  r  r  r  r  r  r  r  r  r  r  rY   r8   r6   r*  r*    si       :$ :$ :$x7 7 7( ( (7. 7. 7.r5 5 5  (+ + +2 2 2# # #%O %O %ON; ; ;*7 7 7*. . .
& & &L L L*/ / /*A A A@ @ @D D DD D DB B B B Br8   r*  c                 ^    |                     t          j        t                               |S rD   )addTestdoctestDocTestSuiter?  )loadertestspatterns      r6   
load_testsr  I	  s$    	MM'&{33444Lr8   __main__)Er?  r:   r  r$  r  rr   randomr   r   	itertoolsr   r   r   rY  r  r>   r   r  r;  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)   TestCaser+   r[   r   r   rA  ru  rw  r  r  r  r%  r*  r  r4   mainrY   r8   r6   <module>r     sL   $          $ $ $ $ $ $ $ $ 2 2 2 2 2 2 2 2 2 2  



         I I I I I I I I I I I I 6 6 6 6 6 6 6 6 6 6                   0 0 0 0 0 0 0 0 H H H H H H H H H H O O O O O O O O O O O O O O B B B B B B B B B B B B + + + + + + + + T T T T T T T T T T T T T T 5 5 5 5 5 5 5 5 & & & & & &) ) ) ) )h' ) ) )`]/ ]/ ]/ ]/ ]/8$ ]/ ]/ ]/H 
Hg	&	&R& R& R& R& R&X& R& R& R&r96 96 96 96 96(# 96 96 96v
 
 
^	. ^	. ^	. ^	. ^	.; ^	. ^	. ^	.@         j      (X	K X	K X	K X	K X	K X	K X	K X	K@. . . . . . . ./ / / / /W / / /TB TB TB TB TB(# TB TB TBn
  
 zHMOOOOO r8   