Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_enum.cpython-38.opt-2.pyc
U

>��g���
@s�ddlZddlZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZmZm
Z
mZddlmZddlmZmZmZmZddlmZddlmZzGdd	�d	e�ZWn&ek
r�ZzeZW5dZ[XYnXzGd
d�dee�ZWn(ek
�rZzeZW5dZ[XYnXzGdd
�d
ee�Z Wn(ek
�rVZzeZ W5dZ[XYnXzGdd�de�Z!Wn(ek
�r�ZzeZ!W5dZ[XYnXz&Gdd�de"e�Z#Gdd�de#�Z$Wn(ek
�r�ZzeZ$W5dZ[XYnXzedde%d�Z&Wn(ek
�r ZzeZ&W5dZ[XYnXzedd�Z'Wn(ek
�rXZzeZ'W5dZ[XYnXzedddd�Z(Wn(ek
�r�ZzeZ(W5dZ[XYnXzGdd�de�Z)Wnek
�r�YnXd=dd �Z*d!d"�Z+Gd#d$�d$ej,�Z-Gd%d&�d&�Z.Gd'd(�d(ej,�Z/Gd)d*�d*ej,�Z0Gd+d,�d,ej,�Z1Gd-d.�d.ej,�Z2Gd/d0�d0ej,�Z3Gd1d2�d2ej,�Z4d3Z5d4Z6Gd5d6�d6ej,�Z7Gd7d8�d8ej,�Z8d9Z9d9Z:d9Z;d9Z<d9Z=d9Z>Gd:d;�d;ej,�Z?e%d<k�r�e�@�dS)>�N)�OrderedDict)�Enum�IntEnum�EnumMeta�Flag�IntFlag�unique�auto)�StringIO)�dumps�loads�
PicklingError�HIGHEST_PROTOCOL)�support)�	timedeltac@seZdZdZdZdZdS)�Stooges���N��__name__�
__module__�__qualname__ZLARRY�CURLY�MOE�rr�-/opt/cppython/lib/python3.8/test/test_enum.pyrsrc@seZdZdZdZdZdS)�
IntStoogesrrrNrrrrrrsrc@seZdZdZdZdZdS)�FloatStoogesg=
ףp=�?g�(\��@g�R$_	$	@Nrrrrrr!src@seZdZdZdZdZdS)�FlagStoogesrrrNrrrrrr)src@seZdZdS)�StrEnumN�rrrrrrrr 2sr c@seZdZdZdZdS)�Name�Guido van RossumzBarry WarsawN)rrr�BDFLZFLUFLrrrrr"4sr"�Questionzwho what when where why��module�Answerzhim this then there because�Theoryzrule law supposition�spanish_inquisition)�qualnamec@seZdZdZdZdZdS)�FruitrrrN)rrrZTOMATOZBANANAZCHERRYrrrrr,Ksr,cCs8|dkr|}ttd�D]}|tt||d��|�qdS�Nr)�protocol)�rangerrr)�	assertion�source�targetr.rrr�test_pickle_dump_loadRsr3c
Cs6ttd�D]$}||��t||d�W5QRXqdSr-)r/rr)r0�	exception�objr.rrr�test_pickle_exceptionXs
r6c@s$eZdZdd�Zdd�Zdd�ZdS)�TestHelperscCsNGdd�d�}dD]6}|�}|�t�|��t||d�|�t�|��qdS)Nc@seZdZdS)z+TestHelpers.test_is_descriptor.<locals>.fooNr!rrrr�fooasr8)�__get__�__set__�
__delete__r)�assertFalse�enum�_is_descriptor�setattr�
assertTrue)�selfr8�attrr5rrr�test_is_descriptor`szTestHelpers.test_is_descriptorcCs8dD]}|�t�|��qdD]}|�t�|��qdS)N)�_a_Z_aa_)
�a�a_�_a�__a�a__�__a__�_a__�__a_�_�__�___�____�_____)r@r=�
_is_sunderr<�rA�srrr�test_is_sunderiszTestHelpers.test_is_sundercCs8dD]}|�t�|��qdD]}|�t�|��qdS)N)rJZ__aa__)
rErFrGrHrIrDrKrLrMrNrOrPrQ)r@r=�
_is_dunderr<rSrrr�test_is_dunderqszTestHelpers.test_is_dunderN)rrrrCrUrWrrrrr7]s	r7c@seZdZddd�Zdd�ZdS)�
classpropertyNcCs2||_||_||_|dkr(|dk	r(|j}||_dS�N)�fget�fset�fdel�__doc__)rArZr[r\�docrrr�__init__|szclassproperty.__init__cCs
|�|�SrY)rZ)rA�instance�
ownerclassrrrr9�szclassproperty.__get__)NNNN)rrrr_r9rrrrrXzs
rXc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dEdF�Z%dGdH�Z&dIdJ�Z'dKdL�Z(dMdN�Z)dOdP�Z*dQdR�Z+dSdT�Z,dUdV�Z-dWdX�Z.dYdZ�Z/d[d\�Z0d]d^�Z1d_d`�Z2dadb�Z3dcdd�Z4dedf�Z5dgdh�Z6didj�Z7dkdl�Z8dmdn�Z9dodp�Z:dqdr�Z;dsdt�Z<dudv�Z=dwdx�Z>dydz�Z?d{d|�Z@d}d~�ZAdd��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�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�S)��TestEnumcCs�Gdd�dt�}||_Gdd�dtt�}||_Gdd�dt�}||_Gdd�dtt�}||_d	d
lm	}Gdd�d|t�}||_
dS)
Nc@seZdZdZdZdZdZdS)zTestEnum.setUp.<locals>.Seasonrrr�N)rrr�SPRING�SUMMER�AUTUMN�WINTERrrrr�Season�srhc@seZdZdZdZdeZdS)z!TestEnum.setUp.<locals>.KonstantsgB�
�@�J�M�!	@rN)rrr�EZPI�TAUrrrr�	Konstants�srlc@s eZdZdZdZdZdZdZdS)zTestEnum.setUp.<locals>.Grades�rcrrrN�rrr�A�B�C�D�Frrrr�Grades�s
rtc@seZdZdZdZdZdZdS)z#TestEnum.setUp.<locals>.DirectionalZeastZwestZnorthZsouthN)rrrZEAST�WESTZNORTHZSOUTHrrrr�Directional�srvr)�datec@seZdZdZdZdS)zTestEnum.setUp.<locals>.Holiday)��rr)rxr�N)rrrZNEW_YEAR�
IDES_OF_MARCHrrrr�Holiday�sr{)rrh�floatrlrrt�strrv�datetimerwr{)rArhrlrtrvrwr{rrr�setUp�szTestEnum.setUpcCs2|j}|�tt|��tddddddddg��dS)	N�	__class__r]�__members__rrdrerfrg)rh�assertEqual�set�dir�rArhrrr�test_dir_on_class�s

��zTestEnum.test_dir_on_classc	Cs.|j}|�tt|j��tdddddg��dS)Nr�r]r�name�value)rhr�r�r�rgr�rrr�test_dir_on_item�s
�zTestEnum.test_dir_on_itemc
Cs^Gdd�dt�}|�tt|��tddddddg��|�tt|j��tdddd	d
dg��dS)Nc@seZdZdZdZdd�ZdS)z3TestEnum.test_dir_with_added_behavior.<locals>.Test�that�thosecSs
d|jS)NzWowser! I'm %s!�r��rArrr�wowser�sz:TestEnum.test_dir_with_added_behavior.<locals>.Test.wowserN)rrr�this�theser�rrrr�Test�sr�r�r]r�rr�r�r�r�r�)rr�r�r�r�)rAr�rrr�test_dir_with_added_behavior�s
��z%TestEnum.test_dir_with_added_behaviorc
CsJGdd�dt�}Gdd�d|�}|�tt|j��tddddd	d
g��dS)Nc@seZdZdd�ZdS)zBTestEnum.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnumcSsdS)Nzdid you see me?rr�rrr�	invisible�szLTestEnum.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnum.invisibleN)rrrr�rrrr�	SuperEnum�sr�c@seZdZdZdS)z@TestEnum.test_dir_on_sub_with_behavior_on_super.<locals>.SubEnumrmN�rrr�samplerrrr�SubEnum�sr�r�r]rr�r�r�)rr�r�r�r��rAr�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�cSst�||�}||_||_|SrY)�int�__new__�_value_�description)�clsr�r�r5rrrr��szbTestEnum.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SuperEnum.__new__N)r��rrrr�rrrrr��sr�c@seZdZdZdS)zXTestEnum.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SubEnumrmNr�rrrrr��sr�r�)rr@r�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�dSrY)rh�assertIsrgr�rrr�test_enum_in_enum_out�szTestEnum.test_enum_in_enum_outcCs|j}|�|jjd�dS�Nr)rhr�rdr�r�rrr�test_enum_value�szTestEnum.test_enum_valuecCs|�tjjd�dS)Nr)r�rrr�r�rrr�test_intenum_value�szTestEnum.test_intenum_valuecCs|j}t|�}|�t|�t|��|�t|�d|�|�|j|j|j|jg|�td�	�d�D]�\}}||�}|�|t
||��|�|j|�|�||�|�|j
|�|�||�|�t|�|�|�||�|�t|�d|�|�t|�d�||��q^dS)NrczSPRING SUMMER AUTUMN WINTERrzSeason.z<Season.{0}: {1}>)rh�listr��lenrdrerfrg�	enumerate�split�getattrr��assertNotEqualr��assertInr��type�assertIsInstancer}�repr�format)rArh�lst�iZseason�errr�	test_enum�s,�
�zTestEnum.test_enumc	Csf|j}|�|jjd�|�|jjd�|�t��d|j_W5QRX|�t��d|j_W5QRXdS)NrdrZinviernor)rhr�rdr�r��assertRaises�AttributeErrorr�rrr�test_value_nameszTestEnum.test_value_namec	Cs&|j}|�t��d|_W5QRXdS)Nzreally cold)rhr�r�rgr�rrr�test_changing_memberszTestEnum.test_changing_memberc	Cs�Gdd�dt�}|�t|d��|`|�t|d��|�t��
|`W5QRX|�t��
|`W5QRX|�t��|j`	W5QRXdS)Nc@s$eZdZdZdZdZdZdd�ZdS)z0TestEnum.test_attribute_deletion.<locals>.SeasonrrrrccSsdSrYr)r�rrr�spamsz5TestEnum.test_attribute_deletion.<locals>.Season.spamN)rrrrdrerfrgr�rrrrrhs
rhr�)
rr@�hasattrr�r<r�r�rdZDRYr�r�rrr�test_attribute_deletions	z TestEnum.test_attribute_deletioncCs"Gdd�dt�}|�t|��dS)Nc@seZdZdS)z*TestEnum.test_bool_of_class.<locals>.EmptyNr!rrrr�Empty+sr��rr@�bool)rAr�rrr�test_bool_of_class*szTestEnum.test_bool_of_classcCs,Gdd�dt�}|D]}|�t|��qdS)Nc@seZdZdZdZdZdS)z+TestEnum.test_bool_of_member.<locals>.CountrrrN)rrrZzero�one�tworrrr�Count0sr�r�)rAr��memberrrr�test_bool_of_member/szTestEnum.test_bool_of_memberc	Cs�|�t��Gdd�dt�}W5QRX|�t��Gdd�dt�}W5QRX|�t��Gdd�dt�}W5QRX|�t��Gdd�dt�}W5QRX|�t��Gdd�dt�}W5QRXdS)Nc@seZdZdZdS��*TestEnum.test_invalid_names.<locals>.Wrong�	N)rrr�mrorrrr�Wrong9sr�c@seZdZdZdS)r��N)rrr�_create_rrrrr�<sc@seZdZdZdSr�)rrr�_get_mixins_rrrrr�?sc@seZdZdZdS)r�rN)rrr�
_find_new_rrrrr�Bsc@seZdZdZdSr�)rrrZ
_any_name_rrrrr�Es�r��
ValueErrorr�rAr�rrr�test_invalid_names7szTestEnum.test_invalid_namescCs~Gdd�dt�}|�|j�|�|j�Gdd�dt�}|�|j�|�|j�Gdd�dtt�}|�|j�|�|j�dS)Nc@seZdZdZdZdS)z!TestEnum.test_bool.<locals>.LogicTFN�rrr�true�falserrrr�LogicJsr�c@seZdZdZdZdd�ZdS)z%TestEnum.test_bool.<locals>.RealLogicTFcSs
t|j�SrY)r�r�r�rrr�__bool__Ssz.TestEnum.test_bool.<locals>.RealLogic.__bool__N)rrrr�r�r�rrrr�	RealLogicPsr�c@seZdZdZdZdS)z$TestEnum.test_bool.<locals>.IntLogicrrNr�rrrr�IntLogicXsr�)rr@r�r�r<r�)rAr�r�r�rrr�	test_boolHszTestEnum.test_boolc	Cs�|j}|�|j|�|�t��d|kW5QRX|�t��d|kW5QRX|d�}|�||�Gdd�dt�}|�|j|�dS)Nrrfc@seZdZdZdZdS)z)TestEnum.test_contains.<locals>.OtherEnumrrN�rrrr�r�rrrr�	OtherEnumisr�)rhr�rfr��	TypeErrorrZassertNotInr�)rArh�valr�rrr�
test_contains^szTestEnum.test_containsc	Cs�|j}|�t��|j|jkW5QRX|�t��|jdkW5QRX|�|jd�Gdd�dt�}|�|j|j�|�t��|j|jkW5QRXdS)Nrcrc@seZdZdZdZdZdS)z'TestEnum.test_comparisons.<locals>.PartrrrN)rrrrd�CLIPZBARRELrrrr�Partvsr�)rhr�r�rdrgr�rr�)rArhr�rrr�test_comparisonsms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>.SeasonrrrrcN)	rrrrdrerf�FALLrg�ANOTHER_SPRINGrrrrrh�s
rhrrrfcSsg|]\}}|j|kr|�qSrr���.0�k�vrrr�
<listcomp>�s
z1TestEnum.test_enum_duplicates.<locals>.<listcomp>r�r�)
rr�r�rdrerfrgr�r�r�r�r��items)rArhr�rrr�test_enum_duplicatess&���zTestEnum.test_enum_duplicatesc	Csv|�t��Gdd�dt�}W5QRX|�t��Gdd�dt�}W5QRX|�t��Gdd�dt�}W5QRXdS)Nc@seZdZdZdZdZdZdS)�+TestEnum.test_duplicate_name.<locals>.ColorrrrrcN�rrr�red�green�bluerrrr�Color�sr�c@s eZdZdZdZdZdd�ZdS)r�rrrcSsdS)Nr�rr�rrrr��s�/TestEnum.test_duplicate_name.<locals>.Color.redNr�rrrrr��sc@s$eZdZedd��ZdZdZdZdS)r�cSsdS)NZredderrr�rrrr��sr�rrrN)rrr�propertyr�r�r�rrrrr��s

