Your IP : 216.73.216.196


Current Path : /opt/alt/python310/lib64/python3.10/test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/__pycache__/test_enum.cpython-310.pyc

o

0�i���
@s�ddlZddlZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZmZm
Z
mZddlmZddlmZmZmZmZddlmZmZmZddlmZejdd�Zz
Gd	d
�d
e�ZWneywZ ze ZWYdZ [ ndZ [ wwzGdd�de!e�Z"Wney�Z ze Z"WYdZ [ ndZ [ wwzGd
d�de#e�Z$Wney�Z ze Z$WYdZ [ ndZ [ wwz
Gdd�de�Z%Wney�Z ze Z%WYdZ [ ndZ [ wwzGdd�de&e�Z'Gdd�de'�Z(Wney�Z ze Z(WYdZ [ ndZ [ wwz	edde)d�Z*Wne�yZ ze Z*WYdZ [ ndZ [ wwzedd�Z+Wne�y:Z ze Z+WYdZ [ ndZ [ wwz	edddd�Z,Wne�yYZ ze Z,WYdZ [ ndZ [ wwz
Gdd�de�Z-Wn
e�ynYnwd?d d!�Z.d"d#�Z/Gd$d%�d%ej0�Z1Gd&d'�d'�Z2Gd(d)�d)ej0�Z3Gd*d+�d+ej0�Z4Gd,d-�d-ej0�Z5Gd.d/�d/ej0�Z6Gd0d1�d1ej0�Z7Gd2d3�d3ej0�Z8d4Z9d5Z:Gd6d7�d7ej0�Z;Gd8d9�d9ej0�Z<d:Z=d:Z>d:Z?d:Z@d:ZAd:ZBGd;d<�d<ej0�ZCGd=d%�d%ej0�Z1e)d>k�r�e�D�dSdS)@�N)�OrderedDict)�Enum�IntEnum�EnumMeta�Flag�IntFlag�unique�auto)�StringIO)�dumps�loads�
PicklingError�HIGHEST_PROTOCOL)�	ALWAYS_EQ�check__all__�threading_helper)�	timedelta�c@�eZdZdZdZdZdS)�Stooges�r�N��__name__�
__module__�__qualname__ZLARRY�CURLY�MOE�rr�5/opt/alt/python310/lib64/python3.10/test/test_enum.pyr�rc@r)�
IntStoogesrrrNrrrrrr!r r!c@r)�FloatStoogesg=
ףp=�?g�(\��@g�R$_	$	@Nrrrrrr""r r"c@r)�FlagStoogesrrrNrrrrrr#*r r#c@�eZdZdZdS)�StrEnumzaccepts only string valuesN)rrr�__doc__rrrrr%3�r%c@�eZdZdZdZdS)�Name�Guido van RossumzBarry WarsawN)rrr�BDFLZFLUFLrrrrr)5�r)�Questionzwho what when where why��module�Answerzhim this then there because�Theoryzrule law supposition�spanish_inquisition)�qualnamec@r)�FruitrrrN)rrrZTOMATOZBANANAZCHERRYrrrrr4Lr r4cCs8|dur|}ttd�D]
}|tt||d��|�qdS�Nr)�protocol)�rangerrr)�	assertion�source�targetr6rrr�test_pickle_dump_loadSs
�r;c	CsJttd�D]}||��t||d�Wd�n1swYqdSr5)r7rr)r8Z	exception�objr6rrr�test_pickle_exceptionYs
���r=c@�$eZdZdd�Zdd�Zdd�ZdS)�TestHelperscCsNGdd�d�}dD]}|�}|�t�|��t||d�|�t�|��q	dS)Nc@�eZdZdS)z+TestHelpers.test_is_descriptor.<locals>.fooN�rrrrrrr�foob�rB)�__get__�__set__�
__delete__r)�assertFalse�enum�_is_descriptor�setattr�
assertTrue)�selfrB�attrr<rrr�test_is_descriptoras�zTestHelpers.test_is_descriptorcC�8dD]
}|�t�|��qdD]
}|�t�|��qdS)N)�_a_Z_aa_)
�a�a_�_a�__a�a__�__a__�_a__�__a_�_�__�___�____�_____)rKrH�
_is_sunderrG�rL�srrr�test_is_sunderjs
�zTestHelpers.test_is_sundercCrO)N)rVZ__aa__)
rQrRrSrTrUrPrWrXrYrZr[r\r])rKrH�
_is_dunderrGr_rrr�test_is_dunderrs
�zTestHelpers.test_is_dunderN)rrrrNrarcrrrrr?^s	r?c@seZdZddd�Zdd�ZdS)�
classpropertyNcCs2||_||_||_|dur|dur|j}||_dS�N)�fget�fset�fdelr&)rLrfrgrh�docrrr�__init__}s
zclassproperty.__init__cCs
|�|�Sre)rf)rL�instance�
ownerclassrrrrD��
zclassproperty.__get__)NNNN)rrrrjrDrrrrrd{s
rdc@s2eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Ze�ed#kd$�d%d&��Ze�ed#kd'�d(d)��Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Z d:d;�Z!d<d=�Z"d>d?�Z#d@dA�Z$dBdC�Z%dDdE�Z&dFdG�Z'dHdI�Z(dJdK�Z)dLdM�Z*dNdO�Z+dPdQ�Z,dRdS�Z-dTdU�Z.dVdW�Z/dXdY�Z0dZd[�Z1d\d]�Z2d^d_�Z3d`da�Z4dbdc�Z5ddde�Z6dfdg�Z7dhdi�Z8djdk�Z9dldm�Z:dndo�Z;dpdq�Z<drds�Z=dtdu�Z>dvdw�Z?dxdy�Z@dzd{�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�d��ZOd�d��ZPd�d��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�dDŽZgd�dɄZhd�d˄Zid�d̈́Zjd�dτZkd�dфZld�dӄZmd�dՄZnd�dׄZod�dلZpd�dۄ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��Zd�d��Z�d�d��Z�d�d��Z�e��ed�kd���d�d��Z��dS(�TestEnumcCs�Gdd�dt�}||_Gdd�dtt�}||_Gdd�dt�}||_Gdd�dtt�}||_d	d
lm	}Gdd�d|t�}||_
dS)
Nc@�eZdZdZdZdZdZdS)zTestEnum.setUp.<locals>.Seasonrrr�N)rrr�SPRING�SUMMER�AUTUMN�WINTERrrrr�Season��
ruc@seZdZdZdZdeZdS)z!TestEnum.setUp.<locals>.KonstantsgB�
�@�J�M�!	@rN)rrr�EZPI�TAUrrrr�	Konstants��rzc@� eZdZdZdZdZdZdZdS)zTestEnum.setUp.<locals>.Grades�rprrrN�rrr�A�B�C�D�Frrrr�Grades��r�c@ro)z#TestEnum.setUp.<locals>.DirectionalZeastZwestZnorthZsouthN)rrrZEAST�WESTZNORTHZSOUTHrrrr�Directional�rvr�r)�datec@r()zTestEnum.setUp.<locals>.Holiday)��rr)r�r�N)rrrZNEW_YEAR�
IDES_OF_MARCHrrrr�Holiday�r,r�)rru�floatrzrr��strr��datetimer�r�)rLrurzr�r�r�r�rrr�setUp�s
zTestEnum.setUpcCs&|j}|�tt|��tgd���dS)N)�	__class__r&�__members__rrqrrrsrt)ru�assertEqual�set�dir�rLrurrr�test_dir_on_class�s


�zTestEnum.test_dir_on_classcCs(|j}|�tt|j��tgd���dS)N)r�r&r�name�value)rur�r�r�rtr�rrr�test_dir_on_item�s

�zTestEnum.test_dir_on_itemcCsNGdd�dt�}|�tt|��tgd���|�tt|j��tgd���dS)Nc@�eZdZdZdZdd�ZdS)z3TestEnum.test_dir_with_added_behavior.<locals>.Test�that�thosecS�
d|jS)NzWowser! I'm %s!�r��rLrrr�wowser�rmz:TestEnum.test_dir_with_added_behavior.<locals>.Test.wowserN)rrr�this�theser�rrrr�Test�r{r�)r�r&r�rr�r�)r�r&rr�r�r�)rr�r�r�r�)rLr�rrr�test_dir_with_added_behavior�s

