HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_enum.cpython-37.pyc
B

��g"��
@s�ddlZddlZddlZddlZddlZddlmZddlmZmZm	Z	m
Z
mZmZm
Z
ddlmZddlmZmZmZmZddlmZddlmZyddlZWnek
r�dZYnXyGdd	�d	e�ZWn&ek
r�ZzeZWddZ[XYnXyGd
d�dee�ZWn(ek
�r4ZzeZWddZ[XYnXyGdd
�d
ee�Z Wn(ek
�rtZzeZ WddZ[XYnXyGdd�de
�Z!Wn(ek
�r�ZzeZ!WddZ[XYnXy&Gdd�de"e�Z#Gdd�de#�Z$Wn(ek
�rZzeZ$WddZ[XYnXyedde%d�Z&Wn(ek
�r>ZzeZ&WddZ[XYnXyedd�Z'Wn(ek
�rvZzeZ'WddZ[XYnXyedddd�Z(Wn(ek
�r�ZzeZ(WddZ[XYnXyGdd�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__�LARRY�CURLY�MOE�rr�*/usr/local/lib/python3.7/test/test_enum.pyrsrc@seZdZdZdZdZdS)�
IntStoogesrrrN)rrrrrrrrrrrsrc@seZdZdZdZdZdS)�FloatStoogesg=
ףp=�?g�(\��@g�R$_	$	@N)rrrrrrrrrrr$src@seZdZdZdZdZdS)�FlagStoogesrrrN)rrrrrrrrrrr,src@seZdZdZdS)�StrEnumzaccepts only string valuesN)rrr�__doc__rrrrr 5sr c@seZdZdZdZdS)�NamezGuido van RossumzBarry WarsawN)rrr�BDFLZFLUFLrrrrr"7sr"�Questionzwho what when where why)�module�Answerzhim this then there because�Theoryzrule law supposition�spanish_inquisition)�qualnamec@seZdZdZdZdZdS)�FruitrrrN)rrrZTOMATOZBANANAZCHERRYrrrrr*Nsr*cCs<|dkr|}x*ttd�D]}|tt||d��|�qWdS)Nr)�protocol)�rangerrr)�	assertion�source�targetr+rrr�test_pickle_dump_loadUsr0c
Cs:x4ttd�D]$}||��t||d�WdQRXqWdS)Nr)r+)r,rr)r-Z	exception�objr+rrr�test_pickle_exception[s
r2c@s$eZdZdd�Zdd�Zdd�ZdS)�TestHelperscCsRGdd�d�}x>dD]6}|�}|�t�|��t||d�|�t�|��qWdS)Nc@seZdZdS)z+TestHelpers.test_is_descriptor.<locals>.fooN)rrrrrrr�foodsr4)�__get__�__set__�
__delete__r)�assertFalse�enum�_is_descriptor�setattr�
assertTrue)�selfr4�attrr1rrr�test_is_descriptorcs
zTestHelpers.test_is_descriptorcCs@xdD]}|�t�|��qWxdD]}|�t�|��q$WdS)N)�_a_Z_aa_)
�a�a_�_a�__a�a__�__a__�_a__�__a_�_�__�___�____�_____)r<r9�
_is_sunderr8)r=�srrr�test_is_sunderls

zTestHelpers.test_is_sundercCs@xdD]}|�t�|��qWxdD]}|�t�|��q$WdS)N)rFZ__aa__)
rArBrCrDrEr@rGrHrIrJrKrLrM)r<r9�
_is_dunderr8)r=rOrrr�test_is_dunderts

zTestHelpers.test_is_dunderN)rrrr?rPrRrrrrr3`s	r3c@seZdZddd�Zdd�ZdS)�
classpropertyNcCs2||_||_||_|dkr(|dk	r(|j}||_dS)N)�fget�fset�fdelr!)r=rTrUrV�docrrr�__init__szclassproperty.__init__cCs
|�|�S)N)rT)r=�instance�
ownerclassrrrr5�szclassproperty.__get__)NNNN)rrrrXr5rrrrrS}s
rSc@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�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�srac@seZdZdZdZdeZdS)z!TestEnum.setUp.<locals>.KonstantsgB�
�@gJ�M�!	@rN)rrr�EZPI�TAUrrrr�	Konstants�srdc@s eZdZdZdZdZdZdZdS)zTestEnum.setUp.<locals>.Grades�r\rrrN)rrr�A�B�C�D�Frrrr�Grades�s
rkc@seZdZdZdZdZdZdS)z#TestEnum.setUp.<locals>.DirectionalZeastZwestZnorthZsouthN)rrrZEAST�WESTZNORTHZSOUTHrrrr�Directional�srmr)�datec@seZdZdZdZdS)zTestEnum.setUp.<locals>.Holiday)i�rr)i�r�N)rrrZNEW_YEAR�
IDES_OF_MARCHrrrr�Holiday�srq)rra�floatrdrrk�strrm�datetimernrq)r=rardrkrmrnrqrrr�setUp�szTestEnum.setUpcCs2|j}|�tt|��tddddddddg��dS)	N�	__class__r!�__members__rr]r^r_r`)ra�assertEqual�set�dir)r=rarrr�test_dir_on_class�s