�r�r�r�rAr�rrr�test_duplicate_name�szTestEnum.test_duplicate_namecCs^Gdd�dt�}|�t|�|j|jg�|�t|j�|�|�|jjd�|�|jjd�dS)Nc@seZdZdZdZdS)z/TestEnum.test_enum_with_value_name.<locals>.HuhrrN)rrrr�r�rrrr�Huh�sr�r�r)rr�r�r�r�r�r�)rAr�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})rhr�r�rdr}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>.EnumWithStrOverridescSsdS�N�Str!rr�rrr�__str__�szETestEnum.test_str_override_enum.<locals>.EnumWithStrOverrides.__str__N)rrrr	r�r�rrrrr�EnumWithStrOverrides�srrr��rr�r}r�r�)rArrrr�test_str_override_enum�szTestEnum.test_str_override_enumcCs:Gdd�dt�}|�t|j�d�|�d�|j�d�dS)Nc@seZdZdZdZdd�ZdS)zBTestEnum.test_format_override_enum.<locals>.EnumWithFormatOverride��?�@cSsdS)N�Format!!r�rA�specrrr�
__format__�szMTestEnum.test_format_override_enum.<locals>.EnumWithFormatOverride.__format__N�rrrr�r�rrrrr�EnumWithFormatOverride�srzEnumWithFormatOverride.oner�r	r)rArrrr�test_format_override_enum�sz"TestEnum.test_format_override_enumcCs:Gdd�dt�}|�t|j�d�|�d�|j�d�dS)Nc@s(eZdZe�Ze�Zdd�Zdd�ZdS)zNTestEnum.test_str_and_format_override_enum.<locals>.EnumWithStrFormatOverridescSsdSrrr�rrrr�szVTestEnum.test_str_and_format_override_enum.<locals>.EnumWithStrFormatOverrides.__str__cSsdS�N�Format!rr
rrrr�szYTestEnum.test_str_and_format_override_enum.<locals>.EnumWithStrFormatOverrides.__format__N)rrrr	r�r�rrrrrr�EnumWithStrFormatOverrides�srrr�rr)rArrrr�!test_str_and_format_override_enum�sz*TestEnum.test_str_and_format_override_enumcCs<Gdd�dtt�}|�t|j�d�|�d�|j�d�dS)Nc@seZdZdZdZdd�ZdS)zBTestEnum.test_str_override_mixin.<locals>.MixinEnumWithStrOverriderrcSsdS)N�Overridden!rr�rrrr�szJTestEnum.test_str_override_mixin.<locals>.MixinEnumWithStrOverride.__str__N)rrrr�r�rrrrr�MixinEnumWithStrOverride�srrr��r|rr�r}r�r�)rArrrr�test_str_override_mixin�sz TestEnum.test_str_override_mixincCs<Gdd�dtt�}|�t|j�d�|�d�|j�d�dS)Nc@s$eZdZdZdZdd�Zdd�ZdS)zPTestEnum.test_str_and_format_override_mixin.<locals>.MixinWithStrFormatOverridesrrcSsdSrrr�rrrr�szXTestEnum.test_str_and_format_override_mixin.<locals>.MixinWithStrFormatOverrides.__str__cSsdSrrr
rrrr�sz[TestEnum.test_str_and_format_override_mixin.<locals>.MixinWithStrFormatOverrides.__format__N)rrrr�r�rrrrrr�MixinWithStrFormatOverrides�srrr�rr)rArrrr�"test_str_and_format_override_mixin�sz+TestEnum.test_str_and_format_override_mixincCs<Gdd�dtt�}|�t|j�d�|�d�|j�d�dS)Nc@seZdZdZdZdd�ZdS)z6TestEnum.test_format_override_mixin.<locals>.TestFloatrrcSsdS)N�TestFloat success!rr
rrrrszATestEnum.test_format_override_mixin.<locals>.TestFloat.__format__Nr
rrrr�	TestFloat�srz
TestFloat.oner�rr)rArrrr�test_format_override_mixin�sz#TestEnum.test_format_override_mixincCs|�|�|�|�|j��dSrY)r�r�r�)rArr�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{rrz)rAr{rrr�test_format_enum_date	szTestEnum.test_format_enum_datecCs�|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})rlrrk)rArlrrr�test_format_enum_floatszTestEnum.test_format_enum_floatcCs�|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{:+}z{:08X}z{:b})rtrrq)rArtrrr�test_format_enum_int szTestEnum.test_format_enum_intcCs^|j}|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�dSr�)rvrru)rArvrrr�test_format_enum_str,szTestEnum.test_format_enum_strcCs&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__8sz:TestEnum.test_object_str_override.<locals>.Colors.__repr__N)	rrr�RED�GREEN�BLUEr#�objectrrrrr�Colors6s
r(ztest.RED)rr�r}r$)rAr(rrr�test_object_str_override5sz!TestEnum.test_object_str_overridecCs�Gdd�dt�}Gdd�dt�}Gdd�d|t|�}|�|jtk�|�t|j�d�|�t|jd�d�Gd	d
�d
||�}|�t|j�d�|�t|jd�d�dS)Nc@seZdZdd�ZdS)z2TestEnum.test_enum_str_override.<locals>.MyStrEnumcSsdS)N�MyStrrr�rrrr?sz:TestEnum.test_enum_str_override.<locals>.MyStrEnum.__str__N�rrrrrrrr�	MyStrEnum>sr,c@seZdZdd�ZdS)z5TestEnum.test_enum_str_override.<locals>.MyMethodEnumcSs
d|jS)NzHello!  My name is %sr�r�rrr�helloBsz;TestEnum.test_enum_str_override.<locals>.MyMethodEnum.helloN�rrrr-rrrr�MyMethodEnumAsr/c@seZdZdZdZdS)z2TestEnum.test_enum_str_override.<locals>.Test1EnumrrN�rrr�OneZTworrrr�	Test1EnumDsr2r*r�c@seZdZdZdZdS)z2TestEnum.test_enum_str_override.<locals>.Test2EnumrrNr0rrrr�	Test2EnumKsr3)rr�r@�
_member_type_r�r}r1r�)rAr,r/r2r3rrr�test_enum_str_override=szTestEnum.test_enum_str_overridecCs:Gdd�dt�}Gdd�d|tj�}|�t|j�d�dS)Nc@seZdZdd�ZdS)z1TestEnum.test_inherited_data_type.<locals>.HexIntcSst|�SrY��hexr�rrrr#Ssz:TestEnum.test_inherited_data_type.<locals>.HexInt.__repr__N�rrrr#rrrr�HexIntRsr9c@seZdZdZdZdZdS)z1TestEnum.test_inherited_data_type.<locals>.MyEnumrrrN)rrrrorprqrrrr�MyEnumUsr:z<MyEnum.A: 0x1>)r�r=rr�r�ro)rAr9r:rrr�test_inherited_data_typeQsz!TestEnum.test_inherited_data_typec	Cs||�td��Gdd�dttt�}W5QRXGdd�dt�}Gdd�dt�}|�td��Gdd�d||t�}W5QRXdS)	Nztoo many data typesc@seZdZdZdS�z.TestEnum.test_too_many_data_types.<locals>.HuhrN�rrrr1rrrrr�]sr�c@seZdZdd�ZdS)z0TestEnum.test_too_many_data_types.<locals>.MyStrcSsd|S)Nz	hello, %srr�rrrr-asz6TestEnum.test_too_many_data_types.<locals>.MyStr.helloNr.rrrrr*`sr*c@seZdZdd�ZdS)z0TestEnum.test_too_many_data_types.<locals>.MyIntcSst|�SrYr6r�rrrr�dsz5TestEnum.test_too_many_data_types.<locals>.MyInt.reprN)rrrr�rrrr�MyIntcsr>c@seZdZdZdSr<r=rrrrr�gs)�assertRaisesRegexr�r}r�r)rAr�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)rhrgrdrerfr�)rArhZdatesrrr�	test_hashjs



