o
    CªRh/\ ã                
   @   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]   úL/home/air/sanwanet/backup_V2/venv/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Ü   4  rÝ   rÜ   ©ra   rê   r   rß   r]   r]   r^   Ú!test_order_has_extra_members_flag2  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_flag:  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Ü   E  r„   rÜ   r÷   rß   r]   r]   r^   Ú test_enum_has_extra_members_flagC  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Ü   N  r‰   rÜ   r÷   rß   r]   r]   r^   Ú-test_enum_has_extra_members_with_aliases_flagL  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^   ÚBareEnum[  ó
    
r  rt   c                   @   rþ   )z,TestAutoValue.test_bare.<locals>.BareIntEnumrÿ   Nr   r]   r]   r]   r^   ÚBareIntEnumb  r  r  c                   @   rþ   )z)TestAutoValue.test_bare.<locals>.BareFlagrÿ   Nr   r]   r]   r]   r^   ÚBareFlagi  r  r  r~   c                   @   rþ   )z,TestAutoValue.test_bare.<locals>.BareIntFlagrÿ   Nr   r]   r]   r]   r^   ÚBareIntFlagp  r  r  )r   ÚassertEqualr  Úvaluer   r   r   )rf   r  r  r  r  r]   r]   r^   Ú	test_bareY  s   zTestAutoValue.test_barec                 C   sð   G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ G dd„ dt ƒ}|  |jjd¡ |  |jjd¡ G dd„ dtƒ}|  |jd¡ |  |jjd¡ G d	d
„ d
tƒ}|  |jjd¡ |  |jjd¡ G dd„ dtƒ}|  |jd¡ |  |jjd¡ d S )Nc                   @   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^   ÚInitEnumValuey  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_finalw  s   z"TestAutoValue.test_init_only_finalc                 C   s$  G dd„ dt ƒ}G dd„ d|ƒ}|  |jjd¡ |  |jjd¡ G dd„ dt ƒ}G d	d„ d|ƒ}|  |jjd¡ |  |jjd¡ G d
d„ dt|ƒ}|  |jd¡ |  |jjd¡ G dd„ dtƒ}G dd„ d|ƒ}|  |jjd¡ |  |jjd¡ G dd„ dt|ƒ}|  |jd¡ |  |jjd¡ d S )Nc                   @   ó   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(  A  ó   


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/  J  r  r/  é   r[  c                   @   rþ   )z>TestAutoValue.test_new_only_inherited.<locals>.NewFinalIntEnumrÿ   Nr   r]   r]   r]   r^   r5  R  r  r5  c                   @   r›   )z=TestAutoValue.test_new_only_inherited.<locals>.NewInheritFlagc                 S   rY  rZ  r\  r+  r]   r]   r^   r(  [  r^  zETestAutoValue.test_new_only_inherited.<locals>.NewInheritFlag.__new__Nr_  r]   r]   r]   r^   ÚNewInheritFlagZ  r¡   rb  c                   @   rþ   )z;TestAutoValue.test_new_only_inherited.<locals>.NewFinalFlagrÿ   Nr   r]   r]   r]   r^   r7  d  r  r7  rú   c                   @   rþ   )z>TestAutoValue.test_new_only_inherited.<locals>.NewFinalIntFlagrÿ   Nr   r]   r]   r]   r^   r9  l  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(  y  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^   ÚInitNewEnumv  ó    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_onlyt  s    z TestAutoValue.test_init_new_onlyc           	      C   sD  G dd„ dt ƒ}G dd„ d|ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ G dd	„ d	t ƒ}G d
d„ dt|ƒ}|  |jd¡ |  |jjd¡ |  |jjd¡ G dd„ dtƒ}G dd„ d|ƒ}|  |jjd¡ |  |jjd¡ |  |jjd¡ G dd„ dttƒ}G dd„ d|ƒ}|  |jd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   ó   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ý   W  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©  K  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_constantI  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^   ÚOrdered3  rÝ   rx  ©r   rˆ  rl  rW  r7   )rf   rx  r]   r]   r^   Ú&test_members_is_ordereddict_if_ordered2  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_ordered:  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_valueD  ó   zTestEnum.test_enum_valuec                 C   s   |   tjjd¡ d S ©Nrs   )r	  rz   rw   r
  rž   r]   r]   r^   Útest_intenum_valueH  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_enumK  s.   ÿ
þõzTestEnum.test_enumc                 C   s^   t dddd}t dddd}t dddƒ}|  ||u¡ |  ||¡ |  ||¡ |  ||¡ d S )Nrr   rs   r®  )rC  )r#   rˆ  r	  r‹  )rf   Úe1Úe2Úe3r]   r]   r^   Útest_enum_helperb  s   zTestEnum.test_enum_helperc                 C   sˆ   G dd„ dt ƒ}|  |jjd¡ |  |jjd ¡ |  |jjd ¡ |  |jj|j¡ |  |jjd ¡ |  |jjd ¡ |  |jj|j¡ d S )Nc                   @   s:   e Zd ZdZdd„ Zddd„Zeƒ ZeeƒZedeƒZ	dS )z)TestEnum.test_enum_in_enum.<locals>.LevelzDATA_CHECK DESIGN_CHECK ALERTc                 _   s   t  | ¡}t| ƒd |_|S rƒ  )r'  r(  rú  r)  )r,  rg   rh   r%   r]   r]   r^   r(  p  s   
z1TestEnum.test_enum_in_enum.<locals>.Level.__new__Nc                 S   s`   t | jj ¡ ƒ| _g | _| jD ]}|j | ¡ q|r | j|j 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   u  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^   ÚLevelm  s    
r   rr   )r   r	  r  r
  rš  r›  rž  rŸ  )rf   r   r]   r]   r^   Útest_enum_in_enumk  s   zTestEnum.test_enum_in_enumc                 C   s^   | j }|  |jjd¡ |  |jjd¡ dd„ }dd„ }|  t||jd¡ |  t||jd¡ d S )	Nrþ  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^   ÚassertFormatIsValue0  s   zTestEnum.assertFormatIsValuec                 C   sz   | j }|  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ d S )	NrÔ  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_date3  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_intJ  rô  z!TestEnum.test_format_reprenum_intc                 C   rê  rÓ  )r  rð  r  )rf   r  r]   r]   r^   Útest_format_reprenum_strV  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  i  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_duplicatesh  s$   ÿþ
þzTestEnum.test_enum_duplicatesc                 C   s`   G dd„ dt ƒ}|  t|ƒ|j|jg¡ |  t|jƒ|u ¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   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_reversed3  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_values:  s
   þz5TestEnum.test_iteration_order_with_unorderable_valuesc                 C   sÆ   t ddƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td ¡ ƒD ]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_stringE  s"   
þùz)TestEnum.test_programatic_function_stringc                 C   sÄ   t dddd}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td ¡ dƒD ].\}}||ƒ}|  t	|j
ƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q1d S )NrY  rZ  rµ  ©r·   rt   r[  r_  r]   r]   r^   Ú+test_programatic_function_string_with_startW  s    þúz4TestEnum.test_programatic_function_string_with_startc                 C   sÊ   t dg d¢ƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td ¡ ƒD ]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_listh  s"   þùz.TestEnum.test_programatic_function_string_listc                 C   sÈ   t dg d¢dd}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td ¡ dƒD ].\}}||ƒ}|  t	|j
ƒ|¡ |  ||¡ |  |j|¡ |  ||v ¡ |  t|ƒ|u ¡ q3d S )NrY  rd  r¯  rb  rt   rZ  r[  r_  r]   r]   r^   Ú0test_programatic_function_string_list_with_startz  s    þúz9TestEnum.test_programatic_function_string_list_with_startc                 C   sÆ   t ddƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ td ¡ ƒD ]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_dict1  s*   $þþùz4TestEnum.test_programatic_function_from_unicode_dictc                 C   sÀ   t dtdƒtd}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ t	tdƒ 
¡ ƒD ])\}}|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_typeG  s    þúz/TestEnum.test_programatic_function_unicode_typec                 C   s¼   t dtdƒƒ}t|ƒ}|  t|ƒt|ƒ¡ |  t|ƒd|¡ |  |j|j|jg|¡ ttdƒ 	¡ ƒD ])\}}|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_subclassX  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_classi  s.   þúôz1TestEnum.test_programmatic_function_unicode_classc                 C   sV   t ttƒrt‚|  tjd¡ |  tjtdƒ¡ |  tjttdƒu ¡ t| jtjƒ d S )Nr•   r–   )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^   ÚidentityO  s   z0TestEnum.test_meta_reconfigure.<locals>.identityc                       s@   e Zd Zed	dd„ƒZ‡‡ fdd„Zd	‡‡‡ ‡fdd„	Z‡  ZS )
z4TestEnum.test_meta_reconfigure.<locals>.JSONEnumMetaNr]   c                 S   s   i S rÉ   r]   )rË  r,  rÌ  Úinitr·   Úsettingsr]   r]   r^   rÉ  X  ó   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Û  V  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_reconfigureM  s    9ÿÿ zTestEnum.test_meta_reconfigurec                    sª   G ‡ fdd„dt ƒ‰ G dd„ dˆ tƒ}|  |jtju ¡ |  t|j|j ƒd¡ ˆ tƒ d< |tƒ d< ˆ ddƒ}|  |d¡ t	| j|dƒ |  |jj
d¡ t	| j|jƒ d S )	Nc                       ó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  0	  r$  zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__str__c                    r%  r&  r'  r(  r+  r]   r^   r,  9	  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  B	  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(  U	  ó   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Á  a	  r  zQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__repr__c                 S   r  rÉ   r  r!  r]   r]   r^   rP  f	  r$  zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__str__c                    r%  r&  r'  r(  r+  r]   r^   r,  o	  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  S	  ó    	
	r  c                   @   r/  )zCTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NEIr0  r1  r2  Nr3  r]   r]   r]   r^   r0  x	  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_supportR	  s   %