zTestEnum.test_dir_on_classc	Cs.|j}|�tt|j��tdddddg��dS)Nrvr!r�name�value)rarxryrzr`)r=rarrr�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|)r=rrr�wowser�sz:TestEnum.test_dir_with_added_behavior.<locals>.Test.wowserN)rrr�this�theser�rrrr�Test�sr�rvr!rwrr�r�r|r}r�)rrxryrzr�)r=r�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?r)r=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>.SubEnumreN)rrr�samplerrrr�SubEnum�sr�rvr!rr|r}r�)rrxryrzr�)r=r�r�rrr�&test_dir_on_sub_with_behavior_on_super�s
z/TestEnum.test_dir_on_sub_with_behavior_on_supercCs|j}|�||j�|j�dS)N)ra�assertIsr`)r=rarrr�test_enum_in_enum_out�szTestEnum.test_enum_in_enum_outcCs|j}|�|jjd�dS)Nr)rarxr]r})r=rarrr�test_enum_value�szTestEnum.test_enum_valuecCs|�tjjd�dS)Nr)rxrrr})r=rrr�test_intenum_value�szTestEnum.test_intenum_valuecCs|j}t|�}|�t|�t|��|�t|�d|�|�|j|j|j|jg|�x�td�	�d�D]�\}}||�}|�|t
||��|�|j|�|�||�|�|j
|�|�||�|�t|�|�|�||�|�t|�d|�|�t|�d�||��q`WdS)Nr\zSPRING SUMMER AUTUMN WINTERrzSeason.z<Season.{0}: {1}>)ra�listrx�lenr]r^r_r`�	enumerate�split�getattrr}�assertNotEqualr|�assertInr��type�assertIsInstancers�repr�format)r=ra�lst�iZseason�errr�	test_enum�s&zTestEnum.test_enumc	Csf|j}|�|jjd�|�|jjd�|�t��d|j_WdQRX|�t��d|j_WdQRXdS)Nr]rZinviernor)rarxr]r|r}�assertRaises�AttributeError)r=rarrr�test_value_name�szTestEnum.test_value_namec	Cs&|j}|�t��d|_WdQRXdS)Nzreally cold)rar�r�r`)r=rarrr�test_changing_memberszTestEnum.test_changing_memberc	Cs�Gdd�dt�}|�t|d��|`|�t|d��|�t��
|`WdQRX|�t��
|`WdQRX|�t��|j`	WdQRXdS)Nc@s$eZdZdZdZdZdZdd�ZdS)z0TestEnum.test_attribute_deletion.<locals>.Seasonrrrr\cSsdS)Nr)�clsrrr�spamsz5TestEnum.test_attribute_deletion.<locals>.Season.spamN)rrrr]r^r_r`r�rrrrra
s
rar�)
rr<�hasattrr�r8r�r�r]ZDRYr|)r=rarrr�test_attribute_deletions	z TestEnum.test_attribute_deletioncCs"Gdd�dt�}|�t|��dS)Nc@seZdZdS)z*TestEnum.test_bool_of_class.<locals>.EmptyN)rrrrrrr�Empty"sr�)rr<�bool)r=r�rrr�test_bool_of_class!szTestEnum.test_bool_of_classcCs0Gdd�dt�}x|D]}|�t|��qWdS)Nc@seZdZdZdZdZdS)z+TestEnum.test_bool_of_member.<locals>.CountrrrN)rrrZzero�one�tworrrr�Count'sr�)rr<r�)r=r��memberrrr�test_bool_of_member&s
zTestEnum.test_bool_of_memberc	Cs�|�t��Gdd�dt�}WdQRX|�t��Gdd�dt�}WdQRX|�t��Gdd�dt�}WdQRX|�t��Gdd�dt�}WdQRX|�t��Gdd�dt�}WdQRXdS)Nc@seZdZdZdS)z*TestEnum.test_invalid_names.<locals>.Wrong�	N)rrr�mrorrrr�Wrong0sr�c@seZdZdZdS)z*TestEnum.test_invalid_names.<locals>.Wrong�N)rrr�_create_rrrrr�3sc@seZdZdZdS)z*TestEnum.test_invalid_names.<locals>.Wrongr�N)rrr�_get_mixins_rrrrr�6sc@seZdZdZdS)z*TestEnum.test_invalid_names.<locals>.WrongrN)rrr�
_find_new_rrrrr�9sc@seZdZdZdS)z*TestEnum.test_invalid_names.<locals>.Wrongr�N)rrrZ
_any_name_rrrrr�<s)r��
ValueErrorr)r=r�rrr�test_invalid_names.s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�LogicAsr�c@seZdZdZdZdd�ZdS)z%TestEnum.test_bool.<locals>.RealLogicTFcSs
t|j�S)N)r��_value_)r=rrr�__bool__Jsz.TestEnum.test_bool.<locals>.RealLogic.__bool__N)rrrr�r�r�rrrr�	RealLogicGsr�c@seZdZdZdZdS)z$TestEnum.test_bool.<locals>.IntLogicrrN)rrrr�r�rrrr�IntLogicOsr�)rr<r�r�r8�int)r=r�r�r�rrr�	test_bool?szTestEnum.test_boolc	Cs�|j}|�|j|�|�t��|�d|�WdQRX|�t��|�d|�WdQRX|d�}|�||�Gdd�dt�}|�|j|�dS)Nrr_c@seZdZdZdZdS)z)TestEnum.test_contains.<locals>.OtherEnumrrN)rrrr�r�rrrr�	OtherEnum`sr�)rar�r_�assertWarns�DeprecationWarningZassertNotInrr�)r=ra�valr�rrr�
test_containsUszTestEnum.test_containscs@��t�fdd����t�fdd����t�fdd��dS)Ncsd�jjkS)N�test)rar_r)r=rr�<lambda>e�z/TestEnum.test_member_contains.<locals>.<lambda>csd�jjkS)Nr)rar_r)r=rrr�fr�csd�jjkS)Nr_)rar_r)r=rrr�gr�)r��	TypeError)r=r)r=r�test_member_containsdszTestEnum.test_member_containsc	Cs�|j}|�t��|j|jkWdQRX|�t��|jdkWdQRX|�|jd�Gdd�dt�}|�|j|j�|�t��|j|jkWdQRXdS)Nr\rc@seZdZdZdZdZdS)z'TestEnum.test_comparisons.<locals>.PartrrrN)rrrr]�CLIPZBARRELrrrr�Partrsr�)rar�r�r]r`r�rr�)r=rar�rrr�test_comparisonsis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>.Seasonrrrr\N)	rrrr]r^r_�FALLr`�ANOTHER_SPRINGrrrrra|s
rarrr_cSsg|]\}}|j|kr|�qSr)r|)�.0�k�vrrr�
<listcomp>�sz1TestEnum.test_enum_duplicates.<locals>.<listcomp>r�r�)
rr�rxr]r^r_r`r�r�r}r|rw�items)r=rar�rrr�test_enum_duplicates{szTestEnum.test_enum_duplicatesc	Csv|�t��Gdd�dt�}WdQRX|�t��Gdd�dt�}WdQRX|�t��Gdd�dt�}WdQRXdS)Nc@seZdZdZdZdZdZdS)z+TestEnum.test_duplicate_name.<locals>.Colorrrrr\N)rrr�red�green�bluerrrr�Color�sr�c@s eZdZdZdZdZdd�ZdS)z+TestEnum.test_duplicate_name.<locals>.ColorrrrcSsdS)Nr�r)r=rrrr��sz/TestEnum.test_duplicate_name.<locals>.Color.redN)rrrr�r�r�rrrrr��sc@s$eZdZedd��ZdZdZdZdS)z+TestEnum.test_duplicate_name.<locals>.ColorcSsdS)NZredderr)r=rrrr��sz/TestEnum.test_duplicate_name.<locals>.Color.redrrrN)rrr�propertyr�r�r�rrrrr��s)r�r�r)r=r�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)rrxr�r|r}r�r�)r=r�rrr�test_enum_with_value_name�sz"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)Nz{}z{:}z{:20}z{:^20}z{:>20}z{:<20})rarxr�r]rs)r=rarrr�test_format_enum�szTestEnum.test_format_enumcCs*Gdd�dtt�}|�d�|j�d�dS)Nc@seZdZdZdZdd�ZdS)z3TestEnum.test_format_enum_custom.<locals>.TestFloatg�?g@cSsdS)NzTestFloat success!r)r=�specrrr�
__format__�sz>TestEnum.test_format_enum_custom.<locals>.TestFloat.__format__N)rrrr�r�r�rrrr�	TestFloat�sr�z{}zTestFloat success!)rrrrxr�r�)r=r�rrr�test_format_enum_custom�sz TestEnum.test_format_enum_customcCs|�|�|�|�|j��dS)N)rxr�r})r=r�r�rrr�assertFormatIsValue�szTestEnum.assertFormatIsValuecCsz|j}|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�dS)	Nz{}z{:}z{:20}z{:^20}z{:>20}z{:<20}z{:%Y %m}z{:%Y %m %M:00})rqr�rp)r=rqrrr�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)
Nz{}z{:}z{:20}z{:^20}z{:>20}z{:<20}z{:n}z{:5.2}z{:f})rdr�rc)r=rdrrr�test_format_enum_float�szTestEnum.test_format_enum_floatcCs�|j}|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d	|j�dS)
Nz{}z{:}z{:20}z{:^20}z{:>20}z{:<20}z{:+}z{:08X}z{:b})rkr�rh)r=rkrrr�test_format_enum_int�szTestEnum.test_format_enum_intcCs^|j}|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�|�d|j�dS)Nz{}z{:}z{:20}z{:^20}z{:>20}z{:<20})rmr�rl)r=rmrrr�test_format_enum_str�szTestEnum.test_format_enum_strcCsH|j}i}d||j<d||j<d||j<d||j<|�||jd�dS)NZ1225Z0315Z0704Z1031)rar`r]r^r_rx)r=raZdatesrrr�	test_hash�s



zTestEnum.test_hashcCs(Gdd�dtt�}|�|j|jk�dS)Nc@seZdZdZdeZdS)z/TestEnum.test_intenum_from_scratch.<locals>.phyrrN)rrr�pi�taurrrr�phy	sr�)r�rr<r�r�)r=r�rrr�test_intenum_from_scratchsz"TestEnum.test_intenum_from_scratchcCs8Gdd�dtt�}Gdd�d|�}|�|j|jk�dS)Nc@seZdZdS)z0TestEnum.test_intenum_inherited.<locals>.IntEnumN)rrrrrrrrsrc@seZdZdZdeZdS)z,TestEnum.test_intenum_inherited.<locals>.phyrrN)rrrr�r�rrrrr�sr�)r�rr<r�r�)r=rr�rrr�test_intenum_inheritedszTestEnum.test_intenum_inheritedcCs(Gdd�dtt�}|�|j|jk�dS)Nc@seZdZdZdeZdS)z1TestEnum.test_floatenum_from_scratch.<locals>.phygJ�M�!	@rN)rrrr�r�rrrrr�sr�)rrrr<r�r�)r=r�rrr�test_floatenum_from_scratchsz$TestEnum.test_floatenum_from_scratchcCs8Gdd�dtt�}Gdd�d|�}|�|j|jk�dS)Nc@seZdZdS)z4TestEnum.test_floatenum_inherited.<locals>.FloatEnumN)rrrrrrr�	FloatEnumsr�c@seZdZdZdeZdS)z.TestEnum.test_floatenum_inherited.<locals>.phygJ�M�!	@rN)rrrr�r�rrrrr�sr�)rrrr<r�r�)r=r�r�rrr�test_floatenum_inheritedsz!TestEnum.test_floatenum_inheritedcCs(Gdd�dtt�}|�|j|jk�dS)Nc@seZdZdZdZdS)z/TestEnum.test_strenum_from_scratch.<locals>.phy�Pi�TauN)rrrr�r�rrrrr�%sr�)rsrr<r�r�)r=r�rrr�test_strenum_from_scratch$sz"TestEnum.test_strenum_from_scratchcCs8Gdd�dtt�}Gdd�d|�}|�|j|jk�dS)Nc@seZdZdS)z0TestEnum.test_strenum_inherited.<locals>.StrEnumN)rrrrrrrr +sr c@seZdZdZdZdS)z,TestEnum.test_strenum_inherited.<locals>.phyr�r�N)rrrr�r�rrrrr�-sr�)rsrr<r�r�)r=r r�rrr�test_strenum_inherited*szTestEnum.test_strenum_inheritedcCs:Gdd�dt�}|�dddg|jd�|�dd�t|j�D�dd	d
g�t|�}|�t|�t|��|�t|�d�d}|��}x�t|d	�D]�\}}||�}|�||�|�t	|�|�|�|j
|�|�||�|�|�|�d	|�|�
d|k�od
kn�|�t|�|�|�|t	�|�|t�q�WdS)Nc@s(eZdZdZdZdZdZdZdZdZ	dS)	z&TestEnum.test_intenum.<locals>.WeekDayrrrr\re��N)
rrr�SUNDAY�MONDAY�TUESDAY�	WEDNESDAY�THURSDAY�FRIDAY�SATURDAYrrrr�WeekDay4sr�rA�b�ccSsg|]}|�qSrr)r�r�rrrr�>sz)TestEnum.test_intenum.<locals>.<listcomp>rrrr�z8SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY�)rrxr�r,r�r�r�r�r�r�r|r��indexr<r�r�r�r)r=r�r�r/r�Zweekdayr�rrr�test_intenum3s&	" zTestEnum.test_intenumcCsTGdd�dt�}|�|j|j�|�|d�jd�|�dd�|j��D�dg�dS)Nc@s,eZdZdZdZdZZdZdZdZ	dZ
dS)	z1TestEnum.test_intenum_duplicates.<locals>.WeekDayrrrr\rer�r�N)rrrr�r�r��TEUSDAYr�r�r�r�rrrrr�Rsr�rr�cSsg|]\}}|j|kr|�qSr)r|)r�r�r�rrrr�\sz4TestEnum.test_intenum_duplicates.<locals>.<listcomp>r)rr�rr�rxr|rwr�)r=r�rrr�test_intenum_duplicatesQs
z TestEnum.test_intenum_duplicatesc	Cs<|�t�dd�tj�|�t��t�dd�WdQRXdS)NsZbigs)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�|�WdQRXdS)Ng{�G�z�?)	rr�hexrrr}r��fromhexr�r�)r=�hrrr�test_floatenum_fromhexds
zTestEnum.test_floatenum_fromhexcCs,ttt�rt�t|jtj�t|jt�dS)N)�
isinstancer�	Exceptionr0r�r)r=rrr�test_pickle_enumks
zTestEnum.test_pickle_enumcCs,ttt�rt�t|jtj�t|jt�dS)N)rrrr0r�r)r=rrr�test_pickle_intqs
zTestEnum.test_pickle_intcCs,ttt�rt�t|jtj�t|jt�dS)N)rrrr0r�r)r=rrr�test_pickle_floatws
zTestEnum.test_pickle_floatcCs,ttt�rt�t|jtj�t|jt�dS)N)rr&rr0r�Zhim)r=rrr�test_pickle_enum_function}s
z"TestEnum.test_pickle_enum_functioncCs,ttt�rt�t|jtj�t|jt�dS)N)rr$rr0r�Zwho)r=rrr�%test_pickle_enum_function_with_module�s
z.TestEnum.test_pickle_enum_function_with_modulecCs ttt�rt�|�tjd�dS)Nr()rr'rrxr)r=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�srz
%s.NestedEnum)rrvrrrr0r�r)r=rrrr�/test_class_nested_enum_and_pickle_protocol_four�sz8TestEnum.test_class_nested_enum_and_pickle_protocol_fourcCsBGdd�dt�}tj|_x$tt�D]}|�|j�|�d�q"WdS)Nc@seZdZdZdZdS)z6TestEnum.test_pickle_by_name.<locals>.ReplaceGlobalIntrrN)rrrZONE�TWOrrrr�ReplaceGlobalInt�srr)rr9�_reduce_ex_by_name�
__reduce_ex__r,rrxr)r=r�protorrr�test_pickle_by_name�szTestEnum.test_pickle_by_namecCsDtddtd�}|t�d<t�|�t|jt|j�t|jt	|�dS)N�	BadPicklezdill sweet bread-n-butter)r%)
rr�globalsr9�_make_class_unpicklabler2r�r�Zdillr
)r=rrrr�test_exploding_pickle�s

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?z
knock, knock!N)rrrZmasterZ
journeyman�
apprenticerrrr�
SkillLevel�sr"z
knock, knock!)rsrrxr!)r=r"rrr�test_string_enum�szTestEnum.test_string_enumcCsLGdd�dt�}|�|d�|j�|�t|d�|j�|�|d|j�dS)Nc@seZdZdZdZdZdZdS)z-TestEnum.test_getattr_getitem.<locals>.Periodrrrr\N)rrr�morning�noonZevening�nightrrrr�Period�sr'rr&r$)rr�r%r�r&r$)r=r'rrr�test_getattr_getitem�szTestEnum.test_getattr_getitemcCs|j}|�t|d��dS)N�__eq__)rar<r�)r=rarrr�test_getattr_dunder�szTestEnum.test_getattr_dundercCs4Gdd�dt�}|�t|�|j|j|j|jg�dS)Nc@seZdZdZdZdZdZdS)z-TestEnum.test_iteration_order.<locals>.Seasonrr\rrN)rrrr^r`r_r]rrrrra�sra)rrxr�r^r`r_r])r=rarrr�test_iteration_order�szTestEnum.test_iteration_ordercCs2|�tt|j��|jj|jj|jj|jjg�dS)N)rxr��reversedrar`r_r^r])r=rrr�test_reversed_iteration_order�sz&TestEnum.test_reversed_iteration_ordercCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�xjtd��d�D]X\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�q`WdS)N�SummerMonthzjune july augustrr)rr�rxr��june�july�augustr�r�r�r}r�r|r�r�r�)r=r.r�r��monthr�rrr�!test_programmatic_function_string�s
z*TestEnum.test_programmatic_function_stringcCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�xjtd��d�D]X\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�qdWdS)Nr.zjune july august�
)�startr)rr�rxr�r/r0r1r�r�r�r}r�r|r�r�r�)r=r.r�r�r2r�rrr�,test_programmatic_function_string_with_start�sz5TestEnum.test_programmatic_function_string_with_startcCs�tddddg�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�xjtd��d�D]X\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�qfWdS)Nr.r/r0r1rzjune july augustr)rr�rxr�r/r0r1r�r�r�r}r�r|r�r�r�)r=r.r�r�r2r�rrr�&test_programmatic_function_string_list�sz/TestEnum.test_programmatic_function_string_listcCs�tddddgdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�xjtd��d�D]X\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�qjWdS)	Nr.r/r0r1�)r5rzjune july august)rr�rxr�r/r0r1r�r�r�r}r�r|r�r�r�)r=r.r�r�r2r�rrr�1test_programmatic_function_string_list_with_startsz:TestEnum.test_programmatic_function_string_list_with_startcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�xjtd��d�D]X\}}||�}|�t	|j
�|�|�||�|�|j|�|�
||�|�t|�|�q`WdS)Nr.))r/r)r0r)r1rrzjune july augustr)rr�rxr�r/r0r1r�r�r�r}r�r|r�r�r�)r=r.r�r�r2r�rrr�#test_programmatic_function_iterables z,TestEnum.test_programmatic_function_iterablecCs�tdtd��}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�xjtd�	�d�D]X\}}||�}|�t
|j�|�|�||�|�|j
|�|�||�|�t|�|�qdWdS)Nr.))r/r)r0r)r1rrzjune july augustr)rrr�rxr�r/r0r1r�r�r�r}r�r|r�r�r�)r=r.r�r�r2r�rrr�$test_programmatic_function_from_dict(s 
z-TestEnum.test_programmatic_function_from_dictcCs�tddtd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�xXtd�	�d�D]F\}}||�}|�||�|�|j
|�|�||�|�t
|�|�qdWdS)Nr.zjune july august)r�rr)rr�r�rxr�r/r0r1r�r�r|r�r�r�)r=r.r�r�r2r�rrr�test_programmatic_function_type<sz(TestEnum.test_programmatic_function_typecCs�tddtdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�xXtd�	�d�D]F\}}||�}|�||�|�|j
|�|�||�|�t
|�|�qfWdS)Nr.zjune july august�)r�r5r)rr�r�rxr�r/r0r1r�r�r|r�r�r�)r=r.r�r�r2r�rrr�*test_programmatic_function_type_with_startLsz3TestEnum.test_programmatic_function_type_with_startcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�xXtd��d�D]F\}}||�}|�||�|�|j	|�|�
||�|�t|�|�q`WdS)Nr.zjune july augustrr)
rr�rxr�r/r0r1r�r�r|r�r�r�)r=r.r�r�r2r�rrr�-test_programmatic_function_type_from_subclass\s
z6TestEnum.test_programmatic_function_type_from_subclasscCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�|j|j|jg|�xXtd��d�D]F\}}||�}|�||�|�|j	|�|�
||�|�t|�|�qdWdS)Nr.zjune july august�()r5r)
rr�rxr�r/r0r1r�r�r|r�r�r�)r=r.r�r�r2r�rrr�8test_programmatic_function_type_from_subclass_with_startlszATestEnum.test_programmatic_function_type_from_subclass_with_startcCsTttt�rt�|�tjd�|�tjtd��|�tjttd��t|jtj�dS)NzGuido van Rossumr#)	rr"rrxr#r<r�r�r0)r=rrr�test_subclassing|s
zTestEnum.test_subclassingc	Cs:Gdd�dt�}|�t��Gdd�d|�}WdQRXdS)Nc@seZdZdZdZdZdS)z&TestEnum.test_extending.<locals>.ColorrrrN)rrrr�r�r�rrrrr��sr�c@seZdZdZdZdZdS)z*TestEnum.test_extending.<locals>.MoreColorr\rer�N)rrr�cyan�magenta�yellowrrrr�	MoreColor�srF)rr�r�)r=r�rFrrr�test_extending�szTestEnum.test_extendingcCs8Gdd�dt�}|�t|j�|�|�|j��d�dS)Nc@seZdZdZdZdd�ZdS)z/TestEnum.test_exclude_methods.<locals>.whateverrr�cSs
d|jS)Nz
no, not %s)r})r=rrr�really�sz6TestEnum.test_exclude_methods.<locals>.whatever.reallyN)rrrr�r�rHrrrr�whatever�srIzno, not that)rZassertIsNotr�rHrxr�)r=rIrrr�test_exclude_methods�szTestEnum.test_exclude_methodsc	Cs,|�t��Gdd�dtt�}WdQRXdS)Nc@seZdZdZdS)z4TestEnum.test_wrong_inheritance_order.<locals>.Wrongzerror before this pointN)rrrZNotHererrrrr��sr�)r�r�rrs)r=r�rrr�test_wrong_inheritance_order�s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�srMc@seZdZdZdZdZdS)z2TestEnum.test_intenum_transitivity.<locals>.numerorrrN)rrr�uno�dos�tresrrrr�numero�srQ)rrxr�rNr�rOrLrP)r=rMrQrrr�test_intenum_transitivity�s
z"TestEnum.test_intenum_transitivitycCs4Gdd�dt�}Gdd�dt�}|�t||j�dS)Nc@seZdZdZdZdS)z4TestEnum.test_wrong_enum_in_call.<locals>.MonochromerrN)rrr�black�whiterrrr�
Monochrome�srUc@seZdZdZdZdS)z0TestEnum.test_wrong_enum_in_call.<locals>.GenderrrN)rrr�male�femalerrrr�Gender�srX)rr�r�rV)r=rUrXrrr�test_wrong_enum_in_call�sz TestEnum.test_wrong_enum_in_callcCs4Gdd�dt�}Gdd�dt�}|�t||j�dS)Nc@seZdZdZdZdS)z:TestEnum.test_wrong_enum_in_mixed_call.<locals>.MonochromerrN)rrrrSrTrrrrrU�srUc@seZdZdZdZdS)z6TestEnum.test_wrong_enum_in_mixed_call.<locals>.GenderrrN)rrrrVrWrrrrrX�srX)rrr�r�rV)r=rUrXrrr�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>.MonochromerrN)rrrrSrTrrrrrU�srUc@seZdZdZdZdS)z2TestEnum.test_mixed_enum_in_call_1.<locals>.GenderrrN)rrrrVrWrrrrrX�srX)rr�rWrT)r=rUrXrrr�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>.MonochromerrN)rrrrSrTrrrrrU�srUc@seZdZdZdZdS)z2TestEnum.test_mixed_enum_in_call_2.<locals>.GenderrrN)rrrrVrWrrrrrX�srX)rrr�rVrS)r=rUrXrrr�test_mixed_enum_in_call_2�sz"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�S)N)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)rrxr�r_)r=r^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��N)rrrr�r�rrrr�Number�srdc@seZdZdZdZdZdS)z+TestEnum.test_introspection.<locals>.StringZsoftZroughZhardN)rrr�yarnZropeZwirerrrr�String�srfc@seZdZdZdZdS)z*TestEnum.test_introspection.<locals>.PlainrTrN)rrr�vanillar�rrrr�Plain�srh)
rr�r��
_member_type_r�rsrrerg�object)r=rdrfrhrrr�test_introspection�szTestEnum.test_introspectionc	CsPGdd�dt�}|�t��|d�WdQRX|�t��|dWdQRXdS)Nc@seZdZdZdZdZdS)z0TestEnum.test_no_such_enum_member.<locals>.ColorrrrN)rrrr�r�r�rrrrr��sr�r\Z
chartreuse)rr�r��KeyError)r=r�rrr�test_no_such_enum_member�s
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=rrr�__repr__�sz.TestEnum.test_new_repr.<locals>.Color.__repr__N)rrrr�r�r�rnrrrrr��sr�z#don't you just love shades of blue?)rrxr�r�)r=r�rrr�
test_new_repr�szTestEnum.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=rrrrnsz5TestEnum.test_inherited_repr.<locals>.MyEnum.__repr__N)rrrrnrrrr�MyEnumsrpc@seZdZdZdZdZdS)z/TestEnum.test_inherited_repr.<locals>.MyIntEnumrrrN)rrrr�rZtheotherrrrr�	MyIntEnumsrqzMy name is that.)rr�rxr�r)r=rprqrrr�test_inherited_reprszTestEnum.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}x8|jD].}||}|tkr:|}n|}|d7}|||<q Wx$|��D]\}}||kr\|||<q\Wt�|��||||�S)Nrr)r�ry�
_member_names�Ellipsisr��super�__new__)	�metaclsr��bases�	classdict�temp�namesr�r�r�)rv�	auto_enumrrrvs


z;TestEnum.test_multiple_mixin_mro.<locals>.auto_enum.__new__)rrrrv�
__classcell__r)r|)rvrr|sr|c@seZdZdS)z:TestEnum.test_multiple_mixin_mro.<locals>.AutoNumberedEnumN)rrrrrrr�AutoNumberedEnumsr~)�	metaclassc@seZdZdS)z5TestEnum.test_multiple_mixin_mro.<locals>.AutoIntEnumN)rrrrrrr�AutoIntEnum!sr�c@seZdZdZdZdZdS)z8TestEnum.test_multiple_mixin_mro.<locals>.TestAutoNumber.rN)rrrrAr�r�rrrr�TestAutoNumber$sr�c@seZdZdZdZdZdS)z5TestEnum.test_multiple_mixin_mro.<locals>.TestAutoInt.rN)rrrrAr�r�rrrr�TestAutoInt)sr�)r�rr)r=r~r�r�r�r)r|r�test_multiple_mixin_mro
s
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�rv�_intname�_args)r��argsr�r|r=rrrrv1szBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__new__cSs|jS)N)r�)r=rrr�__getnewargs__:szITestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__getnewargs__cSs|jS)N)r�)r=rrrr<szCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__name__cSsd�t|�j|jt�|��S)Nz{}({!r}, {}))r�r�rr�rn)r=rrrrn?szCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__repr__cSs&t}|j}|jtkr|�|�S||�S)N)r��__str__�__objclass__rjrn)r=�base�base_strrrrr�Ds


zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__str__csBt|�t|�}t|��r:t|��r:�d�|j|j�|�S|SdS)Nz({0} + {1}))r�rr�r)r=�otherrz)r�rr�__add__MszBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__add__N)	rrrrvr�r�rnr�r�r)r�rrr�/s		r�c@seZdZdZdZdZdS)z5TestEnum.test_subclasses_with_getnewargs.<locals>.NEI�NEI)zthe-xr)zthe-yrN)rrr�x�yrrrrr�Vsr�zNamedInt('(the-x + the-y)', 3)r�rer)r�rr�rvrxr�r�r�rr0r})r=r��NI5r)r�r�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|��}||_||_|S)Nrz name and value must be specified)r�r�r�rvr�r�)r�r�r�r|r=rrrrvjszETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__new__cSs
|jifS)N)r�)r=rrr�__getnewargs_ex__sszOTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__getnewargs_ex__cSs|jS)N)r�)r=rrrruszFTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__name__cSsd�t|�j|jt�|��S)Nz{}({!r}, {}))r�r�rr�rn)r=rrrrnxszFTestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__repr__cSs&t}|j}|jtkr|�|�S||�S)N)r�r�r�rjrn)r=r�r�rrrr�}s


zETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__str__csBt|�t|�}t|��r:t|��r:�d�|j|j�|�S|SdS)Nz({0} + {1}))r�rr�r)r=r�rz)r�rrr��szETestEnum.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__add__N)	rrrrvr�r�rnr�r�r)r�rrr�hs		r�c@seZdZdZdZdZdS)z8TestEnum.test_subclasses_with_getnewargs_ex.<locals>.NEIr�)zthe-xr)zthe-yrN)rrrr�r�rrrrr��sr�zNamedInt('(the-x + the-y)', 3)r�rer)r�rr�rvrxr�r�r�rr0r})r=r�r�r)r�r�"test_subclasses_with_getnewargs_exgs'


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|��}||_||_|S)Nrz name and value must be specified)r�r�r�rvr�r�)r�r�r�r|r=rrrrv�sz>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__new__cSs|j|jfS)N)rvr�)r=rrr�
__reduce__�szATestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__reduce__cSs|jS)N)r�)r=rrrr�sz?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__name__cSsd�t|�j|jt�|��S)Nz{}({!r}, {}))r�r�rr�rn)r=rrrrn�sz?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__repr__cSs&t}|j}|jtkr|�|�S||�S)N)r�r�r�rjrn)r=r�r�rrrr��s


z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__str__csBt|�t|�}t|��r:t|��r:�d�|j|j�|�S|SdS)Nz({0} + {1}))r�rr�r)r=r�rz)r�rrr��sz>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__add__N)	rrrrvr�r�rnr�r�r)r�rrr��s		r�c@seZdZdZdZdZdS)z1TestEnum.test_subclasses_with_reduce.<locals>.NEIr�)zthe-xr)zthe-yrN)rrrr�r�rrrrr��sr�zNamedInt('(the-x + the-y)', 3)r�rer)r�rr�rvrxr�r�r�rr0r})r=r�r�r)r�r�test_subclasses_with_reduce�s'


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|��}||_||_|S)Nrz name and value must be specified)r�r�r�rvr�r�)r�r�r�r|r=rrrrv�szATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__new__cSs|j|jfS)N)rvr�)r=rrrrr�szGTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__reduce_ex__cSs|jS)N)r�)r=rrrr�szBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__name__cSsd�t|�j|jt�|��S)Nz{}({!r}, {}))r�r�rr�rn)r=rrrrn�szBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__repr__cSs&t}|j}|jtkr|�|�S||�S)N)r�r�r�rjrn)r=r�r�rrrr��s


zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__str__csBt|�t|�}t|��r:t|��r:�d�|j|j�|�S|SdS)Nz({0} + {1}))r�rr�r)r=r�rz)r�rrr��szATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__add__N)	rrrrvrr�rnr�r�r)r�rrr��s		r�c@seZdZdZdZdZdS)z4TestEnum.test_subclasses_with_reduce_ex.<locals>.NEIr�)zthe-xr)zthe-yrN)rrrr�r�rrrrr�sr�zNamedInt('(the-x + the-y)', 3)r�rer)r�rr�rvrxr�r�r�rr0r})r=r�r�r)r�r�test_subclasses_with_reduce_ex�s'


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|��}||_||_|S)Nrz name and value must be specified)r�r�r�rvr�r�)r�r�r�r|r=rrrrvszPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__new__cSs|jS)N)r�)r=rrrrszQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__name__cSsd�t|�j|jt�|��S)Nz{}({!r}, {}))r�r�rr�rn)r=rrrrn!szQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__repr__cSs&t}|j}|jtkr|�|�S||�S)N)r�r�r�rjrn)r=r�r�rrrr�&s


zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__str__csBt|�t|�}t|��r:t|��r:�d�|j|j�|�S|SdS)Nz({0} + {1}))r�rr�r)r=r�rz)r�rrr�/szPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__add__N)rrrrvr�rnr�r�r)r�rrr�s		r�c@seZdZdZdZdZdS)zCTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NEIr�)zthe-xr)zthe-yrN)rrrr�r�rrrrr�8sr�zNamedInt('(the-x + the-y)', 3)r�rer)r�rr�rvrxr�r�r�rr}r2r�r�r
)r=r�r�r)r�r�-test_subclasses_without_direct_pickle_supports%


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|��}||_||_|S)Nrz name and value must be specified)r�r�r�rvr�r�)r�r�r�r|r=rrrrvJsz[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__new__cSs|jS)N)r�)r=rrrrSsz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__name__cSsd�t|�j|jt�|��S)Nz{}({!r}, {}))r�r�rr�rn)r=rrrrnVsz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__repr__cSs&t}|j}|jtkr|�|�S||�S)N)r�r�r�rjrn)r=r�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|SdS)Nz({0} + {1}))r�rr�r)r=r�rz)r�rrr�dsz[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__add__N)rrrrvr�rnr�r�r)r�rrr�Hs		r�c@s eZdZdZdZdZdd�ZdS)zNTestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEIr�)zthe-xr)zthe-yrcSst|j|jffS)N)r�rv�_name_)r=rrrrrqsz\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEI.__reduce_ex__N)rrrr�r�rrrrrr�msr�zNamedInt('(the-x + the-y)', 3)r�rer)r�rr�rvrxr�r�r�rr}r0)r=r�r�r)r�r�8test_subclasses_without_direct_pickle_support_using_nameGs%


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�sr�)rz
for the music)�tuplerr�r�r�r�r�rxr�rr0)r=r�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>.AutoNumberrcSs"t|j�d}t�|�}||_|S)Nr)r�rwrjrvr�)r�r}r1rrrrv�s
zQTestEnum.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__new__cSs
t|j�S)N)r�r�)r=rrrr]�szQTestEnum.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__int__N)rrrr�r�r�rvr]rrrr�
AutoNumber�s
r�rrr)	rrxr�r�r�r�r�r}r�)r=r�rrr�,test_duplicate_values_give_unique_enum_items�sz5TestEnum.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�|�}||_|S)Nr)r�rwrjrvr�)r�r}r1rrrrv�s
zJTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__new__cSs
t|j�S)N)r�r�)r=rrrr]�szJTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__int__N)rrrrvr]rrrrr��sr�c@seZdZdZdZdZdS)z=TestEnum.test_inherited_new_from_enhanced_enum.<locals>.ColorrN)rrrr�r�r�rrrrr��sr�rrr)rrxr�r�r�r��mapr�)r=r�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�||�}||_|S)Nr)r�rwr�rvr�)r�r}r1rrrrv�szGTestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumber.__new__N)rrrrvrrrrr��sr�c@seZdZdZdZdZdS)z:TestEnum.test_inherited_new_from_mixed_enum.<locals>.ColorrN)rrrr�r�r�rrrrr��sr�rrr)rrxr�r�r�r�r�r�)r=r�r�rrr�"test_inherited_new_from_mixed_enum�sz+TestEnum.test_inherited_new_from_mixed_enumcCsBGdd�d�}Gdd�dt�}|�|�|j�|�|j|��dS)Nc@seZdZdd�ZdS)z+TestEnum.test_equality.<locals>.AlwaysEqualcSsdS)NTr)r=r�rrrr)�sz2TestEnum.test_equality.<locals>.AlwaysEqual.__eq__N)rrrr)rrrr�AlwaysEqual�sr�c@seZdZdZdS)z,TestEnum.test_equality.<locals>.OrdinaryEnumrN)rrrrArrrr�OrdinaryEnum�sr�)rrxrA)r=r�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|jkStS)N)rvr��NotImplemented)r=r�rrr�__ge__�sz7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__ge__cSs|j|jkr|j|jkStS)N)rvr�r�)r=r�rrr�__gt__�sz7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__gt__cSs|j|jkr|j|jkStS)N)rvr�r�)r=r�rrr�__le__�sz7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__le__cSs|j|jkr|j|jkStS)N)rvr�r�)r=r�rrr�__lt__�sz7TestEnum.test_ordered_mixin.<locals>.OrderedEnum.__lt__N)rrrr�r�r�r�rrrr�OrderedEnum�sr�c@s eZdZdZdZdZdZdZdS)z*TestEnum.test_ordered_mixin.<locals>.Graderer\rrrN)rrrrfrgrhrirjrrrr�Grade�s
r�)rZ
assertGreaterrfrgZassertLessEqualrjrhZ
assertLessriZassertGreaterEqualrxr�)r=r�r�rrr�test_ordered_mixin�szTestEnum.test_ordered_mixinc	CsJGdd�dt�}Gdd�d|�}|�t��Gdd�d|�}WdQRXdS)Nc@seZdZdd�ZdS)z'TestEnum.test_extending2.<locals>.ShadecSst|j�dS)N)�printr|)r=rrr�shade�sz-TestEnum.test_extending2.<locals>.Shade.shadeN)rrrr�rrrr�Shade�sr�c@seZdZdZdZdZdS)z'TestEnum.test_extending2.<locals>.ColorrrrN)rrrr�r�r�rrrrr��sr�c@seZdZdZdZdZdS)z+TestEnum.test_extending2.<locals>.MoreColorr\rer�N)rrrrCrDrErrrrrF�srF)rr�r�)r=r�r�rFrrr�test_extending2�szTestEnum.test_extending2cCsFGdd�dt�}Gdd�d|�}Gdd�d|�}|�|j��d�dS)Nc@seZdZdd�ZdS)z'TestEnum.test_extending3.<locals>.ShadecSs|jS)N)r|)r=rrrr��sz-TestEnum.test_extending3.<locals>.Shade.shadeN)rrrr�rrrrr��sr�c@seZdZdd�ZdS)z'TestEnum.test_extending3.<locals>.ColorcSs
d|jS)Nz
%s hexlified!)r})r=rrrr�sz+TestEnum.test_extending3.<locals>.Color.hexN)rrrrrrrrr��sr�c@seZdZdZdZdZdS)z+TestEnum.test_extending3.<locals>.MoreColorr\rer�N)rrrrCrDrErrrrrF�srFz5 hexlified!)rrxrDr)r=r�r�rFrrr�test_extending3�szTestEnum.test_extending3cCs6Gdd�dt�}Gdd�d|�}|�t|j�|�dS)Nc@seZdZdd�ZdS)z3TestEnum.test_subclass_duplicate_name.<locals>.BasecSsdS)Nr)r=rrrr�sz8TestEnum.test_subclass_duplicate_name.<locals>.Base.testN)rrrr�rrrr�Basesr�c@seZdZdZdS)z3TestEnum.test_subclass_duplicate_name.<locals>.TestrN)rrrr�rrrrr�sr�)rr�r�r�)r=r�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>.BasecSsdS)N�dynamicr)r=rrrr�
sz@TestEnum.test_subclass_duplicate_name_dynamic.<locals>.Base.testN)rrrr�r)r�rrr�	sr�c@seZdZdZdS)z;TestEnum.test_subclass_duplicate_name_dynamic.<locals>.TestrN)rrrr�rrrrr�
sr�r�)�typesr�rrxr�)r=r�r�r)r�r�$test_subclass_duplicate_name_dynamicsz-TestEnum.test_subclass_duplicate_name_dynamicc	CsJGdd�dt�}Gdd�d|�}|�t��Gdd�d|�}WdQRXdS)Nc@seZdZdd�ZdS)z/TestEnum.test_no_duplicates.<locals>.UniqueEnumcsB�j}t�fdd�|D��r>�j}|�j�j}td||f��dS)Nc3s|]}�j|jkVqdS)N)r})r�r�)r=rr�	<genexpr>szKTestEnum.test_no_duplicates.<locals>.UniqueEnum.__init__.<locals>.<genexpr>z-aliases not allowed in UniqueEnum:  %r --> %r)rv�anyr|r}r�)r=r�r�rAr�r)r=rrXsz8TestEnum.test_no_duplicates.<locals>.UniqueEnum.__init__N)rrrrXrrrr�
UniqueEnumsr�c@seZdZdZdZdZdS)z*TestEnum.test_no_duplicates.<locals>.ColorrrrN)rrrr�r�r�rrrrr�sr�c@seZdZdZdZdZdZdS)z*TestEnum.test_no_duplicates.<locals>.ColorrrrN)rrrr�r�r�Zgrenerrrrr�!s)rr�r�)r=r�r�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||_||_dS)N)�mass�radius)r=r�r�rrrrX1sz+TestEnum.test_init.<locals>.Planet.__init__cSsd}||j|j|jS)Ng
yдW�=)r�r�)r=�Grrr�surface_gravity4sz2TestEnum.test_init.<locals>.Planet.surface_gravityN)rrrZMERCURYZVENUS�EARTHZMARSZJUPITERZSATURNZURANUSZNEPTUNErXr�r�rrrr�Planet(sr�rg������#@)g�o��Eg�TXA)rrx�roundr�r�r})r=r�rrr�	test_init'szTestEnum.test_initcCs|Gdd�dtt�}|�t|d��|�t|d��|�t|d��|�t|jt��|�|j|jk�|�|j	|j
k�dS)Nc@s�eZdZdZdd�ZdZe�Zx$ed�D]Z	e	ddfede	<q(Wx$ed	�D]Z	e	d
dfede	<qNWx ed
�D]Z	e	dfede	<qtWe
ZeZ
eZdS)z$TestEnum.test_ignore.<locals>.Periodz3
            different lengths of time
            cSst�||�}||_||_|S)N)rrvr��period)r�r}r�r1rrrrvAsz,TestEnum.test_ignore.<locals>.Period.__new__zPeriod i�
r=r2zmonth_%d�5r�Zweekzweek_%d� Zdayzday_%dN)rrrr!rv�_ignore_�varsr'r,r��day_1ZOneDayZweek_1ZOneWeek�month_1ZOneMonthrrrrr'=sr'r�r�)rrr8r�r<rr�r�Zday_30Zweek_4Zday_28)r=r'rrr�test_ignore<szTestEnum.test_ignorecCs�Gdd�dt�}Gdd�d|�}|�t|�|j|j|jg�xDt|td��D]2\}}|d7}|�|j|g�|�	||g�|�qLWdS)Nc@seZdZdd�ZdS)z6TestEnum.test_nonhash_value.<locals>.AutoNumberInAListcSs$t|j�dg}t�|�}||_|S)Nr)r�rwrjrvr�)r�r}r1rrrrvZs
z>TestEnum.test_nonhash_value.<locals>.AutoNumberInAList.__new__N)rrrrvrrrr�AutoNumberInAListYsr�c@seZdZdZdZdZdS)z1TestEnum.test_nonhash_value.<locals>.ColorInAListrN)rrrr�r�r�rrrr�ColorInAList_sr�rr)
rrxr�r�r�r��zipr,r}r�)r=r�r�r9r}rrr�test_nonhash_valueXszTestEnum.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�||�}||_||_|S)N)r�rv�labelr�)r�r�r}r�r1rrrrvks
zPTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnum.__new__N)rrrrvrrrr�LabelledIntEnumjsr�c@seZdZdZdZdS)zETestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledList)rZUnprocessed)rzPayment CompleteN)rrr�unprocessed�payment_completerrrr�LabelledListrsr�r)r�rrxr�r�r�)r=r�r�rrr�&test_conflicting_types_resolved_in_newis
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)rrxr�r�r�r�r})r=r�rrr�test_auto_numberzs
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|S)Nr)r|r5�count�lastrrr�_generate_next_value_�sz<TestEnum.test_auto_name.<locals>.Color._generate_next_value_N)rrrr�r	r�r�r�rrrrr��sr�r�r�r�)rrxr�r�r�r�r})r=r�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|S)Nr)r|r5r�r�rrrr��szKTestEnum.test_auto_name_inherit.<locals>.AutoNameEnum._generate_next_value_N)rrrr�rrrr�AutoNameEnum�sr�c@seZdZe�Ze�Ze�ZdS)z.TestEnum.test_auto_name_inherit.<locals>.ColorN)rrrr	r�r�r�rrrrr��sr�r�r�r�)rrxr�r�r�r�r})r=r�r�rrr�test_auto_name_inherit�s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)rrxr�r})r=r�rrr�test_auto_garbage�szTestEnum.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�rr)rrxr�r�r�r�r})r=r�rrr�test_auto_garbage_corrected�s
z$TestEnum.test_auto_garbage_correctedc	Cs*|�t��Gdd�dt�}WdQRXdS)Nc@s&eZdZe�Ze�Ze�Zdd�ZdS)z'TestEnum.test_auto_order.<locals>.ColorcSs|S)Nr)r|r5r�r�rrrr��sz=TestEnum.test_auto_order.<locals>.Color._generate_next_value_N)rrrr	r�r�r�r�rrrrr��sr�)r�r�r)r=r�rrr�test_auto_order�szTestEnum.test_auto_ordercCs0Gdd�dt�}|�|j|j|jgt|��dS)Nc@s"eZdZe�ZZe�Ze�ZdS)z+TestEnum.test_duplicate_auto.<locals>.DupesN)rrrr	r��primeror�r�rrrr�Dupes�s
r�)rrxr�r�r�r�)r=r�rrr�test_duplicate_auto�szTestEnum.test_duplicate_autoc
Cs�Gdd�dt�}|�|d�|j�|�t|d�y|d�Wn4tk
rp}z|�t|jt��Wdd}~XYn
Xt	d��y|d�Wn4t
k
r�}z|�t|jt��Wdd}~XYn
Xt	d��dS)Nc@s$eZdZdZdZdZedd��ZdS)z$TestEnum.test_missing.<locals>.ColorrrrcSs0|dkr|jS|dkrdS|dkr(t�ndSdS)NrLz
bad returnrez	error out)r��ZeroDivisionError)r��itemrrr�	_missing_�sz.TestEnum.test_missing.<locals>.Color._missing_N)rrrr�r�r��classmethodr�rrrrr��sr�rLr�z
bad returnzException not raised.z	error out)rr�r�r�r�r�r<r�__context__rr�)r=r��excrrr�test_missing�s$$zTestEnum.test_missingcCs�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|�}||_|S)N)r��MAX)r��maxrrrr��sz2TestEnum.test_multiple_mixin.<locals>.MaxMixin.MAXN)rrrrSr�rrrr�MaxMixin�sr�c@seZdZdd�ZdS)z.TestEnum.test_multiple_mixin.<locals>.StrMixincSs
|j��S)N)r��lower)r=rrrr��sz6TestEnum.test_multiple_mixin.<locals>.StrMixin.__str__N)rrrr�rrrr�StrMixin�sr�c@seZdZdd�ZdS)z.TestEnum.test_multiple_mixin.<locals>.SomeEnumcSsdS)N�booyahr)r=rrr�behavior�sz7TestEnum.test_multiple_mixin.<locals>.SomeEnum.behaviorN)rrrr�rrrr�SomeEnum�sr�c@seZdZdd�Zdd�ZdS)z1TestEnum.test_multiple_mixin.<locals>.AnotherEnumcSsdS)Nznuhuh!r)r=rrrr��sz:TestEnum.test_multiple_mixin.<locals>.AnotherEnum.behaviorcSsdS)Nz
what's up?r)r=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	�RED�GREEN�BLUErrrrr��sr�rrrz
Color.BLUEc@seZdZe�Ze�Ze�ZdS)z+TestEnum.test_multiple_mixin.<locals>.ColorN)rrrr	r�r�r�rrrrr��sr�c@seZdZe�Ze�Ze�ZdS)z+TestEnum.test_multiple_mixin.<locals>.ColorN)rrrr	r�r�r�rrrrr�sc@seZdZe�Ze�Ze�ZdS)z/TestEnum.test_multiple_mixin.<locals>.CoolColorN)rrrr	r�r�r�rrrr�	CoolColorsr�r�c@seZdZe�Ze�Ze�ZdS)z1TestEnum.test_multiple_mixin.<locals>.CoolerColorN)rrrr	r�r�r�rrrr�CoolerColorsr�znuhuh!z
what's up?c@seZdZe�Ze�Ze�ZdS)z2TestEnum.test_multiple_mixin.<locals>.CoolestColorN)rrrr	r�r�r�rrrr�CoolestColor"sr�c@seZdZe�Ze�Ze�ZdS)z3TestEnum.test_multiple_mixin.<locals>.ConfusedColorN)rrrr	r�r�r�rrrr�
ConfusedColor,src@seZdZe�Ze�Ze�ZdS)z3TestEnum.test_multiple_mixin.<locals>.ReformedColorN)rrrr	r�r�r�rrrr�
ReformedColor6sr)rrxr�r}r�r�r�rsr�r�rr<�
issubclassr�)r=r�r�r�r�r�r�r�r�rrrrr�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@x,|D]$}t|t�std|t|�jf��qWtj|f|�|�S)Nz%Enumeration '%s' (%s) is not a string)rrsr�r�rrv)r�r��kwargsrArrrrvDs


z?TestEnum.test_multiple_inherited_mixin.<locals>.StrEnum.__new__N)rrrrvrrrrr Csr c@seZdZdZdZdZdS)z9TestEnum.test_multiple_inherited_mixin.<locals>.Decision1�REVERT�
REVERT_ALL�RETRYN)rrrrrrrrrr�	Decision1Jsrc@seZdZdS)z6TestEnum.test_multiple_inherited_mixin.<locals>.MyEnumN)rrrrrrrrpOsrpc@seZdZdZdZdZdS)z9TestEnum.test_multiple_inherited_mixin.<locals>.Decision2rrrN)rrrrrrrrrr�	Decision2Qsr	)rsrr)r=r rrpr	rrr�test_multiple_inherited_mixinBsz&TestEnum.test_multiple_inherited_mixincCs(d}t|dd�}i}i}t|||�dS)Nz8from enum import Enum; Enum('Animal', 'ANT BEE CAT DOG')z<string>�exec)�compiler)r=�codeZ	global_nsZlocal_lsrrr�test_empty_globalsWs
zTestEnum.test_empty_globalsN)rrrrrur{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�rrrr
r
rrrrrrrr r#r(r*r+r-r3r6r7r9r:r;r<r>r?rArBrGrJrKrRrYrZr[r\rarkrmrorrr�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�rr
rrrrrr[�s�#				
	
	
				


$999957	



 `r[c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�	TestOrdercCsGdd�dt�}dS)Nc@seZdZdZdZdZdZdS)z*TestOrder.test_same_members.<locals>.Colorzred green bluerrrN)rrr�_order_r�r�r�rrrrr�dsr�)r)r=r�rrr�test_same_memberscszTestOrder.test_same_memberscCsGdd�dt�}dS)Nc@s eZdZdZdZdZdZeZdS)z7TestOrder.test_same_members_with_aliases.<locals>.Colorzred green bluerrrN)rrrrr�r�r��verderrrrr�ks