zTestEnum.test_hashcCs(Gdd�dtt�}|�|j|jk�dS)Nc@seZdZdZdeZdS)z/TestEnum.test_intenum_from_scratch.<locals>.phyrrN�rrr�pi�taurrrr�phytsrE�r�rr@rCrD�rArErrr�test_intenum_from_scratchssz"TestEnum.test_intenum_from_scratchcCs8Gdd�dtt�}Gdd�d|�}|�|j|jk�dS)Nc@seZdZdS)z0TestEnum.test_intenum_inherited.<locals>.IntEnumNr!rrrrrzsrc@seZdZdZdeZdS)z,TestEnum.test_intenum_inherited.<locals>.phyrrNrBrrrrrE|srErF)rArrErrr�test_intenum_inheritedyszTestEnum.test_intenum_inheritedcCs(Gdd�dtt�}|�|j|jk�dS)Nc@seZdZdZdeZdS)z1TestEnum.test_floatenum_from_scratch.<locals>.phyrirNrBrrrrrE�srE�r|rr@rCrDrGrrr�test_floatenum_from_scratch�sz$TestEnum.test_floatenum_from_scratchcCs8Gdd�dtt�}Gdd�d|�}|�|j|jk�dS)Nc@seZdZdS)z4TestEnum.test_floatenum_inherited.<locals>.FloatEnumNr!rrrr�	FloatEnum�srLc@seZdZdZdeZdS)z.TestEnum.test_floatenum_inherited.<locals>.phyrirNrBrrrrrE�srErJ)rArLrErrr�test_floatenum_inherited�sz!TestEnum.test_floatenum_inheritedcCs(Gdd�dtt�}|�|j|jk�dS)Nc@seZdZdZdZdS)z/TestEnum.test_strenum_from_scratch.<locals>.phy�Pi�TauNrBrrrrrE�srE�r}rr@rCrDrGrrr�test_strenum_from_scratch�sz"TestEnum.test_strenum_from_scratchcCs8Gdd�dtt�}Gdd�d|�}|�|j|jk�dS)Nc@seZdZdS)z0TestEnum.test_strenum_inherited.<locals>.StrEnumNr!rrrrr �sr c@seZdZdZdZdS)z,TestEnum.test_strenum_inherited.<locals>.phyrNrONrBrrrrrE�srErP)rAr rErrr�test_strenum_inherited�szTestEnum.test_strenum_inheritedcCs4Gdd�dt�}|�dddg|jd�|�dd�t|j�D�dd	d
g�t|�}|�t|�t|��|�t|�d�d}|��}t|d	�D]�\}}||�}|�||�|�t	|�|�|�|j
|�|�||�|�|�|�d	|�|�
d|ko�d
kn�|�t|�|�|�|t	�|�|t�q�dS)Nc@s(eZdZdZdZdZdZdZdZdZ	dS)	z&TestEnum.test_intenum.<locals>.WeekDayrrrrcrm��N)
rrr�SUNDAY�MONDAY�TUESDAY�	WEDNESDAY�THURSDAY�FRIDAY�SATURDAYrrrr�WeekDay�sr\rE�b�ccSsg|]}|�qSrr)r�r�rrrr��sz)TestEnum.test_intenum.<locals>.<listcomp>rrrrTz8SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY�)rr�rVr/rWr�r�r�r�r�r�r��indexr@r�r�r�r)rAr\r�r2r�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>.WeekDayrrrrcrmrSrTN)rrrrUrVrW�TEUSDAYrXrYrZr[rrrrr\�sr\rrWcSsg|]\}}|j|kr|�qSrr�r�rrrr��s
�z4TestEnum.test_intenum_duplicates.<locals>.<listcomp>rb)rr�rbrWr�r�r�r�)rAr\rrr�test_intenum_duplicates�s�z TestEnum.test_intenum_duplicatesc	Cs<|�t�dd�tj�|�t��t�dd�W5QRXdS)Ns�bigs)r�r�
from_bytesrr�r�r�rrr�test_intenum_from_bytes�sz TestEnum.test_intenum_from_bytesc	CsXt�tjj�}|�t�|�tj�t�tjjd�}|�t��t�|�W5QRXdS)Ng{�G�z�?)	r|r7rrr�r��fromhexr�r�)rA�hrrr�test_floatenum_fromhex�s
zTestEnum.test_floatenum_fromhexcCs,ttt�rt�t|jtj�t|jt�dSrY)�
isinstancer�	Exceptionr3r�rr�rrr�test_pickle_enum�s
zTestEnum.test_pickle_enumcCs,ttt�rt�t|jtj�t|jt�dSrY)rjrrkr3r�rr�rrr�test_pickle_int�s
zTestEnum.test_pickle_intcCs,ttt�rt�t|jtj�t|jt�dSrY)rjrrkr3r�rr�rrr�test_pickle_float�s
zTestEnum.test_pickle_floatcCs,ttt�rt�t|jtj�t|jt�dSrY)rjr(rkr3r�Zhimr�rrr�test_pickle_enum_function�s
z"TestEnum.test_pickle_enum_functioncCs,ttt�rt�t|jtj�t|jt�dSrY)rjr%rkr3r�Zwhor�rrr�%test_pickle_enum_function_with_module�s
z.TestEnum.test_pickle_enum_function_with_modulecCs ttt�rt�|�tjd�dS)Nr*)rjr)rkr�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@seZdZdZdZdS)zLTestEnum.test_class_nested_enum_and_pickle_protocol_four.<locals>.NestedEnum�commonZrareN)rrr�twigsZshinyrrrr�
NestedEnum�srtz
%s.NestedEnum)rr�rtrrr3r�rs)rArtrrr�/test_class_nested_enum_and_pickle_protocol_four�sz8TestEnum.test_class_nested_enum_and_pickle_protocol_fourcCs>Gdd�dt�}tj|_tt�D]}|�|j�|�d�q dS)Nc@seZdZdZdZdS)z6TestEnum.test_pickle_by_name.<locals>.ReplaceGlobalIntrrN)rrrZONE�TWOrrrr�ReplaceGlobalIntsrwrv)rr=�_reduce_ex_by_name�
__reduce_ex__r/rr�rv)rArw�protorrr�test_pickle_by_nameszTestEnum.test_pickle_by_namecCsDtddtd�}|t�d<t�|�t|jt|j�t|jt	|�dS)N�	BadPicklezdill sweet bread-n-butterr&)
rr�globalsr=�_make_class_unpicklabler6r�r�Zdillr
)rAr|rrr�test_exploding_pickles�

zTestEnum.test_exploding_picklecCs$Gdd�dtt�}|�|jd�dS)Nc@seZdZdZdZdZdS)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�
SkillLevelsr�r�)r}rr�r�)rAr�rrr�test_string_enumszTestEnum.test_string_enumcCsLGdd�dt�}|�|d�|j�|�t|d�|j�|�|d|j�dS)Nc@seZdZdZdZdZdZdS)z-TestEnum.test_getattr_getitem.<locals>.PeriodrrrrcN)rrr�morning�noonZevening�nightrrrr�Periodsr�rr�r�)rr�r�r�r�r��rAr�rrr�test_getattr_getitemszTestEnum.test_getattr_getitemcCs|j}|�t|d��dS)N�__eq__)rhr@r�r�rrr�test_getattr_dunder%szTestEnum.test_getattr_dundercCs4Gdd�dt�}|�t|�|j|j|j|jg�dS)Nc@seZdZdZdZdZdZdS)z-TestEnum.test_iteration_order.<locals>.SeasonrrcrrN)rrrrergrfrdrrrrrh*srh)rr�r�rergrfrdr�rrr�test_iteration_order)s
�zTestEnum.test_iteration_ordercCs2|�tt|j��|jj|jj|jj|jjg�dSrY)r�r��reversedrhrgrfrerdr�rrr�test_reversed_iteration_order4s��z&TestEnum.test_reversed_iteration_ordercCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D]X\}}||�}|�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��rAr�r�r��monthr�rrr�!test_programmatic_function_string;s
�z*TestEnum.test_programmatic_function_stringcCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D]X\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�qbdS)Nr�r��
��startrr�r�rrr�,test_programmatic_function_string_with_startLs�z5TestEnum.test_programmatic_function_string_with_startcCs�tddddg�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D]X\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�qddS)Nr�r�r�r�rr�rr�r�rrr�&test_programmatic_function_string_list]s�z/TestEnum.test_programmatic_function_string_listcCs�tddddgdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D]X\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�qhdS)	Nr�r�r�r��r�rr�r�r�rrr�1test_programmatic_function_string_list_with_startns�z:TestEnum.test_programmatic_function_string_list_with_startcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D]X\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�q^dS�Nr�))r�r)r�r)r�rrr�rr�r�rrr�#test_programmatic_function_iterables$��z,TestEnum.test_programmatic_function_iterablecCs�tdtd��}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td�	�d�D]X\}}||�}|�t
|j�|�|�||�|�|j
|�|�||�|�t|�|�qbdSr�)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]F\}}||�}|�||�|�|j
|�|�||�|�t
|�|�qbdS)Nr�r�)r�rr�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�test_programmatic_function_type�s�z(TestEnum.test_programmatic_function_typecCs�tddtdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td�	�d�D]F\}}||�}|�||�|�|j
|�|�||�|�t
|�|�qddS)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]F\}}||�}|�||�|�|j	|�|�
||�|�t|�|�q^dSr��
rr�r�r�r�r�r�r�r�r�r�r�r�r�rrr�-test_programmatic_function_type_from_subclass�s
�z6TestEnum.test_programmatic_function_type_from_subclasscCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�td��d�D]F\}}||�}|�||�|�|j	|�|�
||�|�t|�|�qbdS)Nr�r��(r�rr�r�rrr�8test_programmatic_function_type_from_subclass_with_start�s�zATestEnum.test_programmatic_function_type_from_subclass_with_startcCsTttt�rt�|�tjd�|�tjtd��|�tjttd��t|jtj�dS)Nr#r$)	rjr"rkr�r$r@r�r�r3r�rrr�test_subclassing�s
zTestEnum.test_subclassingc	CsdGdd�dt�}|�t��Gdd�d|�}W5QRX|�td��Gdd�d|t�}W5QRXdS)Nc@seZdZdZdZdZdS)z&TestEnum.test_extending.<locals>.ColorrrrNr�rrrrr��sr�c@seZdZdZdZdZdS)z*TestEnum.test_extending.<locals>.MoreColorrcrmrSN�rrrZcyan�magentaZyellowrrrr�	MoreColor�sr�z0EvenMoreColor: cannot extend enumeration 'Color'c@seZdZdZdS)z.TestEnum.test_extending.<locals>.EvenMoreColorrTN)rrrZ
chartrueserrrr�
EvenMoreColor�sr�)rr�r�r?r)rAr�r�r�rrr�test_extending�s
zTestEnum.test_extendingcCs8Gdd�dt�}|�t|j�|�|�|j��d�dS)Nc@seZdZdZdZdd�ZdS)z/TestEnum.test_exclude_methods.<locals>.whateverr�r�cSs
d|jS)Nz
no, not %s�r�r�rrr�reallysz6TestEnum.test_exclude_methods.<locals>.whatever.reallyN)rrrr�r�r�rrrr�whatever�sr�zno, not that)rZassertIsNotr�r�r�r�)rAr�rrr�test_exclude_methods�szTestEnum.test_exclude_methodsc	Cs,|�t��Gdd�dtt�}W5QRXdS)Nc@seZdZdZdS)z4TestEnum.test_wrong_inheritance_order.<locals>.Wrongzerror before this pointN)rrrZNotHererrrrr�sr�)r�r�rr}r�rrr�test_wrong_inheritance_ordersz%TestEnum.test_wrong_inheritance_ordercCsTGdd�dt�}Gdd�dt�}|�|j|j�|�|j|j�|�|j|j�dS)Nc@seZdZdZdZdZdS)z2TestEnum.test_intenum_transitivity.<locals>.numberrrrN)rrrr�r��threerrrr�numbersr�c@seZdZdZdZdZdS)z2TestEnum.test_intenum_transitivity.<locals>.numerorrrN)rrr�uno�dos�tresrrrr�numerosr�)rr�r�r�r�r�r�r�)rAr�r�rrr�test_intenum_transitivitys
z"TestEnum.test_intenum_transitivitycCs4Gdd�dt�}Gdd�dt�}|�t||j�dS)Nc@seZdZdZdZdS)z4TestEnum.test_wrong_enum_in_call.<locals>.MonochromerrN�rrr�black�whiterrrr�
Monochromesr�c@seZdZdZdZdS)z0TestEnum.test_wrong_enum_in_call.<locals>.GenderrrN�rrr�male�femalerrrr�Gendersr�)rr�r�r��rAr�r�rrr�test_wrong_enum_in_callsz TestEnum.test_wrong_enum_in_callcCs4Gdd�dt�}Gdd�dt�}|�t||j�dS)Nc@seZdZdZdZdS)z:TestEnum.test_wrong_enum_in_mixed_call.<locals>.MonochromerrNr�rrrrr�"sr�c@seZdZdZdZdS)z6TestEnum.test_wrong_enum_in_mixed_call.<locals>.GenderrrNr�rrrrr�%sr�)rrr�r�r�r�rrr�test_wrong_enum_in_mixed_call!sz&TestEnum.test_wrong_enum_in_mixed_callcCs8Gdd�dt�}Gdd�dt�}|�||j�|j�dS)Nc@seZdZdZdZdS)z6TestEnum.test_mixed_enum_in_call_1.<locals>.MonochromerrNr�rrrrr�+sr�c@seZdZdZdZdS)z2TestEnum.test_mixed_enum_in_call_1.<locals>.GenderrrNr�rrrrr�.sr�)rr�r�r�r�rrr�test_mixed_enum_in_call_1*sz"TestEnum.test_mixed_enum_in_call_1cCs8Gdd�dt�}Gdd�dt�}|�||j�|j�dS)Nc@seZdZdZdZdS)z6TestEnum.test_mixed_enum_in_call_2.<locals>.MonochromerrNr�rrrrr�4sr�c@seZdZdZdZdS)z2TestEnum.test_mixed_enum_in_call_2.<locals>.GenderrrNr�rrrrr�7sr�)rrr�r�r�r�rrr�test_mixed_enum_in_call_23sz"TestEnum.test_mixed_enum_in_call_2cCs6Gdd�dt�}Gdd�d|�}|�t|j�d�dS)Nc@seZdZdd�ZdS)z*TestEnum.test_flufl_enum.<locals>.FluflnumcSs
t|j�SrY)r�r�r�rrr�__int__>sz2TestEnum.test_flufl_enum.<locals>.Fluflnum.__int__N)rrrr�rrrr�Fluflnum=sr�c@seZdZdZdZdZdS)z0TestEnum.test_flufl_enum.<locals>.MailManOptionsrrrN)rrr�option1Zoption2Zoption3rrrr�MailManOptions@sr�r)rr�r�r�)rAr�r�rrr�test_flufl_enum<szTestEnum.test_flufl_enumcCs�Gdd�dt�}|�|jjt�|�|jt�Gdd�dtt�}|�|jjt�|�|jt�Gdd�dt�}|�|jjt	�|�|jt	�dS)Nc@seZdZdZdZdS)z+TestEnum.test_introspection.<locals>.Number�d��Nr�rrrr�NumberGsr�c@seZdZdZdZdZdS)z+TestEnum.test_introspection.<locals>.StringZsoftZroughZhardN)rrr�yarnZropeZwirerrrr�StringLsr�c@seZdZdZdZdS)z*TestEnum.test_introspection.<locals>.Plainr�rN)rrr�vanillar�rrrr�PlainRsr�)
rr�r�r4r�r}rr�r�r')rAr�r�r�rrr�test_introspectionFszTestEnum.test_introspectionc	CsPGdd�dt�}|�t��|d�W5QRX|�t��|dW5QRXdS)Nc@seZdZdZdZdZdS)z0TestEnum.test_no_such_enum_member.<locals>.ColorrrrNr�rrrrr�Ysr�rcZ
chartreuse)rr�r��KeyErrorr�rrr�test_no_such_enum_memberXs
z!TestEnum.test_no_such_enum_membercCs&Gdd�dt�}|�t|j�d�dS)Nc@s eZdZdZdZdZdd�ZdS)z%TestEnum.test_new_repr.<locals>.ColorrrrcSs
d|jS)Nz!don't you just love shades of %s?r�r�rrrr#gsz.TestEnum.test_new_repr.<locals>.Color.__repr__N)rrrr�r�r�r#rrrrr�csr�z#don't you just love shades of blue?)rr�r�r�r�rrr�
test_new_reprbs
�zTestEnum.test_new_reprcCs8Gdd�dt�}Gdd�dt|�}|�t|j�d�dS)Nc@seZdZdd�ZdS)z,TestEnum.test_inherited_repr.<locals>.MyEnumcSs
d|jS)NzMy name is %s.r�r�rrrr#psz5TestEnum.test_inherited_repr.<locals>.MyEnum.__repr__Nr8rrrrr:osr:c@seZdZdZdZdZdS)z/TestEnum.test_inherited_repr.<locals>.MyIntEnumrrrN)rrrr�r�Ztheotherrrrr�	MyIntEnumrsr�zMy name is that.)rr�r�r�r�)rAr:r�rrr�test_inherited_reprnszTestEnum.test_inherited_reprcsdG�fdd�dtt���Gdd�dt�d�}Gdd�dt�d�}Gdd	�d	|�}Gd
d�d|�}dS)NcseZdZ��fdd�Z�ZS)z3TestEnum.test_multiple_mixin_mro.<locals>.auto_enumc	s�t|��}t|j�}d}|jD].}||}|tkr8|}n|}|d7}|||<q|��D]\}}||krV|||<qVt�|��||||�S�Nrr)r�r��
_member_names�Ellipsisr��superr�)	�metaclsr��bases�	classdict�temp�namesr�r�r�)r��	auto_enumrrr�zs&





