o
    `^hO7 ã                	   @   sì  d dl mZ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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' ddl(m)Z) dd	l*m+Z+ dd
l,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2m3Z3 ddl4Z4ddl5Z5ddl6Z6ddl7Z7ddl1Z1zddl8Z8W n e9e:fy«   dZ8Y nw ze; W n e<y»   e=Z;Y nw G dd„ de2ƒZ>G dd„ de2ƒZ?G dd„ de2ƒZ@G dd„ de2ƒZAG dd„ de2ƒZBG dd„ de2ƒZCeDdkrôe=dƒ‚dS )é   )	ÚEnumMetaÚEnumÚIntEnumÚFlagÚIntFlagÚStrEnumÚ
UniqueEnumÚAutoEnumÚAddValueEnum)Ú
NamedTupleÚ	TupleSizeÚ
MagicValueÚAddValueÚNoAliasÚUniqueÚ
MultiValue)ÚAutoNumberEnumÚMultiValueEnumÚOrderedEnumÚuniqueÚskipÚextend_enumÚauto)ÚStdlibEnumMetaÚ
StdlibEnumÚStdlibIntEnumÚ
StdlibFlagÚStdlibIntFlagÚStdlibStrEnum)ÚpyverÚPY3_3ÚPY3_4ÚPY3_5ÚPY3_6ÚPY3_7ÚPY3_11)Úadd_stdlib_integrationÚremove_stdlib_integrationé    )ÚOrderedDict)Ú	timedelta)ÚdumpsÚloadsÚPicklingErrorÚHIGHEST_PROTOCOL)ÚTestCaseÚmainNc                   @   sD  e Zd Zdd„ Ze ed¡dd„ ƒZe ed¡dd„ ƒZe e	e
kd¡d	d
„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd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„ Z0dUdV„ Z1dWdX„ Z2dYdZ„ Z3d[d\„ Z4d]d^„ Z5d_d`„ Z6dadb„ Z7dcdd„ Z8dedf„ Z9dgdh„ Z:didj„ Z;dkdl„ Z<e	e=krôdmdn„ Z>dodp„ Z?dqdr„ Z@e	eAkrdsdt„ ZBn	e	e
krdudt„ ZBe	eAkrdvdw„ ZCdxdy„ ZDdzd{„ ZEd|S )}Ú
TestEnumV3c                 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 ƒ}|| _
d S )Nc                   @   ó   e Zd ZdZdZdZdZdS )z TestEnumV3.setUp.<locals>.Seasonr   é   é   é   N)Ú__name__Ú
__module__Ú__qualname__ÚSPRINGÚSUMMERÚAUTUMNÚWINTER© r=   r=   úK/home/air/shanriGPT/back/venv/lib/python3.10/site-packages/aenum/test_v3.pyÚSeason!   ó
    r?   c                   @   s   e Zd ZdZdZde ZdS )z#TestEnumV3.setUp.<locals>.KonstantsgB‡
¿@gJØMû!	@r3   N)r6   r7   r8   ÚEÚPIÚTAUr=   r=   r=   r>   Ú	Konstants(   ó    rD   c                   @   ó    e Zd ZdZdZdZdZdZdS )z TestEnumV3.setUp.<locals>.Gradesé   r5   r4   r3   r(   N)r6   r7   r8   ÚAÚBÚCÚDÚFr=   r=   r=   r>   ÚGrades.   ó    rM   c                   @   r2   )z%TestEnumV3.setUp.<locals>.DirectionalÚeastÚwestÚnorthÚsouthN)r6   r7   r8   ÚEASTÚWESTÚNORTHÚSOUTHr=   r=   r=   r>   ÚDirectional6   r@   rW   r(   )Údatec                   @   ó   e Zd ZdZdZdS )z!TestEnumV3.setUp.<locals>.Holiday)éÝ  r   r   )rZ   r4   é   N)r6   r7   r8   ÚNEW_YEARÚIDES_OF_MARCHr=   r=   r=   r>   ÚHoliday>   ó    r^   )r   r?   ÚfloatrD   r   rM   ÚstrrW   ÚdatetimerX   r^   )Úselfr?   rD   rM   rW   rX   r^   r=   r=   r>   ÚsetUp    s   
zTestEnumV3.setUpzStdlib enum not availablec                 C   s¨  |   t| jtƒ¡ |   t| jjtƒ¡ |   t| jtƒ¡ |  t| jtƒ¡ |   t| jj	tƒ¡ |  t| jj	tƒ¡ t
tkr¢G dd„ dtƒ}|   t|tƒ¡ |   t|jtƒ¡ |   t|tƒ¡ |   t|jtƒ¡ G dd„ dtƒ}|   t|tƒ¡ |   t|jtƒ¡ |   t|tƒ¡ |   t|jtƒ¡ |  t|tƒ¡ |  t|jtƒ¡ t
tkrÒG dd„ dtƒ}|   t|tƒ¡ |   t|jtƒ¡ |  t|tƒ¡ |  t|jtƒ¡ d S d S )Nc                   @   ó   e Zd ZdZdS )z1TestEnumV3.test_stdlib_inheritence.<locals>.AFlagr   N©r6   r7   r8   Úoner=   r=   r=   r>   ÚAFlagN   ó    rh   c                   @   re   )z5TestEnumV3.test_stdlib_inheritence.<locals>.AnIntFlagr   Nrf   r=   r=   r=   r>   Ú	AnIntFlagU   ri   rj   c                   @   re   )z4TestEnumV3.test_stdlib_inheritence.<locals>.AStrEnumÚ1Nrf   r=   r=   r=   r>   ÚAStrEnum_   ri   rl   )Ú
assertTrueÚ
issubclassr?   r   Ú
isinstancer9   rM   ÚassertFalser   rH   r   r#   r   rg   r   r   r   r%   r   r   )rc   rh   rj   rl   r=   r=   r>   Útest_stdlib_inheritenceC   s4   úz"TestEnumV3.test_stdlib_inheritencec                 C   s’   z8t ƒ  G dd„ dtƒ}|  td¡ G dd„ dtƒ}G dd„ d||d}W d   ƒ n1 s/w   Y  W tƒ  ntƒ  w G d	d
„ d
t|d}d S )Nc                       s   e Zd Z‡ fdd„Z‡  ZS )z<TestEnumV3.test_stdlib_bad_getattribute.<locals>.BadEnumTypec                    s"   t ƒ  |¡}t|| ƒr| ¡  |S ©N)ÚsuperÚ__getattribute__ro   Ú	deprecate)ÚclsÚnameÚobj©Ú	__class__r=   r>   rt   k   s   
zMTestEnumV3.test_stdlib_bad_getattribute.<locals>.BadEnumType.__getattribute__)r6   r7   r8   rt   Ú__classcell__r=   r=   ry   r>   ÚBadEnumTypej   s    r|   zendless recursionc                   @   ó   e Zd ZdS )z9TestEnumV3.test_stdlib_bad_getattribute.<locals>.BaseEnumN©r6   r7   r8   r=   r=   r=   r>   ÚBaseEnumq   ó    r   c                   @   re   )z8TestEnumV3.test_stdlib_bad_getattribute.<locals>.BadEnumÚbarN©r6   r7   r8   ÚFOOr=   r=   r=   r>   ÚBadEnums   ri   r„   ©Ú	metaclassc                   @   re   )z9TestEnumV3.test_stdlib_bad_getattribute.<locals>.OkayEnumr   Nr‚   r=   r=   r=   r>   ÚOkayEnumx   ri   r‡   )r&   r   ÚassertRaisesRegexÚRecursionErrorr   r'   )rc   r|   r   r„   r‡   r=   r=   r>   Útest_stdlib_bad_getattributef   s   ý€z'TestEnumV3.test_stdlib_bad_getattributez+__qualname__ requires python 3.5 or greaterc                 C   s6   t dddd}|tƒ d< t| j|jƒ t| j|ƒ d S )NÚTheoryzrule law suppositionÚspanish_inquisition)Úqualname)r   ÚglobalsÚtest_pickle_dump_loadrm   Úrule)rc   r‹   r=   r=   r>   Ú'test_pickle_enum_function_with_qualname{   s   
z2TestEnumV3.test_pickle_enum_function_with_qualnamec                 C   s>   G dd„ dt dd}|  t|jjdƒd¡ |  |jjd¡ d S )Nc                   @   s8   e 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)TestEnumV3.test_auto_init.<locals>.Planet)gIæTf|ÑDg    
BA)gQX4Eg    ö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}|| j  | j| j  S )NgyÐ´WÒ=)ÚmassÚradius)rc   ÚGr=   r=   r>   Úsurface_gravityŒ   s   z9TestEnumV3.test_auto_init.<locals>.Planet.surface_gravityN)r6   r7   r8   ÚMERCURYÚVENUSÚEARTHÚMARSÚJUPITERÚSATURNÚURANUSÚNEPTUNEÚpropertyr–   r=   r=   r=   r>   ÚPlanetƒ   s    r    zmass radius©Úinitr3   gš™™™™™#@r’   )r   ÚassertEqualÚroundr™   r–   Úvalue)rc   r    r=   r=   r>   Útest_auto_init‚   s   zTestEnumV3.test_auto_initc                 C   sx   G dd„ dt dd}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ d S )Nc                   @   ó   e Zd ZdZdZdZdS )z3TestEnumV3.test_auto_init_with_value.<locals>.Color)r   ©r   r(   r(   )r3   ©r(   r   r(   )r4   ©r(   r(   r   N)r6   r7   r8   ÚREDÚBLUEÚGREENr=   r=   r=   r>   ÚColor•   ó    r®   z
value, rgbr¡   r   r3   r4   r¨   r©   rª   )r   r£   r«   r¥   r¬   r­   Úrgb©rc   r®   r=   r=   r>   Útest_auto_init_with_value”   s   z$TestEnumV3.test_auto_init_with_valuec                 C   s‚   |   t¡ G dd„ dttd}W d   ƒ n1 sw   Y  |   t¡ G dd„ dttd}W d   ƒ d S 1 s:w   Y  d S )Nc                   @   ó$   e Zd Ze e e dd„ Ze dS )ú-TestEnumV3.test_auto_turns_off.<locals>.Colorc                 S   s   t d| j ƒ d S )NzHello!  My serial is %s.)Úprintr¥   ©rc   r=   r=   r>   Úhello¦   s   z3TestEnumV3.test_auto_turns_off.<locals>.Color.helloN)r6   r7   r8   ÚredÚgreenÚbluer·   Úroser=   r=   r=   r>   r®   ¢   ó    r®   ©Úsettingsc                   @   r³   )r´   c                 W   s   d S rr   r=   )rc   Úargsr=   r=   r>   Ú__init__®   ó   z6TestEnumV3.test_auto_turns_off.<locals>.Color.__init__N)r6   r7   r8   r¸   r¹   rº   rÀ   r»   r=   r=   r=   r>   r®   ª   r¼   )ÚassertRaisesÚ	NameErrorr   r   r±   r=   r=   r>   Útest_auto_turns_off    s   ÿ"ÿzTestEnumV3.test_auto_turns_offc                 C   sD   G dd„ dt td}|  t|ƒ|j|j|jg¡ |  |jjd¡ d S )Nc                   @   ó   e Zd Zeeef dS )z$TestEnumV3.test_magic.<locals>.ColorN©r6   r7   r8   r¸   r¹   rº   r=   r=   r=   r>   r®   ³   ó    r®   r½   r   ©r   r   r£   Úlistr¸   r¹   rº   r¥   r±   r=   r=   r>   Ú
test_magic²   s   zTestEnumV3.test_magicc                 C   óB   |   td¡ G dd„ dtƒ}W d   ƒ d S 1 sw   Y  d S )Nzobject is not callablec                   @   s    e Zd ZdZeZedd„ ƒZdS )z4TestEnumV3.test_ignore_not_overridden.<locals>.ColorÚ
irreleventc                 S   s   t d| j ¡ ƒ d S )Nz
I am light)rµ   rw   Úlowerr¶   r=   r=   r>   Úshade½   s   z:TestEnumV3.test_ignore_not_overridden.<locals>.Color.shadeN)r6   r7   r8   Ú_ignore_r   Ú
_settings_rŸ   rÎ   r=   r=   r=   r>   r®   º   s
    r®   ©rˆ   Ú	TypeErrorr   r±   r=   r=   r>   Útest_ignore_not_overridden¸   ó   "ÿz%TestEnumV3.test_ignore_not_overriddenc                 C   sF   G dd„ dt tdd}|  t|ƒ|j|j|jg¡ |  |jjd¡ d S )Nc                   @   rÅ   )z*TestEnumV3.test_magic_start.<locals>.ColorNrÆ   r=   r=   r=   r>   r®   Â   rÇ   r®   r(   ©r¾   ÚstartrÈ   r±   r=   r=   r>   Útest_magic_startÁ   s   zTestEnumV3.test_magic_startc                 C   s&   | j }|  tt|ƒƒtg d¢ƒ¡ d S )N)rz   Ú__doc__Ú__members__r7   r9   r:   r;   r<   Ú__init_subclass__r6   Ú__getitem__Ú__len__Ú__contains__Ú__iter__r8   )r?   r£   ÚsetÚdir©rc   r?   r=   r=   r>   Útest_dir_on_classÇ   s
   