r�)r)r=r�rrr�test_same_members_with_aliasesjsz(TestOrder.test_same_members_with_aliasesc	Cs,|�td��Gdd�dt�}WdQRXdS)Nz#member order does not match _order_c@seZdZdZdZdZdZdS)z6TestOrder.test_same_members_wrong_order.<locals>.Colorzred green bluerrrN)rrrrr�r�r�rrrrr�tsr�)�assertRaisesRegexr�r)r=r�rrr�test_same_members_wrong_orderrsz'TestOrder.test_same_members_wrong_orderc	Cs,|�td��Gdd�dt�}WdQRXdS)Nz#member order does not match _order_c@seZdZdZdZdZdZdS)z5TestOrder.test_order_has_extra_members.<locals>.Colorzred green blue purplerrrN)rrrrr�r�r�rrrrr�|sr�)rr�r)r=r�rrr�test_order_has_extra_memberszsz&TestOrder.test_order_has_extra_membersc	Cs,|�td��Gdd�dt�}WdQRXdS)Nz#member order does not match _order_c@s eZdZdZdZdZdZeZdS)zBTestOrder.test_order_has_extra_members_with_aliases.<locals>.Colorzred green blue purplerrrN)rrrrr�r�r�rrrrrr��s
r�)rr�r)r=r�rrr�)test_order_has_extra_members_with_aliases�sz3TestOrder.test_order_has_extra_members_with_aliasesc	Cs,|�td��Gdd�dt�}WdQRXdS)Nz#member order does not match _order_c@s eZdZdZdZdZdZdZdS)z4TestOrder.test_enum_has_extra_members.<locals>.Colorzred green bluerrrr\N)rrrrr�r�r��purplerrrrr��s
r�)rr�r)r=r�rrr�test_enum_has_extra_members�sz%TestOrder.test_enum_has_extra_membersc	Cs,|�td��Gdd�dt�}WdQRXdS)Nz#member order does not match _order_c@s$eZdZdZdZdZdZdZeZdS)zATestOrder.test_enum_has_extra_members_with_aliases.<locals>.Colorzred green bluerrrr\N)	rrrrr�r�r�rrrrrrr��sr�)rr�r)r=r�rrr�(test_enum_has_extra_members_with_aliases�sz2TestOrder.test_enum_has_extra_members_with_aliasesN)
rrrrrrrrrrrrrrras		rc@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#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zejd2d3��Zd4S)5�TestFlagzTests of the Flags.c@seZdZd\ZZZdS)z
TestFlag.Perm)r\rrN)rrr�R�W�Xrrrr�Perm�src@s$eZdZdZdZdZdZeeBZdS)zTestFlag.Colorrrrr\N)rrr�BLACKr�r�r��PURPLErrrrr��s
r�c@s eZdZdZdZdZdZdZdS)z
TestFlag.OpenrrrriN)rrr�RO�WO�RW�AC�CErrrr�Open�s
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)NzPerm.RzPerm.WzPerm.XzPerm.R|Wz
Perm.R|W|XrzPerm.0zPerm.W|XzPerm.R|X���zOpen.ROzOpen.WOzOpen.ACzOpen.CEz
Open.CE|WOzOpen.CE|AC|RW|WOz
Open.CE|RWzOpen.RW)rrxrsrrrr'r"r#r%r&)r=rr'rrr�test_str�s0 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)Nz<Perm.R: 4>z<Perm.W: 2>z<Perm.X: 1>z
<Perm.R|W: 6>z<Perm.R|W|X: 7>rz<Perm.0: 0>z
<Perm.W|X: 3>z
<Perm.R|X: 5>r(z<Open.RO: 0>z<Open.WO: 1>z<Open.AC: 3>z<Open.CE: 524288>z<Open.CE|WO: 524289>z<Open.CE|AC|RW|WO: 524291>z<Open.CE|RW: 524290>z<Open.RW: 2>)rrxr�rrrr'r"r#r%r&)r=rr'rrr�	test_repr�s0 zTestFlag.test_reprcCs�|j}xd|D]\}xV|D]N}|�||B||j|jB��|�||Bj|j|jB�|�t||B�|�qWqWx|D]}|�||B|�qrW|j}|�|j|jB|j�dS)N)rrxr}r�r�r'r"r&)r=rr��jr'rrr�test_or�s