�
�z%TestEnum.test_dir_with_added_behaviorcCsBGdd�dt�}Gdd�d|�}|�tt|j��tgd���dS)Nc@�eZdZdd�ZdS)zBTestEnum.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnumcS�dS)Nzdid you see me?rr�rrr�	invisible��zLTestEnum.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnum.invisibleN)rrrr�rrrr�	SuperEnum��r�c@r$)z@TestEnum.test_dir_on_sub_with_behavior_on_super.<locals>.SubEnumr}N�rrr�samplerrrr�SubEnum�r'r�)r�r&rr�r�r�)rr�r�r�r��rLr�r�rrr�&test_dir_on_sub_with_behavior_on_super�s
�z/TestEnum.test_dir_on_sub_with_behavior_on_supercCs>Gdd�dt�}Gdd�d|�}|�dhtt|j��k�dS)Nc@seZdZddd�ZdS)zZTestEnum.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SuperEnum�cS�t�||�}||_||_|Sre)�int�__new__�_value_�description)�clsr�r�r<rrrr���zbTestEnum.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SuperEnum.__new__N)r��rrrr�rrrrr���r�c@r$)zXTestEnum.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SubEnumr}Nr�rrrrr��r'r�r�)rrKr�r�r�r�rrr�>test_dir_on_sub_with_behavior_including_instance_dict_on_super�szGTestEnum.test_dir_on_sub_with_behavior_including_instance_dict_on_supercCs|j}|�||j�|j�dSre)ru�assertIsrtr�rrr�test_enum_in_enum_out�szTestEnum.test_enum_in_enum_outcCs|j}|�|jjd�dS�Nr)rur�rqr�r�rrr�test_enum_value��zTestEnum.test_enum_valuecCs|�tjjd�dS)Nr)r�r!rr�r�rrr�test_intenum_value��zTestEnum.test_intenum_valuecCs|j}t|�}|�t|�t|��|�t|�d|�|�|j|j|j|jg|�td�	�d�D]O\}}||�}|�|t
||��|�|j|�|�||�|�|j
|�|�||�|�t|�|�|�||�|�t|�d|�|�t|�d�||��q/dS)NrpzSPRING SUMMER AUTUMN WINTERrzSeason.z<Season.{0}: {1}>)ru�listr��lenrqrrrsrt�	enumerate�split�getattrr��assertNotEqualr��assertInr��type�assertIsInstancer��repr�format)rLru�lst�iZseason�errr�	test_enum�s,�
��zTestEnum.test_enumcCs�|j}|�|jjd�|�|jjd�|�t��d|j_Wd�n1s'wY|�t��
d|j_Wd�dS1sAwYdS)NrqrZinviernor)rur�rqr�r��assertRaises�AttributeErrorr�rrr�test_value_names
�
"�zTestEnum.test_value_namecCs<|j}|�t��d|_Wd�dS1swYdS)Nzreally cold)rur�r�rtr�rrr�test_changing_members"�zTestEnum.test_changing_membercCs�Gdd�dt�}|�t|d��|`|�t|d��|�t��
|`Wd�n1s,wY|�t��
|`Wd�n1sCwY|�t��|j`	Wd�dS1s\wYdS)Nc@s$eZdZdZdZdZdZdd�ZdS)z0TestEnum.test_attribute_deletion.<locals>.SeasonrrrrpcS�dSrer)r�rrr�spamr�z5TestEnum.test_attribute_deletion.<locals>.Season.spamN)rrrrqrrrsrtr�rrrrrusrur�)
rrK�hasattrr�rGr�r�rqZDRYr�r�rrr�test_attribute_deletions	��"�z TestEnum.test_attribute_deletioncCs"Gdd�dt�}|�t|��dS)Nc@r@)z*TestEnum.test_bool_of_class.<locals>.EmptyNrArrrr�Empty,rCr��rrK�bool)rLr�rrr�test_bool_of_class+szTestEnum.test_bool_of_classcCs,Gdd�dt�}|D]	}|�t|��q
dS)Nc@r)z+TestEnum.test_bool_of_member.<locals>.CountrrrN)rrrZzero�one�tworrrr�Count1r r�r�)rLr��memberrrr�test_bool_of_member0s�zTestEnum.test_bool_of_membercCs(|�t��Gdd�dt�}Wd�n1swY|�t��Gdd�dt�}Wd�n1s5wY|�t��Gdd�dt�}Wd�n1sRwY|�t��Gdd�dt�}Wd�n1sowY|�t��Gdd�dt�}Wd�dS1s�wYdS)Nc@r$��*TestEnum.test_invalid_names.<locals>.Wrong�	N)rrr�mrorrrr�Wrong:r'r�c@r$)r��N)rrr�_create_rrrrr�=r'c@r$r�)rrr�_get_mixins_rrrrr�@r'c@r$)r�rN)rrr�
_find_new_rrrrr�Cr'c@r$r�)rrrZ
_any_name_rrrrr�Fr'�r��
ValueErrorr�rLr�rrr�test_invalid_names8s����"�zTestEnum.test_invalid_namescCs~Gdd�dt�}|�|j�|�|j�Gdd�dt�}|�|j�|�|j�Gdd�dtt�}|�|j�|�|j�dS)Nc@r()z!TestEnum.test_bool.<locals>.LogicTFN�rrr�true�falserrrr�LogicKr,r�c@r�)z%TestEnum.test_bool.<locals>.RealLogicTFcS�
t|j�Sre)r�r�r�rrr�__bool__Trmz.TestEnum.test_bool.<locals>.RealLogic.__bool__N)rrrr�r�r�rrrr�	RealLogicQr{r�c@r()z$TestEnum.test_bool.<locals>.IntLogicrrNr�rrrr�IntLogicYr,r�)rrKr�r�rGr�)rLr�r�r�rrr�	test_boolIszTestEnum.test_bool�r��2__contains__ now returns True/False for all inputsc	Cs|j}|�|j|�|�t��!|�t��d|vWd�n1s$wYWd�n1s3wY|�t��!|�t��d|vWd�n1sRwYWd�n1sawY|d�}|�||�Gdd�dt�}|�|j	|�dS)Nrrsc@r()z,TestEnum.test_contains_er.<locals>.OtherEnumrrN�rrrr�r�rrrr�	OtherEnumor�r�)
rur�rsr��	TypeError�assertWarns�DeprecationWarningr�assertNotInr��rLru�valr�rrr�test_contains_er_s$
���
���zTestEnum.test_contains_er�6__contains__ only works with enum memmbers before 3.12cCsf|j}|�|j|�|�d|v�|�d|v�|d�}|�||�Gdd�dt�}|�|j|�dS)Nrrsc@r()z,TestEnum.test_contains_tf.<locals>.OtherEnumrrNr�rrrrr�r�r�)rur�rsrKrGrrr�rrrr�test_contains_tfsszTestEnum.test_contains_tfcCs�|j}|�t��|j|jkWd�n1swY|�t��
|jdkWd�n1s3wY|�|jd�Gdd�dt�}|�|j|j�|�t��|j|jkWd�dS1sfwYdS)Nrprc@r)z'TestEnum.test_comparisons.<locals>.PartrrrN)rrrrq�CLIPZBARRELrrrr�Part�r r)rur�r�rqrtr�rr)rLrurrrr�test_comparisons�s��"�zTestEnum.test_comparisonscCs�Gdd�dt�}t|�}|�||j|j|j|jg�|�|j|j�|�|jj	d�|�|jj	d�|�|d�|j�|�|d�|j�|�|jj
d�|�dd�|j��D�dd	g�dS)
Nc@s$eZdZdZdZdZZdZdZdS)z-TestEnum.test_enum_duplicates.<locals>.SeasonrrrrpN)	rrrrqrrrs�FALLrt�ANOTHER_SPRINGrrrrru�srurrrscS�g|]\}}|j|kr|�qSrr���.0�k�vrrr�
<listcomp>�sz1TestEnum.test_enum_duplicates.<locals>.<listcomp>r
r)
rr�r�rqrrrsrtr�r
r�r�r��items)rLrur�rrr�test_enum_duplicates�s$���zTestEnum.test_enum_duplicatescCs�|�t��Gdd�dt�}Wd�n1swY|�t��Gdd�dt�}Wd�n1s5wY|�t��Gdd�dt�}Wd�dS1sSwYdS)Nc@seZdZdZdZdZdZdS)�+TestEnum.test_duplicate_name.<locals>.ColorrrrrpN�rrr�red�green�bluerrrr�Color�rvrc@s eZdZdZdZdZdd�ZdS)rrrrcSr�)Nrrr�rrrr�r��/TestEnum.test_duplicate_name.<locals>.Color.redNrrrrrr��
c@s$eZdZedd��ZdZdZdZdS)rcSr�)NZredderrr�rrrr��rrrrN)rrr�propertyrrrrrrrr�s
�r�r�r�rLrrrr�test_duplicate_name�s��"�zTestEnum.test_duplicate_namecCs^Gdd�dt�}|�t|�|j|jg�|�t|j�|�|�|jjd�|�|jjd�dS)Nc@r()z/TestEnum.test_enum_with_value_name.<locals>.HuhrrN)rrrr�r�rrrr�Huh�r,r!r�r)rr�r�r�r�r�r�)rLr!rrr�test_enum_with_value_name�s
�z"TestEnum.test_enum_with_value_namecCs�|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���dS�N�{}�{:}�{:20}�{:^20}�{:>20}�{:<20})rur�r�rqr�r�rrr�test_format_enum�s&������zTestEnum.test_format_enumcCs:Gdd�dt�}|�t|j�d�|�d�|j�d�dS)Nc@s eZdZe�Ze�Zdd�ZdS)z=TestEnum.test_str_override_enum.<locals>.EnumWithStrOverridescSr��N�Str!rr�rrr�__str__�r�zETestEnum.test_str_override_enum.<locals>.EnumWithStrOverrides.__str__N)rrrr	r�r�r-rrrr�EnumWithStrOverrides�sr.r,r$�rr�r�r�r�)rLr.rrr�test_str_override_enum�szTestEnum.test_str_override_enumcC�:Gdd�dt�}|�t|j�d�|�d�|j�d�dS)Nc@r�)zBTestEnum.test_format_override_enum.<locals>.EnumWithFormatOverride��?�@cSr�)N�Format!!r�rL�specrrr�
__format__�r�zMTestEnum.test_format_override_enum.<locals>.EnumWithFormatOverride.__format__N�rrrr�r�r7rrrr�EnumWithFormatOverride�r{r9zEnumWithFormatOverride.oner$r4r/)rLr9rrr�test_format_override_enum�sz"TestEnum.test_format_override_enumcCr1)Nc@s(eZdZe�Ze�Zdd�Zdd�ZdS)zNTestEnum.test_str_and_format_override_enum.<locals>.EnumWithStrFormatOverridescSr�r+rr�rrrr-�r�zVTestEnum.test_str_and_format_override_enum.<locals>.EnumWithStrFormatOverrides.__str__cSr��N�Format!rr5rrrr7�r�zYTestEnum.test_str_and_format_override_enum.<locals>.EnumWithStrFormatOverrides.__format__N)rrrr	r�r�r-r7rrrr�EnumWithStrFormatOverrides�s
r=r,r$r<r/)rLr=rrr�!test_str_and_format_override_enum�sz*TestEnum.test_str_and_format_override_enumcCs<Gdd�dtt�}|�t|j�d�|�d�|j�d�dS)Nc@r�)zBTestEnum.test_str_override_mixin.<locals>.MixinEnumWithStrOverrider2r3cSr�)N�Overridden!rr�rrrr-r�zJTestEnum.test_str_override_mixin.<locals>.MixinEnumWithStrOverride.__str__N)rrrr�r�r-rrrr�MixinEnumWithStrOverrider{r@r?r$�r�rr�r�r�r�)rLr@rrr�test_str_override_mixin�z TestEnum.test_str_override_mixincC�<Gdd�dtt�}|�t|j�d�|�d�|j�d�dS)Nc@s$eZdZdZdZdd�Zdd�ZdS)zPTestEnum.test_str_and_format_override_mixin.<locals>.MixinWithStrFormatOverridesr2r3cSr�r+rr�rrrr-
r�zXTestEnum.test_str_and_format_override_mixin.<locals>.MixinWithStrFormatOverrides.__str__cSr�r;rr5rrrr7r�z[TestEnum.test_str_and_format_override_mixin.<locals>.MixinWithStrFormatOverrides.__format__N)rrrr�r�r-r7rrrr�MixinWithStrFormatOverrides
s
rEr,r$r<rA)rLrErrr�"test_str_and_format_override_mixin	sz+TestEnum.test_str_and_format_override_mixincCrD)Nc@r�)z6TestEnum.test_format_override_mixin.<locals>.TestFloatr2r3cSr�)N�TestFloat success!rr5rrrr7r�zATestEnum.test_format_override_mixin.<locals>.TestFloat.__format__Nr8rrrr�	TestFloatr{rHz
TestFloat.oner$rGrA)rLrHrrr�test_format_override_mixinrCz#TestEnum.test_format_override_mixincCs|�|�|�|�|j��dSre)r�r�r�)rLr6r�rrr�assertFormatIsValueszTestEnum.assertFormatIsValuecCsz|j}|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�dS)	Nr$r%r&r'r(r)z{:%Y %m}z{:%Y %m %M:00})r�rJr�)rLr�rrr�test_format_enum_date szTestEnum.test_format_enum_datecC�|j}|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d	|j�dS)
Nr$r%r&r'r(r)z{:n}z{:5.2}z{:f})rzrJry)rLrzrrr�test_format_enum_float+�zTestEnum.test_format_enum_floatcCrL)
Nr$r%r&r'r(r)z{:+}z{:08X}z{:b})r�rJr�)rLr�rrr�test_format_enum_int7rNzTestEnum.test_format_enum_intcCs^|j}|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�dSr#)r�rJr�)rLr�rrr�test_format_enum_strCszTestEnum.test_format_enum_strcC�&Gdd�dt�}|�t|j�d�dS)Nc@s$eZdZd\ZZZdd�ZejZdS)z1TestEnum.test_object_str_override.<locals>.Colors�rrrcSsd|jfS)Nztest.%s)�_name_r�rrr�__repr__O�z:TestEnum.test_object_str_override.<locals>.Colors.__repr__N)	rrr�RED�GREEN�BLUErT�objectr-rrrr�ColorsMs

rZztest.RED)rr�r�rV)rLrZrrr�test_object_str_overrideLsz!TestEnum.test_object_str_overridecCs�Gdd�dt�}Gdd�dt�}Gdd�d|t|�}|�|jtu�|�t|j�d�|�t|jd�d�Gd	d
�d
||�}|�t|j�d�|�t|jd�d�dS)Nc@r�)z2TestEnum.test_enum_str_override.<locals>.MyStrEnumcSr�)N�MyStrrr�rrrr-Vr�z:TestEnum.test_enum_str_override.<locals>.MyStrEnum.__str__N�rrrr-rrrr�	MyStrEnumUr�r^c@r�)z5TestEnum.test_enum_str_override.<locals>.MyMethodEnumcSr�)NzHello!  My name is %sr�r�rrr�helloYrmz;TestEnum.test_enum_str_override.<locals>.MyMethodEnum.helloN�rrrr_rrrr�MyMethodEnumXr�rac@r()z2TestEnum.test_enum_str_override.<locals>.Test1EnumrrN�rrr�OneZTworrrr�	Test1Enum[r,rdr\r�c@r()z2TestEnum.test_enum_str_override.<locals>.Test2EnumrrNrbrrrr�	Test2Enumbr,re)rr�rK�
_member_type_r�r�rcr�)rLr^rardrerrr�test_enum_str_overrideTszTestEnum.test_enum_str_overridecCs<Gdd�dt�}Gdd�d|tj�}|�t|j�d�|t�d<|t�d<t|j|j�t|j|�Gdd�d|�}Gdd	�d	|tj�}|�|j	|�|t�d<|t�d	<t|j|j
�t|j|�Gd
d�dt�}Gdd
�d
|t�}|�|j	|�|�|d�|j�|t�d<|t�d
<t|j
t|j�t|j
t|�dS)Nc@�eZdZdZdd�ZdS)z1TestEnum.test_inherited_data_type.<locals>.HexInt�HexIntcS�t|�Sre��hexr�rrrrTk�z:TestEnum.test_inherited_data_type.<locals>.HexInt.__repr__N�rrrrTrrrrrii�ric@�eZdZdZdZdZdZdS)z1TestEnum.test_inherited_data_type.<locals>.MyEnum�MyEnumrrrN)rrrrr�r�rrrrrqmrvrqz<MyEnum.A: 0x1>c@seZdZdZdS)z3TestEnum.test_inherited_data_type.<locals>.SillyInt�SillyIntNrArrrrrrxsrrc@rp)z6TestEnum.test_inherited_data_type.<locals>.MyOtherEnum�MyOtherEnumrpr}�N)rrrr�rxr�rrrrrs{rvrsc@rh)z4TestEnum.test_inherited_data_type.<locals>.BrokenInt�	BrokenIntcSst�||�Sre)r�r��r�r�rrrr��rUz<TestEnum.test_inherited_data_type.<locals>.BrokenInt.__new__Nr�rrrrru�roruc@rp)z7TestEnum.test_inherited_data_type.<locals>.MyBrokenEnum�MyBrokenEnum��r�N)rrr�G�H�Irrrrrw�rvrwrx)r�rHrr�r�r�globalsr;r�rfrxrzr=r�r�r
)rLrirqrrrsrurwrrr�test_inherited_data_typehs,





z!TestEnum.test_inherited_data_typecCs�|�td��Gdd�dttt�}Wd�n1swYGdd�dt�}Gdd�dt�}|�td��Gdd�d||t�}Wd�dS1sLwYdS)	Nztoo many data typesc@r$�z.TestEnum.test_too_many_data_types.<locals>.HuhrN�rrrrcrrrrr!�r'r!c@r�)z0TestEnum.test_too_many_data_types.<locals>.MyStrcSsd|S)Nz	hello, %srr�rrrr_�rmz6TestEnum.test_too_many_data_types.<locals>.MyStr.helloNr`rrrrr\�r�r\c@r�)z0TestEnum.test_too_many_data_types.<locals>.MyIntcSrjrerkr�rrrr��rmz5TestEnum.test_too_many_data_types.<locals>.MyInt.reprN)rrrr�rrrr�MyInt�r�r�c@r$rr�rrrrr!�r')�assertRaisesRegexr�r�r�r)rLr!r\r�rrr�test_too_many_data_types�s�"�z!TestEnum.test_too_many_data_typescCsH|j}i}d||j<d||j<d||j<d||j<|�||jd�dS)NZ1225Z0315Z0704Z1031)rurtrqrrrsr�)rLruZdatesrrr�	test_hash�s