�z;TestEnum.test_multiple_mixin_mro.<locals>.auto_enum.__new__�rrrr��
__classcell__r�r��r�rr�ysr�c@seZdZdS)z:TestEnum.test_multiple_mixin_mro.<locals>.AutoNumberedEnumNr!rrrr�AutoNumberedEnum�sr�)�	metaclassc@seZdZdS)z5TestEnum.test_multiple_mixin_mro.<locals>.AutoIntEnumNr!rrrr�AutoIntEnum�sr�c@seZdZdZdZdZdS)z8TestEnum.test_multiple_mixin_mro.<locals>.TestAutoNumber.rN�rrrrEr]r^rrrr�TestAutoNumber�sr�c@seZdZdZdZdZdS)z5TestEnum.test_multiple_mixin_mro.<locals>.TestAutoInt.rNr�rrrr�TestAutoInt�sr�)r�rr)rAr�r�r�r�rr�r�test_multiple_mixin_mroxs
z TestEnum.test_multiple_mixin_mrocs�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)	NcsHeZdZdZdd�Zdd�Zedd��Zdd	�Zd
d�Z�fdd
�ZdS)z:TestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt�NamedIntcWs@|}|^}}t|�dkr td��tj|f|��}||_||_|S�Nrz name and value must be specified�r�r�r�r��_intname�_args�r��argsr�r�rArrrr��szBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__new__cSs|jSrY�r�r�rrr�__getnewargs__�szITestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__getnewargs__cSs|jSrY�r�r�rrrr�szCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__name__cSsd�t|�j|jt�|��S�Nz{}({!r}, {})�r�r�rr�r#r�rrrr#�s�zCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__repr__cSs&t}|j}|jtkr|�|�S||�SrY�r�r�__objclass__r'r#�rA�baseZbase_strrrrr�s


zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__str__csBt|�t|�}t|��r:t|��r:�d�|j|j�|�S|SdS�Nz({0} + {1})�r�rjr�r�rA�otherr��r�rr�__add__�s�zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__add__N)	rrrr�r�r�r#rrrrrrr��s	
	r�c@seZdZdZdZdZdS)z5TestEnum.test_subclasses_with_getnewargs.<locals>.NEI�NEI�zthe-xr�zthe-yrN�rrr�x�yrrrrr�sr�NamedInt('(the-x + the-y)', 3)�testrmr�r�rr�r�r�r�rrr}r3r��rArZNI5rrr�test_subclasses_with_getnewargs�s'


z(TestEnum.test_subclasses_with_getnewargscs�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)	NcsHeZdZdZdd�Zdd�Zedd��Zdd	�Zd
d�Z�fdd
�ZdS)z=TestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedIntr�cWs@|}|^}}t|�dkr td��tj|f|��}||_||_|Sr�r�r�rrrr��szETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__new__cSs
|jifSrYr�r�rrr�__getnewargs_ex__�szOTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__getnewargs_ex__cSs|jSrYr�r�rrrr�szFTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__name__cSsd�t|�j|jt�|��Sr�r�r�rrrr#�s�zFTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__repr__cSs&t}|j}|jtkr|�|�S||�SrYr�r�rrrr�s


zETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__str__csBt|�t|�}t|��r:t|��r:�d�|j|j�|�S|SdSrrrrrrr�s�zETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__add__N)	rrrr�rr�r#rrrrrrr��s	
	r�c@seZdZdZdZdZdS)z8TestEnum.test_subclasses_with_getnewargs_ex.<locals>.NEIrrr	Nr
rrrrr�srr
rrmrrrrrr�"test_subclasses_with_getnewargs_ex�s'


z+TestEnum.test_subclasses_with_getnewargs_excs�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)	NcsHeZdZdZdd�Zdd�Zedd��Zdd	�Zd
d�Z�fdd
�ZdS)z6TestEnum.test_subclasses_with_reduce.<locals>.NamedIntr�cWs@|}|^}}t|�dkr td��tj|f|��}||_||_|Sr�r�r�rrrr�sz>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__new__cSs|j|jfSrY�r�r�r�rrr�
__reduce__szATestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__reduce__cSs|jSrYr�r�rrrrsz?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__name__cSsd�t|�j|jt�|��Sr�r�r�rrrr#s�z?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__repr__cSs&t}|j}|jtkr|�|�S||�SrYr�r�rrrr$s


z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__str__csBt|�t|�}t|��r:t|��r:�d�|j|j�|�S|SdSrrrrrrr-s�z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__add__N)	rrrr�rr�r#rrrrrrr�s	
	r�c@seZdZdZdZdZdS)z1TestEnum.test_subclasses_with_reduce.<locals>.NEIrrr	Nr
rrrrr6srr
rrmrrrrrr�test_subclasses_with_reduces'


z$TestEnum.test_subclasses_with_reducecs�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)	NcsHeZdZdZdd�Zdd�Zedd��Zdd	�Zd
d�Z�fdd
�ZdS)z9TestEnum.test_subclasses_with_reduce_ex.<locals>.NamedIntr�cWs@|}|^}}t|�dkr td��tj|f|��}||_||_|Sr�r�r�rrrr�JszATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__new__cSs|j|jfSrYr�rArzrrrrySszGTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__reduce_ex__cSs|jSrYr�r�rrrrUszBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__name__cSsd�t|�j|jt�|��Sr�r�r�rrrr#Xs�zBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__repr__cSs&t}|j}|jtkr|�|�S||�SrYr�r�rrrr]s


zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__str__csBt|�t|�}t|��r:t|��r:�d�|j|j�|�S|SdSrrrrrrrfs�zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__add__N)	rrrr�ryr�r#rrrrrrr�Hs	
	r�c@seZdZdZdZdZdS)z4TestEnum.test_subclasses_with_reduce_ex.<locals>.NEIrrr	Nr
rrrrrosrr
rrmrrrrrr�test_subclasses_with_reduce_exGs'


z'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)	Ncs@eZdZdZdd�Zedd��Zdd�Zdd	�Z�fd
d�ZdS)
zHTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedIntr�cWs@|}|^}}t|�dkr td��tj|f|��}||_||_|Sr�r�r�rrrr��szPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__new__cSs|jSrYr�r�rrrr�szQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__name__cSsd�t|�j|jt�|��Sr�r�r�rrrr#�s�zQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__repr__cSs&t}|j}|jtkr|�|�S||�SrYr�r�rrrr�s


zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__str__csBt|�t|�}t|��r:t|��r:�d�|j|j�|�S|SdSrrrrrrr�s�zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__add__N�rrrr�r�r#rrrrrrr��s	
	r�c@seZdZdZdZdZdS)zCTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NEIrrr	Nr
rrrrr�srr
rrmr)r�rr�r�r�r�rrr}r�r6r�r�r
rrrr�-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)	Ncs@eZdZdZdd�Zedd��Zdd�Zdd	�Z�fd
d�ZdS)
zSTestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedIntr�cWs@|}|^}}t|�dkr td��tj|f|��}||_||_|Sr�r�r�rrrr��sz[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__new__cSs|jSrYr�r�rrrr�sz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__name__cSsd�t|�j|jt�|��Sr�r�r�rrrr#�s�z\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__repr__cSs&t}|j}|jtkr|�|�S||�SrYr�r�rrrr�s


z[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__str__csBt|�t|�}t|��r:t|��r:�d�|j|j�|�S|SdSrrrrrrr�s�z[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__add__Nrrrrrr��s	
	r�c@s eZdZdZdZdZdd�ZdS)zNTestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEIrrr	cSst|j|jffSrY)r�r�r"rrrrry�sz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEI.__reduce_ex__N)rrrrrryrrrrr�srr