zTestFlag.test_orc
Cs�|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}xH|D]@}x:|D]2}|�||@j|j|j@�|�t||@�|�qfWq\Wx<|D]4}|�||@|�|�||@|�|�||@|�q�W|j	}	|�|	j
|	j@|	j
�dS)Nr)rrrrr�rxr}r�r�r'r"r&)
r=rr$�RX�WX�RWX�valuesr�r+r'rrr�test_and�s 


zTestFlag.test_andcCs�|j}xH|D]@}x:|D]2}|�||Aj|j|jA�|�t||A�|�qWqWx4|D],}|�||d�A|�|�|d�|A|�qVW|j}|�|j|jA|j�|�|j|jA|j�dS)Nr)rrxr}r�r�r'r"r&)r=rr�r+r'rrr�test_xors


zTestFlag.test_xorc	Cs�|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}x.|D]&}|�t|�|�|�||�q\Wx|D]}|�||�q�W|j}|�|j	|j	@|j
�|�|j	|jB|j	@|j�dS)Nr)rrrrr�r�r�rxr'r#r"r&)	r=rr$r-r.r/r0r�r'rrr�test_inverts

zTestFlag.test_invertcCsL|j}x|D]}|�|�qW|j}x"|D]}|�t|j�t|��q*WdS)N)rr<r'rxr�r})r=r�fr'rrrr�$s