zTestEnum.test_hashcC�(Gdd�dtt�}|�|j|jk�dS)Nc@�eZdZdZdeZdS)z/TestEnum.test_intenum_from_scratch.<locals>.phyrrN�rrr�pi�taurrrr�phy�ror��r�rrKr�r��rLr�rrr�test_intenum_from_scratch��z"TestEnum.test_intenum_from_scratchcC�8Gdd�dtt�}Gdd�d|�}|�|j|jk�dS)Nc@r@)z0TestEnum.test_intenum_inherited.<locals>.IntEnumNrArrrrr�rCrc@r�)z,TestEnum.test_intenum_inherited.<locals>.phyrrNr�rrrrr��ror�r�)rLrr�rrr�test_intenum_inherited��zTestEnum.test_intenum_inheritedcCr�)Nc@r�)z1TestEnum.test_floatenum_from_scratch.<locals>.phyrwrNr�rrrrr��ror��r�rrKr�r�r�rrr�test_floatenum_from_scratch�r�z$TestEnum.test_floatenum_from_scratchcCr�)Nc@r@)z4TestEnum.test_floatenum_inherited.<locals>.FloatEnumNrArrrr�	FloatEnum�rCr�c@r�)z.TestEnum.test_floatenum_inherited.<locals>.phyrwrNr�rrrrr��ror�r�)rLr�r�rrr�test_floatenum_inherited�r�z!TestEnum.test_floatenum_inheritedcCr�)Nc@r()z/TestEnum.test_strenum_from_scratch.<locals>.phy�Pi�TauNr�rrrrr��r,r��r�rrKr�r�r�rrr�test_strenum_from_scratch�r�z"TestEnum.test_strenum_from_scratchcCr�)Nc@r@)z0TestEnum.test_strenum_inherited.<locals>.StrEnumNrArrrrr%�rCr%c@r()z,TestEnum.test_strenum_inherited.<locals>.phyr�r�Nr�rrrrr��r,r�r�)rLr%r�rrr�test_strenum_inherited�r�zTestEnum.test_strenum_inheritedcCs0Gdd�dt�}|�gd�|jd�|�dd�t|j�D�gd��t|�}|�t|�t|��|�t|�d�d	}|��}t|d
�D]Q\}}||�}|�||�|�t	|�|�|�|j
|�|�||�|�|�|�d
|�|�
d|ko}dkn�|�t|�|�|�|t	�|�|t�qDdS)
Nc@s(eZdZdZdZdZdZdZdZdZ	dS)	z&TestEnum.test_intenum.<locals>.WeekDayrrrrpr}rtrxN)
rrr�SUNDAY�MONDAY�TUESDAY�	WEDNESDAY�THURSDAY�FRIDAY�SATURDAYrrrr�WeekDay�sr�)rQ�b�cr�cSsg|]}|�qSrr)rr�rrrr�sz)TestEnum.test_intenum.<locals>.<listcomp>)rrrrxz8SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAYrrry)rr�r�r7r�r�r�r�r�r�r�r��indexrKr�r�r�r)rLr�r�r:r�Zweekdayr�rrr�test_intenum�s(	 �zTestEnum.test_intenumcCsTGdd�dt�}|�|j|j�|�|d�jd�|�dd�|j��D�dg�dS)Nc@s,eZdZdZdZdZZdZdZdZ	dZ
dS)	z1TestEnum.test_intenum_duplicates.<locals>.WeekDayrrrrpr}rtrxN)rrrr�r�r��TEUSDAYr�r�r�r�rrrrr��sr�rr�cSrrr�r
rrrrs
�z4TestEnum.test_intenum_duplicates.<locals>.<listcomp>r�)rr�r�r�r�r�r�r)rLr�rrr�test_intenum_duplicates�s�z TestEnum.test_intenum_duplicatescCsR|�t�dd�tj�|�t��t�dd�Wd�dS1s"wYdS)NsZbigs)r�r!�
from_bytesrr�r�r�rrr�test_intenum_from_bytess"�z TestEnum.test_intenum_from_bytescCsnt�tjj�}|�t�|�tj�t�tjjd�}|�t��t�|�Wd�dS1s0wYdS)Ng{�G�z�?)	r�rlr"rr�r��fromhexr�r�)rL�hrrr�test_floatenum_fromhex
s"�zTestEnum.test_floatenum_fromhexcC�,ttt�rt�t|jtj�t|jt�dSre)�
isinstancer�	Exceptionr;r�rr�rrr�test_pickle_enum�
zTestEnum.test_pickle_enumcCr�re)r�r!r�r;r�rr�rrr�test_pickle_intr�zTestEnum.test_pickle_intcCr�re)r�r"r�r;r�rr�rrr�test_pickle_floatr�zTestEnum.test_pickle_floatcCr�re)r�r0r�r;r�Zhimr�rrr�test_pickle_enum_function#r�z"TestEnum.test_pickle_enum_functioncCr�re)r�r-r�r;r�Zwhor�rrr�%test_pickle_enum_function_with_module)r�z.TestEnum.test_pickle_enum_function_with_modulecCs ttt�rt�|�tjd�dS)Nr2)r�r1r�r�rr�rrr� test_enum_function_with_qualname/s
z)TestEnum.test_enum_function_with_qualnamecCs<Gdd�dt�}||j_d|jj|j_t|j|jj�dS)Nc@r()zLTestEnum.test_class_nested_enum_and_pickle_protocol_four.<locals>.NestedEnum�commonZrareN)rrr�twigsZshinyrrrr�
NestedEnum6r,r�z
%s.NestedEnum)rr�r�rrr;r�r�)rLr�rrr�/test_class_nested_enum_and_pickle_protocol_four4sz8TestEnum.test_class_nested_enum_and_pickle_protocol_fourcCs>Gdd�dt�}tj|_tt�D]}|�|j�|�d�qdS)Nc@r()z6TestEnum.test_pickle_by_name.<locals>.ReplaceGlobalIntrrN)rrr�ONE�TWOrrrr�ReplaceGlobalInt?r,r�r�)rrH�_reduce_ex_by_name�
__reduce_ex__r7rr�r�)rLr��protorrr�test_pickle_by_name>s
�zTestEnum.test_pickle_by_namecCsDtddtd�}|t�d<t�|�t|jt|j�t|jt	|�dS)N�	BadPicklezdill sweet bread-n-butterr.)
rrr}rH�_make_class_unpicklabler=r�r�Zdillr
)rLr�rrr�test_exploding_pickleFs�

zTestEnum.test_exploding_picklecCs$Gdd�dtt�}|�|jd�dS)Nc@r)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)rrrZmasterZ
journeyman�
apprenticerrrr�
SkillLevelPr r�r�)r�rr�r�)rLr�rrr�test_string_enumOszTestEnum.test_string_enumcCsLGdd�dt�}|�|d�|j�|�t|d�|j�|�|d|j�dS)Nc@ro)z-TestEnum.test_getattr_getitem.<locals>.PeriodrrrrpN)rrr�morning�noonZevening�nightrrrr�PeriodWrvr�rr�r�)rr�r�r�r�r��rLr�rrr�test_getattr_getitemVszTestEnum.test_getattr_getitemcCs|j}|�t|d��dS)N�__eq__)rurKr�r�rrr�test_getattr_dunder`r�zTestEnum.test_getattr_dundercCs4Gdd�dt�}|�t|�|j|j|j|jg�dS)Nc@ro)z-TestEnum.test_iteration_order.<locals>.SeasonrrprrN)rrrrrrtrsrqrrrrruervru)rr�r�rrrtrsrqr�rrr�test_iteration_orderds
�zTestEnum.test_iteration_ordercCs2|�tt|j��|jj|jj|jj|jjg�dSre)r�r��reversedrurtrsrrrqr�rrr�test_reversed_iteration_orderos��z&TestEnum.test_reversed_iteration_ordercCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D],\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�q/dS�N�SummerMonth�june july augustrr�rr�r�r��june�july�augustr�r�r�r�r�r�r�r�r��rLr�r�r��monthr�rrr�!test_programmatic_function_stringvs 
��z*TestEnum.test_programmatic_function_stringcCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D],\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�q1dS)Nr�r��
��startrr�r�rrr�,test_programmatic_function_string_with_start�� ��z5TestEnum.test_programmatic_function_string_with_startcCs�tdgd��}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D],\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�q1dS)Nr��r�r�r�rr�rr�r�rrr�&test_programmatic_function_string_list�r�z/TestEnum.test_programmatic_function_string_listcCs�tdgd�dd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D],\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�q3dS)Nr�r��r�rr�r�r�rrr�1test_programmatic_function_string_list_with_start�s ��z:TestEnum.test_programmatic_function_string_list_with_startcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D],\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�q/dS�Nr�))r�r)r�r)r�rrr�rr�r�rrr�#test_programmatic_function_iterable�s&���z,TestEnum.test_programmatic_function_iterablecCs�tdtd��}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td�	�d�D],\}}||�}|�t
|j�|�|�||�|�|j
|�|�||�|�t|�|�q1dSr�)rrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�$test_programmatic_function_from_dict�s&���z-TestEnum.test_programmatic_function_from_dictcCs�tddtd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td�	�d�D]#\}}||�}|�||�|�|j
|�|�||�|�t
|�|�q1dS)Nr�r�)r�rr�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�test_programmatic_function_type����z(TestEnum.test_programmatic_function_typecCs�tddtdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td�	�d�D]#\}}||�}|�||�|�|j
|�|�||�|�t
|�|�q2dS)Nr�r��)r�r�rr�r�rrr�*test_programmatic_function_type_with_start�s��z3TestEnum.test_programmatic_function_type_with_startcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D]#\}}||�}|�||�|�|j	|�|�
||�|�t|�|�q/dSr��
rr�r�r�r�r�r�r�r�r�r�r�r�r�rrr�-test_programmatic_function_type_from_subclasss
��z6TestEnum.test_programmatic_function_type_from_subclasscCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D]#\}}||�}|�||�|�|j	|�|�
||�|�t|�|�q1dS)Nr�r��(r�rr�r�rrr�8test_programmatic_function_type_from_subclass_with_startr�zATestEnum.test_programmatic_function_type_from_subclass_with_startcCsTttt�rt�|�tjd�|�tjtd��|�tjttd��t|jtj�dS)Nr*r+)	r�r)r�r�r+rKr�r�r;r�rrr�test_subclassing"s
zTestEnum.test_subclassingcCs�Gdd�dt�}|�t��Gdd�d|�}Wd�n1s wY|�td��Gdd�d|t�}Wd�dS1s@wYdS)Nc@r)z&TestEnum.test_extending.<locals>.ColorrrrNrrrrrr+r rc@r)z*TestEnum.test_extending.<locals>.MoreColorrpr}rtN�rrrZcyan�magentaZyellowrrrr�	MoreColor0r r�z0EvenMoreColor: cannot extend enumeration 'Color'c@r$)z.TestEnum.test_extending.<locals>.EvenMoreColorrxN)rrrZ
chartrueserrrr�
EvenMoreColor5r'r�)rr�r�r�r)rLrr�r�rrr�test_extending*s�"�zTestEnum.test_extendingcCs8Gdd�dt�}|�t|j�|�|�|j��d�dS)Nc@r�)z/TestEnum.test_exclude_methods.<locals>.whateverr�r�cSr�)Nz
no, not %s�r�r�rrr�really<rmz6TestEnum.test_exclude_methods.<locals>.whatever.reallyN)rrrr�r�r�rrrr�whatever9r{r�zno, not that)rZassertIsNotr�r�r�r�)rLr�rrr�test_exclude_methods8szTestEnum.test_exclude_methodscCsB|�t��Gdd�dtt�}Wd�dS1swYdS)Nc@r$)z4TestEnum.test_wrong_inheritance_order.<locals>.Wrongzerror before this pointN)rrrZNotHererrrrr�Cr'r�)r�r�rr�r�rrr�test_wrong_inheritance_orderAs"�z%TestEnum.test_wrong_inheritance_ordercCsTGdd�dt�}Gdd�dt�}|�|j|j�|�|j|j�|�|j|j�dS)Nc@r)z2TestEnum.test_intenum_transitivity.<locals>.numberrrrN)rrrr�r��threerrrr�numberGr rc@r)z2TestEnum.test_intenum_transitivity.<locals>.numerorrrN)rrr�uno�dos�tresrrrr�numeroKr r)rr�r�rr�rr�r)rLrrrrr�test_intenum_transitivityFs
z"TestEnum.test_intenum_transitivitycCs4Gdd�dt�}Gdd�dt�}|�t||j�dS)Nc@r()z4TestEnum.test_wrong_enum_in_call.<locals>.MonochromerrN�rrr�black�whiterrrr�
MonochromeTr,r	c@r()z0TestEnum.test_wrong_enum_in_call.<locals>.GenderrrN�rrr�male�femalerrrr�GenderWr,r
)rr�r�r�rLr	r
rrr�test_wrong_enum_in_callS�z TestEnum.test_wrong_enum_in_callcCs4Gdd�dt�}Gdd�dt�}|�t||j�dS)Nc@r()z:TestEnum.test_wrong_enum_in_mixed_call.<locals>.MonochromerrNrrrrrr	]r,r	c@r()z6TestEnum.test_wrong_enum_in_mixed_call.<locals>.GenderrrNr
rrrrr
`r,r
)rrr�r�rrrrr�test_wrong_enum_in_mixed_call\rz&TestEnum.test_wrong_enum_in_mixed_callcCs8Gdd�dt�}Gdd�dt�}|�||j�|j�dS)Nc@r()z6TestEnum.test_mixed_enum_in_call_1.<locals>.MonochromerrNrrrrrr	fr,r	c@r()z2TestEnum.test_mixed_enum_in_call_1.<locals>.GenderrrNr
rrrrr
ir,r
)rr�rrrrrr�test_mixed_enum_in_call_1e�z"TestEnum.test_mixed_enum_in_call_1cCs8Gdd�dt�}Gdd�dt�}|�||j�|j�dS)Nc@r()z6TestEnum.test_mixed_enum_in_call_2.<locals>.MonochromerrNrrrrrr	or,r	c@r()z2TestEnum.test_mixed_enum_in_call_2.<locals>.GenderrrNr
rrrrr
rr,r
)rrr�rrrrrr�test_mixed_enum_in_call_2nrz"TestEnum.test_mixed_enum_in_call_2cCs6Gdd�dt�}Gdd�d|�}|�t|j�d�dS)Nc@r�)z*TestEnum.test_flufl_enum.<locals>.FluflnumcSr�re)r�r�r�rrr�__int__yrmz2TestEnum.test_flufl_enum.<locals>.Fluflnum.__int__N)rrrrrrrr�Fluflnumxr�rc@r)z0TestEnum.test_flufl_enum.<locals>.MailManOptionsrrrN)rrr�option1Zoption2Zoption3rrrr�MailManOptions{r rr)rr�r�r)rLrrrrr�test_flufl_enumwszTestEnum.test_flufl_enumcCs�Gdd�dt�}|�|jjt�|�|jt�Gdd�dtt�}|�|jjt�|�|jt�Gdd�dt�}|�|jjt	�|�|jt	�dS)Nc@r()z+TestEnum.test_introspection.<locals>.Number�d��Nr�rrrr�Number�r,rc@r)z+TestEnum.test_introspection.<locals>.StringZsoftZroughZhardN)rrr�yarnZropeZwirerrrr�String�r rc@r()z*TestEnum.test_introspection.<locals>.PlainrrN)rrr�vanillar�rrrr�Plain�r,r )
rr�r�rfr�r�rrrrY)rLrrr rrr�test_introspection�szTestEnum.test_introspectioncCszGdd�dt�}|�t��|d�Wd�n1swY|�t��
|dWd�dS1s6wYdS)Nc@r)z0TestEnum.test_no_such_enum_member.<locals>.ColorrrrNrrrrrr�r rrpZ
chartreuse)rr�r��KeyErrorrrrr�test_no_such_enum_member�s
�
"�z!TestEnum.test_no_such_enum_membercCrQ)Nc@s eZdZdZdZdZdd�ZdS)z%TestEnum.test_new_repr.<locals>.ColorrrrcSr�)Nz!don't you just love shades of %s?r�r�rrrrT�rmz.TestEnum.test_new_repr.<locals>.Color.__repr__N)rrrrrrrTrrrrr�rrz#don't you just love shades of blue?)rr�r�rrrrr�
test_new_repr�s
�zTestEnum.test_new_reprcCs8Gdd�dt�}Gdd�dt|�}|�t|j�d�dS)Nc@r�)z,TestEnum.test_inherited_repr.<locals>.MyEnumcSr�)NzMy name is %s.r�r�rrrrT�rmz5TestEnum.test_inherited_repr.<locals>.MyEnum.__repr__Nrnrrrrrq�r�rqc@r)z/TestEnum.test_inherited_repr.<locals>.MyIntEnumrrrN)rrrr�r�Ztheotherrrrr�	MyIntEnum�r r%zMy name is that.)rr�r�r�r�)rLrqr%rrr�test_inherited_repr�szTestEnum.test_inherited_reprcsdG�fdd�dtt���Gdd�dt�d�}Gdd�dt�d�}Gdd	�d	|�}Gd
d�d|�}dS)Nc�eZdZ��fdd�Z�ZS)z3TestEnum.test_multiple_mixin_mro.<locals>.auto_enumc	s�t|��}||_t|j�}d}|jD]}||}|tur|}n|}|d7}|||<q|��D]\}}||vr:|||<q.t�|��||||�S�Nrr)r��	_cls_namer��
_member_names�Ellipsisr�superr�)	�metaclsr��bases�	classdict�temp�namesr�rr)r��	auto_enumrrr��s$