þzTestEnumV3.test_dir_on_classc                 C   s(   | j }|  tt|jƒƒtg d¢ƒ¡ d S )N)rz   rØ   Ú__eq__Ú__hash__r7   rw   r¥   Úvalues)r?   r£   rß   rà   r<   rá   r=   r=   r>   Útest_dir_on_itemÑ   s
   
þzTestEnumV3.test_dir_on_itemc                 C   sN   G dd„ dt ƒ}|  tt|ƒƒtg d¢ƒ¡ |  tt|jƒƒtg d¢ƒ¡ d S )Nc                   @   s   e Zd ZdZdZdd„ ZdS )z5TestEnumV3.test_dir_with_added_behavior.<locals>.TestÚthatÚthosec                 S   s
   d| j  S )NzWowser! I'm %s!©rw   r¶   r=   r=   r>   ÚwowserÜ   ó   
z<TestEnumV3.test_dir_with_added_behavior.<locals>.Test.wowserN)r6   r7   r8   ÚthisÚtheserê   r=   r=   r=   r>   ÚTestÙ   rE   rî   )rz   rØ   rÙ   r7   rì   rí   rÚ   r6   rÛ   rÜ   rÝ   rÞ   r8   )	rz   rØ   rã   rä   r7   rw   r¥   rå   rê   )r   r£   rß   rà   rì   )rc   rî   r=   r=   r>   Útest_dir_with_added_behaviorØ   s   

þ
þz'TestEnumV3.test_dir_with_added_behaviorc                 C   sB   G dd„ dt ƒ}G dd„ d|ƒ}|  tt|jƒƒtg d¢ƒ¡ d S )Nc                   @   ó   e Zd Zdd„ ZdS )zDTestEnumV3.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnumc                 S   ó   dS )Nzdid you see me?r=   r¶   r=   r=   r>   Ú	invisibleí   rÁ   zNTestEnumV3.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnum.invisibleN)r6   r7   r8   rò   r=   r=   r=   r>   Ú	SuperEnumì   ó    ró   c                   @   re   )zBTestEnumV3.test_dir_on_sub_with_behavior_on_super.<locals>.SubEnumrG   N)r6   r7   r8   Úsampler=   r=   r=   r>   ÚSubEnumï   ri   rö   )	rz   rØ   rã   rä   r7   rw   r¥   rå   rò   )r   r£   rß   rà   rõ   )rc   ró   rö   r=   r=   r>   Ú&test_dir_on_sub_with_behavior_on_superê   s   
þz1TestEnumV3.test_dir_on_sub_with_behavior_on_superc                 C   s(   G dd„ dt ƒ}|  t|jƒtu ¡ d S )Nc                   @   r§   )zATestEnumV3.test_members_are_always_ordered.<locals>.AlwaysOrderedr   r3   r4   N)r6   r7   r8   ÚfirstÚsecondÚthirdr=   r=   r=   r>   ÚAlwaysOrdered÷   r¯   rû   )r   rm   ÚtyperÙ   r)   )rc   rû   r=   r=   r>   Útest_members_are_always_orderedö   s   z*TestEnumV3.test_members_are_always_orderedc                    sj   ‡fdd„}| j ‰|  ˆjd¡ |  t|¡ G dd„ dtƒ‰ |  ˆjˆ j¡ ‡ ‡fdd„}|  t|¡ d S )Nc                      s   ˆ j dk d S )Nr5   )r9   r=   )r?   r=   r>   Úbad_compareþ   s   z0TestEnumV3.test_comparisons.<locals>.bad_comparer   c                   @   r§   )z)TestEnumV3.test_comparisons.<locals>.Partr   r3   r4   N)r6   r7   r8   r9   ÚCLIPÚBARRELr=   r=   r=   r>   ÚPart  r¯   r  c                      s   ˆj ˆ jk  d S rr   )r9   rÿ   r=   ©r  r?   r=   r>   rþ   
  s   )r?   ÚassertNotEqualr9   rÂ   rÒ   r   )rc   rþ   r=   r  r>   Útest_comparisonsý   s   zTestEnumV3.test_comparisonsc                 C   s´   |   t¡ G dd„ dtƒ}W d   ƒ n1 sw   Y  |   t¡ G dd„ dtƒ}W d   ƒ n1 s5w   Y  |   t¡ G dd„ dtƒ}W d   ƒ d S 1 sSw   Y  d S )Nc                   @   s   e Zd ZdZdZdZdZdS )z.TestEnumV3.test_duplicate_name.<locals>.Color1r   r3   r4   r5   NrÆ   r=   r=   r=   r>   ÚColor1  r@   r  c                   @   s    e Zd ZdZdZdZdd„ ZdS )z.TestEnumV3.test_duplicate_name.<locals>.Color2r   r3   r4   c                 S   rñ   )Nr¸   r=   r¶   r=   r=   r>   r¸     rÁ   z2TestEnumV3.test_duplicate_name.<locals>.Color2.redNrÆ   r=   r=   r=   r>   ÚColor2  s
    r  c                   @   s$   e Zd Zedd„ ƒZdZdZdZdS )z.TestEnumV3.test_duplicate_name.<locals>.Color3c                 S   rñ   )NÚredderr=   r¶   r=   r=   r>   r¸      s   z2TestEnumV3.test_duplicate_name.<locals>.Color3.redr   r3   r4   N)r6   r7   r8   rŸ   r¸   r¹   rº   r=   r=   r=   r>   ÚColor3  s    
r  )rÂ   rÒ   r   )rc   r  r  r  r=   r=   r>   Útest_duplicate_name  s   ÿÿ"ÿzTestEnumV3.test_duplicate_namec                 C   óD   |   t¡ G dd„ dttd}W d   ƒ d S 1 sw   Y  d S )Nc                   @   ó   e Zd ZdZdZdZdZdS )z:TestEnumV3.test_duplicate_value_with_unique.<locals>.Colorr   r3   r4   N©r6   r7   r8   r¸   r¹   rº   Úrojor=   r=   r=   r>   r®   )  r@   r®   r½   )rÂ   Ú
ValueErrorr   r   r±   r=   r=   r>   Ú test_duplicate_value_with_unique'  ó   "ÿz+TestEnumV3.test_duplicate_value_with_uniquec                 C   sz   G dd„ dt td}|  |j|ju ¡ |  |jjd¡ |  |jjd¡ |  t|ƒd¡ |  t|ƒ|j|j	|j
|jg¡ d S )Nc                   @   r  )z;TestEnumV3.test_duplicate_value_with_noalias.<locals>.Colorr   r3   r4   Nr  r=   r=   r=   r>   r®   0  r@   r®   r½   r   r5   )r   r   rp   r¸   r  r£   r¥   ÚlenrÉ   r¹   rº   r±   r=   r=   r>   Ú!test_duplicate_value_with_noalias/  s   $z,TestEnumV3.test_duplicate_value_with_noaliasc                 C   s&   G dd„ dt td}|  t|d¡ d S )Nc                   @   r  )z3TestEnumV3.test_noalias_value_lookup.<locals>.Colorr   r3   r4   Nr  r=   r=   r=   r>   r®   <  r@   r®   r½   r3   )r   r   rÂ   rÒ   r±   r=   r=   r>   Útest_noalias_value_lookup;  s   z$TestEnumV3.test_noalias_value_lookupc                 C   sJ   G dd„ dt td}|  |jjd¡ |  |dƒ|j¡ |  |jjd¡ d S )Nc                   @   r§   )z)TestEnumV3.test_multivalue.<locals>.Color©r   r¸   ©r3   r¹   ©r4   rº   NrÆ   r=   r=   r=   r>   r®   D  r¯   r®   r½   r   r¹   r  )	r   r   r£   r¸   r¥   ÚassertIsr¹   rº   rå   r±   r=   r=   r>   Útest_multivalueC  s   zTestEnumV3.test_multivaluec                 C   r
  )Nc                   @   r§   )z?TestEnumV3.test_multivalue_with_duplicate_values.<locals>.Colorr  r  ©r4   rº   r¸   NrÆ   r=   r=   r=   r>   r®   N  r¯   r®   r½   )rÂ   r  r   r   r±   r=   r=   r>   Ú%test_multivalue_with_duplicate_valuesL  r  z0TestEnumV3.test_multivalue_with_duplicate_valuesc                 C   sH   |   t¡ G dd„ dtttfd}W d   ƒ d S 1 sw   Y  d S )Nc                   @   r§   )zKTestEnumV3.test_multivalue_with_duplicate_values_and_noalias.<locals>.Colorr  r  r  NrÆ   r=   r=   r=   r>   r®   U  r¯   r®   r½   )rÂ   rÒ   r   r   r   r±   r=   r=   r>   Ú1test_multivalue_with_duplicate_values_and_noaliasS  s   "ÿz<TestEnumV3.test_multivalue_with_duplicate_values_and_noaliasc                 C   sJ   |   td¡ G dd„ dtttfd}W d   ƒ d S 1 sw   Y  d S )Nz0MultiValue and MagicValue are mutually exclusivec                   @   s   e Zd Ze dZe dS )z2TestEnumV3.test_multivalue_and_auto.<locals>.Color)r4   r¹   NrÆ   r=   r=   r=   r>   r®   \  r¯   r®   r½   )rˆ   rÒ   r   r   r   r±   r=   r=   r>   Útest_multivalue_and_autoZ  s   "ÿz#TestEnumV3.test_multivalue_and_autoc                 C   sf   G dd„ dt tdd}|  |jd¡ |  |jd¡ |  |jjd¡ |  |jjd¡ |  t|d	ƒ¡ d S )