z6TestEnum.test_subclasses_without_direct_pickle_supportc                    s¨   G ‡ fdd„dt ƒ‰ G dd„ dˆ tƒ}|  |jtju ¡ |  t|j|j ƒd¡ ˆ tƒ d< |tƒ d< ˆ ddƒ}|  |d¡ |  |jj	d¡ t
| j|jƒ t
| j|ƒ d S )	Nc                       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_8
  s
   ÿÿz8TestEnum.test_missing_name.<locals>.Label._missing_name_N©rl   rm   rn   ri  rj  rô  ry  r]   r]   r]   r^   rk  5
  ó
    rk  rm  )r   r¨  rë  rm  r²   ro  r]   r]   r^   Útest_missing_name4
  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  I
  r  zDTestEnum.test_missing_value_bad_input.<locals>.Label._missing_value_Nrt  r]   r]   r]   r^   rk  E
  rl  rk  r~   T)r   r	  rf  r¨  r¾  ro  r]   r]   r^   Útest_missing_value_bad_inputD
  s
   
"ÿz%TestEnum.test_missing_value_bad_inputc                 C   sª   G dd„ dt ƒ}|  t¡ |j W d   ƒ n1 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  U
  rÚ  zCTestEnum.test_missing_name_bad_return.<locals>.Label._missing_name_Nrz  r]   r]   r]   r^   rk  R
  r{  rk  rm  )r   r¨  rë  rm  r²   r¾  ro  r]   r]   r^   Útest_missing_name_bad_returnQ
  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^   Úshadec
  s   zDTestEnum.test_extending2.<locals>.bad_extension.<locals>.Shade.shadeN©rl   rm   rn   r  r]   r]   r]   r^   ÚShadeb
  r¡   r  c                   @   rp   )z>TestEnum.test_extending2.<locals>.bad_extension.<locals>.Colorrr   rs   rt   Nr…  r]   r]   r]   r^   rÜ   e
  ry   rÜ   c                   @   rp   )zBTestEnum.test_extending2.<locals>.bad_extension.<locals>.MoreColorr~   r   ra  Nr†  r]   r]   r]   r^   r‰  i
  ry   r‰  rÞ   )r  rÜ   r‰  r]   r]   r^   rŠ  a
  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  q
  r  z-TestEnum.test_extending3.<locals>.Shade.shadeNr€  r]   r]   r]   r^   r  p
  r¡   r  c                   @   r›   )z'TestEnum.test_extending3.<locals>.Colorc                 S   rŽ  )Nz%s hexlified!rÚ  rž   r]   r]   r^   r+  t
  rÒ   z+TestEnum.test_extending3.<locals>.Color.hexN)rl   rm   rn   r+  r]   r]   r]   r^   rÜ   s
  r¡   rÜ   c                   @   rp   )z+TestEnum.test_extending3.<locals>.MoreColorr~   r   ra  Nr†  r]   r]   r]   r^   r‰  v
  ry   r‰  z5 hexlified!)r   r	  r‡  r+  )rf   r  rÜ   r‰  r]   r]   r^   Útest_extending3o
  s   zTestEnum.test_extending3c                 C   s˜   G dd„ dt ƒ}|  t|ƒ|j|j|j|jg¡ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  |jjd¡ d S )Nc                   @   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Ü   4  s
    
rÜ   rÙ   rs   rt   ræ  rß   r]   r]   r^   Útest_auto_garbage_corrected3  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^   Ú	MoreDupesA  r  rø  c                 S   rÙ  r]   rÚ  rÛ  r]   r]   r^   rÞ  G  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^   ÚDupesI  ó
    

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(  T  s   

zATestEnum.test_auto_value_with_auto.<locals>.SelectionEnum.__new__c                 _   rÃ  rÉ   r]   rÄ  r]   r]   r^   rÅ  [  rñ  zOTestEnum.test_auto_value_with_auto.<locals>.SelectionEnum._generate_next_value_NrÆ  r]   r]   r]   r^   rÈ  R  s
    rÈ  c                   @   s    e Zd ZdZedƒZedƒZdS )z0TestEnum.test_auto_value_with_auto.<locals>.Testú	this thatr~  r|  N)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_autoP  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(  r  s
   

zFTestEnum.test_auto_value_with_autovalue.<locals>.SelectionEnum.__new__c                 _   rÃ  rÉ   r]   rÄ  r]   r]   r^   rÅ  x  rñ  zTTestEnum.test_auto_value_with_autovalue.<locals>.SelectionEnum._generate_next_value_NrÆ  r]   r]   r]   r^   rÈ  p  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_autovaluen  s   z'TestEnum.test_auto_value_with_autovaluec                 C   sd   G dd„ dt ƒ}|  |jj|jj|jjfddddif¡ |  |jj|jj|jjfdddd	if¡ d S )
Nc                   @   s8   e Zd ZdZedddidZedddidZdd	„ Zd
S )z)TestEnum.test_auto_and_kwds.<locals>.ItemúA Br›  rÙ   T)ÚsizeÚreqrœ  Fc                 S   s    t  | ¡}||_||_||_|S rÉ   )r'  r(  r)  r	  r
  )r,  r
  r	  r
  r¾   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Á  3  ó   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Å  I  rÒ   zGTestEnum.test_multiple_arg_auto.<locals>.AutoName._generate_next_value_Nrí  r]   r]   r]   r^   ÚAutoNameH  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¸  L  s    
r¸  r°  ©r   r	  r°  r
  ©rf   rR  r¸  r]   r]   r^   Útest_multiple_arg_autoG  ó   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Å  T  s   
zITestEnum.test_auto_w_multiple_arg.<locals>.AutoName._generate_next_value_Nrí  r]   r]   r]   r^   rR  S  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¸  Z  s    r¸  r°  rU  rV  r]   r]   r^   Útest_auto_w_multiple_argR  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Å  b  rÒ   zGTestEnum.test_auto_gnv_and_init.<locals>.AutoName._generate_next_value_Nrí  r]   r]   r]   r^   rR  a  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¸  e  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^   ÚenumC3  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—  :  r˜  r—  r‘  r™  rš  r]   r]   r^   Útest_nonmember9  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Þ  L  rß  zTTestEnum.test_member_with_external_functions.<locals>.Func.types.<locals>.<listcomp>©rû  rà  r]   r]   r^   ÚtypesJ  ó   z@TestEnum.test_member_with_external_functions.<locals>.Func.typesc                 S   rF  rG  ©rk   rl   ró  rž   r]   r]   r^   rÁ  M  rJ  zCTestEnum.test_member_with_external_functions.<locals>.Func.__repr__c                 _   ó   | j |i |¤ŽS rÉ   rÚ  ©rf   rg   rh   r]   r]   r^   Ú__call__O  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^   ÚFuncF  s    
r¨  r´  ÚBlahBlah)r   r	  r¦  r§  rû  r!  r?  r   ©rf   r¨  r]   r]   r^   Ú#test_member_with_external_functionsE  s
   z,TestEnum.test_member_with_external_functionsc                 C   sh   G dd„ dt ƒ}|  |j|jgt|ƒ¡ |  |jj|jjg|j¡ |  | ¡ d¡ |  | d¡d¡ d S )Nc                   @   sD   e Zd ZdZedd„ ƒZedd„ ƒZedd„ ƒZdd	„ Z	d