�
�z;TestEnum.test_multiple_mixin_mro.<locals>.auto_enum.__new__�rrrr��
__classcell__r�r2�r�rr2��r2c@r@)z:TestEnum.test_multiple_mixin_mro.<locals>.AutoNumberedEnumNrArrrr�AutoNumberedEnum�rCr8)�	metaclassc@r@)z5TestEnum.test_multiple_mixin_mro.<locals>.AutoIntEnumNrArrrr�AutoIntEnum�rCr:c@�eZdZdZdZdZdS)z8TestEnum.test_multiple_mixin_mro.<locals>.TestAutoNumber.rN�rrrrQr�r�rrrr�TestAutoNumber�r r=c@r;)z5TestEnum.test_multiple_mixin_mro.<locals>.TestAutoInt.rNr<rrrr�TestAutoInt�r r>)r�rr)rLr8r:r=r>rr5r�test_multiple_mixin_mro�s
z TestEnum.test_multiple_mixin_mroc�G�fdd�dt��Gdd�d�t�}|�|jtj�|�t|j|j�d��t�d<|t�d<�dd�}|�|d�t	|j|d�|�|jj
d�t	|j|j�t	|j|�dS)	Nc�HeZdZdZdd�Zdd�Zedd��Zdd	�Zd
d�Z�fdd
�ZdS)z:TestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt�NamedIntcW�B|}|^}}t|�dkrtd��tj|g|�R�}||_||_|S�Nrz name and value must be specified�r�r�r�r��_intname�_args�r��argsrGr�rLrrrr���zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__new__cS�|jSre�rGr�rrr�__getnewargs__��zITestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__getnewargs__cSrKre�rFr�rrrr��zCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__name__cS�d�t|�j|jt�|��S�Nz{}({!r}, {})�r�r�rr�rTr�rrrrT���zCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__repr__cS�&t}|j}|jtur|�|�S||�Sre�r�r-�__objclass__rYrT�rL�baseZbase_strrrrr-��


zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__str__c�>t|�t|�}t|��rt|��r�d�|j|j�|�S|S�Nz({0} + {1})�r�r�r�r�rL�otherr0�rBrr�__add__���zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__add__N)	rrrr�rMrrTr-rarr`rrrB��	
	rBc@�eZdZdZdZdZdS)z5TestEnum.test_subclasses_with_getnewargs.<locals>.NEI�NEI�zthe-xr�zthe-yrN�rrr�x�yrrrrrer re�NamedInt('(the-x + the-y)', 3)�testr}r�r�rr�r�r�r�rirjr}r;r��rLreZNI5rr`r�test_subclasses_with_getnewargs��'


z(TestEnum.test_subclasses_with_getnewargscr@)	NcrA)z=TestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedIntrBcWrCrDrErHrrrr�rJzETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__new__cSs
|jifSrerLr�rrr�__getnewargs_ex__rmzOTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__getnewargs_ex__cSrKrerOr�rrrrrPzFTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__name__cSrQrRrSr�rrrrT"rTzFTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__repr__cSrUrerVrXrrrr-'rZzETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__str__cr[r\r]r^r`rrra0rbzETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__add__N)	rrrr�rqrrTr-rarr`rrrBrcrBc@rd)z8TestEnum.test_subclasses_with_getnewargs_ex.<locals>.NEIrerfrgNrhrrrrre9r rerkrlr}rrmrnrr`r�"test_subclasses_with_getnewargs_exrpz+TestEnum.test_subclasses_with_getnewargs_excr@)	NcrA)z6TestEnum.test_subclasses_with_reduce.<locals>.NamedIntrBcWrCrDrErHrrrr�MrJz>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__new__cS�|j|jfSre�r�rGr�rrr�
__reduce__VrUzATestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__reduce__cSrKrerOr�rrrrXrPz?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__name__cSrQrRrSr�rrrrT[rTz?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__repr__cSrUrerVrXrrrr-`rZz>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__str__cr[r\r]r^r`rrrairbz>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__add__N)	rrrr�rurrTr-rarr`rrrBKrcrBc@rd)z1TestEnum.test_subclasses_with_reduce.<locals>.NEIrerfrgNrhrrrrrerr rerkrlr}rrmrnrr`r�test_subclasses_with_reduceJrpz$TestEnum.test_subclasses_with_reducecr@)	NcrA)z9TestEnum.test_subclasses_with_reduce_ex.<locals>.NamedIntrBcWrCrDrErHrrrr��rJzATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__new__cSrsrert�rLr�rrrr��rUzGTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__reduce_ex__cSrKrerOr�rrrr�rPzBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__name__cSrQrRrSr�rrrrT�rTzBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__repr__cSrUrerVrXrrrr-�rZzATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__str__cr[r\r]r^r`rrra�rbzATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__add__N)	rrrr�r�rrTr-rarr`rrrB�rcrBc@rd)z4TestEnum.test_subclasses_with_reduce_ex.<locals>.NEIrerfrgNrhrrrrre�r rerkrlr}rrmrnrr`r�test_subclasses_with_reduce_ex�rpz'TestEnum.test_subclasses_with_reduce_excs�G�fdd�dt��Gdd�d�t�}|�|jtj�|�t|j|j�d��t�d<|t�d<�dd�}|�|d�|�|jj	d�t
|jt|j�t
|jt
|�dS)	Nc�@eZdZdZdd�Zedd��Zdd�Zdd	�Z�fd
d�ZdS)
zHTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedIntrBcWrCrDrErHrrrr��rJzPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__new__cSrKrerOr�rrrr�rPzQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__name__cSrQrRrSr�rrrrT�rTzQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__repr__cSrUrerVrXrrrr-�rZzPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__str__cr[r\r]r^r`rrra�rbzPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__add__N�rrrr�rrTr-rarr`rrrB��	
	rBc@rd)zCTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NEIrerfrgNrhrrrrre�r rerkrlr}r)r�rr�r�r�r�rirjr}r�r=r�r�r
rnrr`r�-test_subclasses_without_direct_pickle_support�s%