Nc                   @   rY   )z2TestEnumV3.test_autonumber_and_init.<locals>.FieldúChar, Date, Logical, etc.úField offset in recordN©r6   r7   r8   ÚTYPEÚSTARTr=   r=   r=   r>   ÚFieldb  r_   r"  rØ   ©r¾   r¢   r   r3   r  r  Ú_order_)r   r   r£   r   r!  rØ   rp   Úhasattr©rc   r"  r=   r=   r>   Útest_autonumber_and_inita  s   z#TestEnumV3.test_autonumber_and_initc                 C   s6   G dd„ dt dd}|  |jd¡ |  |jjd¡ d S )Nc                   @   rY   )z1TestEnumV3.test_autovalue_and_init.<locals>.Fieldr  r  Nr  r=   r=   r=   r>   r"  l  r_   r"  úvalue __doc__r¡   r   r  )r   r£   r   r!  rØ   r&  r=   r=   r>   Útest_autovalue_and_initk  s   z"TestEnumV3.test_autovalue_and_initc                 C   sX   G dd„ dt dtdd}|  |jd¡ |  |jd¡ |  |jjd¡ |  |jjd¡ d S )	Nc                   @   rY   )z3TestEnumV3.test_autonumber_and_start.<locals>.Fieldr  r  Nr  r=   r=   r=   r>   r"  s  r_   r"  rØ   r(   )r¢   r¾   rÖ   r   r  r  )r   r   r£   r   r!  rØ   r&  r=   r=   r>   Útest_autonumber_and_startr  s
   z$TestEnumV3.test_autonumber_and_startc                 C   s   G dd„ dt 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                   @   r2   )zBTestEnumV3.test_autonumber_and_init_and_some_values.<locals>.Fieldr  r  )rG   ú	test blahú
test belchN)r6   r7   r8   r   r!  ÚBLAHÚBELCHr=   r=   r=   r>   r"  |  r@   r"  r(  r¡   r   r3   rG   é   r  r  r+  r,  )r   r£   r   r!  r-  r.  rØ   r&  r=   r=   r>   Ú(test_autonumber_and_init_and_some_values{  s   z3TestEnumV3.test_autonumber_and_init_and_some_valuesc                 C   sü   G dd„ dt dd}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd	¡ |  |jjd
¡ |  td¡ G dd„ dt dd}W d   ƒ n1 sUw   Y  G dd„ dt dd}|  	|j
jd¡ |  |jjd¡ |  	|jjd¡ d S )Nc                   @   rY   )ú?TestEnumV3.test_autonumber_with_irregular_values.<locals>.Point©é   é	   )é   é   N©r6   r7   r8   rø   rù   r=   r=   r=   r>   ÚPoint‹  r_   r8  zx yr¡   r   r3  r4  r3   r5  r6  zI.*number of fields provided do not match init ...x., .y.. != .3, 11, 13..c                   @   rY   )r1  r2  )r4   r5  r6  Nr7  r=   r=   r=   r>   r8  •  r_   c                   @   s   e Zd ZdZdZdZdS )z?TestEnumV3.test_autonumber_with_irregular_values.<locals>.Colorr=   r¸   NrÆ   r=   r=   r=   r>   r®   ˜  s    r®   rØ   r¸   )r   r£   rø   r¥   ÚxÚyrù   rˆ   rÒ   rm   r¸   rØ   r¹   rº   )rc   r8  r®   r=   r=   r>   Ú%test_autonumber_with_irregular_valuesŠ  s   ÿz0TestEnumV3.test_autonumber_with_irregular_valuesc                 C   ó@   |   t¡ G dd„ dtƒ}W d   ƒ d S 1 sw   Y  d S )Nc                   @   s.   e Zd ZdZdZdZdZedefdd„ƒZ	dS )z6TestEnumV3.test_autonumber_and_property.<locals>.Colorr=   Úreturnc                 S   ó
   | j  ¡ S rr   ©rw   Útitler¶   r=   r=   r>   Úcap_name¨  ó   
z?TestEnumV3.test_autonumber_and_property.<locals>.Color.cap_nameN©
r6   r7   r8   rÏ   r¸   r¹   rº   rŸ   ra   rA  r=   r=   r=   r>   r®   £  ó    r®   ©rÂ   rÒ   r	   r±   r=   r=   r>   Útest_autonumber_and_property¡  ó   "ÿz'TestEnumV3.test_autonumber_and_propertyc                 C   sd   G dd„ dt ƒ}|  t|ƒ|j|j|jg¡ |  dd„ |D ƒg d¢¡ |  dd„ |D ƒg d¢¡ d S )Nc                   @   ó   e Zd Ze e e dS )z'TestEnumV3.test_autoenum.<locals>.ColorNrÆ   r=   r=   r=   r>   r®   ­  r¯   r®   c                 S   ó   g | ]}|j ‘qS r=   ©r¥   ©Ú.0Úmr=   r=   r>   Ú
<listcomp>²  ó    z,TestEnumV3.test_autoenum.<locals>.<listcomp>)r   r3   r4   c                 S   rI  r=   ré   rK  r=   r=   r>   rN  ³  rO  ©r¸   r¹   rº   ©r	   r£   rÉ   r¸   r¹   rº   r±   r=   r=   r>   Útest_autoenum¬  s   zTestEnumV3.test_autoenumc                 C   sd   G dd„ dt ƒ}|  t|ƒ|j|j|jg¡ |  dd„ |D ƒg d¢¡ |  dd„ |D ƒg d¢¡ d S )Nc                   @   ó    e Zd Zdd„ Ze e e dS )z0TestEnumV3.test_autoenum_with_str.<locals>.Colorc                 S   ó   | S rr   r=   )rw   rÖ   ÚcountÚlast_valuesr=   r=   r>   Ú_generate_next_value_·  rÁ   zFTestEnumV3.test_autoenum_with_str.<locals>.Color._generate_next_value_N)r6   r7   r8   rW  r¸   r¹   rº   r=   r=   r=   r>   r®   ¶  ó
    r®   c                 S   rI  r=   rJ  rK  r=   r=   r>   rN  ½  rO  z5TestEnumV3.test_autoenum_with_str.<locals>.<listcomp>rP  c                 S   rI  r=   ré   rK  r=   r=   r>   rN  ¾  rO  rQ  r±   r=   r=   r>   Útest_autoenum_with_strµ  s   z!TestEnumV3.test_autoenum_with_strc                 C   ó$   G dd„ dt ƒ}|  |jjd¡ d S )Nc                   @   s$   e Zd Ze e e edd„ ƒZdS )z:TestEnumV3.test_autoenum_and_default_ignore.<locals>.Colorc                 S   r>  rr   r?  r¶   r=   r=   r>   rA  Å  rB  zCTestEnumV3.test_autoenum_and_default_ignore.<locals>.Color.cap_nameN)r6   r7   r8   r¸   r¹   rº   rŸ   rA  r=   r=   r=   r>   r®   Á  ó    r®   ÚBlue©r	   r£   rº   rA  r±   r=   r=   r>   Ú test_autoenum_and_default_ignoreÀ  s   z+TestEnumV3.test_autoenum_and_default_ignorec                 C   r<  )Nc                   @   s.   e Zd ZdZe e e edefdd„ƒZ	dS )z?TestEnumV3.test_autonumber_and_overridden_ignore.<locals>.ColorÚstaticmethodr=  c                 S   r>  rr   r?  r¶   r=   r=   r>   rA  Ñ  rB  zHTestEnumV3.test_autonumber_and_overridden_ignore.<locals>.Color.cap_nameNrC  r=   r=   r=   r>   r®   Ì  rD  r®   rE  r±   r=   r=   r>   Ú%test_autonumber_and_overridden_ignoreÊ  rG  z0TestEnumV3.test_autonumber_and_overridden_ignorec                 C   rZ  )Nc                   @   s.   e Zd ZdZe e eZede	fdd„ƒZ
