o
    ÃÚ·i*£ ã                
   @   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w zeo W n epy2   d dlmoZo Y nw eqZrer sd¡d Ztdd„ ZuG dd„ de
jvƒZvz
G dd„ deƒZwW n exyc   e y¡ d ZwY nw zG dd„ dezeƒZ{W n exy   e y¡ d Z{Y nw zG d d!„ d!e|eƒZ}W n exy›   e y¡ d Z}Y nw z
G d"d#„ d#eƒZ~W n exy» Z zeZ~W Y dZ[ndZ[ww z
G d$d%„ d%eƒZ€W n exyÛ Z zeZ€W Y dZ[ndZ[ww z
G d&d'„ d'eƒZW n exyò   eZY nw z
G d(d)„ d)eƒZ‚W n exy Z zeZ‚W Y dZ[ndZ[ww z	ed*d+eqd,ZƒW n exy,   e y¡ d ZƒY nw z
G d-d.„ d.eƒZ„W n exyG   e y¡ d Z„Y nw z
G d/d0„ d0eƒZ…W n exyb   e y¡ d Z…Y nw z	ed1d2eqd,Z†W n exy|   e y¡ d Z†Y nw zed3d4ƒZ‡W n exy”   e y¡ d Z‡Y nw zG d5d6„ d6eƒZˆG d7d8„ d8eˆƒZ‰W n exy·   e y¡ d Z‰Y nw z
G d9d:„ d:eƒZŠW n
 exyÌ   Y nw 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rDe Ä¡ ZÅdZÆzEe7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ÒpeÆjÊjÓƒrdpd ¡ dS dS e ÏeÅdx¡ eÆrCe ÐeÑeÆjÊjÒp9eÆjÊjÓƒr?dp@d ¡ w w 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)ÚpackageÚoptionflags)ÚaddTestsÚdoctestÚDocTestSuiteÚaenumÚDocFileSuiteÚELLIPSISÚNORMALIZE_WHITESPACE)ÚloaderÚtestsÚignore© r]   ú@/home/ubuntu/vllm_env/lib/python3.10/site-packages/aenum/test.pyÚ
load_tests-   s   
ýr_   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ÚassertRaisesRegexÚassertRaisesRegexp)Úgetattrra   Úsuperr`   Ú__init__)ÚselfÚargsÚkwdsÚregex©Ú	__class__r]   r^   re   8   s   zTestCase.__init__)Ú__name__Ú
__module__Ú__qualname__re   Ú__classcell__r]   r]   rj   r^   r`   6   s    r`   c                   @   ó   e Zd ZdZdZdZdS )ÚStoogesé   é   é   N©rl   rm   rn   ÚLARRYÚCURLYÚMOEr]   r]   r]   r^   rq   A   ó    rq   rr   c                   @   rp   )Ú
IntStoogesrr   rs   rt   Nru   r]   r]   r]   r^   rz   I   ry   rz   c                   @   rp   )ÚFloatStoogesg=
×£p=ö?gÃõ(\Â@gÆR$_	$	@Nru   r]   r]   r]   r^   r{   Q   ry   r{   c                   @   ó    e Zd ZdZdZdZdZdZdS )ÚFlagStoogesrr   rs   é   é   é   N©rl   rm   rn   rv   rw   rx   ÚPMASKÚCMASKr]   r]   r]   r^   r}   Y   ó    r}   c                   @   ó$   e Zd ZdZdZdZdZdZdZdS )ÚFlagStoogesWithZeror   rr   rs   r~   r   r€   N©	rl   rm   rn   ÚNOFLAGrv   rw   rx   r‚   rƒ   r]   r]   r]   r^   r†   c   ó    r†   c                   @   r|   )ÚIntFlagStoogesrr   rs   r~   r   r€   Nr   r]   r]   r]   r^   rŠ   n   r„   rŠ   c                   @   r…   )ÚIntFlagStoogesWithZeror   rr   rs   r~   r   r€   Nr‡   r]   r]   r]   r^   r‹   x   r‰   r‹   ÚLifeFormzbranch genus species©Úmodulec                   @   rp   )Ú	DeathFormr   rr   rs   N)rl   rm   rn   ÚcolorÚrigidityÚodorr]   r]   r]   r^   r   ˆ   ry   r   c                   @   ó   e Zd ZdZdZdS )ÚNameúGuido van RossumzBarry WarsawN)rl   rm   rn   ÚBDFLÚFLUFLr]   r]   r]   r^   r”   ‘   ó    r”   ÚQuestionzwho what when where whyÚAnswerzhim this then there becausec                   @   ó   e Zd Zdd„ ZdS )ÚWhatsItc                 C   s   | d S ©Nr   r]   ©rf   r]   r]   r^   Úwhat£   ó   zWhatsIt.whatN)rl   rm   rn   rŸ   r]   r]   r]   r^   rœ   ¢   ó    rœ   c                   @   r“   )ÚThatsItr   rr   N)rl   rm   rn   ÚblahÚblehr]   r]   r]   r^   r¢   ¥   r˜   r¢   c                   @   rp   )ÚFruitrr   rs   rt   N)rl   rm   rn   ÚtomatoÚbananaÚcherryr]   r]   r]   r^   r¥   ­   ry   r¥   c           	   	   C   s¬   |\}}g }t ||d ƒD ];}z|d u r | tt||dƒ|ƒ n| tt||dƒ|ƒ W q tyH   t ¡ dd … \}}| d||f ¡ Y qw |rTtdd |¡ ƒ‚d S )Nrr   ©Úprotocolz%2d: %súFailed with protocols: %sú, )	Úranger:   r9   Ú	ExceptionÚsysÚexc_infoÚappendÚ
ValueErrorÚjoin)	Ú	assertionÚsourceÚtargetrª   ÚstartÚstopÚfailuresÚexcÚtbr]   r]   r^   Útest_pickle_dump_load´   s   €þÿr¼   c              
   C   s„   |\}}g }t ||d ƒD ]'}z
| |t||d W q ty4   t ¡ d }| d||jj|f ¡ Y qw |r@tdd 	|¡ ƒ‚d S )Nrr   r©   z	%d: %s %sr«   r¬   )
r­   r9   r®   r¯   r°   r±   rk   rl   r²   r³   )r´   Ú	exceptionÚobjrª   r·   r¸   r¹   rº   r]   r]   r^   Ú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__)rf   rÊ   rË   rÌ   Údocr]   r]   r^   re   Ý   s   
zclassproperty.__init__c                 C   s
   |   |¡S rÉ   )rÊ   )rf   ÚinstanceÚ
ownerclassr]   r]   r^   Ú__get__å   ó   
zclassproperty.__get__)NNNN)rl   rm   rn   re   rÑ   r]   r]   r]   r^   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   ó   G dd„ dt ƒ}d S )Nc                   @   ó   e Zd ZdZdZdZdZdS )z*TestOrder.test_same_members.<locals>.Colorúred green bluerr   rs   rt   N©rl   rm   rn   Ú_order_ÚredÚgreenÚbluer]   r]   r]   r^   ÚColorð   ó
    rÜ   ©r   ©rf   rÜ   r]   r]   r^   Útest_same_membersï   ó   zTestOrder.test_same_membersc                 C   rÔ   )Nc                   @   ó    e Zd ZdZdZdZdZeZdS )z7TestOrder.test_same_members_with_aliases.<locals>.ColorrÖ   rr   rs   rt   N©rl   rm   rn   rØ   rÙ   rÚ   rÛ   Úverder]   r]   r]   r^   rÜ   ÷   r„   rÜ   rÞ   rß   r]   r]   r^   Útest_same_members_with_aliasesö   rá   z(TestOrder.test_same_members_with_aliasesc                 C   óB   |   td¡ G dd„ dtƒ}W d   ƒ d S 1 sw   Y  d S )Nú#member order does not match _order_c                   @   rÕ   )z5TestOrder.test_order_has_extra_members.<locals>.Colorúred green blue purplerr   rs   rt   Nr×   r]   r]   r]   r^   rÜ      rÝ   rÜ   ©ra   Ú	TypeErrorr   rß   r]   r]   r^   Útest_order_has_extra_membersþ   ó   "ÿz&TestOrder.test_order_has_extra_membersc                 C   ræ   )Nrç   c                   @   râ   )zBTestOrder.test_order_has_extra_members_with_aliases.<locals>.Colorrè   rr   rs   rt   Nrã   r]   r]   r]   r^   rÜ     r„   rÜ   ré   rß   r]   r]   r^   Ú)test_order_has_extra_members_with_aliases  rì   z3TestOrder.test_order_has_extra_members_with_aliasesc                 C   ræ   )Nrç   c                   @   r|   )z4TestOrder.test_enum_has_extra_members.<locals>.ColorrÖ   rr   rs   rt   r~   N©rl   rm   rn   rØ   rÙ   rÚ   rÛ   Úpurpler]   r]   r]   r^   rÜ     r„   rÜ   ré   rß   r]   r]   r^   Útest_enum_has_extra_members  rì   z%TestOrder.test_enum_has_extra_membersc                 C   ræ   )Nrç   c                   @   ó$   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Ö   rr   rs   rt   r~   N©	rl   rm   rn   rØ   rÙ   rÚ   rÛ   rï   rä   r]   r]   r]   r^   rÜ     r‰   rÜ   ré   rß   r]   r]   r^   Ú(test_enum_has_extra_members_with_aliases  rì   z2TestOrder.test_enum_has_extra_members_with_aliasesc                 C   rÔ   )Nc                   @   rÕ   )z/TestOrder.test_same_members_flag.<locals>.ColorrÖ   rr   rs   r~   Nr×   r]   r]   r]   r^   rÜ   #  rÝ   rÜ   ©r   rß   r]   r]   r^   Útest_same_members_flag"  rá   z TestOrder.test_same_members_flagc                 C   rÔ   )Nc                   @   râ   )z<TestOrder.test_same_members_with_aliases_flag.<locals>.ColorrÖ   rr   rs   r~   Nrã   r]   r]   r]   r^   rÜ   *  r„   rÜ   rô   rß   r]   r]   r^   Ú#test_same_members_with_aliases_flag)  rá   z-TestOrder.test_same_members_with_aliases_flagc                 C   ræ   )Nrç   c                   @   rÕ   )z:TestOrder.test_order_has_extra_members_flag.<locals>.Colorrè   rr   rs   r~   Nr×   r]   r]   r]   r^   rÜ   3  rÝ   rÜ   ©ra   rê   r   rß   r]   r]   r^   Ú!test_order_has_extra_members_flag1  rì   z+TestOrder.test_order_has_extra_members_flagc                 C   ræ   )Nrç   c                   @   râ   )zGTestOrder.test_order_has_extra_members_with_aliases_flag.<locals>.Colorrè   rr   rs   r~   Nrã   r]   r]   r]   r^   rÜ   ;  r„   rÜ   r÷   rß   r]   r]   r^   Ú.test_order_has_extra_members_with_aliases_flag9  rì   z8TestOrder.test_order_has_extra_members_with_aliases_flagc                 C   ræ   )Nrç   c                   @   r|   )z9TestOrder.test_enum_has_extra_members_flag.<locals>.ColorrÖ   rr   rs   r~   é   Nrî   r]   r]   r]   r^   rÜ   D  r„   rÜ   r÷   rß   r]   r]   r^   Ú test_enum_has_extra_members_flagB  rì   z*TestOrder.test_enum_has_extra_members_flagc                 C   ræ   )Nrç   c                   @   rñ   )zFTestOrder.test_enum_has_extra_members_with_aliases_flag.<locals>.ColorrÖ   rr   rs   r~   rú   Nrò   r]   r]   r]   r^   rÜ   M  r‰   rÜ   r÷   rß   r]   r]   r^   Ú-test_enum_has_extra_members_with_aliases_flagK  rì   z7TestOrder.test_enum_has_extra_members_with_aliases_flagN)rl   rm   rn   rÍ   rà   rå   rë   rí   rð   ró   rõ   rö   rø   rù   rû   rü   r]   r]   r]   r^   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                   @   ó"   e Zd ZdZeƒ Zeƒ Zeƒ ZdS )z)TestAutoValue.test_bare.<locals>.BareEnumúONE TWO THREEN©rl   rm   rn   rØ   r"   ÚONEÚTWOÚTHREEr]   r]   r]   r^   ÚBareEnumZ  ó
    
r  rt   c                   @   rþ   )z,TestAutoValue.test_bare.<locals>.BareIntEnumrÿ   Nr   r]   r]   r]   r^   ÚBareIntEnuma  r  r  c                   @   rþ   )z)TestAutoValue.test_bare.<locals>.BareFlagrÿ   Nr   r]   r]   r]   r^   ÚBareFlagh  r  r  r~   c                   @   rþ   )z,TestAutoValue.test_bare.<locals>.BareIntFlagrÿ   Nr   r]   r]   r]   r^   ÚBareIntFlago  r  r  )r   ÚassertEqualr  Úvaluer   r   r   )rf   r  r  r  r  r]   r]   r^   Ú	test_bareX  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                   @   r|   )z9TestAutoValue.test_init_only_final.<locals>.InitEnumValueúvalue descriptionrÿ   úthe loneliest numberúthe number with youú
a triangleN©rl   rm   rn   Ú_init_rØ   r  r  r  r]   r]   r]   r^   ÚInitEnumValuex  r„   r  rt   r  c                   @   r|   )z4TestAutoValue.test_init_only_final.<locals>.InitEnumr  rÿ   r  r  r  Nr  r]   r]   r]   r^   ÚInitEnum  r„   r  c                   @   r|   )z7TestAutoValue.test_init_only_final.<locals>.InitIntEnumr  rÿ   r  r  r  Nr  r]   r]   r]   r^   ÚInitIntEnumŠ  r„   r  c                   @   r|   )z4TestAutoValue.test_init_only_final.<locals>.InitFlagr  rÿ   r  r  r  Nr  r]   r]   r]   r^   ÚInitFlag“  r„   r  r~   c                   @   r|   )z7TestAutoValue.test_init_only_final.<locals>.InitIntFlagr  rÿ   r  r  r  Nr  r]   r]   r]   r^   ÚInitIntFlagœ  r„   r  )r   r	  r  r
  Údescriptionr   r   r   )rf   r  r  r  r  r  r]   r]   r^   Útest_init_only_finalv  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                   @   ó   e Zd ZdZdS )z=TestAutoValue.test_init_only_inherit.<locals>.InitInheritEnumr  N©rl   rm   rn   r  r]   r]   r]   r^   ÚInitInheritEnum§  ó    r  c                   @   rÕ   ©z6TestAutoValue.test_init_only_inherit.<locals>.InitEnumrÿ   r  r  r  N©rl   rm   rn   rØ   r  r  r  r]   r]   r]   r^   r  ª  rÝ   r  rt   r  c                   @   r  )zBTestAutoValue.test_init_only_inherit.<locals>.InitInheritValueEnumr  Nr  r]   r]   r]   r^   ÚInitInheritValueEnum³  r  r  c                   @   rÕ   r  r  r]   r]   r]   r^   r  ¶  rÝ   c                   @   rÕ   )z9TestAutoValue.test_init_only_inherit.<locals>.InitIntEnumrÿ   r  r  r  Nr  r]   r]   r]   r^   r  ¾  rÝ   r  c                   @   r  )zBTestAutoValue.test_init_only_inherit.<locals>.InitInheritValueFlagr  Nr  r]   r]   r]   r^   ÚInitInheritValueFlagÆ  r  r   c                   @   rÕ   )z6TestAutoValue.test_init_only_inherit.<locals>.InitFlagrÿ   r  r  r  Nr  r]   r]   r]   r^   r  É  rÝ   r  r~   c                   @   rÕ   )z9TestAutoValue.test_init_only_inherit.<locals>.InitIntFlagrÿ   r  r  r  Nr  r]   r]   r]   r^   r  Ñ  rÝ   r  )r   r	  r  r
  r  Úintr   )rf   r  r  r  r  r   r  r  r]   r]   r^   Ú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                   @   ó*   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   ó   t  | ¡}||_d|_|S )NÚNFE1©ÚobjectÚ__new__Ú_value_Úproof©Úclsr
  r%   r]   r]   r^   r(  Ý  ó   
z?TestAutoValue.test_new_only_final.<locals>.NewFinalEnum.__new__N©	rl   rm   rn   rØ   r(  r"   r  r  r  r]   r]   r]   r^   ÚNewFinalEnumÛ  ó    
r/  rt   r%  c                   @   r#  )z:TestAutoValue.test_new_only_final.<locals>.NewFinalIntEnumrÿ   c                 S   ó   t  | |¡}||_d|_|S )NÚNFE2©r!  r(  r)  r*  r+  r]   r]   r^   r(  ê  ó   zBTestAutoValue.test_new_only_final.<locals>.NewFinalIntEnum.__new__Nr.  r]   r]   r]   r^   ÚNewFinalIntEnumè  r0  r5  r2  c                   @   r#  )z7TestAutoValue.test_new_only_final.<locals>.NewFinalFlagrÿ   c                 S   r$  )NÚNFE3r&  r+  r]   r]   r^   r(  ÷  r-  z?TestAutoValue.test_new_only_final.<locals>.NewFinalFlag.__new__Nr.  r]   r]   r]   r^   ÚNewFinalFlagõ  r0  r7  r~   r6  c                   @   r#  )z:TestAutoValue.test_new_only_final.<locals>.NewFinalIntFlagrÿ   c                 S   r1  )NÚNFE4r3  r+  r]   r]   r^   r(    r4  zBTestAutoValue.test_new_only_final.<locals>.NewFinalIntFlag.__new__Nr.  r]   r]   r]   r^   ÚNewFinalIntFlag  r0  r9  r8  c                   @   ó.   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   ó*   d| }t  | |¡}||_||_||_|S ©Nz[%sm©Ústrr(  r)  Úcoder  ©r,  r
  r@  r  Ú	str_valuer¾   r]   r]   r^   r(    ó   zBTestAutoValue.test_new_only_final.<locals>.NewFinalStrEnum.__new__©Ú0z!reset all (colors and brightness)©Ú1úbright lights!©Ú36Úcyan©Ú40ÚblackN©rl   rm   rn   rØ   r(  r?  Ú__str__ÚAllResetÚBrightÚFG_CyanÚBG_Blackr]   r]   r]   r^   ÚNewFinalStrEnum  ó    rU  rE  rH  c                   @   r:  )	z:TestAutoValue.test_new_only_final.<locals>.NewFinalStrFlagr;  c                 S   r<  r=  r>  rA  r]   r]   r^   r(  *  rC  zBTestAutoValue.test_new_only_final.<locals>.NewFinalStrFlag.__new__rD  rF  rI  rL  NrO  r]   r]   r]   r^   ÚNewFinalStrFlag&  rV  rW  rú   )r   r	  r  r
  r  r*  r   r   r   r?  rS  rT  rQ  r@  rR  r  )rf   r/  r5  r7  r9  rU  rW  r]   r]   r^   Ú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                   @   r›   )z=TestAutoValue.test_new_only_inherited.<locals>.NewInheritEnumc                 S   ó:   | j tu rt | |d ¡}nt | ¡}|d |_d|_|S ©Nrs   ÚNIE©Ú_member_type_r!  r(  r'  r)  r*  r+  r]   r]   r^   r(  @  ó   


zETestAutoValue.test_new_only_inherited.<locals>.NewInheritEnum.__new__N©rl   rm   rn   r(  r]   r]   r]   r^   ÚNewInheritEnum?  r¡   r`  c                   @   rþ   )z;TestAutoValue.test_new_only_inherited.<locals>.NewFinalEnumrÿ   Nr   r]   r]   r]   r^   r/  I  r  r/  é   r[  c                   @   rþ   )z>TestAutoValue.test_new_only_inherited.<locals>.NewFinalIntEnumrÿ   Nr   r]   r]   r]   r^   r5  Q  r  r5  c                   @   r›   )z=TestAutoValue.test_new_only_inherited.<locals>.NewInheritFlagc                 S   rY  rZ  r\  r+  r]   r]   r^   r(  Z  r^  zETestAutoValue.test_new_only_inherited.<locals>.NewInheritFlag.__new__Nr_  r]   r]   r]   r^   ÚNewInheritFlagY  r¡   rb  c                   @   rþ   )z;TestAutoValue.test_new_only_inherited.<locals>.NewFinalFlagrÿ   Nr   r]   r]   r]   r^   r7  c  r  r7  rú   c                   @   rþ   )z>TestAutoValue.test_new_only_inherited.<locals>.NewFinalIntFlagrÿ   Nr   r]   r]   r]   r^   r9  k  r  r9  )r   r	  r  r
  r  r*  r!  r   )rf   r`  r/  r5  rb  r7  r9  r]   r]   r^   Ú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                   @   ó(   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   ó   t  | ¡}||_d|_|S )NÚINE1r&  ©r,  r
  rg   r%   r]   r]   r^   r(  x  r-  z=TestAutoValue.test_init_new_only.<locals>.InitNewEnum.__new__r  r  r  N©	rl   rm   rn   r  rØ   r(  r  r  r  r]   r]   r]   r^   ÚInitNewEnumu  ó    ri  rt   r  rf  c                   @   rd  )	z8TestAutoValue.test_init_new_only.<locals>.InitNewIntEnumr  rÿ   c                 W   ó   t  | |¡}||_d|_|S )NÚINE2r3  rg  r]   r]   r^   r(  ‡  r4  z@TestAutoValue.test_init_new_only.<locals>.InitNewIntEnum.__new__r  r  r  Nrh  r]   r]   r]   r^   ÚInitNewIntEnum„  rj  rm  rl  c                   @   rd  )	z5TestAutoValue.test_init_new_only.<locals>.InitNewFlagr  rÿ   c                 W   re  )NÚINE3r&  rg  r]   r]   r^   r(  –  r-  z=TestAutoValue.test_init_new_only.<locals>.InitNewFlag.__new__r  r  r  Nrh  r]   r]   r]   r^   ÚInitNewFlag“  rj  ro  r~   rn  c                   @   rd  )	z8TestAutoValue.test_init_new_only.<locals>.InitNewIntFlagr  rÿ   c                 W   rk  )NÚINE4r3  rg  r]   r]   r^   r(  ¥  r4  z@TestAutoValue.test_init_new_only.<locals>.InitNewIntFlag.__new__r  r  r  Nrh  r]   r]   r]   r^   ÚInitNewIntFlag¢  rj  rq  rp  )
r   r	  r  r
  r  r  r*  r   r   r   )rf   ri  rm  ro  rq  r]   r]   r^   Útest_init_new_onlys  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                   @   ó   e Zd ZdZdd„ ZdS )z4TestAutoValue.test_init_new_inherit.<locals>.InitNewr  c                 W   re  ©NÚINr&  rg  r]   r]   r^   r(  µ  r-  z<TestAutoValue.test_init_new_inherit.<locals>.InitNew.__new__N©rl   rm   rn   r  r(  r]   r]   r]   r^   ÚInitNew³  ó    rw  c                   @   rÕ   )z8TestAutoValue.test_init_new_inherit.<locals>.InitNewEnumrÿ   r  r  r  Nr  r]   r]   r]   r^   ri  »  rÝ   ri  rt   r  ru  c                   @   rs  )z7TestAutoValue.test_init_new_inherit.<locals>.InitNewIntr  c                 W   rk  rt  r3  rg  r]   r]   r^   r(  Æ  r4  z?TestAutoValue.test_init_new_inherit.<locals>.InitNewInt.__new__Nrv  r]   r]   r]   r^   Ú
InitNewIntÄ  rx  ry  c                   @   rÕ   )z;TestAutoValue.test_init_new_inherit.<locals>.InitNewIntEnumrÿ   r  r  r  Nr  r]   r]   r]   r^   rm  Ì  rÝ   rm  c                   @   rs  )z<TestAutoValue.test_init_new_inherit.<locals>.InitNewFlagBaser  c                 W   re  rt  r&  rg  r]   r]   r^   r(  ×  r-  zDTestAutoValue.test_init_new_inherit.<locals>.InitNewFlagBase.__new__Nrv  r]   r]   r]   r^   ÚInitNewFlagBaseÕ  rx  rz  c                   @   rÕ   )z8TestAutoValue.test_init_new_inherit.<locals>.InitNewFlagrÿ   r  r  r  Nr  r]   r]   r]   r^   ro  Ý  rÝ   ro  r~   c                   @   rs  )z?TestAutoValue.test_init_new_inherit.<locals>.InitNewIntFlagBaser  c                 W   rk  rt  r3  rg  r]   r]   r^   r(  è  r4  zGTestAutoValue.test_init_new_inherit.<locals>.InitNewIntFlagBase.__new__Nrv  r]   r]   r]   r^   ÚInitNewIntFlagBaseæ  rx  r{  c                   @   rÕ   )z;TestAutoValue.test_init_new_inherit.<locals>.InitNewIntFlagrÿ   r  r  r  Nr  r]   r]   r]   r^   rq  î  rÝ   rq  )	r   r	  r  r
  r  r  r*  r!  r   )	rf   rw  ri  ry  rm  rz  ro  r{  rq  r]   r]   r^   Útest_init_new_inherit±  s(   z#TestAutoValue.test_init_new_inheritN)
rl   rm   rn   r  r  r"  rX  rc  rr  r|  r]   r]   r]   r^   rý   V  s    /4d6>rý   c                   @   ó4   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 ]}|ƒ }|   t |¡¡ t||dƒ |  t |¡¡ q	d S )Nc                   @   ó   e Zd ZdS )z+TestHelpers.test_is_descriptor.<locals>.fooN©rl   rm   rn   r]   r]   r]   r^   Úfooü  ó    r  )rÑ   Ú__set__Ú
__delete__rr   )ÚassertFalserV   Úis_descriptorÚsetattrÚ
assertTrue)rf   r  Úattrr¾   r]   r]   r^   Útest_is_descriptorû  s   üzTestHelpers.test_is_descriptorc                 C   ó8   dD ]
}|   t |¡¡ qdD ]
}|  t |¡¡ qd S )N)Ú_a_Ú_aa_)ÚaÚa_Ú_aÚ__aÚa__Ú__a__Ú_a__Ú__a_Ú_Ú__Ú___Ú____Ú_____)rˆ  rV   Ú	is_sunderr…  ©rf   Úsr]   r]   r^   Útest_is_sunder  s
   þzTestHelpers.test_is_sunderc                 C   r‹  )N)r“  Ú__aa__)rŽ  r  r  r‘  r’  rŒ  r”  r•  r–  r—  r˜  r™  rš  )rˆ  rV   Ú	is_dunderr…  rœ  r]   r]   r^   Ú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 ]}||Ž  qgtrw|dtddƒ tƒ }d}t||ƒ}d|_ˆ  |jdd ¡ d S )Nc              
      sº   |d u rt ƒ }||ƒ}| |_ˆ  |j|d|j| ||f ¡ d S | }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	  rl   )ÚfirstÚopÚfinalÚsecondÚleftr
  Úrightrž   r]   r^   Útester  s*   
ÿ

ÿ

ÿz%TestHelpers.test_auto.<locals>.testerrr   éýÿÿÿrt   rs   é   r   é1   çrÇqÇ@é	   ra  é   é   éûÿÿÿéüÿÿÿé    é   é
   éøÿÿÿrŽ  ÚabÚbÚaaaé   ÚeggsúI see 17 %s!rÉ   )Ú_abs_rA   Ú_add_Ú
_floordiv_Ú	_truediv_Ú_mod_Ú_lshift_Ú_rshift_Ú_mul_Ú_neg_Ú_pos_Ú_pow_Ú_sub_Ú_or_Ú_xor_Ú_and_Ú_inv_r-   Ú_div_r"   r
  r	  )rf   r©  rg   r§  r¨  r
  r]   rž   r^   Ú	test_auto  s:   













í

zTestHelpers.test_autoc                    sP  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 ]}||Ž  qitry|dtddƒ tdƒ}d}t||ƒ}|dd kr‘ˆ  d| ¡ ˆ r¦tƒ  ˆ D ]}t|ƒ q˜|  d¡ d S d S )Nc           	         sÀ   |d u r$t | ƒ}t ||ƒƒ}|j|kr"ˆ  d|j| |j|f ¡ d S d S t | ƒ}|}|||ƒ}||kr@ˆ  d| |j|||f ¡ | }t |ƒ}|||ƒ}||kr^ˆ  d||j| ||f ¡ d S d S r¢  )r   r
  r±   rl   )	r£  r¤  r¥  r¦  ÚprimaryÚ	secondaryr§  r¨  r
  ©Úerrorsr]   r^   r©  J  s.   
ÿÿ
ÿ
ÿÿz)TestHelpers.test_constant.<locals>.testerrr   rª  rt   rs   r«  r   r¬  r­  r®  ra  r¯  r°  r±  r²  r³  r´  rµ  r¶  rŽ  r·  r¸  r¹  rº  r¼  r»  z'I see 17 eggs!' != %rFrÉ   )r½  rA   r¾  r¿  rÀ  rÁ  rÂ  rÃ  rÄ  rÅ  rÆ  rÇ  rÈ  rÉ  rÊ  rË  rÌ  r-   rÍ  r   r±   Úprintrˆ  )rf   r©  rg   r§  r¨  r
  Úerrorr]   rÑ  r^   Útest_constantH  sH   













í


üzTestHelpers.test_constantN)rl   rm   rn   rŠ  rž  r¡  rÎ  rÕ  r]   r]   r]   r^   r~  ø  s    	5r~  c                   @   ó   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                   @   ó   e Zd Zedd„ ƒZdS )z+TestEnumType.test_immutability.<locals>.Hahc                 S   s   dd„ | D ƒS )Nc                 S   ó   g | ]}|j ‘qS r]   ©r
  ©Ú.0Úmr]   r]   r^   Ú
<listcomp>  ó    zJTestEnumType.test_immutability.<locals>.Hah.all_values.<locals>.<listcomp>r]   ©r,  r]   r]   r^   Ú
all_values‹  ó   z6TestEnumType.test_immutability.<locals>.Hah.all_valuesN)rl   rm   rn   rÈ   rá  r]   r]   r]   r^   ÚHahŠ  ó    rã  c                   @   r“   )z+TestEnumType.test_immutability.<locals>.Huhrr   rs   N©rl   rm   rn   ÚoneÚtwor]   r]   r]   r^   ÚHuhŽ  r˜   rè  zcannot rebind propertyr
  Úboomzcannot delete propertyzcannot set attributezcannot delete attributerr   rs   rá  éc   )r'  r   ra   ÚAttributeErrorr‡  Údelattrræ  rç  r	  r
  rá  )rf   rã  rè  r]   r]   r^   Ú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                   @   ó    e Zd Zdd„ Zedd„ ƒZdS )z1TestEnumType.test_enum_shadow_base.<locals>.hohumc                 S   ó
   | j d S )úcyanize a colorrK  rÚ  rž   r]   r]   r^   rK    ó   
z6TestEnumType.test_enum_shadow_base.<locals>.hohum.cyanc                 S   s
   d| j  S )Nzazure ©Únamerž   r]   r]   r^   Úazure   rñ  z7TestEnumType.test_enum_shadow_base.<locals>.hohum.azureN)rl   rm   rn   rK  Úpropertyrô  r]   r]   r]   r^   Úhohumœ  s    rö  c                   @   r|   )z1TestEnumType.test_enum_shadow_base.<locals>.Colorrr   rs   rt   r~   r   N)rl   rm   rn   rÙ   rÚ   rÛ   rK  rô  r]   r]   r]   r^   rÜ   £  r„   rÜ   r   zno attribute .cyan.c                      s   ˆ j jS rÉ   )rÛ   rK  r]   ©rÜ   r]   r^   Ú<lambda>«  ó    z4TestEnumType.test_enum_shadow_base.<locals>.<lambda>z	azure red)r'  r   r	  ÚlenÚlistrÙ   rÚ   rÛ   rK  rô  ra   rë  )rf   rö  r]   r÷  r^   Útest_enum_shadow_base›  s   $z"TestEnumType.test_enum_shadow_baseN)rl   rm   rn   rí  rü  r]   r]   r]   r^   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                   @   rÕ   )zTestEnum.setUp.<locals>.Seasonrr   rs   rt   r~   N)rl   rm   rn   ÚSPRINGÚSUMMERÚAUTUMNÚWINTERr]   r]   r]   r^   ÚSeason²  rÝ   r  c                   @   ó   e Zd ZdZdZde ZdS )z%TestEnum.setUp.<locals>.ReprKonstantsçB‡
¿@çJØMû!	@rs   N©rl   rm   rn   ÚEÚPIÚTAUr]   r]   r]   r^   ÚReprKonstants¹  ó    r
  c                   @   r|   )z"TestEnum.setUp.<locals>.ReprGradesr   r~   rt   rs   r   N©rl   rm   rn   ÚAÚBÚCÚDÚFr]   r]   r]   r^   Ú
ReprGrades¿  r„   r  c                   @   rÕ   )z'TestEnum.setUp.<locals>.ReprDirectionalÚeastÚwestÚnorthÚsouthN©rl   rm   rn   ÚEASTÚWESTÚNORTHÚSOUTHr]   r]   r]   r^   ÚReprDirectionalÇ  rÝ   r  r   )Údatec                   @   r“   )z#TestEnum.setUp.<locals>.ReprHoliday©éÝ  rr   rr   ©r  rt   r€   N©rl   rm   rn   ÚNEW_YEARÚIDES_OF_MARCHr]   r]   r]   r^   ÚReprHolidayÏ  r˜   r$  c                   @   r  )z!TestEnum.setUp.<locals>.Konstantsr  r  rs   Nr  r]   r]   r]   r^   Ú	KonstantsÔ  r  r%  c                   @   r|   )zTestEnum.setUp.<locals>.Gradesr   r~   rt   rs   r   Nr  r]   r]   r]   r^   ÚGradesÚ  r„   r&  c                   @   rÕ   )z#TestEnum.setUp.<locals>.Directionalr  r  r  r  Nr  r]   r]   r]   r^   ÚDirectionalâ  rÝ   r'  c                   @   r“   )zTestEnum.setUp.<locals>.Holidayr  r   Nr!  r]   r]   r]   r^   ÚHolidayê  r˜   r(  )r   r  Úfloatr   r
  r   r  r?  r  Údatetimer  r$  r%  r!  r&  r'  r(  )rf   r  r
  r  r  r  r$  r%  r&  r'  r(  r]   r]   r^   ÚsetUp±  s(   
zTestEnum.setUpc                    óx   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                   @   ó*   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   ó   |d u r| S |j | j S rÉ   ©Ú__dict__ró  ©rf   rÏ   Úowner_classr]   r]   r^   rÑ   ò  ó   z2TestEnum.test_set_name.<locals>.Descriptor.__get__c                 S   ó   ||j | j< d S rÉ   r/  ©rf   rÏ   r
  r]   r]   r^   rƒ  ÷  ó   z2TestEnum.test_set_name.<locals>.Descriptor.__set__c                 S   ó
   || _ d S rÉ   rò  ©rf   Úownerró  r]   r]   r^   Ú__set_name__ù  rÒ   z7TestEnum.test_set_name.<locals>.Descriptor.__set_name__rÉ   ©rl   rm   rn   ró  rÑ   rƒ  r:  r]   r]   r]   r^   Ú
Descriptorð  ó
    
r<  c                       ó   e Zd ZdZ” ƒ ZdS )z&TestEnum.test_set_name.<locals>.AnEnumræ  N©rl   rm   rn   r  rç  r]   ©r<  r]   r^   ÚAnEnumü  ó    
rA  rç  Úthree©r'  r   r	  rû  r  rç  ró  r0  ©rf   rA  r]   r@  r^   Útest_set_nameï  ó   zTestEnum.test_set_namec                 C   ód   G dd„ dt ƒ}|  t|ƒd¡ |  |jd¡ |  t|jt ƒ¡ |  |jd¡ |  t|jt ƒ¡ d S )Nc                   @   r“   )z,TestEnum.test_private_names.<locals>.PrivateÚRadarÚHoolihanN©rl   rm   rn   Ú_Private__corporalÚ_Private__major_r]   r]   r]   r^   ÚPrivate  r˜   rN  r   rI  rJ  ©r   r	  rú  rL  r…  Ú
isinstancerM  ©rf   rN  r]   r]   r^   Útest_private_names  ó   zTestEnum.test_private_namesc                 C   ó’   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                   @   ó&   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,  Ú	docstringrX  rY  r
  r%   r]   r]   r^   r(    s   
z4TestEnum.test_new_with_keywords.<locals>.Huh.__new__Únormal©ú***really super important***ú***©úplease ==take notice==ú==rb  ©NN©rl   rm   rn   Ú	__order__r(  ÚPLAINÚBOLD_ITALICÚ	HIGHLIGHTr]   r]   r]   r^   rè    s    

rè  ©r   r\  NN©rr   r^  r_  r_  ©rs   ra  rb  rb  )r   rf  rˆ  Útyper	  r
  rÍ   rX  rY  rg  rh  ©rf   rè  ÚpÚbiÚhr]   r]   r^   Útest_new_with_keywords  s"   þþþzTestEnum.test_new_with_keywordsc                 C   ó(   G dd„ dt ƒ}|  t|jƒtu ¡ d S )Nc                   @   rÕ   )z@TestEnum.test_members_is_ordereddict_if_ordered.<locals>.Orderedúfirst second thirdÚbippityÚboppityÚbooN)rl   rm   rn   re  r£  r¦  Úthirdr]   r]   r]   r^   ÚOrdered2  rÝ   rx  ©r   rˆ  rl  rW  r7   )rf   rx  r]   r]   r^   Ú&test_members_is_ordereddict_if_ordered1  s   z/TestEnum.test_members_is_ordereddict_if_orderedc                 C   rr  )Nc                   @   r“   )zFTestEnum.test_members_is_ordereddict_if_not_ordered.<locals>.UnorderedÚthatÚthoseN)rl   rm   rn   ÚthisÚtheser]   r]   r]   r^   Ú	Unordered:  r˜   r  ry  )rf   r  r]   r]   r^   Ú*test_members_is_ordereddict_if_not_ordered9  s   z3TestEnum.test_members_is_ordereddict_if_not_orderedc                 C   s    | j }|  ||jƒ|ju ¡ d S rÉ   )r  rˆ  r  ©rf   r  r]   r]   r^   Útest_enum_in_enum_out?  s   zTestEnum.test_enum_in_enum_outc                 C   s   | j }|  |jjd¡ d S ©Nrr   )r  r	  rþ  r
  r  r]   r]   r^   Útest_enum_valueC  ó   zTestEnum.test_enum_valuec                 C   s   |   tjjd¡ d S ©Nrs   )r	  rz   rw   r
  rž   r]   r]   r^   Útest_intenum_valueG  rá   zTestEnum.test_intenum_valuec                 C   s  | j }t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|j|jg|¡ td 	¡ ƒD ]W\}}|d7 }||ƒ}|  |t
||ƒ¡ |  |j|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ |  t||ƒ¡ |  t|ƒd| ¡ |  t|ƒd||f ¡ q.d S )Nr~   úSPRING SUMMER AUTUMN WINTERrr   zSeason.z<Season.%s: %s>)r  rû  r	  rú  rþ  rÿ  r   r  Ú	enumerateÚsplitrc   r
  ÚassertNotEqualró  rˆ  rl  rP  r?  Úrepr)rf   r  ÚlstÚiÚseasonÚer]   r]   r^   Ú	test_enumJ  s.   ÿ
þõzTestEnum.test_enumc                 C   s^   t dddd}t dddd}t dddƒ}|  ||u¡ |  ||¡ |  ||¡ |  ||¡ d S )Nrr   rs   r®  )rC  )r#   rˆ  r	  r‹  )rf   Úe1Úe2Úe3r]   r]   r^   Útest_enum_helpera  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,  rg   rh   r%   r]   r]   r^   r(  o  s   
z1TestEnum.test_enum_in_enum.<locals>.Level.__new__Nc                 S   s`   t | jj ¡ ƒ| _g | _| jD ]}|j | ¡ q|r | j|j p!d | _|r+| j|j p,d | _	d S rÉ   )
rû  rk   Ú_member_map_ÚvaluesÚlower_priority_levelsÚgreater_priority_levelsr±   ró  ÚprerequisiteÚ	dependent)rf   Úprereqr›  r%   r]   r]   r^   re   t  s   
z2TestEnum.test_enum_in_enum.<locals>.Level.__init__rc  )
rl   rm   rn   rØ   r(  re   r#   Ú
DATA_CHECKÚDESIGN_CHECKÚALERTr]   r]   r]   r^   ÚLevell  s    
r   rr   )r   r	  r  r
  rš  r›  rž  rŸ  )rf   r   r]   r]   r^   Útest_enum_in_enumj  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þ  rr   c                 S   ó
   || _ d S rÉ   rò  ©r¾   Ú	new_valuer]   r]   r^   Úset_name  rÒ   z*TestEnum.test_value_name.<locals>.set_namec                 S   r¢  rÉ   rÚ  r£  r]   r]   r^   Ú	set_value‘  rÒ   z+TestEnum.test_value_name.<locals>.set_valueÚinviernors   )r  r	  rþ  ró  r
  ÚassertRaisesrë  )rf   r  r¥  r¦  r]   r]   r^   Ú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                   @   ó$   e Zd ZdZdZdZdZdd„ ZdS )z0TestEnum.test_attribute_deletion.<locals>.Seasonrr   rs   rt   r~   c                 S   ó   d S rÉ   r]   rà  r]   r]   r^   Úspam  ó   z5TestEnum.test_attribute_deletion.<locals>.Season.spamN)rl   rm   rn   rþ  rÿ  r   r  r¬  r]   r]   r]   r^   r  —  s    r  r¬  rþ  ÚDRYró  )	r   rˆ  Úhasattrr¬  r…  r¨  rë  rì  rþ  r  r]   r]   r^   Útest_attribute_deletion–  s   	z TestEnum.test_attribute_deletionc                 C   s"   G dd„ dt ƒ}|  t|ƒ¡ d S )Nc                   @   r  )z*TestEnum.test_bool_of_class.<locals>.EmptyNr€  r]   r]   r]   r^   ÚEmpty©  r‚  r±  ©r   rˆ  Úbool)rf   r±  r]   r]   r^   Útest_bool_of_class¨  s   zTestEnum.test_bool_of_classc                 C   s,   G dd„ dt ƒ}|D ]	}|  t|ƒ¡ q