d„ Z
dS )z:TestEnum.test_member_with_internal_functions.<locals>.Funcz	haha hehec                   S   rÝ  )NÚhahar]   r]   r]   r]   r^   r¬  Z  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Þ  b  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Á  c  rJ  zCTestEnum.test_member_with_internal_functions.<locals>.Func.__repr__c                 _   r£  rÉ   rÚ  r¤  r]   r]   r^   r¥  e  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¨  X  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_functionsW  s
   z,TestEnum.test_member_with_internal_functionsc                 C   sH   G dd„ dt ƒ}|  |jd¡ |  tdt|dd¡ |  tdt|d¡ d S )Nc                   @   s   e Zd ZedƒZedƒZdS )z9TestEnum.test_constantness_of_constants.<locals>.Universeçôiý!	@r«  N)rl   rm   rn   r   r  r­  r]   r]   r]   r^   ÚUniversen  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_constantsm  s   z'TestEnum.test_constantness_of_constantsc                 C   s6   G dd„ dt ƒ}|  |jd¡ |  |jd|j ¡ d S )Nc                   @   s    e Zd ZedƒZede ƒZdS )z=TestEnum.test_math_and_stuff_with_constants.<locals>.Universer¯  rs   N)rl   rm   rn   r   r  r	  r]   r]   r]   r^   r°  v  s    r°  r¯  rs   )r   r	  r  r	  r³  r]   r]   r^   Ú"test_math_and_stuff_with_constantsu  s   z+TestEnum.test_math_and_stuff_with_constantsc                 C   s`   G dd„ dt ƒ}|  t|ƒ|j|j|j|jg¡ |  t|jƒ|j|jg¡ |  |j|jv ¡ d S )Nc                   @   s4   e Zd ZdZeƒ Zeƒ Zeƒ Zeƒ Ze	eeB ƒZ
dS )z:TestEnum.test_constant_with_auto_is_updated.<locals>.Fruitzapple banana lemon orangeN)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ç  B  s   z2TestEnum.test_multiple_mixin.<locals>.MaxMixin.MAXN)rl   rm   rn   rÈ   rç  r]   r]   r]   r^   ÚMaxMixinA  rä  ré  c                   @   r›   )z.TestEnum.test_multiple_mixin.<locals>.StrMixinc                 S   ó
   | j  ¡ S rÉ   ©rK  rx  rž   r]   r]   r^   rP  H  rÒ   z6TestEnum.test_multiple_mixin.<locals>.StrMixin.__str__N©rl   rm   rn   rP  r]   r]   r]   r^   ÚStrMixinG  r¡   rí  c                   @   r›   )z.TestEnum.test_multiple_mixin.<locals>.SomeEnumc                 S   rÝ  )NÚbooyahr]   rž   r]   r]   r^   ÚbehaviorK  r­  z7TestEnum.test_multiple_mixin.<locals>.SomeEnum.behaviorN)rl   rm   rn   rï  r]   r]   r]   r^   ÚSomeEnumJ  r¡   rð  c                   @   rÖ  )z1TestEnum.test_multiple_mixin.<locals>.AnotherEnumc                 S   rÝ  )Núnuhuh!r]   rž   r]   r]   r^   rï  N  r­  z:TestEnum.test_multiple_mixin.<locals>.AnotherEnum.behaviorc                 S   rÝ  )Nú
what's up?r]   rž   r]   r]   r^   ÚsocialP  r­  z8TestEnum.test_multiple_mixin.<locals>.AnotherEnum.socialN)rl   rm   rn   rï  ró  r]   r]   r]   r^   ÚAnotherEnumM  ó    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Ü   R  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Ü   f  r  c                   @   rþ   )z/TestEnum.test_multiple_mixin.<locals>.CoolColorr÷  Nrø  r]   r]   r]   r^   Ú	CoolColorp  r  rú  rî  c                   @   rþ   )z1TestEnum.test_multiple_mixin.<locals>.CoolerColorr÷  Nrø  r]   r]   r]   r^   ÚCoolerColorz  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  7  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Ü   1  s    rÜ   rr   )r   rˆ  rÙ   rN  rß   r]   r]   r^   Útest_enum_call_without_arg0  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-  F  ó   
z@TestEnum.test_init_subclass.<locals>.TheirEnum.__init_subclass__r3  r]   ©r9  rj   r^   r9  E  rÓ  r9  c                   @   r›   )z.TestEnum.test_init_subclass.<locals>.WhoseEnumc                 [   r«  rÉ   r]   r0  r]   r]   r^   r-  J  r­  z@TestEnum.test_init_subclass.<locals>.WhoseEnum.__init_subclass__N©rl   rm   rn   r-  r]   r]   r]   r^   Ú	WhoseEnumI  r¡   r@  c                   @   r  )z+TestEnum.test_init_subclass.<locals>.NoEnumrr   N©rl   rm   rn   r  r]   r]   r]   r^   ÚNoEnumL  r  rB  r/  r;  Fc                   @   r›   )z,TestEnum.test_init_subclass.<locals>.OurEnumc                 [   ó
   d| _ d S ©NÚOurEnum©r;  r0  r]   r]   r^   r-  U  rÒ   z>TestEnum.test_init_subclass.<locals>.OurEnum.__init_subclass__Nr?  r]   r]   r]   r^   rE  T  r¡   rE  c                   @   r›   )z.TestEnum.test_init_subclass.<locals>.WhereEnumc                 [   r«  rÉ   r]   r0  r]   r]   r^   r-  X  r­  z@TestEnum.test_init_subclass.<locals>.WhereEnum.__init_subclass__Nr?  r]   r]   r]   r^   Ú	WhereEnumW  r¡   rG  c                   @   r  )z.TestEnum.test_init_subclass.<locals>.NeverEnumræ  NrA  r]   r]   r]   r^   Ú	NeverEnumZ  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(  d  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   f  rÒ   z3TestEnum.test_init_exception.<locals>.Base.__init__N)rl   rm   rn   r(  re   r]   r]   r]   r^   ÚBasec  rõ  rN  c                   @   rs  )ú,TestEnum.test_init_exception.<locals>.MyEnumrŽ  c                 S   r¢  rÉ   ©r5  ©rf   r5  r]   r]   r^   re   k  rÒ   ú5TestEnum.test_init_exception.<locals>.MyEnum.__init__N)rl   rm   rn   r  re   r]   r]   r]   r^   rÄ  i  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   p  rÒ   rR  c                    s   ˆ   | ¡}ˆ |ƒ|_|S rÉ   )r(  r)  r+  ©rN  r]   r^   r(  r  s   

z4TestEnum.test_init_exception.<locals>.MyEnum.__new__N)rl   rm   rn   r  re   r(  r]   rS  r]   r^   rÄ  n  s    )r'  r¨  rê   r   r²   )rf   rÄ  r]   rS  r^   Útest_init_exceptionb  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^   ÚNTEnumz  ó    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_valuew  ó   
,þ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'e( )e*dJ¡dKdL„ ƒZ+dMdN„ Z,dOdP„ Z-dQdR„ Z.dSdT„ Z/dUdV„ Z0dWdX„ Z1dYdZ„ Z2d[d\„ Z3d]d^„ Z4d_d`„ Z5dadb„ Z6dcdd„ Z7deS )fÚTestFlagzTests of the Flags.c                 C   st   G dd„ dt ƒ}|| _G dd„ dt ƒ}|| _G dd„ dt ƒ}|| _G dd„ dtt ƒ}|| _G d	d
„ d
t ƒ}|| _d S )Nc                   @   s   e Zd ZdZd\ZZZdS )zTestFlag.setUp.<locals>.PermúR W X)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^   ÚFun6  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(  C  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>L  ó   € zRTestFlag.setUp.<locals>.TermColor._create_pseudo_member_values_.<locals>.<genexpr>©r³   ©r,  rç  r—  r@  r]   r]   r^   Ú_create_pseudo_member_values_J  ó   
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Þ  p  rß  z>TestFlag.setUp.<locals>.TermColor.__repr__.<locals>.<listcomp>)rK  rk   rl   r³   r   Ú__iter__rž   r]   r]   r^   rÁ  l  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__r  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__v  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^   Ú	TermColorB  s>    
rÚ  c                   @   r|   )zTestFlag.setUp.<locals>.Openr   rr   rs   rt   é   N)rl   rm   rn   ÚROÚWOÚRWÚACÚCEr]   r]   r]   r^   ÚOpenz  r„   rá  )r   r”  rÜ   r  r?  rÚ  rá  )rf   r”  rÜ   r  rÚ  rá  r]   r]   r^   r+  %  s   	
6
zTestFlag.setUpc                    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_strÑ  s   zTestFlag.test_str_is_str_strc                 C   sˆ   | j }| j}|  d|v ¡ |  d|v ¡ |  |j|v ¡ |  |j|v ¡ |  |j|v ¡ |  |j|v ¡ |  d|v ¡ |  d|v ¡ d S )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ø  è  rá  z/TestFlag.test_member_contains.<locals>.<lambda>c                      rè  r†  ré  r]   r÷  r]   r^   rø  é  rá  zRED|GREEN|BLUE)rÜ   r¨  rê   rˆ  r  rž   r]   r÷  r^   rÑ  æ  s
   zTestFlag.test_member_containsc                 C   sd   |   | j | jj¡d¡ |   | j | jj¡d¡ |   | j | jj¡d¡ |   | j | jj¡d¡ d S )Nr   rr   rs   rt   )r	  rÜ   Ú__len__ry  r  r–  r˜  rž   r]   r]   r^   Útest_member_lengthí  s   zTestFlag.test_member_lengthc                 C   sx   G dd„ dt ƒ}|  t|ƒ|j|j|j|j|jg¡ |  |j|j	¡ |  |j	j