zTestFlag.test_boolcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�xrtd���D]b\}}d|>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�q^WdS)NrzR W Xrr)rr�rxr�rrrr�r�r}r�r�r|r�r�)r=rr�r��nr�r�rrr� test_programatic_function_string,s
z)TestFlag.test_programatic_function_stringcCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�xrtd���D]b\}}d|>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�qbWdS)NrzR W Xr)r5r)rr�rxr�rrrr�r�r}r�r�r|r�r�)r=rr�r�r5r�r�rrr�+test_programatic_function_string_with_start;sz4TestFlag.test_programatic_function_string_with_startcCs�tddddg�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�xrtd���D]b\}}d|>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�qdWdS)NrrrrrzR W Xr)rr�rxr�rrrr�r�r}r�r�r|r�r�)r=rr�r�r5r�r�rrr�%test_programatic_function_string_listJsz.TestFlag.test_programatic_function_string_listcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�xztd���D]j\}}dd|d>}||�}|�|j	|�|�t
|j	�t�|�|j|�|�
||�|�t
|�|�q^WdS)Nr))rr)rr)rr�rzR W Xrr)rr�rxr�rrrr�r�r}r�r�r|r�r�)r=rr�r�r5r�r�rrr�"test_programatic_function_iterableYs
z+TestFlag.test_programatic_function_iterablecCs�tdtd��}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�xztd�	��D]j\}}dd|d>}||�}|�|j
|�|�t|j
�t�|�|j
|�|�||�|�t|�|�qbWdS)Nr))rr)rr)rr�rzR W Xrr)rrr�rxr�rrrr�r�r}r�r�r|r�r�)r=rr�r�r5r�r�rrr�#test_programatic_function_from_dicthsz,TestFlag.test_programatic_function_from_dictcCs2ttt�rt�t|jtjtjB�t|jt�dS)N)rrrr0r�rr)r=rrr�test_picklews
zTestFlag.test_picklec	Cs�|j}|j}|�|j|k�|�|j|k�|�t��|�d|k�WdQRX|�t��|�d|k�WdQRX|�t��|�d|k�WdQRX|�t��|�d|k�WdQRXdS)Nr r"r)r'r�r8r r"r�r�)r=r'r�rrrr�}szTestFlag.test_containsc	Cs�|j}|\}}}||B}||B}||B}||B|B}|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�dS)N)rr<r8)	r=rrrrr$r-r.r/rrrr��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>.ColorN)rrrr	r�r�r�rrrrr��sr�rrr\)rrxr�r�r�r�r})r=r�rrrr��s
zTestFlag.test_auto_numberc	Cs,|�td��Gdd�dt�}WdQRXdS)Nz Invalid Flag value: .not an int.c@seZdZdZe�ZdS)z0TestFlag.test_auto_number_garbage.<locals>.Colorz
not an intN)rrrr�r	r�rrrrr��sr�)rr�r)r=r�rrr�test_auto_number_garbage�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>.Bizarrerr\r�N)rrrr��dr4rrrr�Bizarre�sr>z5 is not a valid Bizarrerez2 is not a valid Bizarrerz1 is not a valid Bizarrer)rrr�)r=r>rrr�test_cascading_failure�szTestFlag.test_cascading_failurecCs0Gdd�dt�}|�|j|j|jgt|��dS)Nc@s"eZdZe�ZZe�Ze�ZdS)z+TestFlag.test_duplicate_auto.<locals>.DupesN)rrrr	r�r�r�r�rrrrr��s
r�)rrxr�r�r�r�)r=r�rrrr��szTestFlag.test_duplicate_autocCs(Gdd�dt�}|�t|d��d�dS)Nc@seZdZdZdZdZdS)z&TestFlag.test_bizarre.<locals>.Bizarrerr\r�N)rrrr�r�r=rrrrr>�sr>r�z<Bizarre.d|c|b: 7>)rrxr�)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}|r6|d}x|dd�D]}||O}q&W||_|S)Nrr)r��ALL)r��members�	all_valuer�rrrrA�sz2TestFlag.test_multiple_mixin.<locals>.AllMixin.ALLN)rrrrSrArrrr�AllMixin�srDc@seZdZdd�ZdS)z.TestFlag.test_multiple_mixin.<locals>.StrMixincSs
|j��S)N)r�r�)r=rrrr��sz6TestFlag.test_multiple_mixin.<locals>.StrMixin.__str__N)rrrr�rrrrr��sr�c@seZdZe�Ze�Ze�ZdS)z+TestFlag.test_multiple_mixin.<locals>.ColorN)rrrr	r�r�r�rrrrr��sr�rrr\r�z
Color.BLUEc@seZdZe�Ze�Ze�ZdS)z+TestFlag.test_multiple_mixin.<locals>.ColorN)rrrr	r�r�r�rrrrr��sr�c@seZdZe�Ze�Ze�ZdS)z+TestFlag.test_multiple_mixin.<locals>.ColorN)rrrr	r�r�r�rrrrr��s)rrxr�r}r�r�rArs)r=rDr�r�rrrr�s(zTestFlag.test_multiple_mixinc	sxGdd�dt��t��d����fdd���fdd�td�D�}t�|��WdQRX|��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||kS)Nr)r=r�rrrr)	sz7TestFlag.test_unique_composite.<locals>.TestFlag.__eq__cSs
t|j�S)N)�hashr�)r=rrr�__hash__	sz9TestFlag.test_unique_composite.<locals>.TestFlag.__hash__N)rrrr	r�r�rL�four�five�six�seven�eightr)rFrrrrr�srFcsBy$xtd�D]}���|��qWWntk
r<d�YnXdS)N�T)r,�addr)r�)r�failed�seenrr�
cycle_enum		s
z2TestFlag.test_unique_composite.<locals>.cycle_enumcsg|]}tj�d��qS))r/)�	threading�Thread)r�rI)rPrrr�	sz2TestFlag.test_unique_composite.<locals>.<listcomp>rz;at least one thread failed while creating composite membersrLz"too many composite members created)rryr,r�
start_threadsr8rxr�)r=�threadsr)rrPrNrOr�test_unique_composite�s