d S )Nc                   @   rp   )z+TestEnum.test_bool_of_member.<locals>.Countr   rr   rs   N)rl   rm   rn   Úzeroræ  rç  r]   r]   r]   r^   ÚCount®  ry   r¶  r²  )rf   r¶  r%   r]   r]   r^   Útest_bool_of_member­  s   ÿzTestEnum.test_bool_of_memberc                 C   s,   dd„ }dd„ }|   t|¡ |   t|¡ d S )Nc                  S   ó   G dd„ dt ƒ} d S )Nc                   @   r  )zFTestEnum.test_invalid_names.<locals>.create_bad_class_1.<locals>.Wrongr®  N)rl   rm   rn   Úmror]   r]   r]   r^   ÚWrong·  r  rº  rÞ   ©rº  r]   r]   r^   Úcreate_bad_class_1¶  rá   z7TestEnum.test_invalid_names.<locals>.create_bad_class_1c                  S   r¸  )Nc                   @   r  )zFTestEnum.test_invalid_names.<locals>.create_bad_class_2.<locals>.Wrongrt   N)rl   rm   rn   Ú
_reserved_r]   r]   r]   r^   rº  º  r  rº  rÞ   r»  r]   r]   r^   Úcreate_bad_class_2¹  rá   z7TestEnum.test_invalid_names.<locals>.create_bad_class_2©r¨  r²   )rf   r¼  r¾  r]   r]   r^   Ú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   ó
   t | jƒS rÉ   )r³  r
  rž   r]   r]   r^   Ú__bool__Ã  rÒ   z*TestEnum.test_bool.<locals>.Logic.__bool__N)rl   rm   rn   ÚtrueÚfalserÂ  Ú__nonzero__r]   r]   r]   r^   ÚLogicÀ  s
    rÆ  )r   rˆ  rÃ  r…  rÄ  )rf   rÆ  r]   r]   r^   Ú	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   rt   c                   @   r“   )z)TestEnum.test_contains.<locals>.OtherEnumrr   rs   Nrå  r]   r]   r]   r^   Ú	OtherEnumÒ  r¡   rÈ  c                   @   r“   )z+TestEnum.test_contains.<locals>.NumericEnumrr   rs   Nrå  r]   r]   r]   r^   ÚNumericEnumÖ  r¡   rÉ  c                   @   s$   e Zd Zg d¢ZdZddddœZdS )z%TestEnum.test_contains.<locals>.Wierd©rr   rs   rt   rr   rs   rt   N)rl   rm   rn   r}  r{  r|  r]   r]   r]   r^   ÚWierdÛ  s    rË  rÊ  rr   rs   )	r  r…  rˆ  r   r   rç  r   rÿ  r}  )rf   r  ÚvalrÈ  rÉ  rË  r]   r]   r^   Ú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   r]   rž   r]   r^   rø  å  s    z/TestEnum.test_member_contains.<locals>.<lambda>©r¨  rê   rž   r]   rž   r^   Útest_member_containsä  ó   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  r]   r]   r^   Ú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                   @   ó   e Zd ZdZdZdd„ ZdS )z.TestEnum.test_custom_format.<locals>.TestFloatg      ð?g       @c                 S   ó   dS )NúTestFloat success!r]   )rf   Úspecr]   r]   r^   Ú
__format__ú  r­  z9TestEnum.test_custom_format.<locals>.TestFloat.__format__N)rl   rm   rn   ræ  rç  rà  r]   r]   r]   r^   Ú	TestFloat÷  r  rá  zTestFloat.onerÔ  rÞ  )r)  r   r	  r?  ræ  rÚ  )rf   rá  r]   r]   r^   Útest_custom_formatö  ó   zTestEnum.test_custom_formatc                 C   s<   G dd„ dt tƒ}|  t|jƒd¡ |  d |j¡d¡ d S )Nc                   @   rÜ  )z5TestEnum.test_format_with_custom_str.<locals>.TestIntrr   rs   c                 S   rï  ©Nrt   rò  rž   r]   r]   r^   rP    rÒ   z=TestEnum.test_format_with_custom_str.<locals>.TestInt.__str__N)rl   rm   rn   ræ  rç  rP  r]   r]   r]   r^   ÚTestInt   r  rå  Ú	twotwotworÔ  )r!  r   r	  r?  rç  rÚ  )rf   rå  r]   r]   r^   Útest_format_with_custom_strÿ  rã  z$TestEnum.test_format_with_custom_strc                 C   s    |   | |¡| t|ƒ¡¡ d S rÉ   )r	  rÚ  r?  ©rf   rß  r%   r]   r]   r^   ÚassertFormatIsName  s    zTestEnum.assertFormatIsNamec                 C   ó^   | j }|  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ d S rÓ  )r(  ré  r#  )rf   r(  r]   r]   r^   Útest_format_enum_date  ó   zTestEnum.test_format_enum_datec                 C   rê  rÓ  )r%  ré  r	  )rf   r%  r]   r]   r^   Útest_format_enum_float  rì  zTestEnum.test_format_enum_floatc                 C   rê  rÓ  )r&  ré  r  )rf   r&  r]   r]   r^   Útest_format_enum_int  rì  zTestEnum.test_format_enum_intc                 C   rê  rÓ  )r'  ré  r  )rf   r'  r]   r]   r^   Útest_format_enum_str&  rì  zTestEnum.test_format_enum_strc                 C   s   |   | |¡| |j¡¡ d S rÉ   )r	  rÚ  r
  rè  r]   r]   r^   ÚassertFormatIsValue/  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Ô  rÕ  rÖ  r×  rØ  rÙ  z	{0:%Y %m}z{0:%Y %m %M:00})r$  rð  r#  )rf   r$  r]   r]   r^   Útest_format_reprenum_date2  s   z"TestEnum.test_format_reprenum_datec                 C   óˆ   | j }|  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d	|j¡ d S )
NrÔ  rÕ  rÖ  r×  rØ  rÙ  z{0:n}z{0:5.2}z{0:f})r
  rð  r	  )rf   r
  r]   r]   r^   Útest_format_reprenum_float=  ó   z#TestEnum.test_format_reprenum_floatc                 C   rò  )
NrÔ  rÕ  rÖ  r×  rØ  rÙ  z{0:+}z{0:08X}z{0:b})r  rð  r  )rf   r  r]   r]   r^   Útest_format_reprenum_intI  rô  z!TestEnum.test_format_reprenum_intc                 C   rê  rÓ  )r  rð  r  )rf   r  r]   r]   r^   Útest_format_reprenum_strU  rì  z!TestEnum.test_format_reprenum_strc                 C   sH   | j }i }d||j< d||j< d||j< d||j< |  ||j d¡ d S )NÚ1225Ú0315Ú0704Ú1031)r  r  rþ  rÿ  r   r	  )rf   r  Údatesr]   r]   r^   Ú	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ˆ  rr   rs   rt   r~   N)
rl   rm   rn   re  rþ  rÿ  r   ÚFALLr  ÚANOTHER_SPRINGr]   r]   r]   r^   r  h  s    r  rt   rr   r   c                 S   ó   g | ]\}}|j |kr|‘qS r]   rò  ©rÜ  ÚkÚvr]   r]   r^   rÞ  |  s    z1TestEnum.test_enum_duplicates.<locals>.<listcomp>rý  rþ  )r   rû  r	  rþ  rÿ  r   r  rˆ  rý  r
  ró  ÚsetrW  Úitems)rf   r  r  r]   r]   r^   Útest_enum_duplicatesg  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                   @   rp   )z/TestEnum.test_enum_with_value_name.<locals>.Huhz
name valuerr   rs   N)rl   rm   rn   rØ   ró  r
  r]   r]   r]   r^   rè    ry   rè  ró  rr   )r   r	  rû  ró  r
  rˆ  rl  )rf   rè  r]   r]   r^   Útest_enum_with_value_name€  s   
þz"TestEnum.test_enum_with_value_namec                 C   ó(   G dd„ dt tƒ}|  |j|jk ¡ d S )Nc                   @   ó   e Zd ZdZde ZdS )z/TestEnum.test_intenum_from_scratch.<locals>.phyrt   rs   N©rl   rm   rn   ÚpiÚtaur]   r]   r]   r^   ÚphyŽ  rx  r  ©r!  r   rˆ  r
  r  ©rf   r  r]   r]   r^   Útest_intenum_from_scratch  ó   z"TestEnum.test_intenum_from_scratchc                 C   ó8   G dd„ dt tƒ}G dd„ d|ƒ}|  |j|jk ¡ d S )Nc                   @   r  )z0TestEnum.test_intenum_inherited.<locals>.IntEnumNr€  r]   r]   r]   r^   r   ”  r‚  r   c                   @   r  )z,TestEnum.test_intenum_inherited.<locals>.phyrt   rs   Nr	  r]   r]   r]   r^   r  –  rx  r  r  )rf   r   r  r]   r]   r^   Útest_intenum_inherited“  ó   zTestEnum.test_intenum_inheritedc                 C   r  )Nc                   @   r  )z1TestEnum.test_floatenum_from_scratch.<locals>.phyr  rs   Nr	  r]   r]   r]   r^   r  œ  rx  r  ©r)  r   rˆ  r
  r  r  r]   r]   r^   Útest_floatenum_from_scratch›  r  z$TestEnum.test_floatenum_from_scratchc                 C   r  )Nc                   @   r  )z4TestEnum.test_floatenum_inherited.<locals>.FloatEnumNr€  r]   r]   r]   r^   Ú	FloatEnum¢  r‚  r  c                   @   r  )z.TestEnum.test_floatenum_inherited.<locals>.phyr  rs   Nr	  r]   r]   r]   r^   r  ¤  rx  r  r  )rf   r  r  r]   r]   r^   Útest_floatenum_inherited¡  r  z!TestEnum.test_floatenum_inheritedc                 C   r  )Nc                   @   r“   )z/TestEnum.test_strenum_from_scratch.<locals>.phyÚPiÚTauNr	  r]   r]   r]   r^   r  ª  r˜   r  )r?  r   rˆ  r
  r  r  r]   r]   r^   Útest_strenum_from_scratch©  r  z"TestEnum.test_strenum_from_scratchc                 C   sB  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 odk n  ¡ |  t|ƒ|u ¡ |  t|t	ƒ¡ |  t|tƒ¡ qCd 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>.WeekDayrr   rs   rt   r~   r   ra  r´  N)
rl   rm   rn   ÚSUNDAYÚMONDAYÚTUESDAYÚ	WEDNESDAYÚTHURSDAYÚFRIDAYÚSATURDAYr]   r]   r]   r^   ÚWeekDay°  s    r"  )rŽ  r¸  Úcr#  c                 S   s   g | ]}|‘qS r]   r]   )rÜ  rŽ  r]   r]   r^   rÞ  º  s    z)TestEnum.test_intenum.<locals>.<listcomp>©r   rr   rs   r´  ú8SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAYrr   r   rú   )r   r	  r  r­   r  rû  rú  rŠ  r‰  r!  ró  rˆ  Úindexrl  rP  r   )rf   r"  r  r¶   rŽ  Úweekdayr  r]   r]   r^   Ú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%  rr   rs   rt   r~   r   ra  r´  N)rl   rm   rn   re  r  r  r  ÚTEUSDAYr  r  r   r!  r]   r]   r]   r^   r"  Ï  s    r"  rt   r  c                 S   rÿ  r]   rò  r   r]   r]   r^   rÞ  Ú  s    
ÿz4TestEnum.test_intenum_duplicates.<locals>.<listcomp>r)  )r   rˆ  r)  r  r	  ró  rW  r  )rf   r"  r]   r]   r^   Útest_intenum_duplicatesÎ  s   	ÿz TestEnum.test_intenum_duplicatesc                 C   sn   t  tjj¡}|  t |¡tj¡ t  tjjd ¡}|  t¡ t |¡ W d   ƒ d S 1 s0w   Y  d S )Ng{®Gáz„?)	r)  Úhexr{   rx   r
  ÚassertIsÚfromhexr¨  r²   )rf   rp  r]   r]   r^   Útest_floatenum_fromhexÝ  s   "ÿzTestEnum.test_floatenum_fromhexc                 C   ó,   t ttƒrt‚t| jtjƒ t| jtƒ d S rÉ   )rP  rq   r®   r¼   rˆ  rw   rž   r]   r]   r^   Útest_pickle_enumä  ó   
zTestEnum.test_pickle_enumc                 C   r/  rÉ   )rP  rz   r®   r¼   rˆ  rw   rž   r]   r]   r^   Útest_pickle_intê  r1  zTestEnum.test_pickle_intc                 C   r/  rÉ   )rP  r{   r®   r¼   rˆ  rw   rž   r]   r]   r^   Útest_pickle_floatð  r1  zTestEnum.test_pickle_floatc                 C   r/  rÉ   )rP  rš   r®   r¼   rˆ  Úhimrž   r]   r]   r^   Útest_pickle_enum_functionö  r1  z"TestEnum.test_pickle_enum_functionc                 C   r/  rÉ   )rP  r™   r®   r¼   rˆ  Úwhorž   r]   r]   r^   Ú%test_pickle_enum_function_with_moduleü  r1  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                   @   r“   )z6TestEnum.test_pickle_by_name.<locals>.ReplaceGlobalIntrr   rs   N)rl   rm   rn   r  r  r]   r]   r]   r^   ÚReplaceGlobalInt  r˜   r8  r  )r   r   Ú__reduce_ex__r­   r<   r	  r  )rf   r8  Úprotor]   r]   r^   Ú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   rV   Úmake_class_unpicklableÚglobalsr¿   r¨  rê   Údillr;   )rf   r<  r]   r]   r^   Útest_exploding_pickle
  s
   


zTestEnum.test_exploding_picklec                 C   s$   G dd„ dt tƒ}|  |jd¡ d S )Nc                   @   rp   )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)rl   rm   rn   ÚmasterÚ
journeymanÚ
apprenticer]   r]   r]   r^   Ú
SkillLevel  ry   rE  rA  )r?  r   r	  rD  )rf   rE  r]   r]   r^   Ú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                   @   rÕ   )z-TestEnum.test_getattr_getitem.<locals>.Periodrr   rs   rt   r~   N)rl   rm   rn   ÚmorningÚnoonÚeveningÚnightr]   r]   r]   r^   ÚPeriod  rÝ   rK  rs   rJ  rG  )r   rˆ  rH  rc   rJ  rG  ©rf   rK  r]   r]   r^   Útest_getattr_getitem  s   zTestEnum.test_getattr_getitemc                 C   s   | j }|  t|dƒ¡ d S )NÚ__hash__)r  rˆ  rc   r  r]   r]   r^   Útest_getattr_dunder"  r…  zTestEnum.test_getattr_dunderc                 C   ó4   G dd„ dt ƒ}|  t|ƒ|j|j|j|jg¡ d S )Nc                   @   r|   )z-TestEnum.test_iteration_order.<locals>.SeasonzSUMMER WINTER AUTUMN SPRINGrs   r~   rt   rr   N)rl   rm   rn   re  rÿ  r  r   rþ  r]   r]   r]   r^   r  '  r„   r  )r   r	  rû  rÿ  r  r   rþ  r  r]   r]   r^   Ú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ž   r]   r]   r^   Útest_iteration_order_reversed2  s   ÿþz&TestEnum.test_iteration_order_reversedc                 C   rP  )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>.Complexr´  r®  g…ëQ¸	@rs   rr   rP   i³ÿÿÿr³  N)rl   rm   rn   ÚcomplexrŽ  r¸  r#  Údr]   r]   r]   r^   ÚComplex:  s
    


rV  )r   r	  rû  rŽ  r¸  r#  rU  )rf   rV  r]   r]   r^   Ú,test_iteration_order_with_unorderable_values9  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 ]2\}}|d7 }||ƒ}|  t	|j
ƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q.d S ©NÚSummerMonthújune july augustrt   rr   ©r   rû  r	  rú  ÚjuneÚjulyÚaugustr‰  rŠ  r!  r
  r‹  ró  rˆ  rl  ©rf   rY  r  rŽ  Úmonthr  r]   r]   r^   Ú test_programatic_function_stringD  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 ¡ q1d S )NrY  rZ  rµ  ©r·   rt   r[  r_  r]   r]   r^   Ú+test_programatic_function_string_with_startV  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 ]2\}}|d7 }||ƒ}|  t	|j
ƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q0d S )NrY  ©r\  r]  r^  rt   rZ  rr   r[  r_  r]   r]   r^   Ú%test_programatic_function_string_listg  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 ¡ q3d S )NrY  rd  r¯  rb  rt   rZ  r[  r_  r]   r]   r^   Ú0test_programatic_function_string_list_with_starty  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 ]2\}}|d7 }||ƒ}|  t	|j
ƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q.d S ©NrY  ))r\  rr   )r]  rs   )r^  rt   rt   rZ  rr   r[  r_  r]   r]   r^   Ú"test_programatic_function_iterableŠ  s(   þþùz+TestEnum.test_programatic_function_iterablec                 C   sÎ   t dtdƒƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ tr,|  |j|j|jg|¡ t	d 
¡ ƒD ]2\}}|d7 }||ƒ}|  t|jƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q2d S rg  )r   Údictrû  r	  rú  r-   r\  r]  r^  r‰  rŠ  r!  r
  r‹  ró  rˆ  rl  r_  r]   r]   r^   Ú#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 ])\}}|d7 }||ƒ}|  ||¡ |  |j
|¡ |  ||v ¡ |  t|ƒ|u ¡ q0d S ©NrY  rZ  ©rl  rt   rr   ©r   r!  rû  r	  rú  r\  r]  r^  r‰  rŠ  ró  rˆ  rl  r_  r]   r]   r^   Ú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
|¡ |  ||v ¡ |  t|ƒ|u ¡ q2d S )NrY  rZ  é   )rl  r·   rt   rm  r_  r]   r]   r^   Ú)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 ])\}}|d7 }||ƒ}|  ||¡ |  |j	|¡ |  
||v ¡ |  
t|ƒ|u ¡ q.d S rX  ©r   rû  r	  rú  r\  r]  r^  r‰  rŠ  ró  rˆ  rl  r_  r]   r]   r^   Ú,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	|¡ |  
||v ¡ |  
t|ƒ|u ¡ q1d S )NrY  rZ  é(   rb  rt   rq  r_  r]   r]   r^   Ú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 ]2\}}|d7 }||ƒ}|  t
|jƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q2d S rX  ©r   r*   rû  r	  rú  r\  r]  r^  r‰  rŠ  r!  r
  r‹  ró  rˆ  rl  r_  r]   r]   r^   Ú!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 ]2\}}|d7 }||ƒ}|  t
|jƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q9d S )NrY  r\  r]  r^  rt   rZ  rr   ru  r_  r]   r]   r^   Ú&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 ]2\}}|d7 }||ƒ}|  t
|jƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q?d S ©	NrY  r\  rr   r]  rs   r^  rt   rZ  ru  r_  r]   r]   r^   Ú*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r;|  |j|j|j	g|¡ t
tdƒ ¡ ƒD ]2\}}|d7 }||ƒ}|  t|jƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ qCd S rx  )r   ri  r*   rû  r	  rú  r-   r\  r]  r^  r‰  rŠ  r!  r
  r‹  ró  rˆ  rl  r_  r]   r]   r^   Ú+test_programatic_function_from_unicode_dict0  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 ])\}}|d7 }||ƒ}|  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q4d S rk  )r   r*   r!  rû  r	  rú  r\  r]  r^  r‰  rŠ  ró  rˆ  rl  r_  r]   r]   r^   Ú&test_programatic_function_unicode_typeF  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 ])\}}|d7 }||ƒ}|  ||¡ |  |j
|¡ |  ||v ¡ |  t|ƒ|u ¡ q2d S rX  )r   r*   rû  r	  rú  r\  r]  r^  r‰  rŠ  ró  rˆ  rl  r_  r]   r]   r^   Ú4test_programatic_function_unicode_type_from_subclassW  s    þúz=TestEnum.test_programatic_function_unicode_type_from_subclassc                 C   s  t rtdƒd d¡f}nd}t|ƒD ]r\}}t r'|dkr'|  tt|tdƒ¡ qt|tdƒƒ}t|ƒ}|  t	|ƒt	|ƒ¡ |  t	|ƒd|¡ |  |j
|j|jg|¡ ttdƒ ¡ ƒD ]*\}}|d7 }||ƒ}|  |j|¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ qYqd S )NrY  õ   SÃ¼mmÃ©rMÃ¶nthÚlatin1)rY  r}  rr   rZ  rt   )r-   r*   Údecoder‰  r¨  rê   r   rû  r	  rú  r\  r]  r^  rŠ  r
  ró  rˆ  rl  )rf   Úclass_namesrŽ  Ú