z6TestEnum.test_subclasses_without_direct_pickle_supportcs�G�fdd�dt��Gdd�d�t�}|�|jtj�|�t|j|j�d��t�d<|t�d<�dd�}|�|d�|�|jj	d�t
|j|j�t
|j|�dS)	Ncry)
zSTestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedIntrBcWrCrDrErHrrrr��rJz[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__new__cSrKrerOr�rrrr�rPz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__name__cSrQrRrSr�rrrrTrTz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__repr__cSrUrerVrXrrrr-rZz[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__str__cr[r\r]r^r`rrrarbz[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__add__Nrzrr`rrrB�r{rBc@s eZdZdZdZdZdd�ZdS)zNTestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEIrerfrgcSst|j|jffSre)r�r�rSrwrrrr�sz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEI.__reduce_ex__N)rrrrirjr�rrrrrerrerkrlr}r)r�rr�r�r�r�rirjr}r�r;rnrr`r�8test_subclasses_without_direct_pickle_support_using_name�s%


zATestEnum.test_subclasses_without_direct_pickle_support_using_namecCs\Gdd�dtt�}|�t|j�|�|�|jt�|�|jd�|t	�d<t
|j|j�dS)Nc@rp)z/TestEnum.test_tuple_subclass.<locals>.SomeTuple�	SomeTuple)rz
for the money)rzfor the show�rz
for the musicN)rrr�first�second�thirdrrrrr~)rvr~r)�tuplerr�r�r�r�r�r�r�r}r;)rLr~rrr�test_tuple_subclass(s
zTestEnum.test_tuple_subclasscCsdGdd�dt�}|�t|�|j|j|jg�|�t|j�d�|�|jjd�|�|d�|j�dS)Nc@s(eZdZdZdZdZdd�Zdd�ZdS)zITestEnum.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumberrcS�"t|j�d}t�|�}||_|Sr��r�r�rYr�r��r�r�r<rrrr�9�
zQTestEnum.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__new__cSr�re�r�r�r�rrrr>rmzQTestEnum.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__int__N)rrrr�r�r�r�rrrrr�
AutoNumber5sr�rrr)	rr�r�r�r�r�r�r�r�)rLr�rrr�,test_duplicate_values_give_unique_enum_items4s�z5TestEnum.test_duplicate_values_give_unique_enum_itemscC�ZGdd�dt�}Gdd�d|�}|�t|�|j|j|jg�|�ttt|��gd��dS)Nc@�eZdZdd�Zdd�ZdS)zBTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumbercSr�r�r�r�rrrr�Jr�zJTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__new__cSr�rer�r�rrrrOrmzJTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__int__N)rrrr�rrrrrr�Isr�c@�eZdZdZdZdZdS)z=TestEnum.test_inherited_new_from_enhanced_enum.<locals>.ColorrNrrrrrrQr rrR)rr�r�rrr�mapr��rLr�rrrr�%test_inherited_new_from_enhanced_enumHsz.TestEnum.test_inherited_new_from_enhanced_enumcCr�)Nc@r�)z?TestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumbercSs$t|j�d}t�||�}||_|Sr�)r�r�r�r�r�r�rrrr�ZszGTestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumber.__new__Nr�rrrrr�Yr�r�c@r�)z:TestEnum.test_inherited_new_from_mixed_enum.<locals>.ColorrNrrrrrr_r rrR)rr�r�rrrr�r�r�rrr�"test_inherited_new_from_mixed_enumXsz+TestEnum.test_inherited_new_from_mixed_enumcCs0Gdd�dt�}|�t|j�|�|jt�dS)Nc@r$)z,TestEnum.test_equality.<locals>.OrdinaryEnumrN)rrrrQrrrr�OrdinaryEnumgr'r�)rr�rrQ)rLr�rrr�
test_equalityfszTestEnum.test_equalitycCs�Gdd�dt�}Gdd�d|�}|�|j|j�|�|j|j�|�|j|j�|�	|j|j�|�
|j|j�|�|j|j�dS)Nc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z0TestEnum.test_ordered_mixin.<locals>.OrderedEnumcSs|j|jur|j|jkStSre�r�r��NotImplemented�rLr_rrr�__ge__n�z7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__ge__cSs|j|jur|j|jkStSrer�r�rrr�__gt__rr�z7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__gt__cSs|j|jur|j|jkStSrer�r�rrr�__le__vr�z7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__le__cSs|j|jur|j|jkStSrer�r�rrr�__lt__zr�z7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__lt__N)rrrr�r�r�r�rrrr�OrderedEnumms
r�c@r|)z*TestEnum.test_ordered_mixin.<locals>.Grader}rprrrNr~rrrr�Grade~r�r�)rZ
assertGreaterrr�ZassertLessEqualr�r�Z
assertLessr�ZassertGreaterEqualr�r�)rLr�r�rrr�test_ordered_mixinlszTestEnum.test_ordered_mixincCs`Gdd�dt�}Gdd�d|�}|�t��Gdd�d|�}Wd�dS1s)wYdS)Nc@r�)z'TestEnum.test_extending2.<locals>.ShadecSst|j�dSre)�printr�r�rrr�shade��z-TestEnum.test_extending2.<locals>.Shade.shadeN�rrrr�rrrr�Shade�r�r�c@r)z'TestEnum.test_extending2.<locals>.ColorrrrNrrrrrr�r rc@r)z+TestEnum.test_extending2.<locals>.MoreColorrpr}rtNr�rrrrr��r r�)rr�r��rLr�rr�rrr�test_extending2�s
"�zTestEnum.test_extending2cCsFGdd�dt�}Gdd�d|�}Gdd�d|�}|�|j��d�dS)Nc@r�)z'TestEnum.test_extending3.<locals>.ShadecSrKrer�r�rrrr��rNz-TestEnum.test_extending3.<locals>.Shade.shadeNr�rrrrr��r�r�c@r�)z'TestEnum.test_extending3.<locals>.ColorcSr�)Nz
%s hexlified!r�r�rrrrl�rmz+TestEnum.test_extending3.<locals>.Color.hexN)rrrrlrrrrr�r�rc@r)z+TestEnum.test_extending3.<locals>.MoreColorrpr}rtNr�rrrrr��r r�z5 hexlified!)rr�r�rlr�rrr�test_extending3�szTestEnum.test_extending3cCs6Gdd�dt�}Gdd�d|�}|�t|j�|�dS)Nc@r�)z3TestEnum.test_subclass_duplicate_name.<locals>.BasecSr�rerr�rrrrl�r�z8TestEnum.test_subclass_duplicate_name.<locals>.Base.testN�rrrrlrrrr�Base�r�r�c@r$)z3TestEnum.test_subclass_duplicate_name.<locals>.TestrNr�rrrrr��r'r�)rr�r�rl�rLr�r�rrr�test_subclass_duplicate_name�sz%TestEnum.test_subclass_duplicate_namecsDddlm�G�fdd�dt�}Gdd�d|�}|�|jjd�dS)Nr��DynamicClassAttributecseZdZ�dd��ZdS)z;TestEnum.test_subclass_duplicate_name_dynamic.<locals>.BasecSr�)N�dynamicrr�rrrrl�rz@TestEnum.test_subclass_duplicate_name_dynamic.<locals>.Base.testNr�rr�rrr���r�c@r$)z;TestEnum.test_subclass_duplicate_name_dynamic.<locals>.TestrNr�rrrrr��r'r�r�)�typesr�rr�rlr�rr�r�$test_subclass_duplicate_name_dynamic�sz-TestEnum.test_subclass_duplicate_name_dynamiccCs`Gdd�dt�}Gdd�d|�}|�t��Gdd�d|�}Wd�dS1s)wYdS)Nc@r�)z/TestEnum.test_no_duplicates.<locals>.UniqueEnumcsB�j}t�fdd�|D��r�j}|�j�j}td||f��dS)Nc3s�|]	}�j|jkVqdSrer�)rr�r�rr�	<genexpr>�s�zKTestEnum.test_no_duplicates.<locals>.UniqueEnum.__init__.<locals>.<genexpr>z-aliases not allowed in UniqueEnum:  %r --> %r)r��anyr�r�r�)rLrIr�rQr�rr�rrj�s���z8TestEnum.test_no_duplicates.<locals>.UniqueEnum.__init__N�rrrrjrrrr�
UniqueEnum�r�r�c@r�z*TestEnum.test_no_duplicates.<locals>.ColorrrrNrrrrrr�r rc@seZdZdZdZdZdZdSr�)rrrrrrZgrenerrrrr�rv)rr�r�)rLr�rrrr�test_no_duplicates�s

"�zTestEnum.test_no_duplicatescCs:Gdd�dt�}|�t|jjd�d�|�|jjd�dS)Nc@s@eZdZdZdZdZdZdZdZdZ	dZ
d	d
�Zedd��Z
d
S)z"TestEnum.test_init.<locals>.Planet)gI�Tf|�Dg
�BA)g�QX4Eg�WA�g�o��Eg�TXA)g���	��Dg(�IA)g�c�����Eg���A)g�[�\h}Eg,A)g#'?�T�QEg��_xA)g�J��-UEg��wAcSs||_||_dSre��mass�radius)rLr�r�rrrrj�s
z+TestEnum.test_init.<locals>.Planet.__init__cSsd}||j|j|jS)Ng
yдW�=r�)rLrzrrr�surface_gravity�sz2TestEnum.test_init.<locals>.Planet.surface_gravityN)rrrZMERCURYZVENUS�EARTHZMARSZJUPITERZSATURNZURANUSZNEPTUNErjrr�rrrr�Planet�sr�rg������#@r�)rr��roundr�r�r�)rLr�rrr�	test_init�szTestEnum.test_initcCs|Gdd�dtt�}|�t|d��|�t|d��|�t|d��|�t|jt��|�|j|ju�|�|j	|j
u�dS)Nc@s�eZdZdZdd�ZdZe�Zed�D]Z	e	ddfede	<qed	�D]Z	e	d
dfede	<q$ed
�D]
Z	e	dfede	<q5e
ZeZ
eZdS)z$TestEnum.test_ignore.<locals>.Periodz3
            different lengths of time
            cSr�re)rr�r��period)r�r�r�r<rrrr��r�z,TestEnum.test_ignore.<locals>.Period.__new__zPeriod i�
r�r�zmonth_%d�5rxZweekzweek_%d� Zdayzday_%dN)rrrr&r��_ignore_�varsr�r7r��day_1ZOneDayZweek_1ZOneWeek�month_1ZOneMonthrrrrr��sr�r�r�)rrrGr�rKr�r�r�Zday_30Zweek_4Zday_28r�rrr�test_ignore�szTestEnum.test_ignorecCs�Gdd�dt�}Gdd�d|�}|�t|�|j|j|jg�t|td��D]\}}|d7}|�|j|g�|�	||g�|�q%dS)Nc@r�)z6TestEnum.test_nonhash_value.<locals>.AutoNumberInAListcSs$t|j�dg}t�|�}||_|Sr�r�r�rrrr�s
z>TestEnum.test_nonhash_value.<locals>.AutoNumberInAList.__new__Nr�rrrr�AutoNumberInAListr�r�c@r�)z1TestEnum.test_nonhash_value.<locals>.ColorInAListrNrrrrr�ColorInAListr r�rr)
rr�r�rrr�zipr7r�r�)rLr�r�rHr�rrr�test_nonhash_value�s�zTestEnum.test_nonhash_valuecCs^Gdd�dtt�}Gdd�d|�}|�t|�|j|jg�|�|jd�|�|d�|j�dS)Nc@r�)zHTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnumcWs$|\}}t�||�}||_||_|Sre)r�r��labelr�)r�rIr�r�r<rrrr�s
zPTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnum.__new__Nr�rrrr�LabelledIntEnumr�r�c@r()zETestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledList)rZUnprocessed)rzPayment CompleteN)rrr�unprocessed�payment_completerrrr�LabelledListr,r�r)r�rr�r�r�r�)rLr�r�rrr�&test_conflicting_types_resolved_in_news
z/TestEnum.test_conflicting_types_resolved_in_newcC�`Gdd�dt�}|�t|�|j|j|jg�|�|jjd�|�|jjd�|�|jjd�dS)Nc@�eZdZe�Ze�Ze�ZdS)z(TestEnum.test_auto_number.<locals>.ColorN�rrrr	rrrrrrrr"�
rrrr�rr�r�rrrr�rrrr�test_auto_number!�
zTestEnum.test_auto_numbercCr�)Nc@s&eZdZdd�Ze�Ze�Ze�ZdS)z&TestEnum.test_auto_name.<locals>.ColorcS�|Srer�r�r��countZlastrrr�_generate_next_value_.r�z<TestEnum.test_auto_name.<locals>.Color._generate_next_value_N)rrrr�r	rrrrrrrr-s

rrrrr�rrrr�test_auto_name,s
zTestEnum.test_auto_namecCspGdd�dt�}Gdd�d|�}|�t|�|j|j|jg�|�|jjd�|�|jjd�|�|jjd�dS)Nc@r�)z5TestEnum.test_auto_name_inherit.<locals>.AutoNameEnumcSr�rerr�rrrr�;r�zKTestEnum.test_auto_name_inherit.<locals>.AutoNameEnum._generate_next_value_N)rrrr�rrrr�AutoNameEnum:r�r�c@r�)z.TestEnum.test_auto_name_inherit.<locals>.ColorNr�rrrrr=r�rrrrr�)rLr�rrrr�test_auto_name_inherit9szTestEnum.test_auto_name_inheritcCs$Gdd�dt�}|�|jjd�dS)Nc@�eZdZdZe�ZdS)z)TestEnum.test_auto_garbage.<locals>.ColorrN�rrrrr	rrrrrrH�
rr)rr�rr�rrrr�test_auto_garbageGszTestEnum.test_auto_garbagecCr�)Nc@seZdZdZdZe�ZdS)z3TestEnum.test_auto_garbage_corrected.<locals>.ColorrrN)rrrrrr	rrrrrrNs
rrrrr�rrrr�test_auto_garbage_correctedMr�z$TestEnum.test_auto_garbage_correctedcCs@|�t��Gdd�dt�}Wd�dS1swYdS)Nc@s&eZdZe�Ze�Ze�Zdd�ZdS)z'TestEnum.test_auto_order.<locals>.ColorcSr�rerr�rrrr�^r�z=TestEnum.test_auto_order.<locals>.Color._generate_next_value_N)rrrr	rrrr�rrrrrZs
rrrrrr�test_auto_orderXs"�zTestEnum.test_auto_ordercs\t��d�_G�fdd�dt�}|�t|�|j|jg�|�|jjd�|�|jjd�dS)Nzpathological casecseZdZ�Zdd�Ze�ZdS)z-TestEnum.test_auto_order_wierd.<locals>.ColorcSr�rerr�rrrr�fr�zCTestEnum.test_auto_order_wierd.<locals>.Color._generate_next_value_N)rrrrr�r	rr�Z
weird_autorrrds
rr)r	r�rr�r�rrrrr�r�test_auto_order_wierdaszTestEnum.test_auto_order_wierdcC�0Gdd�dt�}|�|j|j|jgt|��dS)Nc@�"eZdZe�ZZe�Ze�ZdS)z+TestEnum.test_duplicate_auto.<locals>.DupesN�rrrr	r�Zprimeror�r�rrrr�Dupesn�

r��rr�r�r�r�r��rLr�rrr�test_duplicate_autom� zTestEnum.test_duplicate_autoc
CsZGdd�dt�}z	|d�Wtd��ty,}z|�|jdu�WYd}~dSd}~ww)Nc@r)z,TestEnum.test_default_missing.<locals>.ColorrrrN)rrrrVrWrXrrrrrur rrx�Exception not raised.)rr�rK�__context__r��rLr�excrrr�test_default_missingts
���zTestEnum.test_default_missingc
CsGdd�dt�}|�|d�|j�z	|d�Wtd��ty4}z|�|jdu�WYd}~nd}~wwz	|d�Wtd��tyY}z|�t|jt��WYd}~nd}~wwz	|d�Wtd��t	y}z|�t|jt��WYd}~dSd}~ww)Nc@s$eZdZdZdZdZedd��ZdS)z$TestEnum.test_missing.<locals>.ColorrrrcSs*|dkr|jS|dkr
dS|dkrt�dS)Nr��
bad returnr}�	error out)r�ZeroDivisionError)r��itemrrr�	_missing_�sz.TestEnum.test_missing.<locals>.Color._missing_N)rrrrrr�classmethodr�rrrrr�srr�rxr�r�r�)
rr�rr�rKr�r�r�r�r�r�rrr�test_missing�s.
���
���
� ��zTestEnum.test_missingcsrddl}Gdd�dtj��Gdd�d�}G�fdd�d�}|�|��}|�|��}|�|�d�|�|�d�dS)Nrc@r()z8TestEnum.test_missing_exceptions_reset.<locals>.TestEnumZval1Zval2N)rrrZVAL1ZVAL2rrrrrn�r,rnc@r�)z6TestEnum.test_missing_exceptions_reset.<locals>.Class1cSszt��ty
YdSwre�r�r�rrrrj�s
�z?TestEnum.test_missing_exceptions_reset.<locals>.Class1.__init__Nr�rrrr�Class1�r�rcseZdZ�fdd�ZdS)z6TestEnum.test_missing_exceptions_reset.<locals>.Class2cs$z�d�WdStyYdSw)NZ
invalid_valuer�r��rnrrrj�s
�z?TestEnum.test_missing_exceptions_reset.<locals>.Class2.__init__Nr�rrrr�Class2�sr)�weakrefrHr�refr�)rLrrrZclass_1_refZclass_2_refrrr�test_missing_exceptions_reset�sz&TestEnum.test_missing_exceptions_resetcCs�Gdd�d�}Gdd�d�}Gdd�dt�}Gdd�dt�}Gd	d
�d
|t�}|�|jjd�|�|jjd�|�|jjd
�|�|jd
�|�t|j�d�Gdd
�d
||t�}|�|jjd�|�|jjd�|�|jjd
�|�|jd
�|�t|j�d�Gdd
�d
||t�}|�|jjd�|�|jjd�|�|jjd
�|�|jd
�|�t|j�d�Gdd�d||t�}|�|jjd�|�|jjd�|�|jjd
�|�t|j�d�|�|j��d�Gdd�d||t�}|�|jjd�|�|jjd�|�|jjd
�|�t|j�d�|�|j��d�|�|j�	�d�Gdd�d|||�}|�|jjd�|�|jjd�|�|jjd
�|�t|j�d�|�|j��d�|�|j�	�d�Gdd�d|||�}	|�|	jjd�|�|	jjd�|�|	jjd
�|�t|	j�d�|�|	j��d�|�|	j�	�d�Gdd�d|t
||�}
|�|
jjd�|�|
jjd�|�|
jjd
�|�t|
j�d�|�|
j��d�|�|	j�	�d�|�t|
t
��dS)Nc@�eZdZedd��ZdS)z.TestEnum.test_multiple_mixin.<locals>.MaxMixincSst|�}||_|Sre)r��MAX)r��maxrrrr�sz2TestEnum.test_multiple_mixin.<locals>.MaxMixin.MAXN)rrrrdrrrrr�MaxMixin�r�r	c@r�)z.TestEnum.test_multiple_mixin.<locals>.StrMixincS�
|j��Sre�rS�lowerr�rrrr-�rmz6TestEnum.test_multiple_mixin.<locals>.StrMixin.__str__Nr]rrrr�StrMixin�r�r
c@r�)z.TestEnum.test_multiple_mixin.<locals>.SomeEnumcSr�)N�booyahrr�rrr�behavior�r�z7TestEnum.test_multiple_mixin.<locals>.SomeEnum.behaviorN)rrrrrrrr�SomeEnum�r�rc@r�)z1TestEnum.test_multiple_mixin.<locals>.AnotherEnumcSr�)N�nuhuh!rr�rrrr�r�z:TestEnum.test_multiple_mixin.<locals>.AnotherEnum.behaviorcSr�)N�
what's up?rr�rrr�social�r�z8TestEnum.test_multiple_mixin.<locals>.AnotherEnum.socialN)rrrrrrrrr�AnotherEnum�src@r��z+TestEnum.test_multiple_mixin.<locals>.ColorN�rrrr	rVrWrXrrrrr�r�rrrr�
Color.BLUEc@r�rrrrrrr�r�rc@r�rrrrrrr�r�c@r�)z/TestEnum.test_multiple_mixin.<locals>.CoolColorNrrrrr�	CoolColor�r�rrc@r�)z1TestEnum.test_multiple_mixin.<locals>.CoolerColorNrrrrr�CoolerColor�r�rrrc@r�)z2TestEnum.test_multiple_mixin.<locals>.CoolestColorNrrrrr�CoolestColorr�rc@r�)z3TestEnum.test_multiple_mixin.<locals>.ConfusedColorNrrrrr�
ConfusedColorr�rc@r�)z3TestEnum.test_multiple_mixin.<locals>.ReformedColorNrrrrr�
ReformedColorr�r)rr�rVr�rWrXrr�rrrrK�
issubclassr�)rLr	r
rrrrrrrrrrr�test_multiple_mixin�srzTestEnum.test_multiple_mixincCsNGdd�dtt�}tGdd�d|��}Gdd�d|�}tGdd�d|��}dS)	Nc@r�)z7TestEnum.test_multiple_inherited_mixin.<locals>.StrEnumc_sB|D]}t|t�std|t|�jf��qtj|g|�Ri|��S)Nz%Enumeration '%s' (%s) is not a string)r�r�r�r�rr�)r�rI�kwargsrQrrrr�'s
��z?TestEnum.test_multiple_inherited_mixin.<locals>.StrEnum.__new__Nr�rrrrr%&r�r%c@r)z9TestEnum.test_multiple_inherited_mixin.<locals>.Decision1�REVERT�
REVERT_ALL�RETRYN�rrrr r!r"rrrr�	Decision1-�r$c@r@)z6TestEnum.test_multiple_inherited_mixin.<locals>.MyEnumNrArrrrrq2rCrqc@r)z9TestEnum.test_multiple_inherited_mixin.<locals>.Decision2r r!r"Nr#rrrr�	Decision24r%r&)r�rr)rLr%r$rqr&rrr�test_multiple_inherited_mixin%sz&TestEnum.test_multiple_inherited_mixincCs�Gdd�dt�}Gdd�d�}Gdd�d||tj�}Gdd�d|�}|�t|j|��|�t|j�d	�Gd
d�d|�}|�|jd�dS)
NcseZdZ�fdd�Z�ZS)z5TestEnum.test_multiple_mixin_inherited.<locals>.MyIntcst��||�Sre)r,r�rvr6rrr�<r�z=TestEnum.test_multiple_mixin_inherited.<locals>.MyInt.__new__r3rrr6rr�;sr�c@r�)z8TestEnum.test_multiple_mixin_inherited.<locals>.HexMixincSrjrerkr�rrrrT@rmzATestEnum.test_multiple_mixin_inherited.<locals>.HexMixin.__repr__Nrnrrrr�HexMixin?r�r(c@r@)z9TestEnum.test_multiple_mixin_inherited.<locals>.MyIntEnumNrArrrrr%CrCr%c@r$)z3TestEnum.test_multiple_mixin_inherited.<locals>.FoorN)rrr�TESTrrrr�FooFr'r*Z0x1c@seZdZdZdd�ZdS)z3TestEnum.test_multiple_mixin_inherited.<locals>.FeercSs|d7}t�||�}||_|Sr�)r�r�r�)r�r�r�rrrr�Msz;TestEnum.test_multiple_mixin_inherited.<locals>.Fee.__new__N)rrrr)r�rrrr�FeeKror+r)r�rHrrKr�r)r�r�)rLr�r(r%r*r+rrr�test_multiple_mixin_inherited:sz&TestEnum.test_multiple_mixin_inheritedcCs(d}t|dd�}i}i}t|||�dS)Nz8from enum import Enum; Enum('Animal', 'ANT BEE CAT DOG')z<string>�exec)�compiler-)rL�codeZ	global_nsZlocal_lsrrr�test_empty_globalsTs
zTestEnum.test_empty_globals�rr�z+private variables are now normal attributescCs�|�t��Gdd�dt�}Wd�n1swY|�|jjd�z"|�t��Gdd�dt�}Wd�WdS1s@wYWdStyQYdSw)Nc@r$)�<TestEnum.test_warning_for_private_variables.<locals>.Private�RadarN)rrr�_Private__corporalrrrr�Privatecr'r5r3c@r$)r2ZHoolihanN)rrrZ_Private__major_rrrrr5hr')r�rrr�r4r�r�)rLr5rrr�"test_warning_for_private_variables]s�&��z+TestEnum.test_warning_for_private_variablesN)�rrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��unittest�skipIf�python_versionrrr	rr r"r*r0r:r>rBrFrIrJrKrMrOrPr[rgr~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�rrrrrrr!r#r$r&r?rorrrvrxr|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�rrr'r,r0�
skipUnlessr6rrrrrn�s#	�
�

				.		
	
	
				


%999957


	% `	�rnc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�	TestOrdercC�Gdd�dt�}dS)Nc@ro)z*TestOrder.test_same_members.<locals>.Color�red green bluerrrN�rrr�_order_rrrrrrrrqrvr�rrrrr�test_same_memberspr�zTestOrder.test_same_memberscCr<)Nc@� eZdZdZdZdZdZeZdS)z7TestOrder.test_same_members_with_aliases.<locals>.Colorr=rrrN�rrrr?rrr�verderrrrrxr�rr@rrrr�test_same_members_with_aliaseswr�z(TestOrder.test_same_members_with_aliasescC�B|�td��Gdd�dt�}Wd�dS1swYdS)N�#member order does not match _order_c@ro)z6TestOrder.test_same_members_wrong_order.<locals>.Colorr=rrrN)rrrr?rrrrrrrr�rvr�r�r�rrrrr�test_same_members_wrong_order�"�z'TestOrder.test_same_members_wrong_ordercCrF)NrGc@ro)z5TestOrder.test_order_has_extra_members.<locals>.Color�red green blue purplerrrNr>rrrrr�rvrrHrrrr�test_order_has_extra_members�rJz&TestOrder.test_order_has_extra_memberscCrF)NrGc@rB)zBTestOrder.test_order_has_extra_members_with_aliases.<locals>.ColorrKrrrNrCrrrrr�r�rrHrrrr�)test_order_has_extra_members_with_aliases�rJz3TestOrder.test_order_has_extra_members_with_aliasescCrF)NrGc@r|)z4TestOrder.test_enum_has_extra_members.<locals>.Colorr=rrrrpN)rrrr?rrr�purplerrrrr�r�rrHrrrr�test_enum_has_extra_members�rJz%TestOrder.test_enum_has_extra_memberscCrF)NrGc@s$eZdZdZdZdZdZdZeZdS)zATestOrder.test_enum_has_extra_members_with_aliases.<locals>.Colorr=rrrrpN)	rrrr?rrrrNrDrrrrr�srrHrrrr�(test_enum_has_extra_members_with_aliases�rJz2TestOrder.test_enum_has_extra_members_with_aliasesN)
rrrrArErIrLrMrOrPrrrrr;ns		r;c@s.eZdZdZGdd�de�ZGdd�de�ZGdd�de�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Ze�ed$kd%�d&d'��Ze�ed$kd(�d)d*��Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Z d7d8�Z!e"j#d9d:��Z$d;d<�Z%d=S)>�TestFlagzTests of the Flags.c@seZdZd\ZZZdS)z
TestFlag.Perm)rprrN)rrr�R�W�Xrrrr�Perm�r�rUc@r|)z
TestFlag.Openrrrr�N�rrr�RO�WO�RW�AC�CErrrr�Open�r�r]c@�$eZdZdZdZdZdZeeBZdS)zTestFlag.ColorrrrrpN�rrr�BLACKrVrWrXZPURPLErrrrr��rcC��|j}|�t|j�d�|�t|j�d�|�t|j�d�|�t|j|jB�d�|�t|j|jB|jB�d�|�t|d��d�|�t|j�d�|�t|j�d	�|�t|j�d�|�t|j|jB�d�|�t|j|jB|jB�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�dS)N�Perm.R�Perm.W�Perm.X�Perm.R|W�
Perm.R|W|Xr�Perm.0�Perm.W|X�Perm.R|X����Open.RO�Open.WO�Open.AC�Open.CE�
Open.CE|WO�Open.CE|AC|RW|WO�
Open.CE|RW�Open.RW�rUr�r�rRrSrTr]rXrYr[r\�rLrUr]rrr�test_str��0 zTestFlag.test_strcCrb)N�<Perm.R: 4>�<Perm.W: 2>�<Perm.X: 1>�
<Perm.R|W: 6>�<Perm.R|W|X: 7>r�<Perm.0: 0>z
<Perm.W|X: 3>z
<Perm.R|X: 5>rk�<Open.RO: 0>�<Open.WO: 1>�<Open.AC: 3>�<Open.CE: 524288>�<Open.CE|WO: 524289>z<Open.CE|AC|RW|WO: 524291>z<Open.CE|RW: 524290>z<Open.RW: 2>�rUr�r�rRrSrTr]rXrYr[r\rurrr�	test_repr�rwzTestFlag.test_reprcC�8|j}|�t|jd�d�|�t|j|jBd�d�dS)Nr�rcrj�rUr�r�rRrT�rLrUrrr�test_format��zTestFlag.test_formatcCs�|j}|D],}|D]'}|�||B||j|jB��|�||Bj|j|jB�|�t||B�|�q	q|D]
}|�||B|�q4|j}|�|j|jB|j�dSre�rUr�r�r�r�r]rXr\�rLrUr��jr]rrr�test_or�s�zTestFlag.test_orc
Cs�|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}|D]}|D]}|�||@j|j|j@�|�t||@�|�q1q-|D]}|�||@|�|�||@|�|�||@|�qN|j	}	|�|	j
|	j@|	j
�dS�Nr)rUrRrSrTr�r�r�r�r�r]rXr\�
rLrUrZ�RX�WX�RWX�valuesr�r�r]rrr�test_and	s"�zTestFlag.test_andcCs�|j}|D]}|D]}|�||Aj|j|jA�|�t||A�|�q	q|D]}|�||d�A|�|�|d�|A|�q&|j}|�|j|jA|j�|�|j|jA|j�dSr�r�r�rrr�test_xor	s�zTestFlag.test_xorc	Cs�|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}|D]}|�t|�|�|�||�q-|D]
}|�||�qC|j}|�|j	|j	@|j
�|�|j	|jB|j	@|j�dSr�)rUrRrSrTr�r�r�r�r]rYrXr\�	rLrUrZr�r�r�r�r�r]rrr�test_invert&	s"zTestFlag.test_invertcC�D|j}|D]}|�|�q|j}|D]
}|�t|j�t|��qdSre�rUrKr]r�r�r��rLrU�fr]rrrr�6	��zTestFlag.test_boolcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]1\}}d|>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�q.dS�NrU�R W Xrr�rr�r�r�rRrSrTr�r�r�r�r�r�r�r��rLrUr�r��nrr�rrr� test_programatic_function_string>	s
�z)TestFlag.test_programatic_function_stringcCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]1\}}d|>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�q0dS�NrUr�ryr�rr�r�rrr�+test_programatic_function_string_with_startM	��z4TestFlag.test_programatic_function_string_with_startcCs�tdgd��}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]1\}}d|>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�q0dS�NrU)rRrSrTrr�rr�r�rrr�%test_programatic_function_string_list\	r�z.TestFlag.test_programatic_function_string_listcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]5\}}dd|d>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�q.dS�NrU))rRr)rSry)rTr�rr�rrr�r�rrr�"test_programatic_function_iterablek	s
�z+TestFlag.test_programatic_function_iterablecCs�tdtd��}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td�	��D]5\}}dd|d>}||�}|�|j
|�|�t|j
�t�|�|j
|�|�||�|�t|�|�q0dSr�)rrr�r�r�rRrSrTr�r�r�r�r�r�r�r�r�rrr�#test_programatic_function_from_dictz	s�z,TestFlag.test_programatic_function_from_dictcCs2ttt�rt�t|jtjtjB�t|jt�dSre)r�r#r�r;r�rrr�rrr�test_pickle�	s
zTestFlag.test_pickler�r�c	Cs�|j}|j}|�|j|v�|�|j|v�|�t��!|�t��d|vWd�n1s0wYWd�n1s?wY|�t��!|�t��d|vWd�n1s^wYWd�n1smwY|�t��!|�t��d|vWd�n1s�wYWd�n1s�wY|�t��*|�t��d|vWd�n1s�wYWd�dSWd�dS1s�wYdS�Nr`rXr)	r]rrGr`rXr�r�r�r�rLr]rrrrr�	s:
���
���
���
��"�zTestFlag.test_contains_errcCsh|j}|j}|�|j|v�|�|j|v�|�d|v�|�d|v�|�d|v�|�d|v�dSr�)r]rrGr`rXrKr�rrrr�	szTestFlag.test_contains_tfc	Cs�|j}|\}}}||B}||B}||B}||B|B}|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�dSre)rUrKrG�	rLrUrRrSrTrZr�r�r�rrr�test_member_contains�	s$
zTestFlag.test_member_containscCr�)Nc@r�)z(TestFlag.test_auto_number.<locals>.ColorNr�rrrrr�	r�rrrrp)rr�r�rrrr�rrrrr��	r�zTestFlag.test_auto_numbercCrF)Nz Invalid Flag value: .not an int.c@r�)z0TestFlag.test_auto_number_garbage.<locals>.Colorz
not an intNr�rrrrr�	r�r)r�r�rrrrr�test_auto_number_garbage�	rJz!TestFlag.test_auto_number_garbagecCs�Gdd�dt�}d}|�td||d�|�td||d�|�td||d�|�td||d�|�td||d	�|�td||d	�dS)
Nc@r)�0TestFlag.test_cascading_failure.<locals>.BizarrerrprtN)rrrr��dr�rrrr�Bizarre�	r r�r�z5 is not a valid r}z2 is not a valid rz1 is not a valid r)rr�r�)rLr�r�rrr�test_cascading_failure�	szTestFlag.test_cascading_failurecCr�)Nc@r�)z+TestFlag.test_duplicate_auto.<locals>.DupesNr�rrrrr��	r�r�r�r�rrrr��	r�zTestFlag.test_duplicate_autocCs(Gdd�dt�}|�t|d��d�dS)Nc@r)z&TestFlag.test_bizarre.<locals>.BizarrerrprtN)rrrr�r�r�rrrrr��	r r�rxz<Bizarre.d|c|b: 7>)rr�r�)rLr�rrr�test_bizarre�	szTestFlag.test_bizarrecC�PGdd�d�}Gdd�d�}Gdd�d|t�}|�|jjd�|�|jjd�|�|jjd	�|�|jjd
�|�t|j�d�Gdd�d||t�}|�|jjd�|�|jjd�|�|jjd	�|�|jjd
�|�t|j�d
�Gdd�d||t�}|�|jjd�|�|jjd�|�|jjd	�|�|jjd
�|�t|j�d
�dS)Nc@r)z.TestFlag.test_multiple_mixin.<locals>.AllMixincS�<t|�}d}|r|d}|dd�D]}||O}q||_|Sr(�r��ALL�r��membersZ	all_valuer�rrrr��	�
z2TestFlag.test_multiple_mixin.<locals>.AllMixin.ALLN�rrrrdr�rrrr�AllMixin�	r�r�c@r�)z.TestFlag.test_multiple_mixin.<locals>.StrMixincSr
rerr�rrrr-
rmz6TestFlag.test_multiple_mixin.<locals>.StrMixin.__str__Nr]rrrrr