zTestFlag.test_unique_compositeN) rrrr!rrr�r'r)r*r,r1r2r3r�r6r7r8r9r:r;r�r�r�r<r?r�r@rr�reap_threadsrUrrrrr�s4

+rc@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#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zejd,d-��Zd.S)/�TestIntFlagzTests of the IntFlags.c@seZdZdZdZdZdS)zTestIntFlag.Permrrr\N)rrrrrrrrrrr 	src@s$eZdZdZdZdZdZeeBZdS)zTestIntFlag.Colorrrrr\N)rrrr r�r�r�r!rrrrr�%	s
r�c@s eZdZdZdZdZdZdZdS)zTestIntFlag.OpenrrrriN)rrrr"r#r$r%r&rrrrr',	s
r'cCs�|j}|j}x*|D]"}|�t||��|�||j�qW|�t|j|jB|��|�|j|jBd�x*|D]"}|�t||��|�||j�qjW|�t|j|j	B|��|�|j|j	Bd�dS)Nr)
rr'r<rrxr}rrr#r$)r=rr'r4rrr�	test_type3	s

zTestIntFlag.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)NzPerm.RzPerm.WzPerm.XzPerm.R|Wz
Perm.R|W|XrzPerm.8|RrzPerm.0zPerm.8zPerm.W|XzPerm.R|XzPerm.-8r(i����zOpen.ROzOpen.WOzOpen.ACzOpen.CEz
Open.CE|WOr\zOpen.4zOpen.CE|AC|RW|WOz
Open.CE|RWz
Open.AC|RW|WOzOpen.RW���)rrxrsrrrr'r"r#r%r&)r=rr'rrrr)B	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)#Nz<Perm.R: 4>z<Perm.W: 2>z<Perm.X: 1>z
<Perm.R|W: 6>z<Perm.R|W|X: 7>rz<Perm.8|R: 12>rz<Perm.0: 0>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>i����z<Perm.R|W|X: -9>z<Open.RO: 0>z<Open.WO: 1>z<Open.AC: 3>z<Open.CE: 524288>z<Open.CE|WO: 524289>r\z<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>rYz<Open.CE|AC|RW|WO: -5>)rrxr�rrrr'r"r#r%r&)r=rr'rrrr*c	s< zTestIntFlag.test_reprcCs^|j}x�|D]�}xR|D]J}|�||B|j|jB�|�||Bj|j|jB�|�t||B�|�qWx�td�D]�}|�||B|j|B�|�||Bj|j|B�|�t||B�|�|�||B||jB�|�||Bj||jB�|�t||B�|�qnWqWx>|D]6}|�||B|�|�|dB|�|�d|B|��qW|j}|�|j|jB|j�dS)Nrr)	rrxr}r�r�r,r'r"r&)r=rr�r+r'rrrr,�	s&