class_namerY  r  r`  r  r]   r]   r^   Ú(test_programmatic_function_unicode_classh  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–   )rP  r”   r®   r	  r–   rˆ  rc   r¼   rž   r]   r]   r^   Útest_subclassing  s   
zTestEnum.test_subclassingc                 C   ó   dd„ }|   t|¡ d S )Nc                  S   s$   G dd„ dt ƒ} G dd„ d| ƒ}d S )Nc                   @   rp   )z=TestEnum.test_extending.<locals>.bad_extension.<locals>.Colorrr   rs   rt   N©rl   rm   rn   rÙ   rÚ   rÛ   r]   r]   r]   r^   rÜ   ‹  ry   rÜ   c                   @   rp   )zATestEnum.test_extending.<locals>.bad_extension.<locals>.MoreColorr~   r   ra  N©rl   rm   rn   rK  ÚmagentaÚyellowr]   r]   r]   r^   Ú	MoreColor  ry   r‰  rÞ   )rÜ   r‰  r]   r]   r^   Úbad_extensionŠ  ó   z.TestEnum.test_extending.<locals>.bad_extensionrÐ  ©rf   rŠ  r]   r]   r^   Útest_extending‰  s   	zTestEnum.test_extendingc                 C   s:   G dd„ dt ƒ}|  t|jƒ|u ¡ |  |j ¡ d¡ d S )Nc                   @   rÜ  )z/TestEnum.test_exclude_methods.<locals>.whateverr{  r|  c                 S   ó
   d| j  S )Nz
no, not %srÚ  rž   r]   r]   r^   Úreally™  rÒ   z6TestEnum.test_exclude_methods.<locals>.whatever.reallyN)rl   rm   rn   r}  r~  r  r]   r]   r]   r^   Úwhatever–  r  r  zno, not that)r   r…  rl  r  r	  r}  )rf   r  r]   r]   r^   Útest_exclude_methods•  s   zTestEnum.test_exclude_methodsc                 C   r„  )Nc                  S   s   G dd„ dt tƒ} d S )Nc                   @   r  )zKTestEnum.test_wrong_inheritance_order.<locals>.wrong_inherit.<locals>.Wrongzerror before this pointN)rl   rm   rn   ÚNotHerer]   r]   r]   r^   rº     r  rº  )r   r?  r»  r]   r]   r^   Úwrong_inheritŸ  s   z<TestEnum.test_wrong_inheritance_order.<locals>.wrong_inheritrÐ  )rf   r“  r]   r]   r^   Ú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                   @   rp   )z2TestEnum.test_intenum_transitivity.<locals>.numberrr   rs   rt   N)rl   rm   rn   ræ  rç  rC  r]   r]   r]   r^   Únumber¥  ry   r•  c                   @   rp   )z2TestEnum.test_intenum_transitivity.<locals>.numerorr   rs   rt   N)rl   rm   rn   ÚunoÚdosÚtresr]   r]   r]   r^   Únumero©  ry   r™  )r   r	  ræ  r–  rç  r—  rC  r˜  )rf   r•  r™  r]   r]   r^   Ú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                   @   r“   )z+TestEnum.test_introspection.<locals>.Numberéd   éÈ   Nrå  r]   r]   r]   r^   ÚNumber²  r˜   r  c                   @   rp   )z+TestEnum.test_introspection.<locals>.StringÚsoftÚroughÚhardN)rl   rm   rn   ÚyarnÚropeÚwirer]   r]   r]   r^   ÚString·  ry   r¤  c                   @   r“   )z*TestEnum.test_introspection.<locals>.PlainÚwhiterr   N)rl   rm   rn   Úvanillaræ  r]   r]   r]   r^   ÚPlain½  r˜   r§  )
r   rˆ  ræ  r]  r!  r?  r   r¡  r¦  r'  )rf   r  r¤  r§  r]   r]   r^   Útest_introspection±  s   zTestEnum.test_introspectionc                 C   s4   G dd„ dt ƒ}G dd„ dt ƒ}|  t||j¡ d S )Nc                   @   r“   )z4TestEnum.test_wrong_enum_in_call.<locals>.Monochromer   rr   N©rl   rm   rn   rN  r¥  r]   r]   r]   r^   Ú
MonochromeÄ  r˜   rª  c                   @   r“   )z0TestEnum.test_wrong_enum_in_call.<locals>.Genderr   rr   N©rl   rm   rn   ÚmaleÚfemaler]   r]   r]   r^   ÚGenderÇ  r˜   r®  )r   r¨  r²   r¬  ©rf   rª  r®  r]   r]   r^   Útest_wrong_enum_in_callÃ  ó   z TestEnum.test_wrong_enum_in_callc                 C   s4   G dd„ dt ƒ}G dd„ dtƒ}|  t||j¡ d S )Nc                   @   r“   )z:TestEnum.test_wrong_enum_in_mixed_call.<locals>.Monochromer   rr   Nr©  r]   r]   r]   r^   rª  Í  r˜   rª  c                   @   r“   )z6TestEnum.test_wrong_enum_in_mixed_call.<locals>.Genderr   rr   Nr«  r]   r]   r]   r^   r®  Ð  r˜   r®  )r   r   r¨  r²   r¬  r¯  r]   r]   r^   Útest_wrong_enum_in_mixed_callÌ  r±  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                   @   r“   )z6TestEnum.test_mixed_enum_in_call_1.<locals>.Monochromer   rr   Nr©  r]   r]   r]   r^   rª  Ö  r˜   rª  c                   @   r“   )z2TestEnum.test_mixed_enum_in_call_1.<locals>.Genderr   rr   Nr«  r]   r]   r]   r^   r®  Ù  r˜   r®  )r   rˆ  r­  r¥  r¯  r]   r]   r^   Útest_mixed_enum_in_call_1Õ  ó   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                   @   r“   )z6TestEnum.test_mixed_enum_in_call_2.<locals>.Monochromer   rr   Nr©  r]   r]   r]   r^   rª  ß  r˜   rª  c                   @   r“   )z2TestEnum.test_mixed_enum_in_call_2.<locals>.Genderr   rr   Nr«  r]   r]   r]   r^   r®  â  r˜   r®  )r   r   rˆ  r¬  rN  r¯  r]   r]   r^   Útest_mixed_enum_in_call_2Þ  r´  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                   @   r›   )z*TestEnum.test_flufl_enum.<locals>.Fluflnumc                 S   rÁ  rÉ   )r!  r
  rž   r]   r]   r^   Ú__int__é  rÒ   z2TestEnum.test_flufl_enum.<locals>.Fluflnum.__int__N)rl   rm   rn   r¶  r]   r]   r]   r^   ÚFluflnumè  r¡   r·  c                   @   rp   )z0TestEnum.test_flufl_enum.<locals>.MailManOptionsrr   rs   rt   N)rl   rm   rn   Úoption1Úoption2Úoption3r]   r]   r]   r^   ÚMailManOptionsë  ry   r»  rr   )r   r	  r!  r¸  )rf   r·  r»  r]   r]   r^   Útest_flufl_enumç  s   zTestEnum.test_flufl_enumc                 C   s2   G dd„ dt ƒ}|  t|d¡ |  t|jd¡ d S )Nc                   @   rp   )z0TestEnum.test_no_such_enum_member.<locals>.Colorrr   rs   rt   Nr…  r]   r]   r]   r^   rÜ   ò  ry   rÜ   r~   Ú
chartreuse)r   r¨  r²   ÚKeyErrorÚ__getitem__rß   r]   r]   r^   Ú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>.Colorrr   rs   rt   c                 S   rŽ  )Nz!don't you just love shades of %s?rò  rž   r]   r]   r^   Ú__repr__þ  rÒ   z.TestEnum.test_new_repr.<locals>.Color.__repr__N)rl   rm   rn   rÙ   rÚ   rÛ   rÁ  r]   r]   r]   r^   rÜ   ú  ó
    rÜ   z#don't you just love shades of blue?)r   r	  rŒ  rÛ   rß   r]   r]   r^   Ú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                   @   r›   )z,TestEnum.test_inherited_repr.<locals>.MyEnumc                 S   rŽ  )NzMy name is %s.rò  rž   r]   r]   r^   rÁ    rÒ   z5TestEnum.test_inherited_repr.<locals>.MyEnum.__repr__N)rl   rm   rn   rÁ  r]   r]   r]   r^   ÚMyEnum  r¡   rÄ  c                   @   rp   )z/TestEnum.test_inherited_repr.<locals>.MyIntEnumrr   rs   rt   N)rl   rm   rn   r}  r{  Útheotherr]   r]   r]   r^   Ú	MyIntEnum	  ry   rÆ  zMy name is that.)r   r!  r	  rŒ  r{  )rf   rÄ  rÆ  r]   r]   r^   Ú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ƒr$|jD ]}|| ||< qdd„ | ¡ D ƒ}ng }| ¡ D ]\}}t |¡r8| |¡ |||< q*|   ||i ¡}d}	|D ]}|| ||< qH|jD ]}|| }|dkra|	}n|}	|	d7 }	|||< qT| ¡ D ]\}}||jvr||vr|||< qptˆ| ƒ 	| |||¡S )NÚ_member_namesc                 S   s   g | ]	}t  |¡r|‘qS r]   )rV   r›  )rÜ  r  r]   r]   r^   rÞ    s    zOTestEnum.test_multiple_mixin_mro.<locals>.auto_enum.__new__.<locals>.<listcomp>r   r]   rr   )
Ú__prepare__r¯  rÈ  Úkeysr  rV   r›  r±   rd   r(  )
Úmetaclsr,  ÚbasesÚ	classdictÚoriginal_dictÚ	temp_dictr  Úsundersr  rŽ  )rk   Ú	auto_enumr]   r^   r(    s:   






€
ÿz;TestEnum.test_multiple_mixin_mro.<locals>.auto_enum.__new__)rl   rm   rn   r(  ro   r]   ©rÑ  rj   r^   rÑ    ó    rÑ  ÚAutoNumberedEnumÚAutoIntEnum)r   r   r   )rf   rÔ  rÕ  r]   rÒ  r^   Ú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 s5w   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 )Nrr   r   )rú  )rg   r]   r]   r^   ÚidentityN  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>.JSONEnumMetaNr]   c                 S   s   i S rÉ   r]   )rË  r,  rÌ  Úinitr·   Úsettingsr]   r]   r^   rÉ  W  ó   z@TestEnum.test_meta_reconfigure.<locals>.JSONEnumMeta.__prepare__c                    s   t ˆ | ƒj|Ž  d S rÉ   )rd   re   )r,  rg   rh   )ÚJSONEnumMetark   r]   r^   re   [  rá   z=TestEnum.test_meta_reconfigure.<locals>.JSONEnumMeta.__init__c              	      sà  dd l }g }ˆ d ur²d|vrtdƒ‚d|vrtdƒ‚d|vr"tdƒ‚| d¡}	t|	ttfƒs1|	f}	| d¡}
| d¡}t|ƒ}| |¡}W d   ƒ n1 sOw   Y  |D ][}g }||	d  }|	dd … D ]}|| }qft|
 	¡ ƒD ]0\}\}}t|ttfƒsƒ|f}||d  }|dd … D ]}|| }q|d urž||ƒ}| 
|¡ qst|ƒ}| 
|ˆ|Ž f¡ qVtˆ| ƒ |||||¡}t| 	¡ ƒ}|jd	d
„ d |D ]\}}|||< qÎ|D ]\}}|||< qÙtˆ| ƒ | ||||||¡S )Nr   Ú_filez_file is requiredÚ_namez_name is requiredÚ_valuez_value is requiredrr   c                 S   s    | d d dkrd| fS d| fS )Nr   r–  rr   r]   )rn  r]   r]   r^   rø  …  s     zNTestEnum.test_meta_reconfigure.<locals>.JSONEnumMeta.__new__.<locals>.<lambda>)Úkey)Újsonrê   ÚpoprP  Útuplerû  rX  ÚloadÚsortedr  r±   rd   rÉ  Úsortr(  )rË  r,  rÌ  ÚclsdictrØ  r·   rÙ  rà  ÚmembersÚ	name_specÚ
value_specÚfileÚfÚ	json_dataÚdatar—  ró  ÚpieceÚorderÚ
value_pathÚfuncr
  Ú	enum_dictr  )ÚJSONEnumrÛ  rk   r×  r]   r^   r(  ^  sV   



ÿ


ÿ

z<TestEnum.test_meta_reconfigure.<locals>.JSONEnumMeta.__new__)NNr]   )rl   rm   rn   ÚclassmethodrÉ  re   r(  ro   r]   )ró  rÛ  r×  rj   r^   rÛ  U  s
    rÛ  Ú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)r÷  Nzcountry-codec                 S   s   t | ƒS rÉ   )r!  )r#  r]   r]   r^   rø  ž  rù  z8TestEnum.test_meta_reconfigure.<locals>.Country.<lambda>©ró  N)Únotesr  c                 S   s   |   ¡ S rÉ   )Útitle)r  r]   r]   r^   rø     rù  )rr   rs   rt   r~   N)rl   rm   rn   r  rÜ  rÝ  rÞ  r]   )Ú	test_filer]   r^   ÚCountry˜  s    


ürü  ÚAFéø   ÚAlbaniaÚScarce)r   r   ÚosÚpathr³   ÚtempdirrX  Úwriter	  rý  ÚAXÚALÚDZrû  Úabbrr@  Úcountry_namer  )rf   rë  rü  r]   )ró  rÛ  r×  rû  r^   Útest_meta_reconfigureL  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                       óH   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   óP   |}t |ƒdk rtdƒ‚|d |dd … }}tj| g|¢R Ž }||_||_|S ©Nrr   ú name and value must be specifiedr   ©rú  rê   r!  r(  Ú_intnameÚ_args©r,  rg   r  ró  rf   r]   r]   r^   r(  ­  ó   zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__new__c                 S   ó   | j S rÉ   )r  rž   r]   r]   r^   Ú__getnewargs__¶  ó   zITestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__getnewargs__c                 S   r  rÉ   ©r  rž   r]   r]   r^   rl   ¸  ó   zCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__name__c                 S   ó   dt | ƒj| jt | ¡f S ©Nz
%s(%r, %s)©rl  rl   r!  rÁ  rž   r]   r]   r^   rÁ  »  ó   
þzCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__repr__c                 S   ó&   t }|j}|jtu r| | ¡S || ƒS rÉ   ©r!  rP  Ú__objclass__r'  rÁ  ©rf   ÚbaseÚbase_strr]   r]   r^   rP  À  ó
   

zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__str__c                    ó>   t | ƒt |ƒ }t| ˆ ƒrt|ˆ ƒrˆ d| j|jf |ƒS |S ©Nz	(%s + %s)©r!  rP  rl   ©rf   ÚotherÚtemp©r  r]   r^   Ú__add__É  ó   þzBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__add__N)	rl   rm   rn   r(  r  rõ  rÁ  rP  r,  r]   r+  r]   r^   r  «  ó    	
	r  c                   @   ó   e Zd ZdZdZdZdS )z5TestEnum.test_subclasses_with_getnewargs.<locals>.NEIÚNEI©zthe-xrr   ©zthe-yrs   N©rl   rm   rn   ÚxÚyr]   r]   r]   r^   r0  Ò  ry   r0  úNamedInt('(the-x + the-y)', 3)rÏ  r   rs   ©r!  r   rˆ  r(  r	  rŒ  r4  r5  r>  r¼   r
  ©rf   r0  ÚNI5r]   r+  r^   Útest_subclasses_with_getnewargsª  s   '


z(TestEnum.test_subclasses_with_getnewargsc                    óª   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                       r  )z6TestEnum.test_subclasses_with_reduce.<locals>.NamedIntr  c                 W   r  r  r  r  r]   r]   r^   r(  ä  r  z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__new__c                 S   ó   | j | jfS rÉ   ©rk   r  rž   r]   r]   r^   Ú
__reduce__í  ó   zATestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__reduce__c                 S   r  rÉ   r  rž   r]   r]   r^   rl   ï  r  z?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__name__c                 S   r  r  r  rž   r]   r]   r^   rÁ  ò  r  z?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__repr__c                 S   r  rÉ   r  r!  r]   r]   r^   rP  ÷  r$  z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__str__c                    r%  r&  r'  r(  r+  r]   r^   r,   	  r-  z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__add__N)	rl   rm   rn   r(  r>  rõ  rÁ  rP  r,  r]   r+  r]   r^   r  â  r.  r  c                   @   r/  )z1TestEnum.test_subclasses_with_reduce.<locals>.NEIr0  r1  r2  Nr3  r]   r]   r]   r^   r0  		  ry   r0  r6  rÏ  r   rs   r7  r8  r]   r+  r^   Útest_subclasses_with_reduceá  ó   '


z$TestEnum.test_subclasses_with_reducec                    r;  )	Nc                       r  )z9TestEnum.test_subclasses_with_reduce_ex.<locals>.NamedIntr  c                 W   r  r  r  r  r]   r]   r^   r(  	  r  zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__new__c                 S   r<  rÉ   r=  ©rf   r:  r]   r]   r^   r9  %	  r?  zGTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__reduce_ex__c                 S   r  rÉ   r  rž   r]   r]   r^   rl   '	  r  zBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__name__c                 S   r  r  r  rž   r]   r]   r^   rÁ  *	  r  zBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__repr__c                 S   r  rÉ   r  r!  r]   r]   r^   rP  /	  r$  zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__str__c                    r%  r&  r'  r(  r+  r]   r^   r,  8	  r-  zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__add__N)	rl   rm   rn   r(  r9  rõ  rÁ  rP  r,  r]   r+  r]   r^   r  	  r.  r  c                   @   r/  )z4TestEnum.test_subclasses_with_reduce_ex.<locals>.NEIr0  r1  r2  Nr3  r]   r]   r]   r^   r0  A	  ry   r0  r6  rÏ  r   rs   r7  r8  r]   r+  r^   Útest_subclasses_with_reduce_ex	  rA  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                       ó@   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>.NamedIntr  c                 W   óP   |}|d |dd … }}t |ƒdkrtdƒ‚tj| g|¢R Ž }||_||_|S ©Nr   rr   r  r  r  r]   r]   r^   r(  T	  ó   zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__new__c                 S   r  rÉ   r  rž   r]   r]   r^   rl   ]	  r  zQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__name__c                 S   r  r  r  rž   r]   r]   r^   rÁ  `	  r  zQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__repr__c                 S   r  rÉ   r  r!  r]   r]   r^   rP  e	  r$  zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__str__c                    r%  r&  r'  r(  r+  r]   r^   r,  n	  r-  zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__add__N©rl   rm   rn   r(  rõ  rÁ  rP  r,  r]   r+  r]   r^   r  R	  ó    	
	r  c                   @   r/  )zCTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NEIr0  r1  r2  Nr3  r]   r]   r]   r^   r0  w	  ry   r0  r6  rÏ  r   rs   )r!  r   rˆ  r(  r	  rŒ  r4  r5  r>  r
  r¿   r¨  rê   r;   r8  r]   r+  r^   Ú-test_subclasses_without_direct_pickle_supportQ	  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                       rD  )zSTestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedIntr  c                 W   rE  rF  r  r  r]   r]   r^   r(  ‰	  rG  z[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__new__c                 S   r  rÉ   r  rž   r]   r]   r^   rl   ’	  r  z\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__name__c                 S   r  r  r  rž   r]   r]   r^   rÁ  •	  r  z\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__repr__c                 S   r  rÉ   r  r!  r]   r]   r^   rP  š	  r$  z[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__str__c                    r%  r&  r'  r(  r+  r]   r^   r,  £	  r-  z[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__add__NrH  r]   r+  r]   r^   r  ‡	  rI  r  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>.NEIr0  r1  r2  c                 S   s   t | j| jffS rÉ   )rc   rk   Ú_name_rB  r]   r]   r^   r9  °	  r6  z\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEI.__reduce_ex__N)rl   rm   rn   r4  r5  r9  r]   r]   r]   r^   r0  ¬	  rÂ  r0  r6  rÏ  r   rs   )r!  r   rˆ  r(  r	  rŒ  r4  r5  r>  r
  r¼   r8  r]   r+  r^   Ú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)rr   zfor the money)rs   zfor the show©rt   zfor the musicN)rl   rm   rn   r£  r¦  rw  r]   r]   r]   r^   rM  ¾	  rÝ   rM  rN  )râ  r   rˆ  rl  r£  rP  r¦  r	  rw  r>  r¼   )rf   rM  r]   r]   r^   Ú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r>|  ttt	|ƒƒg d¢¡ d S d S )Nc                   @   rÖ  )zCTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber2c                 S   s"   t | jƒd }t | ¡}||_|S rƒ  ©rú  rW  r'  r(  r)  ©r,  r
  r¾   r]   r]   r^   r(  Û	  s   
zKTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber2.__new__c                 S   rÁ  rÉ   )r!  r)  rž   r]   r]   r^   r¶  à	  rÒ   zKTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber2.__int__N)rl   rm   rn   r(  r¶  r]   r]   r]   r^   ÚAutoNumber2Ú	  s    rR  c                   @   ó   e Zd ZdZdZdZdZdS )z=TestEnum.test_inherited_new_from_enhanced_enum.<locals>.ColorrÖ   r]   N©rl   rm   rn   re  rÙ   rÚ   rÛ   r]   r]   r]   r^   rÜ   â	  rÝ   rÜ   rt   ú+wrong number of elements: %d (should be %d)rÊ  )
r   r	  rú  rû  rÙ   rÚ   rÛ   r.   Úmapr!  )rf   rR  rÜ   r]   r]   r^   Ú%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                   @   r›   )z@TestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumber3c                 S   s$   t | jƒd }t | |¡}||_|S )Né   )rú  rW  r!  r(  r)  rQ  r]   r]   r^   r(  î	  s   zHTestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumber3.__new__Nr_  r]   r]   r]   r^   ÚAutoNumber3í	  r¡   rY  c                   @   rS  )z:TestEnum.test_inherited_new_from_mixed_enum.<locals>.ColorrÖ   r]   NrT  r]   r]   r]   r^   rÜ   ó	  rÝ   rÜ   rt   rU  é   )r   r	  rú  rÙ   rÚ   rÛ   )rf   rY  rÜ   r]   r]   r^   Ú"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                   @   r›   )z+TestEnum.test_equality.<locals>.AlwaysEqualc                 S   rÝ  )NTr]   ©rf   r)  r]   r]   r^   Ú__eq__ 
  r­  z2TestEnum.test_equality.<locals>.AlwaysEqual.__eq__N)rl   rm   rn   r]  r]   r]   r]   r^   ÚAlwaysEqualÿ	  r¡   r^  c                   @   r  )z,TestEnum.test_equality.<locals>.OrdinaryEnumrr   N)rl   rm   rn   rŽ  r]   r]   r]   r^   ÚOrdinaryEnum
  r  r_  )r   r	  rŽ  )rf   r^  r_  r]   r]   r^   Ú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                   @   r…   )z*TestEnum.test_ordered_mixin.<locals>.Gradez	A B C D Fr   r~   rt   rs   rr   N)	rl   rm   rn   re  r  r  r  r  r  r]   r]   r]   r^   ÚGrade
  r‰   ra  )	r   r	  rû  r  r  r  r  r  rˆ  )rf   ra  r]   r]   r^   Útest_ordered_mixin
  s   $zTestEnum.test_ordered_mixinc                 C   óŠ   G dd„ dt ƒ}|  |j|dƒ¡ |  t¡ |j W d   ƒ n1 s$w   Y  |  t¡ |d  W d   ƒ d S 1 s>w   Y  d S )Nc                   @   ó$   e Zd ZdZdZdZedd„ ƒZdS )z/TestEnum.test_missing_deprecated.<locals>.Labelr   rr   rs   c                 S   r  rÉ   ©ÚAnyApple©r,  ró  r]   r]   r^   Ú	_missing_
  r  z9TestEnum.test_missing_deprecated.<locals>.Label._missing_N)rl   rm   rn   rf  ÚRedAppleÚ
GreenApplerô  rh  r]   r]   r]   r^   ÚLabel
  ó    rk  r~   Úredapple©r   r	  rf  r¨  rë  rm  r¾  ©rf   rk  r]   r]   r^   Útest_missing_deprecated
  ó   ÿ
"ÿz TestEnum.test_missing_deprecatedc                 C   rc  )Nc                   @   rd  )z$TestEnum.test_missing.<locals>.Labelr   rr   rs   c                 S   r  rÉ   re  ©r,  r
  r]   r]   r^   Ú_missing_value_)
  r  z4TestEnum.test_missing.<locals>.Label._missing_value_N©rl   rm   rn   rf  ri  rj  rô  rs  r]   r]   r]   r^   rk  %
  rl  rk  r~   rm  rn  ro  r]   r]   r^   Útest_missing$
  rq  zTestEnum.test_missingc                 C   s€   G dd„ dt ƒ}|d  |  t¡ |j W d   ƒ n1 sw   Y  |  t¡ |dƒ W d   ƒ d S 1 s9w   Y  d S )Nc                   @   ó    e Zd ZdZdZedd„ ƒZdS )z)TestEnum.test_missing_name.<locals>.Labelrr   rs   c                 S   s(   | D ]}|j  ¡ | ¡ kr|  S qd S rÉ   ©ró  Úlower)r,  ró  r%   r]   r]   r^   Ú_missing_name_7
  s
   ÿÿz8TestEnum.test_missing_name.<locals>.Label._missing_name_N©rl   rm   rn   ri  rj  rô  ry  r]   r]   r]   r^   rk  4
  ó
    rk  rm  )r   r¨  rë  rm  r²   ro  r]   r]   r^   Útest_missing_name3
  s   	ÿ
"ÿzTestEnum.test_missing_namec                 C   sZ   G dd„ dt ƒ}|  |j|dƒ¡ |  t¡ |d  W d   ƒ d S 1 s&w   Y  d S )Nc                   @   rd  )z4TestEnum.test_missing_value_bad_input.<locals>.Labelr   rr   rs   c                 S   r  rÉ   re  rr  r]   r]   r^   rs  H
  r  zDTestEnum.test_missing_value_bad_input.<locals>.Label._missing_value_Nrt  r]   r]   r]   r^   rk  D
  rl  rk  r~   T)r   r	  rf  r¨  r¾  ro  r]   r]   r^   Útest_missing_value_bad_inputC
  s
   
"ÿz%TestEnum.test_missing_value_bad_inputc                 C   sª   G dd„ dt ƒ}|  t¡ |j W d   ƒ n1 sw   Y  |  t¡ |dƒ W d   ƒ n1 s4w   Y  |  t¡ |d  W d   ƒ d S 1 sNw   Y  d S )Nc                   @   rv  )z4TestEnum.test_missing_name_bad_return.<locals>.Labelrr   rs   c                 S   r«  rÉ   r]   rg  r]   r]   r^   ry  T
  rÚ  zCTestEnum.test_missing_name_bad_return.<locals>.Label._missing_name_Nrz  r]   r]   r]   r^   rk  Q
  r{  rk  rm  )r   r¨  rë  rm  r²   r¾  ro  r]   r]   r^   Útest_missing_name_bad_returnP
  s   ÿ
ÿ
"ÿz%TestEnum.test_missing_name_bad_returnc                 C   r„  )Nc                  S   s4   G dd„ dt ƒ} G dd„ d| ƒ}G dd„ d|ƒ}d S )Nc                   @   r›   )z>TestEnum.test_extending2.<locals>.bad_extension.<locals>.Shadec                 S   s   t | jƒ d S rÉ   )rÓ  ró  rž   r]   r]   r^   Úshadeb
  s   zDTestEnum.test_extending2.<locals>.bad_extension.<locals>.Shade.shadeN©rl   rm   rn   r  r]   r]   r]   r^   ÚShadea
  r¡   r  c                   @   rp   )z>TestEnum.test_extending2.<locals>.bad_extension.<locals>.Colorrr   rs   rt   Nr…  r]   r]   r]   r^   rÜ   d
  ry   rÜ   c                   @   rp   )zBTestEnum.test_extending2.<locals>.bad_extension.<locals>.MoreColorr~   r   ra  Nr†  r]   r]   r]   r^   r‰  h
  ry   r‰  rÞ   )r  rÜ   r‰  r]   r]   r^   rŠ  `
  s   z/TestEnum.test_extending2.<locals>.bad_extensionrÐ  rŒ  r]   r]   r^   Ú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                   @   r›   )z'TestEnum.test_extending3.<locals>.Shadec                 S   r  rÉ   rò  rž   r]   r]   r^   r  p
  r  z-TestEnum.test_extending3.<locals>.Shade.shadeNr€  r]   r]   r]   r^   r  o
  r¡   r  c                   @   r›   )z'TestEnum.test_extending3.<locals>.Colorc                 S   rŽ  )Nz%s hexlified!rÚ  rž   r]   r]   r^   r+  s
  rÒ   z+TestEnum.test_extending3.<locals>.Color.hexN)rl   rm   rn   r+  r]   r]   r]   r^   rÜ   r
  r¡   rÜ   c                   @   rp   )z+TestEnum.test_extending3.<locals>.MoreColorr~   r   ra  Nr†  r]   r]   r]   r^   r‰  u
  ry   r‰  z5 hexlified!)r   r	  r‡  r+  )rf   r  rÜ   r‰  r]   r]   r^   Útest_extending3n
  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                   @   r|   )z'TestEnum.test_extending5.<locals>.Colorzred green blue valuerr   rs   rt   r~   N)rl   rm   rn   rØ   rÙ   rÚ   rÛ   r
  r]   r]   r]   r^   rÜ   |
  r„   rÜ   r
  r~   rr   )	r   r	  rû  rÙ   rÚ   rÛ   r
  ró  rˆ  rß   r]   r]   r^   Ú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   r„  )Nc                  S   s$   G dd„ dt ƒ} G dd„ dt ƒ}d S )Nc                   @   rp   )zCTestEnum.test_no_duplicates.<locals>.bad_duplicates.<locals>.Color1rr   rs   rt   Nr…  r]   r]   r]   r^   ÚColor1‘
  ry   r‹  c                   @   ó   e Zd ZdZdZdZdZdS )zCTestEnum.test_no_duplicates.<locals>.bad_duplicates.<locals>.Color2rr   rs   rt   N)rl   rm   rn   rÙ   rÚ   rÛ   Úgrener]   r]   r]   r^   ÚColor2•
  rÝ   rŽ  )r   )r‹  rŽ  r]   r]   r^   Úbad_duplicates
  r‹  z3TestEnum.test_no_duplicates.<locals>.bad_duplicatesr¿  )rf   r  r]   r]   r^   Ú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                   @   rp   )z0TestEnum.test_no_duplicates_kinda.<locals>.Sillyrr   r—  rt   N©rl   rm   rn   ræ  rç  ró  r]   r]   r]   r^   ÚSilly
  ry   r’  c                   @   rÕ   )z2TestEnum.test_no_duplicates_kinda.<locals>.Sillierrr   rs   rt   r~   N©rl   rm   rn   Úsingleró  Útripler
  r]   r]   r]   r^   ÚSillier¡
  rÝ   r–  )r   r   ©rf   r’  r–  r]   r]   r^   Útest_no_duplicates_kindaœ
  s   z!TestEnum.test_no_duplicates_kindac                 C   ó:   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)rf   r§  r¨  r]   r]   r^   re   ±
  s   
z+TestEnum.test_init.<locals>.Planet.__init__c                 S   ó   d}|| j  | j| j  S ©NçyÐ´WÒ=r¦  ©rf   ÚGr]   r]   r^   Úsurface_gravity´
  ó   z2TestEnum.test_init.<locals>.Planet.surface_gravityN)rl   rm   rn   ÚMERCURYÚVENUSÚEARTHÚMARSÚJUPITERÚSATURNÚURANUSÚNEPTUNEre   rõ  r®  r]   r]   r]   r^   ÚPlanet¨
  s    r¸  rs   çš™™™™™#@r   ©r   r	  Úroundr²  r®  r
  ©rf   r¸  r]   r]   r^   Ú	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                   @   ó$   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ú  rW  r?  r(  Ú_countr)  ©r,  rg   rh   Úcountr¾   r]   r]   r^   r(  ¿
  s
   
zITestEnum.test_init_and_shadowing_attribute.<locals>.SelectionEnum.__new__c                 _   ó
   | f| S rÉ   r]   ©ró  r·   rÂ  r—  rg   rh   r]   r]   r^   Ú_generate_next_value_Å
  rñ  zWTestEnum.test_init_and_shadowing_attribute.<locals>.SelectionEnum._generate_next_value_N©rl   rm   rn   r  r(  ÚstaticmethodrÅ  r]   r]   r]   r^   ÚSelectionEnum½
  ó
    rÈ  c                   @   rp   )zDTestEnum.test_init_and_shadowing_attribute.<locals>.DeviceTypeSourcezuser systemúUser controlledúSystem controlledN)rl   rm   rn   rØ   ÚuserÚsystemr]   r]   r]   r^   ÚDeviceTypeSourceÈ
  ry   rÎ  rÍ  rË  rÌ  rÊ  )r?  r   r	  rÍ  ÚdbrÌ  )rf   rÈ  rÎ  r]   r]   r^   Ú!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                   @   r›   )z6TestEnum.test_nonhash_value.<locals>.AutoNumberInAListc                 S   s$   t | jƒd g}t | ¡}||_|S rƒ  rP  rQ  r]   r]   r^   r(  Ó
  s   
z>TestEnum.test_nonhash_value.<locals>.AutoNumberInAList.__new__Nr_  r]   r]   r]   r^   ÚAutoNumberInAListÒ
  r¡   rÑ  c                   @   rS  )z1TestEnum.test_nonhash_value.<locals>.ColorInAListrÖ   r]   NrT  r]   r]   r]   r^   ÚColorInAListØ
  rÝ   rÒ  rr   )r   r	  rû  rÙ   rÚ   rÛ   r
  )rf   rÑ  rÒ  r]   r]   r^   Ú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 FOURrr   N)rl   rm   rn   rØ   r"   r  r  r  ÚUNOÚDOSÚTRESÚFOURr]   r]   r]   r^   ÚConfusedâ
  s    
rØ  rs   rt   r~   )r   r	  rû  r  r  r  r×  r,  rÕ  r)  rÖ  ©rf   rØ  r]   r]   r^   Ú#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                   @   r›   )zHTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnumc                 W   s$   |\}}t  | |¡}||_||_|S rÉ   )r!  r(  Úlabelr)  )r,  rg   r
  rÛ  r¾   r]   r]   r^   r(  ó
  ó
   zPTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnum.__new__Nr_  r]   r]   r]   r^   ÚLabelledIntEnumò
  r¡   rÝ  c                   @   r“   )zETestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledList)rr   ÚUnprocessed)rs   zPayment CompleteN)rl   rm   rn   ÚunprocessedÚpayment_completer]   r]   r]   r^   ÚLabelledListú
  r˜   rá  rr   )r!  r   r	  rß  rû  rà  )rf   rÝ  rá  r]   r]   r^   Ú&test_conflicting_types_resolved_in_newñ
  s
   z/TestEnum.test_conflicting_types_resolved_in_newc                 C   ó`   G dd„ dt ƒ}|  t|ƒ|j|j|jg¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   rþ   )z(TestEnum.test_auto_number.<locals>.Colorúred blue greenN©rl   rm   rn   rØ   r"   rÙ   rÛ   rÚ   r]   r]   r]   r^   rÜ     r  rÜ   rr   rs   rt   ©r   r	  rû  rÙ   rÛ   rÚ   r
  rß   r]   r]   r^   Útest_auto_number  ó
   zTestEnum.test_auto_numberc                 C   rã  )Nc                   @   r#  )z&TestEnum.test_auto_name.<locals>.Colorrä  c                 S   ó   | S rÉ   r]   ©ró  r·   rÂ  Úlastr]   r]   r^   rÅ    r­  z<TestEnum.test_auto_name.<locals>.Color._generate_next_value_N)	rl   rm   rn   rØ   rÅ  r"   rÙ   rÛ   rÚ   r]   r]   r]   r^   rÜ     s    