rrmr)r�rr�r�r�r�rrr}r�r3rrrr�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@seZdZdZdZdZdZdS)z/TestEnum.test_tuple_subclass.<locals>.SomeTuple�	SomeTuple)rz
for the money)rzfor the show�rz
for the musicN)rrr�first�second�thirdrrrrr�srr)�tuplerr�r�rr�rr�r r}r3)rArrrr�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>.AutoNumberrcSs"t|j�d}t�|�}||_|Sr��r�r�r'r�r��r�r�r5rrrr��s
zQTestEnum.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__new__cSs
t|j�SrY�r�r�r�rrrr�szQTestEnum.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__int__N)rrrrrr r�r�rrrr�
AutoNumber�s
r&rrr)	rr�r�rrr r�r�r�)rAr&rrr�,test_duplicate_values_give_unique_enum_items�s�z5TestEnum.test_duplicate_values_give_unique_enum_itemscCs\Gdd�dt�}Gdd�d|�}|�t|�|j|j|jg�|�ttt|��dddg�dS)Nc@seZdZdd�Zdd�ZdS)zBTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumbercSs"t|j�d}t�|�}||_|Sr�r#r$rrrr�s
zJTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__new__cSs
t|j�SrYr%r�rrrr�szJTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__int__N)rrrr�r�rrrrr&
sr&c@seZdZdZdZdZdS)z=TestEnum.test_inherited_new_from_enhanced_enum.<locals>.ColorrNr�rrrrr�sr�rrr)rr�r�r�r�r��mapr��rAr&r�rrr�%test_inherited_new_from_enhanced_enumsz.TestEnum.test_inherited_new_from_enhanced_enumcCs\Gdd�dt�}Gdd�d|�}|�t|�|j|j|jg�|�ttt|��dddg�dS)Nc@seZdZdd�ZdS)z?TestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumbercSs$t|j�d}t�||�}||_|Sr�)r�r�r�r�r�r$rrrr�szGTestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumber.__new__Nr�rrrrr&sr&c@seZdZdZdZdZdS)z:TestEnum.test_inherited_new_from_mixed_enum.<locals>.ColorrNr�rrrrr�#sr�rrr)rr�r�r�r�r�r(r�r)rrr�"test_inherited_new_from_mixed_enumsz+TestEnum.test_inherited_new_from_mixed_enumcCsBGdd�d�}Gdd�dt�}|�|�|j�|�|j|��dS)Nc@seZdZdd�ZdS)z+TestEnum.test_equality.<locals>.AlwaysEqualcSsdS)NTr�rArrrrr�,sz2TestEnum.test_equality.<locals>.AlwaysEqual.__eq__N)rrrr�rrrr�AlwaysEqual+sr-c@seZdZdZdS)z,TestEnum.test_equality.<locals>.OrdinaryEnumrN)rrrrErrrr�OrdinaryEnum.sr.)rr�rE)rAr-r.rrr�
test_equality*szTestEnum.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|jkr|j|jkStSrY�r�r��NotImplementedr,rrr�__ge__5sz7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__ge__cSs|j|jkr|j|jkStSrYr0r,rrr�__gt__9sz7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__gt__cSs|j|jkr|j|jkStSrYr0r,rrr�__le__=sz7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__le__cSs|j|jkr|j|jkStSrYr0r,rrr�__lt__Asz7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__lt__N)rrrr2r3r4r5rrrr�OrderedEnum4sr6c@s eZdZdZdZdZdZdZdS)z*TestEnum.test_ordered_mixin.<locals>.GradermrcrrrNrnrrrr�GradeEs
r7)rZ
assertGreaterrorpZassertLessEqualrsrqZ
assertLessrrZassertGreaterEqualr�r�)rAr6r7rrr�test_ordered_mixin3szTestEnum.test_ordered_mixinc	CsJGdd�dt�}Gdd�d|�}|�t��Gdd�d|�}W5QRXdS)Nc@seZdZdd�ZdS)z'TestEnum.test_extending2.<locals>.ShadecSst|j�dSrY)�printr�r�rrr�shadeTsz-TestEnum.test_extending2.<locals>.Shade.shadeN�rrrr:rrrr�ShadeSsr<c@seZdZdZdZdZdS)z'TestEnum.test_extending2.<locals>.ColorrrrNr�rrrrr�Vsr�c@seZdZdZdZdZdS)z+TestEnum.test_extending2.<locals>.MoreColorrcrmrSNr�rrrrr�[sr�)rr�r��rAr<r�r�rrr�test_extending2RszTestEnum.test_extending2cCsFGdd�dt�}Gdd�d|�}Gdd�d|�}|�|j��d�dS)Nc@seZdZdd�ZdS)z'TestEnum.test_extending3.<locals>.ShadecSs|jSrYr�r�rrrr:bsz-TestEnum.test_extending3.<locals>.Shade.shadeNr;rrrrr<asr<c@seZdZdd�ZdS)z'TestEnum.test_extending3.<locals>.ColorcSs
d|jS)Nz
%s hexlified!r�r�rrrr7esz+TestEnum.test_extending3.<locals>.Color.hexN)rrrr7rrrrr�dsr�c@seZdZdZdZdZdS)z+TestEnum.test_extending3.<locals>.MoreColorrcrmrSNr�rrrrr�gsr�z5 hexlified!)rr�r�r7r=rrr�test_extending3`szTestEnum.test_extending3cCs6Gdd�dt�}Gdd�d|�}|�t|j�|�dS)Nc@seZdZdd�ZdS)z3TestEnum.test_subclass_duplicate_name.<locals>.BasecSsdSrYrr�rrrrosz8TestEnum.test_subclass_duplicate_name.<locals>.Base.testN�rrrrrrrr�BasensrAc@seZdZdZdS)z3TestEnum.test_subclass_duplicate_name.<locals>.TestrNr@rrrrr�qsr�)rr�r�r�rArAr�rrr�test_subclass_duplicate_namemsz%TestEnum.test_subclass_duplicate_namecsDddlm�G�fdd�dt�}Gdd�d|�}|�|jjd�dS)Nr��DynamicClassAttributecseZdZ�dd��ZdS)z;TestEnum.test_subclass_duplicate_name_dynamic.<locals>.BasecSsdS)N�dynamicrr�rrrrxsz@TestEnum.test_subclass_duplicate_name_dynamic.<locals>.Base.testNr@rrDrrrAwsrAc@seZdZdZdS)z;TestEnum.test_subclass_duplicate_name_dynamic.<locals>.TestrNr@rrrrr�{sr�rF)�typesrErr�rrBrrDr�$test_subclass_duplicate_name_dynamicusz-TestEnum.test_subclass_duplicate_name_dynamicc	CsJGdd�dt�}Gdd�d|�}|�t��Gdd�d|�}W5QRXdS)Nc@seZdZdd�ZdS)z/TestEnum.test_no_duplicates.<locals>.UniqueEnumcsB�j}t�fdd�|D��r>�j}|�j�j}td||f��dS)Nc3s|]}�j|jkVqdSrYr�)r�r�r�rr�	<genexpr>�szKTestEnum.test_no_duplicates.<locals>.UniqueEnum.__init__.<locals>.<genexpr>z-aliases not allowed in UniqueEnum:  %r --> %r)r��anyr�r�r�)rAr�r�rEr�rr�rr_�s��z8TestEnum.test_no_duplicates.<locals>.UniqueEnum.__init__N�rrrr_rrrr�
UniqueEnum�srLc@seZdZdZdZdZdS�z*TestEnum.test_no_duplicates.<locals>.ColorrrrNr�rrrrr��sr�c@seZdZdZdZdZdZdSrM)rrrr�r�r�Zgrenerrrrr��s)rr�r�)rArLr�rrr�test_no_duplicatess
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||_||_dSrY��mass�radius)rArQrRrrrr_�sz+TestEnum.test_init.<locals>.Planet.__init__cSsd}||j|j|jS)Ng
yдW�=rP)rA�Grrr�surface_gravity�sz2TestEnum.test_init.<locals>.Planet.surface_gravityN)rrrZMERCURYZVENUS�EARTHZMARSZJUPITERZSATURNZURANUSZNEPTUNEr_r�rTrrrr�Planet�srVrg������#@rO)rr��roundrUrTr�)rArVrrr�	test_init�szTestEnum.test_initcCs|Gdd�dtt�}|�t|d��|�t|d��|�t|d��|�t|jt��|�|j|jk�|�|j	|j
k�dS)Nc@s�eZdZdd�ZdZe�Zed�D]Zeddfede<q"ed�D]Zed	d
fede<qDed�D]Zed
fede<qfe	Z
eZe
ZdS)z$TestEnum.test_ignore.<locals>.PeriodcSst�||�}||_||_|SrY)rr�r��period)r�r�rYr5rrrr��sz,TestEnum.test_ignore.<locals>.Period.__new__zPeriod i�
r�r�zmonth_%d�5rTZweekzweek_%d� Zdayzday_%dN)rrrr��_ignore_�varsr�r/r��day_1ZOneDayZweek_1ZOneWeek�month_1ZOneMonthrrrrr��sr�r]r�)rrr<r�r@rjr_r`Zday_30Zweek_4Zday_28r�rrr�test_ignore�szTestEnum.test_ignorecCs�Gdd�dt�}Gdd�d|�}|�t|�|j|j|jg�t|td��D]2\}}|d7}|�|j|g�|�	||g�|�qJdS)Nc@seZdZdd�ZdS)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�AutoNumberInAList�srbc@seZdZdZdZdZdS)z1TestEnum.test_nonhash_value.<locals>.ColorInAListrNr�rrrr�ColorInAList�srcrr)
rr�r�r�r�r��zipr/r�r�)rArbrcr=r�rrr�test_nonhash_value�szTestEnum.test_nonhash_valuecCs^Gdd�dtt�}Gdd�d|�}|�t|�|j|jg�|�|jd�|�|d�|j�dS)Nc@seZdZdd�ZdS)zHTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnumcWs$|\}}t�||�}||_||_|SrY)r�r��labelr�)r�r�r�rfr5rrrr��s
zPTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnum.__new__Nr�rrrr�LabelledIntEnum�srgc@seZdZdZdZdS)zETestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledList)rZUnprocessed)rzPayment CompleteN)rrr�unprocessed�payment_completerrrr�LabelledList�srjr)r�rr�r�rhri)rArgrjrrr�&test_conflicting_types_resolved_in_new�s
z/TestEnum.test_conflicting_types_resolved_in_newcCs`Gdd�dt�}|�t|�|j|j|jg�|�|jjd�|�|jjd�|�|jjd�dS)Nc@seZdZe�Ze�Ze�ZdS)z(TestEnum.test_auto_number.<locals>.ColorN�rrrr	r�r�r�rrrrr��sr�rrr�rr�r�r�r�r�r�r�rrr�test_auto_number�s
zTestEnum.test_auto_numbercCs`Gdd�dt�}|�t|�|j|j|jg�|�|jjd�|�|jjd�|�|jjd�dS)Nc@s&eZdZdd�Ze�Ze�Ze�ZdS)z&TestEnum.test_auto_name.<locals>.ColorcSs|SrYr�r�r��countZlastrrr�_generate_next_value_�sz<TestEnum.test_auto_name.<locals>.Color._generate_next_value_N)rrrrqr	r�r�r�rrrrr��sr�r�r�r�rmr�rrr�test_auto_name�s
zTestEnum.test_auto_namecCspGdd�dt�}Gdd�d|�}|�t|�|j|j|jg�|�|jjd�|�|jjd�|�|jjd�dS)Nc@seZdZdd�ZdS)z5TestEnum.test_auto_name_inherit.<locals>.AutoNameEnumcSs|SrYrrorrrrqszKTestEnum.test_auto_name_inherit.<locals>.AutoNameEnum._generate_next_value_N)rrrrqrrrr�AutoNameEnumsrsc@seZdZe�Ze�Ze�ZdS)z.TestEnum.test_auto_name_inherit.<locals>.ColorNrlrrrrr�sr�r�r�r�rm)rArsr�rrr�test_auto_name_inheritszTestEnum.test_auto_name_inheritcCs$Gdd�dt�}|�|jjd�dS)Nc@seZdZdZe�ZdS)z)TestEnum.test_auto_garbage.<locals>.Colorr�N�rrrr�r	r�rrrrr�sr�r)rr�r�r�r�rrr�test_auto_garbageszTestEnum.test_auto_garbagecCs`Gdd�dt�}|�t|�|j|j|jg�|�|jjd�|�|jjd�|�|jjd�dS)Nc@seZdZdZdZe�ZdS)z3TestEnum.test_auto_garbage_corrected.<locals>.Colorr�rN)rrrr�r�r	r�rrrrr�sr�r�rrrmr�rrr�test_auto_garbage_correcteds
z$TestEnum.test_auto_garbage_correctedc	Cs*|�t��Gdd�dt�}W5QRXdS)Nc@s&eZdZe�Ze�Ze�Zdd�ZdS)z'TestEnum.test_auto_order.<locals>.ColorcSs|SrYrrorrrrq%sz=TestEnum.test_auto_order.<locals>.Color._generate_next_value_N)rrrr	r�r�r�rqrrrrr�!sr�r�r�rrr�test_auto_orders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>.ColorcSs|SrYrrorrrrq-szCTestEnum.test_auto_order_wierd.<locals>.Color._generate_next_value_N)rrrr�rqr	r�r�Z
weird_autorrr�+sr�r�)r	r�rr�r�r�r�r�rryr�test_auto_order_wierd(szTestEnum.test_auto_order_wierdcCs0Gdd�dt�}|�|j|j|jgt|��dS)Nc@s"eZdZe�ZZe�Ze�ZdS)z+TestEnum.test_duplicate_auto.<locals>.DupesN�rrrr	rZprimerorr rrrr�Dupes5s
r|�rr�rrr r��rAr|rrr�test_duplicate_auto4szTestEnum.test_duplicate_autoc
Cs\Gdd�dt�}z|d�Wn2tk
rN}z|�|jdk�W5d}~XYn
Xtd��dS)Nc@seZdZdZdZdZdS)z,TestEnum.test_default_missing.<locals>.ColorrrrN)rrrr$r%r&rrrrr�<sr�rT�Exception not raised.)rr�r@�__context__rk�rAr��excrrr�test_default_missing;s"zTestEnum.test_default_missingc
CsGdd�dt�}|�|d�|j�z|d�Wn2tk
r`}z|�|jdk�W5d}~XYn
Xtd��z|d�Wn4tk
r�}z|�t|jt��W5d}~XYn
Xtd��z|d�Wn4t	k
r�}z|�t|jt��W5d}~XYn
Xtd��dS)Nc@s$eZdZdZdZdZedd��ZdS)z$TestEnum.test_missing.<locals>.ColorrrrcSs0|dkr|jS|dkrdS|dkr(t�ndSdS)Nr��
bad returnrm�	error out)r��ZeroDivisionError)r��itemrrr�	_missing_Lsz.TestEnum.test_missing.<locals>.Color._missing_N)rrrr�r�r��classmethodr�rrrrr�Hs
r�r�rTr�r�r�)
rr�r�r�r@r�rkr�rjr�r�rrr�test_missingGs""$$zTestEnum.test_missingcsrddl}Gdd�dtj��Gdd�d�}G�fdd�d�}|�|��}|�|��}|�|�d�|�|�d�dS)Nrc@seZdZdZdZdS)z8TestEnum.test_missing_exceptions_reset.<locals>.TestEnumZval1Zval2N)rrrZVAL1ZVAL2rrrrrbosrbc@seZdZdd�ZdS)z6TestEnum.test_missing_exceptions_reset.<locals>.Class1cSs$z
t��Wntk
rYnXdSrY�r�r�rrrr_ts
z?TestEnum.test_missing_exceptions_reset.<locals>.Class1.__init__NrKrrrr�Class1ssr�cseZdZ�fdd�ZdS)z6TestEnum.test_missing_exceptions_reset.<locals>.Class2cs&z�d�Wntk
r YnXdS)NZ
invalid_valuer�r��rbrrr_|sz?TestEnum.test_missing_exceptions_reset.<locals>.Class2.__init__NrKrr�rr�Class2{sr�)�weakrefr=r�refr�)rAr�r�r�Zclass_1_refZclass_2_refrr�r�test_missing_exceptions_resetls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@seZdZedd��ZdS)z.TestEnum.test_multiple_mixin.<locals>.MaxMixincSst|�}||_|SrY)r��MAX)r��maxrrrr��sz2TestEnum.test_multiple_mixin.<locals>.MaxMixin.MAXN)rrrrXr�rrrr�MaxMixin�sr�c@seZdZdd�ZdS)z.TestEnum.test_multiple_mixin.<locals>.StrMixincSs
|j��SrY�r"�lowerr�rrrr�sz6TestEnum.test_multiple_mixin.<locals>.StrMixin.__str__Nr+rrrr�StrMixin�sr�c@seZdZdd�ZdS)z.TestEnum.test_multiple_mixin.<locals>.SomeEnumcSsdS)N�booyahrr�rrr�behavior�sz7TestEnum.test_multiple_mixin.<locals>.SomeEnum.behaviorN)rrrr�rrrr�SomeEnum�sr�c@seZdZdd�Zdd�ZdS)z1TestEnum.test_multiple_mixin.<locals>.AnotherEnumcSsdS)N�nuhuh!rr�rrrr��sz:TestEnum.test_multiple_mixin.<locals>.AnotherEnum.behaviorcSsdS)N�
what's up?rr�rrr�social�sz8TestEnum.test_multiple_mixin.<locals>.AnotherEnum.socialN)rrrr�r�rrrr�AnotherEnum�sr�c@seZdZe�Ze�Ze�ZdS�z+TestEnum.test_multiple_mixin.<locals>.ColorN�rrrr	r$r%r&rrrrr��sr�rrr�
Color.BLUEc@seZdZe�Ze�Ze�ZdSr�r�rrrrr��sr�c@seZdZe�Ze�Ze�ZdSr�r�rrrrr��sc@seZdZe�Ze�Ze�ZdS)z/TestEnum.test_multiple_mixin.<locals>.CoolColorNr�rrrr�	CoolColor�sr�r�c@seZdZe�Ze�Ze�ZdS)z1TestEnum.test_multiple_mixin.<locals>.CoolerColorNr�rrrr�CoolerColor�sr�r�r�c@seZdZe�Ze�Ze�ZdS)z2TestEnum.test_multiple_mixin.<locals>.CoolestColorNr�rrrr�CoolestColor�sr�c@seZdZe�Ze�Ze�ZdS)z3TestEnum.test_multiple_mixin.<locals>.ConfusedColorNr�rrrr�
ConfusedColor�sr�c@seZdZe�Ze�Ze�ZdS)z3TestEnum.test_multiple_mixin.<locals>.ReformedColorNr�rrrr�
ReformedColor�sr�)rr�r$r�r%r&r�r}r�r�rr@�
issubclassr�)rAr�r�r�r�r�r�r�r�r�r�rrr�test_multiple_mixin�srzTestEnum.test_multiple_mixincCsNGdd�dtt�}tGdd�d|��}Gdd�d|�}tGdd�d|��}dS)	Nc@seZdZdd�ZdS)z7TestEnum.test_multiple_inherited_mixin.<locals>.StrEnumc_s<|D]$}t|t�std|t|�jf��qtj|f|�|�S)Nz%Enumeration '%s' (%s) is not a string)rjr}r�r�rr�)r�r��kwargsrErrrr��s
�z?TestEnum.test_multiple_inherited_mixin.<locals>.StrEnum.__new__Nr�rrrrr �sr c@seZdZdZdZdZdS)z9TestEnum.test_multiple_inherited_mixin.<locals>.Decision1�REVERT�
REVERT_ALL�RETRYN�rrrr�r�r�rrrr�	Decision1�sr�c@seZdZdS)z6TestEnum.test_multiple_inherited_mixin.<locals>.MyEnumNr!rrrrr:�sr:c@seZdZdZdZdZdS)z9TestEnum.test_multiple_inherited_mixin.<locals>.Decision2r�r�r�Nr�rrrr�	Decision2�sr�)r}rr)rAr r�r:r�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��||�SrY)r�r�)r�r�r�rrr�sz=TestEnum.test_multiple_mixin_inherited.<locals>.MyInt.__new__r�rrr�rr>sr>c@seZdZdd�ZdS)z8TestEnum.test_multiple_mixin_inherited.<locals>.HexMixincSst|�SrYr6r�rrrr#szATestEnum.test_multiple_mixin_inherited.<locals>.HexMixin.__repr__Nr8rrrr�HexMixinsr�c@seZdZdS)z9TestEnum.test_multiple_mixin_inherited.<locals>.MyIntEnumNr!rrrrr�
sr�c@seZdZdZdS)z3TestEnum.test_multiple_mixin_inherited.<locals>.FoorN)rrr�TESTrrrr�Foo
sr�Z0x1c@seZdZdZdd�ZdS)z3TestEnum.test_multiple_mixin_inherited.<locals>.FeercSs|d7}t�||�}||_|Sr�)r�r�r�)r�r�r�rrrr�sz;TestEnum.test_multiple_mixin_inherited.<locals>.Fee.__new__N)rrrr�r�rrrr�Feesr�r)r�r=rr@rjr�r�r�)rAr>r�r�r�r�rrr�test_multiple_mixin_inheritedsz&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�)rA�codeZ	global_nsZlocal_lsrrr�test_empty_globalss
zTestEnum.test_empty_globalsN)rrrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrrr r!r)r5r;r@rArHrIrKrMrQrRrarcrfrirlrmrnrorprqrur{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�rrrrrrr"r'r*r+r/r8r>r?rCrHrNrXrarerkrnrrrtrvrwrxrzrr�r�r�r�r�r�r�rrrrrb�s�#	
				
		
	
	
				


$999957	


	% `rbc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�	TestOrdercCsGdd�dt�}dS)Nc@seZdZdZdZdZdZdS)z*TestOrder.test_same_members.<locals>.Color�red green bluerrrN�rrr�_order_r�r�r�rrrrr�(sr��rr�rrr�test_same_members'szTestOrder.test_same_memberscCsGdd�dt�}dS)Nc@s eZdZdZdZdZdZeZdS)z7TestOrder.test_same_members_with_aliases.<locals>.Colorr�rrrN�rrrr�r�r�r��verderrrrr�/s
r�r�r�rrr�test_same_members_with_aliases.sz(TestOrder.test_same_members_with_aliasesc	Cs,|�td��Gdd�dt�}W5QRXdS)N�#member order does not match _order_c@seZdZdZdZdZdZdS)z6TestOrder.test_same_members_wrong_order.<locals>.Colorr�rrrN)rrrr�r�r�r�rrrrr�8sr��r?r�rr�rrr�test_same_members_wrong_order6sz'TestOrder.test_same_members_wrong_orderc	Cs,|�td��Gdd�dt�}W5QRXdS)Nr�c@seZdZdZdZdZdZdS)z5TestOrder.test_order_has_extra_members.<locals>.Color�red green blue purplerrrNr�rrrrr�@sr�r�r�rrr�test_order_has_extra_members>sz&TestOrder.test_order_has_extra_membersc	Cs,|�td��Gdd�dt�}W5QRXdS)Nr�c@s eZdZdZdZdZdZeZdS)zBTestOrder.test_order_has_extra_members_with_aliases.<locals>.Colorr�rrrNr�rrrrr�Hs
r�r�r�rrr�)test_order_has_extra_members_with_aliasesFsz3TestOrder.test_order_has_extra_members_with_aliasesc	Cs,|�td��Gdd�dt�}W5QRXdS)Nr�c@s eZdZdZdZdZdZdZdS)z4TestOrder.test_enum_has_extra_members.<locals>.Colorr�rrrrcN)rrrr�r�r�r��purplerrrrr�Qs
r�r�r�rrr�test_enum_has_extra_membersOsz%TestOrder.test_enum_has_extra_membersc	Cs,|�td��Gdd�dt�}W5QRXdS)Nr�c@s$eZdZdZdZdZdZdZeZdS)zATestOrder.test_enum_has_extra_members_with_aliases.<locals>.Colorr�rrrrcN)	rrrr�r�r�r�r�r�rrrrr�Zsr�r�r�rrr�(test_enum_has_extra_members_with_aliasesXsz2TestOrder.test_enum_has_extra_members_with_aliasesN)
rrrr�r�r�r�r�r�r�rrrrr�%s		r�c@s�eZdZGdd�de�ZGdd�de�ZGdd�de�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zejd3d4��Zd5S)6�TestFlagc@seZdZd\ZZZdS)z
TestFlag.Perm)rcrrN)rrr�R�W�Xrrrr�Permfsr�c@s eZdZdZdZdZdZdZdS)z
TestFlag.Openrrrr�N�rrr�RO�WO�RW�AC�CErrrr�Openis
r�c@s$eZdZdZdZdZdZeeBZdS)zTestFlag.ColorrrrrcN�rrr�BLACKr$r%r&ZPURPLErrrrr�ps
r�cCs�|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�r�r�r}r�r�r�r�r�r�r�r��rAr�r�rrr�test_strws0 zTestFlag.test_strcCs�|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: 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>r��<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>�r�r�r�r�r�r�r�r�r�r�r�r�rrr�	test_repr�s0 zTestFlag.test_reprcCs8|j}|�t|jd�d�|�t|j|jBd�d�dS)Nr�r�r��r�r�r�r�r��rAr�rrr�test_format�szTestFlag.test_formatcCs�|j}|D]X}|D]N}|�||B||j|jB��|�||Bj|j|jB�|�t||B�|�qq
|D]}|�||B|�qh|j}|�|j|jB|j�dSrY�r�r�r�r�r�r�r�r��rAr�r��jr�rrr�test_or�szTestFlag.test_orc
Cs�|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}|D]<}|D]2}|�||@j|j|j@�|�t||@�|�qbqZ|D]4}|�||@|�|�||@|�|�||@|�q�|j	}	|�|	j
|	j@|	j
�dS�Nr)r�r�r�r�r�r�r�r�r�r�r�r��
rAr�r��RX�WX�RWX�valuesr�rr�rrr�test_and�s zTestFlag.test_andcCs�|j}|D]<}|D]2}|�||Aj|j|jA�|�t||A�|�qq
|D],}|�||d�A|�|�|d�|A|�qL|j}|�|j|jA|j�|�|j|jA|j�dSrrrrrr�test_xor�szTestFlag.test_xorc	Cs�|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}|D]&}|�t|�|�|�||�qZ|D]}|�||�q�|j}|�|j	|j	@|j
�|�|j	|jB|j	@|j�dSr)r�r�r�r�r�r�r�r�r�r�r�r��	rAr�r�rrrr	r�r�rrr�test_invert�szTestFlag.test_invertcCsD|j}|D]}|�|�q
|j}|D]}|�t|j�t|��q$dSrY�r�r@r�r�r�r��rAr��fr�rrrr��szTestFlag.test_boolcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]b\}}d|>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�q\dS�Nr��R W Xrr�rr�r�r�r�r�r�r�r�r�r�r�r�r�r��rAr�r�r��nr�r�rrr� test_programatic_function_string�s
z)TestFlag.test_programatic_function_stringcCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]b\}}d|>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�q`dS�Nr�rr_r�rrrrrr�+test_programatic_function_string_with_start	sz4TestFlag.test_programatic_function_string_with_startcCs�tddddg�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]b\}}d|>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�qbdS�Nr�r�r�r�rrrrrrrr�%test_programatic_function_string_list	sz.TestFlag.test_programatic_function_string_listcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]j\}}dd|d>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�q\dS�Nr�))r�r)r�r_)r�r\rrrrrrrrr�"test_programatic_function_iterable"	s
z+TestFlag.test_programatic_function_iterablecCs�tdtd��}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td�	��D]j\}}dd|d>}||�}|�|j
|�|�t|j
�t�|�|j
|�|�||�|�t|�|�q`dSr)rrr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�#test_programatic_function_from_dict1	sz,TestFlag.test_programatic_function_from_dictcCs2ttt�rt�t|jtjtjB�t|jt�dSrY)rjrrkr3r�rrr�rrr�test_pickle@	s
zTestFlag.test_picklec	Cs�|j}|j}|�|j|k�|�|j|k�|�t��d|kW5QRX|�t��d|kW5QRX|�t��d|kW5QRX|�t��d|kW5QRXdS)Nr�r�r)r�r�r<r�r�r�r��rAr�r�rrrr�F	szTestFlag.test_containsc	Cs�|j}|\}}}||B}||B}||B}||B|B}|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�dSrY)r�r@r<�	rAr�r�r�r�r�rrrrrr�test_member_containsT	s$
zTestFlag.test_member_containscCs`Gdd�dt�}|�t|�|j|j|jg�|�|jjd�|�|jjd�|�|jjd�dS)Nc@seZdZe�Ze�Ze�ZdS)z(TestFlag.test_auto_number.<locals>.ColorNrlrrrrr�i	sr�rrrc)rr�r�r�r�r�r�r�rrrrnh	s
zTestFlag.test_auto_numberc	Cs,|�td��Gdd�dt�}W5QRXdS)Nz Invalid Flag value: .not an int.c@seZdZdZe�ZdS)z0TestFlag.test_auto_number_garbage.<locals>.Colorz
not an intNrurrrrr�u	sr�)r?r�rr�rrr�test_auto_number_garbages	sz!TestFlag.test_auto_number_garbagecCstGdd�dt�}|�td|d�|�td|d�|�td|d�|�td|d�|�td|d�|�td|d�dS)	Nc@seZdZdZdZdZdS)z0TestFlag.test_cascading_failure.<locals>.BizarrerrcrSN)rrrr^�drrrrr�Bizarrez	sr$z5 is not a valid Bizarrermz2 is not a valid Bizarrerz1 is not a valid Bizarrer)rr?r��rAr$rrr�test_cascading_failurey	szTestFlag.test_cascading_failurecCs0Gdd�dt�}|�|j|j|jgt|��dS)Nc@s"eZdZe�ZZe�Ze�ZdS)z+TestFlag.test_duplicate_auto.<locals>.DupesNr{rrrrr|�	s
r|r}r~rrrr�	szTestFlag.test_duplicate_autocCs(Gdd�dt�}|�t|d��d�dS)Nc@seZdZdZdZdZdS)z&TestFlag.test_bizarre.<locals>.BizarrerrcrSN)rrrr]r^r#rrrrr$�	sr$rTz<Bizarre.d|c|b: 7>)rr�r�r%rrr�test_bizarre�	szTestFlag.test_bizarrecCsPGdd�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@seZdZedd��ZdS)z.TestFlag.test_multiple_mixin.<locals>.AllMixincSs<t|�}d}|r2|d}|dd�D]}||O}q$||_|Sr��r��ALL�r��membersZ	all_valuer�rrrr)�	s
z2TestFlag.test_multiple_mixin.<locals>.AllMixin.ALLN�rrrrXr)rrrr�AllMixin�	sr-c@seZdZdd�ZdS)z.TestFlag.test_multiple_mixin.<locals>.StrMixincSs
|j��SrYr�r�rrrr�	sz6TestFlag.test_multiple_mixin.<locals>.StrMixin.__str__Nr+rrrrr��	sr�c@seZdZe�Ze�Ze�ZdS�z+TestFlag.test_multiple_mixin.<locals>.ColorNr�rrrrr��	sr�rrrcrTr�c@seZdZe�Ze�Ze�ZdSr.r�rrrrr��	sr�c@seZdZe�Ze�Ze�ZdSr.r�rrrrr��	s)rr�r$r�r%r&r)r}�rAr-r�r�rrrr��	s(zTestFlag.test_multiple_mixinc	sxGdd�dt��t��d����fdd���fdd�td�D�}t�|��W5QRX|��d	�|�d
t��d�dS)Nc@sLeZdZe�Ze�Ze�Ze�Ze�Ze�Z	e�Z
e�Zdd�Zdd�Z
dS)z0TestFlag.test_unique_composite.<locals>.TestFlagcSs||kSrYrr,rrrr��	sz7TestFlag.test_unique_composite.<locals>.TestFlag.__eq__cSs
t|j�SrY��hashr�r�rrr�__hash__�	sz9TestFlag.test_unique_composite.<locals>.TestFlag.__hash__N�rrrr	r�r�r�ZfourZfiveZsixZsevenZeightr�r2rrrrr��	sr�Fcs>z td�D]}���|��q
Wntk
r8d�YnXdS�N�T�r/�addrk�r��r��failed�seenrr�
cycle_enum�	s
z2TestFlag.test_unique_composite.<locals>.cycle_enumcsg|]}tj�d��qS�)r2��	threading�Thread�r�rM�r<rrr��	s�z2TestFlag.test_unique_composite.<locals>.<listcomp>r_�;at least one thread failed while creating composite membersr5�"too many composite members created)rr�r/r�
start_threadsr<r�r��rA�threadsr�r�r<r:r;r�test_unique_composite�	s
�
�zTestFlag.test_unique_compositeN) rrrrr�r�r�r�r�r�rr
rr
r�rrrrrrr�r!rnr"r&rr'r�r�reap_threadsrIrrrrr�cs6