zTestIntFlag.test_orc
	Cs�|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}�x|D�]}xp|D]h}|�||@|j|j@d||f�|�||@j|j|j@d||f�|�t||@�|d||f�qjWx�t	d�D]�}|�||@|j|@�|�||@j|j|@�|�t||@�|�|�||@||j@�|�||@j||j@�|�t||@�|�q�Wq^Wx>|D]6}|�||@|�|�|d@|�|�d|@|��qvW|j
}	|�|	j|	j@|	j�dS)Nrzi is %r, j is %rrr�)
rrrrr�rxr}r�r�r,r'r"r&)
r=rr$r-r.r/r0r�r+r'rrrr1�	s0
"$"
zTestIntFlag.test_andcCsd|j}x�|D]�}xR|D]J}|�||A|j|jA�|�||Aj|j|jA�|�t||A�|�qWx�td�D]�}|�||A|j|A�|�||Aj|j|A�|�t||A�|�|�||A||jA�|�||Aj||jA�|�t||A�|�qnWqWx.|D]&}|�|dA|�|�d|A|��qW|j}|�|j|jA|j�|�|j|jA|j�dS)Nrr)	rrxr}r�r�r,r'r"r&)r=rr�r+r'rrrr2�	s&


zTestIntFlag.test_xorc	Cs
|j}|j|jB}|j|jB}|j|jB}|j|jB|jB}t|�|||||d�g}xT|D]L}|�||j�|�|j|j�|�t|�|�|�||�q\Wx|D]}|�||�q�W|j	}|�|j
|j
@|j�|�|j
|jB|j
@|j�dS)Nr)
rrrrr�rxr}r�r�r'r#r"r&)	r=rr$r-r.r/r0r�r'rrrr3�	s 

zTestIntFlag.test_invertcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�x~td���D]n\}}d|>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�q^WdS)NrzR W Xrr)rr�rxr�rrrr�r�r}r�r�r|r�r�)r=rr�r�r5r�r�rrrr6�	s
z,TestIntFlag.test_programatic_function_stringcCs�tdddd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�x~td���D]n\}}d|>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�qbWdS)NrzR W Xr)r5r)rr�rxr�rrrr�r�r}r�r�r|r�r�)r=rr�r�r5r�r�rrrr7�	sz7TestIntFlag.test_programatic_function_string_with_startcCs�tddddg�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�x~td���D]n\}}d|>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�qdWdS)NrrrrrzR W Xr)rr�rxr�rrrr�r�r}r�r�r|r�r�)r=rr�r�r5r�r�rrrr8�	sz1TestIntFlag.test_programatic_function_string_listcCs�tdd�}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�x�td���D]v\}}dd|d>}||�}|�|j	|�|�t
|j	�t�|�||�|�|j|�|�
||�|�t
|�|�q^WdS)Nr))rr)rr)rr�rzR W Xrr)rr�rxr�rrrr�r�r}r�r�r|r�r�)r=rr�r�r5r�r�rrrr9