rÜ   rÙ   rÛ   rÚ   ræ  rß   r]   r]   r^   Ú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                   @   r›   )z5TestEnum.test_auto_name_inherit.<locals>.AutoNameEnumc                 S   ré  rÉ   r]   rê  r]   r]   r^   rÅ    r­  zKTestEnum.test_auto_name_inherit.<locals>.AutoNameEnum._generate_next_value_N©rl   rm   rn   rÅ  r]   r]   r]   r^   ÚAutoNameEnum  r¡   rî  c                   @   rþ   )z.TestEnum.test_auto_name_inherit.<locals>.Colorrä  Nrå  r]   r]   r]   r^   rÜ      r  rÜ   rÙ   rÛ   rÚ   ræ  )rf   rî  rÜ   r]   r]   r^   Útest_auto_name_inherit  s   zTestEnum.test_auto_name_inheritc                 C   s$   G dd„ dt ƒ}|  |jjd¡ d S )Nc                   @   ó   e Zd ZdZdZeƒ ZdS )z)TestEnum.test_auto_garbage.<locals>.Colorúred bluerÙ   N©rl   rm   rn   rØ   rÙ   r"   rÛ   r]   r]   r]   r^   rÜ   ,  ó    
rÜ   rr   )r   r	  rÛ   r
  rß   r]   r]   r^   Útest_auto_garbage+  r‹  zTestEnum.test_auto_garbagec                 C   rã  )Nc                   @   s   e Zd ZdZdZdZeƒ ZdS )z3TestEnum.test_auto_garbage_corrected.<locals>.Colorrä  rÙ   rs   N)rl   rm   rn   rØ   rÙ   rÛ   r"   rÚ   r]   r]   r]   r^   rÜ   3  s
    
rÜ   rÙ   rs   rt   ræ  rß   r]   r]   r^   Útest_auto_garbage_corrected2  rè  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©rl   rm   rn   rØ   r"   r  r  r  r]   r]   r]   r^   Ú	MoreDupes@  r  rø  c                 S   rÙ  r]   rÚ  rÛ  r]   r]   r^   rÞ  F  rß  z0TestEnum.test_duplicate_auto.<locals>.<listcomp>)rr   )rr   rs   c                   @   ó&   e Zd ZdZeƒ  ZZeƒ Zeƒ ZdS )z+TestEnum.test_duplicate_auto.<locals>.Dupesrs  N©	rl   rm   rn   rØ   r"   r£  Úprimeror¦  rw  r]   r]   r]   r^   ÚDupesH  ó
    

rü  )	r   r	  rû  r  r  r  r£  r¦  rw  )rf   rø  rü  r]   r]   r^   Útest_duplicate_auto>  s
    zTestEnum.test_duplicate_autoc                 C   ó¼   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                   @   r¾  )z9TestEnum.test_auto_value_with_auto.<locals>.SelectionEnumr¿  c                 _   s0   t | jƒ}t | ¡}||_||_|\|_|_|S rÉ   )rú  rW  r'  r(  rÀ  r)  rÏ  rÌ  rÁ  r]   r]   r^   r(  S  s   

zATestEnum.test_auto_value_with_auto.<locals>.SelectionEnum.__new__c                 _   rÃ  rÉ   r]   rÄ  r]   r]   r^   rÅ  Z  rñ  zOTestEnum.test_auto_value_with_auto.<locals>.SelectionEnum._generate_next_value_NrÆ  r]   r]   r]   r^   rÈ  Q  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)rl   rm   rn   rØ   r"   r}  r{  r]   r]   r]   r^   ÚTest^  s    r  r}  ©r}  r~  r~  r{  ©r{  r|  r|  ©	r   r	  rû  r}  r{  ró  r
  rÏ  rÌ  ©rf   rÈ  r  r]   r]   r^   Útest_auto_value_with_autoO  s   z"TestEnum.test_auto_value_with_autoc                 C   rÿ  )Nc                   @   r¾  )z>TestEnum.test_auto_value_with_autovalue.<locals>.SelectionEnumr¿  c                 _   s$   t | jƒ}t | ¡}||_||_|S rÉ   )rú  rW  r'  r(  rÀ  r)  rÁ  r]   r]   r^   r(  q  s
   

zFTestEnum.test_auto_value_with_autovalue.<locals>.SelectionEnum.__new__c                 _   rÃ  rÉ   r]   rÄ  r]   r]   r^   rÅ  w  rñ  zTTestEnum.test_auto_value_with_autovalue.<locals>.SelectionEnum._generate_next_value_NrÆ  r]   r]   r]   r^   rÈ  o  rÉ  rÈ  c                   @   rp   )z5TestEnum.test_auto_value_with_autovalue.<locals>.Testr   r~  r|  N)rl   rm   rn   rØ   r}  r{  r]   r]   r]   r^   r  {  ry   r  r}  r  r~  r{  r  r|  r  r  r]   r]   r^   Útest_auto_value_with_autovaluem  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¾   r]   r]   r^   r(    s
   
z1TestEnum.test_auto_and_kwds.<locals>.Item.__new__N©rl   rm   rn   rØ   r"   r  r  r(  r]   r]   r]   r^   ÚItem‹  s
    r  rr   r›  rÙ   Trs   rœ  F)r   r	  r  r
  r	  r
  r  ©rf   r  r]   r]   r^   Útest_auto_and_kwdsŠ  s   (,zTestEnum.test_auto_and_kwdsc                 C   s    t  di ¡}|  t|ƒd¡ d S )NÚFoor   )rV   r   r	  rú  )rf   Úemptyr]   r]   r^   Útest_empty_with_functional_api™  s   z'TestEnum.test_empty_with_functional_apic                 C   r™  )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   r©  rª  r¦  r¬  r]   r]   r^   r®  ¨  r¯  z7TestEnum.test_auto_init.<locals>.Planet.surface_gravityN)rl   rm   rn   r  r°  r±  r²  r³  r´  rµ  r¶  r·  rõ  r®  r]   r]   r]   r^   r¸  ž  s    r¸  rs   r¹  r   rº  r¼  r]   r]   r^   Ú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                   @   rÕ   )z1TestEnum.test_auto_init_with_value.<locals>.Colorz
value, rgb)rr   ©rr   r   r   )rs   ©r   rr   r   )rt   ©r   r   rr   N)rl   rm   rn   r  ÚREDÚBLUEÚGREENr]   r]   r]   r^   rÜ   ±  rÝ   rÜ   rr   rs   rt   r  r  r  )r   r	  r  r
  r  r  Úrgbrß   r]   r]   r^   Ú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>.Settingsrr   N)rl   rm   rn   r   Ú
_settings_rÙ   Úrojor]   r]   r]   r^   ÚSettings¾  ry   r  rr   )r   r…  rÙ   r  r¨  rê   )rf   r  r]   r]   r^   Ú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                   @   rÕ   )z*TestEnum.test_auto_and_init.<locals>.Fieldú
TYPE STARTúvalue __doc__úChar, Date, Logical, etc.úField offset in recordN)rl   rm   rn   rØ   r  ÚTYPEÚSTARTr]   r]   r]   r^   ÚFieldÆ  rÝ   r%  rr   rs   r!  r"  )r!  r   r	  r#  r$  rÍ   ©rf   r%  r]   r]   r^   Ú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                   @   r|   )z+TestEnum.test_auto_and_start.<locals>.Fieldr  r   r   r!  r"  N)rl   rm   rn   rØ   Ú_start_r  r#  r$  r]   r]   r]   r^   r%  Ñ  r„   r%  r   rr   r!  r"  )r   r	  r#  r$  rÍ   r&  r]   r]   r^   Ú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                   @   r…   )z:TestEnum.test_auto_and_init_and_some_values.<locals>.FieldúTYPE START BLAH BELCHr   r!  r"  ©r   ú	test blahú
test belchN©	rl   rm   rn   rØ   r  r#  r$  ÚBLAHÚBELCHr]   r]   r]   r^   r%  Ý  r‰   r%  rr   rs   r   ra  r!  r"  r,  r-  )r!  r   r	  r#  r$  r/  r0  rÍ   r&  r]   r]   r^   Ú"test_auto_and_init_and_some_valuesÜ  s   z+TestEnum.test_auto_and_init_and_some_valuesc                 C   óD   |   td¡ G dd„ dttƒ}W d   ƒ d S 1 sw   Y  d S )Nz8Field\.BLAH: number of fields provided do not match initc                   @   r…   )zFTestEnum.test_auto_and_init_w_value_and_too_many_values.<locals>.Fieldr*  r   )rr   r!  )rs   r"  )r   ra  r,  )r´  r-  Nr.  r]   r]   r]   r^   r%  ï  r‰   r%  )ra   rê   r!  r   r&  r]   r]   r^   Ú.test_auto_and_init_w_value_and_too_many_valuesí  ó   "ÿ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                   @   r…   )zBTestEnum.test_auto_and_init_and_some_complex_values.<locals>.Fieldr*  zvalue __doc__ help)r!  ú!fields composed of character data)r"  ú#where the data starts in the record)r   r,  ú	some help)r-  úsome more helpNr.  r]   r]   r]   r^   r%  ø  r‰   r%  rr   rs   r   ra  r!  r"  r,  r-  r5  r6  r7  r8  )	r!  r   r	  r#  r$  r/  r0  rÍ   Úhelpr&  r]   r]   r^   Ú*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                   @   r“   )z7TestEnum.test_auto_and_init_inherited.<locals>.AutoEnumr   r   N)rl   rm   rn   r(  r  r]   r]   r]   r^   ÚAutoEnum  r˜   r;  c                   @   r|   )z4TestEnum.test_auto_and_init_inherited.<locals>.Fieldr*  r!  r"  r+  r-  N)rl   rm   rn   rØ   r#  r$  r/  r0  r]   r]   r]   r^   r%    r„   r%  r   rr   r   ra  r!  r"  r,  r-  )r   r	  r#  r$  r/  r0  rÍ   )rf   r;  r%  r]   r]   r^   Útest_auto_and_init_inherited  s   z%TestEnum.test_auto_and_init_inheritedc                 C   r2  )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   r  rÉ   ©Úsequence©rÝ  r]   r]   r^   rø  $  ó    z<TestEnum.test_missing_value_error.<locals>.Combined.<lambda>c                 W   sH   t  | |¡}d|v r| dd¡\}}| d¡}n|}d }||_||_|S )Nú(rr   z ))r?  r(  rŠ  ÚstripÚfis_nameÚsegment)r,  r
  rg   r#   rD  rE  r]   r]   r^   r(  &  s   z;TestEnum.test_missing_value_error.<locals>.Combined.__new__c                 S   ó   d| j j| jf S ©Nú<%s.%s>©rk   rl   rK  rž   r]   r]   r^   rÁ  2  ó   z<TestEnum.test_missing_value_error.<locals>.Combined.__repr__)zAn$(1,2)r   )zAn$(3,2)rr   )zAn$(5,1)rs   )zBn$rt   N)rl   rm   rn   r  rØ   r(  rÁ  Úkey_typeÚ
company_idr@  r  r]   r]   r]   r^   ÚCombined!  s    rM  )ra   rê   r?  r   )rf   rM  r]   r]   r^   Útest_missing_value_error  r4  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 crs   N)	rl   rm   rn   rØ   rV   r"   rŽ  r¸  r#  r]   r]   r]   r^   r  <  s
    r  rr   rt   )rV   r   r	  rŽ  r#  rû  r
  r¸  )rf   r  r]   r]   r^   Útest_auto_and_enum;  s   zTestEnum.test_auto_and_enumc                 C   ó4   G dd„ dt ƒ}G dd„ d|ƒ}|  |jjd¡ d S )Nc                   @   r›   )z1TestEnum.test_multiple_arg_auto.<locals>.AutoNamec                 _   rÃ  rÉ   r]   ©ró  r·   rÂ  rë  rg   rh   r]   r]   r^   rÅ  H  rÒ   zGTestEnum.test_multiple_arg_auto.<locals>.AutoName._generate_next_value_Nrí  r]   r]   r]   r^   ÚAutoNameG  r¡   rR  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©rl   rm   rn   r  r"   r°  r±  r]   r]   r]   r^   r¸  K  s    
r¸  r°  ©r   r	  r°  r
  ©rf   rR  r¸  r]   r]   r^   Útest_multiple_arg_autoF  ó   zTestEnum.test_multiple_arg_autoc                 C   rP  )Nc                   @   r›   )z3TestEnum.test_auto_w_multiple_arg.<locals>.AutoNamec                 _   s   |r| f| S | S rÉ   r]   rQ  r]   r]   r^   rÅ  S  s   
zITestEnum.test_auto_w_multiple_arg.<locals>.AutoName._generate_next_value_Nrí  r]   r]   r]   r^   rR  R  r¡   rR  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>.PlanetrS  r›  rœ  rž  rŸ  NrT  r]   r]   r]   r^   r¸  Y  s    r¸  r°  rU  rV  r]   r]   r^   Útest_auto_w_multiple_argQ  s   z!TestEnum.test_auto_w_multiple_argc                 C   rP  )Nc                   @   r›   )z1TestEnum.test_auto_gnv_and_init.<locals>.AutoNamec                 _   rÃ  rÉ   r]   rQ  r]   r]   r^   rÅ  a  rÒ   zGTestEnum.test_auto_gnv_and_init.<locals>.AutoName._generate_next_value_Nrí  r]   r]   r]   r^   rR  `  r¡   rR  c                   @   rp   )z/TestEnum.test_auto_gnv_and_init.<locals>.PlanetrS  rš  r  N)rl   rm   rn   r  r°  r±  r]   r]   r]   r^   r¸  d  ry   r¸  r°  rU  rV  r]   r]   r^   Útest_auto_gnv_and_init_  rX  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                   @   ó$   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Ù   rr   rs   rt   ©rÚ   r~   r   ra  ©rÛ   r´  rú   r®  N©
rl   rm   rn   r  rØ   r$   r  rÙ   rÚ   rÛ   r]   r]   r]   r^   rÜ   €  r‰   rÜ   rÙ   rr   rs   rt   rÚ   r~   r   ra  rÛ   r´  rú   r®  )r   r	  rÙ   r
  r   ÚrÚgr¸  rÚ   rÛ   r,  rß   r]   r]   r^   Ú"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                   @   r[  )z9TestEnum.test_MultiValue_with_init_w_value.<locals>.Colorzvalue r g brÖ   r]  r^  r_  Nr`  r]   r]   r]   r^   rÜ   ¤  r‰   rÜ   rÙ   rr   rs   rt   rÚ   r~   r   ra  rÛ   r´  rú   r®  )
r   r	  rÙ   r
  ra  rb  r¸  rÚ   rÛ   r,  rß   r]   r]   r^   Ú!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                   @   r[  )zGTestEnum.test_MultiValue_with_init_wo_value_w_autonumber.<locals>.Colorr\  rÖ   )rÙ   rµ  r¯  ro  )rÚ   rs  é2   é<   )rÛ   éF   éP   éZ   Nr`  r]   r]   r]   r^   rÜ   Å  r‰   rÜ   rr   rÙ   rµ  r¯  ro  rs   rÚ   rs  re  rf  rt   rÛ   rg  rh  ri  )r   r	  rÙ   r
  r   ra  rb  r¸  rÚ   rÛ   r,  rß   r]   r]   r^   Ú/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 threer´  )Ú21ræ  )Ú22rç  )Ú23rC  N)rl   rm   rn   r$   r   r  rØ   r(  ræ  rç  rC  r]   r]   r]   r^   ÚDayì  s    ro  r´  rú   r®  rl  ræ  )r   r	  ræ  r
  rç  rC  )rf   ro  r]   r]   r^   Ú/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   ÚText0)éÎÿÿÿÚText1ÚText2ÚText3)éºÿÿÿÚText4ÚText5N)rl   rm   rn   r$   r   r  rØ   r  ÚBLACKr  r"   r  ÚYELLOWr  ÚMAGENTAr]   r]   r]   r^   rÜ   ú  s    

rÜ   rP   rr  iÏÿÿÿiÐÿÿÿrv  i»ÿÿÿrt  )	r   r	  ry  r
  r  r  rz  r  r{  rß   r]   r]   r^   Ú3test_multivalue_and_autonumber_wo_init_w_some_valueù  s   
z<TestEnum.test_multivalue_and_autonumber_wo_init_w_some_valuec                 C   sP   G dd„ dt ƒ}|  t¡ G dd„ d|ƒ}W d   ƒ d S 1 s!w   Y  d S )Nc                   @   s   e Zd ZeZdS )zBTestEnum.test_combine_new_settings_with_old_settings.<locals>.AutoN)rl   rm   rn   r   r  r]   r]   r]   r^   ÚAuto  r  r}  c                   @   s   e Zd Zeƒ Zeƒ ZdZdS )zHTestEnum.test_combine_new_settings_with_old_settings.<locals>.AutoUniquerr   N)rl   rm   rn   r"   r/  ÚBLUHÚICKr]   r]   r]   r^   Ú
AutoUnique  s    r€  )r   r¨  r²   )rf   r}  r€  r]   r]   r^   Ú+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 < q"e
dƒD ]Zed dfe	de < q3eZeZdS )z'TestEnum.test_timedelta.<locals>.Periodz3
            different lengths of time
            zvalue periodzPeriod ié   Údayzday_%dr€   r´  Úweekzweek_%drº  ro  r`  zmonth_%dN)rl   rm   rn   rÍ   r  r   r  Ú_ignore_ÚvarsrK  r­   rŽ  Úday_1ÚOneDayÚweek_1ÚOneWeekr]   r]   r]   r^   rK    s    rK  r…  rŽ  )r8   r   r…  r¯  rˆ  rP  r‡  rL  r]   r]   r^   Útest_timedelta  s
   zTestEnum.test_timedeltac                 C   ó(   G dd„ dt ƒ}|  |j|jd ¡ d S )Nc                   @   ó4   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                   @   r“   )z'TestEnum.test_skip.<locals>.enumA.enumBrŽ  r¸  N©rl   rm   rn   ÚelementAÚelementBr]   r]   r]   r^   ÚenumB.  ó    r‘  c                   @   r“   )z'TestEnum.test_skip.<locals>.enumA.enumCr#  rU  N©rl   rm   rn   ÚelementCÚelementDr]   r]   r]   r^   ÚenumC2  r’  r–  N)rl   rm   rn   r    r   r‘  r–  r]   r]   r]   r^   ÚenumA-  ó
    r—  r‘  ©r   r,  r‘  r0  ©rf   r—  r]   r]   r^   Ú	test_skip,  ó   	zTestEnum.test_skipc                 C   rŒ  )Nc                   @   r  )z&TestEnum.test_nonmember.<locals>.enumAc                   @   r“   )z,TestEnum.test_nonmember.<locals>.enumA.enumBrŽ  r¸  NrŽ  r]   r]   r]   r^   r‘  :  r’  r‘  c                   @   r“   )z,TestEnum.test_nonmember.<locals>.enumA.enumCr#  rU  Nr“  r]   r]   r]   r^   r–  >  r’  r–  N)rl   rm   rn   r&   r   r‘  r–  r]   r]   r]   r^   r—  9  r˜  r—  r‘  r™  rš  r]   r]   r^   Útest_nonmember8  rœ  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   ó   dd„ t | ƒD ƒS )Nc                 S   rÙ  r]   rÚ  rÛ  r]   r]   r^   rÞ  K  rß  zTTestEnum.test_member_with_external_functions.<locals>.Func.types.<locals>.<listcomp>©rû  rà  r]   r]   r^   ÚtypesI  ó   z@TestEnum.test_member_with_external_functions.<locals>.Func.typesc                 S   rF  rG  ©rk   rl   ró  rž   r]   r]   r^   rÁ  L  rJ  zCTestEnum.test_member_with_external_functions.<locals>.Func.__repr__c                 _   ó   | j |i |¤ŽS rÉ   rÚ  ©rf   rg   rh   r]   r]   r^   Ú__call__N  r6  zCTestEnum.test_member_with_external_functions.<locals>.Func.__call__N)rl   rm   rn   rØ   r%   r!  Úan_intr?  Úa_strrÈ   r   rÁ  r¥  r]   r]   r]   r^   ÚFuncE  s    
r¨  r´  ÚBlahBlah)r   r	  r¦  r§  rû  r!  r?  r   ©rf   r¨  r]   r]   r^   Ú#test_member_with_external_functionsD  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   rÝ  )NÚhahar]   r]   r]   r]   r^   r¬  Y  rÚ  z?TestEnum.test_member_with_internal_functions.<locals>.Func.hahac                 S   s   d|  S )Nzhehe -- what a name!  %s!r]   rò  r]   r]   r^   Úhehe\  s   z?TestEnum.test_member_with_internal_functions.<locals>.Func.hehec                 S   rž  )Nc                 S   rÙ  r]   rÚ  rÛ  r]   r]   r^   rÞ  a  rß  zTTestEnum.test_member_with_internal_functions.<locals>.Func.types.<locals>.<listcomp>rŸ  rà  r]   r]   r^   r   _  r¡  z@TestEnum.test_member_with_internal_functions.<locals>.Func.typesc                 S   rF  rG  r¢  rž   r]   r]   r^   rÁ  b  rJ  zCTestEnum.test_member_with_internal_functions.<locals>.Func.__repr__c                 _   r£  rÉ   rÚ  r¤  r]   r]   r^   r¥  d  r6  zCTestEnum.test_member_with_internal_functions.<locals>.Func.__call__N)rl   rm   rn   rØ   r%   r¬  r­  rÈ   r   rÁ  r¥  r]   r]   r]   r^   r¨  W  s    


r¨  r¬  r©  zhehe -- what a name!  BlahBlah!)r   r	  r¬  r­  rû  r
  r   rª  r]   r]   r^   Ú#test_member_with_internal_functionsV  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)rl   rm   rn   r   r  r­  r]   r]   r]   r^   ÚUniversem  s    r°  r¯  úcannot rebind constantr  r®  úcannot delete constant)r   r	  r  ra   rë  r‡  rì  ©rf   r°  r]   r]   r^   Útest_constantness_of_constantsl  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¯  rs   N)rl   rm   rn   r   r  r	  r]   r]   r]   r^   r°  u  s    r°  r¯  rs   )r   r	  r  r	  r³  r]   r]   r^   Ú"test_math_and_stuff_with_constantst  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)rl   rm   rn   rØ   r"   Úappler§   ÚlemonÚoranger   ÚCitrusTypesr]   r]   r]   r^   r¥   |  s    r¥   )	r   r	  rû  r¶  r§   r·  r¸  r¹  rˆ  )rf   r¥   r]   r]   r^   Ú"test_constant_with_auto_is_updated{  s    z+TestEnum.test_constant_with_auto_is_updatedc                 C   s\  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w   Y  |  t¡ G d1d„ dt ƒ}W d   ƒ d S 1 s'w   Y  d S )2Nc                   @   óD   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   r  rÉ   r>  ©r%   r]   r]   r^   rø  Œ  rA  ú>TestEnum.test_order_as_function.<locals>.TestSequence.<lambda>©úAn$(1,6)r   ©úAn$(7,2)rr   ©úAn$(9,4)rs   ©ú	Hn$(13,6)rt   ©ú	Cn$(19,3)r~   ©úZn$(1,1)r   ©úBn(2,1)ra  ©ÚFnr´  ©úRn$(5,1)rú   ©úSn$(6,1)r®  ©úQn$(7,2)rµ  N©rl   rm   rn   r  rØ   Úitem_idrL  Úwarehouse_noÚcompanyrK  Ú	availableÚcontract_itemÚsales_categoryÚgl_categoryÚwarehouse_categoryÚ	inv_unitsr]   r]   r]   r^   ÚTestSequenceŠ  ó    rß  rÖ  rÀ  r   rL  rÂ  rr   r×  rÄ  rs   rØ  rÆ  rt   rK  rÈ  r~   rÙ  rÊ  r   rÚ  rÌ  ra  rÛ  rÎ  r´  rÜ  rÐ  rú   rÝ  rÒ  r®  rÞ  rÔ  rµ  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½  r]   r]   r^   rø  ¾  ó   
 r¾  r¿  rÁ  rÃ  rÅ  rÇ  rÉ  rË  rÍ  rÏ  rÑ  rÓ  N)rl   rm   rn   rØ   rÖ  rL  r×  rØ  rK  rÙ  rÚ  rÛ  rÜ  rÝ  rÞ  r]   r]   r]   r^   rß  ½  s    r¿  rÁ  rÃ  rÅ  rÇ  rÉ  rË  rÍ  rÏ  rÑ  rÓ  c                   @   r»  )r¼  r?  c                 S   r  rÉ   r>  r½  r]   r]   r^   rø  ç  rA  r¾  r¿  rÁ  rÃ  rÅ  rÇ  rÉ  rË  rÍ  rÏ  rÑ  rÓ  NrÕ  r]   r]   r]   r^   rß  å  rà  c                   @   r»  )r¼  r?  c                 S   r  rÉ   r>  r½  r]   r]   r^   rø  ÷  rA  r¾  r¿  rÃ  rÅ  rÁ  rÓ  rÉ  rË  rÍ  rÇ  rÏ  rÑ  N)rl   rm   rn   r  rØ   rÖ  r×  rØ  rL  rÞ  rÙ  rÚ  rÛ  rK  rÜ  rÝ  r]   r]   r]   r^   rß  õ  rà  )r   r‰  r	  r?  rÖ  ró  r
  rL  r×  rØ  rK  rÙ  rÚ  rÛ  rÜ  rÝ  rÞ  r¨  rê   )rf   rß  rŽ  r%   Útsr]   r]   r^   Útest_order_as_functionˆ  sŠ   ÿ$ÿ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                   @   rs  )z;TestEnum.test_order_as_function_in_subclass.<locals>.Parentr=  c                 S   r  rÉ   r>  r@  r]   r]   r^   rø    rA  zDTestEnum.test_order_as_function_in_subclass.<locals>.Parent.<lambda>N)rl   rm   rn   r  rØ   r]   r]   r]   r^   ÚParent  rx  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)rl   rm   rn   rÖ  rL  r×  rØ  rK  rÙ  rÚ  rÛ  rÜ  rÝ  rÞ  r]   r]   r]   r^   ÚChild
  s    rå  rÖ  rÀ  r   rL  rÂ  rr   r×  rÄ  rs   rØ  rÆ  rt   rK  rÈ  r~   rÙ  rÊ  r   rÚ  rÌ  ra  rÛ  rÎ  r´  rÜ  rÐ  rú   rÝ  rÒ  r®  rÞ  rÔ  rµ  )r   r‰  r	  r?  rÖ  ró  r
  rL  r×  rØ  rK  rÙ  rÚ  rÛ  rÜ  rÝ  rÞ  )rf   rä  rå  rŽ  r%   râ  r]   r]   r^   Ú"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                   @   rØ  )z.TestEnum.test_multiple_mixin.<locals>.MaxMixinc                 S   s   t | ƒ}|| _|S rÉ   )rú  ÚMAX)r,  Úmaxr]   r]   r^   rç  A  s   z2TestEnum.test_multiple_mixin.<locals>.MaxMixin.MAXN)rl   rm   rn   rÈ   rç  r]   r]   r]   r^   ÚMaxMixin@  rä  ré  c                   @   r›   )z.TestEnum.test_multiple_mixin.<locals>.StrMixinc                 S   ó
   | j  ¡ S rÉ   ©rK  rx  rž   r]   r]   r^   rP  G  rÒ   z6TestEnum.test_multiple_mixin.<locals>.StrMixin.__str__N©rl   rm   rn   rP  r]   r]   r]   r^   ÚStrMixinF  r¡   rí  c                   @   r›   )z.TestEnum.test_multiple_mixin.<locals>.SomeEnumc                 S   rÝ  )NÚbooyahr]   rž   r]   r]   r^   ÚbehaviorJ  r­  z7TestEnum.test_multiple_mixin.<locals>.SomeEnum.behaviorN)rl   rm   rn   rï  r]   r]   r]   r^   ÚSomeEnumI  r¡   rð  c                   @   rÖ  )z1TestEnum.test_multiple_mixin.<locals>.AnotherEnumc                 S   rÝ  )Núnuhuh!r]   rž   r]   r]   r^   rï  M  r­  z:TestEnum.test_multiple_mixin.<locals>.AnotherEnum.behaviorc                 S   rÝ  )Nú