d¡ |  |jj
d¡ |  |jj
d¡ d S )Nc                   @   s2   e Zd ZdZeƒ Zeƒ Zeƒ ZdZeƒ Z	eƒ Z
dS )z>TestFlag.test_number_reset_and_order_cleanup.<locals>.ConfusedzONE TWO FOUR DOS EIGHT SIXTEENrs   N)rl   rm   rn   rØ   r"   r  r  r×  rÕ  rœ  ÚSIXTEENr]   r]   r]   r^   rØ  ô  s    
rØ  rs   rú   é   )r   r	  rû  r  r  r×  rœ  rì  r,  rÕ  r)  rÙ  r]   r]   r^   rÚ  ó  s   þz,TestFlag.test_number_reset_and_order_cleanupc                 C   s  | j }|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd¡ |  t|j ƒd¡ |  t|j ƒd	¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd¡ |  t|d
ƒƒd¡ |  t|d
ƒƒd¡ | j}|  t|jƒd¡ |  t|jƒd¡ |  t|j	ƒd¡ |  t|j|j
B ƒd¡ |  t|j|j
B ƒd¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j	 ƒd¡ |  t|j|j
B  ƒd¡ |  t|j|j
B  ƒd¡ d S )NzPerm.RzPerm.WzPerm.XzPerm.R|Wz
Perm.R|W|Xr   zPerm(0)zPerm.W|XzPerm.R|XrP   zOpen.ROzOpen.WOzOpen.ACzOpen.CEz
Open.WO|CEzOpen.WO|RW|CEz
Open.RW|CEzOpen.RW©r”  r	  r?  r‘  r’  r“  rá  rÜ  rÝ  rß  rà  ©rf   r”  rá  r]   r]   r^   Útest_str  s2    zTestFlag.test_strc                 C   sð  | j }|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd¡ |  t|j ƒd¡ |  t|j ƒd	¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd¡ |  t|d
ƒƒd¡ | j}|  t|jƒd¡ |  t|jƒd¡ |  t|j	ƒd¡ |  t|j|j
B ƒd¡ |  t|j|j
B ƒd¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j	 ƒd¡ |  t|j|j
B  ƒd¡ |  t|j|j
B  ƒd¡ d S )Nú<Perm.R: 4>ú<Perm.W: 2>ú<Perm.X: 1>ú<Perm.R|W: 6>ú<Perm.R|W|X: 7>r   ú	<Perm: 0>ú<Perm.W|X: 3>ú<Perm.R|X: 5>rP   ú<Open.RO: 0>ú<Open.WO: 1>ú<Open.AC: 3>ú<Open.CE: 524288>ú<Open.WO|CE: 524289>ú<Open.WO|RW|CE: 524291>ú<Open.RW|CE: 524290>ú<Open.RW: 2>)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_orA  s   ýzTestFlag.test_orc           
      C   sò   | j }|j|jB }|j|jB }|j|jB }|j|jB |jB }t|ƒ|||||dƒg }|D ]}|D ]}|  ||@ 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_andM  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_invertl  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	  r  r)  r  r!  )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   r-  r/  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   r-  r/  r]   r]   r^   re  Ö  r2  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   r-  r/  r]   r]   r^   rh  å  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 r4  )r   r7   rû  r	  rú  r‘  r’  r“  r‰  rŠ  r
  rl  r!  ró  r.  r,  r/  r]   r]   r^   rj  ô  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”  r5  r]   r]   r^   Ú$test_programatic_function_empty_list  ó   

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   r5  r6  r7  r]   r]   r^   Ú%test_programatic_function_empty_tuple  r9  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_pickle  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Ü   Ì  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^   ÚRequiredÒ  s    rE  rr   rs   rt   )r   r	  rB  r
  rC  rD  )rf   rE  r]   r]   r^   Útest_auto_w_pendingÑ  s   zTestFlag.test_auto_w_pendingc                 C   s0   G dd„ dt ƒ}|  |j|j|jgt|ƒ¡ d S )Nc                   @   rù  )z+TestFlag.test_duplicate_auto.<locals>.Dupesrs  Nrú  r]   r]   r]   r^   rü  Ý  rý  rü  )r   r	  r£  r¦  rw  rû  )rf   rü  r]   r]   r^   rþ  Ü  s    zTestFlag.test_duplicate_autoc                 C   rÔ   )Nc                   @   rp   )z&TestFlag.test_bizarre.<locals>.Bizarrert   r~   ra  N)rl   rm   rn   r¸  r#  rU  r]   r]   r]   r^   ÚBizarreå  ry   rG  rô   )rf   rG  r]   r]   r^   Útest_bizarreä  rá   zTestFlag.test_bizarrec                 C   sT  G dd„ dt ƒ}G dd„ dt ƒ}G dd„ d|tƒ}|  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  t|jƒd¡ G dd„ d||tƒ}|  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  t|jƒd¡ G dd„ d||tƒ}|  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  t|jƒd¡ d S )Nc                   @   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^   rL  í  ó   
z2TestFlag.test_multiple_mixin.<locals>.AllMixin.ALLN©rl   rm   rn   rÈ   rL  r]   r]   r]   r^   ÚAllMixinì  rä  rQ  c                   @   r›   )z.TestFlag.test_multiple_mixin.<locals>.StrMixinc                 S   rê  rÉ   rë  rž   r]   r]   r^   rP  ø  rÒ   z6TestFlag.test_multiple_mixin.<locals>.StrMixin.__str__Nrì  r]   r]   r]   r^   rí  ÷  r¡   rí  c                   @   rþ   ©z+TestFlag.test_multiple_mixin.<locals>.Colorr÷  Nrø  r]   r]   r]   r^   rÜ   ú  r  rÜ   rr   rs   r~   r´  rù  c                   @   rþ   rR  rø  r]   r]   r]   r^   rÜ     r  rÛ   c                   @   rþ   rR  rø  r]   r]   r]   r^   rÜ     r  )	r'  r   r	  r  r
  r  r  rL  r?  )rf   rQ  rí  rÜ   r]   r]   r^   r   ë  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–  ©ri  r]   r^   rÞ  4  ó    
ÿÿz2TestFlag.test_unique_composite.<locals>.<listcomp>rú   r   ú;at least one thread failed while creating composite membersrc  ú"too many composite members created)r   r  r­   r·   r³   r…  r	  rú  ©rf   ÚthreadsÚtr]   ©rŽ  ri  rg  rh  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Å  E  s    €ýz^TestFlag.test_init_with_autovalue_and_generate_next_value.<locals>.Color._generate_next_value_c                    s8   t |  |¡ƒ}tˆ | ƒ |¡}d dd„ |D ƒ¡|_|S )Nr¢  c                 s   r£  rÉ   r¤  rÛ  r]   r]   r^   r¥  Y  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  U  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Ü   C  s    rÜ   rô   rž   r]   r÷  r^   Ú0test_init_with_autovalue_and_generate_next_valueB  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(  e  rÜ  zFTestFlag.test_autovalue_and_generate_next_value.<locals>.Color.__new__c                 _   ó   d| f| S r†  r]   rÄ  r]   r]   r^   rÅ  k  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¥  s  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  o  ó   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Ü   c  s    
rÜ   )r?  r   rž   r]   r÷  r^   Ú&test_autovalue_and_generate_next_valueb  s   z/TestFlag.test_autovalue_and_generate_next_valuec                    s\   G ‡ fdd„dt tƒ‰ |  tˆ jˆ ƒ¡ |  tˆ jt ƒ¡ |  ˆ jd¡ |  ˆ jjd¡ d S )Nc                       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Ü   µ  ó    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Å  È  râ  zCTestFlag.test_sub_subclass_2.<locals>.StrFlag._generate_next_value_c                    r†  )Nr¢  c                 s   r£  rÉ   r¤  rÛ  r]   r]   r^   r¥  Ï  r¦  zWTestFlag.test_sub_subclass_2.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>r‡  rˆ  r  r]   r^   r  Ë  r‰  zDTestFlag.test_sub_subclass_2.<locals>.StrFlag._create_pseudo_member_)rl   rm   rn   rÇ  rÅ  rô  r  ro   r]   r÷  rj   r^   r’  Ç  s
    