+r�c@s�eZdZGdd�de�ZGdd�de�ZGdd�de�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zejd-d.��Zd/S)0�TestIntFlagc@seZdZdZdZdZdS)zTestIntFlag.PermrrrcN)rrrr�r�r�rrrrr��	sr�c@s eZdZdZdZdZdZdZdS)zTestIntFlag.Openrrrrr�Nr�rrrrr��	s
r�c@s$eZdZdZdZdZdZeeBZdS)zTestIntFlag.ColorrrrrcNr�rrrrr��	s
r�cCs�|j}|�|jtk�|j}|D]"}|�t||��|�||j�q |�t|j|j	B|��|�|j|j	Bd�|D]"}|�t||��|�||j�qt|�t|j
|jB|��|�|j
|jBd�dS)Nr)r�r@r4r�r�rjr�r�r�r�r�r�)rAr�r�rrrr�	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)Nr�r�r�r�r�r_zPerm.8|Rrr�zPerm.8r�r�zPerm.-8r����r�r�r�r�r�rczOpen.4r�r�z
Open.AC|RW|WOr����r�r�rrrr�
s< 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)#Nr�r�r�r�r�r_z<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>r�z<Perm.R|W|X: -1>rMz<Perm.R|W|X: -9>r�r�r�r�r�rcz<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>rNz<Open.CE|AC|RW|WO: -5>r�r�rrrr�-
s< zTestIntFlag.test_reprcCs8|j}|�t|jd�d�|�t|j|jBd�d�dS)Nr��4�5r�r�rrrr�N
szTestIntFlag.test_formatcCsL|j}|D]�}|D]J}|�||B|j|jB�|�||Bj|j|jB�|�t||B�|�qtd�D]�}|�||B|j|B�|�||Bj|j|B�|�t||B�|�|�||B||jB�|�||Bj||jB�|�t||B�|�qfq
|D]4}|�||B|�|�|dB|�|�d|B|�q�|j}|�|j|jB|j�dS�Nr_r�	r�r�r�r�r�r/r�r�r�rrrrrS
s&zTestIntFlag.test_orc
	Cs�|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}|D�]}|D]h}|�||@|j|j@d||f�|�||@j|j|j@d||f�|�t||@�|d||f�qdt	d�D]�}|�||@|j|@�|�||@j|j|@�|�t||@�|�|�||@||j@�|�||@j||j@�|�t||@�|�q�qZ|D]6}|�||@|�|�|d@|�|�d|@|��qf|j
}	|�|	j|	j@|	j�dS)Nrzi is %r, j is %rr_rT)
r�r�r�r�r�r�r�r�r�r/r�r�r�rrrrr
h
s0
"$ zTestIntFlag.test_andcCsR|j}|D]�}|D]J}|�||A|j|jA�|�||Aj|j|jA�|�t||A�|�qtd�D]�}|�||A|j|A�|�||Aj|j|A�|�t||A�|�|�||A||jA�|�||Aj||jA�|�t||A�|�qfq
|D]$}|�|dA|�|�d|A|�q�|j}|�|j|jA|j�|�|j|jA|j�dSrQrRrrrrr�
s&zTestIntFlag.test_xorc	Cs|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}|D]L}|�||j�|�|j|j�|�t|�|�|�||�qZ|D]}|�||�q�|j	}|�|j
|j
@|j�|�|j
|jB|j
@|j�dSr)
r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr
�
s zTestIntFlag.test_invertcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]n\}}d|>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�q\dSr�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr�
s
z,TestIntFlag.test_programatic_function_stringcCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]n\}}d|>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�q`dSrrSrrrrr�
sz7TestIntFlag.test_programatic_function_string_with_startcCs�tddddg�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]n\}}d|>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�qbdSrrSrrrrr�
sz1TestIntFlag.test_programatic_function_string_listcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td���D]v\}}dd|d>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�q\dSrrSrrrrr�
s
z.TestIntFlag.test_programatic_function_iterablecCs�tdtd��}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�td�	��D]v\}}dd|d>}||�}|�|j
|�|�t|j
�t�|�||�|�|j
|�|�||�|�t|�|�q`dSr)rrr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr�
sz/TestIntFlag.test_programatic_function_from_dictcCsxt�dg�}t|�}|�t|�t|��|�t|�d|�t�dg�}t|�}|�t|�t|��|�t|�d|�dS)Nr�r�Thing�r=rr�r�r�r�rAr�r�rTrrr�)test_programatic_function_from_empty_list�
sz5TestIntFlag.test_programatic_function_from_empty_listcCspt�dd�}t|�}|�t|�t|��|�t|�d|�t�dd�}|�t|�t|��|�t|�d|�dS)Nr�rrrTrUrVrrr�*test_programatic_function_from_empty_tuplesz6TestIntFlag.test_programatic_function_from_empty_tuplec	Cs�|j}|j}|�|j|k�|�|j|k�|�|j|k�|�|j|k�|�t��d|kW5QRX|�t��d|kW5QRX|�t��d|kW5QRX|�t��d|kW5QRXdS)Nr%r�r)r�r�r@r%r�r<r�r�rrrrr�szTestIntFlag.test_containsc		Cs|j}|\}}}||B}||B}||B}||B|B}|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�t��|�d|k�W5QRXdS)Nr)r�r@r<r�r�r rrrr!s(
z TestIntFlag.test_member_containscCsD|j}|D]}|�|�q
|j}|D]}|�t|j�t|��q$dSrYrrrrrr�4szTestIntFlag.test_boolcCsPGdd�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@seZdZedd��ZdS)z1TestIntFlag.test_multiple_mixin.<locals>.AllMixincSs<t|�}d}|r2|d}|dd�D]}||O}q$||_|Sr�r(r*rrrr)>s
z5TestIntFlag.test_multiple_mixin.<locals>.AllMixin.ALLNr,rrrrr-=sr-c@seZdZdd�ZdS)z1TestIntFlag.test_multiple_mixin.<locals>.StrMixincSs
|j��SrYr�r�rrrrIsz9TestIntFlag.test_multiple_mixin.<locals>.StrMixin.__str__Nr+rrrrr�Hsr�c@seZdZe�Ze�Ze�ZdS�z.TestIntFlag.test_multiple_mixin.<locals>.ColorNr�rrrrr�Ksr�rrrcrTr�c@seZdZe�Ze�Ze�ZdSrYr�rrrrr�Tsr�c@seZdZe�Ze�Ze�ZdSrYr�rrrrr�]s)rr�r$r�r%r&r)r}r/rrrr�<s(zTestIntFlag.test_multiple_mixinc	sxGdd�dt��t��d����fdd���fdd�td�D�}t�|��W5QRX|��d	�|�d
t��d�dS)Nc@sLeZdZe�Ze�Ze�Ze�Ze�Ze�Z	e�Z
e�Zdd�Zdd�Z
dS)z3TestIntFlag.test_unique_composite.<locals>.TestFlagcSs||kSrYrr,rrrr�ssz:TestIntFlag.test_unique_composite.<locals>.TestFlag.__eq__cSs
t|j�SrYr0r�rrrr2usz<TestIntFlag.test_unique_composite.<locals>.TestFlag.__hash__Nr3rrrrr�jsr�Fcs>z td�D]}���|��q
Wntk
r8d�YnXdSr4r6r8r9rrr<zs
z5TestIntFlag.test_unique_composite.<locals>.cycle_enumcsg|]}tj�d��qSr=r>rArBrrr��s�z5TestIntFlag.test_unique_composite.<locals>.<listcomp>r_rCr5rD)rr�r/rrEr<r�r�rFrrHrrIgs
�
�z!TestIntFlag.test_unique_compositeN)rrrrr�r�r�rLr�r�r�rr
rr
rrrrrrWrXr�r!r�r�rrJrIrrrrrK�	s0!!	+rKc@s$eZdZdd�Zdd�Zdd�ZdS)�TestEmptyAndNonLatinStringsc	Cs$|�t��tdd�}W5QRXdS)N�	empty_abc)r�rprqr�)rAr[rrr�test_empty_string�sz-TestEmptyAndNonLatinStrings.test_empty_stringcCs&tdd�}t|d�}|�|jd�dS)N�	greek_abc)�αrprqr^r�rr�r�r�)rAr]r�rrr�test_non_latin_character_string�s