what's up?r]   rž   r]   r]   r^   ÚsocialO  r­  z8TestEnum.test_multiple_mixin.<locals>.AnotherEnum.socialN)rl   rm   rn   rï  ró  r]   r]   r]   r^   ÚAnotherEnumL  ó    rô  c                   @   rþ   ©z+TestEnum.test_multiple_mixin.<locals>.ColorúRED GREEN BLUEN©rl   rm   rn   rØ   r"   r  r  r  r]   r]   r]   r^   rÜ   Q  r  rÜ   rr   rs   rt   ú
Color.BLUEc                   @   rþ   rö  rø  r]   r]   r]   r^   rÜ   [  r  rÛ   z%r is not %rc                   @   rþ   rö  rø  r]   r]   r]   r^   rÜ   e  r  c                   @   rþ   )z/TestEnum.test_multiple_mixin.<locals>.CoolColorr÷  Nrø  r]   r]   r]   r^   Ú	CoolColoro  r  rú  rî  c                   @   rþ   )z1TestEnum.test_multiple_mixin.<locals>.CoolerColorr÷  Nrø  r]   r]   r]   r^   ÚCoolerColory  r  rû  rñ  rò  c                   @   rþ   )z2TestEnum.test_multiple_mixin.<locals>.CoolestColorr÷  Nrø  r]   r]   r]   r^   ÚCoolestColor„  r  rü  c                   @   rþ   )z3TestEnum.test_multiple_mixin.<locals>.ConfusedColorr÷  Nrø  r]   r]   r]   r^   ÚConfusedColor  r  rý  c                   @   rþ   )z3TestEnum.test_multiple_mixin.<locals>.ReformedColorr÷  Nrø  r]   r]   r]   r^   ÚReformedColorš  r  rþ  )r'  r   r	  r  r
  r  r  rç  r?  rï  ró  r   rˆ  Ú
issubclassr!  )rf   ré  rí  rð  rô  rÜ   rú  rû  rü  rý  rþ  r]   r]   r^   Ú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                   @   rp   )z9TestEnum.test_multiple_inherited_mixin.<locals>.Decision1ÚREVERTÚ
REVERT_ALLÚRETRYN©rl   rm   rn   r  r  r  r]   r]   r]   r^   Ú	Decision1¨  ó    r  c                   @   r  )z6TestEnum.test_multiple_inherited_mixin.<locals>.MyEnumNr€  r]   r]   r]   r^   rÄ  ­  r‚  rÄ  c                   @   rp   )z9TestEnum.test_multiple_inherited_mixin.<locals>.Decision2r  r  r  Nr  r]   r]   r]   r^   Ú	Decision2¯  r  r  )r   r   )rf   r  rÄ  r  r]   r]   r^   Ú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   ó
   t  | ¡S rÉ   ©r'  r(  )r,  rÌ  r]   r]   r^   r(  ·  rÒ   z5TestEnum.test_value_auto_assign.<locals>.Some.__new__rr   rs   N)rl   rm   rn   r(  r4  r5  r]   r]   r]   r^   ÚSome¶  s    r  rr   rs   )r   r	  r4  r
  r5  )rf   r  r]   r]   r^   Ú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)	rl   rm   rn   r!  rŽ  r)  rë  r?  r  r]   r]   r]   r^   ÚMyTypesÀ  ry   r  c                   @   r  )z(TestEnum.test_enum_of_types.<locals>.FooNr€  r]   r]   r]   r^   r  Ç  r‚  r  c                   @   r  )z(TestEnum.test_enum_of_types.<locals>.BarNr€  r]   r]   r]   r^   ÚBarÉ  r‚  r  c                       s   e Zd Z”Z” ZdS )z-TestEnum.test_enum_of_types.<locals>.MyTypes2N)rl   rm   rn   rŽ  r¸  r]   )r  r  r]   r^   ÚMyTypes2Ë  r˜   r  c                   @   r  )z5TestEnum.test_enum_of_types.<locals>.SpamEnumNotInnerNr€  r]   r]   r]   r^   ÚSpamEnumNotInnerÐ  r‚  r  c                       ó   e Zd Z” ZdS )z-TestEnum.test_enum_of_types.<locals>.SpamEnumN)rl   rm   rn   r¬  r]   )r  r]   r^   ÚSpamEnumÒ  r  r  N)r   r	  rŽ  r
  r!  rë  r)  r  r?  rŽ  r¸  r¬  )rf   r  r  r  r]   )r  r  r  r^   Útest_enum_of_types¾  s   zTestEnum.test_enum_of_typesc                 C   óŠ   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ÚOuterrr   rs   c                   @   r/  )zKTestEnum.test_nested_classes_in_enum_do_become_members.<locals>.Outer.InnerúOuter.Innerrµ  rX  N©rl   rm   rn   r  Úbarr]   r]   r]   r^   ÚInnerÞ  ry   r  N©rl   rm   rn   rØ   rŽ  r¸  r   r  r]   r]   r]   r^   r  Ù  s    r  rr   rµ  ©r   rˆ  rP  r  r	  rŽ  r
  r  rû  r  r¸  ©rf   r  r]   r]   r^   Ú-test_nested_classes_in_enum_do_become_members×  s   	
þþz6TestEnum.test_nested_classes_in_enum_do_become_membersc                 C   r  )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  rr   rs   c                   @   r“   )zRTestEnum.test_really_nested_classes_in_enum_do_become_members.<locals>.Outer.Innerrµ  rX  Nr  r]   r]   r]   r^   r  ó  r˜   r  Nr  r]   r]   r]   r^   r  ï  s
    r  rr   rµ  r  r  r]   r]   r^   Ú4test_really_nested_classes_in_enum_do_become_membersî  s   
þþz=TestEnum.test_really_nested_classes_in_enum_do_become_membersc                 C   ó~   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  rr   rs   c                   @   r/  )zOTestEnum.test_nested_classes_in_enum_are_skipped_with_skip.<locals>.Outer.Innerr  rµ  rX  Nr  r]   r]   r]   r^   r  	  r  r  N©rl   rm   rn   rŽ  r¸  r    r   r  r]   r]   r]   r^   r    s    r  rr   rµ  N©r   rˆ  rP  r  rl  r	  rŽ  r
  r  rû  r  r¸  r  r]   r]   r^   Ú1test_nested_classes_in_enum_are_skipped_with_skip  s   	þ
þz:TestEnum.test_nested_classes_in_enum_are_skipped_with_skipc                 C   r   )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>.Outerrr   rs   c                   @   r“   )zVTestEnum.test_really_nested_classes_in_enum_are_skipped_with_skip.<locals>.Outer.Innerrµ  rX  Nr  r]   r]   r]   r^   r    r’  r  Nr"  r]   r]   r]   r^   r    s
    r  rr   rµ  Nr#  r  r]   r]   r^   Ú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   rr   rs   rt   c                 S   s   |t u r| jS d S rÉ   )r'   rN  rr  r]   r]   r^   rs  6  s   ÿzBTestEnum.test_enum_call_without_arg.<locals>.Color._missing_value_N)	rl   rm   rn   rN  rÙ   rÚ   rÛ   rô  rs  r]   r]   r]   r^   rÜ   0  s    rÜ   rr   )r   rˆ  rÙ   rN  rß   r]   r]   r^   Útest_enum_call_without_arg/  s   
z#TestEnum.test_enum_call_without_argc                    ó<  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                       ó    e Zd Z‡‡ ‡fdd„Z‡  ZS )z+TestEnum.test_init_subclass.<locals>.MyEnumc                    ó4   t ˆ | ƒjdi |¤Ž ˆ | j dd¡¡ d| _d S ©NÚ_testFrÄ  r]   ©rd   Ú__init_subclass__r…  r0  ÚgetÚ_test1©r,  rh   ©rÄ  rk   rf   r]   r^   r-  ?  ó   
z=TestEnum.test_init_subclass.<locals>.MyEnum.__init_subclass__©rl   rm   rn   r-  ro   r]   ©rÄ  rf   rj   r^   rÄ  >  ó    rÄ  c                       ó   e Zd Z‡‡ fdd„Z‡  ZS )z.TestEnum.test_init_subclass.<locals>.TheirEnumc                    ó    t ˆ | ƒjdi |¤Ž d| _d S ©NÚ	TheirEnumr]   ©rd   r-  Ú_test2r0  ©r9  rk   r]   r^   r-  E  ó   
z@TestEnum.test_init_subclass.<locals>.TheirEnum.__init_subclass__r3  r]   ©r9  rj   r^   r9  D  rÓ  r9  c                   @   r›   )z.TestEnum.test_init_subclass.<locals>.WhoseEnumc                 [   r«  rÉ   r]   r0  r]   r]   r^   r-  I  r­  z@TestEnum.test_init_subclass.<locals>.WhoseEnum.__init_subclass__N©rl   rm   rn   r-  r]   r]   r]   r^   Ú	WhoseEnumH  r¡   r@  c                   @   r  )z+TestEnum.test_init_subclass.<locals>.NoEnumrr   N©rl   rm   rn   r  r]   r]   r]   r^   ÚNoEnumK  r  rB  r/  r;  Fc                   @   r›   )z,TestEnum.test_init_subclass.<locals>.OurEnumc                 [   ó
   d| _ d S ©NÚOurEnum©r;  r0  r]   r]   r^   r-  T  rÒ   z>TestEnum.test_init_subclass.<locals>.OurEnum.__init_subclass__Nr?  r]   r]   r]   r^   rE  S  r¡   rE  c                   @   r›   )z.TestEnum.test_init_subclass.<locals>.WhereEnumc                 [   r«  rÉ   r]   r0  r]   r]   r^   r-  W  r­  z@TestEnum.test_init_subclass.<locals>.WhereEnum.__init_subclass__Nr?  r]   r]   r]   r^   Ú	WhereEnumV  r¡   rG  c                   @   r  )z.TestEnum.test_init_subclass.<locals>.NeverEnumræ  NrA  r]   r]   r]   r^   Ú	NeverEnumY  r  rH  )r   r	  r0  r…  r.  ©rf   r@  rB  rE  rG  rH  r]   ©rÄ  r9  rf   r^   Útest_init_subclass=  ó"   zTestEnum.test_init_subclassc                    s’   G dd„ dt ƒ‰ |  t¡ G dd„ dˆ tƒ}W d   ƒ n1 s!w   Y  |  t¡ G ‡ fdd„dˆ tƒ}W d   ƒ d S 1 sBw   Y  d S )Nc                   @   rÖ  )z*TestEnum.test_init_exception.<locals>.Basec                 W   r	  rÉ   r
  ©r,  rg   r]   r]   r^   r(  c  rÒ   z2TestEnum.test_init_exception.<locals>.Base.__new__c                 S   s
   t d|ƒ‚)NzI don't like)r²   )rf   r4  r]   r]   r^   re   e  rÒ   z3TestEnum.test_init_exception.<locals>.Base.__init__N)rl   rm   rn   r(  re   r]   r]   r]   r^   ÚBaseb  rõ  rN  c                   @   rs  )ú,TestEnum.test_init_exception.<locals>.MyEnumrŽ  c                 S   r¢  rÉ   ©r5  ©rf   r5  r]   r]   r^   re   j  rÒ   ú5TestEnum.test_init_exception.<locals>.MyEnum.__init__N)rl   rm   rn   r  re   r]   r]   r]   r^   rÄ  h  rx  rÄ  c                       s$   e Zd ZdZdd„ Z‡ fdd„ZdS )rO  rŽ  c                 S   r¢  rÉ   rP  rQ  r]   r]   r^   re   o  rÒ   rR  c                    s   ˆ   | ¡}ˆ |ƒ|_|S rÉ   )r(  r)  r+  ©rN  r]   r^   r(  q  s   

z4TestEnum.test_init_exception.<locals>.MyEnum.__new__N)rl   rm   rn   r  re   r(  r]   rS  r]   r^   rÄ  m  s    )r'  r¨  rê   r   r²   )rf   rÄ  r]   rS  r^   Útest_init_exceptiona  s   ÿ"ÿzTestEnum.test_init_exceptionc              
      óš   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                       ó6   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   rr   rs   r~   r$  N©rl   rm   rn   ÚNONEr  r  r]   ©rX  r]   r^   ÚNTEnumy  ó    r_  ú*<NTEnum.NONE: TTuple(id=0, a=0, blist=[])>©ÚidrŽ  Úblistc                 S   rÙ  r]   rÚ  ©rÜ  r4  r]   r]   r^   rÞ  €  rß  ú5TestEnum.test_namedtuple_as_value.<locals>.<listcomp>rr   rs   r~   r$  ©ÚcollectionsrW  r   r	  rŒ  r]  r
  ©rf   rW  r_  r]   r^  r^   Útest_namedtuple_as_valuev  ó   
,þ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                   @   r›   )z,TestEnum.test_gnv_is_static.<locals>.LazyGNVc                 S   r«  rÉ   r]   ©ró  r·   rë  r—  r]   r]   r^   rÅ  †  r­  zBTestEnum.test_gnv_is_static.<locals>.LazyGNV._generate_next_value_Nrí  r]   r]   r]   r^   ÚLazyGNV…  r¡   rm  c                   @   rØ  )z,TestEnum.test_gnv_is_static.<locals>.BusyGNVc                 S   r«  rÉ   r]   rl  r]   r]   r^   rÅ  ‰  rÚ  zBTestEnum.test_gnv_is_static.<locals>.BusyGNV._generate_next_value_N)rl   rm   rn   rÇ  rÅ  r]   r]   r]   r^   ÚBusyGNVˆ  rä  rn  rÅ  )r   rˆ  rl  r0  rÇ  )rf   rm  rn  r]   r]   r^   Útest_gnv_is_static„  s   zTestEnum.test_gnv_is_staticc              
      rU  )Nr   rV  rX  rY  c                       rZ  r[  r\  r]   r^  r]   r^   r_  ’  r`  r_  ra  rb  c                 S   rÙ  r]   rÚ  re  r]   r]   r^   rÞ  ™  rß  rf  rr   rs   r~   r$  rg  ri  r]   r^  r^   rj    rk  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ö  rs   r~   r   Nr÷  r]   r]   r]   r^   ÚManyž  s
    rp  rt   )rr   rs   rs   )r~   r   rt   )r~   r   ra  )r   r	  rú  r  r
  r  r  )rf   rp  r]   r]   r^   Útest_multiple_auto_assignment  s
   z&TestEnum.test_multiple_auto_assignmentN)°rl   rm   rn   r+  rF  rR  rq  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.  r0  r2  r3  r5  r7  r;  r@  rF  rM  rO  rQ  rS  rW  ra  rc  re  rf  rh  rj  rn  rp  rr  rt  rv  rw  ry  rz  r{  r|  r‚  rƒ  r  r‘  r”  rš  r¨  r°  r²  r³  rµ  r¼  rÀ  rÃ  rÇ  rÖ  r
  r:  r@  rC  rJ  rL  rO  rW  r[  r`  rb  rp  ru  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  r  r  r'  r)  r1  r3  r:  r<  rN  rO  rW  rY  rZ  rc  rd  rj  rp  r|  r  r‹  r›  r  r«  r®  r´  rµ  rº  rã  ræ  r   r  r  r  r-   r  r  r$  r%  r&  rK  rT  rj  ro  rq  r]   r]   r]   r^   rý  ¯  s^   >
!	!

								
					

=^78857	
 $!'	|;h	$rý  c                   @   r}  )ÚTestStrEnumc                    r,  )Nc                   @   r-  )	z-TestStrEnum.test_set_name.<locals>.DescriptorNc                 S   r.  rÉ   r/  r1  r]   r]   r^   rÑ   ®  r3  z5TestStrEnum.test_set_name.<locals>.Descriptor.__get__c                 S   r4  rÉ   r/  r5  r]   r]   r^   rƒ  ³  r6  z5TestStrEnum.test_set_name.<locals>.Descriptor.__set__c                 S   r7  rÉ   rò  r8  r]   r]   r^   r:  µ  rÒ   z:TestStrEnum.test_set_name.<locals>.Descriptor.__set_name__rÉ   r;  r]   r]   r]   r^   r<  ¬  r=  r<  c                       r>  )z)TestStrEnum.test_set_name.<locals>.AnEnumræ  Nr?  r]   r@  r]   r^   rA  ¸  rB  rA  rç  rC  rD  rE  r]   r@  r^   rF  «  rG  zTestStrEnum.test_set_namec                 C   rH  )Nc                   @   r“   )z/TestStrEnum.test_private_names.<locals>.PrivaterI  rJ  NrK  r]   r]   r]   r^   rN  Ã  r˜   rN  r   rI  rJ  rO  rQ  r]   r]   r^   rR  Â  rS  zTestStrEnum.test_private_namesc                 C   sL   G dd„ dt ƒ}|  |j|jk ¡ |  |j ¡ d¡ |  |j d¡d¡ d S )Nc                   @   r“   )z7TestStrEnum.test_strenum_inherited_methods.<locals>.phyr  r  Nr	  r]   r]   r]   r^   r  Í  r˜   r  r  rŽ  rr   )r   rˆ  r
  r  r	  ÚupperrÂ  r  r]   r]   r^   Útest_strenum_inherited_methodsÌ  s   z*TestStrEnum.test_strenum_inherited_methodsc              	      sP  t t ƒ g tdfD ]"‰ |  td¡ G ‡ fdd„dtƒ}W d   ƒ n1 s%w   Y  qG dd„ dtƒ}|  dd„ |D ƒg d	¢¡ |  td
¡ G dd„ dtƒ}W d   ƒ n1 sYw   Y  G dd„ dtƒ}|  dd„ |D ƒg d¢¡ |  td¡ G dd„ dtƒ}W d   ƒ n1 sŒw   Y  G dd„ dtƒ}|  dd„ |D ƒg d¢¡ d S )Nr®  zvalues must be strc                       r  )ú,TestStrEnum.test_strict_strenum.<locals>.HuhN©rl   rm   rn   Úhuhr]   ©Úuhohr]   r^   rè  ×  r  rè  c                   @   ó(   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ÚThatrx  ÚUPPERN©
rl   rm   rn   rØ   r"   r}  r{  ÚThoserx  rv  r]   r]   r]   r^   ÚEitherÙ  ó    rƒ  c                 S   rÙ  r]   rÚ  rÛ  r]   r]   r^   rÞ  à  rß  z3TestStrEnum.test_strict_strenum.<locals>.<listcomp>)r}  r  r|  rx  r€  z is not lower-casec                   @   r  ©rx  ÚWhatNry  r]   r]   r]   r^   rè  ã  r  c                   @   r}  )z.TestStrEnum.test_strict_strenum.<locals>.Lowerr~  r{  rx  rv  Nr  r]   r]   r]   r^   ÚLoweræ  r„  r‡  c                 S   rÙ  r]   rÚ  rÛ  r]   r]   r^   rÞ  í  rß  )r}  r{  r|  rx  rv  z is not upper-casec                   @   r  r…  ry  r]   r]   r]   r^   rè  ð  r  c                   @   r}  )z.TestStrEnum.test_strict_strenum.<locals>.Upperr~  ÚTHATÚLOWERr€  Nr  r]   r]   r]   r^   ÚUpperó  r„  rŠ  c                 S   rÙ  r]   rÚ  rÛ  r]   r]   r^   rÞ  ú  rß  )ÚTHISrˆ  ÚTHOSEr‰  r€  )	r'  r   ra   rê   r   r	  r²   r	   r
   )rf   rè  rƒ  r‡  rŠ  r]   r{  r^   Útest_strict_strenumÔ  s"   ÿ€ÿÿzTestStrEnum.test_strict_strenumc                    r'  )Nc                       r(  )z.TestStrEnum.test_init_subclass.<locals>.MyEnumc                    r)  r*  r,  r0  r1  r]   r^   r-  þ  r2  z@TestStrEnum.test_init_subclass.<locals>.MyEnum.__init_subclass__r3  r]   r4  rj   r^   rÄ  ý  r5  rÄ  c                       r6  )z1TestStrEnum.test_init_subclass.<locals>.TheirEnumc                    r7  r8  r:  r0  r<  r]   r^   r-    r=  zCTestStrEnum.test_init_subclass.<locals>.TheirEnum.__init_subclass__r3  r]   r>  rj   r^   r9    rÓ  r9  c                   @   r›   )z1TestStrEnum.test_init_subclass.<locals>.WhoseEnumc                 [   r«  rÉ   r]   r0  r]   r]   r^   r-    r­  zCTestStrEnum.test_init_subclass.<locals>.WhoseEnum.__init_subclass__Nr?  r]   r]   r]   r^   r@    r¡   r@  c                   @   r  )z.TestStrEnum.test_init_subclass.<locals>.NoEnumræ  NrA  r]   r]   r]   r^   rB  
  r  rB  r/  r;  Fc                   @   r›   )z/TestStrEnum.test_init_subclass.<locals>.OurEnumc                 [   rC  rD  rF  r0  r]   r]   r^   r-    rÒ   zATestStrEnum.test_init_subclass.<locals>.OurEnum.__init_subclass__Nr?  r]   r]   r]   r^   rE    r¡   rE  c                   @   r›   )z1TestStrEnum.test_init_subclass.<locals>.WhereEnumc                 [   r«  rÉ   r]   r0  r]   r]   r^   r-    r­  zCTestStrEnum.test_init_subclass.<locals>.WhereEnum.__init_subclass__Nr?  r]   r]   r]   r^   rG    r¡   rG  c                   @   r  )z1TestStrEnum.test_init_subclass.<locals>.NeverEnumræ  NrA  r]   r]   r]   r^   rH    r  rH  )r   r	  r0  r…  r.  rI  r]   rJ  r^   rK  ü  rL  zTestStrEnum.test_init_subclassN)rl   rm   rn   rF  rR  rw  r  rK  r]   r]   r]   r^   ru  ©  s    
(ru  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'dJdK„ Z(dLdM„ Z)dNdO„ Z*dPdQ„ Z+e, -e.dR¡dSdT„ ƒZ/dUdV„ Z0dWdX„ Z1dYdZ„ Z2d[d\„ Z3d]d^„ Z4d_d`„ Z5dadb„ Z6dcdd„ Z7dedf„ Z8dgdh„ Z9didj„ Z:dkdl„ Z;dmdn„ Z<doS )pÚ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)r~   rs   rr   N©rl   rm   rn   rØ   ÚRÚWÚXr]   r]   r]   r^   ÚPerm%  s    r”  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   rr   rs   r~   N)rl   rm   rn   ry  r  ÚROJOr  r  ÚPURPLEÚWHITEÚBLANCOr]   r]   r]   r^   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)rl   rm   rn   rØ   r"   r  r  r  r×  ÚFIVEÚSIXÚSEVENÚEIGHTr]   r]   r]   r^   ÚFun5  s    
r  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   ó$   d| }t  | |¡}||_||_|S r=  ©r?  r(  r)  r@  ©r,  r
  r@  rB  r¾   r]   r]   r^   r(  B  rÜ  z)TestFlag.setUp.<locals>.TermColor.__new__c                 W   ó   d  dd„ |D ƒ¡}||f S )Nú;c                 s   ó    | ]}|j V  qd S rÉ   ©r@  rÛ  r]   r]   r^   Ú	<genexpr>K  ó   € zRTestFlag.setUp.<locals>.TermColor._create_pseudo_member_values_.<locals>.<genexpr>©r³   ©r,  rç  r—  r@  r]   r]   r^   Ú_create_pseudo_member_values_I  ó   
z?TestFlag.setUp.<locals>.TermColor._create_pseudo_member_values_rE  rG  Ú2Ú4rm  Ú30Ú31Ú32Ú33Ú34Ú35rJ  Ú37Ú39rM  Ú41Ú42Ú43Ú44Ú45Ú46Ú47Ú49c                 S   sB   | j d urd| jj| j f S d| jjd dd„ t | ¡D ƒ¡f S )NrH  ú<%s: %s>ú|c                 S   rÙ  r]   rò  rÛ  r]   r]   r^   rÞ  o  rß  z>TestFlag.setUp.<locals>.TermColor.__repr__.<locals>.<listcomp>)rK  rk   rl   r³   r   Ú__iter__rž   r]   r]   r^   rÁ  k  s   
&z*TestFlag.setUp.<locals>.TermColor.__repr__c                 S   s   t | jddd | S ©NÚ r   )ÚendÚverbose©rÓ  rQ  rž   r]   r]   r^   Ú	__enter__q  s   z+TestFlag.setUp.<locals>.TermColor.__enter__c                 W   s   t | jddd d S rÀ  rÄ  )rf   rg   r]   r]   r^   Ú__exit__u  rá   z*TestFlag.setUp.<locals>.TermColor.__exit__N)"rl   rm   rn   r(  rô  r©  rQ  rR  ÚDimÚ	UnderlineÚNormalÚFG_BlackÚFG_RedÚFG_GreenÚ	FG_YellowÚFG_BlueÚ
FG_MagentarS  ÚFG_WhiteÚFG_ResetrT  ÚBG_RedÚBG_GreenÚ	BG_YellowÚBG_BlueÚ
BG_MagentaÚBG_CyanÚBG_WhiteÚBG_Resetr?  rP  rÁ  rÅ  rÆ  r]   r]   r]   r^   Ú	TermColorA  s>    
rÚ  c                   @   r|   )zTestFlag.setUp.<locals>.Openr   rr   rs   rt   é   N)rl   rm   rn   ÚROÚWOÚRWÚACÚCEr]   r]   r]   r^   ÚOpeny  r„   rá  )r   r”  rÜ   r  r?  rÚ  rá  )rf   r”  rÜ   r  rÚ  rá  r]   r]   r^   r+  $  s   	
6
zTestFlag.setUpc           
      C   s.  G dd„ dt ƒ}|\}}|j}|  | |¡ |  |dƒ|¡ |  | |dƒ¡ |  |dƒ|dƒ¡ |  |dƒ||B ¡ |  ||B  |dƒ¡ G dd„ dt ƒ}|\}}}|j}	|  | ||B ¡ |  |d	ƒ||B ¡ |  |	 |dƒ¡ |  |d
ƒ|dƒ¡ |  |dƒ||B |B ¡ |  ||B |B  |dƒ¡ d S )Nc                   @   rÕ   )z:TestFlag.test_closed_invert_expectations.<locals>.ClosedABr  rr   rs   rt   N©rl   rm   rn   rØ   r  r  ÚMASKr]   r]   r]   r^   ÚClosedAB‚  rÝ   rä  éþÿÿÿr   r²  rP   c                   @   r|   )z;TestFlag.test_closed_invert_expectations.<locals>.ClosedXYZúX Y Zr~   rs   rr   r´  N©rl   rm   rn   rØ   r“  ÚYÚZrã  r]   r]   r]   r^   Ú	ClosedXYZ‘  r„   rê  r±  r¶  ©r   rã  r,  ©
rf   rä  r  r  ÚAB_MASKrê  r“  rè  ré  ÚXYZ_MASKr]   r]   r^   Útest_closed_invert_expectations  s$   
z(TestFlag.test_closed_invert_expectationsc           
      C   s  G dd„ dt ƒ}|\}}|j}|  | |¡ |  | |¡ |  |dƒ|¡ |  |dƒ|¡ |  ||B  |dƒ¡ |  | |dƒ¡ |  |dƒ||B ¡ |  |dƒ ||B ¡ |  |dƒ|dƒ¡ |  |dƒ|d	ƒ¡ |  |d