r�r
c@r��z+TestFlag.test_multiple_mixin.<locals>.ColorNrrrrrr
r�rrrrprxrc@r�r�rrrrrr
r�rc@r�r�rrrrrr
r�)rr�rVr�rWrXr�r��rLr�r
rrrrr�	�(zTestFlag.test_multiple_mixinc�Gdd�dt��t��d����fdd���fdd�td�D�}t�|��Wd�n1s0wY|��d	�|�d
t��d�dS)Nc@�LeZdZe�Ze�Ze�Ze�Ze�Ze�Z	e�Z
e�Zdd�Zdd�Z
dS)z0TestFlag.test_unique_composite.<locals>.TestFlagcS�||uSrerr�rrrr�,
rmz7TestFlag.test_unique_composite.<locals>.TestFlag.__eq__cSr�re��hashr�r�rrr�__hash__.
rmz9TestFlag.test_unique_composite.<locals>.TestFlag.__hash__N�rrrr	r�r�r�ZfourZfiveZsixZsevenZeightr�r�rrrrrQ#
�rQFc�<ztd�D]	}���|��qWdStyd�YdSw�N�T�r7�addr��r��rQ�failed�seenrr�
cycle_enum3
��
�z2TestFlag.test_unique_composite.<locals>.cycle_enumc�g|]}tj�d��qS�)r:��	threadingZThread�rrY�r�rrr:
�
��z2TestFlag.test_unique_composite.<locals>.<listcomp>ry�;at least one thread failed while creating composite membersr��"too many composite members created)rr�r7r�
start_threadsrGr�r��rLZthreadsr�rQr�r�r�r�test_unique_composite 
�
���zTestFlag.test_unique_compositecs:G�fdd�dt�}G�fdd�d|��Gdd�d��}Gdd�d|�}���jd	d���|jd	d���|jd
d���|j�d	d����|j�d
d��Gdd
�d
|�}Gdd�d|�}Gdd�d|�}��|jd	d���|j�d	d����|jd
d
���|j�d	d����|j�d
d��dS)Ncr')z+TestFlag.test_init_subclass.<locals>.MyEnumcs0t�jdi|����|j�dd��d|_dS)NZ_testFrqr)r,�__init_subclass__rG�__dict__�get�_test1�r��kwds)r�rLrrr�H
s
z=TestFlag.test_init_subclass.<locals>.MyEnum.__init_subclass__�rrrr�r4rr�r6rrqG
r7rqcseZdZ��fdd�Z�ZS)z.TestFlag.test_init_subclass.<locals>.TheirEnumcs t�|�jdi|��d|_dS)N�	TheirEnumr)r,r��_test2r�)r�r�rrr�N
s
z@TestFlag.test_init_subclass.<locals>.TheirEnum.__init_subclass__r�r)r�r6rr�M
r7r�c@r�)z.TestFlag.test_init_subclass.<locals>.WhoseEnumc[r�rerr�rrrr�R
r�z@TestFlag.test_init_subclass.<locals>.WhoseEnum.__init_subclass__N�rrrr�rrrr�	WhoseEnumQ
r�r�c@r$)z+TestFlag.test_init_subclass.<locals>.NoEnumrN�rrrr�rrrr�NoEnumT
r'r�r�r�Fc@r�)z,TestFlag.test_init_subclass.<locals>.OurEnumc[s
d|_dS)N�OurEnum)r�r�rrrr�]
rmz>TestFlag.test_init_subclass.<locals>.OurEnum.__init_subclass__Nr�rrrrr�\
r�r�c@r�)z.TestFlag.test_init_subclass.<locals>.WhereEnumc[r�rerr�rrrr�`
r�z@TestFlag.test_init_subclass.<locals>.WhereEnum.__init_subclass__Nr�rrrr�	WhereEnum_
r�r�c@r$)z.TestFlag.test_init_subclass.<locals>.NeverEnumrNr�rrrr�	NeverEnumb
r'r�)rr�r�rGr�)rLrqr�r�r�r�r�r)r�rLr�test_init_subclassF
s"zTestFlag.test_init_subclassN)&rrrr&rrUr]rrvr�r�r�r�r�r�r�r�r�r�r�r�r�r7r8r9rrr�r�r�r�r�r�rr�reap_threadsr�r�rrrrrQ�sN
�
�
+
%rQc@seZdZdZGdd�de�ZGdd�de�ZGdd�de�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Ze�ed&kd'�d(d)��Ze�ed&kd*�d+d,��Zd-d.�Zd/d0�Zd1d2�Zej d3d4��Z!d5S)6�TestIntFlagzTests of the IntFlags.c@r)zTestIntFlag.PermrrrpN)rrrrTrSrRrrrrrUn
r rUc@r|)zTestIntFlag.OpenrrrrrVNrWrrrrr]s
r�r]c@r^)zTestIntFlag.ColorrrrrpNr_rrrrrz
rarcCs�|j}|�|jtu�|j}|D]}|�t||��|�||j�q|�t|j|j	B|��|�|j|j	Bd�|D]}|�t||��|�||j�q:|�t|j
|jB|��|�|j
|jBd�dS)Nr)rUrKrfr�r]r�r�r�rSrTrYrZ)rLrUr]r�rrr�	test_type�
szTestIntFlag.test_typecCsn|j}|�t|j�d�|�t|j�d�|�t|j�d�|�t|j|jB�d�|�t|j|jB|jB�d�|�t|jdB�d�|�t|d��d	�|�t|d��d
�|�t|j�d�|�t|j�d�|�t|j�d�|�t|j|jB�d�|�t|j|jB|jB�d
�|�t|jdB�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|d��d�|�t|j�d�|�t|j�d�|�t|j	�d�|�t|j|j
B�d�|�t|j|j
B�d�|�t|d��d�dS)NrcrdrerfrgryzPerm.8|RrrhzPerm.8rirjzPerm.-8rk���rlrmrnrorprpzOpen.4rqrrz
Open.AC|RW|WOrs���rtrurrrrv�
�< zTestIntFlag.test_strcCsn|j}|�t|j�d�|�t|j�d�|�t|j�d�|�t|j|jB�d�|�t|j|jB|jB�d�|�t|jdB�d�|�t|d��d	�|�t|d��d
�|�t|j�d�|�t|j�d�|�t|j�d
�|�t|j|jB�d�|�t|j|jB|jB�d�|�t|jdB�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|d��d�|�t|j�d�|�t|j�d�|�t|j	�d�|�t|j|j
B�d�|�t|j|j
B�d �|�t|d!��d"�dS)#Nrxryrzr{r|ryz<Perm.8|R: 12>rr}z<Perm.8: 8>z<Perm.W|X: -5>z<Perm.R|X: -3>z<Perm.R|W: -2>z<Perm.X: -7>z
<Perm.-8: -8>z<Perm.W|X: -13>rkz<Perm.R|W|X: -1>r�z<Perm.R|W|X: -9>r~rr�r�r�rpz<Open.4: 4>z<Open.CE|AC|RW|WO: -1>z<Open.CE|RW: -2>z
<Open.CE: -4>z<Open.AC|RW|WO: -524289>z<Open.RW: -524290>r�z<Open.CE|AC|RW|WO: -5>r�rurrrr��
r�zTestIntFlag.test_reprcCr�)Nr��4�5r�r�rrrr��
r�zTestIntFlag.test_formatcCsL|j}|D]s}|D]%}|�||B|j|jB�|�||Bj|j|jB�|�t||B�|�q	td�D]D}|�||B|j|B�|�||Bj|j|B�|�t||B�|�|�||B||jB�|�||Bj||jB�|�t||B�|�q3q|D]}|�||B|�|�|dB|�|�d|B|�q{|j}|�|j|jB|j�dS�Nryr�	rUr�r�r�r�r7r]rXr\r�rrrr��
s(�zTestIntFlag.test_orc
	Cs�|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}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�dS)Nrzi is %r, j is %rryrx)
rUrRrSrTr�r�r�r�r�r7r]rXr\r�rrrr��
s2"$ �zTestIntFlag.test_andcCsR|j}|D]s}|D]%}|�||A|j|jA�|�||Aj|j|jA�|�t||A�|�q	td�D]D}|�||A|j|A�|�||Aj|j|A�|�t||A�|�|�||A||jA�|�||Aj||jA�|�t||A�|�q3q|D]}|�|dA|�|�d|A|�q{|j}|�|j|jA|j�|�|j|jA|j�dSr�r�r�rrrr�s(�zTestIntFlag.test_xorc	Cs|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}|D]&}|�||j�|�|j|j�|�t|�|�|�||�q-|D]
}|�||�qV|j	}|�|j
|j
@|j�|�|j
|jB|j
@|j�dSr�)
rUrRrSrTr�r�r�r�r�r]rYrXr\r�rrrr�s "zTestIntFlag.test_invertcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]7\}}d|>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�q.dSr��rr�r�r�rRrSrTr�r�r�r�r�r�r�r�r�rrrr�.s
�z,TestIntFlag.test_programatic_function_stringcCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]7\}}d|>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�q0dSr�r�r�rrrr�>��z7TestIntFlag.test_programatic_function_string_with_startcCs�tdgd��}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]7\}}d|>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�q0dSr�r�r�rrrr�Nr�z1TestIntFlag.test_programatic_function_string_listcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D];\}}dd|d>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�q.dSr�r�r�rrrr�^s
�z.TestIntFlag.test_programatic_function_iterablecCs�tdtd��}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td�	��D];\}}dd|d>}||�}|�|j
|�|�t|j
�t�|�||�|�|j
|�|�||�|�t|�|�q0dSr�)rrr�r�r�rRrSrTr�r�r�r�r�r�r�r�r�rrrr�ns�z/TestIntFlag.test_programatic_function_from_dictcCsxt�dg�}t|�}|�t|�t|��|�t|�d|�t�dg�}t|�}|�t|�t|��|�t|�d|�dS)NrUr�Thing�rHrr�r�r�r�rLrUr�rrrr�)test_programatic_function_from_empty_listsz5TestIntFlag.test_programatic_function_from_empty_listcCspt�dd�}t|�}|�t|�t|��|�t|�d|�t�dd�}|�t|�t|��|�t|�d|�dS)NrUrrrrrrrr�*test_programatic_function_from_empty_tuple�sz6TestIntFlag.test_programatic_function_from_empty_tupler�r�c	Cs�|j}|j}|�|j|v�|�|j|v�|�|j|v�|�|j|v�|�t��!|�t	��d|vWd�n1s@wYWd�n1sOwY|�t��!|�t	��d|vWd�n1snwYWd�n1s}wY|�t��!|�t	��d|vWd�n1s�wYWd�n1s�wY|�t��*|�t	��d|vWd�n1s�wYWd�dSWd�dS1s�wYdS�NrWrZr)
r]rrKrWrZrGr�r�r�rr�rrrr�s>
���
���
���
��"�zTestIntFlag.test_contains_errcCs�|j}|j}|�|j|v�|�|j|v�|�|j|v�|�|j|v�|�d|v�|�d|v�|�d|v�|�d|v�dSr)r]rrKrWrZrGr�rrrr�szTestIntFlag.test_contains_tfc	Cs|j}|\}}}||B}||B}||B}||B|B}|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�||v�|�t��|�d|v�Wd�dS1s�wYdS)Nrl)rUrKrGr�r�r�rrrr��s*
"�z TestIntFlag.test_member_containscCr�rer�r�rrrr��r�zTestIntFlag.test_boolcCr�)Nc@r)z1TestIntFlag.test_multiple_mixin.<locals>.AllMixincSr�r(r�r�rrrr��r�z5TestIntFlag.test_multiple_mixin.<locals>.AllMixin.ALLNr�rrrrr��r�r�c@r�)z1TestIntFlag.test_multiple_mixin.<locals>.StrMixincSr
rerr�rrrr-�rmz9TestIntFlag.test_multiple_mixin.<locals>.StrMixin.__str__Nr]rrrrr
�r�r
c@r��z.TestIntFlag.test_multiple_mixin.<locals>.ColorNrrrrrr�r�rrrrprxrc@r�rrrrrrr�r�rc@r�rrrrrrr�r�)rr�rVr�rWrXr�r�r�rrrr�r�zTestIntFlag.test_multiple_mixincr�)Nc@r�)z3TestIntFlag.test_unique_composite.<locals>.TestFlagcSr�rerr�rrrr�rmz:TestIntFlag.test_unique_composite.<locals>.TestFlag.__eq__cSr�rer�r�rrrr�rmz<TestIntFlag.test_unique_composite.<locals>.TestFlag.__hash__Nr�rrrrrQr�rQFcr�r�r�r�r�rrr�r�z5TestIntFlag.test_unique_composite.<locals>.cycle_enumcr�r�r�r�r�rrrr�z5TestIntFlag.test_unique_composite.<locals>.<listcomp>ryr�r�r�)rr�r7rr�rGr�r�r�rr�rr�r�z!TestIntFlag.test_unique_compositeN)"rrrr&rrUr]rr�rvr�r�r�r�r�r�r�r�r�r�r�rrr7r8r9rrr�r�rrr�r�rrrrr�k
sF!!	�
�
+r�c@r>)�TestEmptyAndNonLatinStringscCs:|�t��tdd�}Wd�dS1swYdS)N�	empty_abc)r�r�r�r�)rLrrrr�test_empty_string-s"�z-TestEmptyAndNonLatinStrings.test_empty_stringcC�&tdd�}t|d�}|�|jd�dS)N�	greek_abc)�αr�r�rr�rr�r�r�)rLrr�rrr�test_non_latin_character_string1�

z;TestEmptyAndNonLatinStrings.test_non_latin_character_stringcCr
)N�
hebrew_123)�א�2�3rrr
)rLrr�rrr�test_non_latin_number_string6rz8TestEmptyAndNonLatinStrings.test_non_latin_number_stringN)rrrr	rrrrrrr+src@r>)�
TestUniquecC�,tGdd�dt��}tGdd�dt��}dS)Nc@r)z+TestUnique.test_unique_clean.<locals>.Cleanrrg@N�rrrr�r�rrrrr�Clean?r%rc@r)z-TestUnique.test_unique_clean.<locals>.CleanerrrrN)rrr�single�double�triplerrrr�CleanerDr%r�rrr)rLrrrrr�test_unique_clean>�zTestUnique.test_unique_cleancCs�|�td��tGdd�dt��}Wd�n1swY|�td��tGdd�dt��}Wd�dS1s<wYdS)Nz	tres.*onec@r;)z+TestUnique.test_unique_dirty.<locals>.DirtyrrNrrrrr�DirtyLr%r zdouble.*single.*turkey.*triplec@seZdZdZdZdZdZdS)z-TestUnique.test_unique_dirty.<locals>.DirtierrrN)rrrrrrZturkeyrrrr�DirtierU�
r!)r�r�rrr)rLr r!rrr�test_unique_dirtyJs��"�zTestUnique.test_unique_dirtycCr)Nc@r)z/TestUnique.test_unique_with_name.<locals>.SillyrrrN)rrrr�r�r�rrrr�Silly]r%r$c@ro)z1TestUnique.test_unique_with_name.<locals>.SillierrrrrpN)rrrrr�rr�rrrr�Sillierbr"r%r)rLr$r%rrr�test_unique_with_name\rz TestUnique.test_unique_with_nameN)rrrrr#r&rrrrr<sra�Help on class Color in module %s:

class Color(enum.Enum)
 |  Color(value, names=None, *, module=None, qualname=None, type=None, start=1)
 |  
 |  An enumeration.
 |  
 |  Method resolution order:
 |      Color
 |      enum.Enum
 |      builtins.object
 |  
 |  Data and other attributes defined here:
 |  
 |  blue = <Color.blue: 3>
 |  
 |  green = <Color.green: 2>
 |  
 |  red = <Color.red: 1>
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from enum.Enum:
 |  
 |  name
 |      The name of the Enum member.
 |  
 |  value
 |      The value of the Enum member.
 |  
 |  ----------------------------------------------------------------------
 |  Readonly properties inherited from enum.EnumMeta:
 |  
 |  __members__
 |      Returns a mapping of member name->value.
 |      
 |      This mapping lists all enum members, including aliases. Note that this
 |      is a read-only view of the internal mapping.a�Help on class Color in module %s:

class Color(enum.Enum)
 |  Color(value, names=None, *, module=None, qualname=None, type=None, start=1)
 |  
 |  Method resolution order:
 |      Color
 |      enum.Enum
 |      builtins.object
 |  
 |  Data and other attributes defined here:
 |  
 |  blue = <Color.blue: 3>
 |  
 |  green = <Color.green: 2>
 |  
 |  red = <Color.red: 1>
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from enum.Enum:
 |  
 |  name
 |  
 |  value
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from enum.EnumMeta:
 |  
 |  __members__c@s8eZdZdZGdd�de�Zdd�Zdd�Zdd	�ZdS)
�
TestStdLibNc@r)zTestStdLib.ColorrrrNrrrrrr�r rcCsTtjdur
tt}ntt}t�}tj|d�}||j�|�	��
�}|�||�dS)N)�output)r%r&�!expected_help_output_without_docsr�expected_help_output_with_docsr
�pydocZHelperr�getvalue�stripr�)rLZ
expected_textr(�helper�resultrrr�
test_pydoc�s


zTestStdLib.test_pydoccCs�tdtfdd|jjfdtfd|jjfd|jjfdtjdfd|jj	fd	tjd	ff	�}tt
�|j��}|�|�
�|�
��d
}|�
�D] }||||krct�tdd|||||dfd
d�d}qC|rm|�d�dSdS)Nr�)r&�An enumeration.r�rrrr�rr�Fz.
%s
     key: %s
  result: %s
expected: %s
%s
�K===========================================================================r���sepT�/result does not equal expected, see print above)�dictrrr�rrrrr�r�inspectZ
getmembersr��keysr��fail)rLr�r/r�rrrr�test_inspect_getmembers�s6



�����z"TestStdLib.test_inspect_getmemberscCs4ddlm}|ddttd�|dd|jdd�|dd	ttjd�|d
d|jtd�|dd|j|jjd�|dd|j|jjd�|d
d|j|jj	d�|ddt
t
jdd�|ddt
t
jdd�g	}|jdd�d�t
t�|j��}|jdd�d�d}t||�D]\}}||kr�tdd||dfdd�d}qx|r�|�d�dSdS)Nr)�	Attributer��data)r��kindZdefining_classrYr&r1r�rrrrrr�r�cSrKrer��r�rrr�<lambda>��z>TestStdLib.test_inspect_classify_class_attrs.<locals>.<lambda>)�keycSrKrer�r>rrrr?�r@Fz
%s
%s
%s
%s
r2r�r3Tr5)r7r;rYrrr�rrrrrr��sortr�Zclassify_class_attrsr�r�r9)rLr;r�r/r�r�rrrr�!test_inspect_classify_class_attrs�sR����
�
�
�
�
����z,TestStdLib.test_inspect_classify_class_attrs)	rrrZmaxDiffrrr0r:rDrrrrr'�sr'c@r�)�MiscTestCasecCst|t�dSre)rrHr�rrr�test__all__
r�zMiscTestCase.test__all__N)rrrrFrrrrrE
r�rEr}c@sLeZdZdd�Zdd�Ze�edkd�dd��Ze�ed	kd
�dd��Z	d
S)�TestIntEnumConvertcCs4tjjddtdkdd�d�}|�|d�jd�dS)	N�UnittestConvert�ztest.test_enum�__main__rJcS�
|�d�S�NZ
CONVERT_TEST_��
startswith�rirrrr?
�
zGTestIntEnumConvert.test_convert_value_lookup_priority.<locals>.<lambda>��filterr}�CONVERT_TEST_NAME_A)rHr�	_convert_rr�r��rLr�rrr�"test_convert_value_lookup_priority
s
�z5TestIntEnumConvert.test_convert_value_lookup_prioritycCs�tjjddtdkdd�d�}|�|j|j�|�|jd�|�|jd�|�|j	d�|�|j
d�|jdd	�t|�D�gd
d�dS)NrHrIrJcSrKrLrMrOrrrr?
rPz1TestIntEnumConvert.test_convert.<locals>.<lambda>rQr}cSs g|]}|dd�dvr|�qS)rr)ZCOrZr)rr�rrrr'
s�z3TestIntEnumConvert.test_convert.<locals>.<listcomp>z&Names other than CONVERT_TEST_* found.)�msg)rHrrTrr��CONVERT_TEST_NAME_FrS�CONVERT_TEST_NAME_B�CONVERT_TEST_NAME_C�CONVERT_TEST_NAME_D�CONVERT_TEST_NAME_Er�rUrrr�test_convert
s
��
�zTestIntEnumConvert.test_convert)rryz_convert was deprecated in 3.8cC�N|�t��tjjddtdkdd�d�Wd�dS1s wYdS)NrHrIrJcSrKrLrMrOrrrr?2
rPz6TestIntEnumConvert.test_convert_warn.<locals>.<lambda>rQ)r�rrHr�_convertrr�rrr�test_convert_warn+
�
�"�z$TestIntEnumConvert.test_convert_warnr1z_convert was removed in 3.9cCr^)NrHrIrJcSrKrLrMrOrrrr?;
rPz7TestIntEnumConvert.test_convert_raise.<locals>.<lambda>rQ)r�r�rHrr_rr�rrr�test_convert_raise4
raz%TestIntEnumConvert.test_convert_raiseN)
rrrrVr]r7r:r9r`rbrrrrrG
s

�

�rGc@s8eZdZdZdZdZdZdZdd�Zdd	�Z	d
d�Z
dS)
r?)Z_bad_Z_good_Z	_what_ho_)Z__mal__Z__bien__Z__que_que__)Z_MyEnum__privateZ_MyEnum__still_private)Z_MyEnum__private_Z_MyEnum__also_private_)ZokayZ
_semi_privateZ_weird__Z	_MyEnum__cCsZ|j|jD]
}|�t�|�d|�q|j|j|jD]
}|�t�|�d|�qdS)Nz%r is a not sunder name?z%r is a sunder name?)	�sunder_names�private_and_sunder_namesrKrHr^�dunder_names�
private_names�random_namesrG�rLr�rrr�test_sunderE
s
�zTestHelpers.test_sundercCsZ|jD]
}|�t�|�d|�q|j|j|j|jD]
}|�t�|�d|�qdS)Nz%r is a not dunder name?z%r is a dunder name?)	rerKrHrbrcrfrdrgrGrhrrr�test_dunderK
s

�zTestHelpers.test_dundercCsV|j|jD]}|�t�d|�d�q|j|j|jD]}|�t�d|�d�qdS)Nrqz%r is a not private name?z%r is a private name?)	rfrdrKrH�_is_privatercrergrGrhrrr�test_is_privateQ
s
�zTestHelpers.test_is_privateN)rrrrcrerfrdrgrirjrlrrrrr?=
srJre)ErHr7r+�sysr7r��collectionsrrrrrrrr	�ior
�picklerrr
rZtest.supportrrrr�r�version_infor9rr�r�r�r!r�r"r#r�r%r)rr-r0r1r4r;r=ZTestCaser?rdrnr;rQr�rrr*r)r'rEr[rZrYrSr\rXrG�mainrrrr�<module>s�$�����������������
r>BC/'P.
