a
    þd/\ ã                
   @   s„  d dl mZmZ d dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZmZmZ d dlmZmZ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(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dlm1Z1m2Z2m3Z3m4Z4 d d	lm5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> d d
l?m@Z@ d dlAmBZB d dlCmDZD d dlEmFZFmGZGmHZHmIZI d dlJmKZLmMZNmOZPmQZR d dlJmSZTmUZVmWZX d dlJmYZZm[Z\m]Z^ d dlJm_Z`maZbmcZdmeZf d dlJmgZhmiZj e6rd dlJmkZl zd dlmZmW n eny:   dZmY n0 zeo W n  epyd   d dlmoZo Y n0 eqZrer sd¡d Ztdd„ ZuG dd„ de
jvƒZvzG dd„ deƒZwW n  exyÆ   e y¡ d ZwY n0 zG dd„ dezeƒZ{W n  exyþ   e y¡ d Z{Y n0 zG d d!„ d!e|eƒZ}W n  exy6   e y¡ d Z}Y n0 zG d"d#„ d#eƒZ~W n* exyv Z zeZ~W Y dZ[n
dZ[0 0 zG d$d%„ d%eƒZ€W n* exy¶ Z zeZ€W Y dZ[n
dZ[0 0 zG d&d'„ d'eƒZW n exyä   eZY n0 zG d(d)„ d)eƒZ‚W n* exy$ Z zeZ‚W Y dZ[n
dZ[0 0 zed*d+eqd,ZƒW n  exyX   e y¡ d ZƒY n0 zG d-d.„ d.eƒZ„W n  exyŽ   e y¡ d Z„Y n0 zG d/d0„ d0eƒZ…W n  exyÄ   e y¡ d Z…Y n0 zed1d2eqd,Z†W n  exyø   e y¡ d Z†Y n0 zed3d4ƒZ‡W n  exy(   e y¡ d Z‡Y n0 z$G d5d6„ d6eƒZˆG d7d8„ d8eˆƒZ‰W n  exyn   e y¡ d Z‰Y n0 zG d9d:„ d:eƒZŠW n exy˜   Y n0 dd eIffd;d<„Z‹d eIffd=d>„ZŒe7r dd?lmŽZŽmZmZm‘Z‘m’Z’m“Z“ dd@l”mZ e{e_{eŒe_Œe‹e_‹e5e=krddAl•m–Z– G dBdC„ dCe—ƒZ˜G dDdE„ dEevƒZ™G dFdG„ dGevƒZšG dHdI„ dIevƒZ›G dJdK„ dKevƒZœG dLdM„ dMevƒZG dNdO„ dOevƒZžG dPdQ„ dQevƒZŸG dRdS„ dSevƒZ G dTdU„ dUe
jvƒZ¡G dVdW„ dWevƒZ¢G dXdY„ dYevƒZ£G dZd[„ d[evƒZ¤G d\d]„ d]evƒZ¥G d^d_„ d_evƒZ¦G d`da„ daevƒZ§G dbdc„ dcevƒZ¨ddZ©ddZªddZ«ddZ¬ddZ­ddZ®deZ¯deZ°dfZ±dfZ²ddZ³ddZ´ddZµddZ¶ddZ·ddZ¸dgZ¹dhZºddZ»diZ¼djZ½dkZ¾dlZ¿dmZÀG dndo„ doevƒZÁdpdq„ ZÂdrds„ ZÃeqdtkr€e Ä¡ ZÅdZÆz„e7rÌeÅe_Åe
jÇdudvZÆejÈ É¡  eÆjÊjËD ]\ZÌZÍeÎdweÌeÍf ƒ qêW e ÏeÅdx¡ eÆr€e ÐeÑeÆjÊjÒp0eÆjÊjÓƒr<dp>d ¡ n<e ÏeÅdx¡ eÆr~e ÐeÑeÆjÊjÒpleÆjÊjÓƒrxdpzd ¡ 0 dS )yé    )ÚdivisionÚprint_functionN)ÚEnumTypeÚEnumMetaÚEnumÚIntEnumÚStrEnumÚLowerStrEnumÚUpperStrEnumÚReprEnum)ÚAutoNumberEnumÚMultiValueEnumÚOrderedEnumÚ
UniqueEnumÚAddValueEnumÚFlagÚIntFlag)Ú
NamedTupleÚ	TupleSizeÚNamedConstantÚconstantÚNoAliasÚAddValueÚUnique)ÚSTRICTÚCONFORMÚEJECTÚKEEP)
Ú_reduce_ex_by_nameÚuniqueÚskipÚextend_enumÚautoÚenumÚ
MultiValueÚmemberÚ	nonmemberÚno_arg)Ú
basestringÚbaseintegerÚunicodeÚenum_property)
ÚpyverÚPY2ÚPY3ÚPY2_6ÚPY3_3ÚPY3_4ÚPY3_5ÚPY3_6ÚPY3_7ÚPY3_11)Ú	_high_bit)ÚOrderedDict)Ú	timedelta)ÚdumpsÚloadsÚPicklingErrorÚHIGHEST_PROTOCOL)Úor_Úand_ÚxorÚinv)ÚabsÚaddÚfloordiv)ÚlshiftÚrshiftÚmod)ÚmulÚnegÚposÚpow)ÚtruedivÚsub)Údiv)ÚanyÚ.éÿÿÿÿc                 C   s2   |  t t¡¡ |  tjdttjtjB d¡ |S )Nzdoc/aenum.rst)ÚpackageZoptionflags)ZaddTestsÚdoctestZDocTestSuiteÚaenumZDocFileSuiteÚELLIPSISZNORMALIZE_WHITESPACE)ÚloaderÚtestsÚignore© rX   úS/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/aenum/test.pyÚ
load_tests-   s    
ýrZ   c                       s   e Zd Z‡ fdd„Z‡  ZS )ÚTestCasec                    s:   t | dd ƒ}|d u r t | dƒ| _tt| ƒj|i |¤Ž d S )NÚassertRaisesRegexZassertRaisesRegexp)Úgetattrr\   Úsuperr[   Ú__init__)ÚselfÚargsÚkwdsÚregex©Ú	__class__rX   rY   r_   8   s    zTestCase.__init__)Ú__name__Ú
__module__Ú__qualname__r_   Ú__classcell__rX   rX   rd   rY   r[   6   s   r[   c                   @   s   e Zd ZdZdZdZdS )ÚStoogesé   é   é   N©rf   rg   rh   ÚLARRYÚCURLYÚMOErX   rX   rX   rY   rj   A   s   rj   rk   c                   @   s   e Zd ZdZdZdZdS )Ú
IntStoogesrk   rl   rm   Nrn   rX   rX   rX   rY   rr   I   s   rr   c                   @   s   e Zd ZdZdZdZdS )ÚFloatStoogesg=
×£p=ö?gÃõ(\Â@gÆR$_	$	@Nrn   rX   rX   rX   rY   rs   Q   s   rs   c                   @   s    e Zd ZdZdZdZdZdZdS )ÚFlagStoogesrk   rl   é   é   é   N©rf   rg   rh   ro   rp   rq   ÚPMASKÚCMASKrX   rX   rX   rY   rt   Y   s
   rt   c                   @   s$   e Zd ZdZdZdZdZdZdZdS )ÚFlagStoogesWithZeror   rk   rl   ru   rv   rw   N©	rf   rg   rh   ÚNOFLAGro   rp   rq   ry   rz   rX   rX   rX   rY   r{   c   s   r{   c                   @   s    e Zd ZdZdZdZdZdZdS )ÚIntFlagStoogesrk   rl   ru   rv   rw   Nrx   rX   rX   rX   rY   r~   n   s
   r~   c                   @   s$   e Zd ZdZdZdZdZdZdZdS )ÚIntFlagStoogesWithZeror   rk   rl   ru   rv   rw   Nr|   rX   rX   rX   rY   r   x   s   r   ÚLifeFormzbranch genus species©Úmodulec                   @   s   e Zd ZdZdZdZdS )Ú	DeathFormr   rk   rl   N)rf   rg   rh   ÚcolorZrigidityZodorrX   rX   rX   rY   rƒ   ˆ   s   rƒ   c                   @   s   e Zd ZdZdZdS )ÚNameúGuido van RossumzBarry WarsawN)rf   rg   rh   ÚBDFLZFLUFLrX   rX   rX   rY   r…   ‘   s   r…   ÚQuestionzwho what when where whyÚAnswerzhim this then there becausec                   @   s   e Zd Zdd„ ZdS )ÚWhatsItc                 C   s   | d S ©Nr   rX   ©r`   rX   rX   rY   Úwhat£   s    zWhatsIt.whatN)rf   rg   rh   r   rX   rX   rX   rY   rŠ   ¢   s   rŠ   c                   @   s   e Zd ZdZdZdS )ÚThatsItr   rk   N)rf   rg   rh   ÚblahZblehrX   rX   rX   rY   rŽ   ¥   s   rŽ   c                   @   s   e Zd ZdZdZdZdS )ÚFruitrk   rl   rm   N)rf   rg   rh   ZtomatoÚbananaZcherryrX   rX   rX   rY   r   ­   s   r   c           	   	   C   s®   |\}}g }t ||d ƒD ]x}z:|d u r@| tt||dƒ|ƒ n| tt||dƒ|ƒ W q ty   t ¡ dd … \}}| d||f ¡ Y q0 q|rªtdd |¡ ƒ‚d S )Nrk   ©Úprotocolz%2d: %súFailed with protocols: %sú, )	Úranger:   r9   Ú	ExceptionÚsysÚexc_infoÚappendÚ
ValueErrorÚjoin)	Ú	assertionÚsourceÚtargetr“   ÚstartÚstopÚfailuresÚexcÚtbrX   rX   rY   Útest_pickle_dump_load´   s    r¥   c              
   C   s†   |\}}g }t ||d ƒD ]P}z| |t||d W q tyh   t ¡ d }| d||jj|f ¡ Y q0 q|r‚tdd 	|¡ ƒ‚d S )Nrk   r’   z	%d: %s %sr”   r•   )
r–   r9   r—   r˜   r™   rš   re   rf   r›   rœ   )r   Ú	exceptionÚobjr“   r    r¡   r¢   r£   rX   rX   rY   Útest_pickle_exceptionÃ   s     r¨   )Ú
TestEnumV3ÚTestOrderV3ÚTestNamedTupleV3ÚTestStackoverflowAnswersV3ÚTestIssuesV3ÚTestExtendEnumV3)Útest_v3)ÚTestEnumV37c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚclasspropertyNc                 C   s2   || _ || _|| _|d u r(|d ur(|j}|| _d S ©N)ÚfgetÚfsetÚfdelÚ__doc__)r`   r³   r´   rµ   ÚdocrX   rX   rY   r_   Þ   s    zclassproperty.__init__c                 C   s
   |   |¡S r²   )r³   )r`   ÚinstanceÚ
ownerclassrX   rX   rY   Ú__get__æ   s    zclassproperty.__get__)NNNN)rf   rg   rh   r_   rº   rX   rX   rX   rY   r±   Ü   s   
r±   c                   @   sp   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )Ú	TestOrderz-
    Test _order_ extra/missing members.
    c                 C   s   G dd„ dt ƒ}d S )Nc                   @   s   e Zd ZdZdZdZdZdS )z*TestOrder.test_same_members.<locals>.Colorúred green bluerk   rl   rm   N©rf   rg   rh   Ú_order_ÚredÚgreenÚbluerX   rX   rX   rY   ÚColorñ   s   rÂ   ©r   ©r`   rÂ   rX   rX   rY   Útest_same_membersð   s    zTestOrder.test_same_membersc                 C   s   G dd„ dt ƒ}d S )Nc                   @   s    e Zd ZdZdZdZdZeZdS )z7TestOrder.test_same_members_with_aliases.<locals>.Colorr¼   rk   rl   rm   N©rf   rg   rh   r¾   r¿   rÀ   rÁ   ÚverderX   rX   rX   rY   rÂ   ø   s
   rÂ   rÃ   rÄ   rX   rX   rY   Útest_same_members_with_aliases÷   s    z(TestOrder.test_same_members_with_aliasesc                 C   s@   |   td¡  G dd„ dtƒ}W d   ƒ n1 s20    Y  d S )Nú#member order does not match _order_c                   @   s   e Zd ZdZdZdZdZdS )z5TestOrder.test_order_has_extra_members.<locals>.Colorúred green blue purplerk   rl   rm   Nr½   rX   rX   rX   rY   rÂ     s   rÂ   ©r\   Ú	TypeErrorr   rÄ   rX   rX   rY   Útest_order_has_extra_membersÿ   s    z&TestOrder.test_order_has_extra_membersc                 C   s@   |   td¡  G dd„ dtƒ}W d   ƒ n1 s20    Y  d S )NrÉ   c                   @   s    e Zd ZdZdZdZdZeZdS )zBTestOrder.test_order_has_extra_members_with_aliases.<locals>.ColorrÊ   rk   rl   rm   NrÆ   rX   rX   rX   rY   rÂ   	  s
   rÂ   rË   rÄ   rX   rX   rY   Ú)test_order_has_extra_members_with_aliases  s    z3TestOrder.test_order_has_extra_members_with_aliasesc                 C   s@   |   td¡  G dd„ dtƒ}W d   ƒ n1 s20    Y  d S )NrÉ   c                   @   s    e Zd ZdZdZdZdZdZdS )z4TestOrder.test_enum_has_extra_members.<locals>.Colorr¼   rk   rl   rm   ru   N©rf   rg   rh   r¾   r¿   rÀ   rÁ   ÚpurplerX   rX   rX   rY   rÂ     s
   rÂ   rË   rÄ   rX   rX   rY   Útest_enum_has_extra_members  s    z%TestOrder.test_enum_has_extra_membersc                 C   s@   |   td¡  G dd„ dtƒ}W d   ƒ n1 s20    Y  d S )NrÉ   c                   @   s$   e Zd ZdZdZdZdZdZeZdS )zATestOrder.test_enum_has_extra_members_with_aliases.<locals>.Colorr¼   rk   rl   rm   ru   N©	rf   rg   rh   r¾   r¿   rÀ   rÁ   rÐ   rÇ   rX   rX   rX   rY   rÂ     s   rÂ   rË   rÄ   rX   rX   rY   Ú(test_enum_has_extra_members_with_aliases  s    z2TestOrder.test_enum_has_extra_members_with_aliasesc                 C   s   G dd„ dt ƒ}d S )Nc                   @   s   e Zd ZdZdZdZdZdS )z/TestOrder.test_same_members_flag.<locals>.Colorr¼   rk   rl   ru   Nr½   rX   rX   rX   rY   rÂ   $  s   rÂ   ©r   rÄ   rX   rX   rY   Útest_same_members_flag#  s    z TestOrder.test_same_members_flagc                 C   s   G dd„ dt ƒ}d S )Nc                   @   s    e Zd ZdZdZdZdZeZdS )z<TestOrder.test_same_members_with_aliases_flag.<locals>.Colorr¼   rk   rl   ru   NrÆ   rX   rX   rX   rY   rÂ   +  s
   rÂ   rÔ   rÄ   rX   rX   rY   Ú#test_same_members_with_aliases_flag*  s    z-TestOrder.test_same_members_with_aliases_flagc                 C   s@   |   td¡  G dd„ dtƒ}W d   ƒ n1 s20    Y  d S )NrÉ   c                   @   s   e Zd ZdZdZdZdZdS )z:TestOrder.test_order_has_extra_members_flag.<locals>.ColorrÊ   rk   rl   ru   Nr½   rX   rX   rX   rY   rÂ   4  s   rÂ   ©r\   rÌ   r   rÄ   rX   rX   rY   Ú!test_order_has_extra_members_flag2  s    z+TestOrder.test_order_has_extra_members_flagc                 C   s@   |   td¡  G dd„ dtƒ}W d   ƒ n1 s20    Y  d S )NrÉ   c                   @   s    e Zd ZdZdZdZdZeZdS )zGTestOrder.test_order_has_extra_members_with_aliases_flag.<locals>.ColorrÊ   rk   rl   ru   NrÆ   rX   rX   rX   rY   rÂ   <  s
   rÂ   r×   rÄ   rX   rX   rY   Ú.test_order_has_extra_members_with_aliases_flag:  s    z8TestOrder.test_order_has_extra_members_with_aliases_flagc                 C   s@   |   td¡  G dd„ dtƒ}W d   ƒ n1 s20    Y  d S )NrÉ   c                   @   s    e Zd ZdZdZdZdZdZdS )z9TestOrder.test_enum_has_extra_members_flag.<locals>.Colorr¼   rk   rl   ru   é   NrÏ   rX   rX   rX   rY   rÂ   E  s
   rÂ   r×   rÄ   rX   rX   rY   Ú test_enum_has_extra_members_flagC  s    z*TestOrder.test_enum_has_extra_members_flagc                 C   s@   |   td¡  G dd„ dtƒ}W d   ƒ n1 s20    Y  d S )NrÉ   c                   @   s$   e Zd ZdZdZdZdZdZeZdS )zFTestOrder.test_enum_has_extra_members_with_aliases_flag.<locals>.Colorr¼   rk   rl   ru   rÚ   NrÒ   rX   rX   rX   rY   rÂ   N  s   rÂ   r×   rÄ   rX   rX   rY   Ú-test_enum_has_extra_members_with_aliases_flagL  s    z7TestOrder.test_enum_has_extra_members_with_aliases_flagN)rf   rg   rh   r¶   rÅ   rÈ   rÍ   rÎ   rÑ   rÓ   rÕ   rÖ   rØ   rÙ   rÛ   rÜ   rX   rX   rX   rY   r»   ë   s   		
		r»   c                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTestAutoValuec                 C   s€   G dd„ dt ƒ}|  |jjd¡ G dd„ dtƒ}|  |jd¡ G dd„ dtƒ}|  |jjd¡ G d	d
„ d
tƒ}|  |jd¡ d S )Nc                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z)TestAutoValue.test_bare.<locals>.BareEnumúONE TWO THREEN©rf   rg   rh   r¾   r"   ÚONEÚTWOÚTHREErX   rX   rX   rY   ÚBareEnum[  s   rã   rm   c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z,TestAutoValue.test_bare.<locals>.BareIntEnumrÞ   Nrß   rX   rX   rX   rY   ÚBareIntEnumb  s   rä   c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z)TestAutoValue.test_bare.<locals>.BareFlagrÞ   Nrß   rX   rX   rX   rY   ÚBareFlagi  s   rå   ru   c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z,TestAutoValue.test_bare.<locals>.BareIntFlagrÞ   Nrß   rX   rX   rX   rY   ÚBareIntFlagp  s   ræ   )r   ÚassertEqualrâ   Úvaluer   r   r   )r`   rã   rä   rå   ræ   rX   rX   rY   Ú	test_bareY  s    zTestAutoValue.test_barec                 C   sð   G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ G dd„ dtƒ}|  |jd¡ |  |jjd¡ G d	d
„ d
tƒ}|  |jjd¡ |  |jjd¡ G dd„ dtƒ}|  |jd¡ |  |jjd¡ d S )Nc                   @   s    e Zd ZdZdZdZdZdZdS )z9TestAutoValue.test_init_only_final.<locals>.InitEnumValueúvalue descriptionrÞ   úthe loneliest numberúthe number with youú
a triangleN©rf   rg   rh   Ú_init_r¾   rà   rá   râ   rX   rX   rX   rY   ÚInitEnumValuey  s
   rð   rm   rí   c                   @   s    e Zd ZdZdZdZdZdZdS )z4TestAutoValue.test_init_only_final.<locals>.InitEnumrê   rÞ   rë   rì   rí   Nrî   rX   rX   rX   rY   ÚInitEnum‚  s
   rñ   c                   @   s    e Zd ZdZdZdZdZdZdS )z7TestAutoValue.test_init_only_final.<locals>.InitIntEnumrê   rÞ   rë   rì   rí   Nrî   rX   rX   rX   rY   ÚInitIntEnum‹  s
   rò   c                   @   s    e Zd ZdZdZdZdZdZdS )z4TestAutoValue.test_init_only_final.<locals>.InitFlagrê   rÞ   rë   rì   rí   Nrî   rX   rX   rX   rY   ÚInitFlag”  s
   ró   ru   c                   @   s    e Zd ZdZdZdZdZdZdS )z7TestAutoValue.test_init_only_final.<locals>.InitIntFlagrê   rÞ   rë   rì   rí   Nrî   rX   rX   rX   rY   ÚInitIntFlag  s
   rô   )r   rç   râ   rè   Údescriptionr   r   r   )r`   rð   rñ   rò   ró   rô   rX   rX   rY   Útest_init_only_finalw  s    z"TestAutoValue.test_init_only_finalc                 C   s$  G dd„ dt ƒ}G dd„ d|ƒ}|  |jjd¡ |  |jjd¡ G dd„ dt ƒ}G d	d„ d|ƒ}|  |jjd¡ |  |jjd¡ G d
d„ dt|ƒ}|  |jd¡ |  |jjd¡ G dd„ dtƒ}G dd„ d|ƒ}|  |jjd¡ |  |jjd¡ G dd„ dt|ƒ}|  |jd¡ |  |jjd¡ d S )Nc                   @   s   e Zd ZdZdS )z=TestAutoValue.test_init_only_inherit.<locals>.InitInheritEnumrê   N©rf   rg   rh   rï   rX   rX   rX   rY   ÚInitInheritEnum¨  s   rø   c                   @   s   e Zd ZdZdZdZdZdS ©z6TestAutoValue.test_init_only_inherit.<locals>.InitEnumrÞ   rë   rì   rí   N©rf   rg   rh   r¾   rà   rá   râ   rX   rX   rX   rY   rñ   «  s   rñ   rm   rí   c                   @   s   e Zd ZdZdS )zBTestAutoValue.test_init_only_inherit.<locals>.InitInheritValueEnumrê   Nr÷   rX   rX   rX   rY   ÚInitInheritValueEnum´  s   rû   c                   @   s   e Zd ZdZdZdZdZdS rù   rú   rX   rX   rX   rY   rñ   ·  s   c                   @   s   e Zd ZdZdZdZdZdS )z9TestAutoValue.test_init_only_inherit.<locals>.InitIntEnumrÞ   rë   rì   rí   Nrú   rX   rX   rX   rY   rò   ¿  s   rò   c                   @   s   e Zd ZdZdS )zBTestAutoValue.test_init_only_inherit.<locals>.InitInheritValueFlagrê   Nr÷   rX   rX   rX   rY   ÚInitInheritValueFlagÇ  s   rü   c                   @   s   e Zd ZdZdZdZdZdS )z6TestAutoValue.test_init_only_inherit.<locals>.InitFlagrÞ   rë   rì   rí   Nrú   rX   rX   rX   rY   ró   Ê  s   ró   ru   c                   @   s   e Zd ZdZdZdZdZdS )z9TestAutoValue.test_init_only_inherit.<locals>.InitIntFlagrÞ   rë   rì   rí   Nrú   rX   rX   rX   rY   rô   Ò  s   rô   )r   rç   râ   rè   rõ   Úintr   )r`   rø   rñ   rû   rò   rü   ró   rô   rX   rX   rY   Útest_init_only_inherit¦  s$    z$TestAutoValue.test_init_only_inheritc                 C   sd  G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ G dd„ dtƒ}|  |jd¡ |  |jjd¡ G dd	„ d	tƒ}|  |jjd
¡ |  |jjd¡ G dd„ dtƒ}|  |jd
¡ |  |jjd¡ G dd„ dt	t ƒ}|  |j
jd¡ |  |jjd
¡ |  |jjd¡ |  |jjd¡ G dd„ dt	tƒ}|  |j
jd
¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s*   e Zd ZdZdd„ Zeƒ Zeƒ Zeƒ ZdS )z7TestAutoValue.test_new_only_final.<locals>.NewFinalEnumrÞ   c                 S   s   t  | ¡}||_d|_|S )NÚNFE1©ÚobjectÚ__new__Ú_value_Úproof©Úclsrè   r%   rX   rX   rY   r  Þ  s    
z?TestAutoValue.test_new_only_final.<locals>.NewFinalEnum.__new__N©	rf   rg   rh   r¾   r  r"   rà   rá   râ   rX   rX   rX   rY   ÚNewFinalEnumÜ  s
   r  rm   rÿ   c                   @   s*   e Zd ZdZdd„ Zeƒ Zeƒ Zeƒ ZdS )z:TestAutoValue.test_new_only_final.<locals>.NewFinalIntEnumrÞ   c                 S   s   t  | |¡}||_d|_|S )NÚNFE2©rý   r  r  r  r  rX   rX   rY   r  ë  s    zBTestAutoValue.test_new_only_final.<locals>.NewFinalIntEnum.__new__Nr  rX   rX   rX   rY   ÚNewFinalIntEnumé  s
   r  r	  c                   @   s*   e Zd ZdZdd„ Zeƒ Zeƒ Zeƒ ZdS )z7TestAutoValue.test_new_only_final.<locals>.NewFinalFlagrÞ   c                 S   s   t  | ¡}||_d|_|S )NÚNFE3r   r  rX   rX   rY   r  ø  s    
z?TestAutoValue.test_new_only_final.<locals>.NewFinalFlag.__new__Nr  rX   rX   rX   rY   ÚNewFinalFlagö  s
   r  ru   r  c                   @   s*   e Zd ZdZdd„ Zeƒ Zeƒ Zeƒ ZdS )z:TestAutoValue.test_new_only_final.<locals>.NewFinalIntFlagrÞ   c                 S   s   t  | |¡}||_d|_|S )NÚNFE4r
  r  rX   rX   rY   r    s    zBTestAutoValue.test_new_only_final.<locals>.NewFinalIntFlag.__new__Nr  rX   rX   rX   rY   ÚNewFinalIntFlag  s
   r  r  c                   @   s.   e Zd ZdZdd„ ZejZdZdZdZ	dZ
dS )	z:TestAutoValue.test_new_only_final.<locals>.NewFinalStrEnumú AllReset Bright FG_Cyan BG_Blackc                 S   s*   d| }t  | |¡}||_||_||_|S ©Nz[%sm©Ústrr  r  Úcoderõ   ©r  rè   r  rõ   Ú	str_valuer§   rX   rX   rY   r    s    zBTestAutoValue.test_new_only_final.<locals>.NewFinalStrEnum.__new__©Ú0z!reset all (colors and brightness)©Ú1úbright lights!©Ú36Úcyan©Ú40ÚblackN©rf   rg   rh   r¾   r  r  Ú__str__ÚAllResetÚBrightÚFG_CyanÚBG_BlackrX   rX   rX   rY   ÚNewFinalStrEnum  s   r(  r  r  c                   @   s.   e Zd ZdZdd„ ZejZdZdZdZ	dZ
dS )	z:TestAutoValue.test_new_only_final.<locals>.NewFinalStrFlagr  c                 S   s*   d| }t  | |¡}||_||_||_|S r  r  r  rX   rX   rY   r  +  s    zBTestAutoValue.test_new_only_final.<locals>.NewFinalStrFlag.__new__r  r  r  r  Nr"  rX   rX   rX   rY   ÚNewFinalStrFlag'  s   r)  rÚ   )r   rç   râ   rè   rá   r  r   r   r   r  r&  r'  r$  r  r%  rõ   )r`   r  r  r  r  r(  r)  rX   rX   rY   Útest_new_only_finalÚ  s,    



z!TestAutoValue.test_new_only_finalc                 C   sä   G dd„ dt ƒ}G dd„ d|ƒ}|  |jjd¡ |  |jjd¡ G dd„ dt|ƒ}|  |jd¡ |  |jjd¡ G d	d
„ d
tƒ}G dd„ d|ƒ}|  |jjd¡ |  |jjd¡ G dd„ dt|ƒ}|  |jd¡ |  |jjd¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z=TestAutoValue.test_new_only_inherited.<locals>.NewInheritEnumc                 S   s:   | j tu rt | |d ¡}n
t | ¡}|d |_d|_|S ©Nrl   ÚNIE©Ú_member_type_rý   r  r  r  r  r  rX   rX   rY   r  A  s    


zETestAutoValue.test_new_only_inherited.<locals>.NewInheritEnum.__new__N©rf   rg   rh   r  rX   rX   rX   rY   ÚNewInheritEnum@  s   r0  c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z;TestAutoValue.test_new_only_inherited.<locals>.NewFinalEnumrÞ   Nrß   rX   rX   rX   rY   r  J  s   r  é   r,  c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z>TestAutoValue.test_new_only_inherited.<locals>.NewFinalIntEnumrÞ   Nrß   rX   rX   rX   rY   r  R  s   r  c                   @   s   e Zd Zdd„ ZdS )z=TestAutoValue.test_new_only_inherited.<locals>.NewInheritFlagc                 S   s:   | j tu rt | |d ¡}n
t | ¡}|d |_d|_|S r+  r-  r  rX   rX   rY   r  [  s    


zETestAutoValue.test_new_only_inherited.<locals>.NewInheritFlag.__new__Nr/  rX   rX   rX   rY   ÚNewInheritFlagZ  s   r2  c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z;TestAutoValue.test_new_only_inherited.<locals>.NewFinalFlagrÞ   Nrß   rX   rX   rX   rY   r  d  s   r  rÚ   c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z>TestAutoValue.test_new_only_inherited.<locals>.NewFinalIntFlagrÞ   Nrß   rX   rX   rX   rY   r  l  s   r  )r   rç   râ   rè   rá   r  rý   r   )r`   r0  r  r  r2  r  r  rX   rX   rY   Útest_new_only_inherited>  s    

z%TestAutoValue.test_new_only_inheritedc                 C   s   G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ G dd„ dtƒ}|  |jd¡ |  |jjd¡ |  |jjd¡ G d	d
„ d
tƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ G dd„ dt	ƒ}|  |jd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s(   e Zd ZdZdZdd„ ZdZdZdZdS )	z5TestAutoValue.test_init_new_only.<locals>.InitNewEnumrê   rÞ   c                 W   s   t  | ¡}||_d|_|S )NÚINE1r   ©r  rè   ra   r%   rX   rX   rY   r  y  s    
z=TestAutoValue.test_init_new_only.<locals>.InitNewEnum.__new__rë   rì   rí   N©	rf   rg   rh   rï   r¾   r  rà   rá   râ   rX   rX   rX   rY   ÚInitNewEnumv  s   r7  rm   rí   r4  c                   @   s(   e Zd ZdZdZdd„ ZdZdZdZdS )	z8TestAutoValue.test_init_new_only.<locals>.InitNewIntEnumrê   rÞ   c                 W   s   t  | |¡}||_d|_|S )NÚINE2r
  r5  rX   rX   rY   r  ˆ  s    z@TestAutoValue.test_init_new_only.<locals>.InitNewIntEnum.__new__rë   rì   rí   Nr6  rX   rX   rX   rY   ÚInitNewIntEnum…  s   r9  r8  c                   @   s(   e Zd ZdZdZdd„ ZdZdZdZdS )	z5TestAutoValue.test_init_new_only.<locals>.InitNewFlagrê   rÞ   c                 W   s   t  | ¡}||_d|_|S )NÚINE3r   r5  rX   rX   rY   r  —  s    
z=TestAutoValue.test_init_new_only.<locals>.InitNewFlag.__new__rë   rì   rí   Nr6  rX   rX   rX   rY   ÚInitNewFlag”  s   r;  ru   r:  c                   @   s(   e Zd ZdZdZdd„ ZdZdZdZdS )	z8TestAutoValue.test_init_new_only.<locals>.InitNewIntFlagrê   rÞ   c                 W   s   t  | |¡}||_d|_|S )NÚINE4r
  r5  rX   rX   rY   r  ¦  s    z@TestAutoValue.test_init_new_only.<locals>.InitNewIntFlag.__new__rë   rì   rí   Nr6  rX   rX   rX   rY   ÚInitNewIntFlag£  s   r=  r<  )
r   rç   râ   rè   rõ   rá   r  r   r   r   )r`   r7  r9  r;  r=  rX   rX   rY   Útest_init_new_onlyt  s     z TestAutoValue.test_init_new_onlyc           	      C   sD  G dd„ dt ƒ}G dd„ d|ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ G dd	„ d	t ƒ}G d
d„ dt|ƒ}|  |jd¡ |  |jjd¡ |  |jjd¡ G dd„ dtƒ}G dd„ d|ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ G dd„ dttƒ}G dd„ d|ƒ}|  |jd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s   e Zd ZdZdd„ ZdS )z4TestAutoValue.test_init_new_inherit.<locals>.InitNewrê   c                 W   s   t  | ¡}||_d|_|S ©NÚINr   r5  rX   rX   rY   r  ¶  s    
z<TestAutoValue.test_init_new_inherit.<locals>.InitNew.__new__N©rf   rg   rh   rï   r  rX   rX   rX   rY   ÚInitNew´  s   rB  c                   @   s   e Zd ZdZdZdZdZdS )z8TestAutoValue.test_init_new_inherit.<locals>.InitNewEnumrÞ   rë   rì   rí   Nrú   rX   rX   rX   rY   r7  ¼  s   r7  rm   rí   r@  c                   @   s   e Zd ZdZdd„ ZdS )z7TestAutoValue.test_init_new_inherit.<locals>.InitNewIntrê   c                 W   s   t  | |¡}||_d|_|S r?  r
  r5  rX   rX   rY   r  Ç  s    z?TestAutoValue.test_init_new_inherit.<locals>.InitNewInt.__new__NrA  rX   rX   rX   rY   Ú
InitNewIntÅ  s   rC  c                   @   s   e Zd ZdZdZdZdZdS )z;TestAutoValue.test_init_new_inherit.<locals>.InitNewIntEnumrÞ   rë   rì   rí   Nrú   rX   rX   rX   rY   r9  Í  s   r9  c                   @   s   e Zd ZdZdd„ ZdS )z<TestAutoValue.test_init_new_inherit.<locals>.InitNewFlagBaserê   c                 W   s   t  | ¡}||_d|_|S r?  r   r5  rX   rX   rY   r  Ø  s    
zDTestAutoValue.test_init_new_inherit.<locals>.InitNewFlagBase.__new__NrA  rX   rX   rX   rY   ÚInitNewFlagBaseÖ  s   rD  c                   @   s   e Zd ZdZdZdZdZdS )z8TestAutoValue.test_init_new_inherit.<locals>.InitNewFlagrÞ   rë   rì   rí   Nrú   rX   rX   rX   rY   r;  Þ  s   r;  ru   c                   @   s   e Zd ZdZdd„ ZdS )z?TestAutoValue.test_init_new_inherit.<locals>.InitNewIntFlagBaserê   c                 W   s   t  | |¡}||_d|_|S r?  r
  r5  rX   rX   rY   r  é  s    zGTestAutoValue.test_init_new_inherit.<locals>.InitNewIntFlagBase.__new__NrA  rX   rX   rX   rY   ÚInitNewIntFlagBaseç  s   rE  c                   @   s   e Zd ZdZdZdZdZdS )z;TestAutoValue.test_init_new_inherit.<locals>.InitNewIntFlagrÞ   rë   rì   rí   Nrú   rX   rX   rX   rY   r=  ï  s   r=  )	r   rç   râ   rè   rõ   rá   r  rý   r   )	r`   rB  r7  rC  r9  rD  r;  rE  r=  rX   rX   rY   Útest_init_new_inherit²  s(    z#TestAutoValue.test_init_new_inheritN)
rf   rg   rh   ré   rö   rþ   r*  r3  r>  rF  rX   rX   rX   rY   rÝ   W  s   /4d6>rÝ   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestHelpersc                 C   sN   G dd„ dƒ}dD ]6}|ƒ }|   t |¡¡ t||dƒ |  t |¡¡ qd S )Nc                   @   s   e Zd ZdS )z+TestHelpers.test_is_descriptor.<locals>.fooN©rf   rg   rh   rX   rX   rX   rY   Úfooý  s   rI  )rº   Ú__set__Ú
__delete__rk   )ÚassertFalserS   Zis_descriptorÚsetattrÚ
assertTrue)r`   rI  Úattrr§   rX   rX   rY   Útest_is_descriptorü  s    zTestHelpers.test_is_descriptorc                 C   s8   dD ]}|   t |¡¡ qdD ]}|  t |¡¡ qd S )N)Ú_a_Z_aa_)ÚaÚa_Ú_aÚ__aÚa__Ú__a__Ú_a__Ú__a_Ú_Ú__Ú___Ú____Ú_____)rN  rS   Ú	is_sunderrL  ©r`   ÚsrX   rX   rY   Útest_is_sunder  s    zTestHelpers.test_is_sunderc                 C   s8   dD ]}|   t |¡¡ qdD ]}|  t |¡¡ qd S )N)rW  Z__aa__)rR  rS  rT  rU  rV  rQ  rX  rY  rZ  r[  r\  r]  r^  )rN  rS   Z	is_dunderrL  r`  rX   rX   rY   Útest_is_dunder  s    zTestHelpers.test_is_dunderc                    s  d‡ fdd„	}dt tdƒfdt tdƒfdtddfdtddfd	td
dfdtddfdtddfdtddfdtddfdt	dfdt
dfdtddfdtddfdtddfdtddfdtddfdtdfdtddfdtddffD ]}||Ž  qÎtrî|dtddƒ tƒ }d}t||ƒ}d|_ˆ  |jdd ¡ d S )Nc              
      s¸   |d u r<t ƒ }||ƒ}| |_ˆ  |j|d|j| ||f ¡ nx| }t ƒ }|||ƒ}||_ˆ  |j|d| |j||j|f ¡ t ƒ }|}|||ƒ}| |_ˆ  |j|d||j| |j|f ¡ d S ©Nz%s %r -> %r != %rzforward: %r %s %r -> %r != %rzreversed: %r %s %r -> %r != %r)r"   rè   rç   rf   )ÚfirstÚopÚfinalÚsecondÚleftrè   ÚrightrŒ   rX   rY   Útester  s*    
ÿ

ÿ

ÿz%TestHelpers.test_auto.<locals>.testerrk   éýÿÿÿrm   rl   é   rv   é1   çrÇqÇ@é	   r1  é   é   éûÿÿÿéüÿÿÿé    é   é
   éøÿÿÿrR  ÚabÚbÚaaaé   ÚeggsúI see 17 %s!)N)Ú_abs_rA   Ú_add_Ú
_floordiv_Ú	_truediv_Ú_mod_Ú_lshift_Ú_rshift_Ú_mul_Ú_neg_Ú_pos_Ú_pow_Ú_sub_Ú_or_Ú_xor_Ú_and_Ú_inv_r-   Ú_div_r"   rè   rç   )r`   rk  ra   ri  rj  rè   rX   rŒ   rY   Ú	test_auto  s:    













í

zTestHelpers.test_autoc                    sR  g ‰ d‡ fdd„	}dt tdƒfdt tdƒfdtddfdtddfd	td
dfdtddfdtddfdtddfdtddfdt	dfdt
dfdtddfdtddfdtddfdtddfdtddfdtdfdtddfdtddffD ]}||Ž  qÒtrò|dtddƒ tdƒ}d}t||ƒ}|dd kr$ˆ  d| ¡ ˆ rNtƒ  ˆ D ]}t|ƒ q4|  d¡ d S )Nc           	         s¶   |d u rBt | ƒ}t ||ƒƒ}|j|kr²ˆ  d|j| |j|f ¡ npt | ƒ}|}|||ƒ}||krzˆ  d| |j|||f ¡ | }t |ƒ}|||ƒ}||kr²ˆ  d||j| ||f ¡ d S rd  )r   rè   rš   rf   )	re  rf  rg  rh  ZprimaryZ	secondaryri  rj  rè   ©ÚerrorsrX   rY   rk  K  s*    
ÿ
ÿ
ÿz)TestHelpers.test_constant.<locals>.testerrk   rl  rm   rl   rm  rv   rn  ro  rp  r1  rq  rr  rs  rt  ru  rv  rw  rx  rR  ry  rz  r{  r|  r~  r}  z'I see 17 eggs!' != %rF)N)r  rA   r€  r  r‚  rƒ  r„  r…  r†  r‡  rˆ  r‰  rŠ  r‹  rŒ  r  rŽ  r-   r  r   rš   ÚprintrN  )r`   rk  ra   ri  rj  rè   ÚerrorrX   r‘  rY   Útest_constantI  sF    













í

zTestHelpers.test_constantN)rf   rg   rh   rP  rb  rc  r  r•  rX   rX   rX   rY   rG  ù  s
   	5rG  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestEnumTypec                 C   sÂ   G dd„ dt ƒ}G dd„ d|tƒ}|  tdt|dd¡ |  tdt|d¡ |  td	t|jdd¡ |  td
t|jd¡ |  |jj	d¡ |  |jj	d¡ |  |j
ddg¡ t|ddƒ |  |j
d¡ d S )Nc                   @   s   e Zd Zedd„ ƒZdS )z+TestEnumType.test_immutability.<locals>.Hahc                 S   s   dd„ | D ƒS )Nc                 S   s   g | ]
}|j ‘qS rX   ©rè   ©Ú.0ÚmrX   rX   rY   Ú
<listcomp>Ž  ó    zJTestEnumType.test_immutability.<locals>.Hah.all_values.<locals>.<listcomp>rX   ©r  rX   rX   rY   Ú
all_valuesŒ  s    z6TestEnumType.test_immutability.<locals>.Hah.all_valuesN)rf   rg   rh   r±   rž  rX   rX   rX   rY   ÚHah‹  s   rŸ  c                   @   s   e Zd ZdZdZdS )z+TestEnumType.test_immutability.<locals>.Huhrk   rl   N©rf   rg   rh   ÚoneÚtworX   rX   rX   rY   ÚHuh  s   r£  zcannot rebind propertyrè   Zboomzcannot delete propertyzcannot set attributezcannot delete attributerk   rl   rž  éc   )r  r   r\   ÚAttributeErrorrM  Údelattrr¡  r¢  rç   rè   rž  )r`   rŸ  r£  rX   rX   rY   Útest_immutabilityŠ  s    zTestEnumType.test_immutabilityc                    s€   G dd„ dt ƒ}G dd„ d|tƒ‰ |  tˆ ƒd¡ |  tˆ ƒˆ jˆ jˆ jˆ jˆ j	g¡ |  
td‡ fdd„¡ |  ˆ jj	d	¡ d S )
Nc                   @   s    e Zd Zdd„ Zedd„ ƒZdS )z1TestEnumType.test_enum_shadow_base.<locals>.hohumc                 S   s
   | j d S )úcyanize a colorr  r—  rŒ   rX   rX   rY   r  ž  s    z6TestEnumType.test_enum_shadow_base.<locals>.hohum.cyanc                 S   s
   d| j  S )Nzazure ©ÚnamerŒ   rX   rX   rY   Úazure¡  s    z7TestEnumType.test_enum_shadow_base.<locals>.hohum.azureN)rf   rg   rh   r  Úpropertyr«  rX   rX   rX   rY   Úhohum  s   r­  c                   @   s    e Zd ZdZdZdZdZdZdS )z1TestEnumType.test_enum_shadow_base.<locals>.Colorrk   rl   rm   ru   rv   N)rf   rg   rh   r¿   rÀ   rÁ   r  r«  rX   rX   rX   rY   rÂ   ¤  s
   rÂ   rv   zno attribute .cyan.c                      s   ˆ j jS r²   )rÁ   r  rX   ©rÂ   rX   rY   Ú<lambda>¬  rœ  z4TestEnumType.test_enum_shadow_base.<locals>.<lambda>z	azure red)r  r   rç   ÚlenÚlistr¿   rÀ   rÁ   r  r«  r\   r¥  )r`   r­  rX   r®  rY   Útest_enum_shadow_baseœ  s    $z"TestEnumType.test_enum_shadow_baseN)rf   rg   rh   r§  r²  rX   rX   rX   rY   r–  ˆ  s   r–  c                   @   s   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z d=d>„ Z!d?d@„ Z"dAdB„ Z#dCdD„ Z$dEdF„ Z%dGdH„ Z&dIdJ„ Z'dKdL„ Z(dMdN„ Z)dOdP„ Z*dQdR„ Z+dSdT„ Z,dUdV„ Z-dWdX„ Z.dYdZ„ Z/d[d\„ Z0d]d^„ Z1d_d`„ Z2dadb„ Z3dcdd„ Z4dedf„ Z5dgdh„ Z6didj„ Z7dkdl„ Z8dmdn„ Z9dodp„ Z:dqdr„ Z;dsdt„ Z<dudv„ Z=dwdx„ Z>dydz„ Z?d{d|„ Z@d}d~„ ZAdd€„ ZBdd‚„ ZCdƒd„„ ZDd…d†„ ZEd‡dˆ„ ZFd‰dŠ„ ZGd‹dŒ„ ZHddŽ„ ZIdd„ ZJd‘d’„ ZKd“d”„ ZLd•d–„ ZMd—d˜„ ZNd™dš„ ZOd›dœ„ ZPddž„ ZQdŸd „ ZRd¡d¢„ ZSd£d¤„ ZTd¥d¦„ ZUd§d¨„ ZVd©dª„ ZWd«d¬„ ZXd­d®„ ZYd¯d°„ ZZd±d²„ Z[d³d´„ Z\dµd¶„ Z]d·d¸„ Z^d¹dº„ Z_d»d¼„ Z`d½d¾„ Zad¿dÀ„ ZbdÁdÂ„ ZcdÃdÄ„ ZddÅdÆ„ ZedÇdÈ„ ZfdÉdÊ„ ZgdËdÌ„ ZhdÍdÎ„ ZidÏdÐ„ ZjdÑdÒ„ ZkdÓdÔ„ ZldÕdÖ„ Zmd×dØ„ ZndÙZodÚZpdÛZqdÜdÝ„ ZrdÞdß„ Zsdàdá„ Ztdâdã„ Zudädå„ Zvdædç„ Zwdèdé„ Zxdêdë„ Zydìdí„ Zzdîdï„ Z{dðdñ„ Z|dòdó„ Z}dôdõ„ Z~död÷„ Zdødù„ Z€dúdû„ Zdüdý„ Z‚dþdÿ„ Zƒd d„ Z„dd„ Z…dd„ Z†dd„ Z‡dd	„ Zˆd
d„ Z‰dd„ ZŠdd„ Z‹dd„ ZŒdd„ Zdd„ ZŽdd„ Zdd„ Zdd„ Z‘dd„ Z’dd„ Z“d d!„ Z”d"d#„ Z•d$d%„ Z–d&d'„ Z—d(d)„ Z˜d*d+„ Z™d,d-„ Zšd.d/„ Z›d0d1„ Zœd2d3„ Zd4d5„ Zžd6d7„ ZŸd8d9„ Z d:d;„ Z¡d<d=„ Z¢d>d?„ Z£d@dA„ Z¤e¥r®dBdC„ Z¦dDdE„ Z§dFdG„ Z¨dHdI„ Z©dJdK„ ZªdLdM„ Z«dNdO„ Z¬dPdQ„ Z­dRdS„ Z®dTdQ„ Z­dUdV„ Z¯dWS (X  ÚTestEnumc                 C   sð   G dd„ dt ƒ}|| _G dd„ dttƒ}|| _G dd„ dtƒ}|| _G dd„ dttƒ}|| _d	d
l	m
} G dd„ d|tƒ}|| _G dd„ dtt ƒ}|| _G dd„ dtt ƒ}|| _G dd„ dtt ƒ}	|	| _d	d
l	m
} G dd„ d|t ƒ}
|
| _d S )Nc                   @   s   e Zd ZdZdZdZdZdS )zTestEnum.setUp.<locals>.Seasonrk   rl   rm   ru   N)rf   rg   rh   ÚSPRINGÚSUMMERÚAUTUMNÚWINTERrX   rX   rX   rY   ÚSeason³  s   r¸  c                   @   s   e Zd ZdZdZde ZdS )z%TestEnum.setUp.<locals>.ReprKonstantsçB‡
¿@çJØMû!	@rl   N©rf   rg   rh   ÚEÚPIÚTAUrX   rX   rX   rY   ÚReprKonstantsº  s   r¿  c                   @   s    e Zd ZdZdZdZdZdZdS )z"TestEnum.setUp.<locals>.ReprGradesrv   ru   rm   rl   r   N©rf   rg   rh   ÚAÚBÚCÚDÚFrX   rX   rX   rY   Ú
ReprGradesÀ  s
   rÆ  c                   @   s   e Zd ZdZdZdZdZdS )z'TestEnum.setUp.<locals>.ReprDirectionalÚeastÚwestÚnorthÚsouthN©rf   rg   rh   ÚEASTÚWESTÚNORTHÚSOUTHrX   rX   rX   rY   ÚReprDirectionalÈ  s   rÐ  r   )Údatec                   @   s   e Zd ZdZdZdS )z#TestEnum.setUp.<locals>.ReprHoliday©éÝ  rk   rk   ©rÓ  rm   rw   N©rf   rg   rh   ZNEW_YEARÚIDES_OF_MARCHrX   rX   rX   rY   ÚReprHolidayÐ  s   r×  c                   @   s   e Zd ZdZdZde ZdS )z!TestEnum.setUp.<locals>.Konstantsr¹  rº  rl   Nr»  rX   rX   rX   rY   Ú	KonstantsÕ  s   rØ  c                   @   s    e Zd ZdZdZdZdZdZdS )zTestEnum.setUp.<locals>.Gradesrv   ru   rm   rl   r   NrÀ  rX   rX   rX   rY   ÚGradesÛ  s
   rÙ  c                   @   s   e Zd ZdZdZdZdZdS )z#TestEnum.setUp.<locals>.DirectionalrÇ  rÈ  rÉ  rÊ  NrË  rX   rX   rX   rY   ÚDirectionalã  s   rÚ  c                   @   s   e Zd ZdZdZdS )zTestEnum.setUp.<locals>.HolidayrÒ  rÔ  NrÕ  rX   rX   rX   rY   ÚHolidayë  s   rÛ  )r   r¸  Úfloatr   r¿  r   rÆ  r  rÐ  ÚdatetimerÑ  r×  rØ  rý   rÙ  rÚ  rÛ  )r`   r¸  r¿  rÆ  rÐ  rÑ  r×  rØ  rÙ  rÚ  rÛ  rX   rX   rY   ÚsetUp²  s(    zTestEnum.setUpc                    sx   G dd„ dt ƒ‰ G ‡ fdd„dtƒ}|  t|ƒ|jg¡ |  |jjd¡ d|j_|  |jjd¡ |  |jjd d¡ d S )Nc                   @   s*   e Zd ZdZddd„Zdd„ Zdd„ ZdS )	z*TestEnum.test_set_name.<locals>.DescriptorNc                 S   s   |d u r| S |j | j S d S r²   ©Ú__dict__rª  ©r`   r¸   Zowner_classrX   rX   rY   rº   ó  s    z2TestEnum.test_set_name.<locals>.Descriptor.__get__c                 S   s   ||j | j< d S r²   rß  ©r`   r¸   rè   rX   rX   rY   rJ  ø  s    z2TestEnum.test_set_name.<locals>.Descriptor.__set__c                 S   s
   || _ d S r²   r©  ©r`   Úownerrª  rX   rX   rY   Ú__set_name__ú  s    z7TestEnum.test_set_name.<locals>.Descriptor.__set_name__)N©rf   rg   rh   rª  rº   rJ  rå  rX   rX   rX   rY   Ú
Descriptorñ  s   
rç  c                       s   e Zd ZdZ” ƒ ZdS )z&TestEnum.test_set_name.<locals>.AnEnumr¡  N©rf   rg   rh   rà   r¢  rX   ©rç  rX   rY   ÚAnEnumý  s   rê  r¢  Úthree©r  r   rç   r±  rà   r¢  rª  rà  ©r`   rê  rX   ré  rY   Útest_set_nameð  s    zTestEnum.test_set_namec                 C   sd   G dd„ dt ƒ}|  t|ƒd¡ |  |jd¡ |  t|jt ƒ¡ |  |jd¡ |  t|jt ƒ¡ d S )Nc                   @   s   e Zd ZdZdZdS )z,TestEnum.test_private_names.<locals>.PrivateÚRadarÚHoolihanN©rf   rg   rh   Ú_Private__corporalÚ_Private__major_rX   rX   rX   rY   ÚPrivate  s   rô  r   rï  rð  ©r   rç   r°  rò  rL  Ú
isinstanceró  ©r`   rô  rX   rX   rY   Útest_private_names  s    zTestEnum.test_private_namesc                 C   s’   G dd„ dt ƒ}|j}|  t|ƒ|u t|ƒ¡ |  |j|j|j|jfd¡ |j	}|  |j|j|j|jfd¡ |j
}|  |j|j|j|jfd¡ d S )Nc                   @   s&   e Zd ZdZddd„ZdZdZdZdS )	z,TestEnum.test_new_with_keywords.<locals>.HuhúPLAIN BOLD_ITALIC HIGHLIGHTNc                 S   sB   t | jƒ}t | |¡}|r&|d u r&|}||_||_||_||_|S r²   )r°  Ú__members__rý   r  ÚopenÚcloser¶   r  ©r  Ú	docstringrû  rü  rè   r%   rX   rX   rY   r    s    
z4TestEnum.test_new_with_keywords.<locals>.Huh.__new__Únormal©ú***really super important***ú***©úplease ==take notice==ú==r  )NN©rf   rg   rh   Ú	__order__r  ÚPLAINÚBOLD_ITALICÚ	HIGHLIGHTrX   rX   rX   rY   r£    s
   

r£  ©r   rÿ  NN©rk   r  r  r  ©rl   r  r  r  )r   r  rN  Útyperç   rè   r¶   rû  rü  r	  r
  ©r`   r£  ÚpZbiÚhrX   rX   rY   Útest_new_with_keywords  s"    þþþzTestEnum.test_new_with_keywordsc                 C   s(   G dd„ dt ƒ}|  t|jƒtu ¡ d S )Nc                   @   s   e Zd ZdZdZdZdZdS )z@TestEnum.test_members_is_ordereddict_if_ordered.<locals>.Orderedúfirst second thirdZbippityZboppityZbooN)rf   rg   rh   r  re  rh  ÚthirdrX   rX   rX   rY   ÚOrdered3  s   r  ©r   rN  r  rú  r7   )r`   r  rX   rX   rY   Ú&test_members_is_ordereddict_if_ordered2  s    z/TestEnum.test_members_is_ordereddict_if_orderedc                 C   s(   G dd„ dt ƒ}|  t|jƒtu ¡ d S )Nc                   @   s   e Zd ZdZdZdS )zFTestEnum.test_members_is_ordereddict_if_not_ordered.<locals>.UnorderedÚthatÚthoseN)rf   rg   rh   ÚthisÚtheserX   rX   rX   rY   Ú	Unordered;  s   r  r  )r`   r  rX   rX   rY   Ú*test_members_is_ordereddict_if_not_ordered:  s    z3TestEnum.test_members_is_ordereddict_if_not_orderedc                 C   s    | j }|  ||jƒ|ju ¡ d S r²   )r¸  rN  r·  ©r`   r¸  rX   rX   rY   Útest_enum_in_enum_out@  s    zTestEnum.test_enum_in_enum_outc                 C   s   | j }|  |jjd¡ d S ©Nrk   )r¸  rç   r´  rè   r  rX   rX   rY   Útest_enum_valueD  s    zTestEnum.test_enum_valuec                 C   s   |   tjjd¡ d S ©Nrl   )rç   rr   rp   rè   rŒ   rX   rX   rY   Útest_intenum_valueH  s    zTestEnum.test_intenum_valuec                 C   s  | j }t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|j|jg|¡ td 	¡ ƒD ]®\}}|d7 }||ƒ}|  |t
||ƒ¡ |  |j|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ |  t||ƒ¡ |  t|ƒd| ¡ |  t|ƒd||f ¡ q\d S )Nru   úSPRING SUMMER AUTUMN WINTERrk   zSeason.z<Season.%s: %s>)r¸  r±  rç   r°  r´  rµ  r¶  r·  Ú	enumerateÚsplitr]   rè   ÚassertNotEqualrª  rN  r  rö  r  Úrepr)r`   r¸  ÚlstÚiZseasonÚerX   rX   rY   Ú	test_enumK  s,    ÿ
þzTestEnum.test_enumc                 C   s^   t dddd}t dddd}t dddƒ}|  ||u¡ |  ||¡ |  ||¡ |  ||¡ d S )Nrk   rl   rp  )rë  )r#   rN  rç   r'  )r`   Úe1Úe2Ze3rX   rX   rY   Útest_enum_helperb  s    zTestEnum.test_enum_helperc                 C   sˆ   G dd„ dt ƒ}|  |jjd¡ |  |jjd ¡ |  |jjd ¡ |  |jj|j¡ |  |jjd ¡ |  |jjd ¡ |  |jj|j¡ d S )Nc                   @   s:   e Zd ZdZdd„ Zddd„Zeƒ ZeeƒZedeƒZ	dS )z)TestEnum.test_enum_in_enum.<locals>.LevelzDATA_CHECK DESIGN_CHECK ALERTc                 _   s   t  | ¡}t| ƒd |_|S r   )r  r  r°  r  )r  ra   rb   r%   rX   rX   rY   r  p  s    
z1TestEnum.test_enum_in_enum.<locals>.Level.__new__Nc                 S   s`   t | jj ¡ ƒ| _g | _| jD ]}|j | ¡ q|r@| j|j pBd | _|rV| j|j pXd | _	d S r²   )
r±  re   Ú_member_map_ÚvaluesZlower_priority_levelsZgreater_priority_levelsrš   rª  ÚprerequisiteÚ	dependent)r`   Zprereqr3  r%   rX   rX   rY   r_   u  s    
z2TestEnum.test_enum_in_enum.<locals>.Level.__init__)NN)
rf   rg   rh   r¾   r  r_   r#   Ú
DATA_CHECKÚDESIGN_CHECKÚALERTrX   rX   rX   rY   ÚLevelm  s   
r7  rk   )r   rç   r4  rè   r2  r3  r5  r6  )r`   r7  rX   rX   rY   Útest_enum_in_enumk  s    zTestEnum.test_enum_in_enumc                 C   s^   | j }|  |jjd¡ |  |jjd¡ dd„ }dd„ }|  t||jd¡ |  t||jd¡ d S )	Nr´  rk   c                 S   s
   || _ d S r²   r©  ©r§   Ú	new_valuerX   rX   rY   Úset_name  s    z*TestEnum.test_value_name.<locals>.set_namec                 S   s
   || _ d S r²   r—  r9  rX   rX   rY   Ú	set_value’  s    z+TestEnum.test_value_name.<locals>.set_valueZinviernorl   )r¸  rç   r´  rª  rè   ÚassertRaisesr¥  )r`   r¸  r;  r<  rX   rX   rY   Útest_value_nameŒ  s    zTestEnum.test_value_namec                 C   sj   G dd„ dt ƒ}|  t|dƒ¡ |`|  t|dƒ¡ |  tt|d¡ |  tt|d¡ |  tt|jd¡ d S )Nc                   @   s$   e Zd ZdZdZdZdZdd„ ZdS )z0TestEnum.test_attribute_deletion.<locals>.Seasonrk   rl   rm   ru   c                 S   s   d S r²   rX   r  rX   rX   rY   Úspamž  s    z5TestEnum.test_attribute_deletion.<locals>.Season.spamN)rf   rg   rh   r´  rµ  r¶  r·  r?  rX   rX   rX   rY   r¸  ˜  s
   r¸  r?  r´  ZDRYrª  )	r   rN  Úhasattrr?  rL  r=  r¥  r¦  r´  r  rX   rX   rY   Útest_attribute_deletion—  s    	z TestEnum.test_attribute_deletionc                 C   s"   G dd„ dt ƒ}|  t|ƒ¡ d S )Nc                   @   s   e Zd ZdS )z*TestEnum.test_bool_of_class.<locals>.EmptyNrH  rX   rX   rX   rY   ÚEmptyª  s   rB  ©r   rN  Úbool)r`   rB  rX   rX   rY   Útest_bool_of_class©  s    zTestEnum.test_bool_of_classc                 C   s,   G dd„ dt ƒ}|D ]}|  t|ƒ¡ qd S )Nc                   @   s   e Zd ZdZdZdZdS )z+TestEnum.test_bool_of_member.<locals>.Countr   rk   rl   N)rf   rg   rh   Zzeror¡  r¢  rX   rX   rX   rY   ÚCount¯  s   rF  rC  )r`   rF  r%   rX   rX   rY   Útest_bool_of_member®  s    zTestEnum.test_bool_of_memberc                 C   s,   dd„ }dd„ }|   t|¡ |   t|¡ d S )Nc                  S   s   G dd„ dt ƒ} d S )Nc                   @   s   e Zd ZdZdS )zFTestEnum.test_invalid_names.<locals>.create_bad_class_1.<locals>.Wrongrp  N)rf   rg   rh   ÚmrorX   rX   rX   rY   ÚWrong¸  s   rI  rÃ   ©rI  rX   rX   rY   Úcreate_bad_class_1·  s    z7TestEnum.test_invalid_names.<locals>.create_bad_class_1c                  S   s   G dd„ dt ƒ} d S )Nc                   @   s   e Zd ZdZdS )zFTestEnum.test_invalid_names.<locals>.create_bad_class_2.<locals>.Wrongrm   N)rf   rg   rh   Z
_reserved_rX   rX   rX   rY   rI  »  s   rI  rÃ   rJ  rX   rX   rY   Úcreate_bad_class_2º  s    z7TestEnum.test_invalid_names.<locals>.create_bad_class_2©r=  r›   )r`   rK  rL  rX   rX   rY   Útest_invalid_names¶  s    zTestEnum.test_invalid_namesc                 C   s,   G dd„ dt ƒ}|  |j¡ |  |j¡ d S )Nc                   @   s    e Zd ZdZdZdd„ ZeZdS )z!TestEnum.test_bool.<locals>.LogicTFc                 S   s
   t | jƒS r²   )rD  rè   rŒ   rX   rX   rY   Ú__bool__Ä  s    z*TestEnum.test_bool.<locals>.Logic.__bool__N)rf   rg   rh   ÚtrueÚfalserO  Ú__nonzero__rX   rX   rX   rY   ÚLogicÁ  s   rS  )r   rN  rP  rL  rQ  )r`   rS  rX   rX   rY   Ú	test_boolÀ  s    zTestEnum.test_boolc                 C   s  | j }|  d|v ¡ |  |j|v ¡ |  d|v ¡ |dƒ}|  ||v ¡ |  g |v ¡ G dd„ dtƒ}|  |j|v¡ G dd„ dtƒ}|  |j|v ¡ |  ||jƒ|ju ¡ G dd„ dtƒ}|  |j|v ¡ |  d	|v ¡ |  d
ddd	œ|v ¡ |  d
d
i|v ¡ d S )Nr¶  rm   c                   @   s   e Zd ZdZdZdS )z)TestEnum.test_contains.<locals>.OtherEnumrk   rl   Nr   rX   rX   rX   rY   Ú	OtherEnumÓ  s   rU  c                   @   s   e Zd ZdZdZdS )z+TestEnum.test_contains.<locals>.NumericEnumrk   rl   Nr   rX   rX   rX   rY   ÚNumericEnum×  s   rV  c                   @   s$   e Zd Zg d¢ZdZddddœZdS )z%TestEnum.test_contains.<locals>.Wierd©rk   rl   rm   rk   rl   rm   N)rf   rg   rh   r  r  r  rX   rX   rX   rY   ÚWierdÜ  s   rX  rW  rk   rl   )	r¸  rL  rN  r¶  r   r¢  r   rµ  r  )r`   r¸  ÚvalrU  rV  rX  rX   rX   rY   Útest_containsÊ  s"    zTestEnum.test_containsc                    s   ˆ   t‡ fdd„¡ d S )Nc                      s   dˆ j jv S ©NÚtest)r¸  r¶  rX   rŒ   rX   rY   r¯  æ  rœ  z/TestEnum.test_member_contains.<locals>.<lambda>©r=  rÌ   rŒ   rX   rŒ   rY   Útest_member_containså  s    zTestEnum.test_member_containsc                 C   sÊ   | j }|  d |j¡d t|jƒ¡¡ |  d |j¡d t|jƒ¡¡ |  d |j¡d t|jƒ¡¡ |  d |j¡d t|jƒ¡¡ |  d |j¡d t|jƒ¡¡ |  d |j¡d t|jƒ¡¡ d S ©Nú{0}ú{0:}ú{0:20}ú{0:^20}ú{0:>20}ú{0:<20})r¸  rç   Úformatr´  r  r  rX   rX   rY   Útest_format_enumè  s&    ÿÿÿÿÿÿzTestEnum.test_format_enumc                 C   s<   G dd„ dt tƒ}|  t|jƒd¡ |  d |j¡d¡ d S )Nc                   @   s   e Zd ZdZdZdd„ ZdS )z.TestEnum.test_custom_format.<locals>.TestFloatg      ð?g       @c                 S   s   dS )NúTestFloat success!rX   )r`   ÚspecrX   rX   rY   Ú
__format__û  s    z9TestEnum.test_custom_format.<locals>.TestFloat.__format__N)rf   rg   rh   r¡  r¢  rj  rX   rX   rX   rY   Ú	TestFloatø  s   rk  zTestFloat.oner`  rh  )rÜ  r   rç   r  r¡  rf  )r`   rk  rX   rX   rY   Útest_custom_format÷  s    zTestEnum.test_custom_formatc                 C   s<   G dd„ dt tƒ}|  t|jƒd¡ |  d |j¡d¡ d S )Nc                   @   s   e Zd ZdZdZdd„ ZdS )z5TestEnum.test_format_with_custom_str.<locals>.TestIntrk   rl   c                 S   s
   | j d S ©Nrm   r©  rŒ   rX   rX   rY   r#    s    z=TestEnum.test_format_with_custom_str.<locals>.TestInt.__str__N)rf   rg   rh   r¡  r¢  r#  rX   rX   rX   rY   ÚTestInt  s   rn  Z	twotwotwor`  )rý   r   rç   r  r¢  rf  )r`   rn  rX   rX   rY   Útest_format_with_custom_str   s    z$TestEnum.test_format_with_custom_strc                 C   s    |   | |¡| t|ƒ¡¡ d S r²   )rç   rf  r  ©r`   ri  r%   rX   rX   rY   ÚassertFormatIsName	  s    zTestEnum.assertFormatIsNamec                 C   s^   | j }|  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ d S r_  )rÛ  rq  rÖ  )r`   rÛ  rX   rX   rY   Útest_format_enum_date  s    zTestEnum.test_format_enum_datec                 C   s^   | j }|  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ d S r_  )rØ  rq  r¾  )r`   rØ  rX   rX   rY   Útest_format_enum_float  s    zTestEnum.test_format_enum_floatc                 C   s^   | j }|  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ d S r_  )rÙ  rq  rÃ  )r`   rÙ  rX   rX   rY   Útest_format_enum_int  s    zTestEnum.test_format_enum_intc                 C   s^   | j }|  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ d S r_  )rÚ  rq  rÍ  )r`   rÚ  rX   rX   rY   Útest_format_enum_str'  s    zTestEnum.test_format_enum_strc                 C   s   |   | |¡| |j¡¡ d S r²   )rç   rf  rè   rp  rX   rX   rY   ÚassertFormatIsValue0  s    zTestEnum.assertFormatIsValuec                 C   sz   | j }|  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ d S )	Nr`  ra  rb  rc  rd  re  z	{0:%Y %m}z{0:%Y %m %M:00})r×  rv  rÖ  )r`   r×  rX   rX   rY   Útest_format_reprenum_date3  s    z"TestEnum.test_format_reprenum_datec                 C   sˆ   | j }|  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d	|j¡ d S )
Nr`  ra  rb  rc  rd  re  z{0:n}z{0:5.2}z{0:f})r¿  rv  r¾  )r`   r¿  rX   rX   rY   Útest_format_reprenum_float>  s    z#TestEnum.test_format_reprenum_floatc                 C   sˆ   | j }|  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d	|j¡ d S )
Nr`  ra  rb  rc  rd  re  z{0:+}z{0:08X}z{0:b})rÆ  rv  rÃ  )r`   rÆ  rX   rX   rY   Útest_format_reprenum_intJ  s    z!TestEnum.test_format_reprenum_intc                 C   s^   | j }|  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ d S r_  )rÐ  rv  rÍ  )r`   rÐ  rX   rX   rY   Útest_format_reprenum_strV  s    z!TestEnum.test_format_reprenum_strc                 C   sH   | j }i }d||j< d||j< d||j< d||j< |  ||j d¡ d S )NZ1225Z0315Z0704Z1031)r¸  r·  r´  rµ  r¶  rç   )r`   r¸  ÚdatesrX   rX   rY   Ú	test_hash_  s    



zTestEnum.test_hashc                 C   sÊ   G dd„ dt ƒ}t|ƒ}|  ||j|j|j|jg¡ |  |j|ju ¡ |  |jj	d¡ |  |jj	d¡ |  |dƒ|ju ¡ |  |dƒ|ju ¡ |  |jj
d¡ |  tdd„ |j ¡ D ƒƒtdd	gƒ¡ d S )
Nc                   @   s(   e Zd ZdZdZdZd ZZdZdZ	dS )z-TestEnum.test_enum_duplicates.<locals>.Seasonr$  rk   rl   rm   ru   N)
rf   rg   rh   r  r´  rµ  r¶  ÚFALLr·  ÚANOTHER_SPRINGrX   rX   rX   rY   r¸  i  s   r¸  rm   rk   r¶  c                 S   s   g | ]\}}|j |kr|‘qS rX   r©  ©r™  ÚkÚvrX   rX   rY   r›  }  rœ  z1TestEnum.test_enum_duplicates.<locals>.<listcomp>r}  r~  )r   r±  rç   r´  rµ  r¶  r·  rN  r}  rè   rª  Úsetrú  Úitems)r`   r¸  r)  rX   rX   rY   Útest_enum_duplicatesh  s$    ÿþ
þzTestEnum.test_enum_duplicatesc                 C   s`   G dd„ dt ƒ}|  t|ƒ|j|jg¡ |  t|jƒ|u ¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z/TestEnum.test_enum_with_value_name.<locals>.Huhz
name valuerk   rl   N)rf   rg   rh   r¾   rª  rè   rX   rX   rX   rY   r£  ‚  s   r£  rª  rk   )r   rç   r±  rª  rè   rN  r  )r`   r£  rX   rX   rY   Útest_enum_with_value_name  s    
þz"TestEnum.test_enum_with_value_namec                 C   s(   G dd„ dt tƒ}|  |j|jk ¡ d S )Nc                   @   s   e Zd ZdZde ZdS )z/TestEnum.test_intenum_from_scratch.<locals>.phyrm   rl   N©rf   rg   rh   ÚpiÚtaurX   rX   rX   rY   Úphy  s   r‰  ©rý   r   rN  r‡  rˆ  ©r`   r‰  rX   rX   rY   Útest_intenum_from_scratchŽ  s    z"TestEnum.test_intenum_from_scratchc                 C   s8   G dd„ dt tƒ}G dd„ d|ƒ}|  |j|jk ¡ d S )Nc                   @   s   e Zd ZdS )z0TestEnum.test_intenum_inherited.<locals>.IntEnumNrH  rX   rX   rX   rY   r   •  s   r   c                   @   s   e Zd ZdZde ZdS )z,TestEnum.test_intenum_inherited.<locals>.phyrm   rl   Nr†  rX   rX   rX   rY   r‰  —  s   r‰  rŠ  )r`   r   r‰  rX   rX   rY   Útest_intenum_inherited”  s    zTestEnum.test_intenum_inheritedc                 C   s(   G dd„ dt tƒ}|  |j|jk ¡ d S )Nc                   @   s   e Zd ZdZde ZdS )z1TestEnum.test_floatenum_from_scratch.<locals>.phyrº  rl   Nr†  rX   rX   rX   rY   r‰    s   r‰  ©rÜ  r   rN  r‡  rˆ  r‹  rX   rX   rY   Útest_floatenum_from_scratchœ  s    z$TestEnum.test_floatenum_from_scratchc                 C   s8   G dd„ dt tƒ}G dd„ d|ƒ}|  |j|jk ¡ d S )Nc                   @   s   e Zd ZdS )z4TestEnum.test_floatenum_inherited.<locals>.FloatEnumNrH  rX   rX   rX   rY   Ú	FloatEnum£  s   r  c                   @   s   e Zd ZdZde ZdS )z.TestEnum.test_floatenum_inherited.<locals>.phyrº  rl   Nr†  rX   rX   rX   rY   r‰  ¥  s   r‰  rŽ  )r`   r  r‰  rX   rX   rY   Útest_floatenum_inherited¢  s    z!TestEnum.test_floatenum_inheritedc                 C   s(   G dd„ dt tƒ}|  |j|jk ¡ d S )Nc                   @   s   e Zd ZdZdZdS )z/TestEnum.test_strenum_from_scratch.<locals>.phyÚPiÚTauNr†  rX   rX   rX   rY   r‰  «  s   r‰  )r  r   rN  r‡  rˆ  r‹  rX   rX   rY   Útest_strenum_from_scratchª  s    z"TestEnum.test_strenum_from_scratchc                 C   sD  G dd„ dt ƒ}|  g d¢|j d¡ |  dd„ t|jƒD ƒg d¢¡ t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd¡ d	}| ¡ }t|ƒD ]¸\}}|d
7 }||ƒ}|  ||¡ |  t	|ƒ|¡ |  |j
|¡ |  ||v ¡ |  | |¡d
 |¡ |  d|  k odk n  ¡ |  t|ƒ|u ¡ |  t|t	ƒ¡ |  t|tƒ¡ q†d S )Nc                   @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )	z&TestEnum.test_intenum.<locals>.WeekDayrk   rl   rm   ru   rv   r1  rv  N)
rf   rg   rh   ÚSUNDAYÚMONDAYÚTUESDAYÚ	WEDNESDAYÚTHURSDAYÚFRIDAYÚSATURDAYrX   rX   rX   rY   ÚWeekDay±  s   rœ  )rR  rz  Úcr  c                 S   s   g | ]}|‘qS rX   rX   )r™  r*  rX   rX   rY   r›  »  rœ  z)TestEnum.test_intenum.<locals>.<listcomp>©r   rk   rl   rv  ú8SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAYrk   r   rÚ   )r   rç   r–  r–   r—  r±  r°  r&  r%  rý   rª  rN  Úindexr  rö  r   )r`   rœ  r)  rŸ   r*  Úweekdayr+  rX   rX   rY   Útest_intenum°  s(    	  zTestEnum.test_intenumc                 C   sV   G dd„ dt ƒ}|  |j|ju ¡ |  |dƒjd¡ |  dd„ |j ¡ D ƒdg¡ d S )Nc                   @   s0   e Zd ZdZdZdZd ZZdZdZ	dZ
dZd	S )
z1TestEnum.test_intenum_duplicates.<locals>.WeekDayrŸ  rk   rl   rm   ru   rv   r1  rv  N)rf   rg   rh   r  r•  r–  r—  ÚTEUSDAYr˜  r™  rš  r›  rX   rX   rX   rY   rœ  Ð  s   rœ  rm   r—  c                 S   s   g | ]\}}|j |kr|‘qS rX   r©  r  rX   rX   rY   r›  Û  s   
ÿz4TestEnum.test_intenum_duplicates.<locals>.<listcomp>r£  )r   rN  r£  r—  rç   rª  rú  rƒ  )r`   rœ  rX   rX   rY   Útest_intenum_duplicatesÏ  s    	ÿz TestEnum.test_intenum_duplicatesc                 C   sl   t  tjj¡}|  t |¡tj¡ t  tjjd ¡}|  t¡ t |¡ W d   ƒ n1 s^0    Y  d S )Ng{®Gáz„?)	rÜ  Úhexrs   rq   rè   ÚassertIsÚfromhexr=  r›   )r`   r  rX   rX   rY   Útest_floatenum_fromhexÞ  s
    zTestEnum.test_floatenum_fromhexc                 C   s,   t ttƒrt‚t| jtjƒ t| jtƒ d S r²   )rö  rj   r—   r¥   rN  rp   rŒ   rX   rX   rY   Útest_pickle_enumå  s    
zTestEnum.test_pickle_enumc                 C   s,   t ttƒrt‚t| jtjƒ t| jtƒ d S r²   )rö  rr   r—   r¥   rN  rp   rŒ   rX   rX   rY   Útest_pickle_intë  s    
zTestEnum.test_pickle_intc                 C   s,   t ttƒrt‚t| jtjƒ t| jtƒ d S r²   )rö  rs   r—   r¥   rN  rp   rŒ   rX   rX   rY   Útest_pickle_floatñ  s    
zTestEnum.test_pickle_floatc                 C   s,   t ttƒrt‚t| jtjƒ t| jtƒ d S r²   )rö  r‰   r—   r¥   rN  ZhimrŒ   rX   rX   rY   Útest_pickle_enum_function÷  s    
z"TestEnum.test_pickle_enum_functionc                 C   s,   t ttƒrt‚t| jtjƒ t| jtƒ d S r²   )rö  rˆ   r—   r¥   rN  ZwhorŒ   rX   rX   rY   Ú%test_pickle_enum_function_with_moduleý  s    
z.TestEnum.test_pickle_enum_function_with_modulec                 C   s<   G dd„ dt ƒ}t|_ttƒD ]}|  |j |¡d¡ qd S )Nc                   @   s   e Zd ZdZdZdS )z6TestEnum.test_pickle_by_name.<locals>.ReplaceGlobalIntrk   rl   N)rf   rg   rh   rà   rá   rX   rX   rX   rY   ÚReplaceGlobalInt  s   r®  rá   )r   r   Ú__reduce_ex__r–   r<   rç   rá   )r`   r®  ÚprotorX   rX   rY   Útest_pickle_by_name  s    zTestEnum.test_pickle_by_namec                 C   s@   t ddƒ}t |¡ |tƒ d< t| jt|jƒ t| jt|ƒ d S )NÚ	BadPicklezdill sweet bread-n-butter)	r   rS   Zmake_class_unpicklableÚglobalsr¨   r=  rÌ   Zdillr;   )r`   r²  rX   rX   rY   Útest_exploding_pickle  s
    


zTestEnum.test_exploding_picklec                 C   s$   G dd„ dt tƒ}|  |jd¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z-TestEnum.test_string_enum.<locals>.SkillLevelz'what is the sound of one hand clapping?z#why did the chicken cross the road?úknock, knock!N)rf   rg   rh   ZmasterZ
journeymanÚ
apprenticerX   rX   rX   rY   Ú
SkillLevel  s   r·  rµ  )r  r   rç   r¶  )r`   r·  rX   rX   rY   Útest_string_enum  s    zTestEnum.test_string_enumc                 C   sR   G dd„ dt ƒ}|  |dƒ|ju ¡ |  t|dƒ|ju ¡ |  |d |ju ¡ d S )Nc                   @   s   e Zd ZdZdZdZdZdS )z-TestEnum.test_getattr_getitem.<locals>.Periodrk   rl   rm   ru   N)rf   rg   rh   ÚmorningÚnoonZeveningÚnightrX   rX   rX   rY   ÚPeriod  s   r¼  rl   r»  r¹  )r   rN  rº  r]   r»  r¹  ©r`   r¼  rX   rX   rY   Útest_getattr_getitem  s    zTestEnum.test_getattr_getitemc                 C   s   | j }|  t|dƒ¡ d S )NÚ__hash__)r¸  rN  r]   r  rX   rX   rY   Útest_getattr_dunder#  s    zTestEnum.test_getattr_dunderc                 C   s4   G dd„ dt ƒ}|  t|ƒ|j|j|j|jg¡ d S )Nc                   @   s    e Zd ZdZdZdZdZdZdS )z-TestEnum.test_iteration_order.<locals>.SeasonzSUMMER WINTER AUTUMN SPRINGrl   ru   rm   rk   N)rf   rg   rh   r  rµ  r·  r¶  r´  rX   rX   rX   rY   r¸  (  s
   r¸  )r   rç   r±  rµ  r·  r¶  r´  r  rX   rX   rY   Útest_iteration_order'  s
    þzTestEnum.test_iteration_orderc                 C   s2   |   tt| jƒƒ| jj| jj| jj| jjg¡ d S r²   )rç   r±  Úreversedr¸  r·  r¶  rµ  r´  rŒ   rX   rX   rY   Útest_iteration_order_reversed3  s    ÿþz&TestEnum.test_iteration_order_reversedc                 C   s4   G dd„ dt ƒ}|  t|ƒ|j|j|j|jg¡ d S )Nc                   @   s4   e Zd ZeddƒZeddƒZeddƒZeddƒZd	S )
zFTestEnum.test_iteration_order_with_unorderable_values.<locals>.Complexrv  rp  g…ëQ¸	@rl   rk   rP   i³ÿÿÿru  N)rf   rg   rh   ÚcomplexrR  rz  r  ÚdrX   rX   rX   rY   ÚComplex;  s   


rÆ  )r   rç   r±  rR  rz  r  rÅ  )r`   rÆ  rX   rX   rY   Ú,test_iteration_order_with_unorderable_values:  s
    þz5TestEnum.test_iteration_order_with_unorderable_valuesc                 C   sÆ   t ddƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td ¡ ƒD ]d\}}|d7 }||ƒ}|  t	|j
ƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q\d S ©NÚSummerMonthújune july augustrm   rk   ©r   r±  rç   r°  ÚjuneÚjulyÚaugustr%  r&  rý   rè   r'  rª  rN  r  ©r`   rÉ  r)  r*  Úmonthr+  rX   rX   rY   Ú test_programatic_function_stringE  s     
þz)TestEnum.test_programatic_function_stringc                 C   sÄ   t dddd}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td ¡ dƒD ]\\}}||ƒ}|  t	|j
ƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ qbd S )NrÉ  rÊ  rw  ©r    rm   rË  rÏ  rX   rX   rY   Ú+test_programatic_function_string_with_startW  s    þz4TestEnum.test_programatic_function_string_with_startc                 C   sÊ   t dg d¢ƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td ¡ ƒD ]d\}}|d7 }||ƒ}|  t	|j
ƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q`d S )NrÉ  ©rÌ  rÍ  rÎ  rm   rÊ  rk   rË  rÏ  rX   rX   rY   Ú%test_programatic_function_string_listh  s     þz.TestEnum.test_programatic_function_string_listc                 C   sÈ   t dg d¢dd}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td ¡ dƒD ]\\}}||ƒ}|  t	|j
ƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ qfd S )NrÉ  rÔ  rq  rÒ  rm   rÊ  rË  rÏ  rX   rX   rY   Ú0test_programatic_function_string_list_with_startz  s    þz9TestEnum.test_programatic_function_string_list_with_startc                 C   sÆ   t ddƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td ¡ ƒD ]d\}}|d7 }||ƒ}|  t	|j
ƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q\d S ©NrÉ  ))rÌ  rk   )rÍ  rl   )rÎ  rm   rm   rÊ  rk   rË  rÏ  rX   rX   rY   Ú"test_programatic_function_iterable‹  s&    þþz+TestEnum.test_programatic_function_iterablec                 C   sÎ   t dtdƒƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ trX|  |j|j|jg|¡ t	d 
¡ ƒD ]d\}}|d7 }||ƒ}|  t|jƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ qdd S r×  )r   Údictr±  rç   r°  r-   rÌ  rÍ  rÎ  r%  r&  rý   rè   r'  rª  rN  r  rÏ  rX   rX   rY   Ú#test_programatic_function_from_dict   s(    þþz,TestEnum.test_programatic_function_from_dictc                 C   s¸   t ddtd}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td 	¡ ƒD ]R\}}|d7 }||ƒ}|  ||¡ |  |j
|¡ |  ||v ¡ |  t|ƒ|u ¡ q`d S ©NrÉ  rÊ  ©r  rm   rk   ©r   rý   r±  rç   r°  rÌ  rÍ  rÎ  r%  r&  rª  rN  r  rÏ  rX   rX   rY   Útest_programatic_function_type¶  s    þz'TestEnum.test_programatic_function_typec                 C   s´   t ddtdd}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td 	¡ dƒD ]J\}}||ƒ}|  ||¡ |  |j
|¡ |  ||v ¡ |  t|ƒ|u ¡ qdd S )NrÉ  rÊ  é   )r  r    rm   rÝ  rÏ  rX   rX   rY   Ú)test_programatic_function_type_with_startÇ  s    þz2TestEnum.test_programatic_function_type_with_startc                 C   s´   t ddƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td ¡ ƒD ]R\}}|d7 }||ƒ}|  ||¡ |  |j	|¡ |  
||v ¡ |  
t|ƒ|u ¡ q\d S rÈ  ©r   r±  rç   r°  rÌ  rÍ  rÎ  r%  r&  rª  rN  r  rÏ  rX   rX   rY   Ú,test_programatic_function_type_from_subclass×  s    
þz5TestEnum.test_programatic_function_type_from_subclassc                 C   s²   t dddd}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td ¡ dƒD ]J\}}||ƒ}|  ||¡ |  |j	|¡ |  
||v ¡ |  
t|ƒ|u ¡ qbd S )NrÉ  rÊ  é(   rÒ  rm   rá  rÏ  rX   rX   rY   Ú7test_programatic_function_type_from_subclass_with_startè  s    þz@TestEnum.test_programatic_function_type_from_subclass_with_startc                 C   sÎ   t dtdƒƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ ttdƒ 	¡ ƒD ]d\}}|d7 }||ƒ}|  t
|jƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ qdd S rÈ  ©r   r*   r±  rç   r°  rÌ  rÍ  rÎ  r%  r&  rý   rè   r'  rª  rN  r  rÏ  rX   rX   rY   Ú!test_programatic_function_unicodeø  s     þz*TestEnum.test_programatic_function_unicodec                 C   sÜ   t dtdƒtdƒtdƒgƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ ttdƒ 	¡ ƒD ]d\}}|d7 }||ƒ}|  t
|jƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ qrd S )NrÉ  rÌ  rÍ  rÎ  rm   rÊ  rk   rå  rÏ  rX   rX   rY   Ú&test_programatic_function_unicode_list
  s     þz/TestEnum.test_programatic_function_unicode_listc                 C   sè   t dtdƒdftdƒdftdƒdffƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ ttdƒ 	¡ ƒD ]d\}}|d7 }||ƒ}|  t
|jƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q~d S ©	NrÉ  rÌ  rk   rÍ  rl   rÎ  rm   rÊ  rå  rÏ  rX   rX   rY   Ú*test_programatic_function_unicode_iterable  s&     þþz3TestEnum.test_programatic_function_unicode_iterablec                 C   sð   t dttdƒdftdƒdftdƒdffƒƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ trv|  |j|j|j	g|¡ t
tdƒ ¡ ƒD ]d\}}|d7 }||ƒ}|  t|jƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q†d S rè  )r   rÙ  r*   r±  rç   r°  r-   rÌ  rÍ  rÎ  r%  r&  rý   rè   r'  rª  rN  r  rÏ  rX   rX   rY   Ú+test_programatic_function_from_unicode_dict1  s(    $þþz4TestEnum.test_programatic_function_from_unicode_dictc                 C   sÀ   t dtdƒtd}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ t	tdƒ 
¡ ƒD ]R\}}|d7 }||ƒ}|  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ qhd S rÛ  )r   r*   rý   r±  rç   r°  rÌ  rÍ  rÎ  r%  r&  rª  rN  r  rÏ  rX   rX   rY   Ú&test_programatic_function_unicode_typeG  s    þz/TestEnum.test_programatic_function_unicode_typec                 C   s¼   t dtdƒƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ ttdƒ 	¡ ƒD ]R\}}|d7 }||ƒ}|  ||¡ |  |j
|¡ |  ||v ¡ |  t|ƒ|u ¡ qdd S rÈ  )r   r*   r±  rç   r°  rÌ  rÍ  rÎ  r%  r&  rª  rN  r  rÏ  rX   rX   rY   Ú4test_programatic_function_unicode_type_from_subclassX  s    þz=TestEnum.test_programatic_function_unicode_type_from_subclassc                 C   s  t rtdƒd d¡f}nd}t|ƒD ]ä\}}t rN|dkrN|  tt|tdƒ¡ q$t|tdƒƒ}t|ƒ}|  t	|ƒt	|ƒ¡ |  t	|ƒd|¡ |  |j
|j|jg|¡ ttdƒ ¡ ƒD ]T\}}|d7 }||ƒ}|  |j|¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q²q$d S )NrÉ  õ   SÃ¼mmÃ©rMÃ¶nthÚlatin1)rÉ  rí  rk   rÊ  rm   )r-   r*   Údecoder%  r=  rÌ   r   r±  rç   r°  rÌ  rÍ  rÎ  r&  rè   rª  rN  r  )r`   Zclass_namesr*  Ú
class_namerÉ  r)  rÐ  r+  rX   rX   rY   Ú(test_programmatic_function_unicode_classi  s*    þz1TestEnum.test_programmatic_function_unicode_classc                 C   sV   t ttƒrt‚|  tjd¡ |  tjtdƒ¡ |  tjttdƒu ¡ t| jtjƒ d S )Nr†   r‡   )rö  r…   r—   rç   r‡   rN  r]   r¥   rŒ   rX   rX   rY   Útest_subclassing‚  s    
zTestEnum.test_subclassingc                 C   s   dd„ }|   t|¡ d S )Nc                  S   s$   G dd„ dt ƒ} G dd„ d| ƒ}d S )Nc                   @   s   e Zd ZdZdZdZdS )z=TestEnum.test_extending.<locals>.bad_extension.<locals>.Colorrk   rl   rm   N©rf   rg   rh   r¿   rÀ   rÁ   rX   rX   rX   rY   rÂ   Œ  s   rÂ   c                   @   s   e Zd ZdZdZdZdS )zATestEnum.test_extending.<locals>.bad_extension.<locals>.MoreColorru   rv   r1  N©rf   rg   rh   r  ÚmagentaZyellowrX   rX   rX   rY   Ú	MoreColor  s   rö  rÃ   )rÂ   rö  rX   rX   rY   Úbad_extension‹  s    z.TestEnum.test_extending.<locals>.bad_extensionr]  ©r`   r÷  rX   rX   rY   Útest_extendingŠ  s    	zTestEnum.test_extendingc                 C   s:   G dd„ dt ƒ}|  t|jƒ|u ¡ |  |j ¡ d¡ d S )Nc                   @   s   e Zd ZdZdZdd„ ZdS )z/TestEnum.test_exclude_methods.<locals>.whateverr  r  c                 S   s
   d| j  S )Nz
no, not %sr—  rŒ   rX   rX   rY   Úreallyš  s    z6TestEnum.test_exclude_methods.<locals>.whatever.reallyN)rf   rg   rh   r  r  rú  rX   rX   rX   rY   Úwhatever—  s   rû  zno, not that)r   rL  r  rú  rç   r  )r`   rû  rX   rX   rY   Útest_exclude_methods–  s    zTestEnum.test_exclude_methodsc                 C   s   dd„ }|   t|¡ d S )Nc                  S   s   G dd„ dt tƒ} d S )Nc                   @   s   e Zd ZdZdS )zKTestEnum.test_wrong_inheritance_order.<locals>.wrong_inherit.<locals>.Wrongzerror before this pointN)rf   rg   rh   ZNotHererX   rX   rX   rY   rI  ¡  s   rI  )r   r  rJ  rX   rX   rY   Úwrong_inherit   s    z<TestEnum.test_wrong_inheritance_order.<locals>.wrong_inheritr]  )r`   rý  rX   rX   rY   Útest_wrong_inheritance_orderŸ  s    z%TestEnum.test_wrong_inheritance_orderc                 C   sT   G dd„ dt ƒ}G dd„ dt ƒ}|  |j|j¡ |  |j|j¡ |  |j|j¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z2TestEnum.test_intenum_transitivity.<locals>.numberrk   rl   rm   N)rf   rg   rh   r¡  r¢  rë  rX   rX   rX   rY   Únumber¦  s   rÿ  c                   @   s   e Zd ZdZdZdZdS )z2TestEnum.test_intenum_transitivity.<locals>.numerork   rl   rm   N)rf   rg   rh   ÚunoÚdosÚtresrX   rX   rX   rY   Únumeroª  s   r  )r   rç   r¡  r   r¢  r  rë  r  )r`   rÿ  r  rX   rX   rY   Útest_intenum_transitivity¥  s
    z"TestEnum.test_intenum_transitivityc                 C   sœ   G dd„ dt ƒ}|  |jjtu ¡ |  |jtu ¡ G dd„ dttƒ}|  |jjtu ¡ |  |jtu ¡ G dd„ dtƒ}|  |jjt	u ¡ |  |jt	u ¡ d S )Nc                   @   s   e Zd ZdZdZdS )z+TestEnum.test_introspection.<locals>.Numberéd   éÈ   Nr   rX   rX   rX   rY   ÚNumber³  s   r  c                   @   s   e Zd ZdZdZdZdS )z+TestEnum.test_introspection.<locals>.StringZsoftZroughÚhardN)rf   rg   rh   ÚyarnZropeZwirerX   rX   rX   rY   ÚString¸  s   r
  c                   @   s   e Zd ZdZdZdS )z*TestEnum.test_introspection.<locals>.PlainÚwhiterk   N)rf   rg   rh   Úvanillar¡  rX   rX   rX   rY   ÚPlain¾  s   r  )
r   rN  r¡  r.  rý   r  r   r	  r  r  )r`   r  r
  r  rX   rX   rY   Útest_introspection²  s    zTestEnum.test_introspectionc                 C   s4   G dd„ dt ƒ}G dd„ dt ƒ}|  t||j¡ d S )Nc                   @   s   e Zd ZdZdZdS )z4TestEnum.test_wrong_enum_in_call.<locals>.Monochromer   rk   N©rf   rg   rh   r!  r  rX   rX   rX   rY   Ú
MonochromeÅ  s   r  c                   @   s   e Zd ZdZdZdS )z0TestEnum.test_wrong_enum_in_call.<locals>.Genderr   rk   N©rf   rg   rh   ÚmaleÚfemalerX   rX   rX   rY   ÚGenderÈ  s   r  )r   r=  r›   r  ©r`   r  r  rX   rX   rY   Útest_wrong_enum_in_callÄ  s    z TestEnum.test_wrong_enum_in_callc                 C   s4   G dd„ dt ƒ}G dd„ dtƒ}|  t||j¡ d S )Nc                   @   s   e Zd ZdZdZdS )z:TestEnum.test_wrong_enum_in_mixed_call.<locals>.Monochromer   rk   Nr  rX   rX   rX   rY   r  Î  s   r  c                   @   s   e Zd ZdZdZdS )z6TestEnum.test_wrong_enum_in_mixed_call.<locals>.Genderr   rk   Nr  rX   rX   rX   rY   r  Ñ  s   r  )r   r   r=  r›   r  r  rX   rX   rY   Útest_wrong_enum_in_mixed_callÍ  s    z&TestEnum.test_wrong_enum_in_mixed_callc                 C   s:   G dd„ dt ƒ}G dd„ dt ƒ}|  ||jƒ|ju ¡ d S )Nc                   @   s   e Zd ZdZdZdS )z6TestEnum.test_mixed_enum_in_call_1.<locals>.Monochromer   rk   Nr  rX   rX   rX   rY   r  ×  s   r  c                   @   s   e Zd ZdZdZdS )z2TestEnum.test_mixed_enum_in_call_1.<locals>.Genderr   rk   Nr  rX   rX   rX   rY   r  Ú  s   r  )r   rN  r  r  r  rX   rX   rY   Útest_mixed_enum_in_call_1Ö  s    z"TestEnum.test_mixed_enum_in_call_1c                 C   s:   G dd„ dt ƒ}G dd„ dtƒ}|  ||jƒ|ju ¡ d S )Nc                   @   s   e Zd ZdZdZdS )z6TestEnum.test_mixed_enum_in_call_2.<locals>.Monochromer   rk   Nr  rX   rX   rX   rY   r  à  s   r  c                   @   s   e Zd ZdZdZdS )z2TestEnum.test_mixed_enum_in_call_2.<locals>.Genderr   rk   Nr  rX   rX   rX   rY   r  ã  s   r  )r   r   rN  r  r!  r  rX   rX   rY   Útest_mixed_enum_in_call_2ß  s    z"TestEnum.test_mixed_enum_in_call_2c                 C   s6   G dd„ dt ƒ}G dd„ d|ƒ}|  t|jƒd¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z*TestEnum.test_flufl_enum.<locals>.Fluflnumc                 S   s
   t | jƒS r²   )rý   rè   rŒ   rX   rX   rY   Ú__int__ê  s    z2TestEnum.test_flufl_enum.<locals>.Fluflnum.__int__N)rf   rg   rh   r  rX   rX   rX   rY   ÚFluflnumé  s   r  c                   @   s   e Zd ZdZdZdZdS )z0TestEnum.test_flufl_enum.<locals>.MailManOptionsrk   rl   rm   N)rf   rg   rh   Úoption1Zoption2Zoption3rX   rX   rX   rY   ÚMailManOptionsì  s   r  rk   )r   rç   rý   r  )r`   r  r  rX   rX   rY   Útest_flufl_enumè  s    zTestEnum.test_flufl_enumc                 C   s2   G dd„ dt ƒ}|  t|d¡ |  t|jd¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z0TestEnum.test_no_such_enum_member.<locals>.Colorrk   rl   rm   Nró  rX   rX   rX   rY   rÂ   ó  s   rÂ   ru   Z
chartreuse)r   r=  r›   ÚKeyErrorÚ__getitem__rÄ   rX   rX   rY   Útest_no_such_enum_memberò  s    z!TestEnum.test_no_such_enum_memberc                 C   s&   G dd„ dt ƒ}|  t|jƒd¡ d S )Nc                   @   s    e Zd ZdZdZdZdd„ ZdS )z%TestEnum.test_new_repr.<locals>.Colorrk   rl   rm   c                 S   s
   d| j  S )Nz!don't you just love shades of %s?r©  rŒ   rX   rX   rY   Ú__repr__ÿ  s    z.TestEnum.test_new_repr.<locals>.Color.__repr__N)rf   rg   rh   r¿   rÀ   rÁ   r"  rX   rX   rX   rY   rÂ   û  s   rÂ   z#don't you just love shades of blue?)r   rç   r(  rÁ   rÄ   rX   rX   rY   Útest_new_reprú  s
    þzTestEnum.test_new_reprc                 C   s8   G dd„ dt ƒ}G dd„ dt|ƒ}|  t|jƒd¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z,TestEnum.test_inherited_repr.<locals>.MyEnumc                 S   s
   d| j  S )NzMy name is %s.r©  rŒ   rX   rX   rY   r"    s    z5TestEnum.test_inherited_repr.<locals>.MyEnum.__repr__N)rf   rg   rh   r"  rX   rX   rX   rY   ÚMyEnum  s   r$  c                   @   s   e Zd ZdZdZdZdS )z/TestEnum.test_inherited_repr.<locals>.MyIntEnumrk   rl   rm   N)rf   rg   rh   r  r  ÚtheotherrX   rX   rX   rY   Ú	MyIntEnum
  s   r&  zMy name is that.)r   rý   rç   r(  r  )r`   r$  r&  rX   rX   rY   Útest_inherited_repr  s    zTestEnum.test_inherited_reprc                    s4   G ‡ fdd„dt ƒ‰ ˆ dtfi ƒ}ˆ dtfi ƒ}d S )Nc                       s   e Zd Z‡ ‡fdd„Z‡  ZS )z3TestEnum.test_multiple_mixin_mro.<locals>.auto_enumc           
         s  |}|   ||i ¡}t|dƒrH|jD ]}|| ||< q"dd„ | ¡ D ƒ}n2g }| ¡ D ]$\}}t |¡rp| |¡ |||< qT|   ||i ¡}d}	|D ]}|| ||< q|jD ].}|| }|dkrÂ|	}n|}	|	d7 }	|||< q¨| ¡ D ]"\}}||jvrà||vrà|||< qàtˆ| ƒ 	| |||¡S )NÚ_member_namesc                 S   s   g | ]}t  |¡r|‘qS rX   )rS   r_  )r™  r€  rX   rX   rY   r›    rœ  zOTestEnum.test_multiple_mixin_mro.<locals>.auto_enum.__new__.<locals>.<listcomp>r   rX   rk   )
Ú__prepare__r@  r(  Úkeysrƒ  rS   r_  rš   r^   r  )
Úmetaclsr  ÚbasesÚ	classdictZoriginal_dictZ	temp_dictr€  Zsundersr  r*  )re   Ú	auto_enumrX   rY   r    s8    








ÿz;TestEnum.test_multiple_mixin_mro.<locals>.auto_enum.__new__)rf   rg   rh   r  ri   rX   ©r.  rd   rY   r.    s   r.  ÚAutoNumberedEnumÚAutoIntEnum)r   r   r   )r`   r0  r1  rX   r/  rY   Útest_multiple_mixin_mro  s     z TestEnum.test_multiple_mixin_mroc                    sì   dd„ ‰d ‰ G ‡ ‡‡fdd„dt ƒ‰ˆdtfi ƒ‰ tj td¡‰tˆdƒ}| d¡ W d   ƒ n1 sj0    Y  G ‡fd	d
„d
ˆ ƒ}|  |j	|j
|j|jgt|ƒ¡ |  |j	jd¡ |  |j
jd¡ |  |jjd¡ |  |jjd¡ d S )Nc                  W   s   t | ƒdkr| d S | S )Nrk   r   )r°  )ra   rX   rX   rY   ÚidentityO  s    z0TestEnum.test_meta_reconfigure.<locals>.identityc                       s@   e Zd Zed	dd„ƒZ‡‡ fdd„Zd
‡‡‡ ‡fdd„	Z‡  ZS )z4TestEnum.test_meta_reconfigure.<locals>.JSONEnumMetaNrX   c                 S   s   i S r²   rX   )r+  r  r,  Úinitr    ÚsettingsrX   rX   rY   r)  X  s    z@TestEnum.test_meta_reconfigure.<locals>.JSONEnumMeta.__prepare__c                    s   t ˆ | ƒj|Ž  d S r²   )r^   r_   )r  ra   rb   )ÚJSONEnumMetare   rX   rY   r_   \  s    z=TestEnum.test_meta_reconfigure.<locals>.JSONEnumMeta.__init__c              	      sì  dd l }g }ˆ d urld|vr&tdƒ‚d|vr6tdƒ‚d|vrFtdƒ‚| d¡}	t|	ttfƒsd|	f}	| d¡}
| d¡}t|ƒ}| |¡}W d   ƒ n1 s 0    Y  |D ]¼}g }||	d  }|	dd … D ]}|| }qÎt|
 	¡ ƒD ]f\}\}}t|ttfƒs
|f}||d  }|dd … D ]}|| }q"|d urD||ƒ}| 
|¡ qèt|ƒ}| 
|ˆ|Ž f¡ q®tˆ| ƒ |||||¡}t| 	¡ ƒ}|jd	d
„ d |D ]\}}|||< q¤|D ]\}}|||< q¼tˆ| ƒ | ||||||¡S )Nr   Ú_filez_file is requiredÚ_namez_name is requiredÚ_valuez_value is requiredrk   c                 S   s   | d d dkrdnd| fS )Nr   rZ  rk   rX   )r  rX   rX   rY   r¯  †  rœ  zNTestEnum.test_meta_reconfigure.<locals>.JSONEnumMeta.__new__.<locals>.<lambda>)Úkey)ÚjsonrÌ   Úpoprö  Útupler±  rû  ÚloadÚsortedrƒ  rš   r^   r)  Úsortr  )r+  r  r,  Zclsdictr4  r    r5  r;  ÚmembersZ	name_specZ
value_specÚfileÚfZ	json_dataÚdatar1  rª  ZpieceÚorderZ
value_pathÚfuncrè   Ú	enum_dictrƒ  )ÚJSONEnumr6  re   r3  rX   rY   r  _  sT    




(


ÿz<TestEnum.test_meta_reconfigure.<locals>.JSONEnumMeta.__new__)NNrX   )NNrX   )rf   rg   rh   Úclassmethodr)  r_   r  ri   rX   )rH  r6  r3  rd   rY   r6  V  s   r6  ZJsonEnumztest_json.jsonÚwun  [{"name":"Afghanistan","alpha-2":"AF","country-code":"004","notes":{"description":"pretty"}},{"name":"Ã…land Islands","alpha-2":"AX","country-code":"248","notes":{"description":"serene"}},{"name":"Albania","alpha-2":"AL","country-code":"008","notes":{"description":"exciting"}},{"name":"Algeria","alpha-2":"DZ","country-code":"012","notes":{"description":"scarce"}}]c                       s6   e Zd ZdZ” ZdZdddd„ fddd	d„ fd
œZdS )z/TestEnum.test_meta_reconfigure.<locals>.Countryz"abbr code country_name descriptionúalpha-2)rK  Nzcountry-codec                 S   s   t | ƒS r²   )rý   )r  rX   rX   rY   r¯  Ÿ  rœ  z8TestEnum.test_meta_reconfigure.<locals>.Country.<lambda>©rª  N)Znotesrõ   c                 S   s   |   ¡ S r²   )Útitle)ra  rX   rX   rY   r¯  ¡  rœ  )rk   rl   rm   ru   N)rf   rg   rh   rï   r7  r8  r9  rX   )Ú	test_filerX   rY   ÚCountry™  s   

ürO  ÚAFéø   ZAlbaniaZScarce)r   r   ÚosÚpathrœ   Útempdirrû  Úwriterç   rP  ZAXÚALZDZr±  Úabbrr  Zcountry_namerõ   )r`   rC  rO  rX   )rH  r6  r3  rN  rY   Útest_meta_reconfigureM  s    9ÿ" zTestEnum.test_meta_reconfigurec                    sª   G ‡ fdd„dt ƒ‰ G dd„ dˆ tƒ}|  |jtju ¡ |  t|j|j ƒd¡ ˆ tƒ d< |tƒ d< ˆ ddƒ}|  |d¡ t	| j|dƒ |  |jj
d¡ t	| j|jƒ d S )	Nc                       sH   e Zd ZdZdd„ Zdd„ Zedd„ ƒZ dd	„ Zd
d„ Z‡ fdd„ZdS )z:TestEnum.test_subclasses_with_getnewargs.<locals>.NamedIntÚNamedIntc                 W   sP   |}t |ƒdk rtdƒ‚|d |dd …  }}tj| g|¢R Ž }||_||_|S ©Nrk   ú name and value must be specifiedr   ©r°  rÌ   rý   r  Ú_intnameÚ_args©r  ra   r^  rª  r`   rX   rX   rY   r  ®  s    zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__new__c                 S   s   | j S r²   )r^  rŒ   rX   rX   rY   Ú__getnewargs__·  s    zITestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__getnewargs__c                 S   s   | j S r²   ©r]  rŒ   rX   rX   rY   rf   ¹  s    zCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__name__c                 S   s   dt | ƒj| jt | ¡f S ©Nz
%s(%r, %s)©r  rf   rý   r"  rŒ   rX   rX   rY   r"  ¼  s    
þzCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__repr__c                 S   s&   t }|j}|jtu r| | ¡S || ƒS r²   ©rý   r#  Ú__objclass__r  r"  ©r`   ÚbaseZbase_strrX   rX   rY   r#  Á  s
    

zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__str__c                    sB   t | ƒt |ƒ }t| ˆ ƒr:t|ˆ ƒr:ˆ d| j|jf |ƒS |S d S ©Nz	(%s + %s)©rý   rö  rf   ©r`   ÚotherÚtemp©rY  rX   rY   Ú__add__Ê  s    þzBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__add__N)	rf   rg   rh   r  r`  r¬  r"  r#  rn  rX   rm  rX   rY   rY  ¬  s   	
	rY  c                   @   s   e Zd ZdZdZdZdS )z5TestEnum.test_subclasses_with_getnewargs.<locals>.NEIÚNEI©zthe-xrk   ©zthe-yrl   N©rf   rg   rh   ÚxÚyrX   rX   rX   rY   ro  Ó  s   ro  úNamedInt('(the-x + the-y)', 3)r\  rv   rl   ©rý   r   rN  r  rç   r(  rs  rt  r³  r¥   rè   ©r`   ro  ZNI5rX   rm  rY   Útest_subclasses_with_getnewargs«  s    '


z(TestEnum.test_subclasses_with_getnewargsc                    sª   G ‡ fdd„dt ƒ‰ G dd„ dˆ tƒ}|  |jtju ¡ |  t|j|j ƒd¡ ˆ tƒ d< |tƒ d< ˆ ddƒ}|  |d¡ t	| j|dƒ |  |jj
d¡ t	| j|jƒ d S )	Nc                       sH   e Zd ZdZdd„ Zdd„ Zedd„ ƒZ dd	„ Zd
d„ Z‡ fdd„ZdS )z6TestEnum.test_subclasses_with_reduce.<locals>.NamedIntrY  c                 W   sP   |}t |ƒdk rtdƒ‚|d |dd …  }}tj| g|¢R Ž }||_||_|S rZ  r\  r_  rX   rX   rY   r  å  s    z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__new__c                 S   s   | j | jfS r²   ©re   r^  rŒ   rX   rX   rY   Ú
__reduce__î  s    zATestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__reduce__c                 S   s   | j S r²   ra  rŒ   rX   rX   rY   rf   ð  s    z?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__name__c                 S   s   dt | ƒj| jt | ¡f S rb  rc  rŒ   rX   rX   rY   r"  ó  s    
þz?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__repr__c                 S   s&   t }|j}|jtu r| | ¡S || ƒS r²   rd  rf  rX   rX   rY   r#  ø  s
    

z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__str__c                    sB   t | ƒt |ƒ }t| ˆ ƒr:t|ˆ ƒr:ˆ d| j|jf |ƒS |S d S rh  ri  rj  rm  rX   rY   rn  	  s    þz>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__add__N)	rf   rg   rh   r  rz  r¬  r"  r#  rn  rX   rm  rX   rY   rY  ã  s   	
	rY  c                   @   s   e Zd ZdZdZdZdS )z1TestEnum.test_subclasses_with_reduce.<locals>.NEIro  rp  rq  Nrr  rX   rX   rX   rY   ro  
	  s   ro  ru  r\  rv   rl   rv  rw  rX   rm  rY   Útest_subclasses_with_reduceâ  s    '


z$TestEnum.test_subclasses_with_reducec                    sª   G ‡ fdd„dt ƒ‰ G dd„ dˆ tƒ}|  |jtju ¡ |  t|j|j ƒd¡ ˆ tƒ d< |tƒ d< ˆ ddƒ}|  |d¡ t	| j|dƒ |  |jj
d¡ t	| j|jƒ d S )	Nc                       sH   e Zd ZdZdd„ Zdd„ Zedd„ ƒZ dd	„ Zd
d„ Z‡ fdd„ZdS )z9TestEnum.test_subclasses_with_reduce_ex.<locals>.NamedIntrY  c                 W   sP   |}t |ƒdk rtdƒ‚|d |dd …  }}tj| g|¢R Ž }||_||_|S rZ  r\  r_  rX   rX   rY   r  	  s    zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__new__c                 S   s   | j | jfS r²   ry  ©r`   r°  rX   rX   rY   r¯  &	  s    zGTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__reduce_ex__c                 S   s   | j S r²   ra  rŒ   rX   rX   rY   rf   (	  s    zBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__name__c                 S   s   dt | ƒj| jt | ¡f S rb  rc  rŒ   rX   rX   rY   r"  +	  s    
þzBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__repr__c                 S   s&   t }|j}|jtu r| | ¡S || ƒS r²   rd  rf  rX   rX   rY   r#  0	  s
    

zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__str__c                    sB   t | ƒt |ƒ }t| ˆ ƒr:t|ˆ ƒr:ˆ d| j|jf |ƒS |S d S rh  ri  rj  rm  rX   rY   rn  9	  s    þzATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__add__N)	rf   rg   rh   r  r¯  r¬  r"  r#  rn  rX   rm  rX   rY   rY  	  s   	
	rY  c                   @   s   e Zd ZdZdZdZdS )z4TestEnum.test_subclasses_with_reduce_ex.<locals>.NEIro  rp  rq  Nrr  rX   rX   rX   rY   ro  B	  s   ro  ru  r\  rv   rl   rv  rw  rX   rm  rY   Útest_subclasses_with_reduce_ex	  s    '


z'TestEnum.test_subclasses_with_reduce_exc                    s¬   G ‡ fdd„dt ƒ‰ G dd„ dˆ tƒ}|  |jtju ¡ |  t|j|j ƒd¡ ˆ tƒ d< |tƒ d< ˆ ddƒ}|  |d¡ |  |jj	d¡ t
| jt|jƒ t
| jt|ƒ d S )	Nc                       s@   e Zd ZdZdd„ Zedd„ ƒZ dd„ Zdd	„ Z‡ fd
d„ZdS )zHTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedIntrY  c                 W   sP   |}|d |dd …  }}t |ƒdkr.tdƒ‚tj| g|¢R Ž }||_||_|S ©Nr   rk   r[  r\  r_  rX   rX   rY   r  U	  s    zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__new__c                 S   s   | j S r²   ra  rŒ   rX   rX   rY   rf   ^	  s    zQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__name__c                 S   s   dt | ƒj| jt | ¡f S rb  rc  rŒ   rX   rX   rY   r"  a	  s    
þzQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__repr__c                 S   s&   t }|j}|jtu r| | ¡S || ƒS r²   rd  rf  rX   rX   rY   r#  f	  s
    

zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__str__c                    sB   t | ƒt |ƒ }t| ˆ ƒr:t|ˆ ƒr:ˆ d| j|jf |ƒS |S d S rh  ri  rj  rm  rX   rY   rn  o	  s    þzPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__add__N©rf   rg   rh   r  r¬  r"  r#  rn  rX   rm  rX   rY   rY  S	  s   	
	rY  c                   @   s   e Zd ZdZdZdZdS )zCTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NEIro  rp  rq  Nrr  rX   rX   rX   rY   ro  x	  s   ro  ru  r\  rv   rl   )rý   r   rN  r  rç   r(  rs  rt  r³  rè   r¨   r=  rÌ   r;   rw  rX   rm  rY   Ú-test_subclasses_without_direct_pickle_supportR	  s    %


z6TestEnum.test_subclasses_without_direct_pickle_supportc                    s¨   G ‡ fdd„dt ƒ‰ G dd„ dˆ tƒ}|  |jtju ¡ |  t|j|j ƒd¡ ˆ tƒ d< |tƒ d< ˆ ddƒ}|  |d¡ |  |jj	d¡ t
| j|jƒ t
| j|ƒ d S )	Nc                       s@   e Zd ZdZdd„ Zedd„ ƒZ dd„ Zdd	„ Z‡ fd
d„ZdS )zSTestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedIntrY  c                 W   sP   |}|d |dd …  }}t |ƒdkr.tdƒ‚tj| g|¢R Ž }||_||_|S r~  r\  r_  rX   rX   rY   r  Š	  s    z[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__new__c                 S   s   | j S r²   ra  rŒ   rX   rX   rY   rf   “	  s    z\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__name__c                 S   s   dt | ƒj| jt | ¡f S rb  rc  rŒ   rX   rX   rY   r"  –	  s    
þz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__repr__c                 S   s&   t }|j}|jtu r| | ¡S || ƒS r²   rd  rf  rX   rX   rY   r#  ›	  s
    

z[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__str__c                    sB   t | ƒt |ƒ }t| ˆ ƒr:t|ˆ ƒr:ˆ d| j|jf |ƒS |S d S rh  ri  rj  rm  rX   rY   rn  ¤	  s    þz[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__add__Nr  rX   rm  rX   rY   rY  ˆ	  s   	
	rY  c                   @   s    e Zd ZdZdZdZdd„ ZdS )zNTestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEIro  rp  rq  c                 S   s   t | j| jffS r²   )r]   re   Ú_name_r|  rX   rX   rY   r¯  ±	  s    z\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEI.__reduce_ex__N)rf   rg   rh   rs  rt  r¯  rX   rX   rX   rY   ro  ­	  s   ro  ru  r\  rv   rl   )rý   r   rN  r  rç   r(  rs  rt  r³  rè   r¥   rw  rX   rm  rY   Ú8test_subclasses_without_direct_pickle_support_using_name‡	  s    %


zATestEnum.test_subclasses_without_direct_pickle_support_using_namec                 C   sb   G dd„ dt tƒ}|  t|jƒ|u ¡ |  t|jt ƒ¡ |  |jd¡ |t	ƒ d< t
| j|jƒ d S )Nc                   @   s   e Zd ZdZdZdZdZdS )z/TestEnum.test_tuple_subclass.<locals>.SomeTupleÚ	SomeTuple)rk   zfor the money)rl   zfor the show©rm   zfor the musicN)rf   rg   rh   re  rh  r  rX   rX   rX   rY   rƒ  ¿	  s   rƒ  r„  )r=  r   rN  r  re  rö  rh  rç   r  r³  r¥   )r`   rƒ  rX   rX   rY   Útest_tuple_subclass¾	  s    
zTestEnum.test_tuple_subclassc                 C   s|   G dd„ dt ƒ}G dd„ d|ƒ}|  t|ƒddt|ƒdf ¡ |  t|ƒ|j|j|jg¡ trx|  ttt	|ƒƒg d¢¡ d S )Nc                   @   s   e Zd Zdd„ Zdd„ ZdS )zCTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber2c                 S   s"   t | jƒd }t | ¡}||_|S r   ©r°  rú  r  r  r  ©r  rè   r§   rX   rX   rY   r  Ü	  s    
zKTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber2.__new__c                 S   s
   t | jƒS r²   )rý   r  rŒ   rX   rX   rY   r  á	  s    zKTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber2.__int__N)rf   rg   rh   r  r  rX   rX   rX   rY   ÚAutoNumber2Û	  s   rˆ  c                   @   s   e Zd ZdZdZdZdZdS )z=TestEnum.test_inherited_new_from_enhanced_enum.<locals>.Colorr¼   rX   N©rf   rg   rh   r  r¿   rÀ   rÁ   rX   rX   rX   rY   rÂ   ã	  s   rÂ   rm   ú+wrong number of elements: %d (should be %d)rW  )
r   rç   r°  r±  r¿   rÀ   rÁ   r.   Úmaprý   )r`   rˆ  rÂ   rX   rX   rY   Ú%test_inherited_new_from_enhanced_enumÚ	  s    z.TestEnum.test_inherited_new_from_enhanced_enumc                 C   sb   G dd„ dt ƒ}G dd„ d|ƒ}|  t|ƒddt|ƒdf ¡ |j |j |j |  |jd¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z@TestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumber3c                 S   s$   t | jƒd }t | |¡}||_|S )Né   )r°  rú  rý   r  r  r‡  rX   rX   rY   r  ï	  s    zHTestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumber3.__new__Nr/  rX   rX   rX   rY   ÚAutoNumber3î	  s   rŽ  c                   @   s   e Zd ZdZdZdZdZdS )z:TestEnum.test_inherited_new_from_mixed_enum.<locals>.Colorr¼   rX   Nr‰  rX   rX   rX   rY   rÂ   ô	  s   rÂ   rm   rŠ  é   )r   rç   r°  r¿   rÀ   rÁ   )r`   rŽ  rÂ   rX   rX   rY   Ú"test_inherited_new_from_mixed_enumí	  s    z+TestEnum.test_inherited_new_from_mixed_enumc                 C   sB   G dd„ dƒ}G dd„ dt ƒ}|  |ƒ |j¡ |  |j|ƒ ¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z+TestEnum.test_equality.<locals>.AlwaysEqualc                 S   s   dS )NTrX   ©r`   rk  rX   rX   rY   Ú__eq__
  s    z2TestEnum.test_equality.<locals>.AlwaysEqual.__eq__N)rf   rg   rh   r’  rX   rX   rX   rY   ÚAlwaysEqual 
  s   r“  c                   @   s   e Zd ZdZdS )z,TestEnum.test_equality.<locals>.OrdinaryEnumrk   N)rf   rg   rh   rR  rX   rX   rX   rY   ÚOrdinaryEnum
  s   r”  )r   rç   rR  )r`   r“  r”  rX   rX   rY   Útest_equalityÿ	  s    zTestEnum.test_equalityc                 C   s€   G dd„ dt ƒ}|  t|ƒ|j|j|j|j|jg¡ |  |j|jk¡ |  |j|jk¡ |  |j|jk ¡ |  |j|jk¡ d S )Nc                   @   s$   e Zd ZdZdZdZdZdZdZdS )z*TestEnum.test_ordered_mixin.<locals>.Gradez	A B C D Frv   ru   rm   rl   rk   N)	rf   rg   rh   r  rÁ  rÂ  rÃ  rÄ  rÅ  rX   rX   rX   rY   ÚGrade	
  s   r–  )	r   rç   r±  rÁ  rÂ  rÃ  rÄ  rÅ  rN  )r`   r–  rX   rX   rY   Útest_ordered_mixin
  s    $zTestEnum.test_ordered_mixinc                 C   sˆ   G dd„ dt ƒ}|  |j|dƒ¡ |  t¡ |j W d   ƒ n1 sH0    Y  |  t¡ |d  W d   ƒ n1 sz0    Y  d S )Nc                   @   s$   e Zd ZdZdZdZedd„ ƒZdS )z/TestEnum.test_missing_deprecated.<locals>.Labelr   rk   rl   c                 S   s   | j S r²   ©ÚAnyApple©r  rª  rX   rX   rY   Ú	_missing_
  s    z9TestEnum.test_missing_deprecated.<locals>.Label._missing_N)rf   rg   rh   r™  ÚRedAppleÚ
GreenApplerI  r›  rX   rX   rX   rY   ÚLabel
  s
   rž  ru   Úredapple©r   rç   r™  r=  r¥  rŸ  r  ©r`   rž  rX   rX   rY   Útest_missing_deprecated
  s    $z TestEnum.test_missing_deprecatedc                 C   sˆ   G dd„ dt ƒ}|  |j|dƒ¡ |  t¡ |j W d   ƒ n1 sH0    Y  |  t¡ |d  W d   ƒ n1 sz0    Y  d S )Nc                   @   s$   e Zd ZdZdZdZedd„ ƒZdS )z$TestEnum.test_missing.<locals>.Labelr   rk   rl   c                 S   s   | j S r²   r˜  ©r  rè   rX   rX   rY   Ú_missing_value_*
  s    z4TestEnum.test_missing.<locals>.Label._missing_value_N©rf   rg   rh   r™  rœ  r  rI  r¤  rX   rX   rX   rY   rž  &
  s
   rž  ru   rŸ  r   r¡  rX   rX   rY   Útest_missing%
  s    $zTestEnum.test_missingc                 C   s~   G dd„ dt ƒ}|d  |  t¡ |j W d   ƒ n1 s>0    Y  |  t¡ |dƒ W d   ƒ n1 sp0    Y  d S )Nc                   @   s    e Zd ZdZdZedd„ ƒZdS )z)TestEnum.test_missing_name.<locals>.Labelrk   rl   c                 S   s(   | D ]}|j  ¡ | ¡ kr|  S qd S r²   ©rª  Úlower)r  rª  r%   rX   rX   rY   Ú_missing_name_8
  s    z8TestEnum.test_missing_name.<locals>.Label._missing_name_N©rf   rg   rh   rœ  r  rI  r©  rX   rX   rX   rY   rž  5
  s   rž  rŸ  )r   r=  r¥  rŸ  r›   r¡  rX   rX   rY   Útest_missing_name4
  s    	$zTestEnum.test_missing_namec                 C   sX   G dd„ dt ƒ}|  |j|dƒ¡ |  t¡ |d  W d   ƒ n1 sJ0    Y  d S )Nc                   @   s$   e Zd ZdZdZdZedd„ ƒZdS )z4TestEnum.test_missing_value_bad_input.<locals>.Labelr   rk   rl   c                 S   s   | j S r²   r˜  r£  rX   rX   rY   r¤  I
  s    zDTestEnum.test_missing_value_bad_input.<locals>.Label._missing_value_Nr¥  rX   rX   rX   rY   rž  E
  s
   rž  ru   T)r   rç   r™  r=  r  r¡  rX   rX   rY   Útest_missing_value_bad_inputD
  s    z%TestEnum.test_missing_value_bad_inputc                 C   s¨   G dd„ dt ƒ}|  t¡ |j W d   ƒ n1 s60    Y  |  t¡ |dƒ W d   ƒ n1 sh0    Y  |  t¡ |d  W d   ƒ n1 sš0    Y  d S )Nc                   @   s    e Zd ZdZdZedd„ ƒZdS )z4TestEnum.test_missing_name_bad_return.<locals>.Labelrk   rl   c                 S   s   d S r²   rX   rš  rX   rX   rY   r©  U
  s    zCTestEnum.test_missing_name_bad_return.<locals>.Label._missing_name_Nrª  rX   rX   rX   rY   rž  R
  s   rž  rŸ  )r   r=  r¥  rŸ  r›   r  r¡  rX   rX   rY   Útest_missing_name_bad_returnQ
  s    $&z%TestEnum.test_missing_name_bad_returnc                 C   s   dd„ }|   t|¡ d S )Nc                  S   s4   G dd„ dt ƒ} G dd„ d| ƒ}G dd„ d|ƒ}d S )Nc                   @   s   e Zd Zdd„ ZdS )z>TestEnum.test_extending2.<locals>.bad_extension.<locals>.Shadec                 S   s   t | jƒ d S r²   )r“  rª  rŒ   rX   rX   rY   Úshadec
  s    zDTestEnum.test_extending2.<locals>.bad_extension.<locals>.Shade.shadeN©rf   rg   rh   r®  rX   rX   rX   rY   ÚShadeb
  s   r°  c                   @   s   e Zd ZdZdZdZdS )z>TestEnum.test_extending2.<locals>.bad_extension.<locals>.Colorrk   rl   rm   Nró  rX   rX   rX   rY   rÂ   e
  s   rÂ   c                   @   s   e Zd ZdZdZdZdS )zBTestEnum.test_extending2.<locals>.bad_extension.<locals>.MoreColorru   rv   r1  Nrô  rX   rX   rX   rY   rö  i
  s   rö  rÃ   )r°  rÂ   rö  rX   rX   rY   r÷  a
  s    z/TestEnum.test_extending2.<locals>.bad_extensionr]  rø  rX   rX   rY   Útest_extending2`
  s    zTestEnum.test_extending2c                 C   sF   G dd„ dt ƒ}G dd„ d|ƒ}G dd„ d|ƒ}|  |j ¡ d¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z'TestEnum.test_extending3.<locals>.Shadec                 S   s   | j S r²   r©  rŒ   rX   rX   rY   r®  q
  s    z-TestEnum.test_extending3.<locals>.Shade.shadeNr¯  rX   rX   rX   rY   r°  p
  s   r°  c                   @   s   e Zd Zdd„ ZdS )z'TestEnum.test_extending3.<locals>.Colorc                 S   s
   d| j  S )Nz%s hexlified!r—  rŒ   rX   rX   rY   r¥  t
  s    z+TestEnum.test_extending3.<locals>.Color.hexN)rf   rg   rh   r¥  rX   rX   rX   rY   rÂ   s
  s   rÂ   c                   @   s   e Zd ZdZdZdZdS )z+TestEnum.test_extending3.<locals>.MoreColorru   rv   r1  Nrô  rX   rX   rX   rY   rö  v
  s   rö  z5 hexlified!)r   rç   rõ  r¥  )r`   r°  rÂ   rö  rX   rX   rY   Útest_extending3o
  s    zTestEnum.test_extending3c                 C   s˜   G dd„ dt ƒ}|  t|ƒ|j|j|j|jg¡ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  |jjd¡ d S )Nc                   @   s    e Zd ZdZdZdZdZdZdS )z'TestEnum.test_extending5.<locals>.Colorzred green blue valuerk   rl   rm   ru   N)rf   rg   rh   r¾   r¿   rÀ   rÁ   rè   rX   rX   rX   rY   rÂ   }
  s
   rÂ   rè   ru   rk   )	r   rç   r±  r¿   rÀ   rÁ   rè   rª  rN  rÄ   rX   rX   rY   Útest_extending5|
  s     zTestEnum.test_extending5©r  ÚContinuez!Request received, please continue©ée   zSwitching Protocolsz.Switching to new protocol; obey Upgrade header)éf   Ú
Processingc                 C   s   dd„ }|   t|¡ d S )Nc                  S   s$   G dd„ dt ƒ} G dd„ dt ƒ}d S )Nc                   @   s   e Zd ZdZdZdZdS )zCTestEnum.test_no_duplicates.<locals>.bad_duplicates.<locals>.Color1rk   rl   rm   Nró  rX   rX   rX   rY   ÚColor1’
  s   rº  c                   @   s   e Zd ZdZdZdZdZdS )zCTestEnum.test_no_duplicates.<locals>.bad_duplicates.<locals>.Color2rk   rl   rm   N)rf   rg   rh   r¿   rÀ   rÁ   ZgrenerX   rX   rX   rY   ÚColor2–
  s   r»  )r   )rº  r»  rX   rX   rY   Úbad_duplicates‘
  s    z3TestEnum.test_no_duplicates.<locals>.bad_duplicatesrM  )r`   r¼  rX   rX   rY   Útest_no_duplicates
  s    
zTestEnum.test_no_duplicatesc                 C   s&   G dd„ dt ƒ}G dd„ dtt ƒ}d S )Nc                   @   s   e Zd ZdZdZdZdS )z0TestEnum.test_no_duplicates_kinda.<locals>.Sillyrk   r  rm   N©rf   rg   rh   r¡  r¢  rª  rX   rX   rX   rY   ÚSillyž
  s   r¿  c                   @   s   e Zd ZdZdZdZdZdS )z2TestEnum.test_no_duplicates_kinda.<locals>.Sillierrk   rl   rm   ru   N©rf   rg   rh   Úsinglerª  Útriplerè   rX   rX   rX   rY   ÚSillier¢
  s   rÃ  )r   r   ©r`   r¿  rÃ  rX   rX   rY   Útest_no_duplicates_kinda
  s    z!TestEnum.test_no_duplicates_kindac                 C   s:   G dd„ dt ƒ}|  t|jjdƒd¡ |  |jjd¡ d S )Nc                   @   s@   e Zd ZdZdZdZdZdZdZdZ	dZ
d	d
„ Zedd„ ƒZdS )z"TestEnum.test_init.<locals>.Planet©çIæTf|ÑDç    
BA©çQX4Eç    öWA©gÂoÞÅEg    §TXA©g¶¥ñ	ÿàDg    (ëIA©gÏc‹™’Ž˜Eg   €†‘A©g™[‘\h}Eg    ï¼ŒA©g#'?‚TöQEg   €ý_xA©göJáÇ-UEg    ™wAc                 S   s   || _ || _d S r²   ©ÚmassÚradius)r`   rÓ  rÔ  rX   rX   rY   r_   ²
  s    z+TestEnum.test_init.<locals>.Planet.__init__c                 S   s   d}|| j  | j| j  S ©NçyÐ´WÒ=rÒ  ©r`   ÚGrX   rX   rY   Úsurface_gravityµ
  s    z2TestEnum.test_init.<locals>.Planet.surface_gravityN)rf   rg   rh   ÚMERCURYÚVENUSÚEARTHÚMARSÚJUPITERÚSATURNÚURANUSÚNEPTUNEr_   r¬  rÙ  rX   rX   rX   rY   ÚPlanet©
  s   râ  rl   çš™™™™™#@rÌ  ©r   rç   ÚroundrÜ  rÙ  rè   ©r`   râ  rX   rX   rY   Ú	test_init¨
  s    zTestEnum.test_initc                 C   sf   G dd„ dt tƒ}G dd„ d|ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )	Nc                   @   s$   e Zd ZdZdd„ Zedd„ ƒZdS )zATestEnum.test_init_and_shadowing_attribute.<locals>.SelectionEnumúdb userc                 _   s*   t | jƒ}t | |d ¡}||_||_|S r‹   )r°  rú  r  r  Ú_countr  ©r  ra   rb   Úcountr§   rX   rX   rY   r  À
  s
    
zITestEnum.test_init_and_shadowing_attribute.<locals>.SelectionEnum.__new__c                 _   s
   | f| S r²   rX   ©rª  r    rë  r1  ra   rb   rX   rX   rY   Ú_generate_next_value_Æ
  s    zWTestEnum.test_init_and_shadowing_attribute.<locals>.SelectionEnum._generate_next_value_N©rf   rg   rh   rï   r  Ústaticmethodrí  rX   rX   rX   rY   ÚSelectionEnum¾
  s   rð  c                   @   s   e Zd ZdZdZdZdS )zDTestEnum.test_init_and_shadowing_attribute.<locals>.DeviceTypeSourcezuser systemúUser controlledúSystem controlledN)rf   rg   rh   r¾   ÚuserÚsystemrX   rX   rX   rY   ÚDeviceTypeSourceÉ
  s   rõ  rô  rò  ró  rñ  )r  r   rç   rô  Údbró  )r`   rð  rõ  rX   rX   rY   Ú!test_init_and_shadowing_attribute½
  s    z*TestEnum.test_init_and_shadowing_attributec                 C   sf   G dd„ dt ƒ}G dd„ d|ƒ}|  t|ƒ|j|j|jg¡ |  |jjdg¡ |  |dgƒ|j¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z6TestEnum.test_nonhash_value.<locals>.AutoNumberInAListc                 S   s$   t | jƒd g}t | ¡}||_|S r   r†  r‡  rX   rX   rY   r  Ô
  s    
z>TestEnum.test_nonhash_value.<locals>.AutoNumberInAList.__new__Nr/  rX   rX   rX   rY   ÚAutoNumberInAListÓ
  s   rø  c                   @   s   e Zd ZdZdZdZdZdS )z1TestEnum.test_nonhash_value.<locals>.ColorInAListr¼   rX   Nr‰  rX   rX   rX   rY   ÚColorInAListÙ
  s   rù  rk   )r   rç   r±  r¿   rÀ   rÁ   rè   )r`   rø  rù  rX   rX   rY   Útest_nonhash_valueÒ
  s
    zTestEnum.test_nonhash_valuec                 C   st   G dd„ dt ƒ}|  t|ƒ|j|j|j|jg¡ |  |j|j¡ |  |jj	d¡ |  |j
j	d¡ |  |jj	d¡ d S )Nc                   @   s8   e Zd ZdZeƒ Zeƒ Zeƒ ZdZeƒ Z	eƒ Z
eƒ ZdS )z>TestEnum.test_number_reset_and_order_cleanup.<locals>.ConfusedzONE TWO THREE UNO DOS TRES FOURrk   N)rf   rg   rh   r¾   r"   rà   rá   râ   ZUNOÚDOSÚTRESÚFOURrX   rX   rX   rY   ÚConfusedã
  s   rþ  rl   rm   ru   )r   rç   r±  rà   rá   râ   rý  r¦  rû  r  rü  ©r`   rþ  rX   rX   rY   Ú#test_number_reset_and_order_cleanupâ
  s    	 z,TestEnum.test_number_reset_and_order_cleanupc                 C   s^   G dd„ dt tƒ}G dd„ d|ƒ}|  |jd¡ |  |dƒ|j¡ |  t|ƒ|j|jg¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )zHTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnumc                 W   s$   |\}}t  | |¡}||_||_|S r²   )rý   r  Úlabelr  )r  ra   rè   r  r§   rX   rX   rY   r  ô
  s
    zPTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnum.__new__Nr/  rX   rX   rX   rY   ÚLabelledIntEnumó
  s   r  c                   @   s   e Zd ZdZdZdS )zETestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledList)rk   ZUnprocessed)rl   zPayment CompleteN)rf   rg   rh   ÚunprocessedÚpayment_completerX   rX   rX   rY   ÚLabelledListû
  s   r  rk   )rý   r   rç   r  r±  r  )r`   r  r  rX   rX   rY   Ú&test_conflicting_types_resolved_in_newò
  s
    z/TestEnum.test_conflicting_types_resolved_in_newc                 C   s`   G dd„ dt ƒ}|  t|ƒ|j|j|jg¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z(TestEnum.test_auto_number.<locals>.Colorúred blue greenN©rf   rg   rh   r¾   r"   r¿   rÁ   rÀ   rX   rX   rX   rY   rÂ     s   rÂ   rk   rl   rm   ©r   rç   r±  r¿   rÁ   rÀ   rè   rÄ   rX   rX   rY   Útest_auto_number  s
    zTestEnum.test_auto_numberc                 C   s`   G dd„ dt ƒ}|  t|ƒ|j|j|jg¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s*   e Zd ZdZdd„ Zeƒ Zeƒ Zeƒ ZdS )z&TestEnum.test_auto_name.<locals>.Colorr  c                 S   s   | S r²   rX   ©rª  r    rë  ÚlastrX   rX   rY   rí    s    z<TestEnum.test_auto_name.<locals>.Color._generate_next_value_N)	rf   rg   rh   r¾   rí  r"   r¿   rÁ   rÀ   rX   rX   rX   rY   rÂ     s
   rÂ   r¿   rÁ   rÀ   r	  rÄ   rX   rX   rY   Útest_auto_name  s
    zTestEnum.test_auto_namec                 C   sp   G dd„ dt ƒ}G dd„ d|ƒ}|  t|ƒ|j|j|jg¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z5TestEnum.test_auto_name_inherit.<locals>.AutoNameEnumc                 S   s   | S r²   rX   r  rX   rX   rY   rí    s    zKTestEnum.test_auto_name_inherit.<locals>.AutoNameEnum._generate_next_value_N©rf   rg   rh   rí  rX   rX   rX   rY   ÚAutoNameEnum  s   r  c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z.TestEnum.test_auto_name_inherit.<locals>.Colorr  Nr  rX   rX   rX   rY   rÂ   !  s   rÂ   r¿   rÁ   rÀ   r	  )r`   r  rÂ   rX   rX   rY   Útest_auto_name_inherit  s    zTestEnum.test_auto_name_inheritc                 C   s$   G dd„ dt ƒ}|  |jjd¡ d S )Nc                   @   s   e Zd ZdZdZeƒ ZdS )z)TestEnum.test_auto_garbage.<locals>.Colorúred bluer¿   N©rf   rg   rh   r¾   r¿   r"   rÁ   rX   rX   rX   rY   rÂ   -  s   rÂ   rk   )r   rç   rÁ   rè   rÄ   rX   rX   rY   Útest_auto_garbage,  s    zTestEnum.test_auto_garbagec                 C   s`   G dd„ dt ƒ}|  t|ƒ|j|j|jg¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s   e Zd ZdZdZdZeƒ ZdS )z3TestEnum.test_auto_garbage_corrected.<locals>.Colorr  r¿   rl   N)rf   rg   rh   r¾   r¿   rÁ   r"   rÀ   rX   rX   rX   rY   rÂ   4  s   rÂ   r¿   rl   rm   r	  rÄ   rX   rX   rY   Útest_auto_garbage_corrected3  s
    z$TestEnum.test_auto_garbage_correctedc                 C   sv   G dd„ dt ƒ}|  t|ƒ|j|j|jg¡ |  dd„ |D ƒg d¢¡ G dd„ dt ƒ}|  |j|j|jgt|ƒ¡ d S )Nc                   @   s"   e Zd ZdZeƒ ZefZeƒ ZdS )z/TestEnum.test_duplicate_auto.<locals>.MoreDupesúA B CN©rf   rg   rh   r¾   r"   rÁ  rÂ  rÃ  rX   rX   rX   rY   Ú	MoreDupesA  s   r  c                 S   s   g | ]
}|j ‘qS rX   r—  r˜  rX   rX   rY   r›  G  rœ  z0TestEnum.test_duplicate_auto.<locals>.<listcomp>)rk   )rk   rl   c                   @   s&   e Zd ZdZeƒ  ZZeƒ Zeƒ ZdS )z+TestEnum.test_duplicate_auto.<locals>.Dupesr  N©	rf   rg   rh   r¾   r"   re  Zprimerorh  r  rX   rX   rX   rY   ÚDupesI  s   
r  )	r   rç   r±  rÁ  rÂ  rÃ  re  rh  r  )r`   r  r  rX   rX   rY   Útest_duplicate_auto?  s
    zTestEnum.test_duplicate_autoc                 C   s¼   G dd„ dt ƒ}G dd„ d|ƒ}|  t|ƒ|j|jg¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd¡ |  |jjd
¡ d S )Nc                   @   s$   e Zd ZdZdd„ Zedd„ ƒZdS )z9TestEnum.test_auto_value_with_auto.<locals>.SelectionEnumrè  c                 _   s0   t | jƒ}t | ¡}||_||_|\|_|_|S r²   )r°  rú  r  r  ré  r  rö  ró  rê  rX   rX   rY   r  T  s    

zATestEnum.test_auto_value_with_auto.<locals>.SelectionEnum.__new__c                 _   s
   | f| S r²   rX   rì  rX   rX   rY   rí  [  s    zOTestEnum.test_auto_value_with_auto.<locals>.SelectionEnum._generate_next_value_Nrî  rX   rX   rX   rY   rð  R  s   rð  c                   @   s    e Zd ZdZedƒZedƒZdS )z0TestEnum.test_auto_value_with_auto.<locals>.Testú	this thatr  r  N)rf   rg   rh   r¾   r"   r  r  rX   rX   rX   rY   ÚTest_  s   r  r  ©r  r  r  r  ©r  r  r  ©	r   rç   r±  r  r  rª  rè   rö  ró  ©r`   rð  r  rX   rX   rY   Útest_auto_value_with_autoP  s    z"TestEnum.test_auto_value_with_autoc                 C   s¼   G dd„ dt ƒ}G dd„ d|ƒ}|  t|ƒ|j|jg¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd¡ |  |jjd
¡ d S )Nc                   @   s$   e Zd ZdZdd„ Zedd„ ƒZdS )z>TestEnum.test_auto_value_with_autovalue.<locals>.SelectionEnumrè  c                 _   s$   t | jƒ}t | ¡}||_||_|S r²   )r°  rú  r  r  ré  r  rê  rX   rX   rY   r  r  s
    

zFTestEnum.test_auto_value_with_autovalue.<locals>.SelectionEnum.__new__c                 _   s
   | f| S r²   rX   rì  rX   rX   rY   rí  x  s    zTTestEnum.test_auto_value_with_autovalue.<locals>.SelectionEnum._generate_next_value_Nrî  rX   rX   rX   rY   rð  p  s   rð  c                   @   s   e Zd ZdZdZdZdS )z5TestEnum.test_auto_value_with_autovalue.<locals>.Testr  r  r  N)rf   rg   rh   r¾   r  r  rX   rX   rX   rY   r  |  s   r  r  r  r  r  r  r  r  r   rX   rX   rY   Útest_auto_value_with_autovaluen  s    z'TestEnum.test_auto_value_with_autovaluec                 C   sd   G dd„ dt ƒ}|  |jj|jj|jjfddddif¡ |  |jj|jj|jjfdddd	if¡ d S )
Nc                   @   s8   e Zd ZdZedddidZedddidZdd	„ Zd
S )z)TestEnum.test_auto_and_kwds.<locals>.ItemúA Br  r¿   T)ÚsizeÚreqr  Fc                 S   s    t  | ¡}||_||_||_|S r²   )r  r  r  r$  r%  )r  rè   r$  r%  r§   rX   rX   rY   r  ‘  s
    
z1TestEnum.test_auto_and_kwds.<locals>.Item.__new__N©rf   rg   rh   r¾   r"   rÁ  rÂ  r  rX   rX   rX   rY   ÚItemŒ  s   r'  rk   r  r¿   Trl   r  F)r   rç   rÁ  rè   r$  r%  rÂ  ©r`   r'  rX   rX   rY   Útest_auto_and_kwds‹  s    (zTestEnum.test_auto_and_kwdsc                 C   s    t  di ¡}|  t|ƒd¡ d S )NÚFoor   )rS   r   rç   r°  )r`   ÚemptyrX   rX   rY   Útest_empty_with_functional_apiš  s    z'TestEnum.test_empty_with_functional_apic                 C   s:   G dd„ dt ƒ}|  t|jjdƒd¡ |  |jjd¡ d S )Nc                   @   s<   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zed
d„ ƒZdS )z'TestEnum.test_auto_init.<locals>.Planetzmass radiusrÆ  rÉ  rÌ  rÍ  rÎ  rÏ  rÐ  rÑ  c                 S   s   d}|| j  | j| j  S rÕ  rÒ  r×  rX   rX   rY   rÙ  ©  s    z7TestEnum.test_auto_init.<locals>.Planet.surface_gravityN)rf   rg   rh   rï   rÚ  rÛ  rÜ  rÝ  rÞ  rß  rà  rá  r¬  rÙ  rX   rX   rX   rY   râ  Ÿ  s   râ  rl   rã  rÌ  rä  ræ  rX   rX   rY   Útest_auto_initž  s    zTestEnum.test_auto_initc                 C   st   G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )	Nc                   @   s   e Zd ZdZdZdZdZdS )z1TestEnum.test_auto_init_with_value.<locals>.Colorz
value, rgb)rk   ©rk   r   r   )rl   ©r   rk   r   )rm   ©r   r   rk   N)rf   rg   rh   rï   ÚREDÚBLUEÚGREENrX   rX   rX   rY   rÂ   ²  s   rÂ   rk   rl   rm   r.  r/  r0  )r   rç   r1  rè   r2  r3  ZrgbrÄ   rX   rX   rY   Útest_auto_init_with_value±  s    z"TestEnum.test_auto_init_with_valuec                 C   s4   G dd„ dt ƒ}|  |j|ju ¡ |  t|d¡ d S )Nc                   @   s   e Zd ZeZdZdZdS )z'TestEnum.test_noalias.<locals>.Settingsrk   N)rf   rg   rh   r   Ú
_settings_r¿   ÚrojorX   rX   rX   rY   ÚSettings¿  s   r7  rk   )r   rL  r¿   r6  r=  rÌ   )r`   r7  rX   rX   rY   Útest_noalias¾  s    zTestEnum.test_noaliasc                 C   sR   G dd„ dt tƒ}|  |jd¡ |  |jd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s   e Zd ZdZdZdZdZdS )z*TestEnum.test_auto_and_init.<locals>.Fieldú
TYPE STARTúvalue __doc__úChar, Date, Logical, etc.úField offset in recordN)rf   rg   rh   r¾   rï   ÚTYPEÚSTARTrX   rX   rX   rY   ÚFieldÇ  s   r?  rk   rl   r;  r<  )rý   r   rç   r=  r>  r¶   ©r`   r?  rX   rX   rY   Útest_auto_and_initÆ  s
    zTestEnum.test_auto_and_initc                 C   sP   G dd„ dt ƒ}|  |jd¡ |  |jd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s    e Zd ZdZdZdZdZdZdS )z+TestEnum.test_auto_and_start.<locals>.Fieldr9  r   r:  r;  r<  N)rf   rg   rh   r¾   Ú_start_rï   r=  r>  rX   rX   rX   rY   r?  Ò  s
   r?  r   rk   r;  r<  )r   rç   r=  r>  r¶   r@  rX   rX   rY   Útest_auto_and_startÑ  s
    zTestEnum.test_auto_and_startc                 C   sŽ   G dd„ dt tƒ}|  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ d S )Nc                   @   s$   e Zd ZdZdZdZdZdZdZdS )z:TestEnum.test_auto_and_init_and_some_values.<locals>.FieldúTYPE START BLAH BELCHr:  r;  r<  ©rv   ú	test blahú
test belchN©	rf   rg   rh   r¾   rï   r=  r>  ÚBLAHÚBELCHrX   rX   rX   rY   r?  Þ  s   r?  rk   rl   rv   r1  r;  r<  rF  rG  )rý   r   rç   r=  r>  rI  rJ  r¶   r@  rX   rX   rY   Ú"test_auto_and_init_and_some_valuesÝ  s    z+TestEnum.test_auto_and_init_and_some_valuesc                 C   sB   |   td¡" G dd„ dttƒ}W d   ƒ n1 s40    Y  d S )Nz8Field\.BLAH: number of fields provided do not match initc                   @   s$   e Zd ZdZdZdZdZdZdZdS )zFTestEnum.test_auto_and_init_w_value_and_too_many_values.<locals>.FieldrD  r:  )rk   r;  )rl   r<  )rv   r1  rF  )rv  rG  NrH  rX   rX   rX   rY   r?  ð  s   r?  )r\   rÌ   rý   r   r@  rX   rX   rY   Ú.test_auto_and_init_w_value_and_too_many_valuesî  s    z7TestEnum.test_auto_and_init_w_value_and_too_many_valuesc                 C   sÎ   G dd„ dt tƒ}|  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s$   e Zd ZdZdZdZdZdZdZdS )zBTestEnum.test_auto_and_init_and_some_complex_values.<locals>.FieldrD  zvalue __doc__ help)r;  ú!fields composed of character data)r<  ú#where the data starts in the record)rv   rF  ú	some help)rG  úsome more helpNrH  rX   rX   rX   rY   r?  ù  s   r?  rk   rl   rv   r1  r;  r<  rF  rG  rM  rN  rO  rP  )	rý   r   rç   r=  r>  rI  rJ  r¶   Úhelpr@  rX   rX   rY   Ú*test_auto_and_init_and_some_complex_valuesø  s    z3TestEnum.test_auto_and_init_and_some_complex_valuesc                 C   sœ   G dd„ dt ƒ}G dd„ d|ƒ}|  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jjd	¡ |  |jjd
¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s   e Zd ZdZdZdS )z7TestEnum.test_auto_and_init_inherited.<locals>.AutoEnumr   r:  N)rf   rg   rh   rB  rï   rX   rX   rX   rY   ÚAutoEnum  s   rS  c                   @   s    e Zd ZdZdZdZdZdZdS )z4TestEnum.test_auto_and_init_inherited.<locals>.FieldrD  r;  r<  rE  rG  N)rf   rg   rh   r¾   r=  r>  rI  rJ  rX   rX   rX   rY   r?    s
   r?  r   rk   rv   r1  r;  r<  rF  rG  )r   rç   r=  r>  rI  rJ  r¶   )r`   rS  r?  rX   rX   rY   Útest_auto_and_init_inherited  s    z%TestEnum.test_auto_and_init_inheritedc                 C   sB   |   td¡" G dd„ dttƒ}W d   ƒ n1 s40    Y  d S )Nz_value_ not set in __new__c                   @   s8   e Zd ZdZdd„ Zdd„ Zdd„ ZdZd	Zd
Z	dZ
dS )z3TestEnum.test_missing_value_error.<locals>.Combinedúvalue sequencec                 S   s   | j S r²   ©Úsequence©rš  rX   rX   rY   r¯  %  rœ  z<TestEnum.test_missing_value_error.<locals>.Combined.<lambda>c                 W   sH   t  | |¡}d|v r0| dd¡\}}| d¡}n|}d }||_||_|S )Nú(rk   z ))r  r  r&  ÚstripÚfis_nameÚsegment)r  rè   ra   r#   r[  r\  rX   rX   rY   r  '  s    z;TestEnum.test_missing_value_error.<locals>.Combined.__new__c                 S   s   d| j j| jf S ©Nú<%s.%s>©re   rf   r  rŒ   rX   rX   rY   r"  3  s    z<TestEnum.test_missing_value_error.<locals>.Combined.__repr__)zAn$(1,2)r   )zAn$(3,2)rk   )zAn$(5,1)rl   )zBn$rm   N)rf   rg   rh   rï   r¾   r  r"  Úkey_typeÚ
company_idr  rõ   rX   rX   rX   rY   ÚCombined"  s   rb  )r\   rÌ   r  r   )r`   rb  rX   rX   rY   Útest_missing_value_error   s    z!TestEnum.test_missing_value_errorc                 C   sN   G dd„ dt jƒ}|  |j|jgt|ƒ¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s(   e Zd ZdZe ¡ Zee ¡ B ZdZdS )z(TestEnum.test_auto_and_enum.<locals>.Fooza b crl   N)	rf   rg   rh   r¾   rS   r"   rR  rz  r  rX   rX   rX   rY   r*  =  s   r*  rk   rm   )rS   r   rç   rR  r  r±  rè   rz  )r`   r*  rX   rX   rY   Útest_auto_and_enum<  s    zTestEnum.test_auto_and_enumc                 C   s4   G dd„ dt ƒ}G dd„ d|ƒ}|  |jjd¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z1TestEnum.test_multiple_arg_auto.<locals>.AutoNamec                 _   s
   | f| S r²   rX   ©rª  r    rë  r  ra   rb   rX   rX   rY   rí  I  s    zGTestEnum.test_multiple_arg_auto.<locals>.AutoName._generate_next_value_Nr  rX   rX   rX   rY   ÚAutoNameH  s   rf  c                   @   s$   e Zd ZdZeddƒZeddƒZdS )z/TestEnum.test_multiple_arg_auto.<locals>.Planetúvalue mass radiusrÇ  rÈ  rÊ  rË  N©rf   rg   rh   rï   r"   rÚ  rÛ  rX   rX   rX   rY   râ  L  s   
râ  rÚ  ©r   rç   rÚ  rè   ©r`   rf  râ  rX   rX   rY   Útest_multiple_arg_autoG  s    zTestEnum.test_multiple_arg_autoc                 C   s4   G dd„ dt ƒ}G dd„ d|ƒ}|  |jjd¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z3TestEnum.test_auto_w_multiple_arg.<locals>.AutoNamec                 _   s   |r| f| S | S d S r²   rX   re  rX   rX   rY   rí  T  s    
zITestEnum.test_auto_w_multiple_arg.<locals>.AutoName._generate_next_value_Nr  rX   rX   rX   rY   rf  S  s   rf  c                   @   s(   e Zd ZdZeƒ ddfZeƒ ddfZdS )z1TestEnum.test_auto_w_multiple_arg.<locals>.Planetrg  rÇ  rÈ  rÊ  rË  Nrh  rX   rX   rX   rY   râ  Z  s   râ  rÚ  ri  rj  rX   rX   rY   Útest_auto_w_multiple_argR  s    z!TestEnum.test_auto_w_multiple_argc                 C   s4   G dd„ dt ƒ}G dd„ d|ƒ}|  |jjd¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z1TestEnum.test_auto_gnv_and_init.<locals>.AutoNamec                 _   s
   | f| S r²   rX   re  rX   rX   rY   rí  b  s    zGTestEnum.test_auto_gnv_and_init.<locals>.AutoName._generate_next_value_Nr  rX   rX   rX   rY   rf  a  s   rf  c                   @   s   e Zd ZdZdZdZdS )z/TestEnum.test_auto_gnv_and_init.<locals>.Planetrg  rÆ  rÉ  N)rf   rg   rh   rï   rÚ  rÛ  rX   rX   rX   rY   râ  e  s   râ  rÚ  ri  rj  rX   rX   rY   Útest_auto_gnv_and_init`  s    zTestEnum.test_auto_gnv_and_initc                 C   sÜ  G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  |j	jd¡ |  |j	jd¡ |  |j	jd¡ |  |j	jd¡ |  |j	jd¡ |  
|dƒ|j¡ |  
|dƒ|j¡ |  
|dƒ|j¡ |  
|dƒ|j¡ |  
|dƒ|j¡ |  
|dƒ|j¡ |  
|d	ƒ|j¡ |  
|d
ƒ|j¡ |  
|dƒ|j	¡ |  
|dƒ|j	¡ |  
|dƒ|j	¡ |  
|dƒ|j	¡ d S )Nc                   @   s$   e Zd ZdZdZeZdZdZdZ	dS )z:TestEnum.test_MultiValue_with_init_wo_value.<locals>.Colorúcolor r g br¼   ©r¿   rk   rl   rm   ©rÀ   ru   rv   r1  ©rÁ   rv  rÚ   rp  N©
rf   rg   rh   rï   r¾   r$   r5  r¿   rÀ   rÁ   rX   rX   rX   rY   rÂ     s   rÂ   r¿   rk   rl   rm   rÀ   ru   rv   r1  rÁ   rv  rÚ   rp  )r   rç   r¿   rè   r„   ÚrÚgrz  rÀ   rÁ   r¦  rÄ   rX   rX   rY   Ú"test_MultiValue_with_init_wo_value€  s8    z+TestEnum.test_MultiValue_with_init_wo_valuec                 C   s¬  G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  	|dƒ|j¡ |  	|dƒ|j¡ |  	|dƒ|j¡ |  	|dƒ|j¡ |  	|dƒ|j¡ |  	|dƒ|j¡ |  	|d	ƒ|j¡ |  	|d
ƒ|j¡ |  	|dƒ|j¡ |  	|dƒ|j¡ |  	|dƒ|j¡ |  	|dƒ|j¡ d S )Nc                   @   s$   e Zd ZdZdZeZdZdZdZ	dS )z9TestEnum.test_MultiValue_with_init_w_value.<locals>.Colorzvalue r g br¼   ro  rp  rq  Nrr  rX   rX   rX   rY   rÂ   ¥  s   rÂ   r¿   rk   rl   rm   rÀ   ru   rv   r1  rÁ   rv  rÚ   rp  )
r   rç   r¿   rè   rs  rt  rz  rÀ   rÁ   r¦  rÄ   rX   rX   rY   Ú!test_MultiValue_with_init_w_value¤  s2    z*TestEnum.test_MultiValue_with_init_w_valuec                 C   s  G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  |jjd¡ |  |jjd¡ |  |j	jd¡ |  |j	jd¡ |  |j	jd¡ |  |j	jd¡ |  |j	jd¡ |  
|dƒ|j¡ |  
|dƒ|j¡ |  
|dƒ|j¡ |  
|dƒ|j¡ |  
|dƒ|j¡ |  
|dƒ|j¡ |  
|d	ƒ|j¡ |  
|d
ƒ|j¡ |  
|dƒ|j¡ |  
|dƒ|j¡ |  
|dƒ|j	¡ |  
|dƒ|j	¡ |  
|dƒ|j	¡ |  
|dƒ|j	¡ |  
|dƒ|j	¡ d S )Nc                   @   s$   e Zd ZdZdZeZdZdZdZ	dS )zGTestEnum.test_MultiValue_with_init_wo_value_w_autonumber.<locals>.Colorrn  r¼   )r¿   rw  rq  rß  )rÀ   rã  é2   é<   )rÁ   éF   éP   éZ   Nrr  rX   rX   rX   rY   rÂ   Æ  s   rÂ   rk   r¿   rw  rq  rß  rl   rÀ   rã  rw  rx  rm   rÁ   ry  rz  r{  )r   rç   r¿   rè   r„   rs  rt  rz  rÀ   rÁ   r¦  rÄ   rX   rX   rY   Ú/test_MultiValue_with_init_wo_value_w_autonumberÅ  s>    z8TestEnum.test_MultiValue_with_init_wo_value_w_autonumberc                 C   sh   G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |dƒ|j¡ |  |dƒ|j¡ d S )Nc                   @   s(   e Zd ZeefZdZdZdZdZ	dZ
dS )zETestEnum.test_multivalue_and_autonumber_wo_init_wo_value.<locals>.Dayúone two threerv  )Ú21r¡  )Ú22r¢  )Z23rë  N)rf   rg   rh   r$   r   r5  r¾   rB  r¡  r¢  rë  rX   rX   rX   rY   ÚDayí  s   r€  rv  rÚ   rp  r~  r¡  )r   rç   r¡  rè   r¢  rë  )r`   r€  rX   rX   rY   Ú/test_multivalue_and_autonumber_wo_init_wo_valueì  s    z8TestEnum.test_multivalue_and_autonumber_wo_init_wo_valuec                 C   s˜   G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |dƒ|j¡ |  |d	ƒ|j¡ d S )
Nc                   @   sF   e Zd ZeefZdZdZdZdZ	e
ƒ dfZe
ƒ dfZdZe
ƒ dfZd	S )
zKTestEnum.test_multivalue_and_autonumber_wo_init_w_some_value.<locals>.Colorz#BLACK RED BLUE YELLOW GREEN MAGENTArê   )rP   ZText0)éÎÿÿÿZText1ÚText2ZText3)éºÿÿÿZText4ZText5N)rf   rg   rh   r$   r   r5  r¾   rï   ÚBLACKr1  r"   r2  ÚYELLOWr3  ÚMAGENTArX   rX   rX   rY   rÂ   û  s   

rÂ   rP   r‚  iÏÿÿÿiÐÿÿÿr„  i»ÿÿÿrƒ  )	r   rç   r…  rè   r1  r2  r†  r3  r‡  rÄ   rX   rX   rY   Ú3test_multivalue_and_autonumber_wo_init_w_some_valueú  s    
z<TestEnum.test_multivalue_and_autonumber_wo_init_w_some_valuec                 C   sN   G dd„ dt ƒ}|  t¡  G dd„ d|ƒ}W d   ƒ n1 s@0    Y  d S )Nc                   @   s   e Zd ZeZdS )zBTestEnum.test_combine_new_settings_with_old_settings.<locals>.AutoN)rf   rg   rh   r   r5  rX   rX   rX   rY   ÚAuto  s   r‰  c                   @   s   e Zd Zeƒ Zeƒ ZdZdS )zHTestEnum.test_combine_new_settings_with_old_settings.<locals>.AutoUniquerk   N)rf   rg   rh   r"   rI  ZBLUHZICKrX   rX   rX   rY   Ú
AutoUnique  s   rŠ  )r   r=  r›   )r`   r‰  rŠ  rX   rX   rY   Ú+test_combine_new_settings_with_old_settings  s    z4TestEnum.test_combine_new_settings_with_old_settingsc                 C   sX   G dd„ dt tƒ}|  t|dƒ¡ |  t|dƒ¡ |  t|dƒ¡ |  t|jt ƒ¡ d S )Nc                   @   sŒ   e Zd ZdZdZeZdZeƒ Z	e
dƒD ]Zedfe	de < q&e
dƒD ]Zed d	fe	d
e < qDe
dƒD ]Zed dfe	de < qfeZeZdS )z'TestEnum.test_timedelta.<locals>.Periodz3
            different lengths of time
            zvalue periodzPeriod ié   Údayzday_%drw   rv  Úweekzweek_%dr|  rß  rÐ  zmonth_%dN)rf   rg   rh   r¶   rï   r   r5  Ú_ignore_Úvarsr¼  r–   r*  Úday_1ZOneDayZweek_1ZOneWeekrX   rX   rX   rY   r¼    s   r¼  r  r*  )r8   r   rL  r@  rN  rö  r‘  r½  rX   rX   rY   Útest_timedelta  s
    zTestEnum.test_timedeltac                 C   s(   G dd„ dt ƒ}|  |j|jd ¡ d S )Nc                   @   s4   e Zd ZeG dd„ deƒƒZeG dd„ deƒƒZdS )z!TestEnum.test_skip.<locals>.enumAc                   @   s   e Zd ZdZdZdS )z'TestEnum.test_skip.<locals>.enumA.enumBrR  rz  N©rf   rg   rh   ZelementAZelementBrX   rX   rX   rY   ÚenumB/  s   r”  c                   @   s   e Zd ZdZdZdS )z'TestEnum.test_skip.<locals>.enumA.enumCr  rÅ  N©rf   rg   rh   ZelementCZelementDrX   rX   rX   rY   ÚenumC3  s   r–  N)rf   rg   rh   r    r   r”  r–  rX   rX   rX   rY   ÚenumA.  s   r—  r”  ©r   r¦  r”  rà  ©r`   r—  rX   rX   rY   Ú	test_skip-  s    	zTestEnum.test_skipc                 C   s(   G dd„ dt ƒ}|  |j|jd ¡ d S )Nc                   @   s4   e Zd ZeG dd„ deƒƒZeG dd„ deƒƒZdS )z&TestEnum.test_nonmember.<locals>.enumAc                   @   s   e Zd ZdZdZdS )z,TestEnum.test_nonmember.<locals>.enumA.enumBrR  rz  Nr“  rX   rX   rX   rY   r”  ;  s   r”  c                   @   s   e Zd ZdZdZdS )z,TestEnum.test_nonmember.<locals>.enumA.enumCr  rÅ  Nr•  rX   rX   rX   rY   r–  ?  s   r–  N)rf   rg   rh   r&   r   r”  r–  rX   rX   rX   rY   r—  :  s   r—  r”  r˜  r™  rX   rX   rY   Útest_nonmember9  s    	zTestEnum.test_nonmemberc                 C   sb   G dd„ dt ƒ}|  |j|jgt|ƒ¡ |  ttg|j¡ |  | d¡d¡ |  | d¡d¡ d S )Nc                   @   s<   e Zd ZdZeeƒZeeƒZe	dd„ ƒZ
dd„ Zdd„ ZdS )	z:TestEnum.test_member_with_external_functions.<locals>.Funczan_int a_strc                 S   s   dd„ t | ƒD ƒS )Nc                 S   s   g | ]
}|j ‘qS rX   r—  r˜  rX   rX   rY   r›  L  rœ  zTTestEnum.test_member_with_external_functions.<locals>.Func.types.<locals>.<listcomp>©r±  r  rX   rX   rY   ÚtypesJ  s    z@TestEnum.test_member_with_external_functions.<locals>.Func.typesc                 S   s   d| j j| jf S r]  ©re   rf   rª  rŒ   rX   rX   rY   r"  M  s    zCTestEnum.test_member_with_external_functions.<locals>.Func.__repr__c                 _   s   | j |i |¤ŽS r²   r—  ©r`   ra   rb   rX   rX   rY   Ú__call__O  s    zCTestEnum.test_member_with_external_functions.<locals>.Func.__call__N)rf   rg   rh   r¾   r%   rý   Úan_intr  Úa_strr±   r  r"  r   rX   rX   rX   rY   ÚFuncF  s   
r£  rv  ÚBlahBlah)r   rç   r¡  r¢  r±  rý   r  r  ©r`   r£  rX   rX   rY   Ú#test_member_with_external_functionsE  s
    z,TestEnum.test_member_with_external_functionsc                 C   sh   G dd„ dt ƒ}|  |j|jgt|ƒ¡ |  |jj|jjg|j¡ |  | ¡ d¡ |  | d¡d¡ d S )Nc                   @   sD   e Zd ZdZedd„ ƒZedd„ ƒZedd„ ƒZdd	„ Z	d
d„ Z
dS )z:TestEnum.test_member_with_internal_functions.<locals>.Funcz	haha hehec                   S   s   dS )NÚhaharX   rX   rX   rX   rY   r§  Z  s    z?TestEnum.test_member_with_internal_functions.<locals>.Func.hahac                 S   s   d|  S )Nzhehe -- what a name!  %s!rX   r©  rX   rX   rY   Úhehe]  s    z?TestEnum.test_member_with_internal_functions.<locals>.Func.hehec                 S   s   dd„ t | ƒD ƒS )Nc                 S   s   g | ]
}|j ‘qS rX   r—  r˜  rX   rX   rY   r›  b  rœ  zTTestEnum.test_member_with_internal_functions.<locals>.Func.types.<locals>.<listcomp>rœ  r  rX   rX   rY   r  `  s    z@TestEnum.test_member_with_internal_functions.<locals>.Func.typesc                 S   s   d| j j| jf S r]  rž  rŒ   rX   rX   rY   r"  c  s    zCTestEnum.test_member_with_internal_functions.<locals>.Func.__repr__c                 _   s   | j |i |¤ŽS r²   r—  rŸ  rX   rX   rY   r   e  s    zCTestEnum.test_member_with_internal_functions.<locals>.Func.__call__N)rf   rg   rh   r¾   r%   r§  r¨  r±   r  r"  r   rX   rX   rX   rY   r£  X  s   


r£  r§  r¤  zhehe -- what a name!  BlahBlah!)r   rç   r§  r¨  r±  rè   r  r¥  rX   rX   rY   Ú#test_member_with_internal_functionsW  s
    z,TestEnum.test_member_with_internal_functionsc                 C   sH   G dd„ dt ƒ}|  |jd¡ |  tdt|dd¡ |  tdt|d¡ d S )Nc                   @   s   e Zd ZedƒZedƒZdS )z9TestEnum.test_constantness_of_constants.<locals>.Universeçôiý!	@rÖ  N)rf   rg   rh   r   r½  rØ  rX   rX   rX   rY   ÚUniversen  s   r«  rª  úcannot rebind constantr½  rp  úcannot delete constant)r   rç   r½  r\   r¥  rM  r¦  ©r`   r«  rX   rX   rY   Útest_constantness_of_constantsm  s    z'TestEnum.test_constantness_of_constantsc                 C   s6   G dd„ dt ƒ}|  |jd¡ |  |jd|j ¡ d S )Nc                   @   s    e Zd ZedƒZede ƒZdS )z=TestEnum.test_math_and_stuff_with_constants.<locals>.Universerª  rl   N)rf   rg   rh   r   r½  r¾  rX   rX   rX   rY   r«  v  s   r«  rª  rl   )r   rç   r½  r¾  r®  rX   rX   rY   Ú"test_math_and_stuff_with_constantsu  s    z+TestEnum.test_math_and_stuff_with_constantsc                 C   s`   G dd„ dt ƒ}|  t|ƒ|j|j|j|jg¡ |  t|jƒ|j|jg¡ |  |j|jv ¡ d S )Nc                   @   s4   e Zd ZdZeƒ Zeƒ Zeƒ Zeƒ Ze	eeB ƒZ
dS )z:TestEnum.test_constant_with_auto_is_updated.<locals>.Fruitzapple banana lemon orangeN)rf   rg   rh   r¾   r"   Úappler‘   ÚlemonÚoranger   ÚCitrusTypesrX   rX   rX   rY   r   }  s   r   )	r   rç   r±  r±  r‘   r²  r³  r´  rN  )r`   r   rX   rX   rY   Ú"test_constant_with_auto_is_updated|  s     z+TestEnum.test_constant_with_auto_is_updatedc                 C   sZ  G dd„ dt ƒ}t|ƒD ]\}}|  ||j¡ q|}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  |jjd¡ |  |j	jd¡ |  |j	jd¡ |  |j	jd¡ |  |j
jd¡ |  |j
jd¡ |  |j
jd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd ¡ |  |jjd!¡ |  |jjd"¡ |  |jjd#¡ G d$d„ dt ƒ}t|ƒD ]\}}|  ||jd ¡ q\|}|  |jjd¡ |  |jjd%¡ |  |jjd¡ |  |jjd&¡ |  |jjd	¡ |  |jjd'¡ |  |j	jd¡ |  |j	jd(¡ |  |j
jd¡ |  |j
jd)¡ |  |jjd¡ |  |jjd*¡ |  |jjd¡ |  |jjd+¡ |  |jjd¡ |  |jjd,¡ |  |jjd¡ |  |jjd-¡ |  |jjd¡ |  |jjd.¡ |  |jjd!¡ |  |jjd/¡ |  t¡  G d0d„ dt ƒ}W d   ƒ n1 s0    Y  |  t¡  G d1d„ dt ƒ}W d   ƒ n1 sL0    Y  d S )2Nc                   @   sD   e Zd ZdZd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 )ú5TestEnum.test_order_as_function.<locals>.TestSequencezvalue, sequencec                 S   s   | j S r²   rV  ©r%   rX   rX   rY   r¯    rœ  ú>TestEnum.test_order_as_function.<locals>.TestSequence.<lambda>©úAn$(1,6)r   ©úAn$(7,2)rk   ©úAn$(9,4)rl   ©ú	Hn$(13,6)rm   ©ú	Cn$(19,3)ru   ©úZn$(1,1)rv   ©úBn(2,1)r1  ©ÚFnrv  ©úRn$(5,1)rÚ   ©úSn$(6,1)rp  ©úQn$(7,2)rw  N©rf   rg   rh   rï   r¾   Úitem_idra  Úwarehouse_noÚcompanyr`  Ú	availableÚcontract_itemÚsales_categoryÚgl_categoryÚwarehouse_categoryÚ	inv_unitsrX   rX   rX   rY   ÚTestSequence‹  s   rÙ  rÐ  rº  r   ra  r¼  rk   rÑ  r¾  rl   rÒ  rÀ  rm   r`  rÂ  ru   rÓ  rÄ  rv   rÔ  rÆ  r1  rÕ  rÈ  rv  rÖ  rÊ  rÚ   r×  rÌ  rp  rØ  rÎ  rw  c                   @   s@   e Zd Zd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 )r¶  c                 S   s
   | j d S r   r—  r·  rX   rX   rY   r¯  ¿  rœ  r¸  r¹  r»  r½  r¿  rÁ  rÃ  rÅ  rÇ  rÉ  rË  rÍ  N)rf   rg   rh   r¾   rÐ  ra  rÑ  rÒ  r`  rÓ  rÔ  rÕ  rÖ  r×  rØ  rX   rX   rX   rY   rÙ  ¾  s   r¹  r»  r½  r¿  rÁ  rÃ  rÅ  rÇ  rÉ  rË  rÍ  c                   @   sD   e Zd ZdZd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 )r¶  rW  c                 S   s   | j S r²   rV  r·  rX   rX   rY   r¯  è  rœ  r¸  r¹  r»  r½  r¿  rÁ  rÃ  rÅ  rÇ  rÉ  rË  rÍ  NrÏ  rX   rX   rX   rY   rÙ  æ  s   c                   @   sD   e Zd ZdZd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 )r¶  rW  c                 S   s   | j S r²   rV  r·  rX   rX   rY   r¯  ø  rœ  r¸  r¹  r½  r¿  r»  rÍ  rÃ  rÅ  rÇ  rÁ  rÉ  rË  N)rf   rg   rh   rï   r¾   rÐ  rÑ  rÒ  ra  rØ  rÓ  rÔ  rÕ  r`  rÖ  r×  rX   rX   rX   rY   rÙ  ö  s   )r   r%  rç   rW  rÐ  rª  rè   ra  rÑ  rÒ  r`  rÓ  rÔ  rÕ  rÖ  r×  rØ  r=  rÌ   )r`   rÙ  r*  r%   ÚtsrX   rX   rY   Útest_order_as_function‰  s†    0zTestEnum.test_order_as_functionc                 C   sX  G dd„ dt ƒ}G dd„ d|ƒ}t|ƒD ]\}}|  ||j¡ q(|}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |j	jd¡ |  |j	jd¡ |  |j	jd¡ |  |j
jd¡ |  |j
jd¡ |  |j
jd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd ¡ |  |jjd!¡ |  |jjd"¡ |  |jjd#¡ |  |jjd$¡ |  |jjd%¡ d S )&Nc                   @   s   e Zd ZdZdd„ ZdS )z;TestEnum.test_order_as_function_in_subclass.<locals>.ParentrU  c                 S   s   | j S r²   rV  rX  rX   rX   rY   r¯  	  rœ  zDTestEnum.test_order_as_function_in_subclass.<locals>.Parent.<lambda>N)rf   rg   rh   rï   r¾   rX   rX   rX   rY   ÚParent  s   rÜ  c                   @   s8   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S )z:TestEnum.test_order_as_function_in_subclass.<locals>.Childr¹  r»  r½  r¿  rÁ  rÃ  rÅ  rÇ  rÉ  rË  rÍ  N)rf   rg   rh   rÐ  ra  rÑ  rÒ  r`  rÓ  rÔ  rÕ  rÖ  r×  rØ  rX   rX   rX   rY   ÚChild  s   rÝ  rÐ  rº  r   ra  r¼  rk   rÑ  r¾  rl   rÒ  rÀ  rm   r`  rÂ  ru   rÓ  rÄ  rv   rÔ  rÆ  r1  rÕ  rÈ  rv  rÖ  rÊ  rÚ   r×  rÌ  rp  rØ  rÎ  rw  )r   r%  rç   rW  rÐ  rª  rè   ra  rÑ  rÒ  r`  rÓ  rÔ  rÕ  rÖ  r×  rØ  )r`   rÜ  rÝ  r*  r%   rÚ  rX   rX   rY   Ú"test_order_as_function_in_subclass  sN    z+TestEnum.test_order_as_function_in_subclassc                 C   s@  G dd„ dt ƒ}G dd„ dt ƒ}G dd„ dtƒ}G dd„ dtƒ}G d	d
„ d
|tƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jd¡ |  t|jƒd¡ G dd
„ d
||tƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jd¡ |  t|jƒddt|jƒdf ¡ G dd
„ d
||tƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jd¡ |  t|jƒddt|jƒdf ¡ G dd„ d||tƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  t|jƒddt|jƒdf ¡ |  |j 	¡ d¡ G dd„ d||tƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  t|jƒddt|jƒdf ¡ |  |j 	¡ d¡ |  |j 
¡ d¡ G dd„ d|||ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  t|jƒddt|jƒdf ¡ |  |j 	¡ d¡ |  |j 
¡ d¡ G dd„ d|||ƒ}	|  |	jjd¡ |  |	jjd¡ |  |	jjd¡ |  t|	jƒddt|jƒdf ¡ |  |	j 	¡ d¡ |  |	j 
¡ d¡ G dd„ d|t||ƒ}
|  |
jjd¡ |  |
jjd¡ |  |
jjd¡ |  t|
jƒddt|jƒdf ¡ |  |
j 	¡ d¡ |  |	j 
¡ d¡ |  t|
tƒ¡ d S ) Nc                   @   s   e Zd Zedd„ ƒZdS )z.TestEnum.test_multiple_mixin.<locals>.MaxMixinc                 S   s   t | ƒ}|| _|S r²   )r°  ÚMAX)r  ÚmaxrX   rX   rY   rß  B  s    z2TestEnum.test_multiple_mixin.<locals>.MaxMixin.MAXN)rf   rg   rh   r±   rß  rX   rX   rX   rY   ÚMaxMixinA  s   rá  c                   @   s   e Zd Zdd„ ZdS )z.TestEnum.test_multiple_mixin.<locals>.StrMixinc                 S   s
   | j  ¡ S r²   ©r  r¨  rŒ   rX   rX   rY   r#  H  s    z6TestEnum.test_multiple_mixin.<locals>.StrMixin.__str__N©rf   rg   rh   r#  rX   rX   rX   rY   ÚStrMixinG  s   rä  c                   @   s   e Zd Zdd„ ZdS )z.TestEnum.test_multiple_mixin.<locals>.SomeEnumc                 S   s   dS )NÚbooyahrX   rŒ   rX   rX   rY   ÚbehaviorK  s    z7TestEnum.test_multiple_mixin.<locals>.SomeEnum.behaviorN)rf   rg   rh   ræ  rX   rX   rX   rY   ÚSomeEnumJ  s   rç  c                   @   s   e Zd Zdd„ Zdd„ ZdS )z1TestEnum.test_multiple_mixin.<locals>.AnotherEnumc                 S   s   dS )Núnuhuh!rX   rŒ   rX   rX   rY   ræ  N  s    z:TestEnum.test_multiple_mixin.<locals>.AnotherEnum.behaviorc                 S   s   dS )Nú
what's up?rX   rŒ   rX   rX   rY   ÚsocialP  s    z8TestEnum.test_multiple_mixin.<locals>.AnotherEnum.socialN)rf   rg   rh   ræ  rê  rX   rX   rX   rY   ÚAnotherEnumM  s   rë  c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS ©z+TestEnum.test_multiple_mixin.<locals>.ColorúRED GREEN BLUEN©rf   rg   rh   r¾   r"   r1  r3  r2  rX   rX   rX   rY   rÂ   R  s   rÂ   rk   rl   rm   ú
Color.BLUEc                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS rì  rî  rX   rX   rX   rY   rÂ   \  s   rÁ   z%r is not %rc                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS rì  rî  rX   rX   rX   rY   rÂ   f  s   c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z/TestEnum.test_multiple_mixin.<locals>.CoolColorrí  Nrî  rX   rX   rX   rY   Ú	CoolColorp  s   rð  rå  c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z1TestEnum.test_multiple_mixin.<locals>.CoolerColorrí  Nrî  rX   rX   rX   rY   ÚCoolerColorz  s   rñ  rè  ré  c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z2TestEnum.test_multiple_mixin.<locals>.CoolestColorrí  Nrî  rX   rX   rX   rY   ÚCoolestColor…  s   rò  c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z3TestEnum.test_multiple_mixin.<locals>.ConfusedColorrí  Nrî  rX   rX   rX   rY   ÚConfusedColor  s   ró  c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z3TestEnum.test_multiple_mixin.<locals>.ReformedColorrí  Nrî  rX   rX   rX   rY   ÚReformedColor›  s   rô  )r  r   rç   r1  rè   r3  r2  rß  r  ræ  rê  r   rN  Ú
issubclassrý   )r`   rá  rä  rç  rë  rÂ   rð  rñ  rò  ró  rô  rX   rX   rY   Útest_multiple_mixin@  sr    """""""zTestEnum.test_multiple_mixinc                 C   s<   t G dd„ dtƒƒ}G dd„ dtƒ}t G dd„ d|ƒƒ}d S )Nc                   @   s   e Zd ZdZdZdZdS )z9TestEnum.test_multiple_inherited_mixin.<locals>.Decision1ÚREVERTÚ
REVERT_ALLÚRETRYN©rf   rg   rh   r÷  rø  rù  rX   rX   rX   rY   Ú	Decision1©  s   rû  c                   @   s   e Zd ZdS )z6TestEnum.test_multiple_inherited_mixin.<locals>.MyEnumNrH  rX   rX   rX   rY   r$  ®  s   r$  c                   @   s   e Zd ZdZdZdZdS )z9TestEnum.test_multiple_inherited_mixin.<locals>.Decision2r÷  rø  rù  Nrú  rX   rX   rX   rY   Ú	Decision2°  s   rü  )r   r   )r`   rû  r$  rü  rX   rX   rY   Útest_multiple_inherited_mixin¨  s
    z&TestEnum.test_multiple_inherited_mixinc                 C   s4   G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ d S )Nc                   @   s   e Zd Zdd„ ZdZdZdS )z-TestEnum.test_value_auto_assign.<locals>.Somec                 S   s
   t  | ¡S r²   ©r  r  )r  rY  rX   rX   rY   r  ¸  s    z5TestEnum.test_value_auto_assign.<locals>.Some.__new__rk   rl   N)rf   rg   rh   r  rs  rt  rX   rX   rX   rY   ÚSome·  s   rÿ  rk   rl   )r   rç   rs  rè   rt  )r`   rÿ  rX   rX   rY   Útest_value_auto_assign¶  s    zTestEnum.test_value_auto_assignc                    sÈ   G dd„ dt ƒ}|  |jjt¡ |  |jjt¡ |  |jjt¡ G dd„ dƒ‰G dd„ dƒ‰ G ‡ ‡fdd„dt ƒ}|  |j	jˆ¡ |  |j
jˆ ¡ G d	d
„ d
ƒ‰G ‡fdd„dt ƒ}|  |jjˆ¡ dS )z2Support using Enum to refer to types deliberately.c                   @   s   e Zd ZeZeZeZdS )z,TestEnum.test_enum_of_types.<locals>.MyTypesN)	rf   rg   rh   rý   r*  rÜ  rC  r  ra  rX   rX   rX   rY   ÚMyTypesÁ  s   r  c                   @   s   e Zd ZdS )z(TestEnum.test_enum_of_types.<locals>.FooNrH  rX   rX   rX   rY   r*  È  s   r*  c                   @   s   e Zd ZdS )z(TestEnum.test_enum_of_types.<locals>.BarNrH  rX   rX   rX   rY   ÚBarÊ  s   r  c                       s   e Zd Z”Z” ZdS )z-TestEnum.test_enum_of_types.<locals>.MyTypes2N)rf   rg   rh   rR  rz  rX   )r  r*  rX   rY   ÚMyTypes2Ì  s   r  c                   @   s   e Zd ZdS )z5TestEnum.test_enum_of_types.<locals>.SpamEnumNotInnerNrH  rX   rX   rX   rY   ÚSpamEnumNotInnerÑ  s   r  c                       s   e Zd Z” ZdS )z-TestEnum.test_enum_of_types.<locals>.SpamEnumN)rf   rg   rh   r?  rX   )r  rX   rY   ÚSpamEnumÓ  s   r  N)r   rç   r*  rè   rý   rC  rÜ  ra  r  rR  rz  r?  )r`   r  r  r  rX   )r  r*  r  rY   Útest_enum_of_types¿  s    zTestEnum.test_enum_of_typesc                 C   sŠ   G dd„ dt ƒ}|  t|j|ƒ¡ |  |jjd¡ |  |jjjjd¡ |  t|jjƒ|jjj|jjj	g¡ |  t|ƒ|j|j
|jg¡ d S )Nc                   @   s,   e Zd ZdZdZdZdZG dd„ deƒZdS )zETestEnum.test_nested_classes_in_enum_do_become_members.<locals>.Outerú	a b InnerÚOuterrk   rl   c                   @   s   e Zd ZdZdZdZdS )zKTestEnum.test_nested_classes_in_enum_do_become_members.<locals>.Outer.InnerúOuter.Innerrw  r  N©rf   rg   rh   rI  ÚbarrX   rX   rX   rY   ÚInnerß  s   r  N©rf   rg   rh   r¾   rR  rz  r   r  rX   rX   rX   rY   r  Ú  s
   r  rk   rw  ©r   rN  rö  r  rç   rR  rè   rI  r±  r  rz  ©r`   r  rX   rX   rY   Ú-test_nested_classes_in_enum_do_become_membersØ  s    	
þþz6TestEnum.test_nested_classes_in_enum_do_become_membersc                 C   sŠ   G dd„ dt ƒ}|  t|j|ƒ¡ |  |jjd¡ |  |jjjjd¡ |  t|jjƒ|jjj|jjj	g¡ |  t|ƒ|j|j
|jg¡ d S )Nc                   @   s(   e Zd ZdZdZdZG dd„ deƒZdS )zLTestEnum.test_really_nested_classes_in_enum_do_become_members.<locals>.Outerr  rk   rl   c                   @   s   e Zd ZdZdZdS )zRTestEnum.test_really_nested_classes_in_enum_do_become_members.<locals>.Outer.Innerrw  r  Nr
  rX   rX   rX   rY   r  ô  s   r  Nr  rX   rX   rX   rY   r  ð  s   r  rk   rw  r  r  rX   rX   rY   Ú4test_really_nested_classes_in_enum_do_become_membersï  s    
þþz=TestEnum.test_really_nested_classes_in_enum_do_become_membersc                 C   s~   G dd„ dt ƒ}|  t|jtƒ¡ |  |jjd¡ |  |jjjd¡ |  t	|jƒ|jj|jj
g¡ |  t	|ƒ|j|jg¡ dS )ú2Support locally-defined nested classes using @skipc                   @   s,   e Zd ZdZdZdZeG dd„ deƒƒZdS )zITestEnum.test_nested_classes_in_enum_are_skipped_with_skip.<locals>.Outerr  rk   rl   c                   @   s   e Zd ZdZdZdZdS )zOTestEnum.test_nested_classes_in_enum_are_skipped_with_skip.<locals>.Outer.Innerr	  rw  r  Nr
  rX   rX   rX   rY   r  
  s   r  N©rf   rg   rh   rR  rz  r    r   r  rX   rX   rX   rY   r    s
   r  rk   rw  N©r   rN  rö  r  r  rç   rR  rè   rI  r±  r  rz  r  rX   rX   rY   Ú1test_nested_classes_in_enum_are_skipped_with_skip  s    	þ
þz:TestEnum.test_nested_classes_in_enum_are_skipped_with_skipc                 C   s~   G dd„ dt ƒ}|  t|jtƒ¡ |  |jjd¡ |  |jjjd¡ |  t	|jƒ|jj|jj
g¡ |  t	|ƒ|j|jg¡ dS )r  c                   @   s(   e Zd ZdZdZeG dd„ deƒƒZdS )zPTestEnum.test_really_nested_classes_in_enum_are_skipped_with_skip.<locals>.Outerrk   rl   c                   @   s   e Zd ZdZdZdS )zVTestEnum.test_really_nested_classes_in_enum_are_skipped_with_skip.<locals>.Outer.Innerrw  r  Nr
  rX   rX   rX   rY   r     s   r  Nr  rX   rX   rX   rY   r    s   r  rk   rw  Nr  r  rX   rX   rY   Ú8test_really_nested_classes_in_enum_are_skipped_with_skip  s    þ
þzATestEnum.test_really_nested_classes_in_enum_are_skipped_with_skipc                 C   s:   G dd„ dt ƒ}|  |j|dƒu ¡ |  |j|ƒ u ¡ d S )Nc                   @   s(   e Zd ZdZdZdZdZedd„ ƒZdS )z2TestEnum.test_enum_call_without_arg.<locals>.Colorr   rk   rl   rm   c                 S   s   |t u r| jS d S r²   )r'   r!  r£  rX   rX   rY   r¤  7  s    zBTestEnum.test_enum_call_without_arg.<locals>.Color._missing_value_N)	rf   rg   rh   r!  r¿   rÀ   rÁ   rI  r¤  rX   rX   rX   rY   rÂ   1  s   rÂ   rk   )r   rN  r¿   r!  rÄ   rX   rX   rY   Útest_enum_call_without_arg0  s    
z#TestEnum.test_enum_call_without_argc                    s<  G ‡ ‡fdd„dt ƒ‰ G ‡fdd„dˆ ƒ‰G dd„ dˆƒ}G dd„ d|ƒ}ˆ ˆjd	 d¡ ˆ |jd	 d¡ ˆ |jd
 d¡ ˆ |j d	d¡¡ ˆ |j d
d¡¡ G dd„ dˆ ƒ}G dd„ d|ƒ}G dd„ d|ƒ}ˆ |jd	 d¡ ˆ |j d	d¡¡ ˆ |jd
 d¡ ˆ |j d	d¡¡ ˆ |j d
d¡¡ d S )Nc                       s    e Zd Z‡‡ ‡fdd„Z‡  ZS )z+TestEnum.test_init_subclass.<locals>.MyEnumc                    s4   t ˆ | ƒjf i |¤Ž ˆ | j dd¡¡ d| _d S ©NÚ_testFr$  ©r^   Ú__init_subclass__rL  rà  ÚgetÚ_test1©r  rb   ©r$  re   r`   rX   rY   r  @  s    z=TestEnum.test_init_subclass.<locals>.MyEnum.__init_subclass__©rf   rg   rh   r  ri   rX   ©r$  r`   rd   rY   r$  ?  s   r$  c                       s   e Zd Z‡‡ fdd„Z‡  ZS )z.TestEnum.test_init_subclass.<locals>.TheirEnumc                    s    t ˆ | ƒjf i |¤Ž d| _d S ©NÚ	TheirEnum©r^   r  Ú_test2r  ©r#  re   rX   rY   r  F  s    z@TestEnum.test_init_subclass.<locals>.TheirEnum.__init_subclass__r   rX   ©r#  rd   rY   r#  E  s   r#  c                   @   s   e Zd Zdd„ ZdS )z.TestEnum.test_init_subclass.<locals>.WhoseEnumc                 [   s   d S r²   rX   r  rX   rX   rY   r  J  s    z@TestEnum.test_init_subclass.<locals>.WhoseEnum.__init_subclass__N©rf   rg   rh   r  rX   rX   rX   rY   Ú	WhoseEnumI  s   r)  c                   @   s   e Zd ZdZdS )z+TestEnum.test_init_subclass.<locals>.NoEnumrk   N©rf   rg   rh   rà   rX   rX   rX   rY   ÚNoEnumL  s   r+  r  r%  Fc                   @   s   e Zd Zdd„ ZdS )z,TestEnum.test_init_subclass.<locals>.OurEnumc                 [   s
   d| _ d S ©NÚOurEnum©r%  r  rX   rX   rY   r  U  s    z>TestEnum.test_init_subclass.<locals>.OurEnum.__init_subclass__Nr(  rX   rX   rX   rY   r-  T  s   r-  c                   @   s   e Zd Zdd„ ZdS )z.TestEnum.test_init_subclass.<locals>.WhereEnumc                 [   s   d S r²   rX   r  rX   rX   rY   r  X  s    z@TestEnum.test_init_subclass.<locals>.WhereEnum.__init_subclass__Nr(  rX   rX   rX   rY   Ú	WhereEnumW  s   r/  c                   @   s   e Zd ZdZdS )z.TestEnum.test_init_subclass.<locals>.NeverEnumr¡  Nr*  rX   rX   rX   rY   Ú	NeverEnumZ  s   r0  )r   rç   rà  rL  r  ©r`   r)  r+  r-  r/  r0  rX   ©r$  r#  r`   rY   Útest_init_subclass>  s"    zTestEnum.test_init_subclassc                    s   G dd„ dt ƒ‰ |  t¡" G dd„ dˆ tƒ}W d   ƒ n1 sB0    Y  |  t¡& G ‡ fdd„dˆ tƒ}W d   ƒ n1 s‚0    Y  d S )Nc                   @   s   e Zd Zdd„ Zdd„ ZdS )z*TestEnum.test_init_exception.<locals>.Basec                 W   s
   t  | ¡S r²   rþ  ©r  ra   rX   rX   rY   r  d  s    z2TestEnum.test_init_exception.<locals>.Base.__new__c                 S   s   t d|ƒ‚d S )NzI don't like)r›   )r`   rs  rX   rX   rY   r_   f  s    z3TestEnum.test_init_exception.<locals>.Base.__init__N)rf   rg   rh   r  r_   rX   rX   rX   rY   ÚBasec  s   r5  c                   @   s   e Zd ZdZdd„ ZdS )ú,TestEnum.test_init_exception.<locals>.MyEnumrR  c                 S   s
   || _ d S r²   ©rt  ©r`   rt  rX   rX   rY   r_   k  s    ú5TestEnum.test_init_exception.<locals>.MyEnum.__init__N)rf   rg   rh   rÁ  r_   rX   rX   rX   rY   r$  i  s   r$  c                       s$   e Zd ZdZdd„ Z‡ fdd„ZdS )r6  rR  c                 S   s
   || _ d S r²   r7  r8  rX   rX   rY   r_   p  s    r9  c                    s   ˆ   | ¡}ˆ |ƒ|_|S r²   )r  r  r  ©r5  rX   rY   r  r  s    

z4TestEnum.test_init_exception.<locals>.MyEnum.__new__N)rf   rg   rh   rÁ  r_   r  rX   r:  rX   rY   r$  n  s   )r  r=  rÌ   r   r›   )r`   r$  rX   r:  rY   Útest_init_exceptionb  s
    0zTestEnum.test_init_exceptionc              
      sš   ddl m} |ddƒ‰ G ‡ fdd„dtƒ}|  t|jƒd¡ |  |jjˆ ddg d¡ |  d	d
„ |D ƒˆ ddg dˆ dddgdˆ ddg d¢dg¡ d S )Nr   ©Ú
namedtupleÚTTupleú
id a blistc                       s6   e Zd Z” ddg ƒZ” dddgƒZ” ddg d¢ƒZdS ©z1TestEnum.test_namedtuple_as_value.<locals>.NTEnumr   rk   rl   ru   rž  N©rf   rg   rh   ÚNONErÁ  rÂ  rX   ©r>  rX   rY   ÚNTEnumz  s   rD  ú*<NTEnum.NONE: TTuple(id=0, a=0, blist=[])>©ÚidrR  Zblistc                 S   s   g | ]
}|j ‘qS rX   r—  ©r™  rs  rX   rX   rY   r›    rœ  ú5TestEnum.test_namedtuple_as_value.<locals>.<listcomp>rk   rl   ru   rž  ©Úcollectionsr=  r   rç   r(  rB  rè   ©r`   r=  rD  rX   rC  rY   Útest_namedtuple_as_valuew  s    
,þz!TestEnum.test_namedtuple_as_valuec                 C   sT   G dd„ dt ƒ}G dd„ dt ƒ}|  t|jd ƒtu ¡ |  t|jd ƒtu ¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z,TestEnum.test_gnv_is_static.<locals>.LazyGNVc                 S   s   d S r²   rX   ©rª  r    r  r1  rX   rX   rY   rí  ‡  s    zBTestEnum.test_gnv_is_static.<locals>.LazyGNV._generate_next_value_Nr  rX   rX   rX   rY   ÚLazyGNV†  s   rO  c                   @   s   e Zd Zedd„ ƒZdS )z,TestEnum.test_gnv_is_static.<locals>.BusyGNVc                 S   s   d S r²   rX   rN  rX   rX   rY   rí  Š  s    zBTestEnum.test_gnv_is_static.<locals>.BusyGNV._generate_next_value_N)rf   rg   rh   rï  rí  rX   rX   rX   rY   ÚBusyGNV‰  s   rP  rí  )r   rN  r  rà  rï  )r`   rO  rP  rX   rX   rY   Útest_gnv_is_static…  s    zTestEnum.test_gnv_is_staticc              
      sš   ddl m} |ddƒ‰ G ‡ fdd„dtƒ}|  t|jƒd¡ |  |jjˆ ddg d¡ |  d	d
„ |D ƒˆ ddg dˆ dddgdˆ ddg d¢dg¡ d S )Nr   r<  r>  r?  c                       s6   e Zd Z” ddg ƒZ” dddgƒZ” ddg d¢ƒZdS r@  rA  rX   rC  rX   rY   rD  “  s   rD  rE  rF  c                 S   s   g | ]
}|j ‘qS rX   r—  rH  rX   rX   rY   r›  š  rœ  rI  rk   rl   ru   rž  rJ  rL  rX   rC  rY   rM    s    
,þc                 C   sT   G dd„ dt ƒ}|  t|ƒd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s:   e Zd ZdZeƒ deƒ fZddeƒ fZeƒ eƒ eƒ fZdS )z4TestEnum.test_multiple_auto_assignment.<locals>.Manyr  rl   ru   rv   Nr  rX   rX   rX   rY   ÚManyŸ  s   rR  rm   )rk   rl   rl   )ru   rv   rm   )ru   rv   r1  )r   rç   r°  rÁ  rè   rÂ  rÃ  )r`   rR  rX   rX   rY   Útest_multiple_auto_assignmentž  s
    z&TestEnum.test_multiple_auto_assignmentN)°rf   rg   rh   rÞ  rî  rø  r  r  r  r  r!  r#  r,  r/  r8  r>  rA  rE  rG  rN  rT  rZ  r^  rg  rl  ro  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r|  r„  r…  rŒ  r  r  r‘  r”  r¢  r¤  r¨  r©  rª  r«  r¬  r­  r±  r´  r¸  r¾  rÀ  rÁ  rÃ  rÇ  rÑ  rÓ  rÕ  rÖ  rØ  rÚ  rÞ  rà  râ  rä  ræ  rç  ré  rê  rë  rì  rñ  rò  rù  rü  rþ  r  r  r  r  r  r  r  r!  r#  r'  r2  rX  rx  r{  r}  r€  r‚  r…  rŒ  r  r•  r—  r¢  r¦  r«  r¬  r­  r±  r²  r³  ÚCONTINUEÚSWITCHING_PROTOCOLSÚ
PROCESSINGr½  rÅ  rç  r÷  rú  r   r  r
  r  r  r  r  r  r!  r"  r)  r,  r-  r4  r8  rA  rC  rK  rL  rR  rT  rc  rd  rk  rl  rm  ru  rv  r|  r  rˆ  r‹  r’  rš  r›  r¦  r©  r¯  r°  rµ  rÛ  rÞ  rö  rý  r   r  r-   r  r  r  r  r  r3  r;  rM  rQ  rS  rX   rX   rX   rY   r³  °  s\  >
!	!

								
					

=^78857	
 $!'	|;h	$r³  c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestStrEnumc                    sx   G dd„ dt ƒ‰ G ‡ fdd„dtƒ}|  t|ƒ|jg¡ |  |jjd¡ d|j_|  |jjd¡ |  |jjd d¡ d S )Nc                   @   s*   e Zd ZdZddd„Zdd„ Zdd„ ZdS )	z-TestStrEnum.test_set_name.<locals>.DescriptorNc                 S   s   |d u r| S |j | j S d S r²   rß  rá  rX   rX   rY   rº   ¯  s    z5TestStrEnum.test_set_name.<locals>.Descriptor.__get__c                 S   s   ||j | j< d S r²   rß  râ  rX   rX   rY   rJ  ´  s    z5TestStrEnum.test_set_name.<locals>.Descriptor.__set__c                 S   s
   || _ d S r²   r©  rã  rX   rX   rY   rå  ¶  s    z:TestStrEnum.test_set_name.<locals>.Descriptor.__set_name__)Nræ  rX   rX   rX   rY   rç  ­  s   
rç  c                       s   e Zd ZdZ” ƒ ZdS )z)TestStrEnum.test_set_name.<locals>.AnEnumr¡  Nrè  rX   ré  rX   rY   rê  ¹  s   rê  r¢  rë  rì  rí  rX   ré  rY   rî  ¬  s    zTestStrEnum.test_set_namec                 C   sd   G dd„ dt ƒ}|  t|ƒd¡ |  |jd¡ |  t|jt ƒ¡ |  |jd¡ |  t|jt ƒ¡ d S )Nc                   @   s   e Zd ZdZdZdS )z/TestStrEnum.test_private_names.<locals>.Privaterï  rð  Nrñ  rX   rX   rX   rY   rô  Ä  s   rô  r   rï  rð  rõ  r÷  rX   rX   rY   rø  Ã  s    zTestStrEnum.test_private_namesc                 C   sL   G dd„ dt ƒ}|  |j|jk ¡ |  |j ¡ d¡ |  |j d¡d¡ d S )Nc                   @   s   e Zd ZdZdZdS )z7TestStrEnum.test_strenum_inherited_methods.<locals>.phyr’  r“  Nr†  rX   rX   rX   rY   r‰  Î  s   r‰  r½  rR  rk   )r   rN  r‡  rˆ  rç   Úupperrë  r‹  rX   rX   rY   Útest_strenum_inherited_methodsÍ  s    z*TestStrEnum.test_strenum_inherited_methodsc              	      sR  t t ƒ g tdfD ]D‰ |  td¡$ G ‡ fdd„dtƒ}W d   ƒ q1 sJ0    Y  qG dd„ dtƒ}|  dd„ |D ƒg d	¢¡ |  td
¡  G dd„ dtƒ}W d   ƒ n1 s²0    Y  G dd„ dtƒ}|  dd„ |D ƒg d¢¡ |  td¡  G dd„ dtƒ}W d   ƒ n1 s0    Y  G dd„ dtƒ}|  dd„ |D ƒg d¢¡ d S )Nrp  zvalues must be strc                       s   e Zd Z” ZdS )ú,TestStrEnum.test_strict_strenum.<locals>.HuhN©rf   rg   rh   ZhuhrX   ©ZuhohrX   rY   r£  Ø  s   r£  c                   @   s(   e Zd ZdZeƒ ZdZeƒ ZdZdZ	dS )z/TestStrEnum.test_strict_strenum.<locals>.Eitherúthis that Those lower upperÚThatr¨  ÚUPPERN©
rf   rg   rh   r¾   r"   r  r  ZThoser¨  rX  rX   rX   rX   rY   ÚEitherÚ  s   ra  c                 S   s   g | ]
}|j ‘qS rX   r—  r˜  rX   rX   rY   r›  á  rœ  z3TestStrEnum.test_strict_strenum.<locals>.<listcomp>)r  r^  r  r¨  r_  z is not lower-casec                   @   s   e Zd ZdZdS ©rZ  ZWhatNr[  rX   rX   rX   rY   r£  ä  s   c                   @   s(   e Zd ZdZeƒ ZdZeƒ ZdZdZ	dS )z.TestStrEnum.test_strict_strenum.<locals>.Lowerr]  r  r¨  rX  Nr`  rX   rX   rX   rY   ÚLowerç  s   rc  c                 S   s   g | ]
}|j ‘qS rX   r—  r˜  rX   rX   rY   r›  î  rœ  )r  r  r  r¨  rX  z is not upper-casec                   @   s   e Zd ZdZdS rb  r[  rX   rX   rX   rY   r£  ñ  s   c                   @   s(   e Zd ZdZeƒ ZdZeƒ ZdZdZ	dS )z.TestStrEnum.test_strict_strenum.<locals>.Upperr]  ÚTHATÚLOWERr_  Nr`  rX   rX   rX   rY   ÚUpperô  s   rf  c                 S   s   g | ]
}|j ‘qS rX   r—  r˜  rX   rX   rY   r›  û  rœ  )ZTHISrd  ZTHOSEre  r_  )	r  r   r\   rÌ   r   rç   r›   r	   r
   )r`   r£  ra  rc  rf  rX   r\  rY   Útest_strict_strenumÕ  s    4.0zTestStrEnum.test_strict_strenumc                    s<  G ‡ ‡fdd„dt ƒ‰ G ‡fdd„dˆ ƒ‰G dd„ dˆƒ}G dd„ d|ƒ}ˆ ˆjd	 d¡ ˆ |jd	 d¡ ˆ |jd
 d¡ ˆ |j d	d¡¡ ˆ |j d
d¡¡ G dd„ dˆ ƒ}G dd„ d|ƒ}G dd„ d|ƒ}ˆ |jd	 d¡ ˆ |j d	d¡¡ ˆ |jd
 d¡ ˆ |j d	d¡¡ ˆ |j d
d¡¡ d S )Nc                       s    e Zd Z‡‡ ‡fdd„Z‡  ZS )z.TestStrEnum.test_init_subclass.<locals>.MyEnumc                    s4   t ˆ | ƒjf i |¤Ž ˆ | j dd¡¡ d| _d S r  r  r  r  rX   rY   r  ÿ  s    z@TestStrEnum.test_init_subclass.<locals>.MyEnum.__init_subclass__r   rX   r!  rd   rY   r$  þ  s   r$  c                       s   e Zd Z‡‡ fdd„Z‡  ZS )z1TestStrEnum.test_init_subclass.<locals>.TheirEnumc                    s    t ˆ | ƒjf i |¤Ž d| _d S r"  r$  r  r&  rX   rY   r    s    zCTestStrEnum.test_init_subclass.<locals>.TheirEnum.__init_subclass__r   rX   r'  rd   rY   r#    s   r#  c                   @   s   e Zd Zdd„ ZdS )z1TestStrEnum.test_init_subclass.<locals>.WhoseEnumc                 [   s   d S r²   rX   r  rX   rX   rY   r  	  s    zCTestStrEnum.test_init_subclass.<locals>.WhoseEnum.__init_subclass__Nr(  rX   rX   rX   rY   r)    s   r)  c                   @   s   e Zd ZdZdS )z.TestStrEnum.test_init_subclass.<locals>.NoEnumr¡  Nr*  rX   rX   rX   rY   r+    s   r+  r  r%  Fc                   @   s   e Zd Zdd„ ZdS )z/TestStrEnum.test_init_subclass.<locals>.OurEnumc                 [   s
   d| _ d S r,  r.  r  rX   rX   rY   r    s    zATestStrEnum.test_init_subclass.<locals>.OurEnum.__init_subclass__Nr(  rX   rX   rX   rY   r-    s   r-  c                   @   s   e Zd Zdd„ ZdS )z1TestStrEnum.test_init_subclass.<locals>.WhereEnumc                 [   s   d S r²   rX   r  rX   rX   rY   r    s    zCTestStrEnum.test_init_subclass.<locals>.WhereEnum.__init_subclass__Nr(  rX   rX   rX   rY   r/    s   r/  c                   @   s   e Zd ZdZdS )z1TestStrEnum.test_init_subclass.<locals>.NeverEnumr¡  Nr*  rX   rX   rX   rY   r0    s   r0  )r   rç   rà  rL  r  r1  rX   r2  rY   r3  ý  s"    zTestStrEnum.test_init_subclassN)rf   rg   rh   rî  rø  rY  rg  r3  rX   rX   rX   rY   rW  ª  s
   
(rW  c                   @   s¤  e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Z d<d=„ Z!d>d?„ Z"d@dA„ Z#dBdC„ Z$dDdE„ Z%dFdG„ Z&dHdI„ Z'e( )e*dJ¡dKdL„ ƒZ+dMdN„ Z,dOdP„ Z-dQdR„ Z.dSdT„ Z/dUdV„ Z0dWdX„ Z1dYdZ„ Z2d[d\„ Z3d]d^„ Z4d_d`„ Z5dadb„ Z6dcdd„ Z7deS )fÚTestFlagzTests of the Flags.c                 C   st   G dd„ dt ƒ}|| _G dd„ dt ƒ}|| _G dd„ dt ƒ}|| _G dd„ dtt ƒ}|| _G d	d
„ d
t ƒ}|| _d S )Nc                   @   s   e Zd ZdZd\ZZZdS )zTestFlag.setUp.<locals>.PermúR W X)ru   rl   rk   N©rf   rg   rh   r¾   ÚRÚWÚXrX   rX   rX   rY   ÚPerm&  s   rn  c                   @   s@   e Zd ZdZdZdZdZdZeeB ZeeB eB Z	eeB eB Z
dS )zTestFlag.setUp.<locals>.Colorr   rk   rl   ru   N)rf   rg   rh   r…  r1  ZROJOr3  r2  ÚPURPLEÚWHITEÚBLANCOrX   rX   rX   rY   rÂ   +  s   rÂ   c                   @   sL   e Zd ZdZeƒ Zeƒ ZeeB Zeƒ ZeeB Z	eeB Z
eeB eB Zeƒ ZdS )zTestFlag.setUp.<locals>.FunzONE TWO FOUR EIGHTN)rf   rg   rh   r¾   r"   rà   rá   râ   rý  ÚFIVEÚSIXÚSEVENÚEIGHTrX   rX   rX   rY   ÚFun6  s   rv  c                   @   sš   e Zd Zdd„ Zed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ejZdd„ Zdd„ Z d d!„ Z!d"S )#z!TestFlag.setUp.<locals>.TermColorc                 S   s$   d| }t  | |¡}||_||_|S r  ©r  r  r  r  ©r  rè   r  r  r§   rX   rX   rY   r  C  s
    z)TestFlag.setUp.<locals>.TermColor.__new__c                 W   s   d  dd„ |D ƒ¡}||f S )Nú;c                 s   s   | ]}|j V  qd S r²   ©r  r˜  rX   rX   rY   Ú	<genexpr>L  rœ  zRTestFlag.setUp.<locals>.TermColor._create_pseudo_member_values_.<locals>.<genexpr>©rœ   ©r  rA  r1  r  rX   rX   rY   Ú_create_pseudo_member_values_J  s    z?TestFlag.setUp.<locals>.TermColor._create_pseudo_member_values_r  r  Ú2Ú4r  Ú30Ú31Ú32Z33Ú34Z35r  Z37Z39r   Z41Z42Ú43Z44Ú45Ú46Ú47Z49c                 S   sF   | j d urd| jj| j f S d| jjd dd„ t | ¡D ƒ¡f S d S )Nr^  ú<%s: %s>ú|c                 S   s   g | ]
}|j ‘qS rX   r©  r˜  rX   rX   rY   r›  p  rœ  z>TestFlag.setUp.<locals>.TermColor.__repr__.<locals>.<listcomp>)r  re   rf   rœ   r   Ú__iter__rŒ   rX   rX   rY   r"  l  s    
z*TestFlag.setUp.<locals>.TermColor.__repr__c                 S   s   t | jddd | S ©NÚ r   )ÚendÚverbose©r“  r$  rŒ   rX   rX   rY   Ú	__enter__r  s    z+TestFlag.setUp.<locals>.TermColor.__enter__c                 W   s   t | jddd d S rŒ  r  )r`   ra   rX   rX   rY   Ú__exit__v  s    z*TestFlag.setUp.<locals>.TermColor.__exit__N)"rf   rg   rh   r  rI  r~  r$  r%  ÚDimÚ	UnderlineÚNormalÚFG_BlackÚFG_RedÚFG_GreenZ	FG_YellowÚFG_BlueZ
FG_Magentar&  ZFG_WhiteZFG_Resetr'  ZBG_RedZBG_GreenÚ	BG_YellowZBG_BlueÚ
BG_MagentaÚBG_CyanÚBG_WhiteZBG_Resetr  r#  r"  r‘  r’  rX   rX   rX   rY   Ú	TermColorB  s<   
rž  c                   @   s    e Zd ZdZdZdZdZdZdS )zTestFlag.setUp.<locals>.Openr   rk   rl   rm   é   N)rf   rg   rh   ÚROÚWOÚRWÚACÚCErX   rX   rX   rY   ÚOpenz  s
   r¥  )r   rn  rÂ   rv  r  rž  r¥  )r`   rn  rÂ   rv  rž  r¥  rX   rX   rY   rÞ  %  s    	
6zTestFlag.setUpc                    sx   G dd„ dt ƒ‰ G ‡ fdd„dtƒ}|  t|ƒ|jg¡ |  |jjd¡ d|j_|  |jjd¡ |  |jjd d¡ d S )Nc                   @   s*   e Zd ZdZddd„Zdd„ Zdd„ ZdS )	z*TestFlag.test_set_name.<locals>.DescriptorNc                 S   s   |d u r| S |j | j S d S r²   rß  rá  rX   rX   rY   rº   …  s    z2TestFlag.test_set_name.<locals>.Descriptor.__get__c                 S   s   ||j | j< d S r²   rß  râ  rX   rX   rY   rJ  Š  s    z2TestFlag.test_set_name.<locals>.Descriptor.__set__c                 S   s
   || _ d S r²   r©  rã  rX   rX   rY   rå  Œ  s    z7TestFlag.test_set_name.<locals>.Descriptor.__set_name__)Nræ  rX   rX   rX   rY   rç  ƒ  s   
rç  c                       s   e Zd ZdZ” ƒ ZdS )z&TestFlag.test_set_name.<locals>.AnEnumrk   Nrè  rX   ré  rX   rY   rê    s   rê  r¢  rë  rì  rí  rX   ré  rY   rî  ‚  s    zTestFlag.test_set_namec                 C   s’   G dd„ dt ƒ}|j}|  t|ƒ|u t|ƒ¡ |  |j|j|j|jfd¡ |j	}|  |j|j|j|jfd¡ |j
}|  |j|j|j|jfd¡ d S )Nc                   @   s&   e Zd ZdZddd„ZdZdZdZdS )	z,TestFlag.test_new_with_keywords.<locals>.Huhrù  Nc                 S   sV   | j rdt| j ƒd  }nd}t | |¡}|r:|d u r:|}||_||_||_||_|S )Nrl   rk   r   )rú  r°  rý   r  rû  rü  r¶   r  rý  rX   rX   rY   r  œ  s    z4TestFlag.test_new_with_keywords.<locals>.Huh.__new__rÿ  r   r  )NNr  rX   rX   rX   rY   r£  š  s
   
r£  r  r  r  )r   r  rN  r  rç   rè   r¶   rû  rü  r	  r
  r  rX   rX   rY   r  ™  s"    þþþzTestFlag.test_new_with_keywordsc                 C   sd   G dd„ dt ƒ}|  t|ƒd¡ |  |jd¡ |  t|jt ƒ¡ |  |jd¡ |  t|jt ƒ¡ d S )Nc                   @   s   e Zd ZdZdZdS )z,TestFlag.test_private_names.<locals>.Privaterï  rð  Nrñ  rX   rX   rX   rY   rô  ¾  s   rô  r   rï  rð  rõ  r÷  rX   rX   rY   rø  ½  s    zTestFlag.test_private_namesc                 C   sj   | j }|  t|ƒ|j|j|j|jg¡ |  |jjd¡ |  t	|j
ƒd¡ |  t|j
ƒ|j|j|jg¡ d S )Nrm   z<Fun.SEVEN: 7>)rv  rç   r±  rà   rá   rý  ru  râ   r  r(  rt  )r`   rv  rX   rX   rY   Útest_auto_aliasÇ  s    þzTestFlag.test_auto_aliasc                 C   s|   | j j| j j }}||B }|  |d¡ |  |j|j|jB ¡ |  |jd |j|jg¡¡ |  t|ƒd¡ |  t|ƒd¡ d S )Nz[31;47mry  z<TermColor.FG_Red|BG_White>)	rž  r—  r  rç   rè   r  rœ   r(  r  )r`   r¿   r  ZbarberrX   rX   rY   Útest_str_is_str_strÑ  s    zTestFlag.test_str_is_str_strc                 C   sˆ   | j }| j}|  d|v ¡ |  d|v ¡ |  |j|v ¡ |  |j|v ¡ |  |j|v ¡ |  |j|v ¡ |  d|v ¡ |  d|v ¡ d S )Nr…  r   r   )rÂ   r¥  rL  rN  r…  r   ©r`   rÂ   r¥  rX   rX   rY   Útest_membershipÚ  s    zTestFlag.test_membershipc                    sX   | j ‰ |  t‡ fdd„¡ |  t‡ fdd„¡ |  ˆ jˆ jv ¡ |  ˆ jˆ d v ¡ d S )Nc                      s
   dˆ j v S r[  ©r2  rX   r®  rX   rY   r¯  è  rœ  z/TestFlag.test_member_contains.<locals>.<lambda>c                      s
   dˆ j v S r"  rª  rX   r®  rX   rY   r¯  é  rœ  zRED|GREEN|BLUE)rÂ   r=  rÌ   rN  r2  rŒ   rX   r®  rY   r^  æ  s
    zTestFlag.test_member_containsc                 C   sd   |   | j | jj¡d¡ |   | j | jj¡d¡ |   | j | jj¡d¡ |   | j | jj¡d¡ d S )Nr   rk   rl   rm   )rç   rÂ   Ú__len__r…  r3  ro  rq  rŒ   rX   rX   rY   Útest_member_lengthí  s    zTestFlag.test_member_lengthc                 C   sx   G dd„ dt ƒ}|  t|ƒ|j|j|j|j|jg¡ |  |j|j	¡ |  |j	j
d¡ |  |jj
d¡ |  |jj
d¡ d S )Nc                   @   s2   e Zd ZdZeƒ Zeƒ Zeƒ ZdZeƒ Z	eƒ Z
dS )z>TestFlag.test_number_reset_and_order_cleanup.<locals>.ConfusedzONE TWO FOUR DOS EIGHT SIXTEENrl   N)rf   rg   rh   r¾   r"   rà   rá   rý  rû  ru  ÚSIXTEENrX   rX   rX   rY   rþ  ô  s   rþ  rl   rÚ   é   )r   rç   r±  rà   rá   rý  ru  r­  r¦  rû  r  rÿ  rX   rX   rY   r   ó  s    þz,TestFlag.test_number_reset_and_order_cleanupc                 C   s  | j }|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd¡ |  t|j ƒd¡ |  t|j ƒd	¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd¡ |  t|d
ƒƒd¡ |  t|d
ƒƒd¡ | j}|  t|jƒd¡ |  t|jƒd¡ |  t|j	ƒd¡ |  t|j|j
B ƒd¡ |  t|j|j
B ƒd¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j	 ƒd¡ |  t|j|j
B  ƒd¡ |  t|j|j
B  ƒd¡ d S )NzPerm.RzPerm.WzPerm.XzPerm.R|Wz
Perm.R|W|Xr   zPerm(0)zPerm.W|XzPerm.R|XrP   zOpen.ROzOpen.WOzOpen.ACzOpen.CEz
Open.WO|CEzOpen.WO|RW|CEz
Open.RW|CEzOpen.RW©rn  rç   r  rk  rl  rm  r¥  r   r¡  r£  r¤  ©r`   rn  r¥  rX   rX   rY   Útest_str  s2     zTestFlag.test_strc                 C   sð  | j }|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd¡ |  t|j ƒd¡ |  t|j ƒd	¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd¡ |  t|d
ƒƒd¡ | j}|  t|jƒd¡ |  t|jƒd¡ |  t|j	ƒd¡ |  t|j|j
B ƒd¡ |  t|j|j
B ƒd¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j	 ƒd¡ |  t|j|j
B  ƒd¡ |  t|j|j
B  ƒd¡ d S )Nú<Perm.R: 4>ú<Perm.W: 2>ú<Perm.X: 1>ú<Perm.R|W: 6>ú<Perm.R|W|X: 7>r   ú	<Perm: 0>ú<Perm.W|X: 3>ú<Perm.R|X: 5>rP   ú<Open.RO: 0>ú<Open.WO: 1>ú<Open.AC: 3>ú<Open.CE: 524288>ú<Open.WO|CE: 524289>ú<Open.WO|RW|CE: 524291>ú<Open.RW|CE: 524290>ú<Open.RW: 2>)rn  rç   r(  rk  rl  rm  r¥  r   r¡  r£  r¤  r°  rX   rX   rY   Ú	test_repr   s0     zTestFlag.test_reprc                 C   sL   | j }|  |j|d u ¡ |  |j|jB |d u ¡ |  |j|d u ¡ d S ©Nr1  z	RED|GREENzRED|BLUE©rÂ   rN  r1  r3  ro  rÄ   rX   rX   rY   Útest_name_lookup;  s    zTestFlag.test_name_lookupc                 C   sž   | j }|D ]X}|D ]N}|  ||B ||j|jB ƒ¡ |  ||B j|j|jB ¡ |  t||B ƒ|¡ qq
|D ]}|  ||B |¡ qh| j}|  |j|jB |j¡ d S r²   ©rn  rç   rè   r¦  r  r¥  r   r¤  ©r`   rn  r*  Újr¥  rX   rX   rY   Útest_orA  s    zTestFlag.test_orc           
      C   sò   | j }|j|jB }|j|jB }|j|jB }|j|jB |jB }t|ƒ|||||dƒg }|D ]<}|D ]2}|  ||@ j|j|j@ ¡ |  t||@ ƒ|¡ qbqZ|D ]4}|  ||@ |¡ |  ||@ |¡ |  ||@ |¡ qœ| j	}	|  |	j
|	j@ |	j
¡ d S r‹   )rn  rk  rl  rm  r±  rç   rè   r¦  r  r¥  r   r¤  ©
r`   rn  r¢  ÚRXÚWXÚRWXr1  r*  rÈ  r¥  rX   rX   rY   Útest_andM  s     zTestFlag.test_andc                 C   s°   | j }|D ]<}|D ]2}|  ||A j|j|jA ¡ |  t||A ƒ|¡ qq
|D ],}|  ||dƒA |¡ |  |dƒ|A |¡ qL| j}|  |j|jA |j¡ |  |j|jA |j¡ d S r‹   rÆ  rÇ  rX   rX   rY   Útest_xor_  s    zTestFlag.test_xorc           	      C   sÜ   | j }|j|jB }|j|jB }|j|jB }|j|jB |jB }t|ƒ|||||dƒg }|D ]&}|  t| ƒ|¡ |  |  |¡ qZ|D ]}|  |  |¡ q†| j}|  |j	|j	 @ |j
¡ |  |j	|jB |j	 @ |j¡ d S r‹   )rn  rk  rl  rm  r±  r¦  r  rç   r¥  r¡  r   r¤  ©	r`   rn  r¢  rË  rÌ  rÍ  r1  r*  r¥  rX   rX   rY   Útest_invertl  s    zTestFlag.test_invertc                 C   sD   | j }|D ]}|  |¡ q
| j}|D ]}|  t|jƒt|ƒ¡ q$d S r²   ©rn  rN  r¥  rç   rD  rè   ©r`   rn  rC  r¥  rX   rX   rY   rT  |  s    zTestFlag.test_boolc                 C   s|   G dd„ dt ƒ}G dd„ d|ƒ}|}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |j|jB jdd	|j|jB  ¡ d S )
Nc                   @   s   e Zd ZdZdZdS )z'TestFlag.test_doc_flag.<locals>.DocFlagr:  r   N)rf   rg   rh   rï   rB  rX   rX   rX   rY   ÚDocFlag…  s   rÔ  c                   @   s<   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S )z.TestFlag.test_doc_flag.<locals>.AddressSegmentzXUNKNOWN PO PO_TYPE NUMBER PREORD NAME STREET POSTORD SECONDARY_TYPE SECONDARY_NUMBER ANDz(unable to determine address element typezpost office deliveryzbox or drawerzmain unit designatorzN S E W etczstreet namezst ave blvd etczapt bldg floor etczsecondary unit designatorz& indicates a corner addressN)rf   rg   rh   r¾   ÚUNKNOWNZPOZPO_TYPEÚNUMBERZPREORDÚNAMEÚSTREETZPOSTORDÚSECONDARY_TYPEZSECONDARY_NUMBERÚANDrX   rX   rX   rY   ÚAddressSegmentš  s   rÛ  r®  ru  é€   é0   z%r is not 48)r   rç   r×  r  rØ  rÙ  )r`   rÔ  rÛ  ZASrX   rX   rY   Útest_doc_flag„  s    zTestFlag.test_doc_flagc                 C   s@   | j }|  t|ƒ|j|j|jg¡ |  t|jƒ|j|jg¡ d S r²   )rÂ   rç   r±  r1  r3  r2  ro  ©r`   rÃ  rX   rX   rY   Útest_iteration­  s    zTestFlag.test_iterationc                 C   sL   | j }|  t|jƒg ¡ |  t|jƒ|jg¡ |  t|jƒ|j|jg¡ d S r²   )rÂ   rç   r±  r…  r1  ro  r2  rß  rX   rX   rY   Útest_member_iteration²  s    zTestFlag.test_member_iterationc                 C   sÄ   t ddƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  ||j|j|jg¡ td ¡ ƒD ]b\}}d|> }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q\d S ©Nrn  ri  rm   rk   ©r   r±  rç   r°  rk  rl  rm  r%  r&  rè   r  rý   rª  ÚassertInr¦  ©r`   rn  r)  r*  Únr  r+  rX   rX   rY   rÑ  ¸  s    
z)TestFlag.test_programatic_function_stringc                 C   sÈ   t dddd}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  ||j|j|jg¡ td ¡ ƒD ]b\}}d|> }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q`d S ©Nrn  ri  rÚ   rÒ  rm   rã  rå  rX   rX   rY   rÓ  Ç  s    z4TestFlag.test_programatic_function_string_with_startc                 C   sÈ   t dg d¢ƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  ||j|j|jg¡ td ¡ ƒD ]b\}}d|> }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q`d S ©Nrn  )rk  rl  rm  rm   ri  rk   rã  rå  rX   rX   rY   rÕ  Ö  s    z.TestFlag.test_programatic_function_string_listc                 C   sÌ   t ddƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  ||j|j|jg¡ td ¡ ƒD ]j\}}dd| d > }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q\d S ©Nrn  ))rk  rl   )rl  rÚ   )rm  ru  rm   ri  rk   rl   rã  rå  rX   rX   rY   rØ  å  s    
z+TestFlag.test_programatic_function_iterablec                 C   sÐ   t dtdƒƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  ||j|j|jg¡ td 	¡ ƒD ]j\}}dd| d > }||ƒ}|  |j
|¡ |  t|j
ƒt¡ |  |j|¡ |  ||¡ |  t|ƒ|¡ q`d S ré  )r   r7   r±  rç   r°  rk  rl  rm  r%  r&  rè   r  rý   rª  rä  r¦  rå  rX   rX   rY   rÚ  ô  s    z,TestFlag.test_programatic_function_from_dictc                 C   sh   t dg ƒ}|  tt|ƒƒt|ƒ¡ |  t|ƒd¡ tdg ƒ}|  tt|ƒƒt|ƒ¡ |  t|ƒd¡ d S )Nrn  r   ÚThing©r   rç   r°  r±  r   ©r`   rn  rê  rX   rX   rY   Ú$test_programatic_function_empty_list  s    

z-TestFlag.test_programatic_function_empty_listc                 C   sh   t ddƒ}|  tt|ƒƒt|ƒ¡ |  t|ƒd¡ tddƒ}|  tt|ƒƒt|ƒ¡ |  t|ƒd¡ d S )Nrn  rX   r   rê  rë  rì  rX   rX   rY   Ú%test_programatic_function_empty_tuple  s    

z.TestFlag.test_programatic_function_empty_tuplec                 C   sr  t ttƒrt‚t| jtjtjB ƒ t| jtƒ t| jtjtj @ ƒ t| jtƒ t| jtjƒ t| jtjtjB ƒ t| jtj	ƒ t| jtjtj	B ƒ t| jt
jƒ t| jt
jt
jB ƒ t| jt
jƒ t| jt
jƒ t| jt
jt
jB ƒ t| jt
j	ƒ t| jt
jt
j	B ƒ t| jtjƒ t| jtjtjB ƒ t| jtjtjB dB ƒ t| jtdƒƒ t| jtdƒƒ t| jtƒ t| jtjƒ t| jtjdB ƒ t| jtjtjB ƒ t| jtj	ƒ t| jtj	dB ƒ t| jtjtj	B ƒ t| jtjƒ t| jtjtjB ƒ t| jtjƒ t| jtjƒ t| jtjdB ƒ t| jtjtjB ƒ t| jtj	ƒ t| jtj	dB ƒ t| jtjtj	B ƒ d S )NrÝ  r   rk   )rö  rt   r—   r¥   r¦  rp   rq   rç   rz   ry   r{   r}   r~   r   rŒ   rX   rX   rY   Útest_pickle  s$   

þþþþþ
þþ
þþ
þþþ
þþ
þþ
þþþþþþþ
þþþ
þþ
þþþþ
þþþ
þzTestFlag.test_picklec           	      C   sà   | j }|\}}}||B }||B }||B }||B |B }|  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ d S r²   ©rn  rN  rL  ©	r`   rn  rk  rl  rm  r¢  rË  rÌ  rÍ  rX   rX   rY   Útest_containmentª  s$    
zTestFlag.test_containmentc                 C   s`   G dd„ dt ƒ}|  t|ƒ|j|j|jg¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z(TestFlag.test_auto_number.<locals>.Colorr  Nr  rX   rX   rX   rY   rÂ   ¿  s   rÂ   rk   rl   ru   )r   rç   r±  r¿   rÁ   rÀ   rè   rÄ   rX   rX   rY   r
  ¾  s
    zTestFlag.test_auto_numberc                 C   s@   |   td¡  G dd„ dtƒ}W d   ƒ n1 s20    Y  d S )Nz invalid Flag value: .not an int.c                   @   s   e Zd ZdZdZeƒ ZdS )z0TestFlag.test_auto_number_garbage.<locals>.Colorr  z
not an intNr  rX   rX   rX   rY   rÂ   Ì  s   rÂ   r×   rÄ   rX   rX   rY   Útest_auto_number_garbageÊ  s    z!TestFlag.test_auto_number_garbagec                 C   sD   G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s(   e Zd ZdZdZeƒ Zeƒ ZeeB ZdS )z.TestFlag.test_auto_w_pending.<locals>.RequiredzTO_S FROM_Sr   N)	rf   rg   rh   r¾   rB  r"   ÚTO_SÚFROM_SÚBOTHrX   rX   rX   rY   ÚRequiredÒ  s
   r÷  rk   rl   rm   )r   rç   rô  rè   rõ  rö  )r`   r÷  rX   rX   rY   Útest_auto_w_pendingÑ  s    zTestFlag.test_auto_w_pendingc                 C   s0   G dd„ dt ƒ}|  |j|j|jgt|ƒ¡ d S )Nc                   @   s&   e Zd ZdZeƒ  ZZeƒ Zeƒ ZdS )z+TestFlag.test_duplicate_auto.<locals>.Dupesr  Nr  rX   rX   rX   rY   r  Ý  s   
r  )r   rç   re  rh  r  r±  )r`   r  rX   rX   rY   r  Ü  s    zTestFlag.test_duplicate_autoc                 C   s   G dd„ dt ƒ}d S )Nc                   @   s   e Zd ZdZdZdZdS )z&TestFlag.test_bizarre.<locals>.Bizarrerm   ru   r1  N)rf   rg   rh   rz  r  rÅ  rX   rX   rX   rY   ÚBizarreå  s   rù  rÔ   )r`   rù  rX   rX   rY   Útest_bizarreä  s    zTestFlag.test_bizarrec                 C   sT  G dd„ dt ƒ}G dd„ dt ƒ}G dd„ d|tƒ}|  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  t|jƒd¡ G dd„ d||tƒ}|  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  t|jƒd¡ G dd„ d||tƒ}|  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  t|jƒd¡ d S )Nc                   @   s   e Zd Zedd„ ƒZdS )z.TestFlag.test_multiple_mixin.<locals>.AllMixinc                 S   s<   t | ƒ}d }|r2|d }|dd … D ]}||O }q$|| _|S ©Nr   rk   ©r±  ÚALL©r  rA  Z	all_valuer%   rX   rX   rY   rý  í  s    
z2TestFlag.test_multiple_mixin.<locals>.AllMixin.ALLN©rf   rg   rh   r±   rý  rX   rX   rX   rY   ÚAllMixinì  s   r   c                   @   s   e Zd Zdd„ ZdS )z.TestFlag.test_multiple_mixin.<locals>.StrMixinc                 S   s
   | j  ¡ S r²   râ  rŒ   rX   rX   rY   r#  ø  s    z6TestFlag.test_multiple_mixin.<locals>.StrMixin.__str__Nrã  rX   rX   rX   rY   rä  ÷  s   rä  c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS ©z+TestFlag.test_multiple_mixin.<locals>.Colorrí  Nrî  rX   rX   rX   rY   rÂ   ú  s   rÂ   rk   rl   ru   rv  rï  c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS r  rî  rX   rX   rX   rY   rÂ     s   rÁ   c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS r  rî  rX   rX   rX   rY   rÂ     s   )	r  r   rç   r1  rè   r3  r2  rý  r  )r`   r   rä  rÂ   rX   rX   rY   rö  ë  s(    zTestFlag.test_multiple_mixinú!Threading required for this test.c                    sŒ   G dd„ dt ƒ‰ tƒ ‰dg‰‡ ‡‡fdd„‰‡fdd„tdƒD ƒ}|D ]}| ¡  qF|D ]}| ¡  qX|  ˆd	 d
¡ |  dtˆƒd¡ d S )Nc                   @   sP   e Zd ZdZeƒ Zeƒ Zeƒ Zeƒ Zeƒ Z	eƒ Z
eƒ Zeƒ Zdd„ Zdd„ ZdS )z0TestFlag.test_unique_composite.<locals>.TestFlagú'one two three four five six seven eightc                 S   s   | |u S r²   rX   r‘  rX   rX   rY   r’  &  s    z7TestFlag.test_unique_composite.<locals>.TestFlag.__eq__c                 S   s
   t | jƒS r²   ©Úhashr  rŒ   rX   rX   rY   r¿  (  s    z9TestFlag.test_unique_composite.<locals>.TestFlag.__hash__N©rf   rg   rh   r¾   r"   r¡  r¢  rë  ZfourZfiveÚsixZsevenZeightr’  r¿  rX   rX   rX   rY   rh    s   rh  Fc                     s@   z t dƒD ]} ˆ ˆ | ƒ¡ q
W n ty:   dˆd< Y n0 d S ©Né   Tr   ©r–   rB   r—   ©r*  ©rh  ÚfailedÚseenrX   rY   Ú
cycle_enum-  s
    z2TestFlag.test_unique_composite.<locals>.cycle_enumc                    s   g | ]}t jˆ d ‘qS ©)rŸ   ©Ú	threadingÚThread©r™  rZ  ©r  rX   rY   r›  4  s   ÿz2TestFlag.test_unique_composite.<locals>.<listcomp>rÚ   r   ú;at least one thread failed while creating composite membersr	  ú"too many composite members created)r   r‚  r–   r    rœ   rL  rç   r°  ©r`   ÚthreadsÚtrX   ©rh  r  r  r  rY   Útest_unique_composite  s     
þ

þzTestFlag.test_unique_compositec                    s   G ‡ fdd„dt ƒ‰ d S )Nc                       sB   e Zd ZdZdd„ Ze‡‡ fdd„ƒZdZdZdZ	d	Z
d
Z‡  ZS )zHTestFlag.test_init_with_autovalue_and_generate_next_value.<locals>.Colorz
value codec                 _   s”   |sd|f|d u f| S d}t |ƒD ]R}zt|ƒ}W  qzW q& tyv }	 z"|	}
d}W Y d }	~	 qzW Y d }	~	q&d }	~	0 0 q&|r‚|
‚d|d  f| S )Nrk   FTrl   )rÂ  r6   r—   )rª  r    rë  Úlast_valuesra   rb   r”  Ú
last_valueÚhigh_bitr+  r£   rX   rX   rY   rí  E  s    
&z^TestFlag.test_init_with_autovalue_and_generate_next_value.<locals>.Color._generate_next_value_c                    s8   t |  |¡ƒ}tˆ | ƒ |¡}d dd„ |D ƒ¡|_|S )Nry  c                 s   s   | ]}|j V  qd S r²   rz  r˜  rX   rX   rY   r{  Y  rœ  zrTestFlag.test_init_with_autovalue_and_generate_next_value.<locals>.Color._create_pseudo_member_.<locals>.<genexpr>)r±  Ú_iter_member_r^   Ú_create_pseudo_member_rœ   r  )r  rè   rA  Úpseudo_member©rÂ   re   rX   rY   r!  U  s    z_TestFlag.test_init_with_autovalue_and_generate_next_value.<locals>.Color._create_pseudo_member_r  r  r  r€  r  )rf   rg   rh   rï   rí  rI  r!  r$  r%  r“  r”  r•  ri   rX   r®  rd   rY   rÂ   C  s   rÂ   rÔ   rŒ   rX   r®  rY   Ú0test_init_with_autovalue_and_generate_next_valueB  s    z9TestFlag.test_init_with_autovalue_and_generate_next_valuec                    s   G ‡ fdd„dt tƒ‰ d S )Nc                       sZ   e Zd ZdZdd„ Zedd„ ƒZe‡‡ fdd„ƒZdZ	d	Z
d
ZdZdZdZdZdZ‡  ZS )z>TestFlag.test_autovalue_and_generate_next_value.<locals>.ColorúFFG_Black FG_Red FG_Green FG_Blue BG_Yellow BG_Magenta BG_Cyan BG_Whitec                 S   s$   d| }t  | |¡}||_||_|S r  rw  rx  rX   rX   rY   r  e  s
    zFTestFlag.test_autovalue_and_generate_next_value.<locals>.Color.__new__c                 _   s   d| f| S r"  rX   rì  rX   rX   rY   rí  k  s    zTTestFlag.test_autovalue_and_generate_next_value.<locals>.Color._generate_next_value_c                    s8   t |  |¡ƒ}d dd„ |D ƒ¡}tˆ | ƒ ||¡}|S )Nry  c                 s   s   | ]}|j V  qd S r²   rz  r˜  rX   rX   rY   r{  s  rœ  zhTestFlag.test_autovalue_and_generate_next_value.<locals>.Color._create_pseudo_member_.<locals>.<genexpr>©r±  r   rœ   r^   r!  ©r  rè   rA  r  r"  r#  rX   rY   r!  o  s    zUTestFlag.test_autovalue_and_generate_next_value.<locals>.Color._create_pseudo_member_r  r‚  rƒ  r„  r…  r†  r‡  rˆ  ©rf   rg   rh   r¾   r  rï  rí  rI  r!  r–  r—  r˜  r™  rš  r›  rœ  r  ri   rX   r®  rd   rY   rÂ   c  s   
rÂ   )r  r   rŒ   rX   r®  rY   Ú&test_autovalue_and_generate_next_valueb  s    z/TestFlag.test_autovalue_and_generate_next_valuec                    s\   G ‡ fdd„dt tƒ‰ |  tˆ jˆ ƒ¡ |  tˆ jt ƒ¡ |  ˆ jd¡ |  ˆ jjd¡ d S )Nc                       sZ   e Zd ZdZdd„ Zedd„ ƒZe‡‡ fdd„ƒZdZ	d	Z
d
ZdZdZdZdZdZ‡  ZS )z%TestFlag.test_subclass.<locals>.Colorr%  c                 S   s$   d| }t  | |¡}||_||_|S r  rw  rx  rX   rX   rY   r  †  s
    z-TestFlag.test_subclass.<locals>.Color.__new__c                 _   s   d| f| S r"  rX   rì  rX   rX   rY   rí  Œ  s    z;TestFlag.test_subclass.<locals>.Color._generate_next_value_c                    s8   t |  |¡ƒ}d dd„ |D ƒ¡}tˆ | ƒ ||¡}|S )Nry  c                 s   s   | ]}|j V  qd S r²   rz  r˜  rX   rX   rY   r{  “  rœ  zOTestFlag.test_subclass.<locals>.Color._create_pseudo_member_.<locals>.<genexpr>r&  r'  r#  rX   rY   r!    s    z<TestFlag.test_subclass.<locals>.Color._create_pseudo_member_r  r‚  rƒ  r„  r…  r†  r‡  rˆ  r(  rX   r®  rd   rY   rÂ   „  s   
rÂ   ú[30mr  ©r  r   rN  rö  r–  rç   r  rŒ   rX   r®  rY   Útest_subclassƒ  s
    zTestFlag.test_subclassc                    sl   G ‡ fdd„dt tƒ}G dd„ d|ƒ‰ |  tˆ jˆ ƒ¡ |  tˆ jt ƒ¡ |  ˆ jd¡ |  ˆ jjd¡ d S )Nc                       s*   e Zd Zdd„ Ze‡‡ fdd„ƒZ‡  ZS )z-TestFlag.test_sub_subclass_1.<locals>.StrFlagc                 S   s$   d| }t  | |¡}||_||_|S r  rw  rx  rX   rX   rY   r  ¨  s
    z5TestFlag.test_sub_subclass_1.<locals>.StrFlag.__new__c                    s8   t |  |¡ƒ}d dd„ |D ƒ¡}tˆ | ƒ ||¡}|S )Nry  c                 s   s   | ]}|j V  qd S r²   rz  r˜  rX   rX   rY   r{  ²  rœ  zWTestFlag.test_sub_subclass_1.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>r&  r'  r#  rX   rY   r!  ®  s    zDTestFlag.test_sub_subclass_1.<locals>.StrFlag._create_pseudo_member_©rf   rg   rh   r  rI  r!  ri   rX   r®  rd   rY   ÚStrFlag§  s   r.  c                   @   s0   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )z+TestFlag.test_sub_subclass_1.<locals>.Colorr%  r  r‚  rƒ  r„  r…  r†  r‡  rˆ  N©rf   rg   rh   r¾   r–  r—  r˜  r™  rš  r›  rœ  r  rX   rX   rX   rY   rÂ   µ  s   rÂ   r*  r  r+  ©r`   r.  rX   r®  rY   Útest_sub_subclass_1¦  s    zTestFlag.test_sub_subclass_1c                    sl   G ‡ fdd„dt tƒ}G dd„ d|ƒ‰ |  tˆ jˆ ƒ¡ |  tˆ jt ƒ¡ |  ˆ jd¡ |  ˆ jjd¡ d S )Nc                       s.   e Zd Zedd„ ƒZe‡‡ fdd„ƒZ‡  ZS )z-TestFlag.test_sub_subclass_2.<locals>.StrFlagc                 _   s   d| f| S r"  rX   rì  rX   rX   rY   rí  È  s    zCTestFlag.test_sub_subclass_2.<locals>.StrFlag._generate_next_value_c                    s8   t |  |¡ƒ}d dd„ |D ƒ¡}tˆ | ƒ ||¡}|S )Nry  c                 s   s   | ]}|j V  qd S r²   rz  r˜  rX   rX   rY   r{  Ï  rœ  zWTestFlag.test_sub_subclass_2.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>r&  r'  r#  rX   rY   r!  Ë  s    zDTestFlag.test_sub_subclass_2.<locals>.StrFlag._create_pseudo_member_)rf   rg   rh   rï  rí  rI  r!  ri   rX   r®  rd   rY   r.  Ç  s   
r.  c                   @   s8   e Zd ZdZdd„ ZdZdZdZdZdZ	d	Z
d
ZdZdS )z+TestFlag.test_sub_subclass_2.<locals>.Colorr%  c                 S   s$   d| }t  | |¡}||_||_|S r  rw  rx  rX   rX   rY   r  Õ  s
    z3TestFlag.test_sub_subclass_2.<locals>.Color.__new__r  r‚  rƒ  r„  r…  r†  r‡  rˆ  N)rf   rg   rh   r¾   r  r–  r—  r˜  r™  rš  r›  rœ  r  rX   rX   rX   rY   rÂ   Ó  s   rÂ   r*  r  r+  r0  rX   r®  rY   Útest_sub_subclass_2Æ  s    zTestFlag.test_sub_subclass_2c                    sl   G ‡ fdd„dt tƒ}G dd„ d|ƒ‰ |  tˆ jˆ ƒ¡ |  tˆ jt ƒ¡ |  ˆ jd¡ |  ˆ jjd¡ d S )Nc                       s*   e Zd Zdd„ Ze‡‡ fdd„ƒZ‡  ZS )z-TestFlag.test_sub_subclass_3.<locals>.StrFlagc                 S   s$   d| }t  | |¡}||_||_|S r  rw  rx  rX   rX   rY   r  ì  s
    z5TestFlag.test_sub_subclass_3.<locals>.StrFlag.__new__c                    s8   t |  |¡ƒ}d dd„ |D ƒ¡}tˆ | ƒ ||¡}|S )Nry  c                 s   s   | ]}|j V  qd S r²   rz  r˜  rX   rX   rY   r{  ö  rœ  zWTestFlag.test_sub_subclass_3.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>r&  r'  r#  rX   rY   r!  ò  s    zDTestFlag.test_sub_subclass_3.<locals>.StrFlag._create_pseudo_member_r-  rX   r®  rd   rY   r.  ë  s   r.  c                   @   s0   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )z+TestFlag.test_sub_subclass_3.<locals>.Colorr%  r  r‚  rƒ  r„  r…  r†  r‡  rˆ  Nr/  rX   rX   rX   rY   rÂ   ú  s   rÂ   r*  r  r+  r0  rX   r®  rY   Útest_sub_subclass_3ê  s    zTestFlag.test_sub_subclass_3c                 C   s¾   G dd„ dt tƒ}G dd„ d|ƒ}|  t|j|ƒ¡ |  t|jt ƒ¡ |  |jd¡ |  |jjd¡ |j|jB }|  t||ƒ¡ |  t|t ƒ¡ |  |d¡ |  |jd¡ |  t|ƒd	¡ d S )
Nc                   @   s    e Zd Zdd„ Zedd„ ƒZdS )z-TestFlag.test_sub_subclass_4.<locals>.StrFlagc                 S   s$   d| }t  | |¡}||_||_|S r  rw  rx  rX   rX   rY   r    s
    z5TestFlag.test_sub_subclass_4.<locals>.StrFlag.__new__c                 W   s   d  dd„ |D ƒ¡}||f S )Nry  c                 s   s   | ]}|j V  qd S r²   rz  r˜  rX   rX   rY   r{    rœ  z^TestFlag.test_sub_subclass_4.<locals>.StrFlag._create_pseudo_member_values_.<locals>.<genexpr>r|  r}  rX   rX   rY   r~    s    zKTestFlag.test_sub_subclass_4.<locals>.StrFlag._create_pseudo_member_values_N)rf   rg   rh   r  rI  r~  rX   rX   rX   rY   r.    s   r.  c                   @   s8   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
d„ ZdS )z+TestFlag.test_sub_subclass_4.<locals>.Colorr%  r  r‚  rƒ  r„  r…  r†  r‡  rˆ  c                 S   s   d| j j| jf S r]  r_  rŒ   rX   rX   rY   r"  %  s    z4TestFlag.test_sub_subclass_4.<locals>.Color.__repr__N)rf   rg   rh   r¾   r–  r—  r˜  r™  rš  r›  rœ  r  r"  rX   rX   rX   rY   rÂ     s   rÂ   r*  r  z[30;45mz30;45z<Color.FG_Black|BG_Magenta>)	r  r   rN  rö  r–  rç   r  r›  r(  )r`   r.  rÂ   ÚcolorsrX   rX   rY   Útest_sub_subclass_4  s    zTestFlag.test_sub_subclass_4c                    sv   G ‡ fdd„dt tƒ‰ G dd„ dˆ ƒ}|  t|j|ƒ¡ |  t|jt ƒ¡ |  |jdt  |j¡¡ |  |jjd¡ d S )Nc                       s*   e Zd Zdd„ Ze‡‡ fdd„ƒZ‡  ZS )z8TestFlag.test_sub_subclass_with_new_new.<locals>.StrFlagc                 S   s$   d| }t  | |¡}||_||_|S r  rw  rx  rX   rX   rY   r  4  s
    z@TestFlag.test_sub_subclass_with_new_new.<locals>.StrFlag.__new__c                    s8   t |  |¡ƒ}d dd„ |D ƒ¡}tˆ | ƒ ||¡}|S )Nry  c                 s   s   | ]}|j V  qd S r²   rz  r˜  rX   rX   rY   r{  >  rœ  zbTestFlag.test_sub_subclass_with_new_new.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>r&  r'  )r.  re   rX   rY   r!  :  s    zOTestFlag.test_sub_subclass_with_new_new.<locals>.StrFlag._create_pseudo_member_r-  rX   ©r.  rd   rY   r.  3  s   r.  c                   @   s@   e Zd ZdZdd„ ZdZdZdZdZdZ	d	Z
d
ZdZdd„ ZdS )z6TestFlag.test_sub_subclass_with_new_new.<locals>.Colorr%  c                 S   s.   |pd  ¡ }t | |¡}||_||_||_|S )Nr  )rM  r  r  r  r  rW  )r  rè   ÚstringrW  r  r§   rX   rX   rY   r  D  s    z>TestFlag.test_sub_subclass_with_new_new.<locals>.Color.__new__)r  Úblk)r‚  r¿   )rƒ  Zgrn)r„  Zblu)r…  Zylw)r†  Zmag)r‡  Zcyn)rˆ  Zwhtc                 S   s@   | j d urd| jj| j f S d| jjd dd„ | D ƒ¡f S d S )Nr^  r‰  rŠ  c                 S   s   g | ]
}|j ‘qS rX   r©  r˜  rX   rX   rY   r›  Z  rœ  zSTestFlag.test_sub_subclass_with_new_new.<locals>.Color.__repr__.<locals>.<listcomp>©r  re   rf   rœ   rŒ   rX   rX   rY   r"  V  s    
z?TestFlag.test_sub_subclass_with_new_new.<locals>.Color.__repr__N)rf   rg   rh   r¾   r  r–  r—  r˜  r™  rš  r›  rœ  r  r"  rX   rX   rX   rY   rÂ   B  s   rÂ   ZBlkr8  )r  r   rN  rö  r–  rç   r"  rW  rÄ   rX   r6  rY   Útest_sub_subclass_with_new_new2  s    z'TestFlag.test_sub_subclass_with_new_newc                 C   sp   G dd„ dt tƒ}|  |jd¡ |  |jjd¡ |  |jd¡ |  |jjd¡ |  |jd¡ |  |jjd¡ d S )	Nc                   @   s   e Zd ZdZdZdZdZdS )z7TestFlag.test_subclass_with_default_new.<locals>.MyFlagzthis these theotherr  r  ÚthingimibobsN)rf   rg   rh   r¾   r  r  r%  rX   rX   rX   rY   ÚMyFlaga  s   r<  r  rk   r  rl   r;  ru   )r  r   rç   r  rè   r  r%  )r`   r<  rX   rX   rY   Útest_subclass_with_default_new`  s    z'TestFlag.test_subclass_with_default_newc                    s‚   G ‡ fdd„dt tƒ‰ ˆ jˆ jB }|  t|ˆ ƒ¡ |  t|t ƒ¡ |  |ˆ jˆ jB ¡ |  |d¡ |  |jd¡ |  |j	d¡ d S )Nc                       sb   e Zd ZdZdd„ Zedd„ ƒZe‡‡ fdd„ƒZdZ	d	Z
d
ZdZdZdZdZdZdd„ Z‡  ZS )z-TestFlag.test_subclass_a_bunch.<locals>.Colorr%  c                 S   s$   d| }t  | |¡}||_||_|S r  rw  rx  rX   rX   rY   r  p  s
    z5TestFlag.test_subclass_a_bunch.<locals>.Color.__new__c                 _   s   d| f| S r"  rX   rì  rX   rX   rY   rí  v  s    zCTestFlag.test_subclass_a_bunch.<locals>.Color._generate_next_value_c                    s8   t |  |¡ƒ}d dd„ |D ƒ¡}tˆ | ƒ ||¡}|S )Nry  c                 s   s   | ]}|j V  qd S r²   rz  r˜  rX   rX   rY   r{  }  rœ  zWTestFlag.test_subclass_a_bunch.<locals>.Color._create_pseudo_member_.<locals>.<genexpr>r&  r'  r#  rX   rY   r!  y  s    zDTestFlag.test_subclass_a_bunch.<locals>.Color._create_pseudo_member_r  r‚  rƒ  r„  r…  r†  r‡  rˆ  c                 S   s@   | j d urd| jj| j f S d| jjd dd„ | D ƒ¡f S d S )Nr^  r‰  rŠ  c                 S   s   g | ]
}|j ‘qS rX   r©  r˜  rX   rX   rY   r›    rœ  zJTestFlag.test_subclass_a_bunch.<locals>.Color.__repr__.<locals>.<listcomp>r9  rŒ   rX   rX   rY   r"  Œ  s    
z6TestFlag.test_subclass_a_bunch.<locals>.Color.__repr__)rf   rg   rh   r¾   r  rï  rí  rI  r!  r–  r—  r˜  r™  rš  r›  rœ  r  r"  ri   rX   r®  rd   rY   rÂ   n  s   
rÂ   z[34;45mz34;45zFG_Blue|BG_Magenta)
r  r   r›  r™  rN  rö  r¦  rç   r  rª  )r`   ZPurplerX   r®  rY   Útest_subclass_a_bunchm  s    $zTestFlag.test_subclass_a_bunchc                    s<  G ‡ ‡fdd„dt ƒ‰ G ‡fdd„dˆ ƒ‰G dd„ dˆƒ}G dd„ d|ƒ}ˆ ˆjd	 d¡ ˆ |jd	 d¡ ˆ |jd
 d¡ ˆ |j d	d¡¡ ˆ |j d
d¡¡ G dd„ dˆ ƒ}G dd„ d|ƒ}G dd„ d|ƒ}ˆ |jd	 d¡ ˆ |j d	d¡¡ ˆ |jd
 d¡ ˆ |j d	d¡¡ ˆ |j d
d¡¡ d S )Nc                       s    e Zd Z‡‡ ‡fdd„Z‡  ZS )z+TestFlag.test_init_subclass.<locals>.MyEnumc                    s4   t ˆ | ƒjf i |¤Ž ˆ | j dd¡¡ d| _d S r  r  r  r  rX   rY   r  œ  s    z=TestFlag.test_init_subclass.<locals>.MyEnum.__init_subclass__r   rX   r!  rd   rY   r$  ›  s   r$  c                       s   e Zd Z‡‡ fdd„Z‡  ZS )z.TestFlag.test_init_subclass.<locals>.TheirEnumc                    s    t ˆ | ƒjf i |¤Ž d| _d S r"  r$  r  r&  rX   rY   r  ¢  s    z@TestFlag.test_init_subclass.<locals>.TheirEnum.__init_subclass__r   rX   r'  rd   rY   r#  ¡  s   r#  c                   @   s   e Zd Zdd„ ZdS )z.TestFlag.test_init_subclass.<locals>.WhoseEnumc                 [   s   d S r²   rX   r  rX   rX   rY   r  ¦  s    z@TestFlag.test_init_subclass.<locals>.WhoseEnum.__init_subclass__Nr(  rX   rX   rX   rY   r)  ¥  s   r)  c                   @   s   e Zd ZdZdS )z+TestFlag.test_init_subclass.<locals>.NoEnumrk   Nr*  rX   rX   rX   rY   r+  ¨  s   r+  r  r%  Fc                   @   s   e Zd Zdd„ ZdS )z,TestFlag.test_init_subclass.<locals>.OurEnumc                 [   s
   d| _ d S r,  r.  r  rX   rX   rY   r  ±  s    z>TestFlag.test_init_subclass.<locals>.OurEnum.__init_subclass__Nr(  rX   rX   rX   rY   r-  °  s   r-  c                   @   s   e Zd Zdd„ ZdS )z.TestFlag.test_init_subclass.<locals>.WhereEnumc                 [   s   d S r²   rX   r  rX   rX   rY   r  ´  s    z@TestFlag.test_init_subclass.<locals>.WhereEnum.__init_subclass__Nr(  rX   rX   rX   rY   r/  ³  s   r/  c                   @   s   e Zd ZdZdS )z.TestFlag.test_init_subclass.<locals>.NeverEnumrk   Nr*  rX   rX   rX   rY   r0  ¶  s   r0  )r   rç   rà  rL  r  r1  rX   r2  rY   r3  š  s"    zTestFlag.test_init_subclassc                 C   sh   G dd„ dt ƒ}|  |j|dƒ¡ |  |j|jB |dƒ¡ |  |j|dƒ¡ |  |j|jB |dƒ¡ d S )Nc                   @   s    e Zd ZdZdZdZdZdZdS )z/TestFlag.test_int_long_conversion.<locals>.Permrk   rl   ru   ì        ì            N)rf   rg   rh   ZEXECÚWRITEÚREADÚMSB32ÚMSB64rX   rX   rX   rY   rn  ¿  s
   rn  r?  l       r@  l           )r   rç   rC  rA  rD  ©r`   rn  rX   rX   rY   Útest_int_long_conversion¾  s
    z!TestFlag.test_int_long_conversionN)8rf   rg   rh   r¶   rÞ  rî  r  rø  r¦  r§  r©  r^  r¬  r   r±  rÂ  rÅ  rÉ  rÎ  rÏ  rÑ  rT  rÞ  rà  rá  rÑ  rÓ  rÕ  rØ  rÚ  rí  rî  rï  rò  r
  ró  rø  r  rú  rö  ÚunittestÚ
skipUnlessr  r  r$  r)  r,  r1  r2  r3  r5  r:  r=  r>  r3  rF  rX   rX   rX   rY   rh  "  sh   ]$

	) .

( !# $!'.-$rh  c                   @   sü   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Ze e d6¡d7d8„ ƒZ!d9d:„ Z"d;S )<ÚTestIntFlagzTests of the IntFlags.c                 C   sF   G dd„ dt ƒ}G dd„ dt ƒ}G dd„ dt ƒ}|| _|| _|| _d S )Nc                   @   s   e Zd ZdZdZdZdZdS )zTestIntFlag.setUp.<locals>.Permri  ru   rl   rk   Nrj  rX   rX   rX   rY   rn  Ô  s   rn  c                   @   s$   e Zd ZdZdZdZdZeeB ZdS )z TestIntFlag.setUp.<locals>.Colorr   rk   rl   ru   N)rf   rg   rh   r…  r1  r3  r2  ro  rX   rX   rX   rY   rÂ   Ú  s
   rÂ   c                   @   s$   e Zd ZdZdZdZdZdZdZdS )zTestIntFlag.setUp.<locals>.Openúnot a good flag candidater   rk   rl   rm   rŸ  N©	rf   rg   rh   r¶   r   r¡  r¢  r£  r¤  rX   rX   rX   rY   r¥  á  s   r¥  )r   rn  rÂ   r¥  )r`   rn  rÂ   r¥  rX   rX   rY   rÞ  Ò  s    zTestIntFlag.setUpc                    sx   G dd„ dt ƒ‰ G ‡ fdd„dtƒ}|  t|ƒ|jg¡ |  |jjd¡ d|j_|  |jjd¡ |  |jjd d¡ d S )Nc                   @   s*   e Zd ZdZddd„Zdd„ Zdd„ ZdS )	z-TestIntFlag.test_set_name.<locals>.DescriptorNc                 S   s   |d u r| S |j | j S d S r²   rß  rá  rX   rX   rY   rº   ð  s    z5TestIntFlag.test_set_name.<locals>.Descriptor.__get__c                 S   s   ||j | j< d S r²   rß  râ  rX   rX   rY   rJ  õ  s    z5TestIntFlag.test_set_name.<locals>.Descriptor.__set__c                 S   s
   || _ d S r²   r©  rã  rX   rX   rY   rå  ÷  s    z:TestIntFlag.test_set_name.<locals>.Descriptor.__set_name__)Nræ  rX   rX   rX   rY   rç  î  s   
rç  c                       s   e Zd ZdZ” ƒ ZdS )z)TestIntFlag.test_set_name.<locals>.AnEnumrk   Nrè  rX   ré  rX   rY   rê  ú  s   rê  r¢  rë  rì  rí  rX   ré  rY   rî  í  s    zTestIntFlag.test_set_namec                 C   sd   G dd„ dt ƒ}|  t|ƒd¡ |  |jd¡ |  t|jt ƒ¡ |  |jd¡ |  t|jt ƒ¡ d S )Nc                   @   s   e Zd ZdZdZdS )z/TestIntFlag.test_private_names.<locals>.Privaterï  rð  Nrñ  rX   rX   rX   rY   rô    s   rô  r   rï  rð  rõ  r÷  rX   rX   rY   rø    s    zTestIntFlag.test_private_namesc                 C   sˆ   | j }| j}|  d|v ¡ |  d|v ¡ |  |j|v ¡ |  |j|v ¡ |  |j|v ¡ |  |j|v ¡ |  d|v ¡ |  d|v ¡ d S )Nr3  r¢  rl   )rÂ   r¥  rL  rN  r3  r¢  r¨  rX   rX   rY   r©    s    zTestIntFlag.test_membershipc                    sR   | j ‰ |  t‡ fdd„¡ |  dˆ jv ¡ |  ˆ jˆ jv ¡ |  ˆ jˆ jv ¡ d S )Nc                      s
   dˆ j v S r[  )r1  rX   r®  rX   rY   r¯    rœ  z2TestIntFlag.test_member_contains.<locals>.<lambda>rk   )rÂ   r=  rÌ   rN  r1  ro  rŒ   rX   r®  rY   r^    s
    z TestIntFlag.test_member_containsc                 C   sL   | j }|  |j|d u ¡ |  |j|jB |d u ¡ |  |j|d u ¡ d S rÃ  rÄ  rÄ   rX   rX   rY   rÅ  !  s    zTestIntFlag.test_name_lookupc                 C   s¸   | j }| j}|D ]"}|  t||ƒ¡ |  ||j¡ q|  t|j|jB |ƒ¡ |  |j|jB d¡ |D ]"}|  t||ƒ¡ |  ||j¡ qd|  t|j|j	B |ƒ¡ |  |j|j	B d¡ d S rm  )
rn  r¥  rN  rö  rç   rè   rl  rm  r¡  r¢  )r`   rn  r¥  rC  rX   rX   rY   Ú	test_type'  s    zTestIntFlag.test_typec                 C   sð  | j }|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd¡ |  t|j ƒd¡ |  t|j ƒd	¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd¡ |  t|d
ƒƒd¡ | j}|  t|jƒd¡ |  t|jƒd¡ |  t|j	ƒd¡ |  t|j|j
B ƒd¡ |  t|j|j
B ƒd¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j	 ƒd¡ |  t|j|j
B  ƒd¡ |  t|j|j
B  ƒd¡ d S )Nr€  r  r  Ú6Ú7r   r  Ú3Ú5rP   Z524288Z524289Z524291Z524290r¯  r°  rX   rX   rY   r±  6  s0     zTestIntFlag.test_strc                 C   sˆ  G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd
¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd	¡ |  	t
d¡ t|jdB ƒ W d   ƒ n1 s@0    Y  |  	t
d¡  t|jdB  ƒ W d   ƒ n1 s~0    Y  |  	t
d¡ t|dƒƒ W d   ƒ n1 s¸0    Y  G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd
¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd	¡ |  	t
d¡ t|jdB ƒ W d   ƒ n1 s0    Y  |  	t
d¡  t|jdB  ƒ W d   ƒ n1 s@0    Y  |  	t
d¡ t|dƒƒ W d   ƒ n1 sz0    Y  d S )Nc                   @   s   e Zd ZdZdZdZdZdS )ú*TestIntFlag.test_repr_strict.<locals>.Permri  ru   rl   rk   Nrj  rX   rX   rX   rY   rn  S  s   rn  r²  r³  r´  rµ  r¶  r   r·  r¸  r¹  z12 is not a valid PermrÚ   z-9 is not a valid Permé÷ÿÿÿc                   @   s    e Zd ZdZdZdZdZdZdS )rQ  ri  ru   rl   rk   rŒ  N©rf   rg   rh   r¾   rk  rl  rm  ÚFUTURErX   rX   rX   rY   rn  m  s
   )r   rS   r   Ú
_boundary_rç   r(  rk  rl  rm  r\   r›   rE  rX   rX   rY   Útest_repr_strictQ  sL     .0, .0zTestIntFlag.test_repr_strictc                 C   sÌ  G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd
¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd	¡ |  t|jdB ƒd¡ |  t|dƒƒd	¡ |  t|jdB  ƒd
¡ |  t|dƒƒd¡ G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd
¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd	¡ |  t|jdB ƒd¡ |  t|dƒƒd	¡ |  t|jdB  ƒd
¡ |  t|dƒƒd¡ d S )Nc                   @   s   e Zd ZdZdZdZdZdS )ú+TestIntFlag.test_repr_conform.<locals>.Permri  ru   rl   rk   Nrj  rX   rX   rX   rY   rn  ‰  s   rn  r²  r³  r´  rµ  r¶  r   r·  r¸  r¹  rÚ   rR  c                   @   s    e Zd ZdZdZdZdZdZdS )rW  ri  ru   rl   rk   rŒ  NrS  rX   rX   rX   rY   rn     s
   ©	r   rS   r   rU  rç   r(  rk  rl  rm  rE  rX   rX   rY   Útest_repr_conform‡  sD      zTestIntFlag.test_repr_conformc                 C   s¼  G dd„ dt ƒ}|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd
¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd	¡ |  t|jdB ƒd¡ |  t|dƒƒd¡ |  t|jdB  ƒd¡ |  t|dƒƒd¡ G dd„ dt ƒ}|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd
¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd	¡ |  t|jdB ƒd¡ |  t|dƒƒd¡ |  t|jdB  ƒd¡ |  t|dƒƒd¡ d S )Nc                   @   s    e Zd ZdZeZdZdZdZdS )ú)TestIntFlag.test_repr_eject.<locals>.Permri  ru   rl   rk   N)	rf   rg   rh   r¾   r   rU  rk  rl  rm  rX   rX   rX   rY   rn  ¹  s
   rn  r²  r³  r´  rµ  r¶  r   r·  r¸  r¹  rÚ   Z12Ú8z-13rR  z-9c                   @   s$   e Zd ZdZeZdZdZdZdZ	dS )rZ  ri  ru   rl   rk   rŒ  N)
rf   rg   rh   r¾   r   rU  rk  rl  rm  rT  rX   rX   rX   rY   rn  Ð  s   )r   rç   r(  rk  rl  rm  rE  rX   rX   rY   Útest_repr_eject·  s@      zTestIntFlag.test_repr_ejectc                 C   sÌ  G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd
¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd	¡ |  t|jdB ƒd¡ |  t|dƒƒd	¡ |  t|jdB  ƒd
¡ |  t|dƒƒd¡ G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd
¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd	¡ |  t|jdB ƒd¡ |  t|dƒƒd	¡ |  t|jdB  ƒd
¡ |  t|dƒƒd¡ d S )Nc                   @   s   e Zd ZdZdZdZdZdS )ú(TestIntFlag.test_repr_keep.<locals>.Permri  ru   rl   rk   Nrj  rX   rX   rX   rY   rn  é  s   rn  r²  r³  r´  rµ  r¶  r   r·  r¸  r¹  rÚ   rR  c                   @   s    e Zd ZdZdZdZdZdZdS )r]  ri  ru   rl   rk   rŒ  NrS  rX   rX   rX   rY   rn     s
   rX  rE  rX   rX   rY   Útest_repr_keepç  sD      zTestIntFlag.test_repr_keepc                 C   s’  G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|j	B ƒd¡ |  t|j|j	B ƒd¡ |  t|j ƒd¡ |  t|j ƒd	¡ |  t|j ƒd¡ |  t|j|j	B  ƒd¡ |  t|j|j	B  ƒd
¡ |  
td¡ t|dƒƒ W d   ƒ n1 s0    Y  |  
td¡ t|dƒƒ W d   ƒ n1 sX0    Y  G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|j	B ƒd¡ |  t|j|j	B ƒd¡ |  t|j ƒd¡ |  t|j ƒd	¡ |  t|j ƒd¡ |  t|j|j	B  ƒd¡ |  t|j|j	B  ƒd
¡ |  t|dƒƒd¡ |  t|dƒƒd¡ G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|j	B ƒd¡ |  t|j|j	B ƒd¡ |  t|j ƒd¡ |  t|j ƒd	¡ |  t|j ƒd¡ |  t|j|j	B  ƒd¡ |  t|j|j	B  ƒd
¡ |  t|dƒƒd¡ |  t|dƒƒd¡ d S )Nc                   @   s$   e Zd ZdZdZdZdZdZdZdS ©z(TestIntFlag.test_repr_open.<locals>.OpenrJ  r   rk   rl   rm   rŸ  NrK  rX   rX   rX   rY   r¥    s   r¥  rº  r»  r¼  r½  r¾  r¿  rÀ  rÁ  z-5 is not a valid Openrs  z4 is not a valid Openru   c                   @   s$   e Zd ZdZdZdZdZdZdZdS r_  rK  rX   rX   rX   rY   r¥  /  s   c                   @   s$   e Zd ZdZdZdZdZdZdZdS r_  rK  rX   rX   rX   rY   r¥  D  s   z-5r€  )r   rS   r   rU  rç   r(  r   r¡  r£  r¤  r\   r›   r   r   )r`   r¥  rX   rX   rY   Útest_repr_open  sX    ,,zTestIntFlag.test_repr_openc                 C   sL  | j }|D ]æ}|D ]J}|  ||B |j|jB ¡ |  ||B j|j|jB ¡ |  t||B ƒ|¡ qtdƒD ]ˆ}|  ||B |j|B ¡ |  ||B j|j|B ¡ |  t||B ƒ|¡ |  ||B ||jB ¡ |  ||B j||jB ¡ |  t||B ƒ|¡ qfq
|D ]4}|  ||B |¡ |  |dB |¡ |  d|B |¡ qö| j}|  |j|jB |j¡ d S ©NrÚ   r   ©	rn  rç   rè   r¦  r  r–   r¥  r   r¤  rÇ  rX   rX   rY   rÉ  Y  s&    zTestIntFlag.test_orc           
   	   C   s¾  | j }|j|jB }|j|jB }|j|jB }|j|jB |jB }t|ƒ|||||dƒg }|D ]}|D ]h}|  ||@ |j|j@ d||f ¡ |  ||@ j|j|j@ d||f ¡ |  t||@ ƒ|d||f ¡ qdt	dƒD ]ˆ}|  ||@ |j|@ ¡ |  ||@ j|j|@ ¡ |  t||@ ƒ|¡ |  ||@ ||j@ ¡ |  ||@ j||j@ ¡ |  t||@ ƒ|¡ qÖqZ|D ]6}|  ||@ |¡ |  |d@ |¡ |  d|@ |¡ qf| j
}	|  |	j|	j@ |	j¡ d S )Nr   zi is %r, j is %rrÚ   rv  )rn  rk  rl  rm  r±  rç   rè   r¦  r  r–   r¥  r   r¤  rÊ  rX   rX   rY   rÎ  n  s0    
"$ zTestIntFlag.test_andc                 C   sR  | j }|D ]æ}|D ]J}|  ||A |j|jA ¡ |  ||A j|j|jA ¡ |  t||A ƒ|¡ qtdƒD ]ˆ}|  ||A |j|A ¡ |  ||A j|j|A ¡ |  t||A ƒ|¡ |  ||A ||jA ¡ |  ||A j||jA ¡ |  t||A ƒ|¡ qfq
|D ]$}|  |dA |¡ |  d|A |¡ qö| j}|  |j|jA |j¡ |  |j|jA |j¡ d S ra  rb  rÇ  rX   rX   rY   rÏ  ˆ  s&    zTestIntFlag.test_xorc           	      C   sî   | j }|j|jB }|j|jB }|j|jB }|j|jB |jB }t|ƒ|||||dƒg }|D ]8}|  | | j¡ |  t| ƒ|¡ |  |  |¡ qZ|D ]}|  |  |¡ q˜| j	}|  |j
|j
 @ |j¡ |  |j
|jB |j
 @ |j¡ d S r‹   )rn  rk  rl  rm  r±  rç   rè   r¦  r  r¥  r¡  r   r¤  rÐ  rX   rX   rY   rÑ    s    zTestIntFlag.test_invertc                 C   sj   | j }|j|jA }|j|jB |jB }|  t|ƒg ¡ |  t|jƒ|jg¡ |  t|ƒ|j|j|jg¡ d S r²   )rn  rk  rl  rm  rç   r±  )r`   rn  ZNoPermrÍ  rX   rX   rY   Ú	test_iter®  s    zTestIntFlag.test_iterc                 C   sÐ   t ddƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  ||j|j|jg¡ td ¡ ƒD ]n\}}d|> }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  ||¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q\d S râ  ©r   r±  rç   r°  rk  rl  rm  r%  r&  rè   r  rý   rª  rä  r¦  rå  rX   rX   rY   rÑ  ¶  s    
z,TestIntFlag.test_programatic_function_stringc                 C   sÔ   t dddd}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  ||j|j|jg¡ td ¡ ƒD ]n\}}d|> }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  ||¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q`d S rç  rd  rå  rX   rX   rY   rÓ  Æ  s    z7TestIntFlag.test_programatic_function_string_with_startc                 C   sÔ   t dg d¢ƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  ||j|j|jg¡ td ¡ ƒD ]n\}}d|> }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  ||¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q`d S rè  rd  rå  rX   rX   rY   rÕ  Ö  s    z1TestIntFlag.test_programatic_function_string_listc                 C   sØ   t ddƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  ||j|j|jg¡ td ¡ ƒD ]v\}}dd| d > }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  ||¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q\d S ré  rd  rå  rX   rX   rY   rØ  æ  s    
z.TestIntFlag.test_programatic_function_iterablec                 C   sÜ   t dtdƒƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  ||j|j|jg¡ td 	¡ ƒD ]v\}}dd| d > }||ƒ}|  |j
|¡ |  t|j
ƒt¡ |  ||¡ |  |j|¡ |  ||¡ |  t|ƒ|¡ q`d S ré  )r   r7   r±  rç   r°  rk  rl  rm  r%  r&  rè   r  rý   rª  rä  r¦  rå  rX   rX   rY   rÚ  ö  s    z/TestIntFlag.test_programatic_function_from_dictc           	      C   sà   | j }|\}}}||B }||B }||B }||B |B }|  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ d S r²   rð  rñ  rX   rX   rY   rò    s$    
zTestIntFlag.test_containmentc                 C   sD   | j }|D ]}|  |¡ q
| j}|D ]}|  t|jƒt|ƒ¡ q$d S r²   rÒ  rÓ  rX   rX   rY   rT    s    zTestIntFlag.test_boolc                    s\  G dd„ dt ƒ}G dd„ dt ƒ‰ G dd„ d|tƒ}|  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  t|jƒd¡ G ‡ fdd„d|ˆ tƒ}|  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  t|jƒd¡ G ‡ fdd„dˆ |tƒ}|  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  t|jƒd¡ d S )Nc                   @   s   e Zd Zedd„ ƒZdS )z1TestIntFlag.test_multiple_mixin.<locals>.AllMixinc                 S   s<   t | ƒ}d }|r2|d }|dd … D ]}||O }q$|| _|S rû  rü  rþ  rX   rX   rY   rý  $  s    
z5TestIntFlag.test_multiple_mixin.<locals>.AllMixin.ALLNrÿ  rX   rX   rX   rY   r   #  s   r   c                   @   s   e Zd Zdd„ ZdS )z1TestIntFlag.test_multiple_mixin.<locals>.StrMixinc                 S   s
   | j  ¡ S r²   râ  rŒ   rX   rX   rY   r#  /  s    z9TestIntFlag.test_multiple_mixin.<locals>.StrMixin.__str__Nrã  rX   rX   rX   rY   rä  .  s   rä  c                   @   s"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS ©z.TestIntFlag.test_multiple_mixin.<locals>.Colorrí  Nrî  rX   rX   rX   rY   rÂ   1  s   rÂ   rk   rl   ru   rv  r€  c                       s(   e Zd ZdZ” jZeƒ Zeƒ Zeƒ ZdS re  ©	rf   rg   rh   r¾   r#  r"   r1  r3  r2  rX   ©rä  rX   rY   rÂ   ;  s
   rÁ   c                       s(   e Zd ZdZ” jZeƒ Zeƒ Zeƒ ZdS re  rf  rX   rg  rX   rY   rÂ   F  s
   )	r  r   rç   r1  rè   r3  r2  rý  r  )r`   r   rÂ   rX   rg  rY   rö  "  s(    zTestIntFlag.test_multiple_mixinr  c                    sŒ   G dd„ dt ƒ‰ tƒ ‰dg‰‡ ‡‡fdd„‰‡fdd„tdƒD ƒ}|D ]}| ¡  qF|D ]}| ¡  qX|  ˆd	 d
¡ |  dtˆƒd¡ d S )Nc                   @   sP   e Zd ZdZeƒ Zeƒ Zeƒ Zeƒ Zeƒ Z	eƒ Z
eƒ Zeƒ Zdd„ Zdd„ ZdS )z3TestIntFlag.test_unique_composite.<locals>.TestFlagr  c                 S   s   | |u S r²   rX   r‘  rX   rX   rY   r’  _  s    z:TestIntFlag.test_unique_composite.<locals>.TestFlag.__eq__c                 S   s
   t | jƒS r²   r  rŒ   rX   rX   rY   r¿  a  s    z<TestIntFlag.test_unique_composite.<locals>.TestFlag.__hash__Nr  rX   rX   rX   rY   rh  U  s   rh  Fc                     s@   z t dƒD ]} ˆ ˆ | ƒ¡ q
W n ty:   dˆd< Y n0 d S r  r
  r  r  rX   rY   r  f  s
    z5TestIntFlag.test_unique_composite.<locals>.cycle_enumc                    s   g | ]}t jˆ d ‘qS r  r  r  r  rX   rY   r›  m  s   ÿz5TestIntFlag.test_unique_composite.<locals>.<listcomp>rÚ   r   r  r	  r  )r   r‚  r–   r    rœ   rL  rç   r°  r  rX   r  rY   r  R  s     
þ

þz!TestIntFlag.test_unique_compositec                    s<  G ‡ ‡fdd„dt ƒ‰ G ‡fdd„dˆ ƒ‰G dd„ dˆƒ}G dd„ d|ƒ}ˆ ˆjd	 d¡ ˆ |jd	 d¡ ˆ |jd
 d¡ ˆ |j d	d¡¡ ˆ |j d
d¡¡ G dd„ dˆ ƒ}G dd„ d|ƒ}G dd„ d|ƒ}ˆ |jd	 d¡ ˆ |j d	d¡¡ ˆ |jd
 d¡ ˆ |j d	d¡¡ ˆ |j d
d¡¡ d S )Nc                       s    e Zd Z‡‡ ‡fdd„Z‡  ZS )z.TestIntFlag.test_init_subclass.<locals>.MyEnumc                    s4   t ˆ | ƒjf i |¤Ž ˆ | j dd¡¡ d| _d S r  r  r  r  rX   rY   r  }  s    z@TestIntFlag.test_init_subclass.<locals>.MyEnum.__init_subclass__r   rX   r!  rd   rY   r$  |  s   r$  c                       s   e Zd Z‡‡ fdd„Z‡  ZS )z1TestIntFlag.test_init_subclass.<locals>.TheirEnumc                    s    t ˆ | ƒjf i |¤Ž d| _d S r"  r$  r  r&  rX   rY   r  ƒ  s    zCTestIntFlag.test_init_subclass.<locals>.TheirEnum.__init_subclass__r   rX   r'  rd   rY   r#  ‚  s   r#  c                   @   s   e Zd Zdd„ ZdS )z1TestIntFlag.test_init_subclass.<locals>.WhoseEnumc                 [   s   d S r²   rX   r  rX   rX   rY   r  ‡  s    zCTestIntFlag.test_init_subclass.<locals>.WhoseEnum.__init_subclass__Nr(  rX   rX   rX   rY   r)  †  s   r)  c                   @   s   e Zd ZdZdS )z.TestIntFlag.test_init_subclass.<locals>.NoEnumrk   Nr*  rX   rX   rX   rY   r+  ‰  s   r+  r  r%  Fc                   @   s   e Zd Zdd„ ZdS )z/TestIntFlag.test_init_subclass.<locals>.OurEnumc                 [   s
   d| _ d S r,  r.  r  rX   rX   rY   r  ’  s    zATestIntFlag.test_init_subclass.<locals>.OurEnum.__init_subclass__Nr(  rX   rX   rX   rY   r-  ‘  s   r-  c                   @   s   e Zd Zdd„ ZdS )z1TestIntFlag.test_init_subclass.<locals>.WhereEnumc                 [   s   d S r²   rX   r  rX   rX   rY   r  •  s    zCTestIntFlag.test_init_subclass.<locals>.WhereEnum.__init_subclass__Nr(  rX   rX   rX   rY   r/  ”  s   r/  c                   @   s   e Zd ZdZdS )z1TestIntFlag.test_init_subclass.<locals>.NeverEnumrk   Nr*  rX   rX   rX   rY   r0  —  s   r0  )r   rç   rà  rL  r  r1  rX   r2  rY   r3  {  s"    zTestIntFlag.test_init_subclassN)#rf   rg   rh   r¶   rÞ  rî  rø  r©  r^  rÅ  rL  r±  rV  rY  r\  r^  r`  rÉ  rÎ  rÏ  rÑ  rc  rÑ  rÓ  rÕ  rØ  rÚ  rò  rT  rö  rG  rH  r  r  r3  rX   rX   rX   rY   rI  Ï  s<   
6000B0

(rI  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestEmptyAndNonLatinStringsc                 C   s8   |   t¡ tddƒ}W d   ƒ n1 s*0    Y  d S )NÚ	empty_abc)r  rÂ  rÃ  )r=  r›   r   )r`   ri  rX   rX   rY   Útest_empty_string¢  s    z-TestEmptyAndNonLatinStrings.test_empty_stringc                 C   s&   t ddƒ}t|dƒ}|  |jd¡ d S )NÚ	greek_abc)õ   Î±rÂ  rÃ  rl  rk   ©r   r]   rç   rè   )r`   rk  ÚitemrX   rX   rY   Útest_non_latin_character_string¦  s    

z;TestEmptyAndNonLatinStrings.test_non_latin_character_stringc                 C   s&   t ddƒ}t|dƒ}|  |jd¡ d S )NÚ
hebrew_123)õ   ×r  rO  rq  rk   rm  )r`   rp  rn  rX   rX   rY   Útest_non_latin_number_string«  s    

z8TestEmptyAndNonLatinStrings.test_non_latin_number_stringN)rf   rg   rh   rj  ro  rr  rX   rX   rX   rY   rh     s   rh  c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	Ú
TestUniquez82.4 doesn't allow class decorators, use function syntax.c                 C   s4   G dd„ dt ƒ}t|ƒ G dd„ dtƒ}t|ƒ d S )Nc                   @   s   e Zd ZdZdZdZdS )z+TestUnique.test_unique_clean.<locals>.Cleanrk   r  g      @N)rf   rg   rh   r¡  r¢  r  rX   rX   rX   rY   ÚCleanµ  s   rt  c                   @   s   e Zd ZdZdZdZdS )z-TestUnique.test_unique_clean.<locals>.Cleanerrk   rl   rm   N)rf   rg   rh   rÁ  ÚdoublerÂ  rX   rX   rX   rY   ÚCleanerº  s   rv  )r   r   r   )r`   rt  rv  rX   rX   rY   Útest_unique_clean´  s    zTestUnique.test_unique_cleanc                 C   sº   zG dd„ dt ƒ}t|ƒ W n( tyD   t ¡ d }|jd }Y n0 |  d|v ¡ zG dd„ dtƒ}t|ƒ W n( ty˜   t ¡ d }|jd }Y n0 |  d|v ¡ |  d	|v ¡ d S )
Nc                   @   s   e Zd ZdZdZdZdZdS )z+TestUnique.test_unique_dirty.<locals>.Dirtyzone twork   r  N)rf   rg   rh   r  r¡  r¢  r  rX   rX   rX   rY   ÚDirtyÂ  s   rx  rk   r   ztres -> onec                   @   s    e Zd ZdZdZdZdZdZdS )z-TestUnique.test_unique_dirty.<locals>.Dirtierzsingle triplerk   rm   N)rf   rg   rh   r  rÁ  ru  rÂ  ZturkeyrX   rX   rX   rY   ÚDirtierÎ  s
   ry  zdouble -> singlezturkey -> triple)r   r   r›   r˜   r™   ra   rN  r   )r`   rx  r£   Úmessagery  rX   rX   rY   Útest_unique_dirtyÀ  s    zTestUnique.test_unique_dirtyc                 C   s,   t G dd„ dtƒƒ}t G dd„ dtƒƒ}d S )Nc                   @   s   e Zd ZdZdZdZdS )z/TestUnique.test_unique_with_name.<locals>.Sillyrk   r  rm   Nr¾  rX   rX   rX   rY   r¿  Ü  s   r¿  c                   @   s   e Zd ZdZdZdZdZdS )z1TestUnique.test_unique_with_name.<locals>.Sillierrk   rl   rm   ru   NrÀ  rX   rX   rX   rY   rÃ  á  s   rÃ  )r   r   r   rÄ  rX   rX   rY   Útest_unique_with_nameÛ  s    z TestUnique.test_unique_with_nameN)rf   rg   rh   r¶   rw  r{  r|  rX   rX   rX   rY   rs  ±  s   rs  c                   @   sì   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9S ):ÚTestNamedTuplec                 C   sà   G dd„ dt ƒ}|dddƒ}|dddƒ}|  |d d¡ |  |d	 d¡ |  |d
 d¡ |  |d d¡ |  |d	 d¡ |  |d
 d¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z5TestNamedTuple.test_explicit_indexing.<locals>.Personr   rk   rl   N©rf   rg   rh   Úagere  r  rX   rX   rX   rY   ÚPersonì  s   r€  é   ÚJohnÚDoeé   ÚJaner   rk   rl   ©r   rç   r  re  r  ©r`   r€  Úp1Úp2rX   rX   rY   Útest_explicit_indexingë  s    z%TestNamedTuple.test_explicit_indexingc                 C   sà   G dd„ dt ƒ}|dddƒ}|dddƒ}|  |d d¡ |  |d	 d¡ |  |d
 d¡ |  |d d¡ |  |d	 d¡ |  |d
 d¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ d S )Nc                   @   s   e Zd ZdZdZdZdZdS )z5TestNamedTuple.test_implicit_indexing.<locals>.Personúage first lastúperson's agezperson's first nameúperson's last nameN)rf   rg   rh   r  r  re  r  rX   rX   rX   rY   r€     s   r€  r  r‚  rƒ  r„  r…  r   rk   rl   r†  r‡  rX   rX   rY   Útest_implicit_indexingÿ  s    z%TestNamedTuple.test_implicit_indexingc                 C   s  G dd„ dt ƒ}|ddddƒ}|dddd	ƒ}|  |d
 d¡ |  |d d¡ |  |d d¡ |  |d d¡ |  |d
 d¡ |  |d d¡ |  |d d¡ |  |d d	¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd	¡ d S )Nc                   @   s   e Zd ZdZdZdZdZdS )z2TestNamedTuple.test_mixed_indexing.<locals>.Personzage last carsrŒ  )rl   r  zperson's carsN)rf   rg   rh   r  r  r  ÚcarsrX   rX   rX   rY   r€    s   r€  r  r‚  rƒ  rm   r„  r…  rp  r   rk   rl   ©r   rç   r  r  r  r‡  rX   rX   rY   Útest_mixed_indexing  s"    z"TestNamedTuple.test_mixed_indexingc                 C   s4   G dd„ dt ƒ}|  t|t ƒ¡ |  t|tƒ¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z.TestNamedTuple.test_issubclass.<locals>.Personr   rk   rl   Nr~  rX   rX   rX   rY   r€  ,  s   r€  ©r   rN  rõ  r=  ©r`   r€  rX   rX   rY   Útest_issubclass+  s    zTestNamedTuple.test_issubclassc                 C   sP   G dd„ dt ƒ}|dddƒ}|  t||ƒ¡ |  t|t ƒ¡ |  t|tƒ¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z.TestNamedTuple.test_isinstance.<locals>.Personr   rk   rl   Nr~  rX   rX   rX   rY   r€  4  s   r€  r  r‚  rƒ  ©r   rN  rö  r=  ©r`   r€  rˆ  rX   rX   rY   Útest_isinstance3  s
    zTestNamedTuple.test_isinstancec                 C   sÚ   t ddƒ}|dddƒ}|dddƒ}|  |d d¡ |  |d	 d¡ |  |d
 d¡ |  |d d¡ |  |d	 d¡ |  |d
 d¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ d S )Nr€  )©r  r   )re  rk   ©r  rl   r  r‚  rƒ  r„  r…  r   rk   rl   r†  r‡  rX   rX   rY   Ú+test_explicit_indexing_after_functional_api=  s    
z:TestNamedTuple.test_explicit_indexing_after_functional_apic                 C   sÚ   t ddƒ}|dddƒ}|dddƒ}|  |d d¡ |  |d	 d¡ |  |d
 d¡ |  |d d¡ |  |d	 d¡ |  |d
 d¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ d S )Nr€  r‹  r  r‚  rƒ  r„  r…  r   rk   rl   r†  r‡  rX   rX   rY   Ú+test_implicit_indexing_after_functional_apiN  s    
z:TestNamedTuple.test_implicit_indexing_after_functional_apic                 C   sþ   t ddƒ}|ddddƒ}|dddd	ƒ}|  |d
 d¡ |  |d d¡ |  |d d¡ |  |d d¡ |  |d
 d¡ |  |d d¡ |  |d d¡ |  |d d	¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd	¡ d S )Nr€  )r˜  r™  )r  rm   r  r‚  rƒ  rm   r„  r…  rp  r   rk   rl   r  r‡  rX   rX   rY   Ú(test_mixed_indexing_after_functional_api_  s"    
z7TestNamedTuple.test_mixed_indexing_after_functional_apic                 C   s.   t ddƒ}|  t|t ƒ¡ |  t|tƒ¡ d S )Nr€  r‹  r’  r“  rX   rX   rY   Ú$test_issubclass_after_functional_apir  s    
z3TestNamedTuple.test_issubclass_after_functional_apic                 C   sJ   t ddƒ}|dddƒ}|  t||ƒ¡ |  t|t ƒ¡ |  t|tƒ¡ d S )Nr€  r‹  r  r‚  rƒ  r•  r–  rX   rX   rY   Ú$test_isinstance_after_functional_apiw  s
    
z3TestNamedTuple.test_isinstance_after_functional_apic                 C   sv   t ddƒ}|dddd}|  |d d¡ |  |d d¡ |  |d	 d¡ |  |jd¡ |  |jd¡ |  |jd¡ d S )
Nr€  r‹  r  r‚  rƒ  )r  re  r  r   rk   rl   r†  r–  rX   rX   rY   Útest_creation_with_all_keywords~  s    
z.TestNamedTuple.test_creation_with_all_keywordsc                 C   sÞ   t ddƒ}|dddd}|  |d d¡ |  |d d¡ |  |d	 d¡ |  |jd¡ |  |jd¡ |  |jd¡ |dddd
}|  |d d¡ |  |d d¡ |  |d	 d¡ |  |jd¡ |  |jd¡ |  |jd¡ d S )Nr€  r‹  r  r‚  rƒ  )re  r  r   rk   rl   )r  re  r†  r–  rX   rX   rY   Ú test_creation_with_some_keywordsˆ  s    
z/TestNamedTuple.test_creation_with_some_keywordsc                    sJ   G ‡ fdd„dt ƒ‰ ˆ dƒ}|  |jd¡ |  |jd¡ |  |jd¡ d S )Nc                       s*   e Zd ZdZdZdZ‡‡ fdd„Z‡  ZS )z,TestNamedTuple.test_custom_new.<locals>.Bookr   rk   rl   c                    s0   dd„ |  d¡D ƒ}tˆ | ƒj| gt|ƒ¢R Ž S )Nc                 S   s   g | ]}|  ¡ ‘qS rX   )rZ  )r™  ra  rX   rX   rY   r›  Ÿ  rœ  zHTestNamedTuple.test_custom_new.<locals>.Book.__new__.<locals>.<listcomp>ry  )r&  r^   r  r=  )r  r7  ra   )ÚBookre   rX   rY   r  ž  s    z4TestNamedTuple.test_custom_new.<locals>.Book.__new__)rf   rg   rh   rM  ÚauthorÚgenrer  ri   rX   ©r¡  rd   rY   r¡  š  s   r¡  z&The Last Mohican; John Doe; HistoricalzThe Last MohicanúJohn DoeZ
Historical)r   rç   rM  r¢  r£  )r`   Úb1rX   r¤  rY   Útest_custom_new™  s
    zTestNamedTuple.test_custom_newc                 C   s|   G dd„ dt ƒ}ddidddœdd	d
œdd	ddœfD ]B}|f i |¤Ž}dD ]*\}}||v rb|| }|  t||ƒ|¡ qJq4d S )Nc                   @   s   e Zd ZdZdZdZdS )z8TestNamedTuple.test_defaults_in_class.<locals>.Characterr   )rk   Nr  )rl   NÚfighterN)rf   rg   rh   rª  ÚgenderÚklassrX   rX   rX   rY   Ú	Character§  s   r«  rª  r¥  zWilliam PickneyZscholar)rª  rª  zSarah Doughteryr  )rª  r©  zSissy MoonbeamZ	sorceress)rª  r©  rª  )rL  )r©  r  )rª  r¨  )r   rç   r]   )r`   r«  Úcharr  rª  rè   rX   rX   rY   Útest_defaults_in_class¦  s    
üz%TestNamedTuple.test_defaults_in_classc                 C   s6   G dd„ dt ƒ}|ƒ }|  |jd¡ |  |jd¡ d S )Nc                   @   s   e Zd ZdZdZdS )zDTestNamedTuple.test_defaults_in_class_that_are_falsey.<locals>.Point)r   zhorizondal coordinater   )rk   úvertical coordinater   Nrr  rX   rX   rX   rY   ÚPoint¸  s   r¯  r   )r   rç   rs  rt  )r`   r¯  r  rX   rX   rY   Ú&test_defaults_in_class_that_are_falsey·  s    z5TestNamedTuple.test_defaults_in_class_that_are_falseyc                 C   s*   t ttƒrt‚tdddƒ}t| j|ƒ d S )Nr  r  r%  )rö  r€   r—   r¥   rç   )r`   ÚlfrX   rX   rY   Ú"test_pickle_namedtuple_with_module¿  s    
z1TestNamedTuple.test_pickle_namedtuple_with_modulec                 C   s*   t ttƒrt‚tdddƒ}t| j|ƒ d S )Nzsickly greenZ2x4Zfoul)rö  rƒ   r—   r¥   rç   )r`   ZdfrX   rX   rY   Ú%test_pickle_namedtuple_without_moduleÅ  s    
z4TestNamedTuple.test_pickle_namedtuple_without_modulec                 C   sF   t ttƒrt‚tddƒ}|  |jd¡ |  | ¡ d¡ t| j|ƒ d S )NZHenryZ	Weinhardt)rö  rŽ   r—   rç   r   rN  r   r¥   )r`   ZtirX   rX   rY   rò  Ë  s    

zTestNamedTuple.test_subclassingc                 C   sD   t ddƒ}|dddƒ}|  d|v ¡ |  d|v ¡ |  d|v ¡ d S )Nr¡  ztitle author genreÚTecklaúSteven BrustÚfantasy)r   rN  ©r`   r¡  rz  rX   rX   rY   rZ  Ó  s
    
zTestNamedTuple.test_containsc                 C   s„   G dd„ dt ƒ}|dddƒ}|  d|v ¡ |  d|v ¡ |  d|v ¡ |  |jd¡ |  |jd¡ |  t|dd¡ |  t|d¡ d S )Nc                   @   s   e Zd ZejZdZdZdZdS )z,TestNamedTuple.test_fixed_size.<locals>.Bookr   rk   rl   N)	rf   rg   rh   r   ÚfixedÚ_size_rM  r¢  r£  rX   rX   rX   rY   r¡  Û  s   r¡  r´  rµ  r¶  ©r   rN  rç   rM  r¢  r=  rÌ   r·  rX   rX   rY   Útest_fixed_sizeÚ  s    zTestNamedTuple.test_fixed_sizec                 C   s¶   G dd„ dt ƒ}|dddƒ}|  d|v ¡ |  d|v ¡ |  d|v ¡ |  |jd¡ |  |jd¡ |ddƒ}|  d|v ¡ |  d|v ¡ |  |jd¡ |  |jd¡ |  t|d¡ d S )Nc                   @   s   e Zd ZejZdZdZdS )z.TestNamedTuple.test_minimum_size.<locals>.Bookr   rk   N)rf   rg   rh   r   Zminimumr¹  rM  r¢  rX   rX   rX   rY   r¡  ê  s   r¡  r´  rµ  r¶  rº  r·  rX   rX   rY   Útest_minimum_sizeé  s    
z TestNamedTuple.test_minimum_sizec                 C   sè   G dd„ dt ƒ}|dddƒ}|  d|v ¡ |  d|v ¡ |  d|v ¡ |  |jd¡ |  |jd¡ |  |jd¡ |ddƒ}|  d|v ¡ |  d|v ¡ |  |jd¡ |  |jd¡ |  tt|d¡ | jt	|ddd | jt	|dd d S )	Nc                   @   s   e Zd ZejZdZdZdZdS )z/TestNamedTuple.test_variable_size.<locals>.Bookr   rk   rl   N)	rf   rg   rh   r   Úvariabler¹  rM  r¢  r£  rX   rX   rX   rY   r¡  ü  s   r¡  r´  rµ  r¶  r£  )rM  r£  )r¢  )
r   rN  rç   rM  r¢  r£  r=  r¥  r]   rÌ   r·  rX   rX   rY   Útest_variable_sizeû  s     
z!TestNamedTuple.test_variable_sizec                 C   sn  G dd„ dt ƒ}G dd„ dt ƒ}t d|| td}G dd„ d||ƒ}G d	d
„ d
|ƒ}|  |jd ¡ ¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |j	jd¡ |  |j	jd¡ |  |j
jd¡ |  |j
jd¡ |  |jjd¡ |  |jjd¡ |  |jd ¡ ¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |j	jd¡ |  |j	jd¡ |  |j
jd¡ |  |j
jd¡ |  |jjd¡ |  |jjd¡ |  |jd ¡ ¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |j	jd¡ |  |j	jd¡ |  |j
jd¡ |  |j
jd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   s   e Zd ZdZdZdS )z8TestNamedTuple.test_combining_namedtuples.<locals>.Point©r   úhorizontal coordinaterk   ©rk   r®  rP   Nrr  rX   rX   rX   rY   r¯    s   r¯  c                   @   s   e Zd ZdZdZdZdS )z8TestNamedTuple.test_combining_namedtuples.<locals>.Color©r   úred componentr  ©rk   úgreen componenté   ©rl   úblue componenté%   N©rf   rg   rh   rs  rt  rz  rX   rX   rX   rY   rÂ     s   rÂ   ÚPixelr   c                   @   s   e Zd ZdZdS )z9TestNamedTuple.test_combining_namedtuples.<locals>.Pixel2za colored dotN)rf   rg   rh   r¶   rX   rX   rX   rY   ÚPixel2  s   rÌ  c                   @   s   e Zd ZdZdZdZdS )z9TestNamedTuple.test_combining_namedtuples.<locals>.Pixel3)rl   rÃ  r  )rm   rÅ  rÆ  )ru   rÈ  rÉ  NrÊ  rX   rX   rX   rY   ÚPixel3  s   rÍ  z	x y r g brÀ  rk   r®  rP   rÃ  r  rÅ  rÆ  rÈ  rÉ  )r   rf   rç   Ú_fields_r&  rs  r¶   Údefaultrt  rs  rt  rz  )r`   r¯  rÂ   ZPixel1rÌ  rÍ  rX   rX   rY   Útest_combining_namedtuples  sL    z)TestNamedTuple.test_combining_namedtuplesc                 C   s`   G dd„ dt ƒ}|dg d¢ƒ}|ddƒ}|ddƒ}|  |d	¡ |  t|ƒd
¡ |  |jd¡ d S )Nc                   @   s$   e Zd Zedd„ ƒZedd„ ƒZdS )z=TestNamedTuple.test_inherit_from_existing.<locals>.OERecTuplec                 S   s   |d   ¡ S r   )rX  )r  ZrecrX   rX   rY   Ú
record_keyE  s    zHTestNamedTuple.test_inherit_from_existing.<locals>.OERecTuple.record_keyc                 S   s   |   |¡|d< d S )NrP   )rÑ  r4  rX   rX   rY   Ú_review_I  s    zFTestNamedTuple.test_inherit_from_existing.<locals>.OERecTuple._review_N)rf   rg   rh   rI  rÑ  rÒ  rX   rX   rX   rY   Ú
OERecTupleC  s   
rÓ  ÚOERec)rG  Zxmlidr:  rk   Úabc123rl   Zxyz789)rk   rÕ  ÚABC123rm   rÖ  )r   rç   r°  r:  )r`   rÓ  rÔ  Zoe_1Zoe_2rX   rX   rY   Útest_inherit_from_existingB  s    

z)TestNamedTuple.test_inherit_from_existingc                 C   sF   G dd„ dt ƒ}t dd|d}|dddƒ}|  | ¡ d	g d
¢f¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z5TestNamedTuple.test_function_api_type.<locals>.Testerc                 S   s   dt t| ƒƒfS )NÚ	backwards)r±  rÂ  rŒ   rX   rX   rY   ÚhowdyW  s    z;TestNamedTuple.test_function_api_type.<locals>.Tester.howdyN)rf   rg   rh   rÙ  rX   rX   rX   rY   ÚTesterV  s   rÚ  ÚTesteeza c erÜ  rk   rl   rm   rØ  )rm   rl   rk   )r   rç   rÙ  )r`   rÚ  rÛ  r  rX   rX   rY   Útest_function_api_typeU  s    z%TestNamedTuple.test_function_api_typec              	   C   sb   G dd„ dt ƒ}G dd„ dt ƒ}t d|| td}|ddd	d
dƒ}|  | ¡ ddd	d
ddœ¡ d S )Nc                   @   s   e Zd ZdZdZdS )z)TestNamedTuple.test_asdict.<locals>.Pointr¿  rÁ  Nrr  rX   rX   rX   rY   r¯  ^  s   r¯  c                   @   s   e Zd ZdZdZdZdS )z)TestNamedTuple.test_asdict.<locals>.ColorrÂ  rÄ  rÇ  NrÊ  rX   rX   rX   rY   rÂ   a  s   rÂ   rË  r   r¤  i›ÿÿÿéÿ   rÜ  r   )rs  rt  rs  rt  rz  )r   rf   rç   Ú_asdict)r`   r¯  rÂ   rË  ZpixelrX   rX   rY   Útest_asdict]  s
    zTestNamedTuple.test_asdictc                 C   s8   G dd„ dt ƒ}|  |ddƒd¡ |  | d¡d¡ d S )Nc                   @   s   e Zd ZdZdZdS )z'TestNamedTuple.test_make.<locals>.Pointr¿  rÁ  Nrr  rX   rX   rX   rY   r¯  j  s   r¯  ru   rv   )ru   rv   )r   rç   Ú_make)r`   r¯  rX   rX   rY   Ú	test_makei  s    zTestNamedTuple.test_makec                 C   s8   G dd„ dt ƒ}|dddƒ}|jdd}|  |d¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z*TestNamedTuple.test_replace.<locals>.ColorrÂ  rÄ  rÇ  NrÊ  rX   rX   rX   rY   rÂ   q  s   rÂ   é   r   )rt  )râ  râ  râ  )r   Ú_replacerç   )r`   rÂ   rÐ   Zmid_grayrX   rX   rY   Útest_replacep  s    zTestNamedTuple.test_replaceN)rf   rg   rh   rŠ  rŽ  r‘  r”  r—  rš  r›  rœ  r  rž  rŸ  r   r§  r­  r°  r²  r³  rò  rZ  r»  r¼  r¾  rÐ  r×  rÜ  rß  rá  rä  rX   rX   rX   rY   r}  é  s8   

1r}  c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestNamedConstantc                 C   sî   G dd„ dt ƒ}|  |jd¡ |  |jd|j ¡ |  td¡ d|_W d   ƒ n1 sZ0    Y  |  td¡ |`W d   ƒ n1 sŠ0    Y  |  td¡ |dd	ƒ W d   ƒ n1 sÀ0    Y  |  |j|v ¡ |  |j|v ¡ d S )
Nc                   @   s   e Zd ZdZde ZdS )z.TestNamedConstant.test_constantness.<locals>.Krª  rl   N)rf   rg   rh   r½  r¾  rX   rX   rX   rY   ÚK}  s   ræ  rª  rl   r¬  rp  r­  r½  rm   )r   rç   r½  r¾  r\   r¥  rN  )r`   ræ  rX   rX   rY   Útest_constantness|  s    $"(z#TestNamedConstant.test_constantnessc                 C   sD   G dd„ dt ƒ}|  |j|ju ¡ |  |j|j¡ |  |jd¡ d S )Nc                   @   s@   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S )z5TestNamedConstant.test_duplicates.<locals>.CardNumberr  rl   rm   ru   rv   r1  rv  rÚ   rp  rw  N)rf   rg   rh   ZACErá   râ   rý  rr  rs  rt  ru  ZNINEÚTENÚJACKZQUEENZKINGrX   rX   rX   rY   Ú
CardNumberŒ  s   rê  rw  )r   rL  rè  ré  rç   )r`   rê  rX   rX   rY   Útest_duplicates‹  s    z!TestNamedConstant.test_duplicatesc                 C   sX   G dd„ dt ƒ}|  |jd¡ |ddƒ}|  ||j¡ |  |jd¡ |  |j|v ¡ d S )Nc                   @   s   e Zd ZdZdZdZdZdS )z9TestNamedConstant.test_extend_constants.<locals>.CardSuitrk   rl   rm   ru   N)rf   rg   rh   ÚHEARTSZSPADESZDIAMONTSZCLUBSrX   rX   rX   rY   ÚCardSuitŸ  s   rí  rk   ÚSTARSrv   )r   rç   rì  r¦  rî  rN  )r`   rí  ZstarsrX   rX   rY   Útest_extend_constantsž  s    
z'TestNamedConstant.test_extend_constantsc                 C   sn   G dd„ dt ƒ}|  |jd¡ |  |jjd¡ |  |jd¡ |  |jjd ¡ |  |jd¡ |  |jjd¡ d S )Nc                   @   s$   e Zd ZeddƒZdZeddƒZdS )z=TestNamedConstant.test_constant_with_docstring.<locals>.Stuffrv  úlucky number!r  rÆ  ú	blah blahN)rf   rg   rh   r   ÚArtifactÚBowlingÚHillWomprX   rX   rX   rY   ÚStuff«  s   
rõ  rv  rð  r  rÆ  rñ  )r   rç   rò  r¶   ró  rô  )r`   rõ  rX   rX   rY   Útest_constant_with_docstringª  s    z.TestNamedConstant.test_constant_with_docstringc                 C   sN   dd l }G dd„ dtjƒ}|dƒ d|ji}| |¡ |  |d |ju ¡ d S )Nr   c                   @   s   e Zd ZdZdZdS )z2TestNamedConstant.test_deep_copy.<locals>.APITypesr7  rý   N)rf   rg   rh   ÚSTRINGÚINTrX   rX   rX   rY   ÚAPITypes¸  s   rù  r7  re  )ÚcopyrS   ÚConstantr÷  ÚdeepcopyrN  )r`   rú  rù  rÅ  rX   rX   rY   Útest_deep_copy¶  s    

z TestNamedConstant.test_deep_copyc                    sN   G dd„ dt jƒ‰ G ‡ fdd„dt jƒ}|  ˆ j|j¡ |  ˆ j|ju ¡ d S )Nc                   @   s   e Zd ZdZdZdS )z9TestNamedConstant.test_subclass_w_same_value.<locals>.FooZbla1Zaba1N©rf   rg   rh   ÚBLAZABArX   rX   rX   rY   r*  Á  s   r*  c                       s   e Zd Z” jZdZdS )z9TestNamedConstant.test_subclass_w_same_value.<locals>.BarZaba2Nrþ  rX   ©r*  rX   rY   r  Ä  s   r  )rS   rû  rç   rÿ  rL  )r`   r  rX   r   rY   Útest_subclass_w_same_valueÀ  s    z,TestNamedConstant.test_subclass_w_same_valueN)	rf   rg   rh   rç  rë  rï  rö  rý  r  rX   rX   rX   rY   rå  z  s   
rå  c                   @   s   e Zd Zdd„ ZdS )ÚTestStarImportc                 C   s    i }t d||ƒ |  d|¡ d S )Nzfrom aenum import *r   )Úexecrä  )r`   ZscoperX   rX   rY   Útest_all_exports_namesÍ  s    z%TestStarImport.test_all_exports_namesN)rf   rg   rh   r  rX   rX   rX   rY   r  Ë  s   r  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestStackoverflowAnswersc                 C   sP   G dd„ dt ƒ}|}|  |jjd¡ |  |jj|ju ¡ |  |jj|ju ¡ d S )Nc                   @   s(   e Zd ZdZdZdZdZdZdd„ ZdS )	zMTestStackoverflowAnswers.test_self_referential_directions.<locals>.DirectionszNORTH WEST SOUTH EAST©rk   r   )r   rk   )rP   r   )r   rP   c                 S   sN   || _ || _t| jƒrJt| jƒ}|d |d  }}|| _|| _| |_| |_d S ©Nr   rP   )rs  rt  r°  re   r±  ri  rj  )r`   rs  rt  Úallri  rj  rX   rX   rY   r_   Þ  s    

zVTestStackoverflowAnswers.test_self_referential_directions.<locals>.Directions.__init__N)	rf   rg   rh   r¾   rÎ  rÍ  rÏ  rÌ  r_   rX   rX   rX   rY   Ú
DirectionsÖ  s   r	  r  )	r   rç   rÎ  rè   rN  ri  rÍ  rÏ  rj  )r`   r	  rÄ  rX   rX   rY   Ú test_self_referential_directionsÔ  s
    z9TestStackoverflowAnswers.test_self_referential_directionsc                 C   sP   G dd„ dt ƒ}|  |jj|ju ¡ |  |jj|ju ¡ |  |jj|ju ¡ d S )Nc                   @   s$   e Zd ZdZdZdZdZdd„ ZdS )zOTestStackoverflowAnswers.test_self_referential_rock_paper_scissors.<locals>.RPSzRock, Paper, ScissorsZrockZpaperZscissorsc                 S   s6   t | jƒr2t| jƒ}|d |d  }}| |_|| _d S r  )r°  re   r±  Úbeats)r`   rè   r  re  ÚpreviousrX   rX   rY   r_   ø  s
    

zXTestStackoverflowAnswers.test_self_referential_rock_paper_scissors.<locals>.RPS.__init__N)rf   rg   rh   r¾   ÚRockÚPaperÚScissorsr_   rX   rX   rX   rY   ÚRPSñ  s
   r  )r   rN  r  r  r  r  )r`   r  rX   rX   rY   Ú)test_self_referential_rock_paper_scissorsï  s    zBTestStackoverflowAnswers.test_self_referential_rock_paper_scissorsc                 C   sp   G dd„ dt ƒ}G dd„ d|ƒ}ttj td¡ƒ}| ¡ }W d   ƒ n1 sP0    Y  |  t 	d¡|¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z>TestStackoverflowAnswers.test_arduino_headers.<locals>.CHeaderc                 [   sl   | j }t| d| ƒ}t|dƒ:}| d¡ | D ]}| d|j|jf ¡ q.W d   ƒ n1 s^0    Y  d S )Nz_%s__headerrJ  zinitial header stuff here
z#define %s %r
)rf   r]   rû  rU  rª  rè   )r  rb   Úcls_nameZheader_pathÚfhr#   rX   rX   rY   r    s    
zPTestStackoverflowAnswers.test_arduino_headers.<locals>.CHeader.__init_subclass__Nr(  rX   rX   rX   rY   ÚCHeader  s   r  c                   @   s&   e Zd ZdZej ed¡ZdZ	dZ
dS )z>TestStackoverflowAnswers.test_arduino_headers.<locals>.ArduinozONE TWOú	arduino.hrk   rl   N)rf   rg   rh   r¾   rR  rS  rœ   rT  Z_Arduino__headerrà   rá   rX   rX   rX   rY   ÚArduino  s   r  r  zv                initial header stuff here
                #define ONE 1
                #define TWO 2
                )
r   rû  rR  rS  rœ   rT  Úreadrç   ÚtextwrapÚdedent)r`   r  r  r  rD  rX   rX   rY   Útest_arduino_headers  s    	&ûz-TestStackoverflowAnswers.test_arduino_headersc                    s:   G ‡ fdd„dt ƒ‰ G dd„ dˆ tƒ}|  | d¡¡ d S )Nc                       s*   e Zd Z‡‡ fdd„Zedd„ ƒZ‡  ZS )zITestStackoverflowAnswers.test_lowercase_compare.<locals>.CompareLowerCasec                    s.   t ˆ | ƒjf i |¤Ž tdd„ | D ƒƒ| _d S )Nc                 S   s   g | ]}|j  ¡ ‘qS rX   r§  r˜  rX   rX   rY   r›  #  rœ  zoTestStackoverflowAnswers.test_lowercase_compare.<locals>.CompareLowerCase.__init_subclass__.<locals>.<listcomp>)r^   r  r‚  Úlowered_namesr  )ÚCompareLowerCasere   rX   rY   r  !  s    z[TestStackoverflowAnswers.test_lowercase_compare.<locals>.CompareLowerCase.__init_subclass__c                 S   s   |  ¡ | jv S r²   )r¨  r  rš  rX   rX   rY   Úhas_name$  s    zRTestStackoverflowAnswers.test_lowercase_compare.<locals>.CompareLowerCase.has_name)rf   rg   rh   r  rI  r  ri   rX   ©r  rd   rY   r     s   r  c                   @   s$   e Zd ZdZdZdZdZdZdZdS )zBTestStackoverflowAnswers.test_lowercase_compare.<locals>.LabelEnumzEnum OnezEnum Twoz
Enum Threerý  rr  rs  N)	rf   rg   rh   ZENUM_ONEZENUM_TWOZ
ENUM_THREErý  rr  rs  rX   rX   rX   rY   Ú	LabelEnum(  s   r  Z
Enum_Three)r   r   rN  r  )r`   r  rX   r  rY   Útest_lowercase_compare  s    z/TestStackoverflowAnswers.test_lowercase_compareN)rf   rg   rh   r
  r  r  r   rX   rX   rX   rY   r  Ò  s   r  c                   @   s„   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS ) ÚTestExtendEnumc                 C   s  G dd„ dt ƒ}|  tdt|dd¡ t|ddƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  t	|ƒd¡ t|dƒ |  |j
jd¡ |  |j
jd¡ |  |j
|v ¡ |  |dƒ|j
¡ |  |d |j
¡ |  t	|ƒd¡ d S )	Nc                   @   s   e Zd ZdZdZdZdS )z4TestExtendEnum.test_extend_enum_plain.<locals>.Colorrk   rl   rm   Nró  rX   rX   rX   rY   rÂ   6  s   rÂ   zalready in use asrÁ   rv   Úbrownru   Úmauve)r   r\   rÌ   r!   rç   r"  rª  rè   rN  r°  r#  rÄ   rX   rX   rY   Útest_extend_enum_plain5  s     
z%TestExtendEnum.test_extend_enum_plainc                 C   s„   G dd„ dt ƒ}t|ddƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  t|ƒd¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z4TestExtendEnum.test_extend_enum_alias.<locals>.Colorrk   rl   rm   Nró  rX   rX   rX   rY   rÂ   M  s   rÂ   r6  rk   r¿   rm   )	r   r!   rç   r6  rª  rè   rN  r¿   r°  rÄ   rX   rX   rY   Útest_extend_enum_aliasL  s    z%TestExtendEnum.test_extend_enum_aliasc                 C   s  G dd„ dt ƒ}|  tdt|dd¡ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  |j	jd¡ |  |j	jd¡ |  |j	|v ¡ |  |dƒ|j	¡ |  |d	 |j
¡ |  |j
jd	¡ |  |j
jd
¡ |  |j
|v ¡ |  |d
ƒ|j
¡ |  t|ƒd
¡ t|ddƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  t|ƒd¡ |  tdt|dd¡ t|dƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  t|ƒd¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z5TestExtendEnum.test_extend_enum_unique.<locals>.Colorrk   rl   rm   Nró  rX   rX   rX   rY   rÂ   Z  s   rÂ   z0<Color.rojo: 1> is a duplicate of <Color.red: 1>r6  rk   r¿   rÀ   rl   rÁ   rm   r"  ru   r  rÇ   r#  rv   )r   r\   r›   r!   rç   r¿   rª  rè   rN  rÀ   rÁ   r°  r"  r#  rÄ   rX   rX   rY   Útest_extend_enum_uniqueY  s@    
z&TestExtendEnum.test_extend_enum_uniquec                 C   s”   G dd„ dt ƒ}t|ddƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  t|ƒd¡ |  |jjd¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z>TestExtendEnum.test_extend_enum_shadow_property.<locals>.Colorrk   rl   rm   Nró  rX   rX   rX   rY   rÂ   „  s   rÂ   rè   ru   rk   )r   r!   rç   rè   rª  rN  r°  r¿   rÄ   rX   rX   rY   Ú test_extend_enum_shadow_propertyƒ  s    z/TestExtendEnum.test_extend_enum_shadow_propertyc                 C   sf   G dd„ dt ƒ}G dd„ d|tƒ}|  tdt|dd¡ |  t|ƒd¡ |  t|ƒ|j|j	|j
g¡ d S )	Nc                   @   s   e Zd Zdd„ ZdS )z:TestExtendEnum.test_extend_enum_shadow_base.<locals>.hohumc                 S   s   | j S )r¨  r—  rŒ   rX   rX   rY   r  “  s    z?TestExtendEnum.test_extend_enum_shadow_base.<locals>.hohum.cyanN)rf   rg   rh   r  rX   rX   rX   rY   r­  ’  s   r­  c                   @   s   e Zd ZdZdZdZdS )z:TestExtendEnum.test_extend_enum_shadow_base.<locals>.Colorrk   rl   rm   Nró  rX   rX   rX   rY   rÂ   –  s   rÂ   zalready in use in superclassr  ru   rm   )r  r   r\   rÌ   r!   rç   r°  r±  r¿   rÀ   rÁ   )r`   r­  rÂ   rX   rX   rY   Útest_extend_enum_shadow_base‘  s
    z+TestExtendEnum.test_extend_enum_shadow_basec                 C   sª   G dd„ dt ƒ}t|dddƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |dƒ|j¡ |  |d |j¡ |  t|ƒd¡ |  t	dt|d¡ d S )	Nc                   @   s   e Zd ZdZdZdZdS )z9TestExtendEnum.test_extend_enum_multivalue.<locals>.Color©rk   ru   rv  ©rl   rv   rÚ   ©rm   r1  rp  Nró  rX   rX   rX   rY   rÂ   Ÿ  s   rÂ   r"  rw  rq  ru   z'no values specified for MultiValue enumr#  )
r   r!   rç   r"  rª  rè   rN  r°  r\   r›   rÄ   rX   rX   rY   Útest_extend_enum_multivaluež  s    z*TestExtendEnum.test_extend_enum_multivaluec                 C   sŽ  G dd„ dt ƒ}|  tdt|dd¡ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |dƒ|j¡ |  |dƒ|j¡ |  |d |j¡ |  |j	jd	¡ |  |j	jd
¡ |  |j	|v ¡ |  |d
ƒ|j	¡ |  |dƒ|j	¡ |  |dƒ|j	¡ |  |d |j
¡ |  |j
jd¡ |  |j
jd¡ |  |j
|v ¡ |  |dƒ|j
¡ |  |dƒ|j
¡ |  |dƒ|j
¡ |  t|ƒd¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z?TestExtendEnum.test_extend_enum_multivalue_alias.<locals>.Colorr)  r*  r+  Nró  rX   rX   rX   rY   rÂ   ¯  s   rÂ   z0<Color.rojo: 7> is a duplicate of <Color.red: 1>r6  rv  r¿   rk   ru   rÀ   rl   rv   rÚ   rÁ   rm   r1  rp  )r   r\   r›   r!   rç   r¿   rª  rè   rN  rÀ   rÁ   r°  rÄ   rX   rX   rY   Ú!test_extend_enum_multivalue_alias®  s.    z0TestExtendEnum.test_extend_enum_multivalue_aliasc                 C   s    G dd„ dt tƒ}|  |jt u ¡ t|dddƒ |  t|ƒ|j|j|j	|j
g¡ |  |dƒ|j
u ¡ |  |dƒ|j
u ¡ |  |j
jdk¡ |  |j
jdk¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z9TestExtendEnum.test_extend_enum_multivalue_str.<locals>.M)Zvalue_1ÚVALUE_1)Zvalue_2ÚVALUE_2)Zvalue_3ÚVALUE_3N)rf   rg   rh   r.  r/  r0  rX   rX   rX   rY   ÚMË  s   r1  ÚVALUE_4Zvalue_4)r  r   rN  r.  r!   rç   r±  r.  r/  r0  r2  rª  rè   )r`   r1  rX   rX   rY   Útest_extend_enum_multivalue_strÊ  s     z.TestExtendEnum.test_extend_enum_multivalue_strc                 C   s‚   G dd„ dt ƒ}dD ]\}}t|||ƒ q|  t|ƒd¡ |  t|ƒ|j|j|j|j|j	g¡ |  |jj
d¡ |  |jj
d¡ d S )Nc                   @   s   e Zd ZdZdZdS )z1TestExtendEnum.test_extend_intenum.<locals>.Indexé   i  N)rf   rg   rh   Ú
DeviceTypeÚErrorRegisterrX   rX   rX   rY   ÚIndexØ  s   r7  ))ÚControlWordi@`  )Ú
StatusWordéA`  )ÚOperationModei``  rv   r4  r:  )r   r!   rç   r°  r±  r5  r6  r8  r9  r;  rè   )r`   r7  rª  rè   rX   rX   rY   Útest_extend_intenum×  s    $z"TestExtendEnum.test_extend_intenumc                 C   s  zddl m} t|ƒ}W n& ty>   G dd„ dtƒ}d}Y n0 t|dddd	ƒ t|d
dddƒ |  t|ƒ|d ¡ |  t|ƒdd … |j|j	g¡ |  |jj
d¡ |  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |j	j
d¡ |  |j	jd
¡ |  |j	jd¡ |  |j	jd¡ d S )Nr   )Ú
HTTPStatusc                   @   s    e Zd Zdd„ ZdZdZdZdS )z9TestExtendEnum.test_extend_multi_init.<locals>.HTTPStatusc                 S   s"   t  | |¡}||_||_||_|S r²   )rý   r  r  Úphraserõ   )r  rè   r>  rõ   r§   rX   rX   rY   r  î  s
    zATestExtendEnum.test_extend_multi_init.<locals>.HTTPStatus.__new__r´  r¶  )r¸  r¹  r  N)rf   rg   rh   r  rT  rU  rV  rX   rX   rX   rY   r=  í  s   r=  rm   ÚBAD_SPAMi  z
Too greasyzfor a trainÚBAD_EGGSi  z	Too greenr  rl   éþÿÿÿ)Úhttpr=  r°  ÚImportErrorr   r!   rç   r±  r?  r@  rè   rª  r>  rõ   )r`   r=  ÚlengthrX   rX   rY   Útest_extend_multi_initè  s*    

þz%TestExtendEnum.test_extend_multi_initc                 C   s¦   G dd„ dt ƒ}t|dƒ |  |dƒ|ju ¡ |  t|j|ƒ¡ |  |jjd¡ t|ddƒ |  |dƒ|ju ¡ |  t|j|ƒ¡ |  |jjd¡ |  t|t ƒ¡ d S )Nc                   @   s   e Zd ZdZdZdZdZdS )z.TestExtendEnum.test_extend_flag.<locals>.Colorr   rk   rl   ru   N©rf   rg   rh   r…  r1  r3  r2  rX   rX   rX   rY   rÂ   
  s   rÂ   r‡  rÚ   ro  r  )	r   r!   rN  r‡  rö  rç   rè   ro  rõ  rÄ   rX   rX   rY   Útest_extend_flag	  s    
zTestExtendEnum.test_extend_flagc                 C   s  G dd„ dt ƒ}t|ddƒ |  |dƒ|ju ¡ |  t|j|ƒ¡ |  |jjd¡ |  t|t ƒ¡ t|dƒ |  |dƒ|ju ¡ |  t|j|ƒ¡ |  |jjd¡ t|dƒ |  |j	j
d¡ |  |j	jd¡ |  |j	|v ¡ |  |dƒ|j	¡ |  |d |j	¡ |  t|ƒd	¡ d S )
Nc                   @   s   e Zd ZdZdZdZdZdS )z8TestExtendEnum.test_extend_flag_backwards.<locals>.Colorr   rk   rl   ru   NrF  rX   rX   rX   rY   rÂ     s   rÂ   ro  r  r‡  rÚ   r#  r®  rv   )r   r!   rN  ro  rö  rç   rè   rõ  r‡  r#  rª  r°  rÄ   rX   rX   rY   Útest_extend_flag_backwards  s"    

z)TestExtendEnum.test_extend_flag_backwardsc                 C   s  G dd„ dt ƒ}t|dƒ |  |dƒ|ju ¡ |  t|j|ƒ¡ |  |jjd¡ t|ddƒ |  |dƒ|ju ¡ |  t|j|ƒ¡ |  |jjd¡ |  t|t	ƒ¡ t|dƒ |  |j
jd¡ |  |j
jd¡ |  |j
|v ¡ |  |dƒ|j
¡ |  |d |j
¡ |  t|ƒd	¡ d S )
Nc                   @   s   e Zd ZdZdZdZdZdS )z1TestExtendEnum.test_extend_intflag.<locals>.Colorr   rk   rl   ru   NrF  rX   rX   rX   rY   rÂ   3  s   rÂ   r‡  rÚ   ro  r  r#  r®  rv   )r   r!   rN  r‡  rö  rç   rè   ro  rõ  r   r#  rª  r°  rÄ   rX   rX   rY   Útest_extend_intflag2  s"    

z"TestExtendEnum.test_extend_intflagc                 C   s  G dd„ dt ƒ}t|ddƒ |  |dƒ|ju ¡ |  t|j|ƒ¡ |  |jjd¡ |  t|tƒ¡ t|dƒ |  |dƒ|j	u ¡ |  t|j	|ƒ¡ |  |j	jd¡ t|dƒ |  |j
jd¡ |  |j
jd¡ |  |j
|v ¡ |  |dƒ|j
¡ |  |d |j
¡ |  t|ƒd	¡ d S )
Nc                   @   s   e Zd ZdZdZdZdZdS )z;TestExtendEnum.test_extend_intflag_backwards.<locals>.Colorr   rk   rl   ru   NrF  rX   rX   rX   rY   rÂ   K  s   rÂ   ro  r  r‡  rÚ   r#  r®  rv   )r   r!   rN  ro  rö  rç   rè   rõ  r   r‡  r#  rª  r°  rÄ   rX   rX   rY   Útest_extend_intflag_backwardsJ  s"    

z,TestExtendEnum.test_extend_intflag_backwardsc                 C   sN   G dd„ dt ƒ}t|dƒ |  |jjd¡ |  |jjd¡ |  t|ƒd¡ d S )Nc                   @   s   e Zd Zeƒ Zeƒ Zeƒ ZdS )z1TestExtendEnum.test_extend_strenum.<locals>.ColorN)rf   rg   rh   r"   r1  r3  r2  rX   rX   rX   rY   rÂ   d  s   rÂ   r…  r!  ru   )r   r!   rç   r…  rª  rè   r°  rÄ   rX   rX   rY   Útest_extend_strenumc  s
    
z"TestExtendEnum.test_extend_strenumN)rf   rg   rh   r$  r%  r&  r'  r(  r,  r-  r3  r<  rE  rG  rH  rI  rJ  rK  rX   rX   rX   rY   r!  3  s   *!r!  c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )Ú
TestIssuesc                 C   s¸   G dd„ dt ttƒ}|  dd„ |D ƒg d¢¡ |  dd„ |D ƒg d¢¡ |  |dƒ|j¡ |  |d	ƒ|j¡ |  |d
ƒ|j¡ |  |dƒ|j¡ |  |dƒ|j¡ |  |dƒ|j¡ d S )Nc                   @   s    e Zd ZdZdZdZdZdZdS )z3TestIssues.test_auto_multi_int.<locals>.Measurementr}  r   Ú20110721Ú20120911Ú20110518N)rf   rg   rh   r¾   rB  r¡  r¢  rë  rX   rX   rX   rY   ÚMeasurementq  s
   rP  c                 S   s   g | ]
}|j ‘qS rX   r—  r˜  rX   rX   rY   r›  w  rœ  z2TestIssues.test_auto_multi_int.<locals>.<listcomp>rž  c                 S   s   g | ]
}|j ‘qS rX   r©  r˜  rX   rX   rY   r›  x  rœ  )r¡  r¢  rë  rM  r   rN  rk   rO  rl   )rý   r   r   rç   r¦  r¡  r¢  rë  )r`   rP  rX   rX   rY   Útest_auto_multi_intp  s    zTestIssues.test_auto_multi_intc                 C   sb   G dd„ dt ƒ}|  |jj|jj|jjfddi f¡ |  |jj|jj|jjfdd|jdif¡ d S )Nc                   @   s4   e Zd ZdZedi dZededidZdd„ ZdS )	z'TestIssues.test_auto_kwds.<locals>.Itemr#  r  ©r$  Úrequirementsr  rk   c                 S   sN   t  | ¡}||_||_i }| ¡ D ] \}}t|tƒr:|j}|||< q"||_|S r²   ©	r  r  r  r$  rƒ  rö  r"   Úenum_memberrS  ©r  rè   r$  rS  r§   Únew_requirementsr€  r  rX   rX   rY   r  †  s    


z/TestIssues.test_auto_kwds.<locals>.Item.__new__Nr&  rX   rX   rX   rY   r'    s   r'  rk   r  rl   r  ©r   rç   rÁ  rè   r$  rS  rÂ  r(  rX   rX   rY   Útest_auto_kwds€  s    $zTestIssues.test_auto_kwdsc                 C   sb   G dd„ dt ƒ}|  |jj|jj|jjfddi f¡ |  |jj|jj|jjfdd|jdif¡ d S )Nc                   @   s<   e Zd ZdZdd„ Zedi dZededidZdd	„ Zd
S )z/TestIssues.test_auto_kwds_and_gnv.<locals>.Itemr#  c                 _   s   | S r²   rX   rì  rX   rX   rY   rí  ™  s    zETestIssues.test_auto_kwds_and_gnv.<locals>.Item._generate_next_value_r  rR  r  rk   c                 S   sN   t  | ¡}||_||_i }| ¡ D ] \}}t|tƒr:|j}|||< q"||_|S r²   rT  rV  rX   rX   rY   r  ž  s    


z7TestIssues.test_auto_kwds_and_gnv.<locals>.Item.__new__N)	rf   rg   rh   r¾   rí  r"   rÁ  rÂ  r  rX   rX   rX   rY   r'  –  s
   r'  rÁ  r  rÂ  r  rk   rX  r(  rX   rX   rY   Útest_auto_kwds_and_gnv•  s    $z!TestIssues.test_auto_kwds_and_gnvc                 C   sN   G dd„ dt ƒ}t|ddƒ |  |j|jB |dƒ¡ |  |j|jB jd¡ d S )Nc                   @   s   e Zd ZdZdZdZdS )z-TestIssues.test_extend_flag.<locals>.FlagTestr   rk   rl   N)rf   rg   rh   rB  ÚLOWZMIDrX   rX   rX   rY   ÚFlagTest®  s   r\  ÚHIGHru   rv   )r   r!   rç   r[  r]  rè   )r`   r\  rX   rX   rY   rG  ­  s    zTestIssues.test_extend_flagc                 C   s4   G dd„ dt ƒ}t ¡ j}dddœ}t|||ƒ d S )Nc                   @   s    e Zd ZdddœZdddœZdS )z3TestIssues.test_extend_unhashable.<locals>.TestEnumr   Úabc©rG  rè   rk   ÚdefN)rf   rg   rh   ÚABCZDEFrX   rX   rX   rY   r³  ·  s   þþr³  r¤  Únewr_  )r   ÚuuidÚuuid4r¥  r!   )r`   r³  Zrandr:  rX   rX   rY   Útest_extend_unhashable¶  s    	
þz!TestIssues.test_extend_unhashableN)rf   rg   rh   rQ  rY  rZ  rG  re  rX   rX   rX   rY   rL  n  s
   	rL  rv   ru   rv  ÚgoodbyeÚhello©rp  rk   rè   ù              ð?ù               @ù              @c                   @   s\   e Zd Zdd„ Zdd„ Zdd„ Ze ed¡dd	„ ƒZ	e ed¡d
d„ ƒZ
dd„ Zdd„ ZdS )ÚTestConvertc                 C   sš   t ƒ }dD ]}d|d| < d|d| < q
dD ]\}}||d| < q,dD ]\}}||d| < qFd	D ]\}}||d
| < q`d|d< d|d< d|d< d|d< d S )N)rÁ  rÂ  rÃ  rÄ  r¼  rÅ  rv   zCONVERT_TEST_NAME_%szCONVERT_STRING_TEST_NAME_%s))rÁ  rv   )rÂ  rh  )rÃ  rè   zUNCOMPARABLE_%s))rÁ  rj  )rÂ  rk  )rÃ  ri  z
COMPLEX_%s))r  rg  )r  rf  zCONVERT_STR_TEST_%sru   ÚCONVERT_TEST_SIGABRTÚCONVERT_TEST_SIGIOTrv  ÚCONVERT_TEST_EIOÚCONVERT_TEST_EBUS)r³  )r`   rt  Úsuffixrè   rX   rX   rY   ÚtearDownî  s    zTestConvert.tearDownc                 C   sj   t jdtdd„ d}|  |dƒjd¡ |  |dƒjd¡ |  |d	ƒjd
¡ |  t|ƒ|j|j|jg¡ d S )NÚUnittestConvertc                 S   s
   |   d¡S ©NZCONVERT_TEST_©Ú
startswith©rs  rX   rX   rY   r¯    rœ  z@TestConvert.test_convert_value_lookup_priority.<locals>.<lambda>©Úfilterrv   ÚCONVERT_TEST_NAME_Aru   rm  rv  rp  )	r   Ú	_convert_ÚMODULErç   rª  r±  rm  rz  rp  ©r`   rL  rX   rX   rY   Ú"test_convert_value_lookup_priority  s    ýýþz.TestConvert.test_convert_value_lookup_priorityc                    s¸   t jdtdd„ d‰ |  ˆ jˆ j¡ |  ˆ jd¡ |  ˆ jd¡ |  ˆ jd¡ |  ˆ j	d¡ t
tƒg d¢ }‡ fdd„t
ˆ ƒD ƒ}‡ fd	d„tˆ ƒD ƒ}| j|| g d
||f d d S )Nrs  c                 S   s
   |   d¡S rt  ru  rw  rX   rX   rY   r¯    rœ  z.TestConvert.test_convert_int.<locals>.<lambda>rx  rv   )
rz  ÚCONVERT_TEST_NAME_BÚCONVERT_TEST_NAME_CÚCONVERT_TEST_NAME_DÚCONVERT_TEST_NAME_EÚCONVERT_TEST_NAME_Frm  rn  ro  rp  c                    s   g | ]}|t ˆ ƒvr|‘qS rX   ©Úenum_dir©r™  rª  ©rL  rX   rY   r›  (  rœ  z0TestConvert.test_convert_int.<locals>.<listcomp>c                    s   g | ]}|t ˆ ƒvr|‘qS rX   ©Údirr†  r‡  rX   rY   r›  )  rœ  ú#extra names: %r;  missing names: %r©Úmsg)r   r{  r|  rç   rƒ  rz  r  r€  r  r‚  r‰  rý   r…  )r`   Zint_dirÚextraÚmissingrX   r‡  rY   Útest_convert_int  s(    ýÿ
ýzTestConvert.test_convert_intz$everything is comparable on Python 2c                 C   s:   t jdtdd„ d}|  t|ƒ|j|j|jgt|ƒ¡ d S )NÚUncomparablec                 S   s
   |   d¡S )NZUNCOMPARABLE_ru  rw  rX   rX   rY   r¯  5  rœ  z7TestConvert.test_convert_uncomparable.<locals>.<lambda>rx  )r   r{  r|  rç   r±  ÚUNCOMPARABLE_AÚUNCOMPARABLE_BÚUNCOMPARABLE_C©r`   ZuncomprX   rX   rY   Útest_convert_uncomparable0  s    ýýz%TestConvert.test_convert_uncomparablec                 C   s4   t jdtdd„ d}|  t|ƒ|j|j|jg¡ d S )Nr  c                 S   s
   |   d¡S )NZCOMPLEX_ru  rw  rX   rX   rY   r¯  B  rœ  z2TestConvert.test_convert_complex.<locals>.<lambda>rx  )r   r{  r|  rç   r±  Ú	COMPLEX_AÚ	COMPLEX_BÚ	COMPLEX_Cr”  rX   rX   rY   Útest_convert_complex=  s    ýþz TestConvert.test_convert_complexc                    s¸   t jdtdd„ dd‰ |  ˆ jd¡ |  ˆ jd¡ ‡ fdd	„tˆ ƒD ƒ}‡ fd
d	„tˆ ƒD ƒ}| j|| g d||f d |  tˆ jƒdt	 ¡ |  t
ˆ jƒd¡ |  tˆ jƒd¡ d S )Nrs  c                 S   s
   |   d¡S )NZCONVERT_STR_ru  rw  rX   rX   rY   r¯  M  rœ  z.TestConvert.test_convert_str.<locals>.<lambda>T©ry  Z	as_globalrg  rf  c                    s   g | ]}|t ˆ ƒvr|‘qS rX   r„  r†  r‡  rX   rY   r›  S  rœ  z0TestConvert.test_convert_str.<locals>.<listcomp>c                    s   g | ]}|t ˆ ƒvr|‘qS rX   rˆ  r†  r‡  rX   rY   r›  T  rœ  rŠ  r‹  z%s.CONVERT_STR_TEST_1)r   r{  r|  rç   ÚCONVERT_STR_TEST_1ÚCONVERT_STR_TEST_2r‰  r…  r(  ÚSHORT_MODULEr  rf  )r`   r  rŽ  rX   r‡  rY   Útest_convert_strI  s$    ü
ýzTestConvert.test_convert_strc                 C   sT   t jdtdd„ dd}|  t|jƒdt ¡ |  t|jƒd¡ |  t|jƒd¡ d S )Nrs  c                 S   s
   |   d¡S )NZCONVERT_STRING_TEST_ru  rw  rX   rX   rY   r¯  b  rœ  z7TestConvert.test_convert_repr_and_str.<locals>.<lambda>Trš  z%s.CONVERT_STRING_TEST_NAME_ArP  )	r   r{  r|  rç   r(  ÚCONVERT_STRING_TEST_NAME_Ar  r  rf  r}  rX   rX   rY   Útest_convert_repr_and_str^  s    üz%TestConvert.test_convert_repr_and_strN)rf   rg   rh   rr  r~  r  rG  rH  r.   r•  r™  rž  r   rX   rX   rX   rY   rl  ì  s   



rl  c                 C   s°   t | jg d¢ ƒ}| jtjur(| d¡ | jtjur>| d¡ ttdƒrR| d¡ dD ],}t	| |ƒt	t|ƒt	t
|ƒfvrV| |¡ qV| jtu r–t|ƒS tt t| jƒƒ|B ƒS d S )N)	re   Ú__contains__r¶   r   r‹  r«  rú  rg   rf   r  r  rh   )r_   rj  r"  r#  )r‚  Ú_member_names_Z_new_member_r  r  rB   r  r   r@  r]   r   r.  r?  r‰  )r  ÚinterestingÚmethodrX   rX   rY   r…  j  s    




r…  c                 C   s¢   | j jtu rtg d¢ƒ}ntt| ƒƒ}| j  ¡ D ]h}|j ¡ D ]X\}}|d dkrTq>t|t	j
ƒrŒ|jd ust|| jvr€| |¡ q–| |¡ q>| |¡ q>q0t|ƒS )N)re   r¶   r’  r¿  rg   rª  rè   r   rZ  )re   r.  r  r‚  r‰  rH  rà  rƒ  rö  r#   r¬  r³   r0  rB   Údiscardr?  )r%   Úallowedr  rª  r§   rX   rX   rY   Ú
member_dir  s    r§  Ú__main__F)Úexitz%s: %sT)ÔÚ
__future__r   r   r˜   rS   rR   rR  ÚshutilÚtempfiler  rG  rc  Úwarningsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   Zaenum._enumr6   rK  r7   rÝ  r8   Úpickler9   r:   r;   r<   Úoperatorr=   r‹  r>   r  r?   rŒ  r@   rŽ  rA   r  rB   r€  rC   r  rD   r„  rE   r…  rF   rƒ  rG   r†  rH   r‡  rI   rˆ  rJ   r‰  rK   r‚  rL   rŠ  rM   r  r  rC  rN   Ú	NameErrorrf   r|  r&  r  rZ   r[   rj   r—   r™   rý   rr   rÜ  rs   rt   r£   r{   r~   r   r€   rƒ   r…   rˆ   r‰   rŠ   rŽ   r   r¥   r¨   r¯   r©   rª   r«   r¬   r­   r®   r  Ztest_v37r°   r  r±   r»   rÝ   rG  r–  r³  rW  rh  rI  rh  rs  r}  rå  r  r  r!  rL  r  r€  r  rz  r‚  rƒ  rm  rn  ro  rp  ZCONVERT_STRING_TEST_NAME_DZCONVERT_STRING_TEST_NAME_CZCONVERT_STRING_TEST_NAME_BrŸ  ZCONVERT_STRING_TEST_NAME_EZCONVERT_STRING_TEST_NAME_Frœ  r›  r‘  r“  r’  r˜  r–  r—  rl  r…  r§  ÚmkdtemprT  r\  ÚmainÚstdoutÚflushÚresultÚskippedrª  Úreasonr“  Úrmtreer©  r°  r’  r¢   rX   rX   rX   rY   Ú<module>   s®  ($$00
	

ÿ
 
l   % (                        x         6     V8   Qa  =^~

*þ