ƒ|¡ G dd„ dt ƒ}|\}}}|j}	|  | ||B ¡ |  | ||B ¡ |  | ||B ¡ |  |dƒ||B ¡ |  |dƒ||B ¡ |  |dƒ||B ¡ |  ||B  |¡ |  ||B  |¡ |  ||B  |¡ |  |dƒ||B ¡ |  |	 |dƒ¡ |  ||B |B  |dƒ¡ |  |dƒ|dƒ¡ |  |dƒ||B |B ¡ d S )Nc                   @   rÕ   )z6TestFlag.test_open_invert_expectations.<locals>.OpenABr  rr   rs   r€   Nrâ  r]   r]   r]   r^   ÚOpenAB¢  rÝ   rð  rå  rª  r   rP   r²  r±  rt   iòÿÿÿc                   @   r|   )z7TestFlag.test_open_invert_expectations.<locals>.OpenXYZræ  r~   rs   rr   r‚  Nrç  r]   r]   r]   r^   ÚOpenXYZ¶  r„   rñ  r¶  rë  ©
rf   rð  r  r  rí  rñ  r“  rè  ré  rî  r]   r]   r^   Útest_open_invert_expectations¡  s>   
z&TestFlag.test_open_invert_expectationsc                 C   sÈ   G dd„ dt ƒ}|  t|ƒ|j|jg¡ |  |j |j¡ |  |j|j¡ |  |jjd¡ G dd„ dt ƒ}|  t|ƒ|j|j|jg¡ |  |j |j|jB ¡ |  |j|j|jB ¡ |  |jjd¡ d S )Nc                   @   s&   e Zd ZdZdZdZeeB Ze ZdS )z0TestFlag.test_assigned_negative_value.<locals>.XúA B C Drr   rs   N©rl   rm   rn   rØ   r  r  r  r  r]   r]   r]   r^   r“  Ï  s    
r“  rs   c                   @   s*   e Zd ZdZdZdZeeB Ze ZdZdS )z0TestFlag.test_assigned_negative_value.<locals>.Yú	A B C D Err   rs   r~   N)	rl   rm   rn   rØ   r  r  r  r  r  r]   r]   r]   r^   rè  Ú  s    rè  ra  )	r   r	  rû  r  r  r,  r  r
  r  ©rf   r“  rè  r]   r]   r^   Útest_assigned_negative_valueÎ  s   z%TestFlag.test_assigned_negative_valuec                    r,  )Nc                   @   r-  )	z*TestFlag.test_set_name.<locals>.DescriptorNc                 S   r.  rÉ   r/  r1  r]   r]   r^   rÑ   é  r3  z2TestFlag.test_set_name.<locals>.Descriptor.__get__c                 S   r4  rÉ   r/  r5  r]   r]   r^   rƒ  î  r6  z2TestFlag.test_set_name.<locals>.Descriptor.__set__c                 S   r7  rÉ   rò  r8  r]   r]   r^   r:  ð  rÒ   z7TestFlag.test_set_name.<locals>.Descriptor.__set_name__rÉ   r;  r]   r]   r]   r^   r<  ç  r=  r<  c                       r>  )z&TestFlag.test_set_name.<locals>.AnEnumrr   Nr?  r]   r@  r]   r^   rA  ó  rB  rA  rç  rC  rD  rE  r]   r@  r^   rF  æ  rG  zTestFlag.test_set_namec                 C   rT  )Nc                   @   rU  )	z,TestFlag.test_new_with_keywords.<locals>.HuhrV  Nc                 S   sV   | j rdt| j ƒd  }nd}t | |¡}|r|d u r|}||_||_||_||_|S )Nrs   rr   r   )rW  rú  r!  r(  rX  rY  rÍ   r)  rZ  r]   r]   r^   r(     s   z4TestFlag.test_new_with_keywords.<locals>.Huh.__new__r\  r]  r`  rc  rd  r]   r]   r]   r^   rè  þ  s    
rè  ri  rj  rk  )r   rf  rˆ  rl  r	  r
  rÍ   rX  rY  rg  rh  rm  r]   r]   r^   rq  ý  s"   þþþzTestFlag.test_new_with_keywordsc                 C   rH  )Nc                   @   r“   )z,TestFlag.test_private_names.<locals>.PrivaterI  rJ  NrK  r]   r]   r]   r^   rN  "  r˜   rN  r   rI  rJ  rO  rQ  r]   r]   r^   rR  !  rS  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 )Nrt   z<Fun.SEVEN: 7>)r  r	  rû  r  r  r×  rœ  r  r)  rŒ  r›  )rf   r  r]   r]   r^   Ú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;47mr¢  z<TermColor.FG_Red|BG_White>)	rÚ  rË  rØ  r	  r
  r@  r³   rŒ  r?  )rf   rÙ   r¥  Úbarberr]   r]   r^   Útest_str_is_str_str5  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 )Nry  rÜ  r   )rÜ   rá  r…  rˆ  ry  rÜ  ©rf   rÜ   rá  r]   r]   r^   Útest_membership>  ó   zTestFlag.test_membershipc                    sX   | j ‰ |  t‡ fdd„¡ |  t‡ fdd„¡ |  ˆ jˆ jv ¡ |  ˆ jˆ d v ¡ d S )Nc                      ó
   dˆ j v S rÎ  ©r  r]   r÷  r]   r^   rø  L  rá  z/TestFlag.test_member_contains.<locals>.<lambda>c                      rÿ  r†  r   r]   r÷  r]   r^   rø  M  rá  zRED|GREEN|BLUE)rÜ   r¨  rê   rˆ  r  rž   r]   r÷  r^   rÑ  J  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   rr   rs   rt   )r	  rÜ   Ú__len__ry  r  r–  r˜  rž   r]   r]   r^   Útest_member_lengthQ  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 SIXTEENrs   N)rl   rm   rn   rØ   r"   r  r  r×  rÕ  rœ  ÚSIXTEENr]   r]   r]   r^   rØ  X  s    
rØ  rs   rú   é   )r   r	  rû  r  r  r×  rœ  r  r,  rÕ  r)  rÙ  r]   r]   r^   rÚ  W  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©r”  r	  r?  r‘  r’  r“  rá  rÜ  rÝ  rß  rà  ©rf   r”  rá  r]   r]   r^   Útest_strh  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>)r”  r	  rŒ  r‘  r’  r“  rá  rÜ  rÝ  rß  rà  r  r]   r]   r^   Ú	test_repr„  ó0    zTestFlag.test_reprc                 C   óL   | j }|  |j|d u ¡ |  |j|jB |d u ¡ |  |j|d u ¡ d S ©Nr  z	RED|GREENzRED|BLUE©rÜ   rˆ  r  r  r–  rß   r]   r]   r^   Útest_name_lookupŸ  ó   zTestFlag.test_name_lookupc                 C   sž   | j }|D ],}|D ]'}|  ||B ||j|jB ƒ¡ |  ||B j|j|jB ¡ |  t||B ƒ|¡ q	q|D ]
}|  ||B |¡ q4| j}|  |j|jB |j¡ d S rÉ   ©r”  r	  r
  r,  rl  rá  rÜ  rà  ©rf   r”  rŽ  Újrá  r]   r]   r^   Útest_or¥  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 ]}|  ||@ j|j|j@ ¡ |  t||@ ƒ|¡ q1q-|D ]}|  ||@ |¡ |  ||@ |¡ |  ||@ |¡ qN| j	}	|  |	j
|	j@ |	j
¡ d S r   )r”  r‘  r’  r“  rû  r	  r
  r,  rl  rá  rÜ  rà  ©
rf   r”  rÞ  ÚRXÚWXÚRWXr—  rŽ  r!  rá  r]   r]   r^   Útest_and±  s"   þzTestFlag.test_andc                 C   s°   | j }|D ]}|D ]}|  ||A j|j|jA ¡ |  t||A ƒ|¡ q	q|D ]}|  ||dƒA |¡ |  |dƒ|A |¡ q&| j}|  |j|jA |j¡ |  |j|jA |j¡ d S r   r  r   r]   r]   r^   Ú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| ƒ|¡ |  |  |¡ q-|D ]
}|  |  |¡ qC| j}|  |j	|j	 @ |j
¡ |  |j	|jB |j	 @ |j¡ d S r   )r”  r‘  r’  r“  rû  r,  rl  r	  rá  rÝ  rÜ  rà  ©	rf   r”  rÞ  r$  r%  r&  r—  rŽ  rá  r]   r]   r^   Útest_invertÐ  s   "zTestFlag.test_invertc                 C   óD   | j }|D ]}|  |¡ q| j}|D ]}|  t|jƒt|ƒ¡ qd S rÉ   ©r”  rˆ  rá  r	  r³  r
  ©rf   r”  rë  rá  r]   r]   r^   rÇ  à  ó   ÿ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                   @   r“   )z'TestFlag.test_doc_flag.<locals>.DocFlagr   r   N)rl   rm   rn   r  r(  r]   r]   r]   r^   ÚDocFlagé  r˜   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)rl   rm   rn   rØ   ÚUNKNOWNÚPOÚPO_TYPEÚNUMBERÚPREORDÚNAMEÚSTREETÚPOSTORDÚSECONDARY_TYPEÚSECONDARY_NUMBERÚANDr]   r]   r]   r^   ÚAddressSegmentþ  s    r;  r  r³  é€   é0   z%r is not 48)r   r	  r5  r)  r6  r8  )rf   r/  r;  ÚASr]   r]   r^   Ú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û  r  r  r  r–  ©rf   r  r]   r]   r^   Ú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û  ry  r  r–  r  r@  r]   r]   r^   Ú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 ]1\}}d|> }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q.d S ©Nr”  r  rt   rr   ©r   rû  r	  rú  r‘  r’  r“  r‰  rŠ  r
  rl  r!  ró  ÚassertInr,  ©rf   r”  r  rŽ  Únr  r  r]   r]   r^   ra    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 ]1\}}d|> }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q0d S ©Nr”  r  rú   rb  rt   rD  rF  r]   r]   r^   rc  +  ó   ù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 ]1\}}d|> }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q0d S ©Nr”  )r‘  r’  r“  rt   r  rr   rD  rF  r]   r]   r^   re  :  rI  z.TestFlag.test_programatic_function_string_listc                 C   sÌ   t ddƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  ||j|j|jg¡ td ¡ ƒD ]5\}}dd| d > }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q.d S ©Nr”  ))r‘  rs   )r’  rú   )r“  r³  rt   r  rr   rs   rD  rF  r]   r]   r^   rh  I  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 ]5\}}dd| d > }||ƒ}|  |j
|¡ |  t|j
ƒt¡ |  |j|¡ |  ||¡ |  t|ƒ|¡ q0d S rK  )r   r7   rû  r	  rú  r‘  r’  r“  r‰  rŠ  r
  rl  r!  ró  rE  r,  rF  r]   r]   r^   rj  X  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 )Nr”  r   ÚThing©r   r	  rú  rû  r   ©rf   r”  rL  r]   r]   r^   Ú$test_programatic_function_empty_listg  ó   

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 )Nr”  r]   r   rL  rM  rN  r]   r]   r^   Ú%test_programatic_function_empty_tupleo  rP  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   rr   )rP  r}   r®   r¼   r,  rw   rx   r	  rƒ   r‚   r†   rˆ   rŠ   r‹   rž   r]   r]   r^   Útest_picklew  s$  

þþþþþ
þþ
þþ
þþþ
þþ
þþ
þþþþþþþ
þþþ
þþ
þþþþ
þþþ
þzTestFlag.test_picklec           	      C   óà   | j }|\}}}||B }||B }||B }||B |B }|  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ |  ||v ¡ d S rÉ   ©r”  rˆ  r…  ©	rf   r”  r‘  r’  r“  rÞ  r$  r%  r&  r]   r]   r^   Útest_containment  ó$   
zTestFlag.test_containmentc                 C   rã  )Nc                   @   rþ   )z(TestFlag.test_auto_number.<locals>.Colorrä  Nrå  r]   r]   r]   r^   rÜ   #  r  rÜ   rr   rs   r~   )r   r	  rû  rÙ   rÛ   rÚ   r
  rß   r]   r]   r^   rç  "  rè  zTestFlag.test_auto_numberc                 C   ræ   )Nz invalid Flag value: .not an int.c                   @   rð  )z0TestFlag.test_auto_number_garbage.<locals>.Colorrñ  z
not an intNrò  r]   r]   r]   r^   rÜ   0  ró  rÜ   r÷   rß   r]   r]   r^   Útest_auto_number_garbage.  rì   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)	rl   rm   rn   rØ   r]  r"   ÚTO_SÚFROM_SÚBOTHr]   r]   r]   r^   ÚRequired6  s    r\  rr   rs   rt   )r   r	  rY  r
  rZ  r[  )rf   r\  r]   r]   r^   Útest_auto_w_pending5  s   zTestFlag.test_auto_w_pendingc                 C   s0   G dd„ dt ƒ}|  |j|j|jgt|ƒ¡ d S )Nc                   @   rù  )z+TestFlag.test_duplicate_auto.<locals>.Dupesrs  Nrú  r]   r]   r]   r^   rü  A  rý  rü  )r   r	  r£  r¦  rw  rû  )rf   rü  r]   r]   r^   rþ  @  s    zTestFlag.test_duplicate_autoc                 C   sv   G dd„ dt ƒ}|  |dƒ|j|jB ¡ |  t|ƒ|jg¡ |  |dƒ|j¡ |  |j |j¡ |  td|jj	¡ d S )Nc                   @   rp   )z&TestFlag.test_bizarre.<locals>.Bizarrert   r~   ra  N)rl   rm   rn   r¸  r#  rU  r]   r]   r]   r^   ÚBizarreI  ry   r^  rP   ra  zno members with value 1)
r   r,  r¸  r#  r	  rû  rU  ra   r²   Ú
__invert__)rf   r^  r]   r]   r^   Útest_bizarreH  s   zTestFlag.test_bizarrec                 C   s¾   G dd„ dt ƒ}|  |j|j|jB v ¡ |  |j|jv ¡ |  |dƒ|j¡ |  td|d¡ G dd„ dtƒ}|  |j|j|jB v ¡ |  |j|jv ¡ |  |dƒ|j¡ |  	|dƒj
d¡ d S )Nc                   @   ó   e Zd ZdZdZdeB ZdS )z,TestFlag.test_skipped_flag.<locals>.SkipFlagrr   rs   r~   N©rl   rm   rn   r  r  r  r]   r]   r]   r^   ÚSkipFlagT  r  rc  rå  zSkipFlag.. invalid value 42é*   c                   @   ra  )z/TestFlag.test_skipped_flag.<locals>.SkipIntFlagrr   rs   r~   Nrb  r]   r]   r]   r^   ÚSkipIntFlag^  r  re  )r   rˆ  r  r  r  r,  ra   r²   r   r	  r
  )rf   rc  re  r]   r]   r^   Útest_skipped_flagS  s   zTestFlag.test_skipped_flagc                 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                   @   rØ  )z.TestFlag.test_multiple_mixin.<locals>.AllMixinc                 S   ó<   t | ƒ}d }|r|d }|dd … D ]}||O }q|| _|S ©Nr   rr   ©rû  ÚALL©r,  rç  Ú	all_valuer%   r]   r]   r^   rj  j  ó   
z2TestFlag.test_multiple_mixin.<locals>.AllMixin.ALLN©rl   rm   rn   rÈ   rj  r]   r]   r]   r^   ÚAllMixini  rä  ro  c                   @   r›   )z.TestFlag.test_multiple_mixin.<locals>.StrMixinc                 S   rê  rÉ   rë  rž   r]   r]   r^   rP  u  rÒ   z6TestFlag.test_multiple_mixin.<locals>.StrMixin.__str__Nrì  r]   r]   r]   r^   rí  t  r¡   rí  c                   @   rþ   ©z+TestFlag.test_multiple_mixin.<locals>.Colorr÷  Nrø  r]   r]   r]   r^   rÜ   w  r  rÜ   rr   rs   r~   r´  rù  c                   @   rþ   rp  rø  r]   r]   r]   r^   rÜ     r  rÛ   c                   @   rþ   rp  rø  r]   r]   r]   r^   rÜ   ‹  r  )	r'  r   r	  r  r
  r  r  rj  r?  )rf   ro  rí  rÜ   r]   r]   r^   r   h  s(   zTestFlag.test_multiple_mixinú!Threading required for this test.c                    óŒ   G dd„ dt ƒ‰ tƒ ‰dg‰‡ ‡‡fdd„‰‡fdd„tdƒD ƒ}|D ]}| ¡  q#|D ]}| ¡  q,|  ˆd	 d
¡ |  dtˆƒd¡ d S )Nc                   @   óP   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   ó   | |u S rÉ   r]   r\  r]   r]   r^   r]  £  r    z7TestFlag.test_unique_composite.<locals>.TestFlag.__eq__c                 S   rÁ  rÉ   ©Úhashr)  rž   r]   r]   r^   rN  ¥  rÒ   z9TestFlag.test_unique_composite.<locals>.TestFlag.__hash__N©rl   rm   rn   rØ   r"   ræ  rç  rC  ÚfourÚfiveÚsixÚsevenÚeightr]  rN  r]   r]   r]   r^   rŽ  ™  ó    rŽ  Fc                     ó@   zt dƒD ]	} ˆ ˆ | ƒ¡ qW d S  ty   dˆd< Y d S w ©Né   Tr   ©r­   rB   r®   ©rŽ  ©rŽ  ÚfailedÚseenr]   r^   Ú
cycle_enumª  ó   ÿÿz2TestFlag.test_unique_composite.<locals>.cycle_enumc                    ó   g | ]}t jˆ d ‘qS ©)r¶   ©Ú	threadingÚThread©rÜ  r–  ©r‡  r]   r^   rÞ  ±  ó    
ÿÿ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³   r…  r	  rú  ©rf   ÚthreadsÚtr]   ©rŽ  r‡  r…  r†  r^   Útest_unique_composite–  ó    
þ

þ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 ] }zt|ƒ}W  n ty3 }	 z|	}
d}W Y d }	~	 nd }	~	ww |r8|
‚d|d  f| S )Nrr   FTrs   )rR  r6   r®   )ró  r·   rÂ  Úlast_valuesrg   rh   rÔ  Ú
last_valueÚhigh_bitr  rº   r]   r]   r^   rÅ  Â  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 )Nr¢  c                 s   r£  rÉ   r¤  rÛ  r]   r]   r^   r¥  Ö  r¦  zrTestFlag.test_init_with_autovalue_and_generate_next_value.<locals>.Color._create_pseudo_member_.<locals>.<genexpr>)rû  Ú_iter_member_rd   Ú_create_pseudo_member_r³   r@  )r,  r
  rç  Úpseudo_member©rÜ   rk   r]   r^   r  Ò  s   z_TestFlag.test_init_with_autovalue_and_generate_next_value.<locals>.Color._create_pseudo_member_rE  rG  r«  r¬  rm  )rl   rm   rn   r  rÅ  rô  r  rQ  rR  rÇ  rÈ  rÉ  ro   r]   r÷  rj   r^   rÜ   À  s    rÜ   rô   rž   r]   r÷  r^   Ú0test_init_with_autovalue_and_generate_next_value¿  rÒ  z9TestFlag.test_init_with_autovalue_and_generate_next_valuec                    s   G ‡ fdd„dt tƒ‰ d S )Nc                       óZ   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   rž  r=  rŸ  r   r]   r]   r^   r(  â  rÜ  zFTestFlag.test_autovalue_and_generate_next_value.<locals>.Color.__new__c                 _   ó   d| f| S r†  r]   rÄ  r]   r]   r^   rÅ  è  râ  zTTestFlag.test_autovalue_and_generate_next_value.<locals>.Color._generate_next_value_c                    ó8   t |  |¡ƒ}d dd„ |D ƒ¡}tˆ | ƒ ||¡}|S )Nr¢  c                 s   r£  rÉ   r¤  rÛ  r]   r]   r^   r¥  ð  r¦  zhTestFlag.test_autovalue_and_generate_next_value.<locals>.Color._create_pseudo_member_.<locals>.<genexpr>©rû  rœ  r³   rd   r  ©r,  r
  rç  r@  rž  rŸ  r]   r^   r  ì  ó   zUTestFlag.test_autovalue_and_generate_next_value.<locals>.Color._create_pseudo_member_r­  r®  r¯  r±  r·  r¹  rº  r»  ©rl   rm   rn   rØ   r(  rÇ  rÅ  rô  r  rÊ  rË  rÌ  rÎ  rÔ  rÖ  r×  rØ  ro   r]   r÷  rj   r^   rÜ   à  s    
rÜ   )r?  r   rž   r]   r÷  r^   Ú&test_autovalue_and_generate_next_valueß  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                       r¡  )z%TestFlag.test_subclass.<locals>.Colorr¢  c                 S   rž  r=  rŸ  r   r]   r]   r^   r(    rÜ  z-TestFlag.test_subclass.<locals>.Color.__new__c                 _   r£  r†  r]   rÄ  r]   r]   r^   rÅ  	  râ  z;TestFlag.test_subclass.<locals>.Color._generate_next_value_c                    r¤  )Nr¢  c                 s   r£  rÉ   r¤  rÛ  r]   r]   r^   r¥    r¦  zOTestFlag.test_subclass.<locals>.Color._create_pseudo_member_.<locals>.<genexpr>r¥  r¦  rŸ  r]   r^   r    r§  z<TestFlag.test_subclass.<locals>.Color._create_pseudo_member_r­  r®  r¯  r±  r·  r¹  rº  r»  r¨  r]   r÷  rj   r^   rÜ     s    
rÜ   ú[30mr­  ©r?  r   rˆ  rP  rÊ  r	  r@  rž   r]   r÷  r^   Útest_subclass   s
   zTestFlag.test_subclassc                    ól   G ‡ fdd„dt tƒ}G dd„ d|ƒ‰ |  tˆ jˆ ƒ¡ |  tˆ jt ƒ¡ |  ˆ jd¡ |  ˆ jjd¡ d S )Nc                       ó*   e Zd Zdd„ Ze‡‡ fdd„ƒZ‡  ZS )z-TestFlag.test_sub_subclass_1.<locals>.StrFlagc                 S   rž  r=  rŸ  r   r]   r]   r^   r(  %  rÜ  z5TestFlag.test_sub_subclass_1.<locals>.StrFlag.__new__c                    r¤  )Nr¢  c                 s   r£  rÉ   r¤  rÛ  r]   r]   r^   r¥  /  r¦  zWTestFlag.test_sub_subclass_1.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>r¥  r¦  rŸ  r]   r^   r  +  r§  zDTestFlag.test_sub_subclass_1.<locals>.StrFlag._create_pseudo_member_©rl   rm   rn   r(  rô  r  ro   r]   r÷  rj   r^   ÚStrFlag$  ó    r°  c                   @   ó0   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©rl   rm   rn   rØ   rÊ  rË  rÌ  rÎ  rÔ  rÖ  r×  rØ  r]   r]   r]   r^   rÜ   2  ó    rÜ   rª  r­  r«  ©rf   r°  r]   r÷  r^   Útest_sub_subclass_1#  s   zTestFlag.test_sub_subclass_1c                    r­  )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                 _   r£  r†  r]   rÄ  r]   r]   r^   rÅ  E  râ  zCTestFlag.test_sub_subclass_2.<locals>.StrFlag._generate_next_value_c                    r¤  )Nr¢  c                 s   r£  rÉ   r¤  rÛ  r]   r]   r^   r¥  L  r¦  zWTestFlag.test_sub_subclass_2.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>r¥  r¦  rŸ  r]   r^   r  H  r§  zDTestFlag.test_sub_subclass_2.<locals>.StrFlag._create_pseudo_member_)rl   rm   rn   rÇ  rÅ  rô  r  ro   r]   r÷  rj   r^   r°  D  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   rž  r=  rŸ  r   r]   r]   r^   r(  R  rÜ  z3TestFlag.test_sub_subclass_2.<locals>.Color.__new__r­  r®  r¯  r±  r·  r¹  rº  r»  N)rl   rm   rn   rØ   r(  rÊ  rË  rÌ  rÎ  rÔ  rÖ  r×  rØ  r]   r]   r]   r^   rÜ   P  s    rÜ   rª  r­  r«  rµ  r]   r÷  r^   Útest_sub_subclass_2C  s   zTestFlag.test_sub_subclass_2c                    r­  )Nc                       r®  )z-TestFlag.test_sub_subclass_3.<locals>.StrFlagc                 S   rž  r=  rŸ  r   r]   r]   r^   r(  i  rÜ  z5TestFlag.test_sub_subclass_3.<locals>.StrFlag.__new__c                    r¤  )Nr¢  c                 s   r£  rÉ   r¤  rÛ  r]   r]   r^   r¥  s  r¦  zWTestFlag.test_sub_subclass_3.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>r¥  r¦  rŸ  r]   r^   r  o  r§  zDTestFlag.test_sub_subclass_3.<locals>.StrFlag._create_pseudo_member_r¯  r]   r÷  rj   r^   r°  h  r±  r°  c                   @   r²  )z+TestFlag.test_sub_subclass_3.<locals>.Colorr¢  r­  r®  r¯  r±  r·  r¹  rº  r»  Nr³  r]   r]   r]   r^   rÜ   w  r´  rÜ   rª  r­  r«  rµ  r]   r÷  r^   Útest_sub_subclass_3g  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                   @   rî  )z-TestFlag.test_sub_subclass_4.<locals>.StrFlagc                 S   rž  r=  rŸ  r   r]   r]   r^   r(  Š  rÜ  z5TestFlag.test_sub_subclass_4.<locals>.StrFlag.__new__c                 W   r¡  )Nr¢  c                 s   r£  rÉ   r¤  rÛ  r]   r]   r^   r¥  ’  r¦  z^TestFlag.test_sub_subclass_4.<locals>.StrFlag._create_pseudo_member_values_.<locals>.<genexpr>r§  r¨  r]   r]   r^   r©    rª  zKTestFlag.test_sub_subclass_4.<locals>.StrFlag._create_pseudo_member_values_N)rl   rm   rn   r(  rô  r©  r]   r]   r]   r^   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   rF  rG  rI  rž   r]   r]   r^   rÁ  ¢  rJ  z4TestFlag.test_sub_subclass_4.<locals>.Color.__repr__N)rl   rm   rn   rØ   rÊ  rË  rÌ  rÎ  rÔ  rÖ  r×  rØ  rÁ  r]   r]   r]   r^   rÜ   •  s    rÜ   rª  r­  z[30;45mz30;45z<Color.FG_Black|BG_Magenta>)	r?  r   rˆ  rP  rÊ  r	  r@  rÖ  rŒ  )rf   r°  rÜ   Úcolorsr]   r]   r^   Ú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                       r®  )z8TestFlag.test_sub_subclass_with_new_new.<locals>.StrFlagc                 S   rž  r=  rŸ  r   r]   r]   r^   r(  ±  rÜ  z@TestFlag.test_sub_subclass_with_new_new.<locals>.StrFlag.__new__c                    r¤  )Nr¢  c                 s   r£  rÉ   r¤  rÛ  r]   r]   r^   r¥  »  r¦  zbTestFlag.test_sub_subclass_with_new_new.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>r¥  r¦  )r°  rk   r]   r^   r  ·  r§  zOTestFlag.test_sub_subclass_with_new_new.<locals>.StrFlag._create_pseudo_member_r¯  r]   ©r°  rj   r^   r°  °  r±  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Á  )rú  r?  r(  r)  r@  r  )r,  r
  Ústringr  rB  r¾   r]   r]   r^   r(  Á  s   z>TestFlag.test_sub_subclass_with_new_new.<locals>.Color.__new__)r­  Úblk)r®  rÙ   )r¯  Úgrn)r±  Úblu)r·  Úylw)r¹  Úmag)rº  Úcyn)r»  Úwhtc                 S   ó<   | j d urd| jj| j f S d| jjd dd„ | D ƒ¡f S )NrH  r½  r¾  c                 S   rÙ  r]   rò  rÛ  r]   r]   r^   rÞ  ×  rß  zSTestFlag.test_sub_subclass_with_new_new.<locals>.Color.__repr__.<locals>.<listcomp>©rK  rk   rl   r³   rž   r]   r]   r^   rÁ  Ó  ó   
 z?TestFlag.test_sub_subclass_with_new_new.<locals>.Color.__repr__N)rl   rm   rn   rØ   r(  rÊ  rË  rÌ  rÎ  rÔ  rÖ  r×  rØ  rÁ  r]   r]   r]   r^   rÜ   ¿  s    rÜ   ÚBlkr½  )r?  r   rˆ  rP  rÊ  r	  rÁ  r  rß   r]   r»  r^   Útest_sub_subclass_with_new_new¯  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                   @   rÕ   )z7TestFlag.test_subclass_with_default_new.<locals>.MyFlagzthis these theotherr{  r|  ÚthingimibobsN)rl   rm   rn   rØ   r}  r~  rÅ  r]   r]   r]   r^   ÚMyFlagÞ  rÝ   rÊ  r{  rr   r|  rs   rÉ  r~   )r?  r   r	  r}  r
  r~  rÅ  )rf   rÊ  r]   r]   r^   Ú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   rž  r=  rŸ  r   r]   r]   r^   r(  í  rÜ  z5TestFlag.test_subclass_a_bunch.<locals>.Color.__new__c                 _   r£  r†  r]   rÄ  r]   r]   r^   rÅ  ó  râ  zCTestFlag.test_subclass_a_bunch.<locals>.Color._generate_next_value_c                    r¤  )Nr¢  c                 s   r£  rÉ   r¤  rÛ  r]   r]   r^   r¥  ú  r¦  zWTestFlag.test_subclass_a_bunch.<locals>.Color._create_pseudo_member_.<locals>.<genexpr>r¥  r¦  rŸ  r]   r^   r  ö  r§  zDTestFlag.test_subclass_a_bunch.<locals>.Color._create_pseudo_member_r­  r®  r¯  r±  r·  r¹  rº  r»  c                 S   rÄ  )NrH  r½  r¾  c                 S   rÙ  r]   rò  rÛ  r]   r]   r^   rÞ    rß  zJTestFlag.test_subclass_a_bunch.<locals>.Color.__repr__.<locals>.<listcomp>rÅ  rž   r]   r]   r^   rÁ  	  rÆ  z6TestFlag.test_subclass_a_bunch.<locals>.Color.__repr__)rl   rm   rn   rØ   r(  rÇ  rÅ  rô  r  rÊ  rË  rÌ  rÎ  rÔ  rÖ  r×  rØ  rÁ  ro   r]   r÷  rj   r^   rÜ   ë  s     
rÜ   z[34;45mz34;45zFG_Blue|BG_Magenta)
r?  r   rÖ  rÎ  rˆ  rP  r,  r	  r@  ró  )rf   ÚPurpler]   r÷  r^   Útest_subclass_a_bunchê  s   $zTestFlag.test_subclass_a_bunchc                    r'  )Nc                       r(  )z+TestFlag.test_init_subclass.<locals>.MyEnumc                    r)  r*  r,  r0  r1  r]   r^   r-    r2  z=TestFlag.test_init_subclass.<locals>.MyEnum.__init_subclass__r3  r]   r4  rj   r^   rÄ    r5  rÄ  c                       r6  )z.TestFlag.test_init_subclass.<locals>.TheirEnumc                    r7  r8  r:  r0  r<  r]   r^   r-    r=  z@TestFlag.test_init_subclass.<locals>.TheirEnum.__init_subclass__r3  r]   r>  rj   r^   r9    rÓ  r9  c                   @   r›   )z.TestFlag.test_init_subclass.<locals>.WhoseEnumc                 [   r«  rÉ   r]   r0  r]   r]   r^   r-  #  r­  z@TestFlag.test_init_subclass.<locals>.WhoseEnum.__init_subclass__Nr?  r]   r]   r]   r^   r@  "  r¡   r@  c                   @   r  )z+TestFlag.test_init_subclass.<locals>.NoEnumrr   NrA  r]   r]   r]   r^   rB  %  r  rB  r/  r;  Fc                   @   r›   )z,TestFlag.test_init_subclass.<locals>.OurEnumc                 [   rC  rD  rF  r0  r]   r]   r^   r-  .  rÒ   z>TestFlag.test_init_subclass.<locals>.OurEnum.__init_subclass__Nr?  r]   r]   r]   r^   rE  -  r¡   rE  c                   @   r›   )z.TestFlag.test_init_subclass.<locals>.WhereEnumc                 [   r«  rÉ   r]   r0  r]   r]   r^   r-  1  r­  z@TestFlag.test_init_subclass.<locals>.WhereEnum.__init_subclass__Nr?  r]   r]   r]   r^   rG  0  r¡   rG  c                   @   r  )z.TestFlag.test_init_subclass.<locals>.NeverEnumrr   NrA  r]   r]   r]   r^   rH  3  r  rH  )r   r	  r0  r…  r.  rI  r]   rJ  r^   rK    rL  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                   @   r|   )z/TestFlag.test_int_long_conversion.<locals>.Permrr   rs   r~   ì        ì            N)rl   rm   rn   ÚEXECÚWRITEÚREADÚMSB32ÚMSB64r]   r]   r]   r^   r”  <  r„   r”  rÎ  l       rÏ  l           )r   r	  rÓ  rÑ  rÔ  ©rf   r”  r]   r]   r^   Útest_int_long_conversion;  s
   z!TestFlag.test_int_long_conversionc                 C   s  G dd„ dt ƒ}|  |jjd¡ |  |jjd ¡ |  td¡ |j|jB  W d   ƒ n1 s/w   Y  |  td¡ |j|j@  W d   ƒ n1 sKw   Y  |  td¡ |j|jA  W d   ƒ n1 sgw   Y  |  td¡ |j  W d   ƒ d S 1 s‚w   Y  d S )Nc                   @   s   e Zd ZdZdZdS )z5TestFlag.test_none_member.<locals>.FlagWithNoneMemberrr   N)rl   rm   rn   r  r  r]   r]   r]   r^   ÚFlagWithNoneMemberL  r˜   r×  rr   zA'FlagWithNoneMember.E' cannot be combined with other flags with |zA'FlagWithNoneMember.E' cannot be combined with other flags with &zB'FlagWithNoneMember.E' cannot be combined with other flags with \^z)'FlagWithNoneMember.E' cannot be inverted)r   r	  r  r
  r,  r  ra   rê   )rf   r×  r]   r]   r^   Útest_none_memberK  s   ÿÿÿ
"ÿzTestFlag.test_none_memberN)=rl   rm   rn   rÍ   r+  rï  ró  rø  rF  rq  rR  rù  rû  rý  rÑ  r  rÚ  r  r  r  r"  r'  r(  r*  rÇ  r?  rA  rB  ra  rc  re  rh  rj  rO  rQ  rR  rV  rç  rX  r]  rþ  r`  rf  r   ÚunittestÚ
skipUnlessrŒ  r—  r   r©  r¬  r¶  r·  r¸  rº  rÈ  rË  rÍ  rK  rÖ  rØ  r]   r]   r]   r^   rŽ  !  st    ] -$

	) 
.
( !# $!'.-$rŽ  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 e! "e#d<¡d=d>„ ƒZ$d?d@„ Z%dAS )BÚ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                   @   rÕ   )zTestIntFlag.setUp.<locals>.Permr  r~   rs   rr   Nr  r]   r]   r]   r^   r”  a  rÝ   r”  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   rr   rs   r~   N)rl   rm   rn   ry  r  r  r  r–  r]   r]   r]   r^   rÜ   g  s    rÜ   c                   @   r…   )zTestIntFlag.setUp.<locals>.Openúnot a good flag candidater   rr   rs   rt   rÛ  N©	rl   rm   rn   rÍ   rÜ  rÝ  rÞ  rß  rà  r]   r]   r]   r^   rá  n  r‰   rá  )r   r”  rÜ   rá  )rf   r”  rÜ   rá  r]   r]   r^   r+  _  s   
zTestIntFlag.setUpc           
      C   s  G dd„ dt ƒ}|\}}|j}|  | |dƒ¡ |  |dƒ|dƒ¡ |  |dƒ||B ¡ |  ||B  |dƒ¡ G dd„ dt ƒ}|\}}}|j}	|  | ||B ¡ |  |dƒ||B ¡ |  |	 |dƒ¡ |  |d	ƒ|dƒ¡ |  |dƒ||B |B ¡ |  ||B |B  |dƒ¡ d S )