s
z.TestIntFlag.test_programatic_function_iterablecCs�tdtd��}t|�}|�t|�t|��|�t|�d|�|�||j|j|jg�x�td�	��D]v\}}dd|d>}||�}|�|j
|�|�t|j
�t�|�||�|�|j
|�|�||�|�t|�|�qbWdS)Nr))rr)rr)rr�rzR W Xrr)rrr�rxr�rrrr�r�r}r�r�r|r�r�)r=rr�r�r5r�r�rrrr:
sz/TestIntFlag.test_programatic_function_from_dictcCsxt�dg�}t|�}|�t|�t|��|�t|�d|�t�dg�}t|�}|�t|�t|��|�t|�d|�dS)Nrr�Thing)r9rr�rxr�r)r=rr�rZrrr�)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)NrrrrZ)r9rr�rxr�r)r=rr�rZrrr�*test_programatic_function_from_empty_tuple6
sz6TestIntFlag.test_programatic_function_from_empty_tuplec	Cs�|j}|j}|�|j|k�|�|j|k�|�|j|k�|�|j|k�|�t��|�d|k�WdQRX|�t��|�d|k�WdQRX|�t��|�d|k�WdQRX|�t��|�d|k�WdQRXdS)Nr�r$r)r�r'r<r�r$r8r�r�)r=r�r'rrrr�?
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�WdQRXdS)NZswallow)rr<r8r�r�)	r=rrrrr$r-r.r/rrrr�O
s(
z TestIntFlag.test_member_containscCsL|j}x|D]}|�|�qW|j}x"|D]}|�t|j�t|��q*WdS)N)rr<r'rxr�r})r=rr4r'rrrr�e
s

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}|r6|d}x|dd�D]}||O}q&W||_|S)Nrr)r�rA)r�rBrCr�rrrrAo
sz5TestIntFlag.test_multiple_mixin.<locals>.AllMixin.ALLN)rrrrSrArrrrrDn
srDc@seZdZdd�ZdS)z1TestIntFlag.test_multiple_mixin.<locals>.StrMixincSs
|j��S)N)r�r�)r=rrrr�z
sz9TestIntFlag.test_multiple_mixin.<locals>.StrMixin.__str__N)rrrr�rrrrr�y
sr�c@seZdZe�Ze�Ze�ZdS)z.TestIntFlag.test_multiple_mixin.<locals>.ColorN)rrrr	r�r�r�rrrrr�|
sr�rrr\r�z
Color.BLUEc@seZdZe�Ze�Ze�ZdS)z.TestIntFlag.test_multiple_mixin.<locals>.ColorN)rrrr	r�r�r�rrrrr��
sr�c@seZdZe�Ze�Ze�ZdS)z.TestIntFlag.test_multiple_mixin.<locals>.ColorN)rrrr	r�r�r�rrrrr��
s)rrxr�r}r�r�rArs)r=rDr�r�rrrrm
s(zTestIntFlag.test_multiple_mixinc	sxGdd�dt��t��d����fdd���fdd�td�D�}t�|��WdQRX|��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||kS)Nr)r=r�rrrr)�
sz:TestIntFlag.test_unique_composite.<locals>.TestFlag.__eq__cSs
t|j�S)N)rEr�)r=rrrrF�
sz<TestIntFlag.test_unique_composite.<locals>.TestFlag.__hash__N)rrrr	r�r�rLrGrHrIrJrKr)rFrrrrr�
srFcsBy$xtd�D]}���|��qWWntk
r<d�YnXdS)NrLT)r,rMr)r�)rrNrOrrrP�
s
z5TestIntFlag.test_unique_composite.<locals>.cycle_enumcsg|]}tj�d��qS))r/)rQrR)r�rI)rPrrr��
sz5TestIntFlag.test_unique_composite.<locals>.<listcomp>rz;at least one thread failed while creating composite membersrLz"too many composite members created)rryr,rrSr8rxr�)r=rTr)rrPrNrOrrU�
s

z!TestIntFlag.test_unique_compositeN)rrrr!rrr�r'rXr)r*r,r1r2r3r6r7r8r9r:r[r\r�r�r�rrrVrUrrrrrW	s.!!	+rWc@s$eZdZdd�Zdd�Zdd�ZdS)�TestEmptyAndNonLatinStringsc	Cs$|�t��tdd�}WdQRXdS)N�	empty_abc)�rgrh)r�r�r)r=r^rrr�test_empty_string�
sz-TestEmptyAndNonLatinStrings.test_empty_stringcCs&tdd�}t|d�}|�|jd�dS)N�	greek_abc)uαrgrhuαr)rr�rxr})r=rar�rrr�test_non_latin_character_string�
s

z;TestEmptyAndNonLatinStrings.test_non_latin_character_stringcCs&tdd�}t|d�}|�|jd�dS)N�
hebrew_123)uא�2�3uאr)rr�rxr})r=rcr�rrr�test_non_latin_number_string�
s

z8TestEmptyAndNonLatinStrings.test_non_latin_number_stringN)rrrr`rbrfrrrrr]�
sr]c@s$eZdZdd�Zdd�Zdd�ZdS)�
TestUniquecCs,tGdd�dt��}tGdd�dt��}dS)Nc@seZdZdZdZdZdS)z+TestUnique.test_unique_clean.<locals>.CleanrrOg@N)rrrr�r�rPrrrr�Clean�
srhc@seZdZdZdZdZdS)z-TestUnique.test_unique_clean.<locals>.CleanerrrrN)rrr�single�double�triplerrrr�Cleaner�
srl)rrr)r=rhrlrrr�test_unique_clean�
szTestUnique.test_unique_cleanc	Cs\|�td��tGdd�dt��}WdQRX|�td��tGdd�dt��}WdQRXdS)Nz	tres.*onec@seZdZdZdZdZdS)z+TestUnique.test_unique_dirty.<locals>.DirtyrrON)rrrr�r�rPrrrr�Dirty�
srnzdouble.*single.*turkey.*triplec@seZdZdZdZdZdZdS)z-TestUnique.test_unique_dirty.<locals>.DirtierrrN)rrrrirjrkZturkeyrrrr�Dirtier�
sro)rr�rrr)r=rnrorrr�test_unique_dirty�
szTestUnique.test_unique_dirtycCs,tGdd�dt��}tGdd�dt��}dS)Nc@seZdZdZdZdZdS)z/TestUnique.test_unique_with_name.<locals>.SillyrrOrN)rrrr�r�r|rrrr�Silly�
srqc@seZdZdZdZdZdZdS)z1TestUnique.test_unique_with_name.<locals>.Sillierrrrr\N)rrrrir|rkr}rrrr�Sillier�
srr)rrr)r=rqrrrrr�test_unique_with_name�
sz TestUnique.test_unique_with_nameN)rrrrmrprsrrrrrg�
srga�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.
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors 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.ColorrrrN)rrrr�r�r�rrrrr�Isr�cCsTtjdkrtt}ntt}t�}tj|d�}||j�|�	��
�}|�||�dS)N)�output)r r!�!expected_help_output_without_docsr�expected_help_output_with_docsr
�pydocZHelperr��getvalue�striprx)r=Z
expected_textru�helper�resultrrr�
test_pydocNs


zTestStdLib.test_pydoccCs�tdtfdd|jjfdtfd|jjfd|jjfdtjdfd|jj	fd	tjd	ff	�}tt
�|j��}|�|�
�|�
��d
}xL|�
�D]@}||||kr�t�tdd|||||dfd
d�d}q�W|r�|�d�dS)Nrv)r!zAn enumeration.rwrr�r�r|r�r}Fz.
%s
     key: %s
  result: %s
expected: %s
%s
zK===========================================================================r_)�sepTz/result does not equal expected, see print above)�dictrr�rwrr�r�r�__dict__r��inspectZ
getmembersrx�keysr��fail)r=r0r|rNr�rrr�test_inspect_getmembersZs*



z"TestStdLib.test_inspect_getmemberscCs6ddlm}|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}x:t||�D],\}}||kr�tdd||dfdd�d}q�W|�r2|�d�dS)Nr)�	Attributerv�data)r|�kindZdefining_classrjr!zAn enumeration.rwr�rr�r�r�r|r}cSs|jS)N)r|)r�rrrr��r�z>TestStdLib.test_inspect_classify_class_attrs.<locals>.<lambda>)�keycSs|jS)N)r|)r�rrrr��r�Fz
%s
%s
%s
%s
zK===========================================================================r_)r~Tz/result does not equal expected, see print above)r�r�rjrr�rwrr�r�r�rr��sortr�Zclassify_class_attrsr�r�r�)r=r�r0r|rNr��rrrr�!test_inspect_classify_class_attrsrs:


z,TestStdLib.test_inspect_classify_class_attrs)	rrrZmaxDiffrr�r}r�r�rrrrrtEs
rtc@seZdZdd�ZdS)�MiscTestCasecCst�|t�dS)N)rZcheck__all__r9)r=rrr�test__all__�szMiscTestCase.test__all__N)rrrr�rrrrr��sr�rec@seZdZdd�Zdd�ZdS)�TestIntEnumConvertcCs4tjjddtdkdd�d�}|�|d�jd�dS)	N�UnittestConvert)ztest.test_enum�__main__r�cSs
|�d�S)N�
CONVERT_TEST_)�
startswith)r�rrrr��r�zGTestIntEnumConvert.test_convert_value_lookup_priority.<locals>.<lambda>)�filterre�CONVERT_TEST_NAME_A)r9r�_convertrrxr|)r=rXrrr�"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)Nr�)ztest.test_enumr�r�cSs
|�d�S)Nr�)r�)r�rrrr��r�z1TestIntEnumConvert.test_convert.<locals>.<lambda>)r�recSs g|]}|dd�dkr|�qS)rr)ZCOrJr)r�r|rrrr��sz3TestIntEnumConvert.test_convert.<locals>.<listcomp>z&Names other than CONVERT_TEST_* found.)�msg)r9rr�rrx�CONVERT_TEST_NAME_Fr��CONVERT_TEST_NAME_B�CONVERT_TEST_NAME_C�CONVERT_TEST_NAME_D�CONVERT_TEST_NAME_Erz)r=rXrrr�test_convert�s
zTestIntEnumConvert.test_convertN)rrrr�r�rrrrr��s
r�r�)N)Ar9r�rxZunittestrQ�collectionsrrrrrrrr	�ior
�picklerrr
rr�rrtr�ImportErrorrrr�r�rrrrrrsr r"rr$r&r'r*r0r2ZTestCaser3rSr[rrrWr]rgrwrvrtr�r�r�r�r�r�r�r��mainrrrr�<module>s�$

a>%TP