r’  c                   @   s8   e Zd ZdZdd„ ZdZdZdZdZdZ	d	Z
d
ZdZdS )z+TestFlag.test_sub_subclass_2.<locals>.Colorr„  c                 S   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Ü   Ó  s    rÜ   rŒ  r­  r  r—  r]   r÷  r^   Útest_sub_subclass_2Æ  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(  ì  rÜ  z5TestFlag.test_sub_subclass_3.<locals>.StrFlag.__new__c                    r†  )Nr¢  c                 s   r£  rÉ   r¤  rÛ  r]   r]   r^   r¥  ö  r¦  zWTestFlag.test_sub_subclass_3.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>r‡  rˆ  r  r]   r^   r  ò  r‰  zDTestFlag.test_sub_subclass_3.<locals>.StrFlag._create_pseudo_member_r‘  r]   r÷  rj   r^   r’  ë  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Ü   ú  r–  rÜ   rŒ  r­  r  r—  r]   r÷  r^   Útest_sub_subclass_3ê  s   zTestFlag.test_sub_subclass_3c                 C   s¾   G dd„ dt tƒ}G dd„ d|ƒ}|  t|j|ƒ¡ |  t|jt ƒ¡ |  |jd¡ |  |jjd¡ |j|jB }|  t||ƒ¡ |  t|t ƒ¡ |  |d¡ |  |jd¡ |  t|ƒd	¡ d S )
Nc                   @   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(  4  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’  3  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(  D  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Þ  Z  rß  zSTestFlag.test_sub_subclass_with_new_new.<locals>.Color.__repr__.<locals>.<listcomp>©rK  rk   rl   r³   rž   r]   r]   r^   rÁ  V  ó   
 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Ü   B  s    rÜ   ÚBlkrŸ  )r?  r   rˆ  rP  rÊ  r	  rÁ  r  rß   r]   r  r^   Útest_sub_subclass_with_new_new2  s   z'TestFlag.test_sub_subclass_with_new_newc                 C   sp   G dd„ dt tƒ}|  |jd¡ |  |jjd¡ |  |jd¡ |  |jjd¡ |  |jd¡ |  |jjd¡ d S )	Nc                   @   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^   ÚMyFlaga  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(  p  rÜ  z5TestFlag.test_subclass_a_bunch.<locals>.Color.__new__c                 _   r…  r†  r]   rÄ  r]   r]   r^   rÅ  v  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  y  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Ü   n  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_bunchm  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-  ´  r­  z@TestFlag.test_init_subclass.<locals>.WhereEnum.__init_subclass__Nr?  r]   r]   r]   r^   rG  ³  r¡   rG  c                   @   r  )z.TestFlag.test_init_subclass.<locals>.NeverEnumrr   NrA  r]   r]   r]   r^   rH  ¶  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_conversionN)8rl   rm   rn   rÍ   r+  rF  rq  rR  râ  rä  ræ  rÑ  rë  rÚ  rð  r  r  r  r  r  r  rÇ  r(  r*  r+  ra  rc  re  rh  rj  r8  r:  r;  r?  rç  rA  rF  rþ  rH  r   ÚunittestÚ
skipUnlessrn  ry  r‚  r‹  rŽ  r˜  r™  rš  rœ  rª  r­  r¯  rK  r¸  r]   r]   r]   r^   rŽ  "  sj    ]$

	) 
.
( !# $!'.-$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e e d6¡d7d8„ ƒZ!d9d:„ Z"d;S )<ÚTestIntFlagzTests of the IntFlags.c                 C   sF   G dd„ dt ƒ}G dd„ dt ƒ}G dd„ dt ƒ}|| _|| _|| _d S )Nc                   @   rÕ   )zTestIntFlag.setUp.<locals>.Permr  r~   rs   rr   Nr  r]   r]   r]   r^   r”  Ô  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Ü   Ú  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á  á  r‰   rá  )r   r”  rÜ   rá  )rf   r”  rÜ   rá  r]   r]   r^   r+  Ò  s   
zTestIntFlag.setUpc                    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ð  6  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¡ t|jdB ƒ W d   ƒ n1 sŸw   Y  |  	t
d¡ t|jdB  ƒ 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¡ t|jdB ƒ W d   ƒ n	1 s~w   Y  |  	t
d¡ t|jdB  ƒ W d   ƒ n	1 sw   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”  S  rÝ   r”  rñ  rò  ró  rô  rõ  r   rö  r÷  rø  z12 is not a valid Permrú   z-9 is not a valid Permé÷ÿÿÿc                   @   r|   )rÇ  r  r~   rs   rr   r‚  N©rl   rm   rn   rØ   r‘  r’  r“  ÚFUTUREr]   r]   r]   r^   r”  m  r„   )r   rV   r   Ú
_boundary_r	  rŒ  r‘  r’  r“  ra   r²   r·  r]   r]   r^   Útest_repr_strictQ  sX    ÿÿÿ ÿÿ$ÿzTestIntFlag.test_repr_strictc                 C   óÌ  G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd
¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd	¡ |  t|jdB ƒd¡ |  t|dƒƒd	¡ |  t|jdB  ƒd
¡ |  t|dƒƒd¡ G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd
¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd	¡ |  t|jdB ƒd¡ |  t|dƒƒd	¡ |  t|jdB  ƒd
¡ |  t|dƒƒd¡ d S )Nc                   @   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   rV   r   rË  r	  rŒ  r‘  r’  r“  r·  r]   r]   r^   Útest_repr_conform‡  óD     zTestIntFlag.test_repr_conformc                 C   s¼  G dd„ dt ƒ}|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd
¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd	¡ |  t|jdB ƒd¡ |  t|dƒƒd¡ |  t|jdB  ƒd¡ |  t|dƒƒd¡ G dd„ dt ƒ}|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|jB ƒd¡ |  t|j|jB |jB ƒd¡ |  t|dƒƒd	¡ |  t|j ƒd
¡ |  t|j ƒd¡ |  t|j ƒd¡ |  t|j|jB  ƒd¡ |  t|j|jB |jB  ƒd	¡ |  t|jdB ƒd¡ |  t|dƒƒd¡ |  t|jdB  ƒd¡ |  t|dƒƒd¡ d S )Nc                   @   s    e Zd ZdZeZdZdZdZdS )ú)TestIntFlag.test_repr_eject.<locals>.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È  z-9c                   @   s$   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   r	  rŒ  r‘  r’  r“  r·  r]   r]   r^   Útest_repr_eject·  s@     zTestIntFlag.test_repr_ejectc                 C   rÍ  )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ú   rÈ  c                   @   r|   )rÖ  r  r~   rs   rr   r‚  NrÉ  r]   r]   r]   r^   r”     r„   rÏ  r·  r]   r]   r^   Útest_repr_keepç  rÑ  zTestIntFlag.test_repr_keepc                 C   sŽ  G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|j	B ƒd¡ |  t|j|j	B ƒd¡ |  t|j ƒd¡ |  t|j ƒd	¡ |  t|j ƒd¡ |  t|j|j	B  ƒd¡ |  t|j|j	B  ƒd
¡ |  
td¡ t|dƒƒ W d   ƒ n1 sŽ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 ƒd¡ |  t|j ƒd¡ |  t|j ƒd	¡ |  t|j ƒd¡ |  t|j|j	B  ƒd¡ |  t|j|j	B  ƒd
¡ |  t|dƒƒd¡ |  t|dƒƒd¡ G dd„ dt ƒ}tj|_|  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|j|j	B ƒd¡ |  t|j|j	B ƒd¡ |  t|j ƒd¡ |  t|j ƒd	¡ |  t|j ƒd¡ |  t|j|j	B  ƒd¡ |  t|j|j	B  ƒd
¡ |  t|dƒƒd¡ |  t|dƒƒd¡ d S )Nc                   @   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   z-5 is not a valid Openr±  z4 is not a valid Openr~   c                   @   r…   rØ  r½  r]   r]   r]   r^   rá  /  r‰   c                   @   r…   rØ  r½  r]   r]   r]   r^   rá  D  r‰   z-5r¬  )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  Y  s(   úzTestIntFlag.test_orc           
   	   C   sº  | j }|j|jB }|j|jB }|j|jB }|j|jB |jB }t|ƒ|||||dƒg }|D ]‚}|D ]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  n  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  ˆ  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    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_iter®  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 r,  ©r   rû  r	  rú  r‘  r’  r“  r‰  rŠ  r
  rl  r!  ró  r.  r,  r/  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 r1  rÞ  r/  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 r3  rÞ  r/  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 r4  rÞ  r/  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 r4  )r   r7   rû  r	  rú  r‘  r’  r“  r‰  rŠ  r
  rl  r!  ró  r.  r,  r/  r]   r]   r^   rj  ö  s   øz/TestIntFlag.test_programatic_function_from_dictc           	      C   r<  rÉ   r=  r>  r]   r]   r^   r?    r@  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   rI  rJ  rK  rM  r]   r]   r^   rL  $  rO  z5TestIntFlag.test_multiple_mixin.<locals>.AllMixin.ALLNrP  r]   r]   r]   r^   rQ  #  rä  rQ  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Ü   1  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Ü   F  rä  )	r'  r   r	  r  r
  r  r  rL  r?  )rf   rQ  rÜ   r]   rã  r^   r   "  s(   zTestIntFlag.test_multiple_mixinrS  c                    rT  )Nc                   @   rU  )z3TestIntFlag.test_unique_composite.<locals>.TestFlagrV  c                 S   rW  rÉ   r]   r\  r]   r]   r^   r]  _  r    z:TestIntFlag.test_unique_composite.<locals>.TestFlag.__eq__c                 S   rÁ  rÉ   rX  rž   r]   r]   r^   rN  a  rÒ   z<TestIntFlag.test_unique_composite.<locals>.TestFlag.__hash__NrZ  r]   r]   r]   r^   rŽ  U  r`  rŽ  Fc                     ra  rb  rd  re  rf  r]   r^   ri  f  rj  z5TestIntFlag.test_unique_composite.<locals>.cycle_enumc                    rk  rl  rm  rp  rq  r]   r^   rÞ  m  rr  z5TestIntFlag.test_unique_composite.<locals>.<listcomp>rú   r   rs  rc  rt  )r   r  r­   r·   r³   r…  r	  rú  ru  r]   rx  r^   ry  R  rz  z!TestIntFlag.test_unique_compositec                    r'  )Nc                       r(  )z.TestIntFlag.test_init_subclass.<locals>.MyEnumc                    r)  r*  r,  r0  r1  r]   r^   r-  }  r2  z@TestIntFlag.test_init_subclass.<locals>.MyEnum.__init_subclass__r3  r]   r4  rj   r^   rÄ  |  r5  rÄ  c                       r6  )z1TestIntFlag.test_init_subclass.<locals>.TheirEnumc                    r7  r8  r:  r0  r<  r]   r^   r-  ƒ  r=  zCTestIntFlag.test_init_subclass.<locals>.TheirEnum.__init_subclass__r3  r]   r>  rj   r^   r9  ‚  rÓ  r9  c                   @   r›   )z1TestIntFlag.test_init_subclass.<locals>.WhoseEnumc                 [   r«  rÉ   r]   r0  r]   r]   r^   r-  ‡  r­  zCTestIntFlag.test_init_subclass.<locals>.WhoseEnum.__init_subclass__Nr?  r]   r]   r]   r^   r@  †  r¡   r@  c                   @   r  )z.TestIntFlag.test_init_subclass.<locals>.NoEnumrr   NrA  r]   r]   r]   r^   rB  ‰  r  rB  r/  r;  Fc                   @   r›   )z/TestIntFlag.test_init_subclass.<locals>.OurEnumc                 [   rC  rD  rF  r0  r]   r]   r^   r-  ’  rÒ   zATestIntFlag.test_init_subclass.<locals>.OurEnum.__init_subclass__Nr?  r]   r]   r]   r^   rE  ‘  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  {  rL  zTestIntFlag.test_init_subclassN)#rl   rm   rn   rÍ   r+  rF  rR  ræ  rÑ  r  r¾  rð  rÌ  rÐ  rÕ  r×  rÙ  r  r  r  r  rÝ  ra  rc  re  rh  rj  r?  rÇ  r   r¹  rº  rn  ry  rK  r]   r]   r]   r^   r»  Ï  s>    