Nc                   @   rÕ   )z=TestIntFlag.test_closed_invert_expectations.<locals>.ClosedABr  rr   rs   rt   Nrâ  r]   r]   r]   r^   rä  {  rÝ   rä  r   r²  rP   c                   @   r|   )z>TestIntFlag.test_closed_invert_expectations.<locals>.ClosedXYZræ  r~   rs   rr   r´  Nrç  r]   r]   r]   r^   rê  Š  r„   rê  r±  r¶  )r   rã  r,  rì  r]   r]   r^   rï  z  s    
z+TestIntFlag.test_closed_invert_expectationsc           
      C   sd  G dd„ dt ƒ}|\}}|j}|  | |¡ |  | |¡ |  ||B  |dƒ¡ |  | |dƒ¡ |  |dƒ ||B ¡ |  |dƒ ||B ¡ G dd„ dt ƒ}|\}}}|j}	|  | ||B ¡ |  | ||B ¡ |  | ||B ¡ |  ||B  |¡ |  ||B  |¡ |  ||B  |¡ |  ||B |B  |dƒ¡ |  |	 |dƒ¡ |  |dƒ ||B |B ¡ d S )Nc                   @   rÕ   )z9TestIntFlag.test_open_invert_expectations.<locals>.OpenABr  rr   rs   r´  Nrâ  r]   r]   r]   r^   rð  ›  rÝ   rð  r   r²  c                   @   r|   )z:TestIntFlag.test_open_invert_expectations.<locals>.OpenXYZræ  r~   rs   rr   r‚  Nrç  r]   r]   r]   r^   rñ  ª  r„   rñ  )r   rã  r,  rˆ  rò  r]   r]   r^   ró  š  s*   
z)TestIntFlag.test_open_invert_expectationsc                 C   sŒ  G dd„ dt ƒ}|  t|ƒ|j|jg¡ |  |j |j¡ |  |j|j¡ |  |jjd¡ G dd„ dt ƒ}|  t|ƒ|j|jg¡ |  |j |j¡ |  |j|j¡ |  |jjd¡ G dd„ dt ƒ}|  t|ƒ|j|j|jg¡ |  |j |j|jB ¡ |  |j|j|jB ¡ |  |jjd¡ G dd„ dt ƒ}|  t|ƒ|j|j|jg¡ |  |j |j|jB ¡ |  |j|j|jB ¡ |  |jjd¡ d S )	Nc                   @   s$   e Zd ZdZdZdZeeB ZdZdS )ú3TestIntFlag.test_assigned_negative_value.<locals>.Xrô  rr   rs   rå  Nrõ  r]   r]   r]   r^   r“  ¾  s    r“  rs   c                   @   s*   e Zd ZdZeƒ Zeƒ ZeeB Ze ZdS )rÞ  rô  N)	rl   rm   rn   rØ   r"   r  r  r  r  r]   r]   r]   r^   r“  É  s    
c                   @   ó0   e Zd ZdZeƒ Zeƒ ZeeB Ze Zeƒ Z	dS ©z3TestIntFlag.test_assigned_negative_value.<locals>.Yrö  N©
rl   rm   rn   rØ   r"   r  r  r  r  r  r]   r]   r]   r^   rè  Ô  ó    
rè  ra  c                   @   rß  rà  rá  r]   r]   r]   r^   rè  à  râ  )	r   r	  rû  r  r  r,  r  r
  r  r÷  r]   r]   r^   rø  ½  s(   z(TestIntFlag.test_assigned_negative_valuec                    r,  )Nc                   @   r-  )	z-TestIntFlag.test_set_name.<locals>.DescriptorNc                 S   r.  rÉ   r/  r1  r]   r]   r^   rÑ   ï  r3  z5TestIntFlag.test_set_name.<locals>.Descriptor.__get__c                 S   r4  rÉ   r/  r5  r]   r]   r^   rƒ  ô  r6  z5TestIntFlag.test_set_name.<locals>.Descriptor.__set__c                 S   r7  rÉ   rò  r8  r]   r]   r^   r:  ö  rÒ   z:TestIntFlag.test_set_name.<locals>.Descriptor.__set_name__rÉ   r;  r]   r]   r]   r^   r<  í  r=  r<  c                       r>  )z)TestIntFlag.test_set_name.<locals>.AnEnumrr   Nr?  r]   r@  r]   r^   rA  ù  rB  rA  rç  rC  rD  rE  r]   r@  r^   rF  ì  rG  zTestIntFlag.test_set_namec                 C   rH  )Nc                   @   r“   )z/TestIntFlag.test_private_names.<locals>.PrivaterI  rJ  NrK  r]   r]   r]   r^   rN    r˜   rN  r   rI  rJ  rO  rQ  r]   r]   r^   rR    rS  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 )Nr  rÞ  rs   )rÜ   rá  r…  rˆ  r  rÞ  rü  r]   r]   r^   rý    rþ  zTestIntFlag.test_membershipc                    sR   | j ‰ |  t‡ fdd„¡ |  dˆ jv ¡ |  ˆ jˆ jv ¡ |  ˆ jˆ jv ¡ d S )Nc                      rÿ  rÎ  )r  r]   r÷  r]   r^   rø    rá  z2TestIntFlag.test_member_contains.<locals>.<lambda>rr   )rÜ   r¨  rê   rˆ  r  r–  rž   r]   r÷  r^   rÑ    s
   z TestIntFlag.test_member_containsc                 C   r  r  r  rß   r]   r]   r^   r     r  zTestIntFlag.test_name_lookupc                 C   s¸   | j }| j}|D ]}|  t||ƒ¡ |  ||j¡ q|  t|j|jB |ƒ¡ |  |j|jB d¡ |D ]}|  t||ƒ¡ |  ||j¡ q2|  t|j|j	B |ƒ¡ |  |j|j	B d¡ d S rä  )
r”  rá  rˆ  rP  r	  r
  r’  r“  rÝ  rÞ  )rf   r”  rá  rë  r]   r]   r^   Ú	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«  rG  Ú6Ú7r   rE  Ú3Ú5rP   Ú524288Ú524289Ú524291Ú524290r  r  r]   r]   r^   r  5  r  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ƒƒd	¡ |  	t
d¡ t|jdB ƒ W d   ƒ n1 s©w   Y  |  	t
d¡ t|dƒƒ W d   ƒ n1 sÅw   Y  |  	t
d¡ t|dƒƒ W d   ƒ n1 sáw   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ƒƒd	¡ |  	t
d¡ t|jdB ƒ W d   ƒ n	1 sw   Y  |  	t
d¡ t|dƒƒ W d   ƒ n	1 s­w   Y  |  	t
d¡ t|dƒƒ W d   ƒ n	1 sÊw   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ƒƒd	¡ |  t|dƒƒd
¡ |  t|dƒƒd¡ |  	t
d¡ t|jdB ƒ W d   ƒ n	1 sw   Y  G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd¡ |  t|dƒ ƒd¡ |  t|dƒƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd	¡ |  	t
d¡ t|dƒƒ W d   ƒ n	1 sw   Y  |  	t
d¡ t|dƒƒ W d   ƒ n	1 s1w   Y  |  	t
d¡ t|jdB ƒ W d   ƒ n	1 sOw   Y  |  	t
d¡ t|dƒƒ W d   ƒ n	1 slw   Y  |  	t
d¡ t|dƒƒ W d   ƒ d S 1 sŠw   Y  d S )Nc                   @   rÕ   )ú*TestIntFlag.test_repr_strict.<locals>.Permr  r~   rs   rr   Nr  r]   r]   r]   r^   r”  R  rÝ   r”  r  r	  r
  r  r  r   r  r  r  r¶  zinvalid value 12rú   zinvalid value -13éóÿÿÿzinvalid value -9é÷ÿÿÿc                   @   r|   )rì  r  r~   rs   rr   r´  N©rl   rm   rn   rØ   r‘  r’  r“  rã  r]   r]   r]   r^   r”  m  r„   ú<Perm.MASK: 7>c                   @   r|   )rì  r  r~   rs   rr   r‚  N©rl   rm   rn   rØ   r‘  r’  r“  ÚFUTUREr]   r]   r]   r^   r”  ‰  r„   c                   @   rp   )rì  úR Xr~   rr   N©rl   rm   rn   rØ   r‘  r“  r]   r]   r]   r^   r”  £  ry   rP   zinvalid value 7r´  zinvalid value 2rs   )r   rV   r   Ú
_boundary_r	  rŒ  r‘  r’  r“  ra   r²   rÕ  r]   r]   r^   Útest_repr_strictP  s¶    ÿÿÿ ÿÿÿ ÿÿÿÿÿ$ÿ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¡ |  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¡ |  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¡ |  t|dƒƒd¡ |  t|dƒƒd¡ G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd¡ |  t|dƒ ƒd¡ |  t|dƒƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd	¡ |  t|dƒƒd¡ |  t|dƒƒd	¡ |  t|jdB ƒd¡ |  t|jdB  ƒd¡ |  t|dƒƒd¡ |  t|dƒƒd¡ |  t|dƒƒd¡ d S )Nc                   @   rÕ   )ú+TestIntFlag.test_repr_conform.<locals>.Permr  r~   rs   rr   Nr  r]   r]   r]   r^   r”  ¿  rÝ   r”  r  r	  r
  r  r  r   r  r  r  rú   rî  éÞÿÿÿc                   @   r|   )r÷  r  r~   rs   rr   r´  Nrï  r]   r]   r]   r^   r”  ×  r„   rð  c                   @   r|   )r÷  r  r~   rs   rr   r‚  Nrñ  r]   r]   r]   r^   r”  ð  r„   iæÿÿÿc                   @   rp   )r÷  ró  r~   rr   Nrô  r]   r]   r]   r^   r”  
  ry   rP   r´  rs   iåÿÿÿiÝÿÿÿ)	r   rV   r   rõ  r	  rŒ  r‘  r’  r“  rÕ  r]   r]   r^   Útest_repr_conform½  s’      zTestIntFlag.test_repr_conformc                 C   sN  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¡ |  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¡ 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|jB ƒd¡ |  t|dƒƒd	¡ |  t|dƒ ƒd¡ |  t|dƒƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd	¡ |  t|dƒƒd¡ |  t|dƒƒd¡ |  t|jdB ƒ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>.Permr  r~   rs   rr   N)	rl   rm   rn   rØ   r   rõ  r‘  r’  r“  r]   r]   r]   r^   r”  "  r„   r”  r  r	  r
  r  r  r   r  r  r  rú   Ú12Ú8z-13rí  rî  z-9c                   @   ó$   e Zd ZdZeZdZdZdZdZ	dS )rú  r  r~   rs   rr   r´  N)
rl   rm   rn   rØ   r   rõ  r‘  r’  r“  rã  r]   r]   r]   r^   r”  :  r‰   rð  c                   @   rý  )rú  r  r~   rs   rr   r‚  N)
rl   rm   rn   rØ   r   rõ  r‘  r’  r“  rò  r]   r]   r]   r^   r”  R  r‰   c                   @   s   e Zd ZdZeZdZdZdS )rú  ró  r~   rr   N)rl   rm   rn   rØ   r   rõ  r‘  r“  r]   r]   r]   r^   r”  j  rÝ   rP   r´  rå  rs   r«  )r   r	  rŒ  r‘  r’  r“  rÕ  r]   r]   r^   Ú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¡ |  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¡ |  t|dƒƒd¡ G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd¡ |  t|dƒ ƒd¡ |  t|dƒƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd	¡ |  t|dƒƒd¡ |  t|dƒƒd¡ |  t|jdB ƒd¡ |  t|jdB  ƒd¡ |  t|dƒƒd¡ |  t|dƒƒd¡ d S )Nc                   @   rÕ   )ú(TestIntFlag.test_repr_keep.<locals>.Permr  r~   rs   rr   Nr  r]   r]   r]   r^   r”    rÝ   r”  r  r	  r
  r  r  r   r  r  r  rú   z<Perm.R|8: 12>z	<Perm: 8>rî  c                   @   r|   )rÿ  r  r~   rs   rr   r´  Nrï  r]   r]   r]   r^   r”  –  r„   rð  rø  z<Perm.R|W|24: 30>c                   @   r|   )rÿ  r  r~   rs   rr   r‚  Nrñ  r]   r]   r]   r^   r”  ¯  r„   c                   @   rp   )rÿ  ró  r~   rr   Nrô  r]   r]   r]   r^   r”  È  ry   rP   r´  z<Perm.R|X|2: 7>rs   z	<Perm: 2>z<Perm.X|2: 3>z<Perm.R|26: 30>)	r   rV   r   rõ  r	  rŒ  r‘  r’  r“  rÕ  r]   r]   r^   Útest_repr_keep}  sŒ      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ƒƒd¡ |  
td¡ t|dƒƒ W d   ƒ n1 s˜w   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¡ |  t|dƒƒd¡ |  t|dƒƒd¡ d S )Nc                   @   r…   ©z(TestIntFlag.test_repr_open.<locals>.OpenrÜ  r   rr   rs   rt   rÛ  NrÝ  r]   r]   r]   r^   rá  Þ  r‰   rá  r  r  r  r  r  r  r  r  r±  zinvalid value 4r~   c                   @   r…   r  rÝ  r]   r]   r]   r^   rá  ô  r‰   c                   @   r…   r  rÝ  r]   r]   r]   r^   rá  	  r‰   r¬  iO  Ú591iÿÿïÿz-1048577)r   rV   r   rõ  r	  rŒ  rÜ  rÝ  rß  rà  ra   r²   r   r   )rf   rá  r]   r]   r^   Útest_repr_openÝ  s\   ÿzTestIntFlag.test_repr_openc                 C   sL  | j }|D ]s}|D ]%}|  ||B |j|jB ¡ |  ||B j|j|jB ¡ |  t||B ƒ|¡ q	tdƒD ]D}|  ||B |j|B ¡ |  ||B j|j|B ¡ |  t||B ƒ|¡ |  ||B ||jB ¡ |  ||B j||jB ¡ |  t||B ƒ|¡ q3q|D ]}|  ||B |¡ |  |dB |¡ |  d|B |¡ q{| j}|  |j|jB |j¡ d S ©Nrú   r   ©	r”  r	  r
  r,  rl  r­   rá  rÜ  rà  r   r]   r]   r^   r"     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 ]4}|  ||@ |j|j@ d||f ¡ |  ||@ j|j|j@ d||f ¡ |  t||@ ƒ|d||f ¡ q1t	dƒD ]D}|  ||@ |j|@ ¡ |  ||@ j|j|@ ¡ |  t||@ ƒ|¡ |  ||@ ||j@ ¡ |  ||@ j||j@ ¡ |  t||@ ƒ|¡ qjq-|D ]}|  ||@ |¡ |  |d@ |¡ |  d|@ |¡ q²| j
}	|  |	j|	j@ |	j¡ d S )Nr   zi is %r, j is %rrú   r´  )r”  r‘  r’  r“  rû  r	  r
  r,  rl  r­   rá  rÜ  rà  r#  r]   r]   r^   r'  5  s2   "$ úzTestIntFlag.test_andc                 C   sR  | j }|D ]s}|D ]%}|  ||A |j|jA ¡ |  ||A j|j|jA ¡ |  t||A ƒ|¡ q	tdƒD ]D}|  ||A |j|A ¡ |  ||A j|j|A ¡ |  t||A ƒ|¡ |  ||A ||jA ¡ |  ||A j||jA ¡ |  t||A ƒ|¡ q3q|D ]}|  |dA |¡ |  d|A |¡ q{| j}|  |j|jA |j¡ |  |j|jA |j¡ d S r  r  r   r]   r]   r^   r(  O  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 ]}|  | | j¡ |  t| ƒ|¡ |  |  |¡ q-|D ]
}|  |  |¡ qL| j	}|  |j
|j
 @ |j¡ |  |j
|jB |j
 @ |j¡ d S r   )r”  r‘  r’  r“  rû  r	  r
  r,  rl  rá  rÝ  rÜ  rà  r)  r]   r]   r^   r*  d  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É   )r”  r‘  r’  r“  r	  rû  )rf   r”  ÚNoPermr&  r]   r]   r^   Ú	test_iteru  s    zTestIntFlag.test_iterc                 C   sÐ   t ddƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  ||j|j|jg¡ td ¡ ƒD ]7\}}d|> }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  ||¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q.d S rC  ©r   rû  r	  rú  r‘  r’  r“  r‰  rŠ  r
  rl  r!  ró  rE  r,  rF  r]   r]   r^   ra  }  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 ]7\}}d|> }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  ||¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q0d S rH  r  rF  r]   r]   r^   rc    ó   ø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 ]7\}}d|> }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  ||¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q0d S rJ  r  rF  r]   r]   r^   re    r	  z1TestIntFlag.test_programatic_function_string_listc                 C   sØ   t ddƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  ||j|j|jg¡ td ¡ ƒD ];\}}dd| d > }||ƒ}|  |j	|¡ |  t
|j	ƒt¡ |  ||¡ |  |j|¡ |  ||¡ |  t
|ƒ|¡ q.d S rK  r  rF  r]   r]   r^   rh  ­  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 ];\}}dd| d > }||ƒ}|  |j
|¡ |  t|j
ƒt¡ |  ||¡ |  |j|¡ |  ||¡ |  t|ƒ|¡ q0d S rK  )r   r7   rû  r	  rú  r‘  r’  r“  r‰  rŠ  r
  rl  r!  ró  rE  r,  rF  r]   r]   r^   rj  ½  s   øz/TestIntFlag.test_programatic_function_from_dictc           	      C   rS  rÉ   rT  rU  r]   r]   r^   rV  Í  rW  zTestIntFlag.test_containmentc                 C   r+  rÉ   r,  r-  r]   r]   r^   rÇ  á  r.  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                   @   rØ  )z1TestIntFlag.test_multiple_mixin.<locals>.AllMixinc                 S   rg  rh  ri  rk  r]   r]   r^   rj  ë  rm  z5TestIntFlag.test_multiple_mixin.<locals>.AllMixin.ALLNrn  r]   r]   r]   r^   ro  ê  rä  ro  c                   @   r›   )z1TestIntFlag.test_multiple_mixin.<locals>.StrMixinc                 S   rê  rÉ   rë  rž   r]   r]   r^   rP  ö  rÒ   z9TestIntFlag.test_multiple_mixin.<locals>.StrMixin.__str__Nrì  r]   r]   r]   r^   rí  õ  r¡   rí  c                   @   rþ   ©z.TestIntFlag.test_multiple_mixin.<locals>.Colorr÷  Nrø  r]   r]   r]   r^   rÜ   ø  r  rÜ   rr   rs   r~   r´  r¬  c                       ó(   e Zd ZdZ” jZeƒ Zeƒ Zeƒ ZdS r
  ©	rl   rm   rn   rØ   rP  r"   r  r  r  r]   ©rí  r]   r^   rÜ     ó    
rÛ   c                       r  r
  r  r]   r  r]   r^   rÜ     r  )	r'  r   r	  r  r
  r  r  rj  r?  )rf   ro  rÜ   r]   r  r^   r   é  s(   zTestIntFlag.test_multiple_mixinrq  c                    rr  )Nc                   @   rs  )z3TestIntFlag.test_unique_composite.<locals>.TestFlagrt  c                 S   ru  rÉ   r]   r\  r]   r]   r^   r]  &  r    z:TestIntFlag.test_unique_composite.<locals>.TestFlag.__eq__c                 S   rÁ  rÉ   rv  rž   r]   r]   r^   rN  (  rÒ   z<TestIntFlag.test_unique_composite.<locals>.TestFlag.__hash__Nrx  r]   r]   r]   r^   rŽ    r~  rŽ  Fc                     r  r€  r‚  rƒ  r„  r]   r^   r‡  -  rˆ  z5TestIntFlag.test_unique_composite.<locals>.cycle_enumc                    r‰  rŠ  r‹  rŽ  r  r]   r^   rÞ  4  r  z5TestIntFlag.test_unique_composite.<locals>.<listcomp>rú   r   r‘  r  r’  )r   r  r­   r·   r³   r…  r	  rú  r“  r]   r–  r^   r—    r˜  z!TestIntFlag.test_unique_compositec                    r'  )Nc                       r(  )z.TestIntFlag.test_init_subclass.<locals>.MyEnumc                    r)  r*  r,  r0  r1  r]   r^   r-  D  r2  z@TestIntFlag.test_init_subclass.<locals>.MyEnum.__init_subclass__r3  r]   r4  rj   r^   rÄ  C  r5  rÄ  c                       r6  )z1TestIntFlag.test_init_subclass.<locals>.TheirEnumc                    r7  r8  r:  r0  r<  r]   r^   r-  J  r=  zCTestIntFlag.test_init_subclass.<locals>.TheirEnum.__init_subclass__r3  r]   r>  rj   r^   r9  I  rÓ  r9  c                   @   r›   )z1TestIntFlag.test_init_subclass.<locals>.WhoseEnumc                 [   r«  rÉ   r]   r0  r]   r]   r^   r-  N  r­  zCTestIntFlag.test_init_subclass.<locals>.WhoseEnum.__init_subclass__Nr?  r]   r]   r]   r^   r@  M  r¡   r@  c                   @   r  )z.TestIntFlag.test_init_subclass.<locals>.NoEnumrr   NrA  r]   r]   r]   r^   rB  P  r  rB  r/  r;  Fc                   @   r›   )z/TestIntFlag.test_init_subclass.<locals>.OurEnumc                 [   rC  rD  rF  r0  r]   r]   r^   r-  Y  rÒ   zATestIntFlag.test_init_subclass.<locals>.OurEnum.__init_subclass__Nr?  r]   r]   r]   r^   rE  X  r¡   rE  c                   @   r›   )z1TestIntFlag.test_init_subclass.<locals>.WhereEnumc                 [   r«  rÉ   r]   r0  r]   r]   r^   r-  \  r­  zCTestIntFlag.test_init_subclass.<locals>.WhereEnum.__init_subclass__Nr?  r]   r]   r]   r^   rG  [  r¡   rG  c                   @   r  )z1TestIntFlag.test_init_subclass.<locals>.NeverEnumrr   NrA  r]   r]   r]   r^   rH  ^  r  rH  )r   r	  r0  r…  r.  rI  r]   rJ  r^   rK  B  rL  zTestIntFlag.test_init_subclassN)&rl   rm   rn   rÍ   r+  rï  ró  rø  rF  rR  rý  rÑ  r  rã  r  rö  rù  rþ  r   r  r"  r'  r(  r*  r  ra  rc  re  rh  rj  rV  rÇ  r   rÙ  rÚ  rŒ  r—  rK  r]   r]   r]   r^   rÛ  \  sD     #/