dS )zATestEnumV3.test_autonumber_and_multiple_assignment.<locals>.ColorrŸ   r=  c                 S   r>  rr   r?  r¶   r=   r=   r>   rA  Û  rB  zJTestEnumV3.test_autonumber_and_multiple_assignment.<locals>.Color.cap_nameN)r6   r7   r8   rÏ   r¸   r¹   Úcyanrº   rŸ   ra   rA  r=   r=   r=   r>   r®   Ö  rD  r®   ÚCyanr]  r±   r=   r=   r>   Ú'test_autonumber_and_multiple_assignmentÕ  s   z2TestEnumV3.test_autonumber_and_multiple_assignmentc                 C   s`   G dd„ dt tttfdd}|}|  |jd¡ |  |j|dƒ  u o*|dƒu ¡ d S   ¡ d S )Nc                   @   r§   )zHTestEnumV3.test_multivalue_and_autonumber_inherited.<locals>.MeasurementÚ20110721Ú20120911Ú20110518N©r6   r7   r8   rg   ÚtwoÚthreer=   r=   r=   r>   ÚMeasurementá  r¯   rj  r(   rÕ   rd  )Úintr   r   r   r£   rg   rm   )rc   rj  ÚMr=   r=   r>   Ú(test_multivalue_and_autonumber_inheritedà  s   2z3TestEnumV3.test_multivalue_and_autonumber_inheritedc                 C   sX   G dd„ dt td}|  t¡ G dd„ d|td}W d   ƒ d S 1 s%w   Y  d S )Nc                   @   r}   )zDTestEnumV3.test_combine_new_settings_with_old_settings.<locals>.AutoNr~   r=   r=   r=   r>   ÚAutoê  r€   rn  r½   c                   @   s   e Zd Ze e dZdS )zJTestEnumV3.test_combine_new_settings_with_old_settings.<locals>.AutoUniquer   N)r6   r7   r8   r-  ÚBLUHÚICKr=   r=   r=   r>   Ú
AutoUniqueí  r¯   rq  )r   r   rÂ   r  r   )rc   rn  rq  r=   r=   r>   Ú+test_combine_new_settings_with_old_settingsé  s   "ÿz6TestEnumV3.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)TestEnumV3.test_timedelta.<locals>.Periodz3
            different lengths of time
            zvalue periodzPeriod ié   Údayzday_%dr[   r3  Úweekzweek_%dé   é   Úmonthzmonth_%dN)r6   r7   r8   rØ   Ú_init_r   rÐ   rÏ   ÚvarsÚPeriodÚrangeÚiÚday_1ÚOneDayÚweek_1ÚOneWeekr=   r=   r=   r>   r{  ó  s    r{  rÏ   r}  )r*   r   rp   r%  rm   ro   r~  )rc   r{  r=   r=   r>   Útest_timedeltaò  s
   zTestEnumV3.test_timedeltac                 C   s`   G dd„ dt ƒ}t|ddƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  t|ƒd¡ d S )Nc                   @   r§   )z0TestEnumV3.test_extend_enum_plain.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®   	  r¯   r®   Úbrownr5   )r   r   r£   rƒ  rw   r¥   rm   r  r±   r=   r=   r>   Útest_extend_enum_plain  s   z!TestEnumV3.test_extend_enum_plainc                 C   sp   G dd„ dt ƒ}t|ddƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  t|ƒd¡ |  |jjd¡ d S )Nc                   @   r§   )z1TestEnumV3.test_extend_enum_shadow.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®     r¯   r®   r¥   r5   r   )r   r   r£   r¥   rw   rm   r  r¸   r±   r=   r=   r>   Útest_extend_enum_shadow  s   z"TestEnumV3.test_extend_enum_shadowc                 C   sN   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d„ Ze e dS )z1TestEnumV3.test_extend_enum_generate.<locals>.Fooc                 _   rT  rr   r=   )rw   rÖ   rU  rå   r¿   Úkwdsr=   r=   r>   rW  !  rÁ   zGTestEnumV3.test_extend_enum_generate.<locals>.Foo._generate_next_value_N)r6   r7   r8   rW  ÚaÚbr=   r=   r=   r>   ÚFoo   s    r‰  Úcr‡  rˆ  )r	   r   r£   r‡  r¥   rˆ  rŠ  )rc   r‰  r=   r=   r>   Útest_extend_enum_generate  s
   
z$TestEnumV3.test_extend_enum_generatec                 C   óP   |   t¡ G dd„ dttd}t|ddƒ W d   ƒ d S 1 s!w   Y  d S )Nc                   @   r§   )z@TestEnumV3.test_extend_enum_unique_with_duplicate.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®   -  r¯   r®   r½   r¥   r   )rÂ   r  r   r   r   r±   r=   r=   r>   Ú&test_extend_enum_unique_with_duplicate+  ó   "ûz1TestEnumV3.test_extend_enum_unique_with_duplicatec                 C   rŒ  )Nc                   @   r§   )zDTestEnumV3.test_extend_enum_multivalue_with_duplicate.<locals>.Color)r   r  )r3   Úverde)r4   ÚazulNrÆ   r=   r=   r=   r>   r®   5  r¯   r®   r½   r¥   r3   )rÂ   r  r   r   r   r±   r=   r=   r>   Ú*test_extend_enum_multivalue_with_duplicate3  rŽ  z5TestEnumV3.test_extend_enum_multivalue_with_duplicatec                 C   sT   G dd„ dt td}t|ddƒ |  t|d¡ |  |j|ju ¡ |  |jjd¡ d S )Nc                   @   r§   )zATestEnumV3.test_extend_enum_noalias_with_duplicate.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®   <  r¯   r®   r½   r¥   r4   )	r   r   r   rÂ   rÒ   rp   r¥   rº   rm   r±   r=   r=   r>   Ú'test_extend_enum_noalias_with_duplicate;  s
   z2TestEnumV3.test_extend_enum_noalias_with_duplicatec                 C   s   dd„ }|   t|¡ d S )Nc                  S   s$   G dd„ dt ƒ} G dd„ dt ƒ} d S )Nc                   @   r§   ©zDTestEnumV3.test_no_duplicates.<locals>.bad_duplicates.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®   G  r¯   r®   c                   @   s   e Zd ZdZdZdZdZdS r“  )r6   r7   r8   r¸   r¹   rº   Úgrener=   r=   r=   r>   r®   K  r@   )r   ©r®   r=   r=   r>   Úbad_duplicatesF  ó   z5TestEnumV3.test_no_duplicates.<locals>.bad_duplicates)rÂ   r  )rc   r–  r=   r=   r>   Útest_no_duplicatesE  s   
zTestEnumV3.test_no_duplicatesc                 C   s&   G dd„ dt ƒ}G dd„ dtt ƒ}d S )Nc                   @   r§   )z2TestEnumV3.test_no_duplicates_kinda.<locals>.Sillyr   Údosr4   N)r6   r7   r8   rg   rh  rw   r=   r=   r=   r>   ÚSillyS  r¯   rš  c                   @   r2   )z4TestEnumV3.test_no_duplicates_kinda.<locals>.Sillierr   r3   r4   r5   N)r6   r7   r8   Úsinglerw   Útripler¥   r=   r=   r=   r>   ÚSillierW  r@   r  )r   r   )rc   rš  r  r=   r=   r>   Útest_no_duplicates_kindaR  s   z#TestEnumV3.test_no_duplicates_kindac                 C   ód   G dd„ dt td}|  t|ƒ|j|j|jg¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )Nc                   @   rH  )z*TestEnumV3.test_auto_number.<locals>.ColorN©r6   r7   r8   r¸   rº   r¹   r=   r=   r=   r>   r®   ^  r¯   r®   r½   r   r3   r4   ©r   r   r£   rÉ   r¸   rº   r¹   r¥   r±   r=   r=   r>   Útest_auto_number]  ó
   zTestEnumV3.test_auto_numberc                 C   rŸ  )Nc                   @   rS  )z(TestEnumV3.test_auto_name.<locals>.Colorc                 S   rT  rr   r=   ©rw   rÖ   rU  Úlastr=   r=   r>   rW  j  rÁ   z>TestEnumV3.test_auto_name.<locals>.Color._generate_next_value_N)r6   r7   r8   rW  r¸   rº   r¹   r=   r=   r=   r>   r®   i  rX  r®   r½   r¸   rº   r¹   r¡  r±   r=   r=   r>   Útest_auto_nameh  s
   zTestEnumV3.test_auto_namec                 C   st   G dd„ dt ƒ}G dd„ d|td}|  t|ƒ|j|j|jg¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )	Nc                   @   rð   )z7TestEnumV3.test_auto_name_inherit.<locals>.AutoNameEnumc                 S   rT  rr   r=   r¤  r=   r=   r>   rW  w  rÁ   zMTestEnumV3.test_auto_name_inherit.<locals>.AutoNameEnum._generate_next_value_N)r6   r7   r8   rW  r=   r=   r=   r>   ÚAutoNameEnumv  rô   r§  c                   @   rH  )z0TestEnumV3.test_auto_name_inherit.<locals>.ColorNr   r=   r=   r=   r>   r®   y  r¯   r®   r½   r¸   rº   r¹   r¡  )rc   r§  r®   r=   r=   r>   Útest_auto_name_inheritu  s   z!TestEnumV3.test_auto_name_inheritc                 C   rZ  )Nc                   @   s   e Zd ZeZdZe dS )z+TestEnumV3.test_auto_garbage.<locals>.Colorr¸   N)r6   r7   r8   r   rÐ   r¸   rº   r=   r=   r=   r>   r®   „  r¯   r®   r   )r   r£   rº   r¥   r±   r=   r=   r>   Útest_auto_garbageƒ  r—  zTestEnumV3.test_auto_garbagec                 C   rŸ  )Nc                   @   s   e Zd ZdZdZe dS )z5TestEnumV3.test_auto_garbage_corrected.<locals>.Colorr¸   r3   Nr   r=   r=   r=   r>   r®   ‹  r¯   r®   r½   r¸   r3   r4   r¡  r±   r=   r=   r>   Útest_auto_garbage_correctedŠ  r£  z&TestEnumV3.test_auto_garbage_correctedc                 C   s4   G dd„ dt td}|  |j|j|jgt|ƒ¡ d S )Nc                   @   s   e Zd ZeZe e dS )z-TestEnumV3.test_duplicate_auto.<locals>.DupesN)r6   r7   r8   Úprimerorø   rù   rú   r=   r=   r=   r>   ÚDupes–  r¯   r¬  r½   )r   r   r£   rø   rù   rú   rÉ   )rc   r¬  r=   r=   r>   Útest_duplicate_auto•  s    zTestEnumV3.test_duplicate_autoc                 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 )ú7TestEnumV3.test_order_as_function.<locals>.TestSequencezvalue, sequencec                 S   ó   | j S rr   ©Úsequence©Úmemberr=   r=   r>   Ú<lambda>   ó    ú@TestEnumV3.test_order_as_function.<locals>.TestSequence.<lambda>©úAn$(1,6)r(   ©úAn$(7,2)r   ©úAn$(9,4)r3   ©ú	Hn$(13,6)r4   ©ú	Cn$(19,3)r5   ©úZn$(1,1)rG   ©úBn(2,1)r/  ©ÚFnr3  ©úRn$(5,1)é   ©úSn$(6,1)r4  ©úQn$(7,2)é
   N©r6   r7   r8   ry  r$  Úitem_idÚ
company_idÚwarehouse_noÚcompanyÚkey_typeÚ	availableÚcontract_itemÚsales_categoryÚgl_categoryÚwarehouse_categoryÚ	inv_unitsr=   r=   r=   r>   ÚTestSequencež  ó    rÜ  rÑ  r¹  r(   rÒ  r»  r   rÓ  r½  r3   rÔ  r¿  r4   rÕ  rÁ  r5   rÖ  rÃ  rG   r×  rÅ  r/  rØ  rÇ  r3  rÙ  rÉ  rÊ  rÚ  rÌ  r4  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 )Nr   rJ  r³  r=   r=   r>   rµ  Ò  s   
 r·  r¸  rº  r¼  r¾  rÀ  rÂ  rÄ  rÆ  rÈ  rË  rÍ  N)r6   r7   r8   r$  rÑ  rÒ  rÓ  rÔ  rÕ  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°  rr   r±  r³  r=   r=   r>   rµ  û  r¶  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°  rr   r±  r³  r=   r=   r>   rµ    r¶  r·  r¸  r¼  r¾  rº  rÍ  rÂ  rÄ  rÆ  rÀ  rÈ  rË  N)r6   r7   r8   ry  r$  rÑ  rÓ  rÔ  rÒ  rÛ  rÖ  r×  rØ  rÕ  rÙ  rÚ  r=   r=   r=   r>   rÜ  	  rÝ  )r   Ú	enumerater£   r²  rÑ  rw   r¥   rÒ  rÓ  rÔ  rÕ  rÖ  r×  rØ  rÙ  rÚ  rÛ  rÂ   rÒ   )rc   rÜ  r}  r´  Útsr=   r=   r>   Útest_order_as_functionœ  sŠ   ÿ$ÿz!TestEnumV3.test_order_as_functionc                 C   sT   G dd„ dt ƒ}|  |dƒ|j¡ |  td|d¡ |  td|d¡ |  t|d¡ d S )	Nc                   @   s$   e Zd ZdZdZdZedd„ ƒZdS )z&TestEnumV3.test_missing.<locals>.Colorr   r3   r4   c                 S   s*   |dkr| j S |dkrdS |dkrt‚d S )Nri  ú
bad returnrG   ú	error out)rº   ÚZeroDivisionError)rv   Úitemr=   r=   r>   Ú	_missing_  s   z0TestEnumV3.test_missing.<locals>.Color._missing_N)r6   r7   r8   r¸   r¹   rº   Úclassmethodrå  r=   r=   r=   r>   r®     r[  r®   ri  z7 is not a valid Colorr3  zerror in .*_missing_rá  râ  )r   r  rº   rˆ   r  rÒ   rÂ   rã  r±   r=   r=   r>   Útest_missing  s
   zTestEnumV3.test_missingc                    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.TestEnumV3.test_enum_of_types.<locals>.MyTypesN)	r6   r7   r8   rk  r}  r`   Úfra   Úsr=   r=   r=   r>   ÚMyTypes1  r¯   rê  c                   @   r}   )z*TestEnumV3.test_enum_of_types.<locals>.FooNr~   r=   r=   r=   r>   r‰  8  r€   r‰  c                   @   r}   )z*TestEnumV3.test_enum_of_types.<locals>.BarNr~   r=   r=   r=   r>   ÚBar:  r€   rë  c                       s   e Zd Z”Z” ZdS )z/TestEnumV3.test_enum_of_types.<locals>.MyTypes2N)r6   r7   r8   r‡  rˆ  r=   )rë  r‰  r=   r>   ÚMyTypes2<  r_   rì  c                   @   r}   )z7TestEnumV3.test_enum_of_types.<locals>.SpamEnumNotInnerNr~   r=   r=   r=   r>   ÚSpamEnumNotInnerA  r€   rí  c                       s   e Zd Z” ZdS )z/TestEnumV3.test_enum_of_types.<locals>.SpamEnumN)r6   r7   r8   Úspamr=   )rí  r=   r>   ÚSpamEnumC  ri   rï  N)r   r£   r}  r¥   rk  rè  r`   ré  ra   r‡  rˆ  rî  )rc   rê  rì  rï  r=   )rë  r‰  rí  r>   Útest_enum_of_types/  s   zTestEnumV3.test_enum_of_typesc                 C   s~   G dd„ dt ƒ}|  t|jtƒ¡ |  |jjd¡ |  |jjjd¡ |  t	|jƒ|jj|jj
g¡ |  t	|ƒ|j|jg¡ dS )z'Support locally-defined nested classes.c                   @   s(   e Zd ZdZdZdZG dd„ deƒZdS )zKTestEnumV3.test_nested_classes_in_enum_do_not_create_members.<locals>.OuterÚOuterr   r3   c                   @   ó   e Zd ZdZdZdZdS )zQTestEnumV3.test_nested_classes_in_enum_do_not_create_members.<locals>.Outer.InnerzOuter.InnerrÏ  r5  N)r6   r7   r8   Úfoor   r=   r=   r=   r>   ÚInnerN  r¯   rô  N)r6   r7   r8   r‡  rˆ  r   rô  r=   r=   r=   r>   rñ  J  s
    rñ  r   rÏ  N)r   rm   ro   rô  rü   r£   r‡  r¥   ró  rÉ   r   rˆ  )rc   rñ  r=   r=   r>   Ú1test_nested_classes_in_enum_do_not_create_membersG  s   þ
þz<TestEnumV3.test_nested_classes_in_enum_do_not_create_membersc                 C   sZ   G dd„ dt ƒ}|| j_d| jj | j_t| jt| jjdd t	| j
| jjdtfd d S )Nc                   @   rY   ©zNTestEnumV3.test_class_nested_enum_and_pickle_protocol_four.<locals>.NestedEnumÚcommonÚrareN©r6   r7   r8   ÚtwigsÚshinyr=   r=   r=   r>   Ú
NestedEnuma  r_   rü  ú%s.NestedEnum)r(   r4   ©Úprotocolr5   )r   rz   rü  r6   r8   Útest_pickle_exceptionrÂ   r-   rú  r   rm   r.   ©rc   rü  r=   r=   r>   Ú/test_class_nested_enum_and_pickle_protocol_four_  s   þ
ÿz:TestEnumV3.test_class_nested_enum_and_pickle_protocol_fourc                 C   sD   G dd„ dt ƒ}|| j_d| jj | j_t| j| jjdtfd d S )Nc                   @   rY   rö  rù  r=   r=   r=   r>   rü  p  r_   rü  rý  r(   rþ  )	r   rz   rü  r6   r8   r   rm   rú  r.   r  r=   r=   r>   r  n  s   
ÿc                    sP   G ‡ fdd„dt ƒ‰ |  ˆ jˆ jgtˆ ƒ¡ |  ˆ jjd¡ |  ˆ jjd¡ d S )Nc                       s,   e Zd ZdZ” ddƒZ” ddƒZdd„ ZdS )	z-TestEnumV3.test_enum_injection.<locals>.ColorzBLACK WHITEÚblackz#000Úwhiteú#fffc                 S   s   || _ || _d S rr   )ÚlabelÚhex)rc   r  r  r=   r=   r>   rÀ   €  s   
z6TestEnumV3.test_enum_injection.<locals>.Color.__init__N)r6   r7   r8   r$  ÚBLACKÚWHITErÀ   r=   r•  r=   r>   r®   {  s
    

r®   r  r  )r   r£   r  r	  rÉ   r  r  r¶   r=   r•  r>   Útest_enum_injectionz  s   	zTestEnumV3.test_enum_injectionc                    s¸   G ‡ fdd„dt ƒ‰ G dd„ dˆ tƒ}|  |jtj¡ |  t|j|j ƒd¡ ˆ tƒ d< |tƒ d< ˆ ddƒ}|  |d¡ t	| j|ddt
fd	 |  |jjd
¡ t	| j|jdt
fd	 d S )Nc                       sH   e Zd ZdZdd„ Zdd„ Zedd„ ƒZ dd	„ Zd
d„ Z‡ fdd„ZdS )z?TestEnumV3.test_subclasses_with_getnewargs_ex.<locals>.NamedIntÚNamedIntc                 W   sP   |}t |ƒdk rtdƒ‚|d |dd … }}tj| g|¢R Ž }||_||_|S )Nr3   z name and value must be specifiedr(   r   )r  rÒ   rk  Ú__new__Ú_intnameÚ_args)rv   r¿   r  rw   rc   r=   r=   r>   r  ‹  s   zGTestEnumV3.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__new__c                 S   s
   | j i fS rr   )r  r¶   r=   r=   r>   Ú__getnewargs_ex__”  rë   zQTestEnumV3.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__getnewargs_ex__c                 S   r°  rr   )r  r¶   r=   r=   r>   r6   –  ó   zHTestEnumV3.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__name__c                 S   s   d  t| ƒj| jt | ¡¡S )Nz{}({!r}, {}))Úformatrü   r6   rk  Ú__repr__r¶   r=   r=   r>   r  ™  s   þzHTestEnumV3.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__repr__c                 S   s&   t }|j}|jtu r| | ¡S || ƒS rr   )rk  Ú__str__Ú__objclass__Úobjectr  )rc   ÚbaseÚbase_strr=   r=   r>   r  ž  s
   

zGTestEnumV3.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__str__c                    s>   t | ƒt |ƒ }t| ˆ ƒrt|ˆ ƒrˆ d | j|j¡|ƒS |S )Nz({0} + {1}))rk  ro   r  r6   )rc   ÚotherÚtemp©r  r=   r>   Ú__add__§  s   þzGTestEnumV3.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__add__N)	r6   r7   r8   r  r  rŸ   r  r  r  r=   r  r=   r>   r  ‰  s    	
	r  c                   @   rò  )z:TestEnumV3.test_subclasses_with_getnewargs_ex.<locals>.NEIÚNEI)zthe-xr   )zthe-yr3   N)r6   r7   r8   r9  r:  r=   r=   r=   r>   r  °  r¯   r  zNamedInt('(the-x + the-y)', 3)ÚtestrG   r5   rþ  r3   )rk  r   r  r  r£   Úreprr9  r:  rŽ   r   r.   r¥   rm   )rc   r  ÚNI5r=   r  r>   Ú"test_subclasses_with_getnewargs_exˆ  s   '


z-TestEnumV3.test_subclasses_with_getnewargs_exc                 C   s:   G dd„ dt d}G dd„ d|tƒ}|  t|jƒd¡ d S )Nc                   @   r}   )zCTestEnumV3.test_multiple_superclasses_repr.<locals>._EnumSuperClassNr~   r=   r=   r=   r>   Ú_EnumSuperClassÁ  r€   r!  r…   c                   @   re   )z5TestEnumV3.test_multiple_superclasses_repr.<locals>.Er   N)r6   r7   r8   rH   r=   r=   r=   r>   rA   Ã  ri   rA   z<E.A: 1>)r   r   r£   r  rH   )rc   r!  rA   r=   r=   r>   Útest_multiple_superclasses_reprÀ  s   z*TestEnumV3.test_multiple_superclasses_reprN)Fr6   r7   r8   rd   ÚunittestÚ
skipUnlessr   rq   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  r;  rF  rR  rY  r^  r`  rc  rm  rr  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>   r1      sŠ    
#