z;TestEmptyAndNonLatinStrings.test_non_latin_character_stringcCs&tdd�}t|d�}|�|jd�dS)N�
hebrew_123)�א�2�3rbrr_)rArar�rrr�test_non_latin_number_string�s

z8TestEmptyAndNonLatinStrings.test_non_latin_number_stringN)rrrr\r`rerrrrrZ�srZc@s$eZdZdd�Zdd�Zdd�ZdS)�
TestUniquecCs,tGdd�dt��}tGdd�dt��}dS)Nc@seZdZdZdZdZdS)z+TestUnique.test_unique_clean.<locals>.Cleanrr�g@N�rrrr�r�r�rrrr�Clean�srhc@seZdZdZdZdZdS)z-TestUnique.test_unique_clean.<locals>.CleanerrrrN)rrr�single�double�triplerrrr�Cleaner�srl�rrr)rArhrlrrr�test_unique_clean�szTestUnique.test_unique_cleanc	Cs\|�td��tGdd�dt��}W5QRX|�td��tGdd�dt��}W5QRXdS)Nz	tres.*onec@seZdZdZdZdZdS)z+TestUnique.test_unique_dirty.<locals>.Dirtyrr�Nrgrrrr�Dirty�srozdouble.*single.*turkey.*triplec@seZdZdZdZdZdZdS)z-TestUnique.test_unique_dirty.<locals>.DirtierrrN)rrrrirjrkZturkeyrrrr�Dirtier�srp)r?r�rrr)rArorprrr�test_unique_dirty�s�zTestUnique.test_unique_dirtycCs,tGdd�dt��}tGdd�dt��}dS)Nc@seZdZdZdZdZdS)z/TestUnique.test_unique_with_name.<locals>.Sillyrr�rN)rrrr�r�r�rrrr�Silly�srrc@seZdZdZdZdZdZdS)z1TestUnique.test_unique_with_name.<locals>.SillierrrrrcN)rrrrir�rkr�rrrr�Sillier�srsrm)rArrrsrrr�test_unique_with_name�sz TestUnique.test_unique_with_nameN)rrrrnrqrtrrrrrf�srfa�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@seZdZdZdZdZdS)zTestStdLib.ColorrrrNr�rrrrr�sr�cCsTtjdkrtt}ntt}t�}tj|d�}||j�|�	��
�}|�||�dS)N)�output)r r]�!expected_help_output_without_docsr�expected_help_output_with_docsr
�pydocZHelperr��getvalue�stripr�)rAZ
expected_textrv�helper�resultrrr�
test_pydocs


zTestStdLib.test_pydoccCs�tdtfdd|jjfdtfd|jjfd|jjfdtjdfd|jj	fd	tjd	ff	�}tt
�|j��}|�|�
�|�
��d
}|�
�D]@}||||kr�t�tdd|||||dfd
d�d}q�|r�|�d�dS)Nr�)r]�An enumeration.r�rr�r�r�r�r�Fz.
%s
     key: %s
  result: %s
expected: %s
%s
�K===========================================================================r���sepT�/result does not equal expected, see print above)�dictrr�r�rr�r�r�__dict__r��inspectZ
getmembersr��keysr9�fail)rAr	r}r:r�rrr�test_inspect_getmembers)s2



���z"TestStdLib.test_inspect_getmemberscCs2ddlm}|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}q�|�r.|�d�dS)Nr)�	Attributer��data)r��kindZdefining_classr'r]rr�r�rr�r�r�r�r�cSs|jSrYr��r�rrr�<lambda>X�z>TestStdLib.test_inspect_classify_class_attrs.<locals>.<lambda>)�keycSs|jSrYr�r�rrrr�Zr�Fz
%s
%s
%s
%s
r�r�r�Tr�)r�r�r'rr�r�rr�r�r�rr��sortr�Zclassify_class_attrsrdr9r�)rAr�r	r}r:r��rrrr�!test_inspect_classify_class_attrsAs`����������z,TestStdLib.test_inspect_classify_class_attrs)	rrrZmaxDiffrr�r~r�r�rrrrrus
ruc@seZdZdd�ZdS)�MiscTestCasecCst�|t�dSrY)rZcheck__all__r=r�rrr�test__all__eszMiscTestCase.test__all__N)rrrr�rrrrr�dsr�rmc@sXeZdZdd�Zdd�Ze�ejdd�dkd�d	d
��Z	e�ejdkd�d
d��Z
dS)�TestIntEnumConvertcCs4tjjddtdkdd�d�}|�|d�jd�dS)	N�UnittestConvert�ztest.test_enum�__main__r�cSs
|�d�S�NZ
CONVERT_TEST_��
startswith�rrrrr�wr�zGTestIntEnumConvert.test_convert_value_lookup_priority.<locals>.<lambda>��filterrm�CONVERT_TEST_NAME_A)r=r�	_convert_rr�r��rArLrrr�"test_convert_value_lookup_priorityss
�z5TestIntEnumConvert.test_convert_value_lookup_prioritycCs�tjjddtdkdd�d�}|�|j|j�|�|jd�|�|jd�|�|j	d�|�|j
d�|jdd	�t|�D�gd
d�dS)Nr�r�r�cSs
|�d�Sr�r�r�rrrr��r�z1TestIntEnumConvert.test_convert.<locals>.<lambda>r�rmcSs g|]}|dd�dkr|�qS)rr)ZCOrNr)r�r�rrrr��s�z3TestIntEnumConvert.test_convert.<locals>.<listcomp>z&Names other than CONVERT_TEST_* found.)�msg)r=rr�rr��CONVERT_TEST_NAME_Fr��CONVERT_TEST_NAME_B�CONVERT_TEST_NAME_C�CONVERT_TEST_NAME_D�CONVERT_TEST_NAME_Er�r�rrr�test_convert}s 
���zTestIntEnumConvert.test_convertNr)rr_z_convert was deprecated in 3.8c	Cs8|�t��$tjjddtdkdd�d�W5QRXdS)Nr�r�r�cSs
|�d�Sr�r�r�rrrr��r�z6TestIntEnumConvert.test_convert_warn.<locals>.<lambda>r�)ZassertWarns�DeprecationWarningr=r�_convertrr�rrr�test_convert_warn�s
�z$TestIntEnumConvert.test_convert_warn)rr�z_convert was removed in 3.9c	Cs8|�t��$tjjddtdkdd�d�W5QRXdS)Nr�r�r�cSs
|�d�Sr�r�r�rrrr��r�z7TestIntEnumConvert.test_convert_raise.<locals>.<lambda>r�)r�r�r=rr�rr�rrr�test_convert_raise�s
�z%TestIntEnumConvert.test_convert_raise)rrrr�r��unittestZ
skipUnless�sys�version_infor�r�rrrrr�rs
�
�r�r�)N)Ar=r�ryr�r�r?�collectionsrrrrrrrr	�ior
�picklerrr
rrrr~rrrkr�r�rr|rrr}r r"rr%r(r)r,r3r6ZTestCaser7rXrbr�r�rKrZrfrxrwrur�r�r�r�r�r�r�r��mainrrrr�<module>s�$
*>+/'P/


F1le Man4ger