mc]`C
0
(rÛ  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestEmptyAndNonLatinStringsc                 C   s>   |   t¡ tddƒ}| W d   ƒ d S 1 sw   Y  d S )NÚ	empty_abc)rÁ  r  r  )r¨  r²   r   )rf   r  r]   r]   r^   Útest_empty_stringi  s   
"þz-TestEmptyAndNonLatinStrings.test_empty_stringc                 C   ó&   t ddƒ}t|dƒ}|  |jd¡ d S )NÚ	greek_abc)õ   Î±r  r  r  rr   ©r   rc   r	  r
  )rf   r  Úitemr]   r]   r^   Útest_non_latin_character_stringn  ó   

z;TestEmptyAndNonLatinStrings.test_non_latin_character_stringc                 C   r  )NÚ
hebrew_123)õ   ×r«  ræ  r  rr   r  )rf   r  r  r]   r]   r^   Útest_non_latin_number_strings  r  z8TestEmptyAndNonLatinStrings.test_non_latin_number_stringN)rl   rm   rn   r  r  r  r]   r]   r]   r^   r  g  s    r  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                   @   rp   )z+TestUnique.test_unique_clean.<locals>.Cleanrr   r—  g      @N)rl   rm   rn   ræ  rç  r˜  r]   r]   r]   r^   ÚClean}  ry   r  c                   @   rp   )z-TestUnique.test_unique_clean.<locals>.Cleanerrr   rs   rt   N)rl   rm   rn   r”  Údoubler•  r]   r]   r]   r^   ÚCleaner‚  ry   r  )r   r   r   )rf   r  r  r]   r]   r^   Útest_unique_clean|  s   zTestUnique.test_unique_cleanc                 C   sº   zG dd„ dt ƒ}t|ƒ W n ty"   t ¡ d }|jd }Y nw |  d|v ¡ zG dd„ dtƒ}t|ƒ W n tyL   t ¡ d }|jd }Y nw |  d|v ¡ |  d	|v ¡ d S )
Nc                   @   rŒ  )z+TestUnique.test_unique_dirty.<locals>.Dirtyzone tworr   r—  N)rl   rm   rn   re  ræ  rç  r˜  r]   r]   r]   r^   ÚDirtyŠ  rÝ   r!  rr   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 triplerr   rt   N)rl   rm   rn   re  r”  r  r•  Úturkeyr]   r]   r]   r^   ÚDirtier–  r„   r#  zdouble -> singlezturkey -> triple)r   r   r²   r¯   r°   rg   rˆ  r   )rf   r!  rº   Úmessager#  r]   r]   r^   Ú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                   @   rp   )z/TestUnique.test_unique_with_name.<locals>.Sillyrr   r—  rt   Nr‘  r]   r]   r]   r^   r’  ¤  r  r’  c                   @   rÕ   )z1TestUnique.test_unique_with_name.<locals>.Sillierrr   rs   rt   r~   Nr“  r]   r]   r]   r^   r–  ©  s
    r–  )r   r   r   r—  r]   r]   r^   Útest_unique_with_name£  s   z TestUnique.test_unique_with_nameN)rl   rm   rn   rÍ   r   r%  r&  r]   r]   r]   r^   r  y  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;S )<ÚTestNamedTuplec                 C   óà   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                   @   rp   )z5TestNamedTuple.test_explicit_indexing.<locals>.Personr   rr   rs   N©rl   rm   rn   Úager£  rë  r]   r]   r]   r^   ÚPerson´  ry   r+  é   ÚJohnÚDoeé   ÚJaner   rr   rs   ©r   r	  r*  r£  rë  ©rf   r+  Úp1Úp2r]   r]   r^   Útest_explicit_indexing³  s   z%TestNamedTuple.test_explicit_indexingc                 C   r(  )Nc                   @   rÕ   )z5TestNamedTuple.test_implicit_indexing.<locals>.Personúage first lastúperson's ageúperson's first nameúperson's last nameN©rl   rm   rn   re  r*  r£  rë  r]   r]   r]   r^   r+  È  rÝ   r+  r,  r-  r.  r/  r0  r   rr   rs   r1  r2  r]   r]   r^   Ú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                   @   rÕ   )z2TestNamedTuple.test_mixed_indexing.<locals>.Personzage last carsr7  )rs   r9  zperson's carsN)rl   rm   rn   re  r*  rë  Úcarsr]   r]   r]   r^   r+  Ý  rÝ   r+  r,  r-  r.  rt   r/  r0  r®  r   rr   rs   ©r   r	  r*  rë  r<  r2  r]   r]   r^   Útest_mixed_indexingÜ  s"   z"TestNamedTuple.test_mixed_indexingc                 C   s4   G dd„ dt ƒ}|  t|t ƒ¡ |  t|tƒ¡ d S )Nc                   @   rp   )z.TestNamedTuple.test_issubclass.<locals>.Personr   rr   rs   Nr)  r]   r]   r]   r^   r+  ô  ry   r+  ©r   rˆ  rÿ  râ  ©rf   r+  r]   r]   r^   Ú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                   @   rp   )z.TestNamedTuple.test_isinstance.<locals>.Personr   rr   rs   Nr)  r]   r]   r]   r^   r+  ü  ry   r+  r,  r-  r.  ©r   rˆ  rP  râ  ©rf   r+  r3  r]   r]   r^   Útest_isinstanceû  s
   zTestNamedTuple.test_isinstancec                 C   óÚ   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£  rr   ©rë  rs   r,  r-  r.  r/  r0  r   rr   rs   r1  r2  r]   r]   r^   Ú+test_explicit_indexing_after_functional_api  ó   
z:TestNamedTuple.test_explicit_indexing_after_functional_apic                 C   rE  )Nr+  r6  r,  r-  r.  r/  r0  r   rr   rs   r1  r2  r]   r]   r^   Ú+test_implicit_indexing_after_functional_api  rI  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+  )rF  rG  )r<  rt   r,  r-  r.  rt   r/  r0  r®  r   rr   rs   r=  r2  r]   r]   r^   Ú(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+  r6  r?  r@  r]   r]   r^   Ú$test_issubclass_after_functional_api:  s   
z3TestNamedTuple.test_issubclass_after_functional_apic                 C   sJ   t ddƒ}|dddƒ}|  t||ƒ¡ |  t|t ƒ¡ |  t|tƒ¡ d S )Nr+  r6  r,  r-  r.  rB  rC  r]   r]   r^   Ú$test_isinstance_after_functional_api?  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+  r6  r,  r-  r.  )r*  r£  rë  r   rr   rs   r1  rC  r]   r]   r^   Útest_creation_with_all_keywordsF  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+  r6  r,  r-  r.  )r£  rë  r   rr   rs   )rë  r£  r1  rC  r]   r]   r^   Ú test_creation_with_some_keywordsP  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   rr   rs   c                    s0   dd„ |  d¡D ƒ}tˆ | ƒj| gt|ƒ¢R Ž S )Nc                 S   s   g | ]}|  ¡ ‘qS r]   )rC  )rÜ  r  r]   r]   r^   rÞ  g  s    zHTestNamedTuple.test_custom_new.<locals>.Book.__new__.<locals>.<listcomp>r¢  )rŠ  rd   r(  râ  )r,  r¼  rg   )ÚBookrk   r]   r^   r(  f  s   z4TestNamedTuple.test_custom_new.<locals>.Book.__new__)rl   rm   rn   rú  ÚauthorÚgenrer(  ro   r]   ©rP  rj   r^   rP  b  s
    rP  z&The Last Mohican; John Doe; HistoricalzThe Last MohicanúJohn DoeÚ
Historical)r   r	  rú  rQ  rR  )rf   Úb1r]   rS  r^   Útest_custom_newa  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 ]!}|di |¤Ž}dD ]\}}||v r1|| }|  t||ƒ|¡ q%qd S )Nc                   @   rp   )z8TestNamedTuple.test_defaults_in_class.<locals>.Characterr   )rr   Nr¬  )rs   NÚfighterN)rl   rm   rn   ró  ÚgenderÚklassr]   r]   r]   r^   Ú	Charactero  ry   r[  ró  rT  zWilliam PickneyÚscholar)ró  rZ  zSarah Doughteryr­  )ró  rY  zSissy MoonbeamÚ	sorceress)ró  rY  rZ  )rø  )rY  r¬  )rZ  rX  r]   )r   r	  rc   )rf   r[  Úcharr#  ró  r
  r]   r]   r^   Útest_defaults_in_classn  s   
üýùz%TestNamedTuple.test_defaults_in_classc                 C   s6   G dd„ dt ƒ}|ƒ }|  |jd¡ |  |jd¡ d S )Nc                   @   r“   )zDTestNamedTuple.test_defaults_in_class_that_are_falsey.<locals>.Point)r   zhorizondal coordinater   )rr   úvertical coordinater   Nr3  r]   r]   r]   r^   ÚPoint€  r˜   ra  r   )r   r	  r4  r5  )rf   ra  rn  r]   r]   r^   Ú&test_defaults_in_class_that_are_falsey  s   z5TestNamedTuple.test_defaults_in_class_that_are_falseyc                 C   ó*   t ttƒrt‚tdddƒ}t| j|ƒ d S )Nr}  r{  rÅ  )rP  rŒ   r®   r¼   r	  )rf   Úlfr]   r]   r^   Ú"test_pickle_namedtuple_with_module‡  ó   
z1TestNamedTuple.test_pickle_namedtuple_with_modulec                 C   rc  )Nzsickly greenÚ2x4Úfoul)rP  r   r®   r¼   r	  )rf   Údfr]   r]   r^   Ú%test_pickle_namedtuple_without_module  rf  z4TestNamedTuple.test_pickle_namedtuple_without_modulec                 C   sF   t ttƒrt‚tddƒ}|  |jd¡ |  | ¡ d¡ t| j|ƒ d S )NÚHenryÚ	Weinhardt)rP  r¢   r®   r	  r£   rˆ  rŸ   r¼   )rf   Útir]   r]   r^   rƒ  “  s   

zTestNamedTuple.test_subclassingc                 C   sD   t ddƒ}|dddƒ}|  d|v ¡ |  d|v ¡ |  d|v ¡ d S )NrP  ztitle author genreÚTecklaúSteven BrustÚfantasy)r   rˆ  ©rf   rP  r¸  r]   r]   r^   rÍ  ›  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                   @   ó   e Zd ZejZdZdZdZdS )z,TestNamedTuple.test_fixed_size.<locals>.Bookr   rr   rs   N)	rl   rm   rn   r   ÚfixedÚ_size_rú  rQ  rR  r]   r]   r]   r^   rP  £  ó
    rP  rn  ro  rp  ©r   rˆ  r	  rú  rQ  r¨  rê   rq  r]   r]   r^   Ú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   rr   N)rl   rm   rn   r   Úminimumrt  rú  rQ  r]   r]   r]   r^   rP  ²  s    rP  rn  ro  rp  rv  rq  r]   r]   r^   Ú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                   @   rr  )z/TestNamedTuple.test_variable_size.<locals>.Bookr   rr   rs   N)	rl   rm   rn   r   Úvariablert  rú  rQ  rR  r]   r]   r]   r^   rP  Ä  ru  rP  rn  ro  rp  rR  )rú  rR  )rQ  )
r   rˆ  r	  rú  rQ  rR  r¨  rë  rc   rê   rq  r]   r]   r^   Ú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                   @   r“   )z8TestNamedTuple.test_combining_namedtuples.<locals>.Point©r   úhorizontal coordinaterr   ©rr   r`  rP   Nr3  r]   r]   r]   r^   ra  Ú  r˜   ra  c                   @   rp   )z8TestNamedTuple.test_combining_namedtuples.<locals>.Color©r   úred componentrX  ©rr   úgreen componenté   ©rs   úblue componenté%   N©rl   rm   rn   ra  rb  r¸  r]   r]   r]   r^   rÜ   Ý  ry   rÜ   ÚPixelr   c                   @   r  )z9TestNamedTuple.test_combining_namedtuples.<locals>.Pixel2za colored dotN)rl   rm   rn   rÍ   r]   r]   r]   r^   ÚPixel2â  r  r‰  c                   @   rp   )z9TestNamedTuple.test_combining_namedtuples.<locals>.Pixel3)rs   r€  rX  )rt   r‚  rƒ  )r~   r…  r†  Nr‡  r]   r]   r]   r^   ÚPixel3ä  ry   rŠ  z	x y r g br}  rr   r`  rP   r€  rX  r‚  rƒ  r…  r†  )r   rl   r	  Ú_fields_rŠ  r4  rÍ   Údefaultr5  ra  rb  r¸  )rf   ra  rÜ   ÚPixel1r‰  rŠ  r]   r]   r^   Ú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ƒ  )rv  )r,  Úrecr]   r]   r^   Ú
record_key  s   zHTestNamedTuple.test_inherit_from_existing.<locals>.OERecTuple.record_keyc                 S   s   |   |¡|d< d S )NrP   )r  rM  r]   r]   r^   Ú_review_  s   zFTestNamedTuple.test_inherit_from_existing.<locals>.OERecTuple._review_N)rl   rm   rn   rô  r  r‘  r]   r]   r]   r^   Ú
OERecTuple  s
    
r’  ÚOERec)rc  Úxmlidrß  rr   Úabc123rs   Úxyz789)rr   r•  ÚABC123rt   r—  )r   r	  rú  rß  )rf   r’  r“  Úoe_1Úoe_2r]   r]   r^   Útest_inherit_from_existing
  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                   @   r›   )z5TestNamedTuple.test_function_api_type.<locals>.Testerc                 S   s   dt t| ƒƒfS )NÚ	backwards)rû  rR  rž   r]   r]   r^   Úhowdy  r6  z;TestNamedTuple.test_function_api_type.<locals>.Tester.howdyN)rl   rm   rn   rœ  r]   r]   r]   r^   ÚTester  r¡   r  ÚTesteeza c erl  rr   rs   rt   r›  )rt   rs   rr   )r   r	  rœ  )rf   r  rž  r•  r]   r]   r^   Útest_function_api_type  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                   @   r“   )z)TestNamedTuple.test_asdict.<locals>.Pointr|  r~  Nr3  r]   r]   r]   r^   ra  &  r˜   ra  c                   @   rp   )z)TestNamedTuple.test_asdict.<locals>.Colorr  r  r„  Nr‡  r]   r]   r]   r^   rÜ   )  ry   rÜ   rˆ  r   rê  i›ÿÿÿéÿ   r<  r   )r4  r5  ra  rb  r¸  )r   rl   r	  Ú_asdict)rf   ra  rÜ   rˆ  Úpixelr]   r]   r^   Útest_asdict%  s
    zTestNamedTuple.test_asdictc                 C   s8   G dd„ dt ƒ}|  |ddƒd¡ |  | d¡d¡ d S )Nc                   @   r“   )z'TestNamedTuple.test_make.<locals>.Pointr|  r~  Nr3  r]   r]   r]   r^   ra  2  r˜   ra  r~   r   )r~   r   )r   r	  Ú_make)rf   ra  r]   r]   r^   Ú	test_make1  s   zTestNamedTuple.test_makec                 C   s8   G dd„ dt ƒ}|dddƒ}|jdd}|  |d¡ d S )Nc                   @   rp   )z*TestNamedTuple.test_replace.<locals>.Colorr  r  r„  Nr‡  r]   r]   r]   r^   rÜ   9  ry   rÜ   é   r   )rb  )r¦  r¦  r¦  )r   Ú_replacer	  )rf   rÜ   rï   Úmid_grayr]   r]   r^   Útest_replace8  s   zTestNamedTuple.test_replacec                 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¡ |  td|jd¡ d S )Nc                   @   rÕ   )z1TestNamedTuple.test_index_by_name.<locals>.Personr6  r7  r8  r9  Nr:  r]   r]   r]   r^   r+  B  rÝ   r+  r,  r-  r.  r/  r0  r*  r£  rë  zobject has no attribute .nope.Únope)r   r	  ra   rë  r¿  r2  r]   r]   r^   Útest_index_by_nameA  s   z!TestNamedTuple.test_index_by_nameN) rl   rm   rn   r5  r;  r>  rA  rD  rH  rJ  rK  rL  rM  rN  rO  rW  r_  rb  re  rj  rƒ  rÍ  rw  ry  r{  rŽ  rš  rŸ  r£  r¥  r©  r«  r]   r]   r]   r^   r'  ±  s<    

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 s-w   Y  |  td¡
 |`W d   ƒ n1 sEw   Y  |  td¡ |dd	ƒ W d   ƒ n1 s`w   Y  |  |j|v ¡ |  |j|v ¡ d S )
Nc                   @   r  )z.TestNamedConstant.test_constantness.<locals>.Kr¯  rs   N)rl   rm   rn   r  r	  r]   r]   r]   r^   ÚKT  rx  r­  r¯  rs   r±  r®  r²  r  rt   )r   r	  r  r	  ra   rë  rˆ  )rf   r­  r]   r]   r^   Útest_constantnessS  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>.CardNumberrX  rs   rt   r~   r   ra  r´  rú   r®  rµ  N)rl   rm   rn   ÚACEr  r  r×  r™  rš  r›  rœ  ÚNINEÚTENÚJACKÚQUEENÚKINGr]   r]   r]   r^   Ú
CardNumberc  s    rµ  rµ  )r   r…  r±  r²  r	  )rf   rµ  r]   r]   r^   Útest_duplicatesb  s   z!TestNamedConstant.test_duplicatesc                 C   sX   G dd„ dt ƒ}|  |jd¡ |ddƒ}|  ||j¡ |  |jd¡ |  |j|v ¡ d S )Nc                   @   rÕ   )z9TestNamedConstant.test_extend_constants.<locals>.CardSuitrr   rs   rt   r~   N)rl   rm   rn   ÚHEARTSÚSPADESÚDIAMONTSÚCLUBSr]   r]   r]   r^   ÚCardSuitv  rÝ   r»  rr   ÚSTARSr   )r   r	  r·  r,  r¼  rˆ  )rf   r»  Ústarsr]   r]   r^   Útest_extend_constantsu  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>.Stuffr´  úlucky number!rX  rƒ  ú	blah blahN)rl   rm   rn   r   ÚArtifactÚBowlingÚHillWompr]   r]   r]   r^   ÚStuff‚  s    
rÄ  r´  r¿  rX  rƒ  rÀ  )r   r	  rÁ  rÍ   rÂ  rÃ  )rf   rÄ  r]   r]   r^   Ú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                   @   r“   )z2TestNamedConstant.test_deep_copy.<locals>.APITypesr¼  r!  N)rl   rm   rn   ÚSTRINGÚINTr]   r]   r]   r^   ÚAPITypes  r˜   rÈ  r¼  r£  )ÚcopyrV   ÚConstantrÆ  Údeepcopyrˆ  )rf   rÉ  rÈ  rU  r]   r]   r^   Ú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                   @   r“   )z9TestNamedConstant.test_subclass_w_same_value.<locals>.FooÚbla1Úaba1N©rl   rm   rn   ÚBLAÚABAr]   r]   r]   r^   r  ˜  r˜   r  c                       s   e Zd Z” jZdZdS )z9TestNamedConstant.test_subclass_w_same_value.<locals>.BarÚaba2NrÏ  r]   ©r  r]   r^   r  ›  s    r  )rV   rÊ  r	  rÐ  r…  )rf   r  r]   rÓ  r^   Útest_subclass_w_same_value—  s   z,TestNamedConstant.test_subclass_w_same_valueN)	rl   rm   rn   r®  r¶  r¾  rÅ  rÌ  rÔ  r]   r]   r]   r^   r¬  Q  s    
r¬  c                   @   r›   )ÚTestStarImportc                 C   s    i }t d||ƒ |  d|¡ d S )Nzfrom aenum import *r   )ÚexecrE  )rf   Úscoper]   r]   r^   Útest_all_exports_names¤  s   z%TestStarImport.test_all_exports_namesN)rl   rm   rn   rØ  r]   r]   r]   r^   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©rr   r   )r   rr   )rP   r   )r   rP   c                 S   sR   || _ || _t| jƒr't| jƒ}|d |d }}|| _|| _| |_| |_d S d S ©Nr   rP   )r4  r5  rú  rk   rû  r§  r¨  )rf   r4  r5  Úallr§  r¨  r]   r]   r^   re   µ  s   


ùzVTestStackoverflowAnswers.test_self_referential_directions.<locals>.Directions.__init__N)	rl   rm   rn   rØ   r  r  r  r  re   r]   r]   r]   r^   Ú
Directions­  s    rÝ  rÚ  )	r   r	  r  r
  rˆ  r§  r  r  r¨  )rf   rÝ  r  r]   r]   r^   Ú 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                   @   rª  )zOTestStackoverflowAnswers.test_self_referential_rock_paper_scissors.<locals>.RPSzRock, Paper, ScissorsÚrockÚpaperÚscissorsc                 S   s:   t | jƒrt| jƒ}|d |d }}| |_|| _d S d S rÛ  )rú  rk   rû  Úbeats)rf   r
  rÜ  r£  Úpreviousr]   r]   r^   re   Ï  s   


ûzXTestStackoverflowAnswers.test_self_referential_rock_paper_scissors.<locals>.RPS.__init__N)rl   rm   rn   rØ   ÚRockÚPaperÚScissorsre   r]   r]   r]   r^   ÚRPSÈ  s    rç  )r   rˆ  rä  râ  ræ  rå  )rf   rç  r]   r]   r^   Ú)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 s(w   Y  |  t 	d¡|¡ d S )Nc                   @   r›   )z>TestStackoverflowAnswers.test_arduino_headers.<locals>.CHeaderc                 [   sn   | j }t| d| ƒ}t|dƒ}| d¡ | D ]}| d|j|jf ¡ qW d   ƒ d S 1 s0w   Y  d S )Nz_%s__headerrö  zinitial header stuff here
z#define %s %r
)rl   rc   rX  r  ró  r
  )r,  rh   Úcls_nameÚheader_pathÚfhr#   r]   r]   r^   r-  Þ  s   
ÿ"þzPTestStackoverflowAnswers.test_arduino_headers.<locals>.CHeader.__init_subclass__Nr?  r]   r]   r]   r^   ÚCHeaderÝ  r¡   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.hrr   rs   N)rl   rm   rn   rØ   r  r  r³   r  Ú_Arduino__headerr  r  r]   r]   r]   r^   ÚArduinoæ  s
    rï  rí  zv                initial header stuff here
                #define ONE 1
                #define TWO 2
                )
r   rX  r  r  r³   r  Úreadr	  ÚtextwrapÚdedent)rf   rì  rï  rë  rí  r]   r]   r^   Ú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di |¤Ž tdd„ | D ƒƒ| _d S )Nc                 S   s   g | ]}|j  ¡ ‘qS r]   rw  rÛ  r]   r]   r^   rÞ  ú  s    zoTestStackoverflowAnswers.test_lowercase_compare.<locals>.CompareLowerCase.__init_subclass__.<locals>.<listcomp>r]   )rd   r-  r  Úlowered_namesr0  )ÚCompareLowerCaserk   r]   r^   r-  ø  s   z[TestStackoverflowAnswers.test_lowercase_compare.<locals>.CompareLowerCase.__init_subclass__c                 S   s   |  ¡ | jv S rÉ   )rx  rô  rg  r]   r]   r^   Úhas_nameû  râ  zRTestStackoverflowAnswers.test_lowercase_compare.<locals>.CompareLowerCase.has_name)rl   rm   rn   r-  rô  rö  ro   r]   ©rõ  rj   r^   rõ  ÷  s    rõ  c                   @   r…   )zBTestStackoverflowAnswers.test_lowercase_compare.<locals>.LabelEnumzEnum OnezEnum Twoz
Enum Threer×  r™  rš  N)	rl   rm   rn   ÚENUM_ONEÚENUM_TWOÚ
ENUM_THREEr×  r™  rš  r]   r]   r]   r^   Ú	LabelEnumÿ  r‰   rû  Ú
Enum_Three)r   r   rˆ  rö  )rf   rû  r]   r÷  r^   Útest_lowercase_compareõ  s   z/TestStackoverflowAnswers.test_lowercase_compareN)rl   rm   rn   rÞ  rè  ró  rý  r]   r]   r]   r^   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                   @   rp   )z4TestExtendEnum.test_extend_enum_plain.<locals>.Colorrr   rs   rt   Nr…  r]   r]   r]   r^   rÜ     ry   rÜ   zalready in use asrÛ   r   Úbrownr~   Úmauve)r   ra   rê   r!   r	  rÿ  ró  r
  rˆ  rú  r 	  rß   r]   r]   r^   Útest_extend_enum_plain  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                   @   rp   )z4TestExtendEnum.test_extend_enum_alias.<locals>.Colorrr   rs   rt   Nr…  r]   r]   r]   r^   rÜ   $  ry   rÜ   r  rr   rÙ   rt   )	r   r!   r	  r  ró  r
  rˆ  rÙ   rú  rß   r]   r]   r^   Útest_extend_enum_alias#  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                   @   rp   )z5TestExtendEnum.test_extend_enum_unique.<locals>.Colorrr   rs   rt   Nr…  r]   r]   r]   r^   rÜ   1  ry   rÜ   z0<Color.rojo: 1> is a duplicate of <Color.red: 1>r  rr   rÙ   rÚ   rs   rÛ   rt   rÿ  r~   rÁ  rä   r 	  r   )r   ra   r²   r!   r	  rÙ   ró  r
  rˆ  rÚ   rÛ   rú  rÿ  r 	  rß   r]   r]   r^   Útest_extend_enum_unique0  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                   @   rp   )z>TestExtendEnum.test_extend_enum_shadow_property.<locals>.Colorrr   rs   rt   Nr…  r]   r]   r]   r^   rÜ   [  ry   rÜ   r
  r~   rr   )r   r!   r	  r
  ró  rˆ  rú  rÙ   rß   r]   r]   r^   Ú test_extend_enum_shadow_propertyZ  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                   @   r›   )z:TestExtendEnum.test_extend_enum_shadow_base.<locals>.hohumc                 S   r  )rð  rÚ  rž   r]   r]   r^   rK  j  r  z?TestExtendEnum.test_extend_enum_shadow_base.<locals>.hohum.cyanN)rl   rm   rn   rK  r]   r]   r]   r^   rö  i  r¡   rö  c                   @   rp   )z:TestExtendEnum.test_extend_enum_shadow_base.<locals>.Colorrr   rs   rt   Nr…  r]   r]   r]   r^   rÜ   m  ry   rÜ   zalready in use in superclassrK  r~   rt   )r'  r   ra   rê   r!   r	  rú  rû  rÙ   rÚ   rÛ   )rf   rö  rÜ   r]   r]   r^   Útest_extend_enum_shadow_baseh  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                   @   rp   )z9TestExtendEnum.test_extend_enum_multivalue.<locals>.Color©rr   r~   r´  ©rs   r   rú   ©rt   ra  r®  Nr…  r]   r]   r]   r^   rÜ   v  ry   rÜ   rÿ  rµ  r¯  r~   z'no values specified for MultiValue enumr 	  )
r   r!   r	  rÿ  ró  r
  rˆ  rú  ra   r²   rß   r]   r]   r^   Útest_extend_enum_multivalueu  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                   @   rp   )z?TestExtendEnum.test_extend_enum_multivalue_alias.<locals>.Colorr	  r	  r	  Nr…  r]   r]   r]   r^   rÜ   †  ry   rÜ   z0<Color.rojo: 7> is a duplicate of <Color.red: 1>r  r´  rÙ   rr   r~   rÚ   rs   r   rú   rÛ   rt   ra  r®  )r   ra   r²   r!   r	  rÙ   ró  r
  rˆ  rÚ   rÛ   rú  rß   r]   r]   r^   Ú!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                   @   rp   )z9TestExtendEnum.test_extend_enum_multivalue_str.<locals>.M)Úvalue_1ÚVALUE_1)Úvalue_2ÚVALUE_2)Úvalue_3ÚVALUE_3N)rl   rm   rn   r	  r	  r	  r]   r]   r]   r^   ÚM¢  ry   r	  ÚVALUE_4Úvalue_4)r?  r   rˆ  r]  r!   r	  rû  r	  r	  r	  r	  ró  r
  )rf   r	  r]   r]   r^   Ú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                   @   r“   )z1TestExtendEnum.test_extend_intenum.<locals>.Indexé   i  N)rl   rm   rn   Ú
DeviceTypeÚErrorRegisterr]   r]   r]   r^   ÚIndex¯  r˜   r	  ))ÚControlWordi@`  )Ú
StatusWordéA`  )ÚOperationModei``  r   r	  r	  )r   r!   r	  rú  rû  r	  r	  r	  r	  r	  r
  )rf   r	  ró  r
  r]   r]   r^   Ú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w 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¾   r]   r]   r^   r(  Å  s
   zATestExtendEnum.test_extend_multi_init.<locals>.HTTPStatus.__new__r…  r‡  )r‰  rŠ  rÁ  N)rl   rm   rn   r(  rr  rs  rt  r]   r]   r]   r^   r	  Ä  s
    r	  rt   ÚBAD_SPAMi  z
Too greasyzfor a trainÚBAD_EGGSi  z	Too greenrÁ  rs   rå  )Úhttpr	  rú  ÚImportErrorr   r!   r	  rû  r 	  r!	  r
  ró  r	  r  )rf   r	  Úlengthr]   r]   r^   Ú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                   @   rÕ   )z.TestExtendEnum.test_extend_flag.<locals>.Colorr   rr   rs   r~   N©rl   rm   rn   ry  r  r  r  r]   r]   r]   r^   rÜ   á  rÝ   rÜ   r{  rú   r–  rX  )	r   r!   rˆ  r{  rP  r	  r
  r–  rÿ  rß   r]   r]   r^   Ú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                   @   rÕ   )z8TestExtendEnum.test_extend_flag_backwards.<locals>.Colorr   rr   rs   r~   Nr&	  r]   r]   r]   r^   rÜ   ñ  rÝ   rÜ   r–  rX  r{  rú   r 	  r  r   )r   r!   rˆ  r–  rP  r	  r
  rÿ  r{  r 	  ró  rú  rß   r]   r]   r^   Útest_extend_flag_backwardsð  ó"   

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                   @   rÕ   )z1TestExtendEnum.test_extend_intflag.<locals>.Colorr   rr   rs   r~   Nr&	  r]   r]   r]   r^   rÜ   
  rÝ   rÜ   r{  rú   r–  rX  r 	  r  r   )r   r!   rˆ  r{  rP  r	  r
  r–  rÿ  r   r 	  ró  rú  rß   r]   r]   r^   Útest_extend_intflag	  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                   @   rÕ   )z;TestExtendEnum.test_extend_intflag_backwards.<locals>.Colorr   rr   rs   r~   Nr&	  r]   r]   r]   r^   rÜ   "  rÝ   rÜ   r–  rX  r{  rú   r 	  r  r   )r   r!   rˆ  r–  rP  r	  r
  rÿ  r   r{  r 	  ró  rú  rß   r]   r]   r^   Útest_extend_intflag_backwards!  r)	  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)rl   rm   rn   r"   r  r  r  r]   r]   r]   r^   rÜ   ;  s    
rÜ   ry  rN  r~   )r   r!   r	  ry  ró  r
  rú  rß   r]   r]   r^   Útest_extend_strenum:  s
   
z"TestExtendEnum.test_extend_strenumN)rl   rm   rn   r	  r	  r	  r	  r	  r		  r
	  r	  r	  r%	  r'	  r(	  r*	  r+	  r,	  r]   r]   r]   r^   rþ  
  s     *!rþ  c                   @   r}  )Ú
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                   @   r|   )z3TestIssues.test_auto_multi_int.<locals>.Measurementrk  r   Ú20110721Ú20120911Ú20110518N)rl   rm   rn   rØ   r(  ræ  rç  rC  r]   r]   r]   r^   ÚMeasurementH  r„   r1	  c                 S   rÙ  r]   rÚ  rÛ  r]   r]   r^   rÞ  N  rß  z2TestIssues.test_auto_multi_int.<locals>.<listcomp>r$  c                 S   rÙ  r]   rò  rÛ  r]   r]   r^   rÞ  O  rß  )ræ  rç  rC  r.	  r   r/	  rr   r0	  rs   )r!  r   r   r	  r,  ræ  rç  rC  )rf   r1	  r]   r]   r^   Útest_auto_multi_intG  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œ  rr   c                 S   óN   t  | ¡}||_||_i }| ¡ D ]\}}t|tƒr|j}|||< q||_|S rÉ   ©	r'  r(  r)  r	  r  rP  r"   Úenum_memberr4	  ©r,  r
  r	  r4	  r¾   Únew_requirementsr  r  r]   r]   r^   r(  ]  ó   


z/TestIssues.test_auto_kwds.<locals>.Item.__new__Nr  r]   r]   r]   r^   r  X  s
    r  rr   r›  rs   rœ  ©r   r	  r  r
  r	  r4	  r  r  r]   r]   r^   Útest_auto_kwdsW  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                 _   ré  rÉ   r]   rÄ  r]   r]   r^   rÅ  p  r­  zETestIssues.test_auto_kwds_and_gnv.<locals>.Item._generate_next_value_r›  r3	  rœ  rr   c                 S   r5	  rÉ   r6	  r8	  r]   r]   r^   r(  u  r:	  z7TestIssues.test_auto_kwds_and_gnv.<locals>.Item.__new__N)	rl   rm   rn   rØ   rÅ  r"   r  r  r(  r]   r]   r]   r^   r  m  s    r  r  r›  r  rœ  rr   r;	  r  r]   r]   r^   Útest_auto_kwds_and_gnvl  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                   @   rp   )z-TestIssues.test_extend_flag.<locals>.FlagTestr   rr   rs   N)rl   rm   rn   r]  ÚLOWÚMIDr]   r]   r]   r^   ÚFlagTest…  ry   r@	  ÚHIGHr~   r   )r   r!   r	  r>	  rA	  r
  )rf   r@	  r]   r]   r^   r'	  „  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©rc  r
  rr   ÚdefN)rl   rm   rn   ÚABCÚDEFr]   r]   r]   r^   rý  Ž  s    þ
þrý  rê  ÚnewrC	  )r   ÚuuidÚuuid4r+  r!   )rf   rý  Úrandr¤  r]   r]   r^   Útest_extend_unhashable  s   
	þz!TestIssues.test_extend_unhashableN)rl   rm   rn   r2	  r<	  r=	  r'	  rK	  r]   r]   r]   r^   r-	  E  s    	r-	  r   r~   r´  ÚgoodbyeÚhello©r®  rr   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| < q#d	D ]
\}}||d
| < q0d|d< d|d< d|d< d|d< d S )N)r  r  r  r  r  r  r   zCONVERT_TEST_NAME_%szCONVERT_STRING_TEST_NAME_%s))r  r   )r  rN	  )r  r
  zUNCOMPARABLE_%s))r  rP	  )r  rQ	  )r  rO	  z
COMPLEX_%s))rG  rM	  )r«  rL	  zCONVERT_STR_TEST_%sr~   ÚCONVERT_TEST_SIGABRTÚCONVERT_TEST_SIGIOTr´  ÚCONVERT_TEST_EIOÚCONVERT_TEST_EBUS)r>  )rf   rb  Úsuffixr
  r]   r]   r^   Ú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   ó
   |   d¡S ©NÚCONVERT_TEST_©Ú
startswith©r4  r]   r]   r^   rø  Ü  rá  z@TestConvert.test_convert_value_lookup_priority.<locals>.<lambda>©Úfilterr   ÚCONVERT_TEST_NAME_Ar~   rS	  r´  rV	  )	r   Ú	_convert_ÚMODULEr	  ró  rû  rS	  rb	  rV	  ©rf   rã  r]   r]   r^   Ú"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 )NrY	  c                 S   rZ	  r[	  r]	  r_	  r]   r]   r^   rø  ð  rá  z.TestConvert.test_convert_int.<locals>.<lambda>r`	  r   )
rb	  ÚCONVERT_TEST_NAME_BÚCONVERT_TEST_NAME_CÚCONVERT_TEST_NAME_DÚCONVERT_TEST_NAME_EÚCONVERT_TEST_NAME_FrS	  rT	  rU	  rV	  c                    ó   g | ]
}|t ˆ ƒvr|‘qS r]   ©Úenum_dir©rÜ  ró  ©rã  r]   r^   rÞ  ÿ  ó    z0TestConvert.test_convert_int.<locals>.<listcomp>c                    rl	  r]   ©Údirro	  rp	  r]   r^   rÞ     rq	  ú#extra names: %r;  missing names: %r©Úmsg)r   rc	  rd	  r	  rk	  rb	  rg	  rh	  ri	  rj	  rs	  r!  rn	  )rf   Úint_dirÚextraÚmissingr]   rp	  r^   Ú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   rZ	  )NÚUNCOMPARABLE_r]	  r_	  r]   r]   r^   rø    rá  z7TestConvert.test_convert_uncomparable.<locals>.<lambda>r`	  )r   rc	  rd	  r	  rû  ÚUNCOMPARABLE_AÚUNCOMPARABLE_BÚUNCOMPARABLE_C©rf   Úuncompr]   r]   r^   Útest_convert_uncomparable  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   rZ	  )NÚCOMPLEX_r]	  r_	  r]   r]   r^   rø    rá  z2TestConvert.test_convert_complex.<locals>.<lambda>r`	  )r   rc	  rd	  r	  rû  Ú	COMPLEX_AÚ	COMPLEX_BÚ	COMPLEX_Cr€	  r]   r]   r^   Ú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 )NrY	  c                 S   rZ	  )NÚCONVERT_STR_r]	  r_	  r]   r]   r^   rø  $  rá  z.TestConvert.test_convert_str.<locals>.<lambda>T©ra	  Ú	as_globalrM	  rL	  c                    rl	  r]   rm	  ro	  rp	  r]   r^   rÞ  *  rq	  z0TestConvert.test_convert_str.<locals>.<listcomp>c                    rl	  r]   rr	  ro	  rp	  r]   r^   rÞ  +  rq	  rt	  ru	  z%s.CONVERT_STR_TEST_1)r   rc	  rd	  r	  ÚCONVERT_STR_TEST_1ÚCONVERT_STR_TEST_2rs	  rn	  rŒ  ÚSHORT_MODULEr?  rÚ  )rf   rx	  ry	  r]   rp	  r^   Útest_convert_str   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 )NrY	  c                 S   rZ	  )NÚCONVERT_STRING_TEST_r]	  r_	  r]   r]   r^   rø  9  rá  z7TestConvert.test_convert_repr_and_str.<locals>.<lambda>Tr‰	  z%s.CONVERT_STRING_TEST_NAME_Arç  )	r   rc	  rd	  r	  rŒ  ÚCONVERT_STRING_TEST_NAME_Ar	  r?  rÚ  re	  r]   r]   r^   Útest_convert_repr_and_str5  s   üz%TestConvert.test_convert_repr_and_strN)rl   rm   rn   rX	  rf	  rz	  rÙ  rÚ  r.   r‚	  r‡	  rŽ	  r‘	  r]   r]   r]   r^   rR	  Ã  s    



rR	  c                 C   s¬   t | jg d¢ ƒ}| jtjur| d¡ | jtjur| d¡ ttdƒr)| d¡ dD ]}t	| |ƒt	t|ƒt	t
|ƒfvrA| |¡ q+| jtu rKt|ƒS tt t| jƒƒ|B ƒS )N)	rk   Ú__contains__rÍ   r¿  r¿  r  rW  rm   rl   r(  r-  rn   )re   rà  rÁ  rP  )r  Ú_member_names_Ú_new_member_r'  r(  rB   r-  r   r¯  rc   r   r]  rä  rs	  )r,  ÚinterestingÚmethodr]   r]   r^   rn	  A  s   




€
rn	  c                 C   s¢   | j jtu rtg d¢ƒ}ntt| ƒƒ}| j  ¡ D ]4}|j ¡ D ],\}}|d dkr*qt|t	j
ƒrF|jd us:|| jvr@| |¡ q| |¡ q| |¡ qqt|ƒS )N)rk   rÍ   r]  rN  rm   ró  r
  r   r–  )rk   r]  r'  r  rs	  r¹  r0  r  rP  r#   rõ  rÊ   r–  rB   Údiscardrä  )r%   Úallowedr,  ró  r¾   r]   r]   r^   Ú
member_dirV  s   ÷
r™	  Ú__main__F)Úexitz%s: %sT)ÔÚ
__future__r   r   r¯   rV   rT   r  ÚshutilÚtempfilerñ  rÙ  rH	  Ú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   Úaenum._enumr6   rh  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Œ  r#	  rN   Ú	NameErrorrl   rd	  rŠ  r	  r_   r`   rq   r®   r°   r!  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Á  Útest_v37rÇ   r'  rÈ   rÓ   rý   r~  r×  rý  ru  rŽ  rÛ  r  r  r'  r¬  rÕ  rÙ  rþ  r-	  ri	  rh	  rg	  rb	  rj	  rk	  rS	  rT	  rU	  rV	  ÚCONVERT_STRING_TEST_NAME_DÚCONVERT_STRING_TEST_NAME_CÚCONVERT_STRING_TEST_NAME_Br	  ÚCONVERT_STRING_TEST_NAME_EÚCONVERT_STRING_TEST_NAME_FrŒ	  r‹	  r}	  r	  r~	  r†	  r„	  r…	  rR	  rn	  r™	  Úmkdtempr  rÏ  ÚmainÚstdoutÚflushÚresultÚskippedró  ÚreasonrÓ  Úrmtreer›	  rú  rÒ  r¹   r]   r]   r]   r^   Ú<module>   sä  ($$00ÿÿ	
ÿÿÿ€ÿ€ÿÿ€ÿÿÿÿÿÿÿÿ 
l   % (                        x          E        8   #Qa  =^~

ÿ,ÿÿ*ÿô