6000B
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_string¢  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_string¦  ó   

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_string«  rî  z8TestEmptyAndNonLatinStrings.test_non_latin_number_stringN)rl   rm   rn   rç  rí  rñ  r]   r]   r]   r^   rå     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ò  ±  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d9S ):Ú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 agez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  r  r   rr   rs   r  r  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 carsr  )rs   r  zperson's carsN)rl   rm   rn   re  r   rë  Úcarsr]   r]   r]   r^   r    rÝ   r  r  r  r  rt   r  r  r®  r   rr   rs   ©r   r	  r   rë  r  r  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  4  ry   r  r  r  r  ©r   rˆ  rP  râ  ©rf   r  r	  r]   r]   r^   Útest_isinstance3  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  r  r   rr   rs   r  r  r]   r]   r^   Ú+test_explicit_indexing_after_functional_api=  ó   
z:TestNamedTuple.test_explicit_indexing_after_functional_apic                 C   r  )Nr  r  r  r  r  r  r  r   rr   rs   r  r  r]   r]   r^   Ú+test_implicit_indexing_after_functional_apiN  r  z:TestNamedTuple.test_implicit_indexing_after_functional_apic                 C   sþ   t ddƒ}|ddddƒ}|dddd	ƒ}|  |d
 d¡ |  |d d¡ |  |d d¡ |  |d d¡ |  |d
 d¡ |  |d d¡ |  |d d¡ |  |d d	¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd	¡ d S )Nr  )r  r  )r  rt   r  r  r  rt   r  r  r®  r   rr   rs   r  r  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  r  r  r  r]   r]   r^   Ú$test_issubclass_after_functional_apir  s   
z3TestNamedTuple.test_issubclass_after_functional_apic                 C   sJ   t ddƒ}|dddƒ}|  t||ƒ¡ |  t|t ƒ¡ |  t|tƒ¡ d S )Nr  r  r  r  r  r  r  r]   r]   r^   Ú$test_isinstance_after_functional_apiw  s
   
z3TestNamedTuple.test_isinstance_after_functional_apic                 C   sv   t ddƒ}|dddd}|  |d d¡ |  |d d¡ |  |d	 d¡ |  |jd¡ |  |jd¡ |  |jd¡ d S )
Nr  r  r  r  r  )r   r£  rë  r   rr   rs   r  r  r]   r]   r^   Útest_creation_with_all_keywords~  s   
z.TestNamedTuple.test_creation_with_all_keywordsc                 C   sÞ   t ddƒ}|dddd}|  |d d¡ |  |d d¡ |  |d	 d¡ |  |jd¡ |  |jd¡ |  |jd¡ |dddd
}|  |d d¡ |  |d d¡ |  |d	 d¡ |  |jd¡ |  |jd¡ |  |jd¡ d S )Nr  r  r  r  r  )r£  rë  r   rr   rs   )rë  r£  r  r  r]   r]   r^   Ú test_creation_with_some_keywordsˆ  s   
z/TestNamedTuple.test_creation_with_some_keywordsc                    sJ   G ‡ fdd„dt ƒ‰ ˆ dƒ}|  |jd¡ |  |jd¡ |  |jd¡ d S )Nc                       s*   e Zd ZdZdZdZ‡‡ fdd„Z‡  ZS )z,TestNamedTuple.test_custom_new.<locals>.Bookr   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Þ  Ÿ  s    zHTestNamedTuple.test_custom_new.<locals>.Book.__new__.<locals>.<listcomp>r¢  )rŠ  rd   r(  râ  )r,  rž  rg   )ÚBookrk   r]   r^   r(  ž  s   z4TestNamedTuple.test_custom_new.<locals>.Book.__new__)rl   rm   rn   rú  ÚauthorÚgenrer(  ro   r]   ©r$  rj   r^   r$  š  s
    r$  z&The Last Mohican; John Doe; HistoricalzThe Last MohicanúJohn DoeÚ
Historical)r   r	  rú  r%  r&  )rf   Úb1r]   r'  r^   Útest_custom_new™  s
   zTestNamedTuple.test_custom_newc                 C   s|   G dd„ dt ƒ}ddidddœdd	d
œdd	ddœfD ]!}|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^   Ú	Character§  ry   r/  ró  r(  zWilliam PickneyÚscholar)ró  r.  zSarah Doughteryr­  )ró  r-  zSissy MoonbeamÚ	sorceress)ró  r-  r.  )rø  )r-  r¬  )r.  r,  r]   )r   r	  rc   )rf   r/  Úcharr#  ró  r
  r]   r]   r^   Útest_defaults_in_class¦  s   
üýùz%TestNamedTuple.test_defaults_in_classc                 C   s6   G dd„ dt ƒ}|ƒ }|  |jd¡ |  |jd¡ d S )Nc                   @   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˜   r5  r   )r   r	  r4  r5  )rf   r5  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   r7  )Nzsickly greenÚ2x4Úfoul)rP  r   r®   r¼   r	  )rf   Údfr]   r]   r^   Ú%test_pickle_namedtuple_without_moduleÅ  r:  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 )Nr$  ztitle author genreÚTecklaúSteven BrustÚfantasy)r   rˆ  ©rf   r$  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ú  r%  r&  r]   r]   r]   r^   r$  Û  ó
    r$  rB  rC  rD  ©r   rˆ  r	  rú  r%  r¨  rê   rE  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   ÚminimumrH  rú  r%  r]   r]   r]   r^   r$  ê  s    r$  rB  rC  rD  rJ  rE  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                   @   rF  )z/TestNamedTuple.test_variable_size.<locals>.Bookr   rr   rs   N)	rl   rm   rn   r   ÚvariablerH  rú  r%  r&  r]   r]   r]   r^   r$  ü  rI  r$  rB  rC  rD  r&  )rú  r&  )r%  )
r   rˆ  r	  rú  r%  r&  r¨  rë  rc   rê   rE  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   r4  rP   Nr3  r]   r]   r]   r^   r5    r˜   r5  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   rT  rX  )rt   rV  rW  )r~   rY  rZ  Nr[  r]   r]   r]   r^   ÚPixel3  ry   r^  z	x y r g brQ  rr   r4  rP   rT  rX  rV  rW  rY  rZ  )r   rl   r	  Ú_fields_rŠ  r4  rÍ   Údefaultr5  ra  rb  r¸  )rf   r5  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_keyE  s   zHTestNamedTuple.test_inherit_from_existing.<locals>.OERecTuple.record_keyc                 S   s   |   |¡|d< d S )NrP   )rd  rM  r]   r]   r^   Ú_review_I  s   zFTestNamedTuple.test_inherit_from_existing.<locals>.OERecTuple._review_N)rl   rm   rn   rô  rd  re  r]   r]   r]   r^   Ú
OERecTupleC  s
    