"

	
	
		
		
|



8r1   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S )ÚTestOrderV3z5
    Test definition order versus _order_ order.
    c                 C   ó   G dd„ dt ƒ}d S )Nc                   @   r2   )z,TestOrderV3.test_same_members.<locals>.Colorúred green bluer   r3   r4   N©r6   r7   r8   r$  r¸   r¹   rº   r=   r=   r=   r>   r®   Î  r@   r®   ©r   r±   r=   r=   r>   Útest_same_membersÍ  ó   zTestOrderV3.test_same_membersc                 C   r&  )Nc                   @   ó    e Zd ZdZdZdZdZeZdS )z9TestOrderV3.test_same_members_with_aliases.<locals>.Colorr'  r   r3   r4   N©r6   r7   r8   r$  r¸   r¹   rº   r  r=   r=   r=   r>   r®   Õ  rN   r®   r)  r±   r=   r=   r>   Útest_same_members_with_aliasesÔ  r+  z*TestOrderV3.test_same_members_with_aliasesc                 C   rË   )Nú#member order does not match _order_c                   @   r2   )z8TestOrderV3.test_same_members_wrong_order.<locals>.Colorr'  r   r4   r3   N©r6   r7   r8   r$  r¸   rº   r¹   r=   r=   r=   r>   r®   Þ  r@   r®   ©rˆ   rÒ   r   r±   r=   r=   r>   Útest_same_members_wrong_orderÜ  rÔ   z)TestOrderV3.test_same_members_wrong_orderc                 C   rË   )Nr/  c                   @   r2   )z7TestOrderV3.test_order_has_extra_members.<locals>.Colorúred green blue purpler   r3   r4   Nr(  r=   r=   r=   r>   r®   æ  r@   r®   r1  r±   r=   r=   r>   Útest_order_has_extra_membersä  rÔ   z(TestOrderV3.test_order_has_extra_membersc                 C   rË   )Nr/  c                   @   r,  )zDTestOrderV3.test_order_has_extra_members_with_aliases.<locals>.Colorr3  r   r3   r4   Nr-  r=   r=   r=   r>   r®   î  rN   r®   r1  r±   r=   r=   r>   Ú)test_order_has_extra_members_with_aliasesì  rÔ   z5TestOrderV3.test_order_has_extra_members_with_aliasesc                 C   rË   )Nr/  c                   @   rF   )z6TestOrderV3.test_enum_has_extra_members.<locals>.Colorr'  r   r3   r4   r5   N©r6   r7   r8   r$  r¸   r¹   rº   Úpurpler=   r=   r=   r>   r®   ÷  rN   r®   r1  r±   r=   r=   r>   Útest_enum_has_extra_membersõ  rÔ   z'TestOrderV3.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 )zCTestOrderV3.test_enum_has_extra_members_with_aliases.<locals>.Colorr'  r   r3   r4   r5   N©	r6   r7   r8   r$  r¸   r¹   rº   r7  r  r=   r=   r=   r>   r®      ó    r®   r1  r±   r=   r=   r>   Ú(test_enum_has_extra_members_with_aliasesþ  rÔ   z4TestOrderV3.test_enum_has_extra_members_with_aliasesc                 C   r&  )Nc                   @   r2   )z1TestOrderV3.test_same_members_flag.<locals>.Colorr'  r   r3   r5   Nr(  r=   r=   r=   r>   r®   	  r@   r®   ©r   r±   r=   r=   r>   Útest_same_members_flag  r+  z"TestOrderV3.test_same_members_flagc                 C   r&  )Nc                   @   r,  )z>TestOrderV3.test_same_members_with_aliases_flag.<locals>.Colorr'  r   r3   r5   Nr-  r=   r=   r=   r>   r®     rN   r®   r=  r±   r=   r=   r>   Ú#test_same_members_with_aliases_flag  r+  z/TestOrderV3.test_same_members_with_aliases_flagc                 C   rË   )Nr/  c                   @   r2   )z=TestOrderV3.test_same_members_wrong_order_falg.<locals>.Colorr'  r   r5   r3   Nr0  r=   r=   r=   r>   r®     r@   r®   rÑ   r±   r=   r=   r>   Ú"test_same_members_wrong_order_falg  rÔ   z.TestOrderV3.test_same_members_wrong_order_falgc                 C   rË   )Nr/  c                   @   r2   )z<TestOrderV3.test_order_has_extra_members_flag.<locals>.Colorr3  r   r3   r5   Nr(  r=   r=   r=   r>   r®   !  r@   r®   rÑ   r±   r=   r=   r>   Ú!test_order_has_extra_members_flag  rÔ   z-TestOrderV3.test_order_has_extra_members_flagc                 C   rË   )Nr/  c                   @   r,  )zITestOrderV3.test_order_has_extra_members_with_aliases_flag.<locals>.Colorr3  r   r3   r5   Nr-  r=   r=   r=   r>   r®   )  rN   r®   rÑ   r±   r=   r=   r>   Ú.test_order_has_extra_members_with_aliases_flag'  rÔ   z:TestOrderV3.test_order_has_extra_members_with_aliases_flagc                 C   rË   )Nr/  c                   @   rF   )z;TestOrderV3.test_enum_has_extra_members_flag.<locals>.Colorr'  r   r3   r5   rÊ  Nr6  r=   r=   r=   r>   r®   2  rN   r®   rÑ   r±   r=   r=   r>   Ú test_enum_has_extra_members_flag0  rÔ   z,TestOrderV3.test_enum_has_extra_members_flagc                 C   rË   )Nr/  c                   @   r9  )zHTestOrderV3.test_enum_has_extra_members_with_aliases_flag.<locals>.Colorr'  r   r3   r5   rÊ  Nr:  r=   r=   r=   r>   r®   ;  r;  r®   rÑ   r±   r=   r=   r>   Ú-test_enum_has_extra_members_with_aliases_flag9  rÔ   z9TestOrderV3.test_enum_has_extra_members_with_aliases_flagN)r6   r7   r8   rØ   r*  r.  r2  r4  r5  r8  r<  r>  r?  r@  rA  rB  rC  rD  r=   r=   r=   r>   r%  È  s     		
		r%  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestNamedTupleV3c                 C   sŠ   G dd„ dt tjd}|dddƒ}|  d|v ¡ |  d|v ¡ |  d|v ¡ |  |jd¡ |  |jd¡ |  t|dd¡ |  t|d¡ d S )Nc                   @   r§   )z.TestNamedTupleV3.test_fixed_size.<locals>.Bookr(   r   r3   N©r6   r7   r8   r@  ÚauthorÚgenrer=   r=   r=   r>   ÚBookG  r¯   rI  ©ÚsizeÚTecklaúSteven BrustÚfantasy)	r   r   Úfixedrm   r£   r@  rG  rÂ   rÒ   ©rc   rI  rˆ  r=   r=   r>   Útest_fixed_sizeF  s   z TestNamedTupleV3.test_fixed_sizec                 C   sÌ   G dd„ dt tjd}|dddƒ}|  d|v ¡ |  d|v ¡ |  d|v ¡ |  |jd¡ |  |jd¡ |  |d d¡ |ddƒ}|  d|v ¡ |  d|v ¡ |  |jd¡ |  |jd¡ |  t|d¡ d S )Nc                   @   rY   )z0TestNamedTupleV3.test_minimum_size.<locals>.Bookr(   r   N)r6   r7   r8   r@  rG  r=   r=   r=   r>   rI  U  r_   rI  rJ  rL  rM  rN  r3   )	r   r   Úminimumrm   r£   r@  rG  rÂ   rÒ   rP  r=   r=   r>   Útest_minimum_sizeT  s   