rf  ÚOERec)rc  Úxmlidrß  rr   Úabc123rs   Úxyz789)rr   ri  ÚABC123rt   rk  )r   r	  rú  rß  )rf   rf  rg  Úoe_1Úoe_2r]   r]   r^   Útest_inherit_from_existingB  s   

z)TestNamedTuple.test_inherit_from_existingc                 C   sF   G dd„ dt ƒ}t dd|d}|dddƒ}|  | ¡ d	g d
¢f¡ d S )Nc                   @   r›   )z5TestNamedTuple.test_function_api_type.<locals>.Testerc                 S   s   dt t| ƒƒfS )NÚ	backwards)rû  rR  rž   r]   r]   r^   ÚhowdyW  r6  z;TestNamedTuple.test_function_api_type.<locals>.Tester.howdyN)rl   rm   rn   rp  r]   r]   r]   r^   ÚTesterV  r¡   rq  ÚTesteeza c erl  rr   rs   rt   ro  )rt   rs   rr   )r   r	  rp  )rf   rq  rr  rw  r]   r]   r^   Útest_function_api_typeU  s   z%TestNamedTuple.test_function_api_typec              	   C   sb   G dd„ dt ƒ}G dd„ dt ƒ}t d|| td}|ddd	d
dƒ}|  | ¡ ddd	d
ddœ¡ d S )Nc                   @   r“   )z)TestNamedTuple.test_asdict.<locals>.PointrP  rR  Nr3  r]   r]   r]   r^   r5  ^  r˜   r5  c                   @   rp   )z)TestNamedTuple.test_asdict.<locals>.ColorrS  rU  rX  Nr[  r]   r]   r]   r^   rÜ   a  ry   rÜ   r\  r   rê  i›ÿÿÿéÿ   r%  r   )r4  r5  ra  rb  r¸  )r   rl   r	  Ú_asdict)rf   r5  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>.PointrP  rR  Nr3  r]   r]   r]   r^   r5  j  r˜   r5  r~   r   )r~   r   )r   r	  Ú_make)rf   r5  r]   r]   r^   Ú	test_makei  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>.ColorrS  rU  rX  Nr[  r]   r]   r]   r^   rÜ   q  ry   rÜ   é   r   )rb  )rz  rz  rz  )r   Ú_replacer	  )rf   rÜ   rï   Úmid_grayr]   r]   r^   Útest_replacep  s   zTestNamedTuple.test_replaceN)rl   rm   rn   r  r  r  r  r  r  r  r  r   r!  r"  r#  r+  r3  r6  r9  r>  rƒ  rÍ  rK  rM  rO  rb  rn  rs  rw  ry  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^   ÚK}  rx  r  r¯  rs   r±  r®  r²  r  rt   )r   r	  r  r	  ra   rë  rˆ  )rf   r  r]   r]   r^   Útest_constantness|  s   ÿÿÿz#TestNamedConstant.test_constantnessc                 C   sD   G dd„ dt ƒ}|  |j|ju ¡ |  |j|j¡ |  |jd¡ d S )Nc                   @   s@   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
Zd
Zd
Zd
ZdS )z5TestNamedConstant.test_duplicates.<locals>.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^   Ú
CardNumberŒ  s    r‡  rµ  )r   r…  rƒ  r„  r	  )rf   r‡  r]   r]   r^   Útest_duplicates‹  s   z!TestNamedConstant.test_duplicatesc                 C   sX   G dd„ dt ƒ}|  |jd¡ |ddƒ}|  ||j¡ |  |jd¡ |  |j|v ¡ d S )Nc                   @   rÕ   )z9TestNamedConstant.test_extend_constants.<locals>.CardSuitrr   rs   rt   r~   N)rl   rm   rn   ÚHEARTSÚSPADESÚDIAMONTSÚCLUBSr]   r]   r]   r^   ÚCardSuitŸ  rÝ   r  rr   ÚSTARSr   )r   r	  r‰  r,  rŽ  rˆ  )rf   r  Ústarsr]   r]   r^   Útest_extend_constantsž  s   
z'TestNamedConstant.test_extend_constantsc                 C   sn   G dd„ dt ƒ}|  |jd¡ |  |jjd¡ |  |jd¡ |  |jjd ¡ |  |jd¡ |  |jjd¡ d S )Nc                   @   s$   e Zd ZeddƒZdZeddƒZdS )z=TestNamedConstant.test_constant_with_docstring.<locals>.Stuffr´  úlucky number!rX  rW  ú	blah blahN)rl   rm   rn   r   ÚArtifactÚBowlingÚHillWompr]   r]   r]   r^   ÚStuff«  s    
r–  r´  r‘  rX  rW  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~  z  s    
r~  c                   @   r›   )ÚTestStarImportc                 C   s    i }t d||ƒ |  d|¡ d S )Nzfrom aenum import *r   )Úexecr.  )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Ü   6  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_plain5  s    
z%TestExtendEnum.test_extend_enum_plainc                 C   s„   G dd„ dt ƒ}t|ddƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  t|ƒd¡ d S )Nc                   @   rp   )z4TestExtendEnum.test_extend_enum_alias.<locals>.Colorrr   rs   rt   Nr…  r]   r]   r]   r^   rÜ   M  ry   rÜ   r  rr   rÙ   rt   )	r   r!   r	  r  ró  r
  rˆ  rÙ   rú  rß   r]   r]   r^   Útest_extend_enum_aliasL  s   z%TestExtendEnum.test_extend_enum_aliasc                 C   s  G dd„ dt ƒ}|  tdt|dd¡ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  |j	jd¡ |  |j	jd¡ |  |j	|v ¡ |  |dƒ|j	¡ |  |d	 |j
¡ |  |j
jd	¡ |  |j
jd
¡ |  |j
|v ¡ |  |d
ƒ|j
¡ |  t|ƒd
¡ t|ddƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  t|ƒd¡ |  tdt|dd¡ t|dƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  t|ƒd¡ d S )Nc                   @   rp   )z5TestExtendEnum.test_extend_enum_unique.<locals>.Colorrr   rs   rt   Nr…  r]   r]   r]   r^   rÜ   Z  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_uniqueY  s@   
z&TestExtendEnum.test_extend_enum_uniquec                 C   s”   G dd„ dt ƒ}t|ddƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  t|ƒd¡ |  |jjd¡ d S )Nc                   @   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_propertyƒ  s   z/TestExtendEnum.test_extend_enum_shadow_propertyc                 C   sf   G dd„ dt ƒ}G dd„ d|tƒ}|  tdt|dd¡ |  t|ƒd¡ |  t|ƒ|j|j	|j
g¡ d S )	Nc                   @   r›   )z:TestExtendEnum.test_extend_enum_shadow_base.<locals>.hohumc                 S   r  )rð  rÚ  rž   r]   r]   r^   rK  “  r  z?TestExtendEnum.test_extend_enum_shadow_base.<locals>.hohum.cyanN)rl   rm   rn   rK  r]   r]   r]   r^   rö  ’  r¡   rö  c                   @   rp   )z:TestExtendEnum.test_extend_enum_shadow_base.<locals>.Colorrr   rs   rt   Nr…  r]   r]   r]   r^   rÜ   –  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_base‘  s
    z+TestExtendEnum.test_extend_enum_shadow_basec                 C   sª   G dd„ dt ƒ}t|dddƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |dƒ|j¡ |  |d |j¡ |  t|ƒd¡ |  t	dt|d¡ d S )	Nc                   @   rp   )z9TestExtendEnum.test_extend_enum_multivalue.<locals>.Color©rr   r~   r´  ©rs   r   rú   ©rt   ra  r®  Nr…  r]   r]   r]   r^   rÜ   Ÿ  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_multivaluež  s   z*TestExtendEnum.test_extend_enum_multivaluec                 C   sŽ  G dd„ dt ƒ}|  tdt|dd¡ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |dƒ|j¡ |  |dƒ|j¡ |  |d |j¡ |  |j	jd	¡ |  |j	jd
¡ |  |j	|v ¡ |  |d
ƒ|j	¡ |  |dƒ|j	¡ |  |dƒ|j	¡ |  |d |j
¡ |  |j
jd¡ |  |j
jd¡ |  |j
|v ¡ |  |dƒ|j
¡ |  |dƒ|j
¡ |  |dƒ|j
¡ |  t|ƒd¡ d S )Nc                   @   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   éþÿÿÿ)Ú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Ü   3  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_intflag2  s"   