z"TestNamedTupleV3.test_minimum_sizec                 C   sî   G dd„ dt tjd}|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                   @   r§   )z1TestNamedTupleV3.test_variable_size.<locals>.Bookr(   r   r3   NrF  r=   r=   r=   r>   rI  g  r¯   rI  rJ  rL  rM  rN  rH  )r@  rH  )rG  )r   r   Úvariablerm   r£   r@  rG  rH  rÂ   ÚAttributeErrorÚgetattrrÒ   rP  r=   r=   r>   Útest_variable_sizef  s    
z#TestNamedTupleV3.test_variable_sizeN)r6   r7   r8   rQ  rS  rW  r=   r=   r=   r>   rE  D  s    rE  c                   @   s@   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Ze e	d	¡d
d„ ƒZ
dS )ÚTestStackoverflowAnswersV3c                 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d„ ZdS )zOTestStackoverflowAnswersV3.test_self_referential_directions.<locals>.Directions©r   r(   )r(   r   )éÿÿÿÿr(   )r(   rZ  c                 S   sR   || _ || _t| jƒr't| jƒ}|d |d }}|| _|| _| |_| |_d S d S ©Nr(   rZ  )r9  r:  r  rz   rÉ   ÚleftÚright)rc   r9  r:  Úallr\  r]  r=   r=   r>   rÀ   ˆ  s   


ùzXTestStackoverflowAnswersV3.test_self_referential_directions.<locals>.Directions.__init__N)r6   r7   r8   rU   rT   rV   rS   rÀ   r=   r=   r=   r>   Ú
Directions  s    r_  rY  )	r   r£   rU   r¥   rm   r\  rT   rV   r]  )rc   r_  rK   r=   r=   r>   Ú test_self_referential_directions  s
   z;TestStackoverflowAnswersV3.test_self_referential_directionsc                 C   sP   G dd„ dt ƒ}|  |jj|ju ¡ |  |jj|ju ¡ |  |jj|ju ¡ d S )Nc                   @   s    e Zd ZdZdZdZdd„ ZdS )zQTestStackoverflowAnswersV3.test_self_referential_rock_paper_scissors.<locals>.RPSÚrockÚpaperÚscissorsc                 S   s:   t | jƒrt| jƒ}|d |d }}| |_|| _d S d S r[  )r  rz   rÉ   Úbeats)rc   r¥   r^  rø   Úpreviousr=   r=   r>   rÀ   ¡  s   


ûzZTestStackoverflowAnswersV3.test_self_referential_rock_paper_scissors.<locals>.RPS.__init__N)r6   r7   r8   ÚRockÚPaperÚScissorsrÀ   r=   r=   r=   r>   ÚRPS›  s
    ri  )r   rm   rf  rd  rh  rg  )rc   ri  r=   r=   r>   Ú)test_self_referential_rock_paper_scissors™  s   zDTestStackoverflowAnswersV3.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@TestStackoverflowAnswersV3.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__headerÚwzinitial header stuff here
z#define %s %r
)r6   rV  ÚopenÚwriterw   r¥   )rv   r†  Úcls_nameÚheader_pathÚfhÚenumr=   r=   r>   rÚ   °  s   
ÿ"þzRTestStackoverflowAnswersV3.test_arduino_headers.<locals>.CHeader.__init_subclass__N)r6   r7   r8   rÚ   r=   r=   r=   r>   ÚCHeader¯  rô   rr  c                   @   s"   e Zd Zej ed¡ZdZdZ	dS )z@TestStackoverflowAnswersV3.test_arduino_headers.<locals>.Arduinoú	arduino.hr   r3   N)
r6   r7   r8   ÚosÚpathÚjoinÚtempdirÚ_Arduino__headerÚONEÚTWOr=   r=   r=   r>   ÚArduino¸  s    r{  rs  zv                initial header stuff here
                #define ONE 1
                #define TWO 2
                )
r   rl  rt  ru  rv  rw  Úreadr£   ÚtextwrapÚdedent)rc   rr  r{  rp  Údatar=   r=   r>   Útest_arduino_headers­  s   	
ÿûz/TestStackoverflowAnswersV3.test_arduino_headersc                 C   sz   G dd„ dt tdd}|  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |j	jd	¡ d S )
Nc                   @   sX   e Zd Ze e e e e dZe	 e
 e dZe e e dZe e e e e dS )z>TestStackoverflowAnswersV3.test_create_C_like_Enum.<locals>.Idé   i   i   N)r6   r7   r8   ÚNONEÚ	HEARTBEATÚFLUID_TRANSFER_REQUESTÚFLUID_TRANSFER_STATUS_MSGÚFLUID_TRANSFER_ERROR_MSGÚSTART_SENDING_PICTURESÚSTOP_SENDING_PICTURESÚSTART_RECORDING_VIDEO_REQÚSTOP_RECORDING_VIDEO_REQÚVOLUME_REQUESTÚ	START_CALÚCLI_COMMAND_REQUESTÚCLI_COMMAND_RESPONSEÚNEW_DELIVERY_REQÚGET_DELIVERY_FILE_REQÚGET_FILE_REQÚACK_NACKÚRESPONSEÚLAST_IDr=   r=   r=   r>   ÚIdÈ  s(    r•  r(   rÕ   r5   r  i  i  i  )
r   r   r£   r‚  r¥   r†  r‡  rŠ  rŒ  r”  )rc   r•  r=   r=   r>   Útest_create_C_like_EnumÆ  s    z2TestStackoverflowAnswersV3.test_create_C_like_Enumzpyparsing not installedc                    sœ  t tj td¡dƒ}| d¡ W d   ƒ n1 sw   Y  ddlm‰m‰m	‰m
‰m‰ ddlm‰m‰m‰	 d ‰ G ‡ ‡‡‡‡‡‡‡‡‡	f
dd„dtƒ‰G d	d
„ d
tˆd‰ G dd„ dˆ ƒ}G dd„ dˆ ƒ}|  t|ƒ|j|j|j|j|j|j|jg¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  t|ƒ|j|j|j|jg¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ |  |jjd¡ d S )Núc_plus_plus.hrk  a]  
                    stuff before
                    enum hello {
                        Zero,
                        One,
                        Two,
                        Three,
                        Five=5,
                        Six,
                        Ten=10
                        };
                    in the middle
                    enum blah
                        {
                        alpha,
                        beta,
                        gamma = 10 ,
                        zeta = 50
                        };
                    at the end
                    r(   )ÚGroupÚOptionalÚSuppressÚWordÚ
ZeroOrMore)ÚalphasÚ	alphanumsÚnumsc                       sJ   e Zd Zedd„ ƒZ‡‡ fdd„Z‡‡‡‡‡‡‡‡ ‡‡	‡
fdd„Z‡  ZS )zETestStackoverflowAnswersV3.test_c_header_scanner.<locals>.CPPEnumTypec                 [   s   i S rr   r=   )ÚmetaclsÚclsnameÚbasesr†  r=   r=   r>   Ú__prepare__  s   zQTestStackoverflowAnswersV3.test_c_header_scanner.<locals>.CPPEnumType.__prepare__c                    s   t ˆ | ƒj|Ž  d S rr   )rs   rÀ   )r¡  r¿   r†  )ÚCPPEnumTyperz   r=   r>   rÀ     r+  zNTestStackoverflowAnswersV3.test_c_header_scanner.<locals>.CPPEnumType.__init__c                    s  ˆ d u r%t ˆ| ƒj||fi |¤Ž}| |¡ t ˆ| ƒj| |||fi |¤ŽS g }z| d¡}W n ty9   tdƒ‚w | d| ¡ ¡}t|ƒ}	|	 	¡ }
W d   ƒ n1 sUw   Y  t
ˆdƒ\}}}}ˆdƒ}ˆˆ	ˆd ƒ}ˆˆ
ƒ}ˆ|dƒˆ||dƒ ƒ ƒ}ˆ|ˆ|| ƒ ƒ}||dƒ | |d	ƒ | }| |
¡D ]+\}}}|j|kr¨qd
}|jD ]}|jdkr¹t|jƒ}| |j ¡ |f¡ |d7 }q­qt ˆ| ƒj||fi |¤Ž}t| ¡ ƒ}|jdd„ d |D ]\}}|||< qæ|D ]\}}|||< qñt ˆ| ƒj| |||fi |¤ŽS )NÚ_filez_file not specifiedÚ_namez{}=,rq  Ú_rw   r¥   Únamesr(   Ú r   c                 S   s    | d d dkrd| fS d| fS )Nr(   r§  r   r=   )Úpr=   r=   r>   rµ  @  s     z_TestStackoverflowAnswersV3.test_c_header_scanner.<locals>.CPPEnumType.__new__.<locals>.<lambda>)Úkey)rs   r£  Úupdater  ÚpopÚKeyErrorrÒ   rÍ   rl  r|  ÚmapÚ
scanStringrq  r¨  r¥   rk  Úappendrw   ÚupperrÉ   ÚitemsÚsort)r   r¡  r¢  Úclsdictr†  Ú	enum_dictÚmembersÚfileÚcpp_enum_namerp  Úfile_contentsÚLBRACEÚRBRACEÚEQÚCOMMAÚ_enumÚ
identifierÚintegerÚ	enumValueÚenumListrq  rä  rÖ   ÚstopÚidÚentryr³  rw   r¥   )ÚCPPEnumr¤  r˜  r™  rš  r›  rœ  rz   rž  r  rŸ  r=   r>   r    sN   
ÿ

ÿ




ü

zMTestStackoverflowAnswersV3.test_c_header_scanner.<locals>.CPPEnumType.__new__)r6   r7   r8   ræ  r£  rÀ   r  r{   r=   ©
rÇ  r¤  r˜  r™  rš  r›  rœ  rž  r  rŸ  ry   r>   r¤    s
    
(r¤  c                   @   r}   )zATestStackoverflowAnswersV3.test_c_header_scanner.<locals>.CPPEnumNr~   r=   r=   r=   r>   rÇ  H  r€   rÇ  r…   c                   @   s   e Zd Zej ed¡ZdS )z?TestStackoverflowAnswersV3.test_c_header_scanner.<locals>.Hellor—  N)r6   r7   r8   rt  ru  rv  rw  r¥  r=   r=   r=   r>   ÚHelloK  s    rÉ  c                   @   s   e Zd Zej ed¡ZdZdS )z>TestStackoverflowAnswersV3.test_c_header_scanner.<locals>.Blahr—  ÚblahN)	r6   r7   r8   rt  ru  rv  rw  r¥  r¦  r=   r=   r=   r>   ÚBlahN  s    rË  r4   r/  rÏ  r   é2   )rl  rt  ru  rv  rw  rm  Ú	pyparsingr˜  r™  rš  r›  rœ  r  rž  rŸ  r   r   r£   rÉ   ÚZEROry  rz  ÚTHREEÚFIVEÚSIXÚTENr¥   ÚALPHAÚBETAÚGAMMAÚZETA)rc   rp  rÉ  rË  r=   rÈ  r>   Útest_c_header_scannerð  s4   ÿ&;þþz0TestStackoverflowAnswersV3.test_c_header_scannerN)r6   r7   r8   r`  rj  r€  r–  r#  r$  rÍ  r×  r=   r=   r=   r>   rX  }  s    
*rX  c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚTestIssuesV3z.
    Problems that were stated in issues.
    c                 C   s¼   G dd„ dt ttdd}|  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§   )z7TestIssuesV3.test_auto_multi_int_1.<locals>.Measurementrd  re  rf  Nrg  r=   r=   r=   r>   rj  j  r¯   rj  r(   )rÖ   c                 S   rI  r=   rJ  rK  r=   r=   r>   rN  n  rO  z6TestIssuesV3.test_auto_multi_int_1.<locals>.<listcomp>©r(   r   r3   c                 S   rI  r=   ré   rK  r=   r=   r>   rN  o  rO  ©rg   rh  ri  rd  r   re  r3   rf  )rk  r
   r   r£   r  rg   rh  ri  ©rc   rj  r=   r=   r>   Útest_auto_multi_int_1i  s   z"TestIssuesV3.test_auto_multi_int_1c                 C   sÀ   G dd„ dt tttfdd}|  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§   )z7TestIssuesV3.test_auto_multi_int_2.<locals>.Measurementrd  re  rf  Nrg  r=   r=   r=   r>   rj  x  r¯   rj  r(   rÕ   c                 S   rI  r=   rJ  rK  r=   r=   r>   rN  |  rO  z6TestIssuesV3.test_auto_multi_int_2.<locals>.<listcomp>rÙ  c                 S   rI  r=   ré   rK  r=   r=   r>   rN  }  rO  rÚ  rd  r   re  r3   rf  )	rk  r   r   r   r£   r  rg   rh  ri  rÛ  r=   r=   r>   Útest_auto_multi_int_2w  s   z"TestIssuesV3.test_auto_multi_int_2c                 C   sÀ   G dd„ dt tdd}|  |jjd¡ |  |jjd¡ |  |jjd¡ t|ddd	ƒ |  t|ƒ|j|j	|j
|jg¡ |  |jjd¡ |  |jjd¡ |  |dƒ|ju ¡ |  |d	ƒ|ju ¡ d S )
Nc                   @   r§   )z6TestIssuesV3.test_extend_enum_with_init.<locals>.Color)rk   Úyes)Ú2Úno)Ú3ÚmaybeNrÆ   r=   r=   r=   r>   r®   †  r¯   r®   zfoo barr#  rk   rÞ  ÚopacityÚ4Únever)r   r   r£   r¸   r¥   ró  r   r   rÉ   r¹   rº   rã  rw   rm   r±   r=   r=   r>   Útest_extend_enum_with_init…  s    z'TestIssuesV3.test_extend_enum_with_initN)r6   r7   r8   rØ   rÜ  rÝ  ræ  r=   r=   r=   r>   rØ  d  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e ed¡d d!„ ƒZe ed¡d"d#„ ƒZe ed¡d$d%„ ƒZe ed¡d&d'„ ƒZe ed¡d(d)„ ƒZe ed*¡d+d,„ ƒZe ed*¡d-d.„ ƒZe ed/¡d0d1„ ƒZe eo—ee k d/¡d2d3„ ƒZ!e eo¥ee kd/¡d4d3„ ƒZ!e e"d5¡d6d7„ ƒZ#e e"d5¡d8d9„ ƒZ$e e%d:¡d;d<„ ƒZ&d=S )>ÚTestExtendEnumV3c                 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                   @   r§   )z6TestExtendEnumV3.test_extend_enum_plain.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®   —  r¯   r®   z(.blue. already in use as .Color.blue: 3.rº   rG   rƒ  r5   Úmauve)r   rˆ   rÒ   r   r£   rƒ  rw   r¥   rm   r  rè  r±   r=   r=   r>   r„  –  s    
z'TestExtendEnumV3.test_extend_enum_plainc                 C   ó„   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                   @   r§   )z6TestExtendEnumV3.test_extend_enum_alias.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®   ®  r¯   r®   r  r   r¸   r4   )	r   r   r£   r  rw   r¥   rm   r¸   r  r±   r=   r=   r>   Útest_extend_enum_alias­  s   z'TestExtendEnumV3.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                   @   r§   )z7TestExtendEnumV3.test_extend_enum_unique.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®   »  r¯   r®   z0<Color.rojo: 1> is a duplicate of <Color.red: 1>r  r   r¸   r¹   r3   rº   r4   rƒ  r5   z3<Color.verde: 2> is a duplicate of <Color.green: 2>r  rè  rG   )r   rˆ   r  r   r£   r¸   rw   r¥   rm   r¹   rº   r  rƒ  rè  r±   r=   r=   r>   Útest_extend_enum_uniqueº  s@   
z(TestExtendEnumV3.test_extend_enum_uniquec                 C   ó”   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                   @   r§   )z@TestExtendEnumV3.test_extend_enum_shadow_property.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®   å  r¯   r®   r¥   r5   r   )r   r   r£   r¥   rw   rm   r  r¸   r±   r=   r=   r>   Ú test_extend_enum_shadow_propertyä  s   z1TestExtendEnumV3.test_extend_enum_shadow_propertyc                 C   óf   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<TestExtendEnumV3.test_extend_enum_shadow_base.<locals>.hohumc                 S   r°  ©zcyanize a colorrJ  r¶   r=   r=   r>   ra  ô  r  zATestExtendEnumV3.test_extend_enum_shadow_base.<locals>.hohum.cyanN©r6   r7   r8   ra  r=   r=   r=   r>   Úhohumó  rô   rñ  c                   @   r§   )z<TestExtendEnumV3.test_extend_enum_shadow_base.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®   ÷  r¯   r®   úalready in use in superclassra  r5   r4   )r  r   rˆ   rÒ   r   r£   r  rÉ   r¸   r¹   rº   ©rc   rñ  r®   r=   r=   r>   Útest_extend_enum_shadow_baseò  s
    z-TestExtendEnumV3.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                   @   r§   )z;TestExtendEnumV3.test_extend_enum_multivalue.<locals>.Color©r   r5   r3  ©r3   rG   rÊ  ©r4   r/  r4  NrÆ   r=   r=   r=   r>   r®      r¯   r®   rƒ  rÏ  é   r5   z'no values specified for MultiValue enumrè  )
r   r   r£   rƒ  rw   r¥   rm   r  rˆ   r  r±   r=   r=   r>   Útest_extend_enum_multivalueÿ  s   z,TestExtendEnumV3.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                   @   r§   )zATestExtendEnumV3.test_extend_enum_multivalue_alias.<locals>.Colorrõ  rö  r÷  NrÆ   r=   r=   r=   r>   r®     r¯   r®   z0<Color.rojo: 7> is a duplicate of <Color.red: 1>r  r3  r¸   r   r5   r¹   r3   rG   rÊ  rº   r4   r/  r4  )r   rˆ   r  r   r£   r¸   rw   r¥   rm   r¹   rº   r  r±   r=   r=   r>   Ú!test_extend_enum_multivalue_alias  s.   z2TestExtendEnumV3.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                   @   r§   )z;TestExtendEnumV3.test_extend_enum_multivalue_str.<locals>.M)Úvalue_1ÚVALUE_1)Úvalue_2ÚVALUE_2)Úvalue_3ÚVALUE_3N)r6   r7   r8   rü  rþ  r   r=   r=   r=   r>   rl  ,  r¯   rl  ÚVALUE_4Úvalue_4)ra   r   rm   Ú_member_type_r   r£   rÉ   rü  rþ  r   r  rw   r¥   )rc   rl  r=   r=   r>   Útest_extend_enum_multivalue_str+  s    z0TestExtendEnumV3.test_extend_enum_multivalue_strc                 C   ó‚   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                   @   rY   )z3TestExtendEnumV3.test_extend_intenum.<locals>.Indexé   é  N©r6   r7   r8   Ú
DeviceTypeÚErrorRegisterr=   r=   r=   r>   ÚIndex9  r_   r  ©)ÚControlWordi@`  )Ú
StatusWordéA`  )ÚOperationModei``  rG   r  r  )r   r   r£   r  rÉ   r	  r
  r  r  r  r¥   ©rc   r  rw   r¥   r=   r=   r>   Útest_extend_intenum8  s   $z$TestExtendEnumV3.test_extend_intenumc                 C   óì   G dd„ dt ƒ}d}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 )Nc                   @   ó    e Zd Zdd„ ZdZdZdZdS )z;TestExtendEnumV3.test_extend_multi_init.<locals>.HTTPStatusc                 S   ó"   t  | |¡}||_||_||_|S rr   ©rk  r  Ú_value_ÚphraseÚdescription©rv   r¥   r  r  rx   r=   r=   r>   r  K  ó
   zCTestExtendEnumV3.test_extend_multi_init.<locals>.HTTPStatus.__new__©éd   ÚContinuez!Request received, please continue©ée   zSwitching Protocolsz.Switching to new protocol; obey Upgrade header©éf   Ú
Processingr©  N©r6   r7   r8   r  ÚCONTINUEÚSWITCHING_PROTOCOLSÚ
PROCESSINGr=   r=   r=   r>   Ú
HTTPStatusJ  ó
    r(  r4   ÚBAD_SPAMé  ú
Too greasyúfor a trainÚBAD_EGGSé  ú	Too greenr©  r3   éþÿÿÿ)r   r   r£   r  rÉ   r*  r.  r¥   rw   r  r  ©rc   r(  Úlengthr=   r=   r>   Útest_extend_multi_initI  s"   
þz'TestExtendEnumV3.test_extend_multi_initc                 C   ó¦   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                   @   r2   )z0TestExtendEnumV3.test_extend_flag.<locals>.Colorr(   r   r3   r5   N©r6   r7   r8   r  r«   r­   r¬   r=   r=   r=   r>   r®   g  r@   r®   ÚMAGENTArÊ  ÚPURPLEr5  )	r   r   rm   r7  ro   r£   r¥   r8  rn   r±   r=   r=   r>   Útest_extend_flagf  s   
z!TestExtendEnumV3.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                   @   r2   )z:TestExtendEnumV3.test_extend_flag_backwards.<locals>.Colorr(   r   r3   r5   Nr6  r=   r=   r=   r>   r®   w  r@   r®   r8  r5  r7  rÊ  rè  é   rG   )r   r   rm   r8  ro   r£   r¥   rn   r7  rè  rw   r  r±   r=   r=   r>   Útest_extend_flag_backwardsv  ó"   

z+TestExtendEnumV3.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                   @   r2   )z3TestExtendEnumV3.test_extend_intflag.<locals>.Colorr(   r   r3   r5   Nr6  r=   r=   r=   r>   r®     r@   r®   r7  rÊ  r8  r5  rè  r:  rG   )r   r   rm   r7  ro   r£   r¥   r8  rn   r   rè  rw   r  r±   r=   r=   r>   Útest_extend_intflag  s"   

z$TestExtendEnumV3.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                   @   r2   )z=TestExtendEnumV3.test_extend_intflag_backwards.<locals>.Colorr(   r   r3   r5   Nr6  r=   r=   r=   r>   r®   ¨  r@   r®   r8  r5  r7  rÊ  rè  r:  rG   )r   r   rm   r8  ro   r£   r¥   rn   r   r7  rè  rw   r  r±   r=   r=   r>   Útest_extend_intflag_backwards§  r<  z.TestExtendEnumV3.test_extend_intflag_backwardsc                 C   óN   G dd„ dt ƒ}t|dƒ |  |jjd¡ |  |jjd¡ |  t|ƒd¡ d S )Nc                   @   ó   e Zd Zeƒ Zeƒ Zeƒ ZdS )z3TestExtendEnumV3.test_extend_strenum.<locals>.ColorN©r6   r7   r8   r   r«   r­   r¬   r=   r=   r=   r>   r®   Á  ó    
r®   r  r  r5   ©r   r   r£   r  rw   r¥   r  r±   r=   r=   r>   Útest_extend_strenumÀ  s
   
z$TestExtendEnumV3.test_extend_strenumzStdlib Enum not availablec                 C   sš   G dd„ dt ƒ}|  t|jdd ƒd ¡ t|ddƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  t	|ƒd¡ d S )Nc                   @   r§   )z7TestExtendEnumV3.test_extend_enum_stdlib.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®   Ì  r¯   r®   Ú_values_rƒ  r5   )
r   r£   rV  r¸   r   rƒ  rw   r¥   rm   r  r±   r=   r=   r>   Útest_extend_enum_stdlibÊ  s   z(TestExtendEnumV3.test_extend_enum_stdlibc                 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
|ƒ|j|j|j|jg¡ |  dd	„ |D ƒg d
¢¡ t|dƒ |  |jjd¡ |  |jjd¡ |  |j|v ¡ |  |dƒ|j¡ |  |d |j¡ |  t	|ƒd¡ d S )Nc                   @   r§   )z=TestExtendEnumV3.test_extend_enum_plain_stdlib.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®   Û  r¯   r®   zalready in use asrº   rG   rƒ  r5   c                 S   rI  r=   rJ  )rL  rŠ  r=   r=   r>   rN  é  rO  zBTestExtendEnumV3.test_extend_enum_plain_stdlib.<locals>.<listcomp>)r   r3   r4   r5   rè  )r   rˆ   rÒ   r   r£   rƒ  rw   r¥   rm   r  rÉ   r¸   r¹   rº   rè  r±   r=   r=   r>   Útest_extend_enum_plain_stdlibÙ  s$    
z.TestExtendEnumV3.test_extend_enum_plain_stdlibc                 C   ré  )Nc                   @   r§   )z=TestExtendEnumV3.test_extend_enum_alias_stdlib.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®   õ  r¯   r®   r  r   r¸   r4   )	r   r   r£   r  rw   r¥   rm   r¸   r  r±   r=   r=   r>   Útest_extend_enum_alias_stdlibó  s   z.TestExtendEnumV3.test_extend_enum_alias_stdlibc                 C   rì  )Nc                   @   r§   )zGTestExtendEnumV3.test_extend_enum_shadow_property_stdlib.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®     r¯   r®   r¥   r5   r   )r   r   r£   r¥   rw   rm   r  r¸   r±   r=   r=   r>   Ú'test_extend_enum_shadow_property_stdlib  s   z8TestExtendEnumV3.test_extend_enum_shadow_property_stdlibc                 C   rî  )	Nc                   @   rð   )zCTestExtendEnumV3.test_extend_enum_shadow_base_stdlib.<locals>.hohumc                 S   r°  rï  rJ  r¶   r=   r=   r>   ra    r  zHTestExtendEnumV3.test_extend_enum_shadow_base_stdlib.<locals>.hohum.cyanNrð  r=   r=   r=   r>   rñ    rô   rñ  c                   @   r§   )zCTestExtendEnumV3.test_extend_enum_shadow_base_stdlib.<locals>.Colorr   r3   r4   NrÆ   r=   r=   r=   r>   r®     r¯   r®   rò  ra  r5   r4   )r  r   rˆ   rÒ   r   r£   r  rÉ   r¸   r¹   rº   ró  r=   r=   r>   Ú#test_extend_enum_shadow_base_stdlib  s
    z4TestExtendEnumV3.test_extend_enum_shadow_base_stdlibzStdlib IntEnum not availablec                 C   r  )Nc                   @   rY   )z:TestExtendEnumV3.test_extend_intenum_stdlib.<locals>.Indexr  r  Nr  r=   r=   r=   r>   r     r_   r  r  rG   r  r  )r   r   r£   r  rÉ   r	  r
  r  r  r  r¥   r  r=   r=   r>   Útest_extend_intenum_stdlib  s   $z+TestExtendEnumV3.test_extend_intenum_stdlibc                 C   r  )Nc                   @   r  )zBTestExtendEnumV3.test_extend_multi_init_stdlib.<locals>.HTTPStatusc                 S   r  rr   r  r  r=   r=   r>   r  3  r  zJTestExtendEnumV3.test_extend_multi_init_stdlib.<locals>.HTTPStatus.__new__r  r  r!  Nr$  r=   r=   r=   r>   r(  2  r)  r(  r4   r*  r+  r,  r-  r.  r/  r0  r©  r3   r1  )r   r   r£   r  rÉ   r*  r.  r¥   rw   r  r  r2  r=   r=   r>   Útest_extend_multi_init_stdlib0  s"   
þz.TestExtendEnumV3.test_extend_multi_init_stdlibzStdlib Flag not availablec                 C   r5  )Nc                   @   r2   )z7TestExtendEnumV3.test_extend_flag_stdlib.<locals>.Colorr(   r   r3   r5   Nr6  r=   r=   r=   r>   r®   P  r@   r®   r7  rÊ  r8  r5  )	r   r   rm   r7  ro   r£   r¥   r8  rn   r±   r=   r=   r>   Útest_extend_flag_stdlibN  s   
z(TestExtendEnumV3.test_extend_flag_stdlibc                 C   ó  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	¡ d S )	Nc                   @   r2   ©zATestExtendEnumV3.test_extend_flag_backwards_stdlib.<locals>.Colorr(   r   r3   r5   Nr6  r=   r=   r=   r>   r®   a  r@   r®   r8  r5  r7  r:  rè  é    ©r   r   rm   r8  ro   r£   r¥   rn   r7  rè  rw   r±   r=   r=   r>   Ú!test_extend_flag_backwards_stdlib_  ó    

z2TestExtendEnumV3.test_extend_flag_backwards_stdlibc                 C   rN  )	Nc                   @   r2   rO  r6  r=   r=   r=   r>   r®   z  r@   r®   r8  r5  r7  rÊ  rè  r:  rQ  r±   r=   r=   r>   rR  x  rS  zStdlib IntFlag not availablec                 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
¡ d S )	Nc                   @   r2   )z:TestExtendEnumV3.test_extend_intflag_stdlib.<locals>.Colorr(   r   r3   r5   Nr6  r=   r=   r=   r>   r®   “  r@   r®   r7  rÊ  r8  r5  rè  r:  )r   r   rm   r7  ro   r£   r¥   r8  rn   r   rè  rw   r±   r=   r=   r>   Útest_extend_intflag_stdlib‘  s    

z+TestExtendEnumV3.test_extend_intflag_stdlibc                 C   s<  G dd„ dt ƒ}ttkrd}d}d}nd}d}d}t|dd	ƒ |  |d	ƒ|ju ¡ |  t|j|ƒ¡ |  |jjd	¡ |  t	|t
ƒ¡ t|d
ƒ |  ||ƒ|ju ¡ |  t|j|ƒ¡ |  |jj|¡ t|dƒ |  |jjd¡ |  |jj|¡ |  |j|v ¡ |  ||ƒ|j¡ |  |d |j¡ |  t|ƒ|t|ƒ¡ d S )Nc                   @   r2   )zDTestExtendEnumV3.test_extend_intflag_backwards_stdlib.<locals>.Colorr(   r   r3   r5   Nr6  r=   r=   r=   r>   r®   «  r@   r®   rG   rÊ  r:  r3  rP  r8  r5  r7  rè  )r   r   r%   r   rm   r8  ro   r£   r¥   rn   r   r7  rè  rw   r  rÉ   )rc   r®   r3  r7  rè  r=   r=   r>   Ú$test_extend_intflag_backwards_stdlib©  s0   

z5TestExtendEnumV3.test_extend_intflag_backwards_stdlibzStdlib StrEnum not availablec                 C   r?  )Nc                   @   r@  )z:TestExtendEnumV3.test_extend_strenum_stdlib.<locals>.ColorNrA  r=   r=   r=   r>   r®   Î  rB  r®   r  r  r5   rC  r±   r=   r=   r>   Útest_extend_strenum_stdlibÌ  s
   
z+TestExtendEnumV3.test_extend_strenum_stdlibN)'r6   r7   r8   r„  rê  rë  rí  rô  rù  rú  r  r  r4  r9  r;  r=  r>  rD  r#  r$  r   rF  rG  rH  rI  rJ  r   rK  rL  r   rM  r   r%   rR  r   rT  rU  r   rV  r=   r=   r=   r>   rç  ”  sT    *























"rç  Ú__main__zD'test_v3.py' should not be run by itself; it's included in 'test.py')Er©  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'   Úcollectionsr)   rb   r*   Úpickler+   r,   r-   r.   r#  r/   r0   rt  ÚsysÚtempfiler}  rÍ  ÚImportErrorÚSyntaxErrorr‰   rÃ   ÚRuntimeErrorr1   r%  rE  rX  rØ  rç  r6   r=   r=   r=   r>   Ú<module>   s\   , $$ $ÿþ       1|9 h0    Hÿ