z"TestExtendEnum.test_extend_intflagc                 C   s  G dd„ dt ƒ}t|ddƒ |  |dƒ|ju ¡ |  t|j|ƒ¡ |  |jjd¡ |  t|tƒ¡ t|dƒ |  |dƒ|j	u ¡ |  t|j	|ƒ¡ |  |j	jd¡ t|dƒ |  |j
jd¡ |  |j
jd¡ |  |j
|v ¡ |  |dƒ|j
¡ |  |d |j
¡ |  t|ƒd	¡ d S )
Nc                   @   rÕ   )z;TestExtendEnum.test_extend_intflag_backwards.<locals>.Colorr   rr   rs   r~   Nrù  r]   r]   r]   r^   rÜ   K  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_backwardsJ  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Ü   d  s    
rÜ   ry  rN  r~   )r   r!   r	  ry  ró  r
  rú  rß   r]   r]   r^   Útest_extend_strenumc  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Ð  3  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^   ÚMeasurementq  r„   r	  c                 S   rÙ  r]   rÚ  rÛ  r]   r]   r^   rÞ  w  rß  z2TestIssues.test_auto_multi_int.<locals>.<listcomp>r$  c                 S   rÙ  r]   rò  rÛ  r]   r]   r^   rÞ  x  rß  )ræ  rç  rC  r	  r   r	  rr   r	  rs   )r!  r   r   r	  r,  ræ  rç  rC  )rf   r	  r]   r]   r^   Útest_auto_multi_intp  s   zTestIssues.test_auto_multi_intc                 C   sb   G dd„ dt ƒ}|  |jj|jj|jjfddi f¡ |  |jj|jj|jjfdd|jdif¡ d S )Nc                   @   s4   e Zd ZdZedi dZededidZdd„ ZdS )	z'TestIssues.test_auto_kwds.<locals>.Itemr  r›  ©r	  Úrequirementsrœ  rr   c                 S   óN   t  | ¡}||_||_i }| ¡ D ]\}}t|tƒr|j}|||< q||_|S rÉ   ©	r'  r(  r)  r	  r  rP  r"   Úenum_memberr	  ©r,  r
  r	  r	  r¾   Únew_requirementsr  r  r]   r]   r^   r(  †  ó   


z/TestIssues.test_auto_kwds.<locals>.Item.__new__Nr  r]   r]   r]   r^   r    s
    r  rr   r›  rs   rœ  ©r   r	  r  r
  r	  r	  r  r  r]   r]   r^   Útest_auto_kwds€  s   $.zTestIssues.test_auto_kwdsc                 C   sb   G dd„ dt ƒ}|  |jj|jj|jjfddi f¡ |  |jj|jj|jjfdd|jdif¡ d S )Nc                   @   s<   e Zd ZdZdd„ Zedi dZededidZdd	„ Zd
S )z/TestIssues.test_auto_kwds_and_gnv.<locals>.Itemr  c                 _   ré  rÉ   r]   rÄ  r]   r]   r^   rÅ  ™  r­  zETestIssues.test_auto_kwds_and_gnv.<locals>.Item._generate_next_value_r›  r	  rœ  rr   c                 S   r	  rÉ   r		  r	  r]   r]   r^   r(  ž  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  –  s    r  r  r›  r  rœ  rr   r	  r  r]   r]   r^   Útest_auto_kwds_and_gnv•  s   $.z!TestIssues.test_auto_kwds_and_gnvc                 C   sN   G dd„ dt ƒ}t|ddƒ |  |j|jB |dƒ¡ |  |j|jB jd¡ d S )Nc                   @   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	  r	  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ê  Únewr	  )r   ÚuuidÚuuid4r+  r!   )rf   rý  Úrandr¤  r]   r]   r^   Útest_extend_unhashable¶  s   
	þz!TestIssues.test_extend_unhashableN)rl   rm   rn   r	  r	  r	  rú  r	  r]   r]   r]   r^   r 	  n  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  r!	  )r  r
  zUNCOMPARABLE_%s))r  r#	  )r  r$	  )r  r"	  z
COMPLEX_%s))rG  r 	  )r«  r	  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~   r&	  r´  r)	  )	r   Ú	_convert_ÚMODULEr	  ró  rû  r&	  r5	  r)	  ©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 )Nr,	  c                 S   r-	  r.	  r0	  r2	  r]   r]   r^   rø    rá  z.TestConvert.test_convert_int.<locals>.<lambda>r3	  r   )
r5	  ÚCONVERT_TEST_NAME_BÚCONVERT_TEST_NAME_CÚCONVERT_TEST_NAME_DÚCONVERT_TEST_NAME_EÚCONVERT_TEST_NAME_Fr&	  r'	  r(	  r)	  c                    ó   g | ]
}|t ˆ ƒvr|‘qS r]   ©Úenum_dir©rÜ  ró  ©r¾  r]   r^   rÞ  (  ó    z0TestConvert.test_convert_int.<locals>.<listcomp>c                    r?	  r]   ©ÚdirrB	  rC	  r]   r^   rÞ  )  rD	  ú#extra names: %r;  missing names: %r©Úmsg)r   r6	  r7	  r	  r>	  r5	  r:	  r;	  r<	  r=	  rF	  r!  rA	  )rf   Úint_dirÚextraÚmissingr]   rC	  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   r-	  )NÚUNCOMPARABLE_r0	  r2	  r]   r]   r^   rø  5  rá  z7TestConvert.test_convert_uncomparable.<locals>.<lambda>r3	  )r   r6	  r7	  r	  rû  ÚUNCOMPARABLE_AÚUNCOMPARABLE_BÚUNCOMPARABLE_C©rf   Úuncompr]   r]   r^   Útest_convert_uncomparable0  s   ýýz%TestConvert.test_convert_uncomparablec                 C   s4   t jdtdd„ d}|  t|ƒ|j|j|jg¡ d S )NrN	  c                 S   r-	  )NÚCOMPLEX_r0	  r2	  r]   r]   r^   rø  B  rá  z2TestConvert.test_convert_complex.<locals>.<lambda>r3	  )r   r6	  r7	  r	  rû  Ú	COMPLEX_AÚ	COMPLEX_BÚ	COMPLEX_CrS	  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 )Nr,	  c                 S   r-	  )NÚCONVERT_STR_r0	  r2	  r]   r]   r^   rø  M  rá  z.TestConvert.test_convert_str.<locals>.<lambda>T©r4	  Ú	as_globalr 	  r	  c                    r?	  r]   r@	  rB	  rC	  r]   r^   rÞ  S  rD	  z0TestConvert.test_convert_str.<locals>.<listcomp>c                    r?	  r]   rE	  rB	  rC	  r]   r^   rÞ  T  rD	  rG	  rH	  z%s.CONVERT_STR_TEST_1)r   r6	  r7	  r	  ÚCONVERT_STR_TEST_1ÚCONVERT_STR_TEST_2rF	  rA	  rŒ  ÚSHORT_MODULEr?  rÚ  )rf   rK	  rL	  r]   rC	  r^   Útest_convert_strI  s$   ü
ýzTestConvert.test_convert_strc                 C   sT   t jdtdd„ dd}|  t|jƒdt ¡ |  t|jƒd¡ |  t|jƒd¡ d S )Nr,	  c                 S   r-	  )NÚCONVERT_STRING_TEST_r0	  r2	  r]   r]   r^   rø  b  rá  z7TestConvert.test_convert_repr_and_str.<locals>.<lambda>Tr\	  z%s.CONVERT_STRING_TEST_NAME_ArÂ  )	r   r6	  r7	  r	  rŒ  ÚCONVERT_STRING_TEST_NAME_Ar`	  r?  rÚ  r8	  r]   r]   r^   Útest_convert_repr_and_str^  s   üz%TestConvert.test_convert_repr_and_strN)rl   rm   rn   r+	  r9	  rM	  r¹  rº  r.   rU	  rZ	  ra	  rd	  r]   r]   r]   r^   r%	  ì  s    



r%	  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ä  rF	  )r,  ÚinterestingÚmethodr]   r]   r^   rA	  j  s   




€
rA	  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  rF	  r¹  r0  r  rP  r#   rõ  rÊ   r–  rB   Údiscardrä  )r%   Úallowedr,  ró  r¾   r]   r]   r^   Ú
member_dir  s   ÷
rl	  Ú__main__F)Úexitz%s: %sT)ÔÚ
__future__r   r   r¯   rV   rT   r  ÚshutilÚtempfilerÃ  r¹  r	  Ú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Í  rn  rö  rN   Ú	NameErrorrl   r7	  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 	  r<	  r;	  r:	  r5	  r=	  r>	  r&	  r'	  r(	  r)	  ÚCONVERT_STRING_TEST_NAME_DÚCONVERT_STRING_TEST_NAME_CÚCONVERT_STRING_TEST_NAME_Brc	  ÚCONVERT_STRING_TEST_NAME_EÚCONVERT_STRING_TEST_NAME_Fr_	  r^	  rP	  rR	  rQ	  rY	  rW	  rX	  r%	  rA	  rl	  Úmkdtempr  rÏ  ÚmainÚstdoutÚflushÚresultÚskippedró  ÚreasonrÓ  Úrmtreern	  rú  rÒ  r¹   r]   r]   r]   r^   Ú<module>   sÞ  ($$00ÿÿ	
ÿÿÿ€ÿ€ÿÿ€ÿÿÿÿÿÿÿÿ
ÿ 
l   % (                        x         6     V8   Qa  =^~

ÿ,ÿÿ*ÿô