
    ;e                    b
   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Zd dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZmZ d dlmZm Z m!Z!m"Z"m#Z# d dlm$Z$m%Z%m&Z& d dl'm(Z( d d	l)m*Z*m+Z+m,Z,m-Z- d d
l.m/Z/ d dl0m1Z1 d dl0m2Z2 d dl3m4Z4 d dlm5Z5 ej6        dd         Z7d Z8e9Z:e:;                    d          d         Z<	  G d de          Z=n# e>$ rZ?e?Z=Y dZ?[?ndZ?[?ww xY w	  G d de@e          ZAn# e>$ rZ?e?ZAY dZ?[?ndZ?[?ww xY w	  G d deBe          ZCn# e>$ rZ?e?ZCY dZ?[?ndZ?[?ww xY w	  G d de          ZDn# e>$ rZ?e?ZDY dZ?[?ndZ?[?ww xY w G d de          ZE G d de          ZF G d d e          ZG G d! d"e          ZH	  ed#d$e9%          ZIn# e>$ rZ?e?ZIY dZ?[?ndZ?[?ww xY w	  ed&d'          ZJn# e>$ rZ?e?ZJY dZ?[?ndZ?[?ww xY w	  ed(d)d*+          ZKn# e>$ rZ?e?ZKY dZ?[?ndZ?[?ww xY w	  G d, d-e          ZLn# e>$ r Y nw xY wdd.ZMd/ ZN G d0 d1ejO                  ZP G d2 d3          ZQejR         G d4 d5eej        6                      ZSejR         G d7 d8eej        6                      ZTejR         G d9 d:e                      ZU G d; d<          ZV G d= d>          ZW G d? d@          ZX G dA dB          ZY G dC dD          ZZ G dE dFeVeWejO                  Z[ G dG dHeVeWeZejO                  Z\ G dI dJeVeYejO                  Z] G dK dLeVeYejO                  Z^ G dM dNeVeYeZejO                  Z_ G dO dPeVeXejO                  Z` G dQ dReVeXejO                  Za G dS dTeVeXeZejO                  Zb G dU dVeVeXejO                  Zc G dW dXeVeYejO                  Zd G dY dZeVeXejO                  Ze G d[ d\eVeYejO                  Zf G d] d^ejO                  Zg G d_ d`ejO                  Zh G da dbejO                  Zi G dc ddejO                  Zj G de dfejO                  Zk G dg dhejO                  Zl G di djejO                  Zm G dk dlejO                  Zn G dm dnejO                  ZodoZpdpZq G dq drejO                  Zr G ds dtejO                  ZsduZtduZuduZvduZwduZxduZyduZzduZ{duZ|duZ}duZ~duZdvZdwZduZdxZdyZdzZd{Zd|Z G d} d~          Z G d dejO                  Zd Zd Z e            Ze9dk    r ej                     dS dS )    N)OrderedDictdate)	EnumEnumMetaIntEnumStrEnumEnumTypeFlagIntFlaguniqueauto)STRICTCONFORMEJECTKEEP_simple_enum_test_simple_enum)verifyUNIQUE
CONTINUOUSNAMED_FLAGSReprEnum)member	nonmember_iter_bits_lsb)StringIO)dumpsloadsPicklingErrorHIGHEST_PROTOCOL)support)	ALWAYS_EQ)threading_helper)dedent)	timedelta   c                    |                     t          j        t                               t          j                            d          r@|                     t          j        dt          j        t          j	        z                       t          j                            d          r@|                     t          j        dt          j        t          j	        z                       |S )NzDoc/library/enum.rstz../../Doc/library/enum.rst)optionflagszDoc/howto/enum.rstz../../Doc/howto/enum.rst)
addTestsdoctestDocTestSuiteenumospathexistsDocFileSuiteELLIPSISNORMALIZE_WHITESPACE)loadertestsignores      %/usr/lib/python3.11/test/test_enum.py
load_testsr8      s    	NN7'--...	w~~,-- w+,#,W-II   	 	 	 
w~~*++ w+*#,W-II   	 	 	 L    .c                       e Zd ZdZdZdZdS )Stooges   r'      N__name__
__module____qualname__LARRYCURLYMOE r9   r7   r=   r=   /           r9   r=   c                       e Zd ZdZdZdZdS )
IntStoogesr>   r'   r?   Nr@   rG   r9   r7   rJ   rJ   7   rH   r9   rJ   c                       e Zd ZdZdZdZdS )FloatStoogesg=
ףp=?g(\@gR$_	$	@Nr@   rG   r9   r7   rL   rL   ?   s        r9   rL   c                       e Zd ZdZdZdZdZdS )FlagStoogesr>   r'        NrA   rB   rC   rD   rE   rF   BIGrG   r9   r7   rN   rN   G   s"        r9   rN   c                   "    e Zd ZdZdZdZdZdZdS )FlagStoogesWithZeror   r>   r'   rO   rP   NrA   rB   rC   NOFLAGrD   rE   rF   rR   rG   r9   r7   rT   rT   O   '        FEE
C
CCCr9   rT   c                       e Zd ZdZdZdZdZdS )IntFlagStoogesr>   r'   rO   rP   NrQ   rG   r9   r7   rY   rY   V   s"        EE
C
CCCr9   rY   c                   "    e Zd ZdZdZdZdZdZdS )IntFlagStoogesWithZeror   r>   r'   rO   rP   NrU   rG   r9   r7   r[   r[   \   rW   r9   r[   c                       e Zd ZdZdZdS )NameGuido van RossumzBarry WarsawN)rA   rB   rC   BDFLFLUFLrG   r9   r7   r]   r]   d   s        DEEEr9   r]   Questionzwho what when where whymoduleAnswerzhim this then there becauseTheoryzrule law suppositionspanish_inquisition)qualnamec                       e Zd ZdZdZdZdS )Fruitr>   r'   r?   N)rA   rB   rC   TOMATOBANANACHERRYrG   r9   r7   ri   ri   y   s        r9   ri   c           	          ||}t          t          dz             D ]*} | t          t          ||                    |           +d S Nr>   )protocol)ranger!   r   r   )	assertionsourcetargetro   s       r7   test_pickle_dump_loadrt      sa    ~*Q.// C C	%fx888996BBBBC Cr9   c                     t          t          dz             D ]6} | |          5  t          ||           d d d            n# 1 swxY w Y   7d S rn   )rp   r!   r   )rq   	exceptionobjro   s       r7   test_pickle_exceptionrx      s    *Q.// * *Yy!! 	* 	*#))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	** *s   AA	
A	c                   @    e Zd ZdZdZdZdZdZd Zd Z	d Z
d	 Zd
 ZdS )TestHelpers_bad__good_	_what_ho___mal____bien____que_que___MyEnum__private_MyEnum__still_private_MyEnum__private__MyEnum__also_private_okay_semi_private_weird__	_MyEnum__c                      G d d          }dD ]k} |            }|                      t          j        |                     t          ||d           |                     t          j        |                     ld S )Nc                       e Zd ZdS )+TestHelpers.test_is_descriptor.<locals>.fooNrA   rB   rC   rG   r9   r7   foor              Dr9   r   )__get____set__
__delete__r>   )assertFalser-   _is_descriptorsetattr
assertTrue)selfr   attrrw   s       r7   test_is_descriptorzTestHelpers.test_is_descriptor   s    	 	 	 	 	 	 	 	6 	6 	6D#%%CT055666Cq!!!OOD/445555		6 	6r9   c                    | j         | j        z   D ]-}|                     t          j        |          d|z             .| j        | j        z   | j        z   D ]-}|                     t          j        |          d|z             .dD ])}|                     t          j        |                     *dD ])}|                     t          j        |                     *d S )N%r is a not sunder name?%r is a sunder name?)_a__aa_)aa__a__aa____a___a____a________________	sunder_namesprivate_and_sunder_namesr   r-   
_is_sunderdunder_namesprivate_namesrandom_namesr   r   namess      r7   test_sunderzTestHelpers.test_sunder   s    %(EE 	V 	VDOODOD113MPT3TUUUU%(::T=NN 	S 	SDT_T224JT4QRRRR  	0 	0AOODOA..///// 	1 	1AT_Q//0000	1 	1r9   c                    | j         D ]-}|                     t          j        |          d|z             .| j        | j        z   | j        z   | j        z   D ]-}|                     t          j        |          d|z             .dD ])}|                     t          j        |                     *dD ])}|                     t          j        |                     *d S )N%r is a not dunder name?%r is a dunder name?)r   __aa__)r   r   r   r   r   r   r   r   r   r   r   r   r   	r   r   r-   
_is_dunderr   r   r   r   r   r   s      r7   test_dunderzTestHelpers.test_dunder   s    % 	V 	VDOODOD113MPT3TUUUU%(::T=ZZ]a]nn 	S 	SDT_T224JT4QRRRR$ 	0 	0AOODOA..///// 	1 	1AT_Q//0000	1 	1r9   c                    | j         | j        z   D ]+}|                     t          j        d|          d           ,| j        | j        z   | j        z   D ]+}|                     t          j        d|          d           ,d S NMyEnumz%r is a not private name?z%r is a private name?	r   r   r   r-   _is_privater   r   r   r   r   r   s     r7   test_is_privatezTestHelpers.test_is_private       &)FF 	[ 	[DOOD,Xt<<>YZZZZ%(99D<MM 	X 	XDT-h==?VWWWW	X 	Xr9   c                     |                      t          t          d                    g d           |                     t          dt          t          d                     d S )N   r>   r'   rO   z-8 is not a positive integeri)assertEquallistr   assertRaisesRegex
ValueErrorr   s    r7   test_iter_bits_lsbzTestHelpers.test_iter_bits_lsb   sW    nQ//00)))<<<z+I4Q_`bQcQcdddddr9   N)rA   rB   rC   r   r   r   r   r   r   r   r   r   r   rG   r9   r7   rz   rz      s         2L7L@MLCL6 6 6	1 	1 	1	1 	1 	1X X Xe e e e er9   rz   c                       e Zd ZddZd ZdS )classpropertyNc                 T    || _         || _        || _        |	||j        }|| _        d S N)fgetfsetfdel__doc__)r   r   r   r   docs        r7   __init__zclassproperty.__init__   s3    			;4+,Cr9   c                 ,    |                      |          S r   )r   )r   instance
ownerclasss      r7   r   zclassproperty.__get__   s    yy$$$r9   )NNNN)rA   rB   rC   r   r   rG   r9   r7   r   r      s7           % % % % %r9   r   c                   N    e Zd ZdZ e            Z e            Z e            ZdS )HeadlightsKr   N)rA   rB   rC   OFF_Kr   
LOW_BEAM_KHIGH_BEAM_KFOG_KrG   r9   r7   r   r      4        EJ$&&KDFFEEEr9   r   boundaryc                   N    e Zd ZdZ e            Z e            Z e            ZdS )HeadlightsCr   N)rA   rB   rC   OFF_Cr   
LOW_BEAM_CHIGH_BEAM_CFOG_CrG   r9   r7   r   r      r   r9   r   c                       e Zd ZdZdZdS )NoNamer>   r'   NrA   rB   rC   ONETWOrG   r9   r7   r   r      s        
C
CCCr9   r   c                   6   e Zd ZdZdZd Zd Zd Zd Zd Z	d Z
d	 Z ej        ed
k    d          d             Z ej        ed
k     d          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%dS )$
_EnumTestszX
    Test for behavior that is the same across the different types of enumerations.
    Nc                      G d d j                   } G  fdd|          }| _         G d d j                   }| _         G d d j                   }| _         G d	 d
 j                   }| _         G d d j                   } G d d|          }| _        d _        g d _        t          |t                    r j         _
        nc|j        t          u r
g d _
        nKt           j         t                    r!g d _
        d _         |d           _        n j
        pg d _
        t           dd          s j
         _        d S d S )Nc                   .    e Zd Zej        d             ZdS )"_EnumTests.setUp.<locals>.BaseEnumc                     d| j         z  S )Nz%s is first!r   r   s    r7   firstz(_EnumTests.setUp.<locals>.BaseEnum.first   s    %	11r9   N)rA   rB   rC   r-   propertyr   rG   r9   r7   BaseEnumr      s/        ]2 2 ]2 2 2r9   r   c                   z    e Zd Z e            Z e            Z e            Z e j        e	          rdZ
dS eZ
dS )"_EnumTests.setUp.<locals>.MainEnumr?   N)rA   rB   rC   r   r   secondthird
issubclass	enum_typer   duper   s   r7   MainEnumr      sT        DFFETVVFDFFEz$.$// r9   r  c                   (    e Zd Zd Z e            ZdS )$_EnumTests.setUp.<locals>.NewStrEnumc                 4    | j                                         S r   r   upperr   s    r7   __str__z,_EnumTests.setUp.<locals>.NewStrEnum.__str__       y(((r9   N)rA   rB   rC   r  r   r   rG   r9   r7   
NewStrEnumr     (        ) ) )DFFEEEr9   r  c                   (    e Zd Zd Z e            ZdS )'_EnumTests.setUp.<locals>.NewFormatEnumc                 4    | j                                         S r   r	  r   specs     r7   
__format__z2_EnumTests.setUp.<locals>.NewFormatEnum.__format__  r  r9   N)rA   rB   rC   r  r   r   rG   r9   r7   NewFormatEnumr    r  r9   r  c                   .    e Zd Zd Zd Z e            ZdS )*_EnumTests.setUp.<locals>.NewStrFormatEnumc                 4    | j                                         S r   r   titler   s    r7   r  z2_EnumTests.setUp.<locals>.NewStrFormatEnum.__str__  r  r9   c                 P    d                     t          | j                            S N joinreversedr   r  s     r7   r  z5_EnumTests.setUp.<locals>.NewStrFormatEnum.__format__      wwx	22333r9   N)rA   rB   rC   r  r  r   r   rG   r9   r7   NewStrFormatEnumr  
  s7        ) ) )4 4 4DFFEEEr9   r"  c                       e Zd Zd Zd ZdS )%_EnumTests.setUp.<locals>.NewBaseEnumc                 4    | j                                         S r   r  r   s    r7   r  z-_EnumTests.setUp.<locals>.NewBaseEnum.__str__  r  r9   c                 P    d                     t          | j                            S r  r  r  s     r7   r  z0_EnumTests.setUp.<locals>.NewBaseEnum.__format__  r!  r9   N)rA   rB   rC   r  r  rG   r9   r7   NewBaseEnumr$    s2        ) ) )4 4 4 4 4r9   r'  c                   "    e Zd Z e            ZdS )$_EnumTests.setUp.<locals>.NewSubEnumN)rA   rB   rC   r   r   rG   r9   r7   
NewSubEnumr)    s        DFFEEEr9   r*  F)r   r   r  )123r   T   r>   r'   r?   source_values)r  r  r  r  r"  r*  is_flagnamesr  r	   values_member_type_strr   dupe2getattrr0  )r   r   r  r  r  r"  r'  r*  s   `       r7   setUpz_EnumTests.setUp   s-   	2 	2 	2 	2 	2t~ 	2 	2 	2	 	 	 	 	 	 	x 	 	 	 !	 	 	 	 	 	 	 	 %	 	 	 	 	DN 	 	 	 +	 	 	 	 	t~ 	 	 	 !1	4 	4 	4 	4 	4$. 	4 	4 	4
	 	 	 	 	 	 	 	$111
h(( 		3*DKK#s**)//DKK-- 	3#))DKDL!!DJJ+2DKt_e44 	-!%D	- 	-r9   c                     |                      |                    |          |                    |j                             d S r   )r   formatvaluer   r  r   s      r7   assertFormatIsValuez_EnumTests.assertFormatIsValue+  s8    V,,dkk&,.G.GHHHHHr9   c                     |                      |                    |          |                    t          |                               d S r   )r   r:  r5  r<  s      r7   assertFormatIsStrz_EnumTests.assertFormatIsStr.  s<    V,,dkk#f++.F.FGGGGGr9   c                      G d d| j                   }|                     t          |d                     |`|                     t          |d                     |                     t                    5  |`d d d            n# 1 swxY w Y   |                     t                    5  |`d d d            n# 1 swxY w Y   |                     t                    5  |j        `	d d d            d S # 1 swxY w Y   d S )Nc                   P    e Zd Z e            Z e            Z e            Zd ZdS )2_EnumTests.test_attribute_deletion.<locals>.Seasonc                     d S r   rG   )clss    r7   spamz7_EnumTests.test_attribute_deletion.<locals>.Season.spam7      r9   N)rA   rB   rC   r   SPRINGSUMMERAUTUMNrE  rG   r9   r7   SeasonrB  2  sD        TVVFTVVFTVVF    r9   rJ  rE  )
r  r   hasattrrE  r   assertRaisesAttributeErrorrG  DRYr   r   rJ  s     r7   test_attribute_deletionz"_EnumTests.test_attribute_deletion1  s   	 	 	 	 	T^ 	 	 	 	//000K00111~.. 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	~.. 	 	
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	~.. 	# 	#"	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s6   6BB	B	*B99B= B=C33C7:C7c                 h   | j         }| j        r|                     t          |          d           |                     t	          |          d           |                     t          |          d           |                      |d          | j        u            ni|                     t          |          d           |                     t	          |          d           |                     t          |          d           |                     t          |          |j	        |j
        |j        g           |                     d |D             | j                   |                     d |D             | j                   |                     d |D             g d           t          || j        d	          D ]!\  }}|                     ||         |           "t          || j        d	          D ]$\  }}|                      ||          |           %t!          |t"                    r5|                     |j         |d
          cxu o	|d         u nc            d S |j        t          u r5|                     |j         |d          cxu o	|d         u nc            d S t!          |t(                    r5|                     |j         |d          cxu o	|d         u nc            d S |                     |j         || j        d                   cxu o	|d         u nc            d S )Nz<flag 'MainEnum'>r.  z<enum 'MainEnum'>c                     g | ]	}|j         
S rG   r   .0ms     r7   
<listcomp>z*_EnumTests.test_basics.<locals>.<listcomp>R  s    $$$A$$$r9   c                     g | ]	}|j         
S rG   r;  rS  s     r7   rV  z*_EnumTests.test_basics.<locals>.<listcomp>V      %%%Q%%%r9   c                     g | ]	}|j         
S rG   )r   rS  s     r7   rV  z*_EnumTests.test_basics.<locals>.<listcomp>Z  rY  r9   )zfirst is first!zsecond is first!zthird is first!Tstrictr  r  r-  r?   r'   )r  r1  r   reprr5  r:  r   r6  r   r   r   r  r2  r3  zipassertIsr  r	   r  r4  r   )r   TEr   r   r;  s        r7   test_basicsz_EnumTests.test_basicsE  sh   ]< 	>T"XX':;;;SWW&9:::VBZZ)<===OOBBqEETZ/0000T"XX':;;;SWW&9:::VBZZ)<===bBHbi#BCCC$$$$$
	 	 	 	%%"%%%	 	 	 	%%"%%%JJJ	 	 	  DJt<<< 	, 	,LFDMM"T(F++++ T[>>> 	- 	-MFEMM""U))V,,,,b'"" 	IOOBGrr'{{@@@@bj@@@@AAAAA$$OOBGrr#ww<<<<"V*<<<<=====D!! 	IOOBGrr!uu::::6
::::;;;;;OOBGrr$+a.'9'9GGGGRZGGGGHHHHHr9   c                      G d d| j                   }|                     |           |                     | j                   | j        D ]}|                     |           d S )Nc                       e Zd ZdS )+_EnumTests.test_bool_is_true.<locals>.EmptyNr   rG   r9   r7   Emptyrd  k  r   r9   re  )r  r   r  )r   re  r   s      r7   test_bool_is_truez_EnumTests.test_bool_is_truej  s    	 	 	 	 	DN 	 	 	&&&m 	$ 	$FOOF####	$ 	$r9   c                     | j         }|                     t                    5  d| j         _        d d d            d S # 1 swxY w Y   d S )Nzreally first)r  rL  rM  r   )r   r  s     r7   test_changing_member_failsz%_EnumTests.test_changing_member_failss  s    =~.. 	2 	2#1DM 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   <A A r?      2__contains__ now returns True/False for all inputsc                    | j         }|                     |j        |           |                     t                    5  |                     t                    5  | j        d         |v  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t                    5  |                     t                    5  d|v  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |j        }|                     ||            G d dt                    }| 
                    |j        |           d S )Nr>   r   c                   6    e Zd Z e            Z e            ZdS )._EnumTests.test_contains_er.<locals>.OtherEnumNrA   rB   rC   r   onetworG   r9   r7   	OtherEnumrn    $        $&&C$&&CCCr9   rr  )r  assertInr  rL  	TypeErrorassertWarnsDeprecationWarningr0  r  r   assertNotInrq  r   r  valrr  s       r7   test_contains_erz_EnumTests.test_contains_erx  sN   
 =hnh///y)) 	2 	2!!"455 2 2"1%112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 y)) 	$ 	$!!"455 $ $8##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ mc8$$$	 	 	 	 	 	 	 	 	11111sk   BA4(B4A8	8B;A8	<BBB0C3CC3C 	 C3#C 	$C33C7:C7z6__contains__ works only with enum memmbers before 3.12c                 R   | j         }|                     |j        |           |                     | j        d         |v            |                     d|v            |j        }|                     ||            G d dt                    }|                     |j	        |           d S )Nr   r   c                   6    e Zd Z e            Z e            ZdS )._EnumTests.test_contains_tf.<locals>.OtherEnumNro  rG   r9   r7   rr  r~    rs  r9   rr  )
r  rt  r   r   r0  r   r  r   rx  rq  ry  s       r7   test_contains_tfz_EnumTests.test_contains_tf  s    
 =hnh///*1-9:::H,---mc8$$$	 	 	 	 	 	 	 	 	11111r9   c                     | j         }|                     t          t          |                    t          t	          |                               d S r   )r  r   setdirenum_dirr   r`  s     r7   test_dir_on_classz_EnumTests.test_dir_on_class  s?    ]SWWs8B<<'8'899999r9   c                     | j         }|                     t          t          |j                            t          t          |j                                       d S r   )r  r   r  r  r   
member_dirr  s     r7   test_dir_on_itemz_EnumTests.test_dir_on_item  sG    ]S]]++SBH1E1E-F-FGGGGGr9   c                      G d d| j                   }|                     dt          |          v           |                     dt          |j                  v            d S )Nc                   <    e Zd Z e            Z e            Zd ZdS )5_EnumTests.test_dir_with_added_behavior.<locals>.Testc                     d| j         z  S )NzWowser! I'm %s!r   r   s    r7   wowserz<_EnumTests.test_dir_with_added_behavior.<locals>.Test.wowser  s    )DI56r9   N)rA   rB   rC   r   thistheser  rG   r9   r7   Testr    s9        466DDFFE7 7 7 7 7r9   r  r  )r  r   r  r  )r   r  s     r7   test_dir_with_added_behaviorz'_EnumTests.test_dir_with_added_behavior  sr    	7 	7 	7 	7 	74> 	7 	7 	7
 	D		1222C	NN233333r9   c                      G d d| j                   } G d d|          }|                     dt          |          v           |                     dt          |j                  v            d S )Nc                       e Zd Zd ZdS )D_EnumTests.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnumc                     dS )Nzdid you see me?rG   r   s    r7   	invisiblezN_EnumTests.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnum.invisible  s    ((r9   N)rA   rB   rC   r  rG   r9   r7   	SuperEnumr    s#        ) ) ) ) )r9   r  c                   "    e Zd Z e            ZdS )B_EnumTests.test_dir_on_sub_with_behavior_on_super.<locals>.SubEnumN)rA   rB   rC   r   samplerG   r9   r7   SubEnumr    s        TVVFFFr9   r  r  r  r   r  r  r   r  r  s      r7   &test_dir_on_sub_with_behavior_on_superz1_EnumTests.test_dir_on_sub_with_behavior_on_super  s    	) 	) 	) 	) 	) 	) 	) 	)	 	 	 	 	i 	 	 	3w<<7888s7>':'::;;;;;r9   c                      G  fdd j                   } G  fdd|          }                     dt          |          v                                dt          |j                  v t          |j                             d S )Nc                       e Zd Z fdZdS )\_EnumTests.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SuperEnumc                    j         j        j        }j         j        t          u r ||           }n1t	          |d         t
                    r|d         \  }n|} || g|R  }t          |          dk    r|d         n||_        d|_        |S )Nr   r>   ztest description)	r  r4  __new__object
isinstancetuplelen_value_description)rD  r;  kwdsnewrw   create_valuer   s         r7   r  zd_EnumTests.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SuperEnum.__new__  s    n2:>/699#c((CC!%(E22 -(-a',#c1L111C*-e**//eAhhu"4
r9   NrA   rB   rC   r  r   s   r7   r  r    s.              r9   r  c                   *    e Zd Z j        d         ZdS )Z_EnumTests.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SubEnumr>   N)rA   rB   rC   r0  r  r   s   r7   r  r    s        '*FFFr9   r  r  r  r  s   `  r7   >test_dir_on_sub_with_behavior_including_instance_dict_on_superzI_EnumTests.test_dir_on_sub_with_behavior_including_instance_dict_on_super  s    	 	 	 	 	 	 	 	 	 		+ 	+ 	+ 	+ 	+ 	+ 	+i 	+ 	+ 	+S\\9:::W^)<)<<c'.>Q>QRRRRRr9   c                 f    | j         }|                      ||j                  |j                   d S r   )r  r_  r   )r   Mains     r7   test_enum_in_enum_outz _EnumTests.test_enum_in_enum_out  s1    }dd4:&&
33333r9   c                     | j         }i }d||j        <   d||j        <   d||j        <   |                     ||j                 d           d S )N122503150704)r  r   r   r  r   )r   r  mappings      r7   	test_hashz_EnumTests.test_hash  sU    ="(#) "(16:::::r9   c                    |                      t                    5   G d d| j                  }d d d            n# 1 swxY w Y   |                      t                    5   G d d| j                  }d d d            n# 1 swxY w Y   |                      t                    5   G d d| j                  }d d d            n# 1 swxY w Y   |                      t                    5   G d d| j                  }d d d            n# 1 swxY w Y   |                      t                    5   G d d| j                  }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdZdS ,_EnumTests.test_invalid_names.<locals>.Wrong	   N)rA   rB   rC   mrorG   r9   r7   Wrongr            r9   r  c                       e Zd ZdZdS )r     N)rA   rB   rC   _create_rG   r9   r7   r  z,_EnumTests.test_invalid_names.<locals>.Wrong  s        r9   c                       e Zd ZdZdS r  )rA   rB   rC   _get_mixins_rG   r9   r7   r  z,_EnumTests.test_invalid_names.<locals>.Wrong  s         r9   c                       e Zd ZdZdS )r  r>   N)rA   rB   rC   
_find_new_rG   r9   r7   r  z,_EnumTests.test_invalid_names.<locals>.Wrong          


r9   c                       e Zd ZdZdS r  )rA   rB   rC   
_any_name_rG   r9   r7   r  z,_EnumTests.test_invalid_names.<locals>.Wrong  r  r9   )rL  r   r  r   r  s     r7   test_invalid_namesz_EnumTests.test_invalid_names  s   z** 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 z** 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 z** 	! 	!! ! ! ! ! ! ! !	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! z** 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 z** 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sU   ;?? B  BB%CC	C	*D

DD/EEEc                       G  fdd j                   }                     t          |j                  d           dS )z=check that setting __str__ to object's is not reset to Enum'sc                   >    e Zd Z j        d         Zd Zej        ZdS )4_EnumTests.test_object_str_override.<locals>.Genericr'   c                     | j         dS )Nz.test_name_r   s    r7   __repr__z=_EnumTests.test_object_str_override.<locals>.Generic.__repr__  s    $(KKK22r9   N)rA   rB   rC   r0  itemr  r  r  r   s   r7   Genericr    s2        %a(D3 3 3nGGGr9   r  z	item.testN)r  r   r5  r  r   r  s   ` r7   test_object_str_overridez#_EnumTests.test_object_str_override  sa    	% 	% 	% 	% 	% 	% 	%dn 	% 	% 	%
 	W\**K88888r9   c                 $   | j         }|                     t          |j                  |j        j                                                   |                     t          |j                  |j        j                                                   d S r   )r  r   r5  r   r   r
  r:  )r   NSs     r7   test_overridden_strz_EnumTests.test_overridden_str  sm    _RX(;(;(=(=>>>))28=+>+>+@+@AAAAAr9   c                 @   | j         }|                     t          |j                  |j        j                                                   |                     t          |j                  d                    t          |j        j                                       d S r  )	r"  r   r5  r   r   r  r:  r  r   )r   NSFs     r7   test_overridden_str_formatz%_EnumTests.test_overridden_str_format  sv    #SY)=)=)?)?@@@	**BGGHSY^4L4L,M,MNNNNNr9   c                 @   | j         }|                     t          |j                  |j        j                                                   |                     t          |j                  d                    t          |j        j                                       d S r  )	r*  r   r5  r   r   r  r:  r  r   )r   NSEs     r7   $test_overridden_str_format_inheritedz/_EnumTests.test_overridden_str_format_inherited  su    oSY)=)=)?)?@@@	**BGGHSY^4L4L,M,MNNNNNr9   c                    |                      dd          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     |j        |j        |j        g|           | j        }| j         t          u rg d}t          d
                                |          D ]\  }}||         }|                     |j        |t          |                     |                     |j        |           |j        t          ur,t          ||j                  r|                     ||           n|                     ||           |                     ||           |                     t'          |          |           |                     | ||                     d S )N	MinorEnumjune july augustr?   junejulyaugustr  r   r   r  r  r  r  r3  r	   r^  splitr;  r   r4  r  r  assertNotEqualrt  r_  typer   r  lstr3  monthaves          r7   !test_programmatic_function_stringz,_EnumTests.test_programmatic_function_string  s   NN;0BCC	9ooS3y>>222YI6661AB	 	 	 >W$$---F/5577@@ 
	, 
	,IE2% AQWb$y//:::QVU+++&f44IyOf9g9g4  B''''##Ar***MM!Y'''MM$q''9---MM!YYr]]++++
	, 
	,r9   c                    |                      dg d          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     |j        |j        |j        g|           | j        }| j         t          u rg d}t          d
                                |          D ]\  }}||         }|                     |j        |           |                     |j        |           |j        t          ur,t          ||j                  r|                     ||           n|                     ||           |                     ||           |                     t'          |          |           |                     | ||                     d S )Nr  r  r?   r  r  r  s          r7   &test_programmatic_function_string_listz1_EnumTests.test_programmatic_function_string_list  s   NN;0J0J0JKK	9ooS3y>>222YI6661AB	 	 	 >W$$---F/5577@@ 
	, 
	,IE2% AQWb)))QVU+++&f44IyOf9g9g4  B''''##Ar***MM!Y'''MM$q''9---MM!YYr]]++++
	, 
	,r9   c                    |                      dd| j        d         fd| j        d         fd| j        d         ff          }t          |          }|                     t	          |          t	          |                     |                     t	          |          d|           |                     |j        |j        |j        g|           t          d		                                | j
                  D ]\  }}||         }|                     |j        |           |                     |j        |           |j        t          ur,t          ||j                  r|                     ||           n|                     ||           |                     ||           |                     t'          |          |           |                     | ||                     d S 
Nr  r  r   r  r>   r  r'   r?   r  )r  r0  r   r   r  r  r  r  r^  r  r3  r;  r   r4  r  r  r  rt  r_  r  r   r  r  r  r  r  s         r7   #test_programmatic_function_iterablez._EnumTests.test_programmatic_function_iterable3  s   NN$,Q/064;Ma;P2QT\^b^pqr^sStu 	 9ooS3y>>222YI6661AB	 	 	 /5577EE 
	, 
	,IE2% AQWb)))QVU+++&f44IyOf9g9g4  B''''##Ar***MM!Y'''MM$q''9---MM!YYr]]++++
	, 
	,r9   c           
      p   |                      dt          d| j        d         fd| j        d         fd| j        d         ff                    }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     |j        |j        |j        g|           t          d	
                                | j                  D ]\  }}||         }|j        t          ur,t          ||j                  r|                     ||           n|                     ||           |                     ||           |                     t%          |          |           |                     | ||                     d S r  )r  r   r0  r   r   r  r  r  r  r^  r  r3  r4  r  r  r  rt  r_  r  r  s         r7   $test_programmatic_function_from_dictz/_EnumTests.test_programmatic_function_from_dictK  s   NNfd&8&;<vtGYZ[G\>]`hjnj|}~j  `A  B  C  C 	 9ooS3y>>222YI6661AB	 	 	 /5577EE 	, 	,IE2% A&f44IyOf9g9g4  B''''##Ar***MM!Y'''MM$q''9---MM!YYr]]++++	, 	,r9   c           	         | j         }| j        r}|                     t           |d                    d           |                     t          |j                  d           |                     t          | j                  d           n{t          |t                    r)|                     t          |j                  d           n=|                     t          |j                  d| j        d         d|j	                   t          | j        | j        |d	
          D ]:\  }}}|                     t          |          d|j        d|j        d           ;d S )Nr   z<MainEnum: 0>z<MainEnum.dupe: 3>z<MainEnum.first|third: 5>z<MainEnum.third: 'third'>z<MainEnum.third: r'   >Tr[  z
<MainEnum.z: )r  r1  r   r]  r  r6  r  r	   r3  _value_repr_r^  r2  r   r;  r   r`  r   r;  r   s        r7   	test_reprz_EnumTests.test_repra  sO   ]< 	jT""Q%%[[/:::T"']],@AAAT$*--/JKKKKG$$ 	jT"']],GHHHHT"']]]dkRSnnn,WY[Yhiii#&tz4;4#P#P#P 	^ 	^D%T&\\\&+++v|||+\]]]]	^ 	^r9   c                 |     G d d| j                   }|                     t          |j                  d           d S )Nc                   P    e Zd Z e            Z e            Z e            Zd ZdS )._EnumTests.test_repr_override.<locals>.Genericc                     d| j         z  S )Nz!don't you just love shades of %s?r   r   s    r7   r  z7_EnumTests.test_repr_override.<locals>.Generic.__repr__s  s    :TYFFr9   N)rA   rB   rC   r   r   r   r  r  rG   r9   r7   r  r  o  sI        DFFETVVFDFFEG G G G Gr9   r  z$don't you just love shades of third?)r  r   r]  r  r  s     r7   test_repr_overridez_EnumTests.test_repr_overriden  sj    	G 	G 	G 	G 	Gdn 	G 	G 	G 	W]##6	 	 	 	 	r9   c                      G d d| j                   } G d d|          }|                     t          |j                  d           d S )Nc                       e Zd Zd ZdS )._EnumTests.test_inherited_repr.<locals>.MyEnumc                     d| j         z  S )NzMy name is %s.r   r   s    r7   r  z7_EnumTests.test_inherited_repr.<locals>.MyEnum.__repr__|  s    '$)33r9   NrA   rB   rC   r  rG   r9   r7   r   r  {  #        4 4 4 4 4r9   r   c                   J    e Zd Z e            Z e            Z e            ZdS )1_EnumTests.test_inherited_repr.<locals>.MySubEnumN)rA   rB   rC   r   r  thattheotherrG   r9   r7   	MySubEnumr  ~  s/        466D466DtvvHHHr9   r  zMy name is that.)r  r   r]  r  )r   r   r  s      r7   test_inherited_reprz_EnumTests.test_inherited_reprz  s    	4 	4 	4 	4 	4T^ 	4 	4 	4	 	 	 	 	 	 	 	 	in--/ABBBBBr9   c                      G d dt                     } G d d|t                    }|                     t          |j                  d           d S )Nc                       e Zd ZdS )C_EnumTests.test_multiple_superclasses_repr.<locals>._EnumSuperClassNr   rG   r9   r7   _EnumSuperClassr    r   r9   r  	metaclassc                       e Zd ZdZdS )5_EnumTests.test_multiple_superclasses_repr.<locals>.Er>   N)rA   rB   rC   ArG   r9   r7   Er            AAAr9   r  z<E.A: 1>)r   r   r   r]  r  )r   r  r  s      r7   test_multiple_superclasses_reprz*_EnumTests.test_multiple_superclasses_repr  s    	 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	acJ/////r9   c                     |                      t          t          | j                            | j        j        | j        j        | j        j        g           d S r   )r   r   r   r  r  r   r   r   s    r7   test_reversed_iteration_orderz(_EnumTests.test_reversed_iteration_order  sR    Xdm,,--$dm&:DM<OP	 	 	 	 	r9   )&rA   rB   rC   r   r3  r8  r=  r?  rP  ra  rf  rh  unittestskipIfpython_versionr{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rG   r9   r7   r   r      sW         F:- :- :-xI I IH H H# # #(#I #I #IJ$ $ $2 2 2
 X_g%@ 2 2	 2" X_W$D 2 2	 2: : :H H H4 4 4< < <S S S*4 4 4; ; ;  "9 9 9B B B
O O O
O O O
, , ,0, , ,0, , ,0, , ,,^ ^ ^
 
 
C C C0 0 0    r9   r   c                   &    e Zd Zd Zd Zd Zd ZdS )_PlainOutputTestsc                 
   | j         }| j        r}|                     t           |d                    d           |                     t          |j                  d           |                     t          | j                  d           n(|                     t          |j                  d           t          | j        | j        |d          D ]1\  }}}|                     t          |          d|j	                   2d S )	Nr   zMainEnum(0)MainEnum.dupeMainEnum.first|thirdMainEnum.thirdTr[  	MainEnum.
r  r1  r   r5  r  r6  r^  r2  r3  r   r  s        r7   test_strz_PlainOutputTests.test_str  s    ]< 	=SAZZ777S\\?;;;S__.DEEEES\\+;<<<#&tz4;4#P#P#P 	K 	KD%S[[[6;;*IJJJJ	K 	Kr9   c                    | j         }| j        rQ|                     t          |j                  d           |                     t          | j                  d           n(|                     t          |j                  d           t          | j        | j        |d          D ]1\  }}}|                     t          |          d|j	                   2d S Nr%  r&  r'  Tr[  r(  
r  r1  r   r:  r  r6  r^  r2  r3  r   r  s        r7   test_formatz_PlainOutputTests.test_format      ]< 	@VBG__o>>>VDJ//1GHHHHVBG__.>???#&tz4;4#P#P#P 	N 	ND%VF^^^fkk-LMMMM	N 	Nr9   c                     | j         }|                     t          |j                  d|j        d|j                   |                     t          |j                  d           d S )NNewFormatEnum.first FIRST)r  r   r5  r   r  r:  r   NFs     r7   test_overridden_formatz(_PlainOutputTests.test_overridden_format  sc    RX(="***VXV^V^?_```))733333r9   c                    | j         }|                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   d S N{}{:}{:20}{:^20}{:>20}{:<20}{:5.2})r  r?  r   r  s     r7   test_format_specsz#_PlainOutputTests.test_format_specs  s    ]tRY///ubi000w	222x333x333x333x33333r9   NrA   rB   rC   r*  r.  r6  r@  rG   r9   r7   r#  r#    sV        	K 	K 	KN N N4 4 4
4 4 4 4 4r9   r#  c                   &    e Zd Zd Zd Zd Zd ZdS )_MixedOutputTestsc                    | j         }| j        rQ|                     t          |j                  d           |                     t          | j                  d           n(|                     t          |j                  d           t          | j        | j        |d          D ]1\  }}}|                     t          |          d|j	                   2d S r,  r)  r  s        r7   r*  z_MixedOutputTests.test_str  s    ]< 	=S\\?;;;S__.DEEEES\\+;<<<#&tz4;4#P#P#P 	K 	KD%S[[[6;;*IJJJJ	K 	Kr9   c                    | j         }| j        rQ|                     t          |j                  d           |                     t          | j                  d           n(|                     t          |j                  d           t          | j        | j        |d          D ]1\  }}}|                     t          |          d|j	                   2d S r,  r-  r  s        r7   r.  z_MixedOutputTests.test_format  r/  r9   c                     | j         }|                     t          |j                  d           |                     t	          |j                  d           d S )Nr1  r3  )r  r   r5  r   r:  r4  s     r7   r6  z(_MixedOutputTests.test_overridden_format  sO    RX(=>>>))733333r9   c                    | j         }|                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   d S r8  )r  r?  r   r  s     r7   r@  z#_MixedOutputTests.test_format_specs  s    ]tRX...ubh///w111x222x222x222x22222r9   NrA  rG   r9   r7   rC  rC    sV        K K KN N N4 4 4
3 3 3 3 3r9   rC  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )_MinimalOutputTestsc                    | j         }| j        rQ|                     t          |j                  d           |                     t          | j                  d           n@|                     t          |j                  t          | j        d                              t          | j        | j        |d          D ]6\  }}}|                     t          |          t          |                     7d S Nr-  5r'   Tr[  )	r  r1  r   r5  r  r6  r3  r^  r2  r  s        r7   r*  z_MinimalOutputTests.test_str  s    ]< 	@S\\3///S__c2222S\\3t{1~+>+>???#&tz4;4#P#P#P 	6 	6D%S[[#e**5555	6 	6r9   c                    | j         }| j        rQ|                     t          |j                  d           |                     t          | j                  d           n@|                     t          |j                  t          | j        d                              t          | j        | j        |d          D ]6\  }}}|                     t          |          t          |                     7d S rK  )	r  r1  r   r:  r  r6  r3  r^  r2  r  s        r7   r.  z_MinimalOutputTests.test_format  s    ]< 	FVBG__c222VDJ//5555VBG__fT[^.D.DEEE#&tz4;4#P#P#P 	< 	<D%VF^^VE]];;;;	< 	<r9   c                     | j         }|                     t          |j                  t          | j        d                              |                     t          |j                  d           d S )Nr   r3  )r  r   r5  r   r3  r:  r4  s     r7   r6  z*_MinimalOutputTests.test_overridden_format  s\    RXDKN(;(;<<<))733333r9   c                    | j         }|                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   |j        t          u rS|                     d|j                   |                     d|j                   |                     d	|j                   d S d S )
Nr9  r:  r;  r<  r=  r>  z{:n}r?  z{:f})r  r=  r  r4  floatr  s     r7   r@  z%_MinimalOutputTests.test_format_specs  s    ]  rx000  111  "(333  28444  28444  28444u$$$$VRX666$$Xrx888$$VRX66666 %$r9   c                    | j         }t          j        |          }|                     ||           |                     ||           t          j        |          }|                     ||           |                     ||           d S r   )r  copyr   r_  deepcopyr   r`  copieddeeps       r7   	test_copyz_MinimalOutputTests.test_copy  s    ]2$$$fb!!!}R  r"""dBr9   c                     | j         }t          j        |j                  }|                     ||j                   t          j        |j                  }|                     ||j                   d S r   )r  rR  r   r_  rS  rT  s       r7   test_copy_memberz$_MinimalOutputTests.test_copy_member  s]    ]28$$fbh'''}RX&&dBH%%%%%r9   N)	rA   rB   rC   r*  r.  r6  r@  rW  rY  rG   r9   r7   rI  rI    sn        6 6 6< < <4 4 4
7 7 7     & & & & &r9   rI  c                        e Zd Zd Zd Zd ZdS )
_FlagTestsc                     |                      t          d          5 }|                     d           d d d            n# 1 swxY w Y   |                     |j        j        d            d S )Nz'RED' is not a valid RED)r   r   r  r_  rv   __context__)r   ctxs     r7   *test_default_missing_with_wrong_type_valuez5_FlagTests.test_default_missing_with_wrong_type_value  s    ###  	! MM%   		! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!
 	cm/66666s   >AAc                     G d d| j                   }|\  }}|j        }|                     | |           |                     | |           |                     ||z    |d                     |                     |  |d                     |                      |d           ||z              G d d| j                   }|\  }}}|j        }	|                     | ||z             |                     | ||z             |                     | ||z             |                     ||z   |           |                     ||z   |           |                     ||z   |           |                     ||z  |z    |d                     |                     |	  |d                     |                      |d           ||z  |z             d S )Nc                       e Zd ZdZdZdZdS )<_FlagTests.test_closed_invert_expectations.<locals>.ClosedABr>   r'   r?   NrA   rB   rC   r  BMASKrG   r9   r7   ClosedABrc  !  s        AADDDr9   rg  r   c                       e Zd ZdZdZdZdZdS )=_FlagTests.test_closed_invert_expectations.<locals>.ClosedXYZrO   r'   r>   r   NrA   rB   rC   XYZrf  rG   r9   r7   	ClosedXYZri  .  s"        AAADDDr9   rn  )r  rf  r_  )
r   rg  r  re  AB_MASKrn  rk  rl  rm  XYZ_MASKs
             r7   test_closed_invert_expectationsz*_FlagTests.test_closed_invert_expectations   s   	 	 	 	 	t~ 	 	 	 1-qb!qb!!fhhqkk***wh,,,xx{{lQqS***	 	 	 	 	 	 	 	
 1a>qb!A#qb!A#qb!A#!fa   !fa   !fa   !Ah		!---xi1...yy||mac!e-----r9   c                     G d d| j                   }|\  }}|j        }|j        t          t          fv r|                     |  |d                     |                     |  |d                     |                     ||z    |d                     |                     |  |d                     |                      |d           |           n|                     | |           |                     | |           |                     ||z    |d                     |                     |  |d                     |                      |d           ||z              G d d| j                   }|\  }}}|j        }	|j        t          t          fv r1|                     |  |d	                     |                     |  |d
                     |                     |  |d                     |                     ||z    |d                     |                     ||z    |d                     |                     ||z    |d                     |                     ||z  |z    |d                     |                     |	  |d                     |                      |d           |	           d S |                     | ||z             |                     | ||z             |                     | ||z             |                     ||z   |           |                     ||z   |           |                     ||z   |           |                     ||z  |z    |d                     |                     |	  |d                     |                      |d           ||z  |z             d S )Nc                       e Zd ZdZdZdZdS )8_FlagTests.test_open_invert_expectations.<locals>.OpenABr>   r'      Nrd  rG   r9   r7   OpenABrt  A  s        AADDDr9   rv           r   c                       e Zd ZdZdZdZdZdS )9_FlagTests.test_open_invert_expectations.<locals>.OpenXYZrO   r'   r>      Nrj  rG   r9   r7   OpenXYZr{  U  s"        AAADDDr9   r}                       )r  rf  
_boundary_r   r   r_  r   )
r   rv  r  re  ro  r}  rk  rl  rm  rp  s
             r7   test_open_invert_expectationsz(_FlagTests.test_open_invert_expectations@  s   	 	 	 	 	T^ 	 	 	 1+--MM1"ffSkk***MM1"ffSkk***MMAaC&&&++...MM7(FF1II...MM66!99*g....MM1"a   MM1"a   MMAaC&&&)),,,MM7(FF1II...MM66!99*qs,,,	 	 	 	 	dn 	 	 	
 1a<%..MM1"ggbkk***MM1"ggbkk***MM1"ggbkk***MMAaC&''"++...MMAaC&''"++...MMAaC&''"++...MMAaCE(GGBKK000MM8)WWQZZ000OOWWQZZK22222MM1"ac"""MM1"ac"""MM1"ac"""MMAaC&!$$$MMAaC&!$$$MMAaC&!$$$MMAaCE(GGAJJ///MM8)WWQZZ000OOWWQZZK!A#a%11111r9   N)rA   rB   rC   r`  rq  r  rG   r9   r7   r[  r[    sB        7 7 7. . .@02 02 02 02 02r9   r[  c                       e Zd ZeZdS )TestPlainEnumN)rA   rB   rC   r   r  rG   r9   r7   r  r  s          IIIr9   r  c                       e Zd ZeZdS )TestPlainFlagN)rA   rB   rC   r   r  rG   r9   r7   r  r  w  r  r9   r  c                       e Zd ZeZdS )TestIntEnumN)rA   rB   rC   r   r  rG   r9   r7   r  r  {          IIIr9   r  c                       e Zd ZeZdS )TestStrEnumN)rA   rB   rC   r	   r  rG   r9   r7   r  r    r  r9   r  c                       e Zd ZeZdS )TestIntFlagN)rA   rB   rC   r   r  rG   r9   r7   r  r    r  r9   r  c                   ,    e Zd Z G d dee          ZdS )TestMixedIntc                       e Zd ZdS )TestMixedInt.enum_typeNr   rG   r9   r7   r  r              r9   r  N)rA   rB   rC   intr   r  rG   r9   r7   r  r    ,        $$$$$C$$$$$r9   r  c                   ,    e Zd Z G d dee          ZdS )TestMixedStrc                       e Zd ZdS )TestMixedStr.enum_typeNr   rG   r9   r7   r  r    r  r9   r  N)rA   rB   rC   r5  r   r  rG   r9   r7   r  r    r  r9   r  c                   ,    e Zd Z G d dee          ZdS )TestMixedIntFlagc                       e Zd ZdS )TestMixedIntFlag.enum_typeNr   rG   r9   r7   r  r    r  r9   r  N)rA   rB   rC   r  r   r  rG   r9   r7   r  r    r  r9   r  c                       e Zd Z eddd           eddd           eddd	          gZg d
Z G d dee          ZdS )TestMixedDate  rj  r    r?        r  r~  )r  rj  r  )r  r?   r  )r  r  r~  c                       e Zd Zd ZdS )TestMixedDate.enum_typec                     g d}||         S )Nr  rG   r   startcountlast_valuesr3  s        r7   _generate_next_value_z-TestMixedDate.enum_type._generate_next_value_  s    DDDF%= r9   NrA   rB   rC   r  rG   r9   r7   r  r    #        	! 	! 	! 	! 	!r9   r  N)rA   rB   rC   r   r3  r0  r   r  rG   r9   r7   r  r    s        d4R  $$tQ"3"3TT$B5G5GHFCCCM! ! ! ! !D$ ! ! ! ! !r9   r  c                       e Zd Z eddd           eddd           eddd          gZg dZ G d	 d
ee          ZdS )TestMinimalDate  rj  r>     r'   r    )r  rj  r>   )r  r'   r  )r  r>   r>   c                       e Zd Zd ZdS )TestMinimalDate.enum_typec                     g d}||         S )Nr  rG   r  s        r7   r  z/TestMinimalDate.enum_type._generate_next_value_  s    AAAF%= r9   Nr  rG   r9   r7   r  r    r  r9   r  N)rA   rB   rC   r   r3  r0  r   r  rG   r9   r7   r  r    s        d4QdAr!2!2DDq!4D4DEF@@@M! ! ! ! !D( ! ! ! ! !r9   r  c                   4    e Zd Zg dZ G d dee          ZdS )TestMixedFloatg?g@gffffff
@c                       e Zd Zd ZdS )TestMixedFloat.enum_typec                     g d}||         S )Nr  rG   r  s        r7   r  z.TestMixedFloat.enum_type._generate_next_value_      $__F%= r9   Nr  rG   r9   r7   r  r    r  r9   r  N)rA   rB   rC   r3  rP  r   r  rG   r9   r7   r  r    sI        __F! ! ! ! !E4 ! ! ! ! !r9   r  c                   4    e Zd Zg dZ G d dee          ZdS )TestMinimalFloatg@g      @gffffff@c                       e Zd Zd ZdS )TestMinimalFloat.enum_typec                     g d}||         S )Nr  rG   r  s        r7   r  z0TestMinimalFloat.enum_type._generate_next_value_  r  r9   Nr  rG   r9   r7   r  r    r  r9   r  N)rA   rB   rC   r3  rP  r   r  rG   r9   r7   r  r    sI        __F! ! ! ! !E8 ! ! ! ! !r9   r  c                      e Zd ZdZd Zd Zd Z ej        d          d             Z	d Z
d Zd	 Zd
 Z ej        edk    d          d             Z ej        edk     d          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d? ZAd@ ZBdA ZCdB ZDdC ZEdD ZFdE ZGdF ZHdG ZIdH ZJdI ZKdJ ZLdK ZMdL ZNdM ZOdN ZPdO ZQdP ZRdQ ZSdR ZTdS ZUdT ZVdU ZWdV ZXdW ZYdX ZZdY Z[dZ Z\d[ Z]d\ Z^d] Z_d^ Z`d_ Zad` Zbda Zcdb Zddc ZeddS )eTestSpecialzM
    various operations that are not attributable to every possible enum
    c                      G d dt                     }|| _         G d dt                    }|| _         G d dt          t                     }|| _        ddlm}  G d	 d
|t                     }|| _        d S )Nc                       e Zd ZdZdZdZdZdS )!TestSpecial.setUp.<locals>.Seasonr>   r'   r?   rO   N)rA   rB   rC   rG  rH  rI  WINTERrG   r9   r7   rJ  r    "        FFFFFFr9   rJ  c                   "    e Zd ZdZdZdZdZdZdS )!TestSpecial.setUp.<locals>.Gradesr.  rO   r?   r'   r   NrA   rB   rC   r  re  CDFrG   r9   r7   Gradesr    '        AAAAAAAr9   r  c                       e Zd ZdZdZdZdZdS )&TestSpecial.setUp.<locals>.DirectionaleastwestnorthsouthN)rA   rB   rC   EASTWESTNORTHSOUTHrG   r9   r7   Directionalr    s"        DDEEEEr9   r  r   r   c                       e Zd ZdZdZdS )"TestSpecial.setUp.<locals>.Holiday)  r>   r>   )r  r?   r  N)rA   rB   rC   NEW_YEARIDES_OF_MARCHrG   r9   r7   Holidayr    s        !H'MMMr9   r  )	r   rJ  r   r  r5  r  datetimer   r  )r   rJ  r  r  r   r  s         r7   r8  zTestSpecial.setUp  s    	 	 	 	 	T 	 	 	
 	 	 	 	 	W 	 	 	 	 	 	 	 	#t 	 	 	
 '!!!!!!	( 	( 	( 	( 	(dD 	( 	( 	( r9   c                     G d dt                     }|                     |j                   |                     |j                    G d dt                     }|                     |j                   |                     |j                    G d dt
          t                     }|                     |j                   |                     |j                   d S )Nc                       e Zd ZdZdZdS )$TestSpecial.test_bool.<locals>.LogicTFNrA   rB   rC   truefalserG   r9   r7   Logicr    s        DEEEr9   r  c                       e Zd ZdZdZd ZdS )(TestSpecial.test_bool.<locals>.RealLogicTFc                 *    t          | j                  S r   )boolr  r   s    r7   __bool__z1TestSpecial.test_bool.<locals>.RealLogic.__bool__      DL)))r9   N)rA   rB   rC   r  r  r  rG   r9   r7   	RealLogicr    s-        DE* * * * *r9   r  c                       e Zd ZdZdZdS )'TestSpecial.test_bool.<locals>.IntLogicr>   r   Nr  rG   r9   r7   IntLogicr            DEEEr9   r  )r   r   r  r  r   r  )r   r  r  r  s       r7   	test_boolzTestSpecial.test_bool  s
   	 	 	 	 	D 	 	 	 	
###$$$	* 	* 	* 	* 	* 	* 	* 	*
 		''')))	 	 	 	 	sD 	 	 	 	&&&(((((r9   c                 4   | j         }|                     t                    5  |j        |j        k      d d d            n# 1 swxY w Y   |                     t                    5  |j        dk     d d d            n# 1 swxY w Y   |                     |j        d            G d dt                    }|                     |j        |j                   |                     t                    5  |j        |j        k      d d d            d S # 1 swxY w Y   d S )NrO   r>   c                       e Zd ZdZdZdZdS )*TestSpecial.test_comparisons.<locals>.Partr>   r'   r?   N)rA   rB   rC   rG  CLIPBARRELrG   r9   r7   Partr    s        FDFFFr9   r  )rJ  rL  ru  rG  r  r  r   r   )r   rJ  r  s      r7   test_comparisonszTestSpecial.test_comparisons  s   y)) 	* 	*MFM))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*y)) 	 	MA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	FM1---	 	 	 	 	4 	 	 	
 	FM4;777y)) 	& 	&MDI%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s3   ?AA$A<<B B /DDDz
to-do listc                     G d dt                     }t          |          }|                     d|           |                     d|           |                     d|           |                     d|            G d dt                     }t          |          }|                     d|           |                     d|           |                     d|           |                     d|           d S )	Nc                       e Zd ZdS );TestSpecial.test_dir_with_custom_dunders.<locals>.PlainEnumNr   rG   r9   r7   	PlainEnumr  	  r   r9   r  r  r  r  r   c                   &    e Zd Zd Zd Zd Zd ZdS )8TestSpecial.test_dir_with_custom_dunders.<locals>.MyEnumc                 6    t                               |           S r   r  r  r   s    r7   r  zATestSpecial.test_dir_with_custom_dunders.<locals>.MyEnum.__repr__      t,,,r9   c                 6    t                               |           S r   r  r   s    r7   r  z@TestSpecial.test_dir_with_custom_dunders.<locals>.MyEnum.__str__  r  r9   c                 6    t                               |           S r   r  r   s    r7   r  zCTestSpecial.test_dir_with_custom_dunders.<locals>.MyEnum.__format__  r  r9   c                     d S r   rG   r   s    r7   r   zATestSpecial.test_dir_with_custom_dunders.<locals>.MyEnum.__init__  rF  r9   N)rA   rB   rC   r  r  r  r   rG   r9   r7   r   r	    sP        - - -- - -- - -    r9   r   )r   r  rx  rt  )r   r  cls_dirr   s       r7   test_dir_with_custom_dundersz(TestSpecial.test_dir_with_custom_dunders  s   	 	 	 	 	 	 	 	i..W---G,,,w///W---	 	 	 	 	T 	 	 	 f++j'***i)))lG,,,j'*****r9   c                    |                      t                    5   G d dt                    }d d d            n# 1 swxY w Y   |                      t                    5   G d dt                    }d d d            n# 1 swxY w Y   |                      t                    5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdZdZdZdZdS )4TestSpecial.test_duplicate_name_error.<locals>.Colorr>   r'   r?   rO   NrA   rB   rC   redgreenbluerG   r9   r7   Colorr  "  s"        r9   r  c                        e Zd ZdZdZdZd ZdS )r  r>   r'   r?   c                     dS )Nr  rG   r   s    r7   r  z8TestSpecial.test_duplicate_name_error.<locals>.Color.red-  s     5r9   Nr  rG   r9   r7   r  z4TestSpecial.test_duplicate_name_error.<locals>.Color)  s2        ! ! ! ! !r9   c                   :    e Zd Zej        d             ZdZdZdZdS )r  c                     dS )NredderrG   r   s    r7   r  z8TestSpecial.test_duplicate_name_error.<locals>.Color.red2  s    #8r9   r>   r'   r?   N)rA   rB   rC   r-   r   r  r  r  rG   r9   r7   r  z4TestSpecial.test_duplicate_name_error.<locals>.Color1  s8        $ $ $r9   rL  ru  r   r   r  s     r7   test_duplicate_name_errorz%TestSpecial.test_duplicate_name_error   s   y)) 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	! 	!! ! ! ! ! ! ! !	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! y)) 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s1   ;?? B  BB%CC
C
c                     t          t          t                    rt          |                     t          j        d           d S )Nrf   )r  re   	Exceptionr   rC   r   s    r7    test_enum_function_with_qualnamez,TestSpecial.test_enum_function_with_qualname9  s9    fi(( 	L,.CDDDDDr9   c                 t    G d dt                     }|                     |j        j        t                     |                     |j        j        t                     |                     |j        j        t                      G d d           G d d           G fddt                     }|                     |j	        j                   |                     |j
        j                    G d	 d
           G fddt                     }|                     |j        j                   dS )2Support using Enum to refer to types deliberately.c                       e Zd ZeZeZeZdS )/TestSpecial.test_enum_of_types.<locals>.MyTypesN)	rA   rB   rC   r  irP  fr5  r   rG   r9   r7   MyTypesr(  @  s        AAAAAr9   r+  c                       e Zd ZdS )+TestSpecial.test_enum_of_types.<locals>.FooNr   rG   r9   r7   Foor-  G  r   r9   r.  c                       e Zd ZdS )+TestSpecial.test_enum_of_types.<locals>.BarNr   rG   r9   r7   Barr0  I  r   r9   r1  c                       e Zd ZZ ZdS )0TestSpecial.test_enum_of_types.<locals>.MyTypes2N)rA   rB   rC   r   br1  r.  s   r7   MyTypes2r3  K  s        AAAAr9   r6  c                       e Zd ZdS )8TestSpecial.test_enum_of_types.<locals>.SpamEnumNotInnerNr   rG   r9   r7   SpamEnumNotInnerr8  P  r   r9   r9  c                       e Zd Z ZdS )0TestSpecial.test_enum_of_types.<locals>.SpamEnumN)rA   rB   rC   rE  )r9  s   r7   SpamEnumr;  R  s        #DDDr9   r<  N)r   r   r)  r;  r  r*  rP  r   r5  r   r4  rE  )r   r+  r6  r<  r1  r.  r9  s       @@@r7   test_enum_of_typeszTestSpecial.test_enum_of_types>  s   	 	 	 	 	d 	 	 	 	#...%000#...	 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	t 	 	 	 	)3///)3///	 	 	 	 	 	 	 		$ 	$ 	$ 	$ 	$ 	$ 	$t 	$ 	$ 	$,.>?????r9   c                     G d dt                     }|                     |j        j        t          j        t                              |                     |j        j        t          t                              |                     t          |j                  d           |                     t          |j                  d           d S )Nc                   8    e Zd Zej        e         Zee         ZdS )3TestSpecial.test_enum_of_generic_aliases.<locals>.EN)	rA   rB   rC   typingListr  r   r   r4  rG   r9   r7   r  r@  W  s#        C AS	AAAr9   r  z<E.a: typing.List[int]>z<E.b: list[int]>)
r   r   r   r;  rA  rB  r  r4  r   r]  )r   r  s     r7   test_enum_of_generic_aliasesz(TestSpecial.test_enum_of_generic_aliasesV  s    	 	 	 	 	 	 	 	 	FK$4555DI...ac$=>>>ac$677777r9   r?      zinner classes are not membersc                 z   |                      t          d          5   G d dt                    }ddd           n# 1 swxY w Y   |                     t	          |j        |                     |                     |j        j        d           |                     |j        j        j	        j        d           |                     t          |j        j                  |j        j        j	        |j        j        j        g           |                     t          |          |j        |j        |j        g           dS )z-
        Check for warnings pre-3.13
        zwill not become a memberc                   2    e Zd ZdZdZ G d de          ZdS )BTestSpecial.test_nested_classes_in_enum_are_members.<locals>.Outerr>   r'   c                       e Zd ZdZdZdS )HTestSpecial.test_nested_classes_in_enum_are_members.<locals>.Outer.Inner
   r  NrA   rB   rC   r   barrG   r9   r7   InnerrJ  k  s        CCCCr9   rN  NrA   rB   rC   r   r4  r   rN  rG   r9   r7   OuterrH  h  sH            D     r9   rP  Nr>   rK  )assertWarnsRegexrw  r   r   r  rN  r   r   r;  r   r   rM  r4  r   rP  s     r7   'test_nested_classes_in_enum_are_membersz3TestSpecial.test_nested_classes_in_enum_are_members_  ss    ""#57QRR 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
5;66777****.4b999"##["EK$5$9:	 	 	 	KKWegu{+	 	 	 	 	   <A A zinner classes are still membersc                     G d dt                     }|                     t          |j        t                               |                     |j        j        d           |                     |j        j        j        d           |                     t          |j                  |j        j        |j        j
        g           |                     t          |          |j        |j        g           dS )'Support locally-defined nested classes.c                   2    e Zd ZdZdZ G d de          ZdS )FTestSpecial.test_nested_classes_in_enum_are_not_members.<locals>.Outerr>   r'   c                       e Zd ZdZdZdS )LTestSpecial.test_nested_classes_in_enum_are_not_members.<locals>.Outer.InnerrK  r  NrL  rG   r9   r7   rN  rZ    s        r9   rN  NrO  rG   r9   r7   rP  rX    sH        AA         r9   rP  r>   rK  Nr   r   r  rN  r  r   r   r;  r   r   rM  r4  rR  s     r7   +test_nested_classes_in_enum_are_not_membersz7TestSpecial.test_nested_classes_in_enum_are_not_membersz  s    	 	 	 	 	D 	 	 	 	
5;55666***.333[_eko.	 	 	 	KKWeg	 	 	 	 	r9   c                     G d dt                     }|                     t          |j        t                               |                     |j        j        d           |                     |j        j        j        d           |                     t          |j                  |j        j        |j        j
        g           |                     t          |          |j        |j        g           d S )Nc                   B    e Zd ZdZdZe G d de                      ZdS )ETestSpecial.test_nested_classes_in_enum_with_nonmember.<locals>.Outerr>   r'   c                       e Zd ZdZdZdS )KTestSpecial.test_nested_classes_in_enum_with_nonmember.<locals>.Outer.InnerrK  r  NrL  rG   r9   r7   rN  ra            r9   rN  N)rA   rB   rC   r   r4  r   r   rN  rG   r9   r7   rP  r_    sR        AA       Y  r9   rP  r>   rK  r[  rR  s     r7   *test_nested_classes_in_enum_with_nonmemberz6TestSpecial.test_nested_classes_in_enum_with_nonmember  s    	 	 	 	 	D 	 	 	 	
5;55666***.333[_eko.	 	 	 	KKWeg	 	 	 	 	r9   c                 \    G d dt                     }|                     |j        j        t                     |                     |j        t          u            |                     |j        j        t                      G d d           G d d           G fddt                     }|                     |j
        j                   |                     |j        u             G d	 d
           G fddt                     }|                     |j        u            dS )r&  c                   ,    e Zd ZeZ ee          ZeZ	dS )>TestSpecial.test_enum_of_types_with_nonmember.<locals>.MyTypesN)
rA   rB   rC   r  r)  r   rP  r*  r5  r   rG   r9   r7   r+  rf    s'        A	%  AAAAr9   r+  c                       e Zd ZdS ):TestSpecial.test_enum_of_types_with_nonmember.<locals>.FooNr   rG   r9   r7   r.  rh    r   r9   r.  c                       e Zd ZdS ):TestSpecial.test_enum_of_types_with_nonmember.<locals>.BarNr   rG   r9   r7   r1  rj    r   r9   r1  c                   *    e Zd ZZ e           ZdS )?TestSpecial.test_enum_of_types_with_nonmember.<locals>.MyTypes2N)rA   rB   rC   r   r   r4  r5  s   r7   r6  rl    s!        A	#AAAr9   r6  c                       e Zd ZdS )FTestSpecial.test_enum_of_types_with_nonmember.<locals>.SpamEnumIsInnerNr   rG   r9   r7   SpamEnumIsInnerrn    r   r9   ro  c                   &    e Zd Z e           ZdS )?TestSpecial.test_enum_of_types_with_nonmember.<locals>.SpamEnumN)rA   rB   rC   r   rE  )ro  s   r7   r<  rq    s        9_--DDDr9   r<  N)r   r   r)  r;  r  r   r*  rP  r   r5  r   r4  rE  )r   r+  r6  r<  r1  r.  ro  s       @@@r7   !test_enum_of_types_with_nonmemberz-TestSpecial.test_enum_of_types_with_nonmember  s   	 	 	 	 	d 	 	 	 	#...	U*+++#...	 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	t 	 	 	 	)3///
c)***	 	 	 	 	 	 	 		. 	. 	. 	. 	. 	. 	.t 	. 	. 	.899999r9   c                     G d dt                     }|                     t          |j        |                     |                     |j        j        d           |                     |j        j        j        j        d           |                     t          |j        j                  |j        j        j        |j        j        j	        g           |                     t          |          |j        |j
        |j        g           dS )rV  c                   B    e Zd ZdZdZe G d de                      ZdS )BTestSpecial.test_nested_classes_in_enum_with_member.<locals>.Outerr>   r'   c                       e Zd ZdZdZdS )HTestSpecial.test_nested_classes_in_enum_with_member.<locals>.Outer.InnerrK  r  NrL  rG   r9   r7   rN  rw    rb  r9   rN  N)rA   rB   rC   r   r4  r   r   rN  rG   r9   r7   rP  ru    sR        AA       V  r9   rP  r>   rK  N)r   r   r  rN  r   r   r;  r   r   rM  r4  rR  s     r7   'test_nested_classes_in_enum_with_memberz3TestSpecial.test_nested_classes_in_enum_with_member  s   	 	 	 	 	D 	 	 	 	
5;66777****.4b999"##["EK$5$9:	 	 	 	KKWegu{+	 	 	 	 	r9   c                 Z    G d dt                     }|                     t          |          |j        |j        g           |                     t          |j                  |           |                     |j        j        d           |                     |j        j        d           d S )Nc                       e Zd ZdZdZdS )2TestSpecial.test_enum_with_value_name.<locals>.Huhr>   r'   N)rA   rB   rC   r   r;  rG   r9   r7   Huhr{    r  r9   r|  r   r>   )r   r   r   r   r;  r_  r  )r   r|  s     r7   test_enum_with_value_namez%TestSpecial.test_enum_with_value_name  s    	 	 	 	 	$ 	 	 	 	cSXsy$9:::d38nnc***///+++++r9   c                     G d dt                     } G d d|t          j                  }|                     t	          |j                  d           |t                      d<   |t                      d<   t          | j        |j                   t          | j        |            G d d|          } G d d	|t          j                  }|                     |j	        |           |t                      d<   |t                      d	<   t          | j        |j
                   t          | j        |            G d
 dt                     } G d d|t                    }|                     |j	        |           |                      |d          |j                   |t                      d<   |t                      d<   t          | j        |j                   t          | j        |           d S )Nc                       e Zd ZdZd ZdS )4TestSpecial.test_inherited_data_type.<locals>.HexIntHexIntc                      t          |           S r   hexr   s    r7   r  z=TestSpecial.test_inherited_data_type.<locals>.HexInt.__repr__      4yy r9   Nr	  rG   r9   r7   r  r    s(        #L! ! ! ! !r9   r  c                       e Zd ZdZdZdZdZdS )4TestSpecial.test_inherited_data_type.<locals>.MyEnumr   r>   r'   r?   NrA   rB   rC   r  re  r  rG   r9   r7   r   r    s"        #LAAAAAr9   r   z<MyEnum.A: 0x1>c                       e Zd ZdZdS )6TestSpecial.test_inherited_data_type.<locals>.SillyIntSillyIntNr   rG   r9   r7   r  r    s        %LDr9   r  c                       e Zd ZdZdZdZdZdS )9TestSpecial.test_inherited_data_type.<locals>.MyOtherEnumMyOtherEnumrO   r.     N)rA   rB   rC   r  r  r  rG   r9   r7   r  r    s"        (LAAAAAr9   r  c                       e Zd ZdZd ZdS )9TestSpecial.test_inherited_data_type.<locals>.UnBrokenIntUnBrokenIntc                 8    t                               | |          S r   )r  r  )rD  r;  s     r7   r  zATestSpecial.test_inherited_data_type.<locals>.UnBrokenInt.__new__  s    {{3...r9   Nr  rG   r9   r7   r  r    s(        (L/ / / / /r9   r  c                       e Zd ZdZdZdZdZdS )<TestSpecial.test_inherited_data_type.<locals>.MyUnBrokenEnumMyUnBrokenEnumr      r  N)rA   rB   rC   GHIrG   r9   r7   r  r    s"        +LAAAAAr9   r  r   )r  r-   r   r   r]  r  globalsrt   r_  r4  r  r  r  )r   r  r   r  r  r  r  s          r7   test_inherited_data_typez$TestSpecial.test_inherited_data_type  sJ   	! 	! 	! 	! 	!S 	! 	! 	!	 	 	 	 	VTY 	 	 	
 	fh):;;;$		($		(dmVX666dmV444	 	 	 	 	v 	 	 		 	 	 	 	(DI 	 	 	
 	k/::: (		*#.		- dm[];;;dm[999	/ 	/ 	/ 	/ 	/# 	/ 	/ 	/	 	 	 	 	[$ 	 	 	
 	n2K@@@nnQ'')9:::#.		- &4		"#dm^-=>>>dm^<<<<<r9   c                    t                               t          j        j                  }|                     t                              |          t          j                   t                               t          j        j        dz             }|                     t                    5  t                              |           d d d            d S # 1 swxY w Y   d S )Ng{Gz?)	rP  r  rL   rF   r;  r_  fromhexrL  r   )r   hs     r7   test_floatenum_fromhexz"TestSpecial.test_floatenum_fromhex  s    IIl&,--l**1--|/?@@@IIl&,t344z** 	$ 	$  ###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   (CCCc                    t          ddt                    }t          |          }|                     t	          |          t	          |                     |                     t	          |          d|           |                     |j        |j        |j        g|           t          d	                                d          D ]z\  }} ||          }|                     ||           |                     |j
        |           |                     ||           |                     t          |          |           {d S )Nr  r  )r  r?   r>   r   r  r   r   r  r  r  r  	enumerater  r   rt  r_  r  r   r  r  r)  r  r  s         r7   test_programmatic_function_typez+TestSpecial.test_programmatic_function_type  s0   &8sCCC	9ooS3y>>222YI6661AB	 	 	 ""4":":"<"<a@@ 	. 	.HAu	!AQ"""QVU+++MM!Y'''MM$q''9----	. 	.r9   c                    t          ddd          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     |j        |j        |j        g|           t          d                                d          D ]\  }} ||          }|                     t          |j
                  |           |                     ||           |                     |j        |           |                     ||           |                     t          |          |           d S )Nr  r  rK  r  r?   r   r   r   r  r  r  r  r  r  r  r;  r  r   rt  r_  r  r  s         r7   ,test_programmatic_function_string_with_startz8TestSpecial.test_programmatic_function_string_with_start"  sN   &8CCC	9ooS3y>>222YI6661AB	 	 	 ""4":":"<"<bAA 	. 	.HAu	!AS\\1---1%%%QVU+++MM!Y'''MM$q''9----	. 	.r9   c                    t          ddt          d          }t          |          }|                     t	          |          t	          |                     |                     t	          |          d|           |                     |j        |j        |j        g|           t          d	                                d          D ]z\  }} ||          }|                     ||           |                     |j
        |           |                     ||           |                     t          |          |           {d S )Nr  r  r  )r  r  r?   r  r  s         r7   *test_programmatic_function_type_with_startz6TestSpecial.test_programmatic_function_type_with_start3  s2   &8s"MMM	9ooS3y>>222YI6661AB	 	 	 ""4":":"<"<bAA 	. 	.HAu	!AQ"""QVU+++MM!Y'''MM$q''9----	. 	.r9   c                    t          dg dd          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     |j        |j        |j        g|           t          d                                d          D ]\  }} ||          }|                     t          |j
                  |           |                     ||           |                     |j        |           |                     ||           |                     t          |          |           d S )Nr  r     r  r?   r  r  r  s         r7   1test_programmatic_function_string_list_with_startz=TestSpecial.test_programmatic_function_string_list_with_startC  sT   &@&@&@KKK	9ooS3y>>222YI6661AB	 	 	 ""4":":"<"<bAA 	. 	.HAu	!AS\\1---1%%%QVU+++MM!Y'''MM$q''9----	. 	.r9   c                 v   t          dd          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     |j        |j        |j        g|           t          d                                d          D ]z\  }} ||          }|                     ||           |                     |j	        |           | 
                    ||           |                     t          |          |           {d S )Nr  r  r?   r>   r   r   r   r  r  r  r  r  r  r   rt  r_  r  r  s         r7   -test_programmatic_function_type_from_subclassz9TestSpecial.test_programmatic_function_type_from_subclassT  s+   K);<<	9ooS3y>>222YI6661AB	 	 	 ""4":":"<"<a@@ 	. 	.HAu	!AQ"""QVU+++MM!Y'''MM$q''9----	. 	.r9   c                 z   t          ddd          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     |j        |j        |j        g|           t          d                                d          D ]z\  }} ||          }|                     ||           |                     |j	        |           | 
                    ||           |                     t          |          |           {d S )Nr  r  (   r  r?   r  r  s         r7   8test_programmatic_function_type_from_subclass_with_startzDTestSpecial.test_programmatic_function_type_from_subclass_with_startd  s0   K);2FFF	9ooS3y>>222YI6661AB	 	 	 ""4":":"<"<bAA 	. 	.HAu	!AQ"""QVU+++MM!Y'''MM$q''9----	. 	.r9   c                    |                      t                              dd          t          j                   |                     t
                    5  t                              dd           d d d            d S # 1 swxY w Y   d S )Ns    bigs    )r_  rJ   
from_bytesrF   rL  r   r   s    r7   test_intenum_from_bytesz#TestSpecial.test_intenum_from_bytest  s    j++K??PPPz** 	6 	6!!+u555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   A==BBc                     |                      t          d          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nz-_sunder_ names, such as ._bad_., are reservedc                       e Zd ZdZdS )3TestSpecial.test_reserved_sunder_error.<locals>.Badr>   N)rA   rB   rC   r|   rG   r9   r7   Badr  ~  s        r9   r  )r   r   r   )r   r  s     r7   test_reserved_sunder_errorz&TestSpecial.test_reserved_sunder_errory  s    ##?  	 	    d   		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   =AAc                    |                      t          d          5   G d dt          t          t                    }d d d            n# 1 swxY w Y    G d dt                    } G d dt                    }|                      t          d          5   G d d||t                    }d d d            d S # 1 swxY w Y   d S )	Nztoo many data typesc                       e Zd ZdZdS 1TestSpecial.test_too_many_data_types.<locals>.Huhr>   NrA   rB   rC   OnerG   r9   r7   r|  r    r  r9   r|  c                       e Zd Zd ZdS )3TestSpecial.test_too_many_data_types.<locals>.MyStrc                     d| z  S )Nz	hello, %srG   r   s    r7   helloz9TestSpecial.test_too_many_data_types.<locals>.MyStr.hello  s    "T))r9   NrA   rB   rC   r  rG   r9   r7   MyStrr    s#        * * * * *r9   r  c                       e Zd Zd ZdS )3TestSpecial.test_too_many_data_types.<locals>.MyIntc                      t          |           S r   r  r   s    r7   r]  z8TestSpecial.test_too_many_data_types.<locals>.MyInt.repr  r  r9   N)rA   rB   rC   r]  rG   r9   r7   MyIntr    #        ! ! ! ! !r9   r  c                       e Zd ZdZdS r  r  rG   r9   r7   r|  z1TestSpecial.test_too_many_data_types.<locals>.Huh  r  r9   )r   ru  r5  r  r   )r   r|  r  r  s       r7   test_too_many_data_typesz$TestSpecial.test_too_many_data_types  s   ##I/DEE 	 	    c3   	 	 	 	 	 	 	 	 	 	 	 	 	 	 		* 	* 	* 	* 	*C 	* 	* 	*	! 	! 	! 	! 	!C 	! 	! 	! ##I/DEE 	 	    eUD   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#    AAAB77B;>B;c                     t          t          t                    rt          t          | j        t          j                   t          | j        t                     d S r   )r  r=   r#  rt   r_  rE   r   s    r7   test_pickle_enumzTestSpecial.test_pickle_enum  sE    gy)) 	MdmW];;;dmW55555r9   c                     t          t          t                    rt          t          | j        t          j                   t          | j        t                     d S r   )r  rJ   r#  rt   r_  rE   r   s    r7   test_pickle_intzTestSpecial.test_pickle_int  sG    j),, 	dmZ-=>>>dmZ88888r9   c                     t          t          t                    rt          t          | j        t          j                   t          | j        t                     d S r   )r  rL   r#  rt   r_  rE   r   s    r7   test_pickle_floatzTestSpecial.test_pickle_float  sG    lI.. 	dm\-?@@@dm\:::::r9   c                     t          t          t                    rt          t          | j        t          j                   t          | j        t                     d S r   )r  rd   r#  rt   r_  himr   s    r7   test_pickle_enum_functionz%TestSpecial.test_pickle_enum_function  sE    fi(( 	LdmVZ888dmV44444r9   c                     t          t          t                    rt          t          | j        t          j                   t          | j        t                     d S r   )r  ra   r#  rt   r_  whor   s    r7   %test_pickle_enum_function_with_modulez1TestSpecial.test_pickle_enum_function_with_module  sE    h	** 	NdmX\:::dmX66666r9   c                      G d dt                     }|| j        _        d| j        j        z  | j        _        t          | j        | j        j                   d S )Nc                       e Zd ZdZdZdS )8TestSpecial.test_pickle_nested_class.<locals>.NestedEnumcommonrareN)rA   rB   rC   twigsshinyrG   r9   r7   
NestedEnumr    s        EEEEr9   r  z%s.NestedEnum)r   	__class__r  rA   rC   rt   r_  r  )r   r  s     r7   test_pickle_nested_classz$TestSpecial.test_pickle_nested_class  si    	 	 	 	 	 	 	 	 %/!'69P'P$dmT_-BCCCCCr9   c                      G d dt                     }t          j        |_        t	          t
                    D ]0}|                     |j                            |          d           1d S )Nc                       e Zd ZdZdZdS )9TestSpecial.test_pickle_by_name.<locals>.ReplaceGlobalIntr>   r'   Nr   rG   r9   r7   ReplaceGlobalIntr            CCCCr9   r  r   )r   r-   _reduce_ex_by_global_name__reduce_ex__rp   r!   r   r   )r   r  protos      r7   test_pickle_by_namezTestSpecial.test_pickle_by_name  s    	 	 	 	 	w 	 	 	 *.)G&+,, 	O 	OE-1??FFNNNN	O 	Or9   c                     t          ddt                    }|t                      d<   t          j        |           t          | j        t          |j                   t          | j        t          |           d S )N	BadPicklezdill sweet bread-n-butterrb   )
r   rA   r  r-   _make_class_unpicklablerx   rL  ru  dillr    )r   r  s     r7   test_pickle_explodesz TestSpecial.test_pickle_explodes  sr    8K K K	!*		+$Y///d/INKKKd/	JJJJJr9   c                 n     G d dt           t                    }|                     |j        d           d S )Nc                       e Zd ZdZdZdZdS )0TestSpecial.test_string_enum.<locals>.SkillLevelz'what is the sound of one hand clapping?z#why did the chicken cross the road?knock, knock!N)rA   rB   rC   master
journeyman
apprenticerG   r9   r7   
SkillLevelr    s        >F>J(JJJr9   r  r  )r5  r   r   r  )r   r  s     r7   test_string_enumzTestSpecial.test_string_enum  sO    	) 	) 	) 	) 	)d 	) 	) 	) 	.@@@@@r9   c                     G d dt                     }|                      |d          |j                   |                     t          |d          |j                   |                     |d         |j                   d S )Nc                       e Zd ZdZdZdZdZdS )0TestSpecial.test_getattr_getitem.<locals>.Periodr>   r'   r?   rO   N)rA   rB   rC   morningnooneveningnightrG   r9   r7   Periodr    s"        GDGEEEr9   r  r'   r  r  )r   r_  r  r7  r  r  r   r  s     r7   test_getattr_getitemz TestSpecial.test_getattr_getitem  s    	 	 	 	 	T 	 	 	
 	ffQii---gfg..===fY'88888r9   c                 Z    | j         }|                     t          |d                     d S )N__eq__)rJ  r   r7  rO  s     r7   test_getattr_dunderzTestSpecial.test_getattr_dunder  s+    1122222r9   c                      G d dt                     }|                     t          |          |j        |j        |j        |j        g           d S )Nc                       e Zd ZdZdZdZdZdS )0TestSpecial.test_iteration_order.<locals>.Seasonr'   rO   r?   r>   N)rA   rB   rC   rH  r  rI  rG  rG   r9   r7   rJ  r    r  r9   rJ  )r   r   r   rH  r  rI  rG  rO  s     r7   test_iteration_orderz TestSpecial.test_iteration_order  sm    	 	 	 	 	T 	 	 	
 	Vv}fmL	 	 	 	 	r9   c                    t          t          t                    rt          |                     t          j        d           |                     t          j        t          d                     |                     t          j        t          t          d                     t          | j        t          j                   d S )Nr^   r_   )	r  r]   r#  r   r_   r   r_  r7  rt   r   s    r7   test_subclassingzTestSpecial.test_subclassing  s    dI&& 	J$6777	4(:#;#;<<<div!6!6777dmTY77777r9   c                     G d dt                     }|                     t                    5   G d d|          }d d d            n# 1 swxY w Y   |                     t          d          5   G d d|t                    }d d d            n# 1 swxY w Y   |                     t          d          5   |d	d
           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdZdZdZdS ))TestSpecial.test_extending.<locals>.Colorr>   r'   r?   Nr  rG   r9   r7   r  r            CEDDDr9   r  c                       e Zd ZdZdZdZdS )-TestSpecial.test_extending.<locals>.MoreColorrO   r.  r  NrA   rB   rC   cyanmagentayellowrG   r9   r7   	MoreColorr            r9   r  z3<enum .EvenMoreColor.> cannot extend <enum .Color.>c                       e Zd ZdZdS )1TestSpecial.test_extending.<locals>.EvenMoreColorr   N)rA   rB   rC   
chartrueserG   r9   r7   EvenMoreColorr    r  r9   r!  z)<enum .Foo.> cannot extend <enum .Color.>r.  )pinkblack)r   rL  ru  r   r   )r   r  r  r!  s       r7   test_extendingzTestSpecial.test_extending  s   	 	 	 	 	D 	 	 	
 y)) 	 	    E   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##I/dee 	 	    w   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##I/Z[[ 	, 	,E%*+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s5   A		AA/BBB6CCCc                      G d dt                     }|                     t          |j                  |           |                     |j                                        d           d S )Nc                       e Zd ZdZdZd ZdS )2TestSpecial.test_exclude_methods.<locals>.whateverr  thosec                     d| j         z  S )Nz
no, not %srX  r   s    r7   reallyz9TestSpecial.test_exclude_methods.<locals>.whatever.really  s    #dj00r9   N)rA   rB   rC   r  r  r*  rG   r9   r7   whateverr'    s-        DE1 1 1 1 1r9   r+  zno, not that)r   assertIsNotr  r*  r   r  )r   r+  s     r7   test_exclude_methodsz TestSpecial.test_exclude_methods  sx    	1 	1 	1 	1 	1t 	1 	1 	1
 	ho..999--//@@@@@r9   c                     |                      t                    5   G d dt          t                    }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdZdS )7TestSpecial.test_wrong_inheritance_order.<locals>.Wrongzerror before this pointN)rA   rB   rC   NotHererG   r9   r7   r  r0    s        3r9   r  )rL  ru  r   r5  r  s     r7   test_wrong_inheritance_orderz(TestSpecial.test_wrong_inheritance_order  s    y)) 	4 	44 4 4 4 4c 4 4 4	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   AA	Ac                     G d dt                     } G d dt                     }|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   d S )Nc                       e Zd ZdZdZdZdS )5TestSpecial.test_intenum_transitivity.<locals>.numberr>   r'   r?   NrA   rB   rC   rp  rq  threerG   r9   r7   numberr5            CCEEEr9   r8  c                       e Zd ZdZdZdZdS )5TestSpecial.test_intenum_transitivity.<locals>.numeror>   r'   r?   N)rA   rB   rC   unodostresrG   r9   r7   numeror;            CCDDDr9   r?  )r   r   rp  r<  rq  r=  r7  r>  )r   r8  r?  s      r7   test_intenum_transitivityz%TestSpecial.test_intenum_transitivity  s    	 	 	 	 	W 	 	 		 	 	 	 	W 	 	 	 	VZ000VZ000v{33333r9   c                      G d dt                     } G d dt                     }|                     t          ||j                   d S )Nc                       e Zd ZdZdZdS )7TestSpecial.test_wrong_enum_in_call.<locals>.Monochromer   r>   NrA   rB   rC   r#  whiterG   r9   r7   
MonochromerD             EEEEr9   rG  c                       e Zd ZdZdZdS )3TestSpecial.test_wrong_enum_in_call.<locals>.Genderr   r>   NrA   rB   rC   malefemalerG   r9   r7   GenderrJ  #          DFFFr9   rN  )r   rL  r   rL  r   rG  rN  s      r7   test_wrong_enum_in_callz#TestSpecial.test_wrong_enum_in_call  sx    	 	 	 	 	 	 	 		 	 	 	 	T 	 	 	 	*j&+>>>>>r9   c                      G d dt                     } G d dt                    }|                     t          ||j                   d S )Nc                       e Zd ZdZdZdS )=TestSpecial.test_wrong_enum_in_mixed_call.<locals>.Monochromer   r>   NrE  rG   r9   r7   rG  rT  )  rH  r9   rG  c                       e Zd ZdZdZdS )9TestSpecial.test_wrong_enum_in_mixed_call.<locals>.Genderr   r>   NrK  rG   r9   r7   rN  rV  ,  rO  r9   rN  )r   r   rL  r   rL  rP  s      r7   test_wrong_enum_in_mixed_callz)TestSpecial.test_wrong_enum_in_mixed_call(  sx    	 	 	 	 	 	 	 		 	 	 	 	T 	 	 	 	*j&+>>>>>r9   c                      G d dt                     } G d dt                     }|                      ||j                  |j                   d S )Nc                       e Zd ZdZdZdS )9TestSpecial.test_mixed_enum_in_call_1.<locals>.Monochromer   r>   NrE  rG   r9   r7   rG  rZ  2  rH  r9   rG  c                       e Zd ZdZdZdS )5TestSpecial.test_mixed_enum_in_call_1.<locals>.Genderr   r>   NrK  rG   r9   r7   rN  r\  5  rO  r9   rN  )r   r_  rM  rF  rP  s      r7   test_mixed_enum_in_call_1z%TestSpecial.test_mixed_enum_in_call_11  s    	 	 	 	 	 	 	 		 	 	 	 	W 	 	 	 	jj//1ABBBBBr9   c                      G d dt                     } G d dt                    }|                      ||j                  |j                   d S )Nc                       e Zd ZdZdZdS )9TestSpecial.test_mixed_enum_in_call_2.<locals>.Monochromer   r>   NrE  rG   r9   r7   rG  r`  ;  rH  r9   rG  c                       e Zd ZdZdZdS )5TestSpecial.test_mixed_enum_in_call_2.<locals>.Genderr   r>   NrK  rG   r9   r7   rN  rb  >  rO  r9   rN  )r   r   r_  rL  r#  rP  s      r7   test_mixed_enum_in_call_2z%TestSpecial.test_mixed_enum_in_call_2:  s    	 	 	 	 	 	 	 		 	 	 	 	W 	 	 	 	jj--z/?@@@@@r9   c                      G d dt                     } G d d|          }|                     t          |j                  d           d S )Nc                       e Zd Zd ZdS )-TestSpecial.test_flufl_enum.<locals>.Fluflnumc                 *    t          | j                  S r   )r  r;  r   s    r7   __int__z5TestSpecial.test_flufl_enum.<locals>.Fluflnum.__int__E  s    4:&r9   N)rA   rB   rC   rh  rG   r9   r7   Fluflnumrf  D  #        ' ' ' ' 'r9   ri  c                       e Zd ZdZdZdZdS )3TestSpecial.test_flufl_enum.<locals>.MailManOptionsr>   r'   r?   N)rA   rB   rC   option1option2option3rG   r9   r7   MailManOptionsrl  G  s        GGGGGr9   rp  r>   )r   r   r  rm  )r   ri  rp  s      r7   test_flufl_enumzTestSpecial.test_flufl_enumC  s    	' 	' 	' 	' 	't 	' 	' 	'	 	 	 	 	X 	 	 	 	^344a88888r9   c                 "    G d dt                     }|                     |j        j        t                     |                     |j        t                      G d dt
          t                    }|                     |j        j        t
                     |                     |j        t
                      G d dt                    }|                     |j        j        t                     |                     |j        t                     d S )Nc                       e Zd ZdZdZdS ).TestSpecial.test_introspection.<locals>.Numberd      NrA   rB   rC   rp  rq  rG   r9   r7   Numberrt  N  s        CCCCr9   rx  c                       e Zd ZdZdZdZdS ).TestSpecial.test_introspection.<locals>.StringsoftroughhardN)rA   rB   rC   yarnropewirerG   r9   r7   Stringrz  S  s        DDDDDr9   r  c                       e Zd ZdZdZdS )-TestSpecial.test_introspection.<locals>.PlainrF  r>   N)rA   rB   rC   vanillarp  rG   r9   r7   Plainr  Y  s        GCCCr9   r  )
r   r_  rp  r4  r  r5  r   r~  r  r  )r   rx  r  r  s       r7   test_introspectionzTestSpecial.test_introspectionM  s   	 	 	 	 	W 	 	 	 	fj.444f*C000	 	 	 	 	S$ 	 	 	 	fk/555f*C000	 	 	 	 	D 	 	 	 	em16:::e)622222r9   c                     G d dt                     }|                     t                    5   |d           d d d            n# 1 swxY w Y   |                     t                    5  |d          d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdZdZdZdS )3TestSpecial.test_no_such_enum_member.<locals>.Colorr>   r'   r?   Nr  rG   r9   r7   r  r  `  r  r9   r  rO   
chartreuse)r   rL  r   KeyErrorr   s     r7   test_no_such_enum_memberz$TestSpecial.test_no_such_enum_member_  s'   	 	 	 	 	D 	 	 	 z** 	 	E!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	x(( 	  	 ,	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s#   AA
A
+	BBBc                      G fddt          t                               G d dt                    } G d dt                    } G d d	|          } G d
 d|          }d S )Nc                   "     e Zd Z fdZ xZS )6TestSpecial.test_multiple_mixin_mro.<locals>.auto_enumc                 R    t          |                      }||_        t          |j                  }d}|j        D ]"}||         }|t          u r|}n|}|dz  }|||<   #|                                D ]\  }}||vr|||<   t          
|                               | |||          S Nr   r>   )r  	_cls_namer  _member_namesEllipsisitemssuperr  )metaclsrD  bases	classdicttempr2  r)  kvr  	auto_enums            r7   r  z>TestSpecial.test_multiple_mixin_mro.<locals>.auto_enum.__new__m  s    &tI((!$I344"0    A!!AH}}FADGG%OO-- $ $DAq~~"#QY0088eT3 3 3r9   rA   rB   rC   r  __classcell__)r  r  s   @r7   r  r  l  s>        3 3 3 3 3 3 3 3 3 3r9   r  c                       e Zd ZdS )=TestSpecial.test_multiple_mixin_mro.<locals>.AutoNumberedEnumNr   rG   r9   r7   AutoNumberedEnumr    r   r9   r  r  c                       e Zd ZdS )8TestSpecial.test_multiple_mixin_mro.<locals>.AutoIntEnumNr   rG   r9   r7   AutoIntEnumr    r   r9   r  c                       e Zd ZdZdZdZdS );TestSpecial.test_multiple_mixin_mro.<locals>.TestAutoNumber.r?   NrA   rB   rC   r   r4  crG   r9   r7   TestAutoNumberr            AAAAAr9   r  c                       e Zd ZdZdZdZdS )8TestSpecial.test_multiple_mixin_mro.<locals>.TestAutoInt.r?   Nr  rG   r9   r7   TestAutoIntr    r  r9   r  )r  r   r   )r   r  r  r  r  r  s        @r7   test_multiple_mixin_mroz#TestSpecial.test_multiple_mixin_mrok  s    	3 	3 	3 	3 	3 	3 	3T

 	3 	3 	3(	 	 	 	 	ty 	 	 	 		 	 	 	 	'Y 	 	 	 		 	 	 	 	- 	 	 	
	 	 	 	 	+ 	 	 	 	 	r9   c                 V    G fddt                      G d dt                    }|                     |j        t          j                   |                     t          |j        |j        z             d           t                      d<   |t                      d<    dd          }|                     |d           t          | j        |d           |                     |j        j
        d           t          | j        |j                   t          | j        |           d S )	Nc                   V    e Zd ZdZd Zd Zej        d             Z d Zd Z fdZ	dS )	=TestSpecial.test_subclasses_with_getnewargs.<locals>.NamedIntNamedIntc                     |}|^}}t          |          dk    rt          d          t          j        | g|R  }||_        ||_        |S Nr    name and value must be specifiedr  ru  r  r  _intname_argsrD  argsr  r   r   s        r7   r  zETestSpecial.test_subclasses_with_getnewargs.<locals>.NamedInt.__new__  X    "tt99>>#$FGGG{3.... $"
r9   c                     | j         S r   r  r   s    r7   __getnewargs__zLTestSpecial.test_subclasses_with_getnewargs.<locals>.NamedInt.__getnewargs__  s
    z!r9   c                     | j         S r   r  r   s    r7   rA   zFTestSpecial.test_subclasses_with_getnewargs.<locals>.NamedInt.__name__  
    }$r9   c                     d                     t          |           j        | j        t                              |                     S Nz{}({!r}, {})r:  r  rA   r  r  r   s    r7   r  zFTestSpecial.test_subclasses_with_getnewargs.<locals>.NamedInt.__repr__  :    %,,T

+T**  r9   c                 z    t           }|j        }|j        t          u r|                    |           S  ||           S r   r  r  __objclass__r  r  r   basebase_strs      r7   r  zETestSpecial.test_subclasses_with_getnewargs.<locals>.NamedInt.__str__  <    <(F22==...x~~%r9   c                     t          |           t          |          z   }t          |           r:t          |          r* d                    | j        |j                  |          S |S Nz({0} + {1})r  r  r:  rA   r   otherr  r  s      r7   __add__zETestSpecial.test_subclasses_with_getnewargs.<locals>.NamedInt.__add__  q    4yy3;;.dH--  *UH2M2M  #8%,,T]ENKK  
  Kr9   N)
rA   rB   rC   r  r  bltnsr   r  r  r  r  s   r7   r  r    s        %L  " " "^% % ^%  & & &             r9   r  c                       e Zd ZdZdZdZdS )8TestSpecial.test_subclasses_with_getnewargs.<locals>.NEINEIzthe-xr>   zthe-yr'   NrA   rB   rC   xyrG   r9   r7   r  r             LAAAAr9   r  NamedInt('(the-x + the-y)', 3)testr.  r'   r  r   r_  r  r   r]  r  r  r  rt   r;  r   r  NI5r  s      @r7   test_subclasses_with_getnewargsz+TestSpecial.test_subclasses_with_getnewargs  C   (	  (	  (	  (	  (	  (	  (	 s (	  (	  (	 T	 	 	 	 	(D 	 	 	 	ck4<000cecem,,.NOOO (		*		%hvq!!a   d.Q777a(((dmSU333dmS11111r9   c                 V    G fddt                      G d dt                    }|                     |j        t          j                   |                     t          |j        |j        z             d           t                      d<   |t                      d<    dd          }|                     |d           t          | j        |d           |                     |j        j
        d           t          | j        |j                   t          | j        |           d S )	Nc                   V    e Zd ZdZd Zd Zej        d             Z d Zd Z fdZ	dS )	@TestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedIntr  c                     |}|^}}t          |          dk    rt          d          t          j        | g|R  }||_        ||_        |S r  r  r  s        r7   r  zHTestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__new__  r  r9   c                     | j         i fS r   r  r   s    r7   __getnewargs_ex__zRTestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__getnewargs_ex__  s    z2~%r9   c                     | j         S r   r  r   s    r7   rA   zITestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__name__  r  r9   c                     d                     t          |           j        | j        t                              |                     S r  r  r   s    r7   r  zITestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__repr__  r  r9   c                 z    t           }|j        }|j        t          u r|                    |           S  ||           S r   r  r  s      r7   r  zHTestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__str__  r  r9   c                     t          |           t          |          z   }t          |           r:t          |          r* d                    | j        |j                  |          S |S r  r  r  s      r7   r  zHTestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__add__  r  r9   N)
rA   rB   rC   r  r  r  r   r  r  r  r  s   r7   r  r    s        %L  & & &^% % ^%  & & &             r9   r  c                       e Zd ZdZdZdZdS );TestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NEIr  r  r  Nr  rG   r9   r7   r  r    r  r9   r  r  r  r.  r'   r  r  s      @r7   "test_subclasses_with_getnewargs_exz.TestSpecial.test_subclasses_with_getnewargs_ex  r  r9   c                 V    G fddt                      G d dt                    }|                     |j        t          j                   |                     t          |j        |j        z             d           t                      d<   |t                      d<    dd          }|                     |d           t          | j        |d           |                     |j        j
        d           t          | j        |j                   t          | j        |           d S )	Nc                   V    e Zd ZdZd Zd Zej        d             Z d Zd Z fdZ	dS )	9TestSpecial.test_subclasses_with_reduce.<locals>.NamedIntr  c                     |}|^}}t          |          dk    rt          d          t          j        | g|R  }||_        ||_        |S r  r  r  s        r7   r  zATestSpecial.test_subclasses_with_reduce.<locals>.NamedInt.__new__  r  r9   c                     | j         | j        fS r   r  r  r   s    r7   
__reduce__zDTestSpecial.test_subclasses_with_reduce.<locals>.NamedInt.__reduce__      ~tz11r9   c                     | j         S r   r  r   s    r7   rA   zBTestSpecial.test_subclasses_with_reduce.<locals>.NamedInt.__name__  r  r9   c                     d                     t          |           j        | j        t                              |                     S r  r  r   s    r7   r  zBTestSpecial.test_subclasses_with_reduce.<locals>.NamedInt.__repr__  r  r9   c                 z    t           }|j        }|j        t          u r|                    |           S  ||           S r   r  r  s      r7   r  zATestSpecial.test_subclasses_with_reduce.<locals>.NamedInt.__str__   r  r9   c                     t          |           t          |          z   }t          |           r:t          |          r* d                    | j        |j                  |          S |S r  r  r  s      r7   r  zATestSpecial.test_subclasses_with_reduce.<locals>.NamedInt.__add__)  r  r9   N)
rA   rB   rC   r  r  r  r   r  r  r  r  s   r7   r  r  	          %L  2 2 2^% % ^%  & & &             r9   r  c                       e Zd ZdZdZdZdS )4TestSpecial.test_subclasses_with_reduce.<locals>.NEIr  r  r  Nr  rG   r9   r7   r  r  3  r  r9   r  r  r  r.  r'   r  r  s      @r7   test_subclasses_with_reducez'TestSpecial.test_subclasses_with_reduce  r  r9   c                 V    G fddt                      G d dt                    }|                     |j        t          j                   |                     t          |j        |j        z             d           t                      d<   |t                      d<    dd          }|                     |d           t          | j        |d           |                     |j        j
        d           t          | j        |j                   t          | j        |           d S )	Nc                   V    e Zd ZdZd Zd Zej        d             Z d Zd Z fdZ	dS )	<TestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedIntr  c                     |}|^}}t          |          dk    rt          d          t          j        | g|R  }||_        ||_        |S r  r  r  s        r7   r  zDTestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedInt.__new__G  r  r9   c                     | j         | j        fS r   r  r   r  s     r7   r  zJTestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedInt.__reduce_ex__P  r  r9   c                     | j         S r   r  r   s    r7   rA   zETestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedInt.__name__R  r  r9   c                     d                     t          |           j        | j        t                              |                     S r  r  r   s    r7   r  zETestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedInt.__repr__U  r  r9   c                 z    t           }|j        }|j        t          u r|                    |           S  ||           S r   r  r  s      r7   r  zDTestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedInt.__str__\  r  r9   c                     t          |           t          |          z   }t          |           r:t          |          r* d                    | j        |j                  |          S |S r  r  r  s      r7   r  zDTestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedInt.__add__e  r  r9   N)
rA   rB   rC   r  r  r  r   r  r  r  r  s   r7   r  r  E  r   r9   r  c                       e Zd ZdZdZdZdS )7TestSpecial.test_subclasses_with_reduce_ex.<locals>.NEIr  r  r  Nr  rG   r9   r7   r  r  o  r  r9   r  r  r  r.  r'   r  r  s      @r7   test_subclasses_with_reduce_exz*TestSpecial.test_subclasses_with_reduce_exD  sC   (	  (	  (	  (	  (	  (	  (	 s (	  (	  (	 T	 	 	 	 	(D 	 	 	
 	ck4<000cecem,,.NOOO (		*		%hvq!!a   d.Q777a(((dmSU333dmS11111r9   c                     G fddt                      G d dt                    }|                     |j        t          j                   |                     t          |j        |j        z             d           t                      d<   |t                      d<    dd          }|                     |d           |                     |j        j	        d           | 
                    t          d	          5  t          | j        |j                   d d d            n# 1 swxY w Y   t          j        |_        t          | j        |j                   t          | j        |           d S )
Nc                   P    e Zd ZdZd Zej        d             Z d Zd Z fdZdS )KTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NamedIntr  c                     |}|^}}t          |          dk    rt          d          t          j        | g|R  }||_        ||_        |S r  r  r  s        r7   r  zSTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__new__  r  r9   c                     | j         S r   r  r   s    r7   rA   zTTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__name__  r  r9   c                     d                     t          |           j        | j        t                              |                     S r  r  r   s    r7   r  zTTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__repr__  r  r9   c                 z    t           }|j        }|j        t          u r|                    |           S  ||           S r   r  r  s      r7   r  zSTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__str__  r  r9   c                     t          |           t          |          z   }t          |           r:t          |          r* d                    | j        |j                  |          S |S r  r  r  s      r7   r  zSTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__add__  sq    4yy3;;.dH--  *UH2M2M  #8%,,T]ENKK    Kr9   N	rA   rB   rC   r  r  r   r  r  r  r  s   r7   r  r    s}        %L   ^% % ^%  & & &             r9   r  c                       e Zd ZdZdZdZdS )FTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NEIr  r  r  Nr  rG   r9   r7   r  r    r  r9   r  r  r  r.  r'   r  )r  r   r_  r  r   r]  r  r  r  r;  r   ru  rt   r-   pickle_by_enum_namer  r  s      @r7   -test_subclasses_without_direct_pickle_supportz9TestSpecial.test_subclasses_without_direct_pickle_support  s   %	  %	  %	  %	  %	  %	  %	 s %	  %	  %	 N	 	 	 	 	(D 	 	 	 	ck4<000cecem,,.NOOO (		*		%hvq!!a   a(((##I/QRR 	8 	8!$-777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 !4dmSU333dmS11111s   ?D&&D*-D*c                 *    G fddt                      G d dt                    }|                     |j        t          j                   |                     t          |j        |j        z             d           t                      d<   |t                      d<    dd          }|                     |d           |                     |j        j	        d           t          | j        |j                   t          | j        |           d S )	Nc                   P    e Zd ZdZd Zej        d             Z d Zd Z fdZdS )HTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NamedIntr  c                     |}|^}}t          |          dk    rt          d          t          j        | g|R  }||_        ||_        |S r  r  r  s        r7   r  zPTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NamedInt.__new__  r  r9   c                     | j         S r   r  r   s    r7   rA   zQTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NamedInt.__name__  r  r9   c                     d                     t          |           j        | j        t                              |                     S r  r  r   s    r7   r  zQTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NamedInt.__repr__  r  r9   c                 z    t           }|j        }|j        t          u r|                    |           S  ||           S r   r  r  s      r7   r  zPTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NamedInt.__str__  r  r9   c                     t          |           t          |          z   }t          |           r:t          |          r* d                    | j        |j                  |          S |S r  r  r  s      r7   r  zPTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NamedInt.__add__  r  r9   Nr  r  s   r7   r  r     s}        %L   ^% % ^%  & & &             r9   r  c                        e Zd ZdZdZdZd ZdS )CTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NEIr  r  r  c                 ,    t           | j        | j        ffS r   )r7  r  r  r	  s     r7   r  zQTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NEI.__reduce_ex__  s     ===r9   N)rA   rB   rC   r  r  r  rG   r9   r7   r  r'    s2         LAA> > > > >r9   r  r  r  r.  r'   )r  r   r_  r  r   r]  r  r  r  r;  rt   r  s      @r7   *test_subclasses_with_direct_pickle_supportz6TestSpecial.test_subclasses_with_direct_pickle_support  s.   &	  &	  &	  &	  &	  &	  &	 s &	  &	  &	 P	> 	> 	> 	> 	>(D 	> 	> 	> 	ck4<000cecem,,.NOOO (		*		%hvq!!a   a(((dmSU333dmS11111r9   c                 T    G d dt           t                    }|                     t          |j                  |           |                     |j        t                      |                     |j        d           |t                      d<   t          | j        |j                   d S )Nc                       e Zd ZdZdZdZdZdS )2TestSpecial.test_tuple_subclass.<locals>.SomeTuple	SomeTuple)r>   zfor the money)r'   zfor the showr?   zfor the musicN)rA   rB   rC   r   r   r  rG   r9   r7   r-  r,    s"        &L(E(F(EEEr9   r-  r.  )r  r   r_  r  r   assertIsInstancer   r   r  r  rt   )r   r-  s     r7   test_tuple_subclasszTestSpecial.test_tuple_subclass  s    	) 	) 	) 	) 	)t 	) 	) 	)
 	d9?++Y777i.666*>???!*		+dmY_=====r9   c                 n    G d dt                     }|                     t          |          |j        |j        |j        g           |                     t          |j                  d           |                     |j        j        d           |                      |d          |j                   d S )Nc                   &    e Zd ZdZdZdZd Zd ZdS )LTestSpecial.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumberrG   c                 v    t          | j                  dz   }t                              |           }||_        |S Nr>   r  __members__r  r  r  rD  r;  rw   s      r7   r  zTTestSpecial.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__new__  3    CO,,q0nnS))#
r9   c                 *    t          | j                  S r   r  r  r   s    r7   rh  zTTestSpecial.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__int__	      4<(((r9   N)rA   rB   rC   r   r   r  r  rh  rG   r9   r7   
AutoNumberr3     sA        EFE  
) ) ) ) )r9   r=  r'   r?   r>   )	r   r   r   r   r   r  r  r;  r_  )r   r=  s     r7   ,test_duplicate_values_give_unique_enum_itemsz8TestSpecial.test_duplicate_values_give_unique_enum_items  s    
	) 
	) 
	) 
	) 
	) 
	) 
	) 
	) 	Z  !:#4j6FG	 	 	 	Z.//333)/333jjmmZ%566666r9   c                 "    G d dt                     } G d d|          }|                     t          |          |j        |j        |j        g           |                     t          t          t          |                    g d           d S )Nc                       e Zd Zd Zd ZdS )ETestSpecial.test_inherited_new_from_enhanced_enum.<locals>.AutoNumberc                 v    t          | j                  dz   }t                              |           }||_        |S r5  r6  r8  s      r7   r  zMTestSpecial.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__new__  r9  r9   c                 *    t          | j                  S r   r;  r   s    r7   rh  zMTestSpecial.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__int__  r<  r9   N)rA   rB   rC   r  rh  rG   r9   r7   r=  rA    s2          
) ) ) ) )r9   r=  c                       e Zd ZdZdZdZdS )@TestSpecial.test_inherited_new_from_enhanced_enum.<locals>.ColorrG   Nr  rG   r9   r7   r  rE            CEDDDr9   r  r/  )r   r   r   r  r  r  mapr  r   r=  r  s      r7   %test_inherited_new_from_enhanced_enumz1TestSpecial.test_inherited_new_from_enhanced_enum  s    	) 	) 	) 	) 	) 	) 	) 	)	 	 	 	 	J 	 	 	 	euy%+uz&JKKKc#uoo..			:::::r9   c                 "    G d dt                     } G d d|          }|                     t          |          |j        |j        |j        g           |                     t          t          t          |                    g d           d S )Nc                       e Zd Zd ZdS )BTestSpecial.test_inherited_new_from_mixed_enum.<locals>.AutoNumberc                 x    t          | j                  dz   }t                              | |          }||_        |S r5  )r  r7  r  r  r  r8  s      r7   r  zJTestSpecial.test_inherited_new_from_mixed_enum.<locals>.AutoNumber.__new__%  s5    CO,,q0kk#u--#
r9   Nr  rG   r9   r7   r=  rL  $  #            r9   r=  c                       e Zd ZdZdZdZdS )=TestSpecial.test_inherited_new_from_mixed_enum.<locals>.ColorrG   Nr  rG   r9   r7   r  rP  *  rF  r9   r  r/  )r   r   r   r  r  r  rG  r  rH  s      r7   "test_inherited_new_from_mixed_enumz.TestSpecial.test_inherited_new_from_mixed_enum#  s    	 	 	 	 	 	 	 		 	 	 	 	J 	 	 	 	euy%+uz&JKKKc#uoo..			:::::r9   c                      G d dt                     }|                     t          |j                   |                     |j        t                     d S )Nc                       e Zd ZdZdS )/TestSpecial.test_equality.<locals>.OrdinaryEnumr>   N)rA   rB   rC   r   rG   r9   r7   OrdinaryEnumrT  2  r  r9   rU  )r   r   r#   r   )r   rU  s     r7   test_equalityzTestSpecial.test_equality1  sb    	 	 	 	 	4 	 	 	LN33333333r9   c                     G d dt                     } G d d|          }|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   | 	                    |j        |j                   | 
                    |j        |j                   |                     |j        |j                   d S )Nc                   &    e Zd Zd Zd Zd Zd ZdS )3TestSpecial.test_ordered_mixin.<locals>.OrderedEnumc                 L    | j         |j         u r| j        |j        k    S t          S r   r  r  NotImplementedr   r  s     r7   __ge__z:TestSpecial.test_ordered_mixin.<locals>.OrderedEnum.__ge__9  &    >U_44<5=88%%r9   c                 L    | j         |j         u r| j        |j        k    S t          S r   r[  r]  s     r7   __gt__z:TestSpecial.test_ordered_mixin.<locals>.OrderedEnum.__gt__=  &    >U_44<%-77%%r9   c                 L    | j         |j         u r| j        |j        k    S t          S r   r[  r]  s     r7   __le__z:TestSpecial.test_ordered_mixin.<locals>.OrderedEnum.__le__A  r_  r9   c                 L    | j         |j         u r| j        |j        k     S t          S r   r[  r]  s     r7   __lt__z:TestSpecial.test_ordered_mixin.<locals>.OrderedEnum.__lt__E  rb  r9   N)rA   rB   rC   r^  ra  rd  rf  rG   r9   r7   OrderedEnumrY  8  sP        & & && & && & && & & & &r9   rg  c                   "    e Zd ZdZdZdZdZdZdS )-TestSpecial.test_ordered_mixin.<locals>.Grader.  rO   r?   r'   r>   Nr  rG   r9   r7   Graderi  I  r  r9   rj  )r   assertGreaterr  re  assertLessEqualr  r  
assertLessr  assertGreaterEqualr   r  )r   rg  rj  s      r7   test_ordered_mixinzTestSpecial.test_ordered_mixin7  s    	& 	& 	& 	& 	&$ 	& 	& 	&"	 	 	 	 	K 	 	 	 	57EG,,,UWeg...)))111%'***EGUW-----r9   c                      G d dt                     } G d d|          }|                     t                    5   G d d|          }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )*TestSpecial.test_extending2.<locals>.Shadec                 .    t          | j                   d S r   )printr   r   s    r7   shadez0TestSpecial.test_extending2.<locals>.Shade.shadeX  s    di     r9   NrA   rB   rC   ru  rG   r9   r7   Shaderr  W  r  r9   rw  c                       e Zd ZdZdZdZdS )*TestSpecial.test_extending2.<locals>.Colorr>   r'   r?   Nr  rG   r9   r7   r  ry  Z  r  r9   r  c                       e Zd ZdZdZdZdS ).TestSpecial.test_extending2.<locals>.MoreColorrO   r.  r  Nr  rG   r9   r7   r  r{  _  r  r9   r  )r   rL  ru  r   rw  r  r  s       r7   test_extending2zTestSpecial.test_extending2V  s    	! 	! 	! 	! 	!D 	! 	! 	!	 	 	 	 	E 	 	 	 y)) 	 	    E   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   AAAc                      G d dt                     } G d d|          } G d d|          }|                     |j                                        d           d S )Nc                       e Zd Zd ZdS )*TestSpecial.test_extending3.<locals>.Shadec                     | j         S r   r   r   s    r7   ru  z0TestSpecial.test_extending3.<locals>.Shade.shadef  s
    y r9   Nrv  rG   r9   r7   rw  r  e  r  r9   rw  c                       e Zd Zd ZdS )*TestSpecial.test_extending3.<locals>.Colorc                     d| j         z  S )Nz%s hexlified!rX  r   s    r7   r  z.TestSpecial.test_extending3.<locals>.Color.hexi  s    &33r9   N)rA   rB   rC   r  rG   r9   r7   r  r  h  r
  r9   r  c                       e Zd ZdZdZdZdS ).TestSpecial.test_extending3.<locals>.MoreColorrO   r.  r  Nr  rG   r9   r7   r  r  k  s        DGFFFr9   r  z5 hexlified!)r   r   r  r  r|  s       r7   test_extending3zTestSpecial.test_extending3d  s    	! 	! 	! 	! 	!D 	! 	! 	!	4 	4 	4 	4 	4E 	4 	4 	4	 	 	 	 	 	 	 	 	*..00.AAAAAr9   c                      G d dt                     } G d d|          }|                     t          |j                  |           d S )Nc                       e Zd Zd ZdS )6TestSpecial.test_subclass_duplicate_name.<locals>.Basec                     d S r   rG   r   s    r7   r  z;TestSpecial.test_subclass_duplicate_name.<locals>.Base.tests  rF  r9   NrA   rB   rC   r  rG   r9   r7   Baser  r  #            r9   r  c                       e Zd ZdZdS )6TestSpecial.test_subclass_duplicate_name.<locals>.Testr>   Nr  rG   r9   r7   r  r  u          DDDr9   r  )r   r_  r  r  )r   r  r  s      r7   test_subclass_duplicate_namez(TestSpecial.test_subclass_duplicate_nameq  sx    	 	 	 	 	4 	 	 		 	 	 	 	4 	 	 	d49oot,,,,,r9   c                    ddl m  G fddt                    } G d d|          }|                     |j        j        d           |                     |j        j        d            G d	 d
t                    } G d d|          }|                     |j        j        d           |                     |j        j        d           d S )Nr   DynamicClassAttributec                   &    e Zd Z d             ZdS )>TestSpecial.test_subclass_duplicate_name_dynamic.<locals>.Basec                     dS )NdynamicrG   r   s    r7   r  zCTestSpecial.test_subclass_duplicate_name_dynamic.<locals>.Base.test|  s     yr9   Nr  r  s   r7   r  r  {  s/        "! ! #"! ! !r9   r  c                       e Zd ZdZdS >TestSpecial.test_subclass_duplicate_name_dynamic.<locals>.Testr>   Nr  rG   r9   r7   r  r    r  r9   r  r  r>   c                   .    e Zd Zej        d             ZdS )?TestSpecial.test_subclass_duplicate_name_dynamic.<locals>.Base2c                     dS )Nflashy dynamicrG   r   s    r7   flashzETestSpecial.test_subclass_duplicate_name_dynamic.<locals>.Base2.flash  s    ''r9   N)rA   rB   rC   r-   r   r  rG   r9   r7   Base2r    s/        ]( ( ]( ( (r9   r  c                       e Zd ZdZdS r  )rA   rB   rC   r  rG   r9   r7   r  z>TestSpecial.test_subclass_duplicate_name_dynamic.<locals>.Test  s        EEEr9   r  )typesr  r   r   r  r;  r  )r   r  r  r  r  s       @r7   $test_subclass_duplicate_name_dynamicz0TestSpecial.test_subclass_duplicate_name_dynamicy  s8   //////	! 	! 	! 	! 	! 	! 	!4 	! 	! 	!	 	 	 	 	4 	 	 	333!,,,	( 	( 	( 	( 	(D 	( 	( 	(	 	 	 	 	5 	 	 	)+;<<<)1-----r9   c                      G d dt                     } G d d|          }|                     t                    5   G d d|          }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )2TestSpecial.test_no_duplicates.<locals>.UniqueEnumc                       j         }t           fd|D                       r1 j        } | j                  j        }t	          d|d|          d S )Nc              3   8   K   | ]}j         |j         k    V  d S r   rX  )rT  r  r   s     r7   	<genexpr>zNTestSpecial.test_no_duplicates.<locals>.UniqueEnum.__init__.<locals>.<genexpr>  s,      ::tzQW,::::::r9   z$aliases not allowed in UniqueEnum:  z --> )r  anyr   r;  r   )r   r  rD  r   r  s   `    r7   r   z;TestSpecial.test_no_duplicates.<locals>.UniqueEnum.__init__  sv    n::::c::::: 	ADJ,A$* qq!!%   r9   NrA   rB   rC   r   rG   r9   r7   
UniqueEnumr    s#            r9   r  c                       e Zd ZdZdZdZdS -TestSpecial.test_no_duplicates.<locals>.Colorr>   r'   r?   Nr  rG   r9   r7   r  r    r  r9   r  c                       e Zd ZdZdZdZdZdS r  )rA   rB   rC   r  r  r  grenerG   r9   r7   r  z-TestSpecial.test_no_duplicates.<locals>.Color  s"        r9   )r   rL  r   )r   r  r  s      r7   test_no_duplicateszTestSpecial.test_no_duplicates  s    		 		 		 		 		 		 		 			 	 	 	 	J 	 	 	 z** 	 	    
   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r~  c                      G d dt                     }|                     t          |j        j        d          d           |                     |j        j        d           d S )Nc                   T    e Zd ZdZdZdZdZdZdZdZ	dZ
d	 Zej        d
             ZdS )%TestSpecial.test_init.<locals>.Planet)gITf|Dg    
BA)gQX4Eg    WAgoEg    TXA)g	Dg    (IA)gcEg   A)g[\h}Eg    ，A)g#'?TQEg   _xA)gJ-UEg    wAc                 "    || _         || _        d S r   massradius)r   r  r  s      r7   r   z.TestSpecial.test_init.<locals>.Planet.__init__  s     	$r9   c                 :    d}|| j         z  | j        | j        z  z  S )NgyдW=r  )r   r  s     r7   surface_gravityz5TestSpecial.test_init.<locals>.Planet.surface_gravity  s#      49}dk(ABBr9   N)rA   rB   rC   MERCURYVENUSEARTHMARSJUPITERSATURNURANUSNEPTUNEr   r-   r   r  rG   r9   r7   Planetr    sm        +G+E,E+D+G+F+F+G% % % ]C C ]C C Cr9   r  r'   g#@r  )r   r   roundr  r  r;  )r   r  s     r7   	test_initzTestSpecial.test_init  s}    	C 	C 	C 	C 	CT 	C 	C 	C" 	v|;Q??FFF+-CDDDDDr9   c                     G d dt           t                    }|                     t          |d                     |                     t          |d                     |                     t          |d                     |                     t          |j        t                                |                     |j        |j        u            |                     |j	        |j
        u            d S )Nc                       e Zd ZdZd ZdZ e            Z ed          D ]Z	e	dz  dfede	z  <    ed          D ]Z	e	d	z  d
fede	z  <    ed          D ]Z	e	dfede	z  <   e
ZeZeZdS )'TestSpecial.test_ignore.<locals>.Periodz3
            different lengths of time
            c                 L    t          j        | |          }||_        ||_        |S r   )r&   r  r  period)rD  r;  r  rw   s       r7   r  z/TestSpecial.test_ignore.<locals>.Period.__new__  s'    'U33##

r9   zPeriod irE  r  r  zmonth_%d5   r   weekzweek_%d    dayzday_%dN)rA   rB   rC   r   r  _ignore_varsr  rp   r)  day_1OneDayweek_1OneWeekmonth_1OneMonthrG   r9   r7   r  r    s           
 "HTVVFU2YY 7 7)*2wzA~&&U2YY 4 4()!Vy1}%%U2YY 0 0'(%xx!|$$FGHHHr9   r  r  r)  )r&   r   r   rK  r   r  r  r  day_30week_4day_28r  s     r7   test_ignorezTestSpecial.test_ignore  s    	 	 	 	 	Y 	 	 	( 	4455522333--...
6<;;<<<&-7888677777r9   c                 z    G d dt                     } G d d|          }|                     t          |          |j        |j        |j        g           t          |t          d                    D ]F\  }}|dz  }|                     |j        |g           | 	                     ||g          |           Gd S )Nc                       e Zd Zd ZdS )9TestSpecial.test_nonhash_value.<locals>.AutoNumberInAListc                 x    t          | j                  dz   g}t                              |           }||_        |S r5  r6  r8  s      r7   r  zATestSpecial.test_nonhash_value.<locals>.AutoNumberInAList.__new__  s6    S_--12nnS))#
r9   Nr  rG   r9   r7   AutoNumberInAListr    rN  r9   r  c                       e Zd ZdZdZdZdS )4TestSpecial.test_nonhash_value.<locals>.ColorInAListrG   Nr  rG   r9   r7   ColorInAListr    rF  r9   r  r?   r>   )
r   r   r   r  r  r  r^  rp   r;  r_  )r   r  r  r-   r;  s        r7   test_nonhash_valuezTestSpecial.test_nonhash_value  s    	 	 	 	 	 	 	 		 	 	 	 	, 	 	 	 	l++l.>@RT`Te-fggg|U1XX66 	7 	7KD%QJETZ%111MM,,w//6666	7 	7r9   c                 0    G d dt           t                    } G d d|          }|                     t          |          |j        |j        g           |                     |j        d           |                      |d          |j                   d S )Nc                       e Zd Zd ZdS )KTestSpecial.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnumc                 b    |\  }}t                               | |          }||_        ||_        |S r   )r  r  labelr  )rD  r  r;  r  rw   s        r7   r  zSTestSpecial.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnum.__new__  s1    #ukk#u--!	#
r9   Nr  rG   r9   r7   LabelledIntEnumr    s#            r9   r  c                       e Zd ZdZdZdS )HTestSpecial.test_conflicting_types_resolved_in_new.<locals>.LabelledList)r>   Unprocessed)r'   zPayment CompleteN)rA   rB   rC   unprocessedpayment_completerG   r9   r7   LabelledListr    s        ,K6r9   r  r>   )r  r   r   r   r  r  )r   r  r  s      r7   &test_conflicting_types_resolved_in_newz2TestSpecial.test_conflicting_types_resolved_in_new  s    	 	 	 	 	c4 	 	 		7 	7 	7 	7 	7? 	7 	7 	7 	l++l.FHe-fggg11555a,*BCCCCCr9   c                      G d dt                     }	  |d           t          d          # t          $ r'}|                     |j        d u            Y d }~d S d }~ww xY w)Nc                       e Zd ZdZdZdZdS )DTestSpecial.test_default_missing_no_chained_exception.<locals>.Colorr>   r'   r?   N)rA   rB   rC   r]  GREENBLUErG   r9   r7   r  r    r  r9   r  r   Exception not raised.)r   r#  r   r   r^  r   r  excs      r7   )test_default_missing_no_chained_exceptionz5TestSpecial.test_default_missing_no_chained_exception  s    	 	 	 	 	D 	 	 		5E!HHH 3444  	5 	5 	5OOCOt3444444444	5s   / 
A AA c                     G d dt                     }|                      |d          |j                   	  |d           t          d          # t          $ r&}|                     |j        d u            Y d }~nd }~ww xY w	  |d           t          d          # t          $ r7}|                     t          |j        t                               Y d }~nd }~ww xY w	  |d           t          d          # t          $ r8}|                     t          |j        t                               Y d }~d S d }~ww xY w)Nc                   0    e Zd ZdZdZdZed             ZdS )0TestSpecial.test_missing_override.<locals>.Colorr>   r'   r?   c                 J    |dk    r| j         S |dk    rdS |dk    rt          d S )Nr7  
bad returnr.  	error out)r  ZeroDivisionError)rD  r  s     r7   	_missing_z:TestSpecial.test_missing_override.<locals>.Color._missing_	  s:    7??8O\))1[((++  4r9   N)rA   rB   rC   r  r  r  classmethodr  rG   r9   r7   r  r  	  s<        CED
  
  [
  
  
 r9   r  r7  r   r  r  r  )
r   r_  r  r#  r   r   r^  ru  r  r  r  s      r7   test_missing_overridez!TestSpecial.test_missing_override	  s   	  	  	  	  	 D 	  	  	   	eeGnnej111	5E!HHH 3444  	5 	5 	5OOCOt344444444	5	5E, 3444  	E 	E 	EOOJs
CCDDDDDDDD	E	5E+ 3444 ! 	E 	E 	EOOJs
CCDDDDDDDDD	EsG   A 
BA>>BB! !
C"+-CC"&D   
E
-D==Ec                    dd l }dd l} G d dt          j                   G d d          } G fdd          }|                     |                      }|                     |                      }|                                 |                      |            d            |                      |            d            d S )Nr   c                       e Zd ZdZdZdS );TestSpecial.test_missing_exceptions_reset.<locals>.TestEnumval1val2N)rA   rB   rC   VAL1VAL2rG   r9   r7   TestEnumr  *	  s        DDDDr9   r  c                       e Zd Zd ZdS )9TestSpecial.test_missing_exceptions_reset.<locals>.Class1c                 B    	 t                      # t           $ r Y d S w xY wr   r   r   s    r7   r   zBTestSpecial.test_missing_exceptions_reset.<locals>.Class1.__init__/	  s3    $,,&!   DDs    
Nr  rG   r9   r7   Class1r  .	  s#            r9   r  c                       e Zd Z fdZdS )9TestSpecial.test_missing_exceptions_reset.<locals>.Class2c                 B    	  d           d S # t           $ r Y d S w xY w)Ninvalid_valuer  )r   r  s    r7   r   zBTestSpecial.test_missing_exceptions_reset.<locals>.Class2.__init__7	  s@    H_-----!   DDs    
Nr  )r  s   r7   Class2r  6	  s.              r9   r  )gcweakrefr-   r   refcollectr_  )r   r  r  r  r  class_1_refclass_2_refr  s          @r7   test_missing_exceptions_resetz)TestSpecial.test_missing_exceptions_reset&	  s   				 	 	 	 	ty 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	 	 kk&&((++kk&&((++
 	

kkmmT***kkmmT*****r9   c                 |  
  G d d          } G d d          
 G d dt                     } G d dt                     } G d	 d
|t                     }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d           |                     |j        d           |                     t          |j                  d            G 
fdd
|
t                     }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d           |                     |j        d           |                     t          |j                  d            G 
fdd

|t                     }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d           |                     |j        d           |                     t          |j                  d            G 
fdd
|t                     }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d           |                     t          |j                  d           |                     |j                                        d            G 
fdd
|t                     }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d           |                     t          |j                  d           |                     |j                                        d           |                     |j        	                                d            G 
fdd
||          }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d           |                     t          |j                  d           |                     |j                                        d           |                     |j        	                                d            G 
fdd
||          }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d           |                     t          |j                  d           |                     |j                                        d           |                     |j        	                                d            G 
fdd
t          ||          }	|                     |	j        j        d           |                     |	j        j        d           |                     |	j        j        d           |                     t          |	j                  d           |                     |	j                                        d           |                     |j        	                                d           |                     t          |	t                               d S )Nc                   $    e Zd Zed             ZdS )1TestSpecial.test_multiple_mixin.<locals>.MaxMixinc                 2    t          |           }|| _        |S r   )r  MAX)rD  maxs     r7   r&  z5TestSpecial.test_multiple_mixin.<locals>.MaxMixin.MAXJ	  s    #hh
r9   N)rA   rB   rC   r   r&  rG   r9   r7   MaxMixinr$  I	  s-          ]  r9   r(  c                       e Zd Zd ZdS )1TestSpecial.test_multiple_mixin.<locals>.StrMixinc                 4    | j                                         S r   r  lowerr   s    r7   r  z9TestSpecial.test_multiple_mixin.<locals>.StrMixin.__str__P	      {((***r9   NrA   rB   rC   r  rG   r9   r7   StrMixinr*  O	  #        + + + + +r9   r0  c                       e Zd Zd ZdS )1TestSpecial.test_multiple_mixin.<locals>.SomeEnumc                     dS )NbooyahrG   r   s    r7   behaviorz:TestSpecial.test_multiple_mixin.<locals>.SomeEnum.behaviorS	      xr9   N)rA   rB   rC   r6  rG   r9   r7   SomeEnumr3  R	  s#                 r9   r8  c                       e Zd Zd Zd ZdS )4TestSpecial.test_multiple_mixin.<locals>.AnotherEnumc                     dS )Nnuhuh!rG   r   s    r7   r6  z=TestSpecial.test_multiple_mixin.<locals>.AnotherEnum.behaviorV	  r7  r9   c                     dS )N
what's up?rG   r   s    r7   socialz;TestSpecial.test_multiple_mixin.<locals>.AnotherEnum.socialX	  s    #|r9   N)rA   rB   rC   r6  r?  rG   r9   r7   AnotherEnumr:  U	  s2             $ $ $ $ $r9   r@  c                   J    e Zd Z e            Z e            Z e            ZdS .TestSpecial.test_multiple_mixin.<locals>.ColorNrA   rB   rC   r   r]  r  r  rG   r9   r7   r  rC  Z	  /        $&&CDFFE466DDDr9   r  r>   r'   r?   
Color.BLUEc                   Z    e Zd Z e            Z e            Z e            Z j        ZdS rB  rA   rB   rC   r   r]  r  r  r  r0  s   r7   r  z.TestSpecial.test_multiple_mixin.<locals>.Colorc	  8        $&&CDFFE466D&GGGr9   r  c                   Z    e Zd Z e            Z e            Z e            Z j        ZdS rB  rH  rI  s   r7   r  z.TestSpecial.test_multiple_mixin.<locals>.Colorm	  rJ  r9   c                   Z    e Zd Z e            Z e            Z e            Z j        ZdS )2TestSpecial.test_multiple_mixin.<locals>.CoolColorNrH  rI  s   r7   	CoolColorrM  w	  rJ  r9   rN  r5  c                   Z    e Zd Z e            Z e            Z e            Z j        ZdS )4TestSpecial.test_multiple_mixin.<locals>.CoolerColorNrH  rI  s   r7   CoolerColorrP  	  rJ  r9   rQ  r<  r>  c                   Z    e Zd Z e            Z e            Z e            Z j        ZdS )5TestSpecial.test_multiple_mixin.<locals>.CoolestColorNrH  rI  s   r7   CoolestColorrS  	  rJ  r9   rT  c                   Z    e Zd Z e            Z e            Z e            Z j        ZdS )6TestSpecial.test_multiple_mixin.<locals>.ConfusedColorNrH  rI  s   r7   ConfusedColorrV  	  rJ  r9   rW  c                   Z    e Zd Z e            Z e            Z e            Z j        ZdS )6TestSpecial.test_multiple_mixin.<locals>.ReformedColorNrH  rI  s   r7   ReformedColorrY  	  rJ  r9   rZ  )r   r   r]  r;  r  r  r&  r5  r6  r?  r   r   r  r  )r   r(  r8  r@  r  rN  rQ  rT  rW  rZ  r0  s             @r7   test_multiple_mixinzTestSpecial.test_multiple_mixinH	  s   	 	 	 	 	 	 	 		+ 	+ 	+ 	+ 	+ 	+ 	+ 	+	  	  	  	  	 t 	  	  	 	$ 	$ 	$ 	$ 	$$ 	$ 	$ 	$
	 	 	 	 	Hd 	 	 	 	!,,,*A...)1---A&&&UZ,777	' 	' 	' 	' 	' 	' 	'Hh 	' 	' 	'
 	!,,,*A...)1---A&&&UZ&111	' 	' 	' 	' 	' 	' 	'Hh 	' 	' 	'
 	!,,,*A...)1---A&&&UZ&111	' 	' 	' 	' 	' 	' 	'(D 	' 	' 	'
 	,a000.222-q111Y^,,f555//118<<<	' 	' 	' 	' 	' 	' 	'(K 	' 	' 	'
 	.222*0!444)/333[-..7771133X>>>//11<@@@	' 	' 	' 	' 	' 	' 	'8X{ 	' 	' 	'
 	)/333+11555*0!444\.//888)2244h???)0022LAAA	' 	' 	' 	' 	' 	' 	'Hk8 	' 	' 	'
 	*0!444,2A666+11555]/00&999*3355x@@@*1133\BBB	' 	' 	' 	' 	' 	' 	'Hgx 	' 	' 	'
 	*0!444,2A666+11555]/00&999*3355x@@@*1133\BBB
=#6677777r9   c                     t            G d dt                                } G d dt                    }t            G d d|                      }d S )Nc                       e Zd ZdZdZdZdS )<TestSpecial.test_multiple_inherited_mixin.<locals>.Decision1REVERT
REVERT_ALLRETRYNrA   rB   rC   r_  r`  ra  rG   r9   r7   	Decision1r^  	          F%JEEEr9   rc  c                       e Zd ZdS )9TestSpecial.test_multiple_inherited_mixin.<locals>.MyEnumNr   rG   r9   r7   r   rf  	  r   r9   r   c                       e Zd ZdZdZdZdS )<TestSpecial.test_multiple_inherited_mixin.<locals>.Decision2r_  r`  ra  Nrb  rG   r9   r7   	Decision2rh  	  rd  r9   ri  )r   r	   )r   rc  r   ri  s       r7   test_multiple_inherited_mixinz)TestSpecial.test_multiple_inherited_mixin	  s    		 	 	 	 	 	 	 
		 	 	 	 	W 	 	 			 	 	 	 	 	 	 
	 	 	r9   c                     G d dt                     } G d d           G fdd|t          j                  } G d d|          }|                     t	          |j        |                     |                     |j        |           |                     t          |j                  d	            G d
 d|          }|                     |j        d           d S )Nc                        e Zd Z fdZ xZS )8TestSpecial.test_multiple_mixin_inherited.<locals>.MyIntc                 H    t                                          | |          S r   )r  r  )rD  r;  r  s     r7   r  z@TestSpecial.test_multiple_mixin_inherited.<locals>.MyInt.__new__	  s    wwsE222r9   r  r  s   @r7   r  rm  	  s8        3 3 3 3 3 3 3 3 3r9   r  c                       e Zd Zd ZdS );TestSpecial.test_multiple_mixin_inherited.<locals>.HexMixinc                      t          |           S r   r  r   s    r7   r  zDTestSpecial.test_multiple_mixin_inherited.<locals>.HexMixin.__repr__	  r  r9   Nr	  rG   r9   r7   HexMixinrq  	  r  r9   rs  c                       e Zd Z j        ZdS )<TestSpecial.test_multiple_mixin_inherited.<locals>.MyIntEnumNr	  )rs  s   r7   	MyIntEnumru  	  s        (HHHr9   rv  c                       e Zd ZdZdS )6TestSpecial.test_multiple_mixin_inherited.<locals>.Foor>   N)rA   rB   rC   TESTrG   r9   r7   r.  rx  	  r  r9   r.  0x1c                       e Zd ZdZd ZdS )6TestSpecial.test_multiple_mixin_inherited.<locals>.Feer>   c                 T    |dz  }t                               | |          }||_        |S r5  r  r  r  )rD  r;  r   s      r7   r  z>TestSpecial.test_multiple_mixin_inherited.<locals>.Fee.__new__	  s*    
S%00!&r9   N)rA   rB   rC   ry  r  rG   r9   r7   Feer|  	  s(        D    r9   r  r'   )	r  r-   r   r   r  ry  r   r4  r]  )r   r  rv  r.  r  rs  s        @r7   test_multiple_mixin_inheritedz)TestSpecial.test_multiple_mixin_inherited	  sX   	3 	3 	3 	3 	3C 	3 	3 	3	! 	! 	! 	! 	! 	! 	! 	!	) 	) 	) 	) 	) 	) 	)% 	) 	) 	)	 	 	 	 	) 	 	 	
38U33444*E222ch///	 	 	 	 	) 	 	 	 	1%%%%%r9   c                     G d dt           t                    } G d dt           t                    } G d d||          }|}|                     t          |          |j        |j        |j        g           |                     |j        d           |                     |j        j        d           |                      |d          |j                   | 	                    |j        j
                    |d	          }|                     t          |          |j        |j        |j        g           |                     |j        d           |                     |j        j        d           |                      |d          |j                   | 	                    |j        j
                   | 	                    t          ||                     |                     |j
                   d S )
Nc                   .     e Zd Ze fd            Z xZS )UTestSpecial.test_multiple_mixin_with_common_data_type.<locals>.CaseInsensitiveStrEnumc                     | j                                         D ]5}|j                                        |                                k    r|c S 6t	                                          |          S r   )_member_map_r3  r  r-  r  r  )rD  r;  r   r  s      r7   r  z_TestSpecial.test_multiple_mixin_with_common_data_type.<locals>.CaseInsensitiveStrEnum._missing_	  sh    !.5577 & &F~++-->>% ?ww((///r9   )rA   rB   rC   r  r  r  ro  s   @r7   CaseInsensitiveStrEnumr  	  sB        0 0 0 0 [0 0 0 0 0r9   r  c                   J    e Zd Zd Zed             Zej        d             ZdS )MTestSpecial.test_multiple_mixin_with_common_data_type.<locals>.LenientStrEnumc                     d| _         d S )NT_valid)r   r  s     r7   r   zVTestSpecial.test_multiple_mixin_with_common_data_type.<locals>.LenientStrEnum.__init__	  s    "r9   c                     | j                             | |          }d|_        |                                |_        ||_        || j        |<   |S )NF)r4  r  r  r
  r  r  r  )rD  r;  unknowns      r7   r  zWTestSpecial.test_multiple_mixin_with_common_data_type.<locals>.LenientStrEnum._missing_	  sI    +33C??!&!&"'*1 'r9   c                     | j         S r   r  r   s    r7   validzSTestSpecial.test_multiple_mixin_with_common_data_type.<locals>.LenientStrEnum.valid	  s
    {"r9   N)	rA   rB   rC   r   r  r  r-   r   r  rG   r9   r7   LenientStrEnumr  	  sY        # # #  [ ]# # ]# # #r9   r  c                       e Zd ZdZdZdZdS )HTestSpecial.test_multiple_mixin_with_common_data_type.<locals>.JobStatusactivepending
terminatedN)rA   rB   rC   ACTIVEPENDING
TERMINATEDrG   r9   r7   	JobStatusr  	  s        FG%JJJr9   r  r  Activemissing)r5  r   r   r   r  r  r  r;  r_  r   r  r  r   )r   r  r  r  JSr  s         r7   )test_multiple_mixin_with_common_data_typez5TestSpecial.test_multiple_mixin_with_common_data_type	  s   	0 	0 	0 	0 	0S$ 	0 	0 	0	# 	# 	# 	# 	#S$ 	# 	# 	#	& 	& 	& 	& 	&. 	& 	& 	&
 i29bj"-*PQQQH---(333bbllBI...	((("Y--i29bj"-*PQQQH---(333bbllBI...	(((
7B//000'''''r9   c                 V    d}t          |dd          }i }i }t          |||           d S )Nz8from enum import Enum; Enum('Animal', 'ANT BEE CAT DOG')z<string>exec)compiler  )r   code	global_nslocal_lss       r7   test_empty_globalszTestSpecial.test_empty_globals
  s=     JtZ00	T9h'''''r9   c                 v  
  G d dt                     }|                     |j        d           |                     t          |j                  d           |                     d                    |j                  d           |                     |j        t          |j                             |                     |j        d                    |j                             |                     t          |j                  d            G d d          
 G 
fdd	
t                     }|                     |j        d
           |                     t          |j                  d            G d dt                    } G d d|t                     }|                     |j        d           |                     |j        t          |j                              G d d          } G d d||t                     }|                     |j	        d           |                     |j	        t          |j	                             | 
                    t          d          5   G d dt                     }d d d            n# 1 swxY w Y   | 
                    t          d          5   G d dt                     }d d d            n# 1 swxY w Y   | 
                    t          d          5   G d dt                     }	d d d            n# 1 swxY w Y   | 
                    t          dt          j                  5   G d dt                     }	d d d            n# 1 swxY w Y   | 
                    t          d           5   G d! dt                     }	d d d            d S # 1 swxY w Y   d S )"Nc                       e Zd ZdZdZdZdZdS )-TestSpecial.test_strenum.<locals>.GoodStrEnumr+  r,     3ascii   4latin1r\  NrA   rB   rC   rp  rq  r7  fourrG   r9   r7   GoodStrEnumr  
  "        CC!E+DDDr9   r  r+  r9  z<GoodStrEnum.one: '1'>c                       e Zd Zd ZdS )+TestSpecial.test_strenum.<locals>.DumbMixinc                     dS Ndon't do thisrG   r   s    r7   r  z3TestSpecial.test_strenum.<locals>.DumbMixin.__str__
      &r9   Nr/  rG   r9   r7   	DumbMixinr  
  rj  r9   r  c                   *    e Zd ZdZdZdZ j        ZdS )-TestSpecial.test_strenum.<locals>.DumbStrEnumrL  67NrA   rB   rC   fivesixsevenr  r  s   r7   DumbStrEnumr  
  &        DCE'GGGr9   r  r  r  c                       e Zd Zd ZdS )+TestSpecial.test_strenum.<locals>.EnumMixinc                 *    t          d|            d S Nzhello from rt  r   s    r7   r  z1TestSpecial.test_strenum.<locals>.EnumMixin.hello&
      011111r9   Nr  rG   r9   r7   	EnumMixinr  %
  #        2 2 2 2 2r9   r  c                       e Zd ZdZdS )+TestSpecial.test_strenum.<locals>.HelloEnum8NrA   rB   rC   eightrG   r9   r7   	HelloEnumr  (
          EEEr9   r  r  c                       e Zd Zd ZdS ).TestSpecial.test_strenum.<locals>.GoodbyeMixinc                 $    t          d           d S Nz%s wishes you a fond farewellr  r   s    r7   goodbyez6TestSpecial.test_strenum.<locals>.GoodbyeMixin.goodbye.
      566666r9   NrA   rB   rC   r  rG   r9   r7   GoodbyeMixinr  -
  #        7 7 7 7 7r9   r  c                       e Zd ZdZdS )-TestSpecial.test_strenum.<locals>.GoodbyeEnum9NrA   rB   rC   ninerG   r9   r7   GoodbyeEnumr  0
          DDDr9   r  r  z1 is not a stringc                       e Zd ZdZdZdS )4TestSpecial.test_strenum.<locals>.FirstFailedStrEnumr>   r,  Nrw  rG   r9   r7   FirstFailedStrEnumr  6
  s        r9   r  z2 is not a stringc                       e Zd ZdZdZdZdS )5TestSpecial.test_strenum.<locals>.SecondFailedStrEnumr+  r'   r-  Nr6  rG   r9   r7   SecondFailedStrEnumr  :
  s        r9   r  c                       e Zd ZdZdZdS )4TestSpecial.test_strenum.<locals>.ThirdFailedStrEnumr+  r'   Nrw  rG   r9   r7   ThirdFailedStrEnumr  ?
  s        r9   r  zencoding must be a string, not c                   $    e Zd ZdZdej        fZdS )r  r+     2NrA   rB   rC   rp  sysgetdefaultencodingrq  rG   r9   r7   r  z4TestSpecial.test_strenum.<locals>.ThirdFailedStrEnumC
           C22r9   zerrors must be a string, not 9c                       e Zd ZdZdZdS )r  r+  r  r  r  Nrw  rG   r9   r7   r  z4TestSpecial.test_strenum.<locals>.ThirdFailedStrEnumG
          &r9   )r	   r   rp  r5  r:  r]  r  r   r  r  r   ru  r  r  )r   r  r  r  r  r  r  r  r  r  r  s             @r7   test_strenumzTestSpecial.test_strenum
  s   	, 	, 	, 	, 	,' 	, 	, 	,
 	#...[_--s333[_55s;;;#ko*>*>???$++ko*F*FGGGko..0HIII	' 	' 	' 	' 	' 	' 	' 	'	( 	( 	( 	( 	( 	( 	()W 	( 	( 	(
 	*C000[.//AAA	2 	2 	2 	2 	2 	2 	2 	2	 	 	 	 		7 	 	 	#...#io*>*>???	7 	7 	7 	7 	7 	7 	7 	7	 	 	 	 	,	7 	 	 	)3///)3{/?+@+@AAA##I/BCC 	 	    W   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##I/BCC 	 	    g   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 ##I/BCC 	 	    W   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##IIVYVlVl/opp 	3 	33 3 3 3 3W 3 3 3	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 ##I/OPP 	' 	'' ' ' ' 'W ' ' '	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'sZ   (JJJ.KKK4LLLM''M+.M+N..N25N2c                 .    G d dt           t                    } G d d|          }|                     |j        d           |                     t          |j                  d           |                     d                    |j                  d           |                     t          |j                  d            G d	 d
           G fdd|          }|                     |j        d           |                     t          |j                  d            G d dt                    } G d d||          }|                     |j        d           |                     t          |j                  d            G d d          } G d d|||          }|                     |j        d           |                     t          |j                  d            G d d|          } G d d|          }	 G d d |          }
| 	                    t          d!          5   G d" d |          }
d d d            n# 1 swxY w Y   | 	                    t          d#          5   G d$ d |          }
d d d            d S # 1 swxY w Y   d S )%Nc                       e Zd ZdS )6TestSpecial.test_custom_strenum.<locals>.CustomStrEnumNr   rG   r9   r7   CustomStrEnumr  L
  r   r9   r  c                       e Zd ZdZdZdZdZdS )1TestSpecial.test_custom_strenum.<locals>.OkayEnumr+  r,  r  r  Nr  rG   r9   r7   OkayEnumr  N
  r  r9   r  r+  zOkayEnum.oner9  z<OkayEnum.one: '1'>c                       e Zd Zd ZdS )2TestSpecial.test_custom_strenum.<locals>.DumbMixinc                     dS r  rG   r   s    r7   r  z:TestSpecial.test_custom_strenum.<locals>.DumbMixin.__str__Y
  r  r9   Nr/  rG   r9   r7   r  r  X
  rj  r9   r  c                   *    e Zd ZdZdZdZ j        ZdS )4TestSpecial.test_custom_strenum.<locals>.DumbStrEnumrL  r  r  Nr  r  s   r7   r  r  [
  r  r9   r  r  r  c                       e Zd Zd ZdS )2TestSpecial.test_custom_strenum.<locals>.EnumMixinc                 *    t          d|            d S r  r  r   s    r7   r  z8TestSpecial.test_custom_strenum.<locals>.EnumMixin.hellod
  r  r9   Nr  rG   r9   r7   r  r  c
  r  r9   r  c                       e Zd ZdZdS )2TestSpecial.test_custom_strenum.<locals>.HelloEnumr  Nr  rG   r9   r7   r  r  f
  r  r9   r  r  zHelloEnum.eightc                       e Zd Zd ZdS )5TestSpecial.test_custom_strenum.<locals>.GoodbyeMixinc                 $    t          d           d S r  r  r   s    r7   r  z=TestSpecial.test_custom_strenum.<locals>.GoodbyeMixin.goodbyel
  r  r9   Nr  rG   r9   r7   r  r	  k
  r  r9   r  c                       e Zd ZdZdS )4TestSpecial.test_custom_strenum.<locals>.GoodbyeEnumr  Nr  rG   r9   r7   r  r  n
  r  r9   r  r  zGoodbyeEnum.ninec                       e Zd ZdZdZdS );TestSpecial.test_custom_strenum.<locals>.FirstFailedStrEnumr>   r,  Nrw  rG   r9   r7   r  r  s
  s        CCCCr9   r  c                       e Zd ZdZdZdZdS )<TestSpecial.test_custom_strenum.<locals>.SecondFailedStrEnumr+  r  r-  Nr6  rG   r9   r7   r  r  v
  s        CCEEEr9   r  c                       e Zd ZdZdZdS );TestSpecial.test_custom_strenum.<locals>.ThirdFailedStrEnumr+  r'   Nrw  rG   r9   r7   r  r  z
  s        CCCCr9   r  z.encoding. must be str, not c                   $    e Zd ZdZdej        fZdS )r  r+  r  Nr  rG   r9   r7   r  z;TestSpecial.test_custom_strenum.<locals>.ThirdFailedStrEnum~
  r  r9   z.errors. must be str, not c                       e Zd ZdZdZdS )r  r+  r  Nrw  rG   r9   r7   r  z;TestSpecial.test_custom_strenum.<locals>.ThirdFailedStrEnum
  r  r9   )r5  r   r   rp  r:  r]  r  r  r  r   ru  )r   r  r  r  r  r  r  r  r  r  r  r  s              @r7   test_custom_strenumzTestSpecial.test_custom_strenumK
  sO   	 	 	 	 	C 	 	 		, 	, 	, 	, 	,} 	, 	, 	,
 	s+++X\**N;;;X\22NCCChl++-BCCC	' 	' 	' 	' 	' 	' 	' 	'	( 	( 	( 	( 	( 	( 	()] 	( 	( 	(
 	*C000[.//AAA	2 	2 	2 	2 	2 	2 	2 	2	 	 	 	 		= 	 	 	#...Y_--/@AAA	7 	7 	7 	7 	7 	7 	7 	7	 	 	 	 	,	= 	 	 	)3///[-..0BCCC	 	 	 	 	 	 	 		 	 	 	 	- 	 	 		 	 	 	 	 	 	 	 ##I/MNN 	3 	33 3 3 3 3] 3 3 3	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 ##I/KLL 	' 	'' ' ' ' '] ' ' '	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's$   -III.J

JJc                     |                      t          d          5   G d dt          t                    }d d d            d S # 1 swxY w Y   d S )Nz_value_ not set in __new__c                   *    e Zd Zd Zd ZdZdZdZdZdS )6TestSpecial.test_missing_value_error.<locals>.Combinedc                     t                               | |          }d|v r/|                    dd          \  }}|                    d          }n|}d }||_        ||_        ||_        |S )N(r>   z ))r5  r  r  stripfis_namesegmentsequence)rD  r;  r  r-   r  r  s         r7   r  z>TestSpecial.test_missing_value_error.<locals>.Combined.__new__
  sm    ;;sE22De||,1KKQ,?,?)'")--"5"5#("&$,DM#*DL$,DMKr9   c                 2    d| j         j        d| j        dS )N<r:   r  )r  rA   r  r   s    r7   r  z?TestSpecial.test_missing_value_error.<locals>.Combined.__repr__
  s      (,(?(?(?MMr9   )zAn$(1,2)r   )zAn$(3,2)r>   )zAn$(5,1)r'   )zBn$r?   N)	rA   rB   rC   r  r  key_type
company_idr  r  rG   r9   r7   Combinedr  
  sE             N N N !. -
 - -r9   r#  )r   ru  r5  r   )r   r#  s     r7   test_missing_value_errorz$TestSpecial.test_missing_value_error
  s    ##I/KLL 	. 	.. . . . .3 . . .	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   AA
Ac                      G d dt                     }|                     |j        d           |                     |j        d           d S )Nc                       e Zd ZdZdZdS )FTestSpecial.test_private_variable_is_normal_attribute.<locals>.PrivateRadarHoolihanN)rA   rB   rC   _Private__corporal_Private__major_rG   r9   r7   Privater'  
  s         J!HHHr9   r,  r(  r)  )r   r   r*  r+  )r   r,  s     r7   )test_private_variable_is_normal_attributez5TestSpecial.test_private_variable_is_normal_attribute
  sf    	" 	" 	" 	" 	"d 	" 	" 	" 	3W===1:>>>>>r9   c                      G d dt                     }|j        j        }|                     ||j                   |                     |j        |d                    |                     |j        j        d           d S )Nc                       e Zd ZdZdZdZdS )6TestSpecial.test_member_from_member_access.<locals>.Dir>   r   r?   N)rA   rB   rC   YESNOr   rG   r9   r7   Dir0  
  s        CBDDDr9   r3  r   )r   r1  r2  r_  r   r   )r   r3  warns      r7   test_member_from_member_accessz*TestSpecial.test_member_from_member_access
  s    	 	 	 	 	 	 	 	 vydBE"""bgr&z***v.....r9   c                    dddd G fddt                     }|                     t          |          |j        |j        g           |                     |j        j        d           |                     |j                                        d           |                     t          d          5   G fd	d
t                     }d d d            d S # 1 swxY w Y   d S )Nalooffriendlyr  )FOO_CATBAR_DOG	FOO_HORSEc                       e Zd Z e                                d                                  D                        d ZdS )ATestSpecial.test_dynamic_members_with_static_methods.<locals>.Fooc                 D    i | ]\  }}|                     d           ||S FOO_
startswithrT  r  r  s      r7   
<dictcomp>zLTestSpecial.test_dynamic_members_with_static_methods.<locals>.Foo.<dictcomp>
  s@       1||F++q  r9   c                 4    | j                                         S r   r;  r
  r   s    r7   r
  zGTestSpecial.test_dynamic_members_with_static_methods.<locals>.Foo.upper
  s    z'')))r9   NrA   rB   rC   r  updater  r
  foo_definess   r7   r.  r=  
  sh        DFFMM   + 1 1 3 3     
* * * * *r9   r.  rR   z$'FOO_CAT' already defined as 'aloof'c                   ~    e Zd Z  e            j        d                                  D             fi ddi d ZdS )DTestSpecial.test_dynamic_members_with_static_methods.<locals>.FooBarc                 D    i | ]\  }}|                     d           ||S r?  rA  rC  s      r7   rD  zOTestSpecial.test_dynamic_members_with_static_methods.<locals>.FooBar.<dictcomp>
  s@        Aq<<//1  r9   r9  smallc                 4    | j                                         S r   rF  r   s    r7   r
  zJTestSpecial.test_dynamic_members_with_static_methods.<locals>.FooBar.upper
  s    :++---r9   NrG  rI  s   r7   FooBarrL  
  s|          $/$5$5$7$7    
 %g.  . . . . .r9   rP  )	r   r   r   r9  r;  r;  r
  r   ru  )r   r.  rP  rJ  s      @r7   (test_dynamic_members_with_static_methodsz4TestSpecial.test_dynamic_members_with_static_methods
  s[   ")juUU	* 	* 	* 	* 	* 	* 	*$ 	* 	* 	* 	cS[#-$@AAA*G444,,..666##I/UVV 
	. 
	.	. 	. 	. 	. 	. 	. 	. 	. 	. 	.
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	. 
	.s   4CCCc                    ddl m} | G d d                      } G d d|t                    }|                     t	          |j        |                     |                     |j        |u |j                   |                     |j        j         |d          k    |j        j                   |                     t          |j                  d           d	S )
z)ensure dataclass-mixin has correct repr()r   )	dataclassc                       e Zd ZU dZeed<   dS )1TestSpecial.test_repr_with_dataclass.<locals>.Foor.  r   N)rA   rB   rC   r  __annotations__rG   r9   r7   r.  rU  
  s          LFFFFFr9   r.  c                       e Zd ZdZdS )5TestSpecial.test_repr_with_dataclass.<locals>.Entriesr>   NrA   rB   rC   ENTRY1rG   r9   r7   EntriesrX  
          FFFr9   r[  r>   z<Entries.ENTRY1: Foo(a=1)>N)
dataclassesrS  r   r   r  rZ  r4  r;  r   r]  )r   rS  r.  r[  s       r7   test_repr_with_dataclassz$TestSpecial.test_repr_with_dataclass
  s   ))))))		 	 	 	 	 	 	 
		 	 	 	 	c4 	 	 	
7>377888-4g6KLLL,A68LMMMgn--/KLLLLLr9   c                      G d d          } G d d|t                     }|                     t          |j                  d           d S )Nc                       e Zd Zd Zd ZdS )2TestSpecial.test_repr_with_init_mixin.<locals>.Fooc                     || _         d S r   )r   )r   r   s     r7   r   z;TestSpecial.test_repr_with_init_mixin.<locals>.Foo.__init__
  s    r9   c                     d| j         z  S )Nz	Foo(a=%r))r  r   s    r7   r  z;TestSpecial.test_repr_with_init_mixin.<locals>.Foo.__repr__
  s    "T\11r9   N)rA   rB   rC   r   r  rG   r9   r7   r.  ra  
  s2          2 2 2 2 2r9   r.  c                       e Zd ZdZdS )6TestSpecial.test_repr_with_init_mixin.<locals>.Entriesr>   NrY  rG   r9   r7   r[  re  
  r\  r9   r[  zFoo(a=1))r   r   r]  rZ  r   r.  r[  s      r7   test_repr_with_init_mixinz%TestSpecial.test_repr_with_init_mixin
  s~    	2 	2 	2 	2 	2 	2 	2 	2
	 	 	 	 	c4 	 	 	 	gn--z:::::r9   c                      G d d          } G d d|t                     }|                     t          |j                  d           |                     t	          |j                  d           d S )Nc                       e Zd Zd Zd ZdS )=TestSpecial.test_repr_and_str_with_no_init_mixin.<locals>.Fooc                     dS )Nr.  rG   r   s    r7   r  zFTestSpecial.test_repr_and_str_with_no_init_mixin.<locals>.Foo.__repr__
      ur9   c                     dS )NooFrG   r   s    r7   r  zETestSpecial.test_repr_and_str_with_no_init_mixin.<locals>.Foo.__str__
  rl  r9   N)rA   rB   rC   r  r  rG   r9   r7   r.  rj  
  s2              r9   r.  c                       e Zd ZdZdS )ATestSpecial.test_repr_and_str_with_no_init_mixin.<locals>.Entriesr>   NrY  rG   r9   r7   r[  rp  
  r\  r9   r[  rn  )r   r   r]  rZ  r5  rf  s      r7   $test_repr_and_str_with_no_init_mixinz0TestSpecial.test_repr_and_str_with_no_init_mixin
  s    	 	 	 	 	 	 	 	
	 	 	 	 	c4 	 	 	 	gn--u555W^,,e44444r9   c                      G d dt                     }|                     |j        j        d           |                     |j        j        d           d S )Nc                       e Zd Zd ZdZdZdS )2TestSpecial.test_value_backup_assign.<locals>.Somec                 6    t                               |           S r   r  r  )rD  rz  s     r7   r  z:TestSpecial.test_value_backup_assign.<locals>.Some.__new__
      ~~c***r9   r>   r'   N)rA   rB   rC   r  r  r  rG   r9   r7   Somert  
  s'        + + +AAAAr9   rx  r>   r'   )r   r   r  r;  r  )r   rx  s     r7   test_value_backup_assignz$TestSpecial.test_value_backup_assign
  sh    	 	 	 	 	4 	 	 	
 	q)))q)))))r9   c                 
    G d dt           t                    }|                     t          |j        |j        z  |          |j        |j        z             |                     t          |j        dz  |                     d S )Nc                       e Zd ZdZdZdZdS )7TestSpecial.test_custom_flag_bitwise.<locals>.MyIntFlagr>   r'   rO   NrA   rB   rC   r   r   FOURrG   r9   r7   	MyIntFlagr|  
  r@  r9   r  r'   )r  r   r   r  r   r   )r   r  s     r7   test_custom_flag_bitwisez$TestSpecial.test_custom_flag_bitwise
  s    	 	 	 	 	T 	 	 	 	
9=9=#@)LLim^g^kNklll
9=1#4i@@AAAAAr9   c                     G d dt                     }|j        |j        z  }t          j        |          }t          j        |          }|                     ||           |                     ||           |j        |j        z  dz  }t          j        |          }t          j        |          }|                     ||           |                     ||           |                     |j        d           d S )Nc                       e Zd ZdZdZdZdS )2TestSpecial.test_int_flags_copy.<locals>.MyIntFlagr>   r'   rO   Nr}  rG   r9   r7   r  r    r@  r9   r  r  r  )r   r   r   rR  rS  r   r;  )r   r  flagsrU  rV  s        r7   test_int_flags_copyzTestSpecial.test_int_flags_copy  s   	 	 	 	 	 	 	 	
 	-5!!}U##'''u%%%	-15!!}U##'''u%%%y11111r9   c                    ddl m}  |dd           G fddt                    }|                     t	          |j                  d           |                     |j        j         ddg                      |                     d	 |D              ddg            d
ddg           ddg d          g           d S )Nr   )
namedtupleTTuplez
id a blistc                   d    e Zd Z  ddg           Z  dddg          Z  ddg d          ZdS )4TestSpecial.test_namedtuple_as_value.<locals>.NTEnumr   r>   r'   rO   r   r>   r'   N)rA   rB   rC   NONEr  re  )r  s   r7   NTEnumr    sN        6!Q##Dq!aS!!Aq!YYY''AAAr9   r  z*<NTEnum.NONE: TTuple(id=0, a=0, blist=[])>)idr   blistc                     g | ]	}|j         
S rG   rX  )rT  r  s     r7   rV  z8TestSpecial.test_namedtuple_as_value.<locals>.<listcomp>!  s    )))Q)))r9   r>   r'   rO   r  )collectionsr  r   r   r]  r  r;  )r   r  r  r  s      @r7   test_namedtuple_as_valuez$TestSpecial.test_namedtuple_as_value  s$   ******Hl33	( 	( 	( 	( 	( 	( 	(T 	( 	( 	( 	fk**,XYYY*FFa1B,G,G,GHHH))&)))1,,,ffQqc.J.J.JFFVW[\dmdmdmLnLnLno	 	 	 	 	r9   c                 J    G d dt                     }|                     |j        d           |                     |j        d           |                     |j        d           |                     |j        dz  d            G d dt
                    }|                     |j        d           |                     |j        d           |                     |j        j        d           |                     |j        |j        z  j        d            G d	 dt          t
          t          
          }|                     |j        d           |                     |j        d           |                     |j        d           |                     |j        dz  d           d S )Nc                   *    e Zd Zd Z ed          ZdS );TestSpecial.test_flag_with_custom_new.<locals>.FlagFromCharc                 T    d|z  }t                               | |          }||_        |S r5  r~  rD  r  r;  r   s       r7   r  zCTestSpecial.test_flag_with_custom_new.<locals>.FlagFromChar.__new__'  *    Q{{3..$r9   r   NrA   rB   rC   r  ordr   rG   r9   r7   FlagFromCharr  &  ,           CAAAr9   r  l    l                r>   l               c                   .    e Zd Zd Z ed          ZdZdS )r  c                 R    d|z  }t                               |           }||_        |S r5  )r  r  r  r  s       r7   r  zCTestSpecial.test_flag_with_custom_new.<locals>.FlagFromChar.__new__6  s(    Q~~c**$r9   r   r>   N)rA   rB   rC   r  r  r   zrG   r9   r7   r  z;TestSpecial.test_flag_with_custom_new.<locals>.FlagFromChar5  s1           CAAAAr9   l               c                   *    e Zd Zd Z ed          ZdS )r  c                 T    d|z  }t                               | |          }||_        |S r5  r~  r  s       r7   r  zCTestSpecial.test_flag_with_custom_new.<locals>.FlagFromChar.__new__F  r  r9   r   Nr  rG   r9   r7   r  z;TestSpecial.test_flag_with_custom_new.<locals>.FlagFromCharE  r  r9   r   )
r   r   
_all_bits__flag_mask_r   r   r;  r  r  r   )r   r  s     r7   test_flag_with_custom_newz%TestSpecial.test_flag_with_custom_new%  s   	 	 	 	 	7 	 	 	 	02PQQQ13QRRR)GHHH)+IJJJ	 	 	 	 	4 	 	 	 	02PQQQ13QRRR-/MNNN,.7>@^___	 	 	 	 	3t 	 	 	 	 	02PQQQ13QRRR)GHHH)+IJJJJJr9   c                 T    G d d          |                      t                    5   G d dt          j                  }d d d            n# 1 swxY w Y   |                      t                    5   G fddt          j                  }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd Zd ZdS )-TestSpecial.test_init_exception.<locals>.Basec                 6    t                               |           S r   rv  )rD  r  s     r7   r  z5TestSpecial.test_init_exception.<locals>.Base.__new__U  rw  r9   c                 "    t          d|          )NzI don't liker  )r   r  s     r7   r   z6TestSpecial.test_init_exception.<locals>.Base.__init__W  s     333r9   N)rA   rB   rC   r  r   rG   r9   r7   r  r  T  s2        + + +4 4 4 4 4r9   r  c                       e Zd ZdZd ZdS )/TestSpecial.test_init_exception.<locals>.MyEnumr   c                     || _         d S r   r  r   r  s     r7   r   z8TestSpecial.test_init_exception.<locals>.MyEnum.__init__\      DFFFr9   N)rA   rB   rC   r  r   rG   r9   r7   r   r  Z  s(            r9   r   c                   $    e Zd ZdZd Z fdZdS )r  r   c                     || _         d S r   r  r  s     r7   r   z8TestSpecial.test_init_exception.<locals>.MyEnum.__init__a  r  r9   c                 R                         |           } |          |_        |S r   )r  r  )rD  r;  r   r  s      r7   r  z7TestSpecial.test_init_exception.<locals>.MyEnum.__new__c  s(    !\\#..F%)T%[[FN!Mr9   N)rA   rB   rC   r  r   r  )r  s   r7   r   z/TestSpecial.test_init_exception.<locals>.MyEnum_  sB          " " " " " " "r9   )rL  ru  r-   r   r   )r   r   r  s     @r7   test_init_exceptionzTestSpecial.test_init_exceptionS  sv   	4 	4 	4 	4 	4 	4 	4 	4
 y)) 	 	    ty   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 z** 	" 	"" " " " " " "ty " " "	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s#   AAA4BB!$B!N)frA   rB   rC   r   r8  r  r  r  skipr  r!  r$  r=  rC  r   r!  rS  r\  rc  rr  rx  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-  r2  rA  rQ  rW  r]  rc  rq  r  r  r  r  r  r  r  r  r)  r0  r>  rI  rQ  rV  ro  r}  r  r  r  r  r  r  r  r  r  r  r!  r[  rj  r  r  r  r  r  r$  r-  r5  rQ  r^  rg  rq  ry  r  r  r  r  r  rG   r9   r7   r  r    sH          :) ) ),& & &$ X]<  + + ! +0  2E E E
@ @ @08 8 8 X_g%+  	 . X_W$-  	 (  (: : :0  *, , ,-= -= -=^$ $ $. . . . . .". . . . . .". . . . . . 6 6 6
    6 6 69 9 9; ; ;5 5 57 7 7D D DO O OK K KA A A9 9 93 3 3	 	 	8 8 8, , ,&A A A4 4 4
4 4 4? ? ?? ? ?C C CA A A9 9 93 3 3$     # # #J:2 :2 :2x:2 :2 :2x:2 :2 :2x92 92 92v82 82 82t82 82 82t
> 
> 
>7 7 7(; ; ; ; ; ;4 4 4. . .>  B B B- - -. . .&  ,E E E*8 8 887 7 7"D D D"
5 
5 
5#5 #5 #5J +  +  +De8 e8 e8N  & & &6*( *( *(X( ( (<' <' <'|9' 9' 9'v. . .4? ? ?/ / /. . .6M M M	; 	; 	;5 5 5* * *B B B2 2 2&  ,K ,K ,K\" " " " "r9   r  c                   <    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	S )
	TestOrderz%test usage of the `_order_` attributec                 ,     G d dt                     }d S )Nc                       e Zd ZdZdZdZdZdS )*TestOrder.test_same_members.<locals>.Colorred green bluer>   r'   r?   NrA   rB   rC   _order_r  r  r  rG   r9   r7   r  r  m  s"        &GCEDDDr9   r  r   r   s     r7   test_same_memberszTestOrder.test_same_membersl  s6    	 	 	 	 	D 	 	 	 	 	r9   c                 ,     G d dt                     }d S )Nc                   "    e Zd ZdZdZdZdZeZdS )7TestOrder.test_same_members_with_aliases.<locals>.Colorr  r>   r'   r?   NrA   rB   rC   r  r  r  r  verderG   r9   r7   r  r  t  s'        &GCEDEEEr9   r  r  r   s     r7   test_same_members_with_aliasesz(TestOrder.test_same_members_with_aliasess  s6    	 	 	 	 	D 	 	 	 	 	r9   c                     |                      t          d          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )N#member order does not match _order_c                       e Zd ZdZdZdZdZdS )6TestOrder.test_same_members_wrong_order.<locals>.Colorr  r>   r?   r'   N)rA   rB   rC   r  r  r  r  rG   r9   r7   r  r  }  s"        *r9   r  r   ru  r   r   s     r7   test_same_members_wrong_orderz'TestOrder.test_same_members_wrong_order{  s    ##I/TUU 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                     |                      t          d          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nr  c                       e Zd ZdZdZdZdZdS )5TestOrder.test_order_has_extra_members.<locals>.Colorred green blue purpler>   r'   r?   Nr  rG   r9   r7   r  r    s"        1r9   r  r  r   s     r7   test_order_has_extra_membersz&TestOrder.test_order_has_extra_members  s    ##I/TUU 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                     |                      t          d          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nr  c                   "    e Zd ZdZdZdZdZeZdS )BTestOrder.test_order_has_extra_members_with_aliases.<locals>.Colorr  r>   r'   r?   Nr  rG   r9   r7   r  r    s'        1r9   r  r  r   s     r7   )test_order_has_extra_members_with_aliasesz3TestOrder.test_order_has_extra_members_with_aliases  s    ##I/TUU 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                     |                      t          d          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nr  c                   "    e Zd ZdZdZdZdZdZdS )4TestOrder.test_enum_has_extra_members.<locals>.Colorr  r>   r'   r?   rO   N)rA   rB   rC   r  r  r  r  purplerG   r9   r7   r  r    s'        *r9   r  r  r   s     r7   test_enum_has_extra_membersz%TestOrder.test_enum_has_extra_members  s    ##I/TUU 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                     |                      t          d          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nr  c                   &    e Zd ZdZdZdZdZdZeZdS )ATestOrder.test_enum_has_extra_members_with_aliases.<locals>.Colorr  r>   r'   r?   rO   N)	rA   rB   rC   r  r  r  r  r  r  rG   r9   r7   r  r    s,        *r9   r  r  r   s     r7   (test_enum_has_extra_members_with_aliasesz2TestOrder.test_enum_has_extra_members_with_aliases  s    ##I/TUU 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  N)rA   rB   rC   r   r  r  r  r  r  r  r  rG   r9   r7   r  r  i  s        ++                r9   r  c                      e Zd ZdZ G d de          Z G d de          Z G d de          Zd Zd	 Z	d
 Z
d Zd Zd Zd Zd Zd Zd Zd Zd Z ej        edk    d          d             Z ej        edk     d          d             Zd Zd Zd Zd Zd Zd Zd Zd  Z d! Z!e"j#         e"j$                    d"                         Z%d# Z&d$S )%OldTestFlagzTests of the Flags.c                       e Zd Zd\  ZZZdS )OldTestFlag.Perm)rO   r'   r>   NrA   rB   rC   RWrk  rG   r9   r7   Permr    s        1aaar9   r  c                   "    e Zd ZdZdZdZdZdZdS )OldTestFlag.Openr   r>   r'   r?      NrA   rB   rC   ROWORWACCErG   r9   r7   Openr    '        r9   r  c                   L    e Zd ZdZdZdZdZdZeez  Zeez  ez  Z	eez  ez  Z
dS )OldTestFlag.Colorr   r>   r'   rO   NrA   rB   rC   BLACKr]  ROJOr  r  PURPLEWHITEBLANCOrG   r9   r7   r  r    J        TE	$U4r9   r  c           	         | j         }|D ]}|D ]}|                     ||z   ||j        |j        z                       |                     ||z  j        |j        |j        z             |                     t	          ||z            |           |D ]}|                     ||z  |           | j        }|                     |j        |j        z  |j                   d S r   r  r   r;  r_  r  r  r  r  r   r  r)  jr  s        r7   test_orzOldTestFlag.test_or  s    y 	1 	1A 1 1  !a%$$qw/@*A*ABBB  !a%!'0ABBBd1q5kk400001  	$ 	$AMM!a%####ydg'11111r9   c                    | j         }|j        |j        z  }|j        |j        z  }|j        |j        z  }|j        |j        z  |j        z  }t	          |          |||| |d          gz   }|D ]X}|D ]S}|                     ||z  j        |j        |j        z             |                     t          ||z            |           TY|D ]M}|                     ||z  |           |                     ||z  |           |                     ||z  |           N| j	        }	|                     |	j
        |	j        z  |	j
                   d S Nr   )r  r  r  rk  r   r   r;  r_  r  r  r  r  
r   r  r  RXWXRWXr3  r)  r  r  s
             r7   test_andzOldTestFlag.test_and  sX   yVdf_Vdf_Vdf_ftvo&dr2r3Q88 	1 	1A 1 1  !a%!'0ABBBd1q5kk400001  	& 	&AMM!a%###MM!c'1%%%MM#'1%%%%ydg'11111r9   c                 
   | j         }|D ]X}|D ]S}|                     ||z  j        |j        |j        z             |                     t	          ||z            |           TY|D ]F}|                     | |d          z  |           |                      |d          |z  |           G| j        }|                     |j        |j        z  |j                   |                     |j        |j        z  |j                   d S r  r  r  s        r7   test_xorzOldTestFlag.test_xor  s   y 	1 	1A 1 1  !a%!'0ABBBd1q5kk400001  	* 	*AMM!dd1gg+q)))MM$$q''A+q))))ydg'111dg'11111r9   c                     | j         }|D ]}|                     |           | j        }|D ]7}|                     t	          |j                  t	          |                     8d S r   r  r   r  r   r  r;  r   r  r*  r  s       r7   r  zOldTestFlag.test_bool  t    y 	 	AOOAy 	5 	5AT!']]DGG4444	5 	5r9   c                 T   |                      t          j        j        t                      G d dt          t
                    }|                      |j        t
                      G d dt          t                    }|                      |j        t                      G d dt          t                    }|                      |j        t                      G d d	t          t                    }|                     t          d
|d           |                       |d          |j
        |j        z             |                       |d          |j                   |                      |d          d           |                     t           |d                    t          u            |                     t!          |          |j        g           |                       |d          |j                   |                       |d          |j                    G d dt          j                  }|                     |j        |j        |j        z  v            |                     t          d|d            G d dt          j                  }|                     |j        |j        |j        z  v            |                      |d          j        d            G d dt                    }|                     t1          |j        |j        z            d           d S )Nc                       e Zd ZdZdZdZdS )'OldTestFlag.test_boundary.<locals>.Ironr>   r'   r  NrA   rB   rC   r   r   EIGHTrG   r9   r7   Ironr    r9  r9   r  r   c                       e Zd ZdZdZdZdS )(OldTestFlag.test_boundary.<locals>.Waterr>   r'   r  Nr  rG   r9   r7   Waterr    r9  r9   r  c                       e Zd ZdZdZdZdS )(OldTestFlag.test_boundary.<locals>.Spacer>   r'   r  Nr  rG   r9   r7   Spacer     r9  r9   r  c                       e Zd ZdZdZdZdS )*OldTestFlag.test_boundary.<locals>.Bizarrer?   rO   r  NrA   rB   rC   r4  r  drG   r9   r7   Bizarrer            AAAAAr9   r  zinvalid value 7r   r?   r  c                        e Zd ZdZdZdez  ZdS )+OldTestFlag.test_boundary.<locals>.SkipFlagr>   r'   rO   Nr  rG   r9   r7   SkipFlagr    !        AAAAAAr9   r   zSkipFlag.. invalid value 42*   c                        e Zd ZdZdZdez  ZdS ).OldTestFlag.test_boundary.<locals>.SkipIntFlagr>   r'   rO   Nr  rG   r9   r7   SkipIntFlagr$    r!  r9   r%  c                       e Zd ZdZdZdZdZdS )-OldTestFlag.test_boundary.<locals>.MethodHint   r>   r'   r  N)rA   rB   rC   
HiddenText
DigitsOnlyLettersOnlyOnlyMaskrG   r9   r7   
MethodHintr'  '  s"        JJKHHHr9   r-  z5MethodHint.HiddenText|DigitsOnly|LettersOnly|OnlyMask)r_  r-   r   r  r   r   r   r   r   r   r   r   r   r   r  r  r   r  r4  r  r  r  r   r;  r5  r)  r,  )r   r  r  r  r  r   r%  r-  s           r7   test_boundaryzOldTestFlag.test_boundary  st   di*F333	 	 	 	 	4' 	 	 	 	 	dow///	 	 	 	 	D6 	 	 	 	 	e&///	 	 	 	 	D5 	 	 	 	 	e&...	 	 	 	 	dT 	 	 	 	
 	z+<eQGGGdd1ggtx0111dd2hh)))q1%%%UU1XX#-...g444ggajj'),,,ggajj'),,,	 	 	 	 	ty 	 	 	
 	
xz(*'<=>>>z+H(TVWWW	 	 	 	 	$, 	 	 	
 	+-*EFGGGR.333	 	 	 	 	 	 	 	 	Z2:3FFGG  JA  	B  	B  	B  	B  	Br9   c                     | j         }| j        }|                     t          |          |j        |j        |j        g           |                     t          |          |j        |j        |j	        g           d S r   
r  r  r   r   r]  r  r  r  r  r  r   r  r  s      r7   	test_iterzOldTestFlag.test_iter0  h    
yeuy%+uz&JKKKddgtw%@AAAAAr9   c                    t          dd          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     ||j        |j        |j        g           t          d                                          D ]\  }}d|z  } ||          }|                     |j	        |           |                     t          |j	                  t                     |                     |j        |           |                     ||           |                     t          |          |           d S Nr  R W Xr?   r>   r   r   r   r  r  r  rk  r  r  r;  r  r  r   rt  r_  r   r  r  r)  nr  r  s          r7    test_programatic_function_stringz,OldTestFlag.test_programatic_function_string6  sA   FG$$4jjS3t99---TAt,,,tvtvtv6777gmmoo.. 	) 	)DAq1AQAQWa(((T!']]C000QVQ'''MM!T"""MM$q''4((((	) 	)r9   c                    t          ddd          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     ||j        |j        |j        g           t          d                                          D ]\  }}d|z  } ||          }|                     |j	        |           |                     t          |j	                  t                     |                     |j        |           |                     ||           |                     t          |          |           d S Nr  r6  r  r  r?   r7  r8  s          r7   +test_programatic_function_string_with_startz7OldTestFlag.test_programatic_function_string_with_startE  sF   FG1---4jjS3t99---TAt,,,tvtvtv6777gmmoo.. 	) 	)DAq1AQAQWa(((T!']]C000QVQ'''MM!T"""MM$q''4((((	) 	)r9   c                    t          dg d          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     ||j        |j        |j        g           t          d                                          D ]\  }}d|z  } ||          }|                     |j	        |           |                     t          |j	                  t                     |                     |j        |           |                     ||           |                     t          |          |           d S Nr  )r  r  rk  r?   r6  r>   r7  r8  s          r7   %test_programatic_function_string_listz1OldTestFlag.test_programatic_function_string_listT  sE   FOOO,,4jjS3t99---TAt,,,tvtvtv6777gmmoo.. 	) 	)DAq1AQAQWa(((T!']]C000QVQ'''MM!T"""MM$q''4((((	) 	)r9   c                    t          dd          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     ||j        |j        |j        g           t          d                                          D ]\  }}dd|z  dz   z  } ||          }|                     |j	        |           |                     t          |j	                  t                     |                     |j        |           |                     ||           |                     t          |          |           d S Nr  ))r  r'   )r  r  )rk  r  r?   r6  r>   r'   r7  r8  s          r7   "test_programatic_function_iterablez.OldTestFlag.test_programatic_function_iterablec  sJ   F;<<4jjS3t99---TAt,,,tvtvtv6777gmmoo.. 	) 	)DAqAaCE
AQAQWa(((T!']]C000QVQ'''MM!T"""MM$q''4((((	) 	)r9   c                    t          dt          d                    }t          |          }|                     t	          |          t	          |                     |                     t	          |          d|           |                     ||j        |j        |j        g           t          d	                                          D ]\  }}dd|z  dz   z  } ||          }|                     |j
        |           |                     t          |j
                  t                     |                     |j        |           |                     ||           |                     t          |          |           d S rB  )r   r   r   r   r  r  r  rk  r  r  r;  r  r  r   rt  r_  r8  s          r7   #test_programatic_function_from_dictz/OldTestFlag.test_programatic_function_from_dictr  sR   FK(GHHII4jjS3t99---TAt,,,tvtvtv6777gmmoo.. 	) 	)DAqAaCE
AQAQWa(((T!']]C000QVQ'''MM!T"""MM$q''4((((	) 	)r9   c                    t          t          t                    rt          t          | j        t          j                   t          | j        t          j        t          j        z             t          | j        t          j        t          j         z             t          | j        t                     t          | j        t          j                   t          | j        t          j        t          j        z             t          | j        t          j                   t          | j        t          j        t          j        z             t          | j        t          j
                   t          | j        t          j                   t          | j        t          j        t          j        z             t          | j        t          j                   t          | j        t          j        t          j        z             t          | j        t          j        t          j        z  dz             t          | j        t          d                     t          | j        t          d                     t          | j        t                     t          | j        t          j                   t          | j        t          j        dz             t          | j        t          j        t          j        z             t          | j        t          j                   t          | j        t          j        t          j        z             t          | j        t          j
                   t          | j        t          j                   t          | j        t          j        dz             t          | j        t          j        t          j        z             d S )N0   r   r>   )r  rN   r#  rt   r_  rE   r   rF   rR   rT   rV   rY   r[   r   s    r7   test_picklezOldTestFlag.test_pickle  s)   k9-- 	dm[->???d.#)+/9	; 	; 	;d.#);+<*<<	> 	> 	>dm[999d.@@@d.#)+/9	; 	; 	; 	dm-@-FGGGd.+12E2II	K 	K 	Kdm-@-GHHHd.0C0GHHHd.+12E2II	K 	K 	K 	dm^-ABBBd.&,^-??	A 	A 	Ad.&,^-??D	F 	F 	Fd.q0A0ABBBd.t0D0DEEEdm^<<<d.0BCCCd.0B10DEEEd.&,^-??	A 	A 	A 	dm-C-IJJJd..45K5OO	Q 	Q 	Qdm-C-JKKKd.0F0JKKKd.0F0J10LMMMd..45K5OO	Q 	Q 	Q 	Q 	Qr9   ri  rk  c                    | j         }| j        }|                     |j        |v            |                     |j        |v            |                     t                    5  |                     t                    5  d|v  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t                    5  |                     t                    5  d|v  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t                    5  |                     t                    5  d|v  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t                    5  |                     t                    5  d|v  d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S Nr  r  r>   )	r  r  r   r  r  rL  ru  rv  rw  r   r  r  s      r7   r{  zOldTestFlag.test_contains_er  s   
 y
,---E)***y)) 	! 	!!!"455 ! !5  ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! y)) 	 	!!"455                	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	!!"455  U

              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	!!"455  T		              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   !B$<BB$B	B$B	B$$B(+B(	D$C5)D5C9	9D<C9	=DDD1E4EE4E!	!E4$E!	%E44E8;E8G4G9GG			GG		GG!$G!6__contains__ only works with enum memmbers before 3.12c                 J   | j         }| j        }|                     |j        |v            |                     |j        |v            |                     d|v            |                     d|v            |                     d|v            |                     d|v            d S rJ  )r  r  r   r  r  r   rK  s      r7   r  zOldTestFlag.test_contains_tf  s    
 y
,---E)***E)***&&&U
###T	"""""r9   c                 v   | j         }|\  }}}||z  }||z  }||z  }||z  |z  }|                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            d S r   )r  r   r   	r   r  r  r  rk  r  r  r  r  s	            r7   test_member_containsz OldTestFlag.test_member_contains  sP   y1aUUU!eaiR   R   S!!!R   R   S!!!R   R   S!!!b!!!b!!!b!!!!!r9   c                 l   | j         }|                     t          |j                  g            |                     t          |j                  |j        |j        g           |                     t          |j                  |j        g           |                     t          |j                  |j        g           |                     t          |j                  |j        |j        |j        g           |                     t          |j                  |j        |j        |j        g           d S r   	r  r   r   r  r  r]  r  r  r  r   s     r7   test_member_iterzOldTestFlag.test_member_iter  s    
ek**B///el++ei-DEEEej))EJ<888ek**U[M:::ek**UYUZ,PQQQek**UYUZ,PQQQQQr9   c                    |                      | j                            | j        j                  d           |                      | j                            | j        j                  d           |                      | j                            | j        j                  d           |                      | j                            | j        j                  d           d S Nr   r>   r'   r?   r   r  __len__r  r  r  r  r   s    r7   test_member_lengthzOldTestFlag.test_member_length      ++DJ,<==qAAA++DJ,<==qAAA++DJ,=>>BBB++DJ,=>>BBBBBr9   c                     G d dt                     }|                     t          |          |j        |j        |j        |j        |j        g           |                     |j        |j	                   |                     |j	        j
        d           |                     |j        j
        d           |                     |j        j
        d           d S )Nc                   z    e Zd ZdZ e            Z e            Z e            ZdZ e            Z	 e            Z
dS )AOldTestFlag.test_number_reset_and_order_cleanup.<locals>.ConfusedzONE TWO FOUR DOS EIGHT SIXTEENr'   N)rA   rB   rC   r  r   r   r   r~  DOSr  SIXTEENrG   r9   r7   Confusedr\    sO        6G$&&C$&&C466DCDFFEdffGGGr9   r_  r'   r  r(  )r   r   r   r   r   r~  r  r^  r_  r]  r  )r   r_  s     r7   #test_number_reset_and_order_cleanupz/OldTestFlag.test_number_reset_and_order_cleanup  s    	 	 	 	 	t 	 	 	 	Xx|X]HNHL\]	_ 	_ 	_ 	hlHL111-q111/333)1266666r9   c                    | j         }|                      |d          j        d           |                     |d         j        d           |                      |d          j        d           |                     |d         j        d           |                     |j        |j                   | j        }|                     |d         |j                   d S Nr>   r]  r  r   r  r  r  r  r   r   r_  r  r  r  r  r1  s      r7   test_aliaseszOldTestFlag.test_aliases      
q...v+U333q000x-w777elEK000yd4j$'*****r9   c                 V    G d dt                     }|                     t          |          |j        |j        |j        g           |                     |j        j        d           |                     |j        j        d           |                     |j        j        d           d S )Nc                   J    e Zd Z e            Z e            Z e            ZdS )+OldTestFlag.test_auto_number.<locals>.ColorNrA   rB   rC   r   r  r  r  rG   r9   r7   r  rh    /        $&&C466DDFFEEEr9   r  r>   r'   rO   )r   r   r   r  r  r  r;  r   s     r7   test_auto_numberzOldTestFlag.test_auto_number      	 	 	 	 	D 	 	 	
 	euy%*ek&JKKK!,,,)1---*A.....r9   c                     |                      t          d          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nzinvalid flag value .not an int.c                   &    e Zd ZdZ e            ZdS )3OldTestFlag.test_auto_number_garbage.<locals>.Colorz
not an intNrA   rB   rC   r  r   r  rG   r9   r7   r  ro    s        "tvvr9   r  )r   ru  r   r   s     r7   test_auto_number_garbagez$OldTestFlag.test_auto_number_garbage  s    ##I/PQQ 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                      G d dt                     }|                     |j        |j        |j        gt          |                     d S )Nc                   N    e Zd Z e            xZZ e            Z e            ZdS ).OldTestFlag.test_duplicate_auto.<locals>.DupesNrA   rB   rC   r   r   primeror   r  rG   r9   r7   Dupesrt     4        "dff$EGTVVFDFFEEEr9   rw  r   r   r   r   r  r   r   rw  s     r7   test_duplicate_autozOldTestFlag.test_duplicate_auto  ]    	 	 	 	 	D 	 	 	 	%+u|U[A4;;OOOOOr9   c                     G d d          } G d d           G d d|t                     }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d	           |                     |j        j        d
           |                     t          |j                  d            G fdd|t                     }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d	           |                     |j        j        d
           |                     t          |j                  d            G fdd|t                     }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d	           |                     |j        j        d
           |                     t          |j                  d           d S )Nc                   $    e Zd Zed             ZdS )1OldTestFlag.test_multiple_mixin.<locals>.AllMixinc                 n    t          |           }d }|r|d         }|dd          D ]}||z  }|| _        |S r  r   ALLrD  members	all_valuer   s       r7   r  z5OldTestFlag.test_multiple_mixin.<locals>.AllMixin.ALL(  S    s)) 	 , '
I")!""+ , ,!V+		#  r9   NrA   rB   rC   r   r  rG   r9   r7   AllMixinr  '  -        ! ! ]! ! !r9   r  c                       e Zd Zd ZdS )1OldTestFlag.test_multiple_mixin.<locals>.StrMixinc                 4    | j                                         S r   r,  r   s    r7   r  z9OldTestFlag.test_multiple_mixin.<locals>.StrMixin.__str__3  r.  r9   Nr/  rG   r9   r7   r0  r  2  r1  r9   r0  c                   J    e Zd Z e            Z e            Z e            ZdS .OldTestFlag.test_multiple_mixin.<locals>.ColorNrD  rG   r9   r7   r  r  5  rE  r9   r  r>   r'   rO   r   rF  c                   Z    e Zd Z e            Z e            Z e            Z j        ZdS r  rH  rI  s   r7   r  z.OldTestFlag.test_multiple_mixin.<locals>.Color>  rJ  r9   r  c                   Z    e Zd Z e            Z e            Z e            Z j        ZdS r  rH  rI  s   r7   r  z.OldTestFlag.test_multiple_mixin.<locals>.ColorH  rJ  r9   )r   r   r]  r;  r  r  r  r5  r   r  r  r0  s      @r7   r[  zOldTestFlag.test_multiple_mixin&  s   
	! 
	! 
	! 
	! 
	! 
	! 
	! 
	!	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+	 	 	 	 	Hd 	 	 	 	!,,,*A...)1---!,,,UZ,777	' 	' 	' 	' 	' 	' 	'Hh 	' 	' 	'
 	!,,,*A...)1---!,,,UZ&111	' 	' 	' 	' 	' 	' 	'Hh 	' 	' 	'
 	!,,,*A...)1---!,,,UZ&11111r9   c                 f    G d dt                     t                      dfdfdt          d          D             }t          j        |          5  	 d d d            n# 1 swxY w Y   |                     d           |                     dt                    d	           d S )
Nc                       e Zd Z e            Z e            Z e            Z e            Z e            Z e            Z	 e            Z
 e            Zd Zd ZdS )3OldTestFlag.test_unique_composite.<locals>.TestFlagc                 
    | |u S r   rG   r]  s     r7   r
  z:OldTestFlag.test_unique_composite.<locals>.TestFlag.__eq__`      u}$r9   c                 *    t          | j                  S r   hashr  r   s    r7   __hash__z<OldTestFlag.test_unique_composite.<locals>.TestFlag.__hash__b  r  r9   NrA   rB   rC   r   rp  rq  r7  r  r  r  r  r  r
  r  rG   r9   r7   TestFlagr  W          $&&C$&&CDFFE466D466D$&&CDFFEDFFE% % %* * * * *r9   r  Fc                      	 t          d          D ] }                      |                      !d S # t          $ r dY d S w xY wN   Trp   addr#  r)  r  failedseens    r7   
cycle_enumz5OldTestFlag.test_unique_composite.<locals>.cycle_enumg  j    s * *AHHXXa[[))))* *      05 AAc                 :    g | ]}t          j                   S )rs   	threadingThreadrT  r   r  s     r7   rV  z5OldTestFlag.test_unique_composite.<locals>.<listcomp>n  7         
333  r9   r  ;at least one thread failed while creating composite membersr  "too many composite members created)r   r  rp   r$   start_threadsr   r   r  r   threadsr  r  r  r  s     @@@@r7   test_unique_compositez!OldTestFlag.test_unique_compositeS  sF   	* 	* 	* 	* 	*t 	* 	* 	* uu	 	 	 	 	 	 	   q   +G44 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	M	O 	O 	O 	c$ii)MNNNNN   A,,A03A0c                      G  fddt                     } G fdd|           G d d          } G d d|          }                     j        d	         d                                |j        d	         d                                |j        d
         d                                |j                            d	d                                          |j                            d
d                      G d d|          } G d d|          } G d d|          }                     |j        d	         d                                |j                            d	d                                          |j        d
         d                                |j                            d	d                                          |j                            d
d                     d S )Nc                   "     e Zd Z fdZ xZS ).OldTestFlag.test_init_subclass.<locals>.MyEnumc                      t                      j        di |                     | j                            dd                     d| _        d S )N_testFr   rG   )r  __init_subclass__r   __dict__get_test1)rD  r  r  r   s     r7   r  z@OldTestFlag.test_init_subclass.<locals>.MyEnum.__init_subclass__|  sQ    ))11D111  !1!1'5!A!ABBB%


r9   rA   rB   rC   r  r  )r  r   s   @r7   r   r  {  s>        & & & & & & & & & &r9   r   c                   "     e Zd Z fdZ xZS )1OldTestFlag.test_init_subclass.<locals>.TheirEnumc                 L     t          |           j        di | d| _        d S )N	TheirEnumrG   )r  r  _test2)rD  r  r  r  s     r7   r  zCOldTestFlag.test_init_subclass.<locals>.TheirEnum.__init_subclass__  s1    7i%%7??$???(


r9   r  )r  r  s   @r7   r  r    s>        ) ) ) ) ) ) ) ) ) )r9   r  c                       e Zd Zd ZdS )1OldTestFlag.test_init_subclass.<locals>.WhoseEnumc                     d S r   rG   rD  r  s     r7   r  zCOldTestFlag.test_init_subclass.<locals>.WhoseEnum.__init_subclass__  rF  r9   NrA   rB   rC   r  rG   r9   r7   	WhoseEnumr    r  r9   r  c                       e Zd ZdZdS ).OldTestFlag.test_init_subclass.<locals>.NoEnumr>   NrA   rB   rC   r   rG   r9   r7   NoEnumr            CCCr9   r  r  r  Fc                       e Zd Zd ZdS )/OldTestFlag.test_init_subclass.<locals>.OurEnumc                     d| _         d S )NOurEnum)r  r  s     r7   r  zAOldTestFlag.test_init_subclass.<locals>.OurEnum.__init_subclass__  s    &


r9   Nr  rG   r9   r7   r  r    rj  r9   r  c                       e Zd Zd ZdS )1OldTestFlag.test_init_subclass.<locals>.WhereEnumc                     d S r   rG   r  s     r7   r  zCOldTestFlag.test_init_subclass.<locals>.WhereEnum.__init_subclass__  rF  r9   Nr  rG   r9   r7   	WhereEnumr    r  r9   r  c                       e Zd ZdZdS )1OldTestFlag.test_init_subclass.<locals>.NeverEnumr>   Nr  rG   r9   r7   	NeverEnumr    r  r9   r  )r   r   r  r   r  )r   r   r  r  r  r  r  r  s   `      @r7   test_init_subclasszOldTestFlag.test_init_subclassz  s   	& 	& 	& 	& 	& 	& 	&T 	& 	& 	&	) 	) 	) 	) 	) 	) 	) 	) 	) 	)	 	 	 	 		 	 	 		 	 	 	 	Y 	 	 	+H5x@@@+H5x@@@+H5{CCC,,Xu==>>>,,Xu==>>>	' 	' 	' 	' 	'f 	' 	' 	'	 	 	 	 	 	 	 		 	 	 	 		 	 	 	)(3X>>>+//%@@AAA+H5yAAA+//%@@AAA+//%@@AAAAAr9   N)'rA   rB   rC   r   r   r  r  r  r  r  r  r  r.  r2  r:  r=  r@  rC  rE  rH  r  r   r!  r{  r  rP  rS  rX  r`  rd  rk  rq  r{  r[  r$   reap_threadsrequires_working_threadingr  r  rG   r9   r7   r  r    s           t       t                  
2 
2 
22 2 2$2 2 25 5 5;B ;B ;B|B B B) ) )) ) )) ) )) ) )) ) ))Q )Q )QV X_g%@  	 $ X_W$D # #	 #" " "(R R RC C C7 7 7"+ + +	/ 	/ 	/  P P P+2 +2 +2Z "0022#O #O 32 #"#OJ"B "B "B "B "Br9   r  c                      e Zd ZdZ G d de          Z G d de          Z G d de          Z G d d	e          Zd
 Z	d Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z ej        edk    d          d             Z ej        edk     d          d              Zd! Z d" Z!d# Z"d$ Z#d% Z$d& Z%e&j'         e&j(                    d'                         Z)d(S ))OldTestIntFlagzTests of the IntFlags.c                       e Zd ZdZdZdZdS )OldTestIntFlag.PermrO   r'   r>   Nr  rG   r9   r7   r  r    s        r9   r  c                   "    e Zd ZdZdZdZdZdZdS )OldTestIntFlag.Openr   r>   r'   r?   r  Nr  rG   r9   r7   r  r    r  r9   r  c                   L    e Zd ZdZdZdZdZdZeez  Zeez  ez  Z	eez  ez  Z
dS )OldTestIntFlag.Colorr   r>   r'   rO   Nr  rG   r9   r7   r  r    r  r9   r  c                       e Zd ZdZdZdZdS )OldTestIntFlag.Skipr>   r'   r  N)rA   rB   rC   r3  SECONDEIGHTHrG   r9   r7   Skipr    s        r9   r  c                    | j         }|                     |j        t          u            | j        }|D ]@}|                     t          ||                     |                     ||j                   A|                     t          |j        |j	        z  |                     |                     |j        |j	        z  d           |D ]@}|                     t          ||                     |                     ||j                   A|                     t          |j
        |j        z  |                     |                     |j
        |j        z  d           d S Nr?   )r  r   r4  r  r  r  r   r;  r  rk  r  r  )r   r  r  r*  s       r7   	test_typezOldTestIntFlag.test_type  sB   y*c1222y 	) 	)AOOJq$//000Q((((
46DF?D99:::$&!,,, 	) 	)AOOJq$//000Q((((
47TW#4d;;<<<47*A.....r9   c                 ^   |                      t          t          d                    dt          z             |                      t          t          d                    ddt          iz             |                      t          t          d                    ddt          iz             d S )Nr   z%s.OFF_KrE  z%(m)s.LOW_BEAM_K|%(m)s.FOG_K|8rU  r  z%(m)s.HeadlightsK(8))r   r]  r   SHORT_MODULEr   s    r7   test_global_repr_keepz$OldTestIntFlag.test_global_repr_keep  s    [^^$$\)	 	 	 	[!344550C3FF	 	 	 	[&&''&#|)<<	 	 	 	 	r9   c                 ^   |                      t          t          d                    dt          z             |                      t          t          d                    ddt          iz             |                      t          t          d                    ddt          iz             d S )Nr   z%s.OFF_CrE  z%(m)s.LOW_BEAM_C|%(m)s.FOG_CrU  r  z%(m)s.OFF_C)r   r]  r   r  r   s    r7   test_global_repr_conform1z(OldTestIntFlag.test_global_repr_conform1  s    [^^$$\)	 	 	 	[!34455.#|1DD	 	 	 	[&&''l 33	 	 	 	 	r9   c                     |                      t          t          j        t          j        z            d           |                      t          t          d                    d           d S )Nz	NoName(0)r   )r   r5  r   r   r   r   s    r7   test_global_enum_strz#OldTestIntFlag.test_global_enum_str  sQ    VZ&*455{CCCVAYY55555r9   c                    | j         }|                     t          |j        d          d           |                     t          |j        |j        z  d          d            G d dt
                    }|                     t          |j        d          d           |                     t          |j        |j        z  d          d           d S )Nr  4rL  c                        e Zd ZdZdZdZd ZdS )+OldTestIntFlag.test_format.<locals>.NewPermrO   r'   r>   c                     | j         S r   r  r   s    r7   r  z3OldTestIntFlag.test_format.<locals>.NewPerm.__str__  s
    {"r9   N)rA   rB   rC   r  r  rk  r  rG   r9   r7   NewPermr    s2        AAA# # # # #r9   r  r  zR|X)r  r   r:  r  rk  r   )r   r  r  s      r7   r.  zOldTestIntFlag.test_format  s    y++S11144c:::	# 	# 	# 	# 	#g 	# 	# 	# 		2..444	DF 2B77?????r9   c                    | j         }|D ]k}|D ]y}|                     ||z  |j        |j        z             |                     ||z  j        |j        |j        z             |                     t	          ||z            |           zt          d          D ]}|                     ||z  |j        |z             |                     ||z  j        |j        |z             |                     t	          ||z            |           |                     ||z  ||j        z             |                     ||z  j        ||j        z             |                     t	          ||z            |           ݐm|D ]M}|                     ||z  |           |                     |dz  |           |                     d|z  |           N| j        }|                     |j        |j        z  |j                   d S Nr  r   	r  r   r;  r_  r  rp   r  r  r  r  s        r7   r  zOldTestIntFlag.test_or  s   y 	1 	1A 1 1  Q!'(9:::  !a%!'0ABBBd1q5kk400001XX 1 1  Q!444  !a%!<<<d1q5kk4000  QAG444  !a%AG<<<d1q5kk400001  	$ 	$AMM!a%###MM!a%###MM!a%####ydg'11111r9   c           
         | j         }|j        |j        z  }|j        |j        z  }|j        |j        z  }|j        |j        z  |j        z  }t	          |          |||| |d          gz   }|D ]}|D ]}|                     ||z  |j        |j        z  d|d|           |                     ||z  j        |j        |j        z  d|d|           |                     t          ||z            |d|d|           t          d          D ]}|                     ||z  |j        |z             |                     ||z  j        |j        |z             |                     t          ||z            |           |                     ||z  ||j        z             |                     ||z  j        ||j        z             |                     t          ||z            |           ݐ|D ]M}|                     ||z  |           |                     |dz  |           |                     d|z  |           N| j
        }	|                     |	j        |	j        z  |	j                   d S )Nr   zi is z, j is r  r   )r  r  r  rk  r   r   r;  r_  r  rp   r  r  r  r   s
             r7   r  zOldTestIntFlag.test_and  s   yVdf_Vdf_Vdf_ftvo&dr2r3Q88 	1 	1A N N  Q!'(9(9QRQRQRTUTU;VWWW  !a%!'0A0AYZYZYZ\]\]C^___d1q5kk44qqq!!1LMMMM1XX 1 1  Q!444  !a%!<<<d1q5kk4000  QAG444  !a%AG<<<d1q5kk400001  	$ 	$AMM!a%###MM!a%###MM!a%####ydg'11111r9   c                    | j         }|D ]k}|D ]y}|                     ||z  |j        |j        z             |                     ||z  j        |j        |j        z             |                     t	          ||z            |           zt          d          D ]}|                     ||z  |j        |z             |                     ||z  j        |j        |z             |                     t	          ||z            |           |                     ||z  ||j        z             |                     ||z  j        ||j        z             |                     t	          ||z            |           ݐm|D ]4}|                     |dz  |           |                     d|z  |           5| j        }|                     |j        |j        z  |j                   |                     |j        |j        z  |j                   d S r  r  r  s        r7   r  zOldTestIntFlag.test_xor)  s   y 	1 	1A 1 1  Q!'(9:::  !a%!'0ABBBd1q5kk400001XX 1 1  Q!444  !a%!<<<d1q5kk4000  QAG444  !a%AG<<<d1q5kk400001  	$ 	$AMM!a%###MM!a%####ydg'111dg'11111r9   c                    | j         }|j        |j        z  }|j        |j        z  }|j        |j        z  }|j        |j        z  |j        z  }t	          |          |||| |d          gz   }|D ][}|                     | | j                   |                     t          |           |           |                     |  |           \|D ]}|                     |  |           | j	        }|                     |j
        |j
         z  |j                   |                     |j
        |j        z  |j
         z  |j                   d S r  )r  r  r  rk  r   r   r;  r_  r  r  r  r  r  )	r   r  r  r  r  r  r3  r)  r  s	            r7   test_invertzOldTestIntFlag.test_invert>  sJ   yVdf_Vdf_Vdf_ftvo&dr2r3Q88 	% 	%AaR1",,,MM$r((D)))qbS!$$$$ 	" 	"AMMA2#q!!!!ydg($'222twtw47(2DG<<<<<r9   c                 ~   |                      t          j        j        t                      G d dt          t                    } G d dt          t
                    }|                      |j        t
                      G d dt          t                    }|                      |j        t                      G d d	t          t                    }|                      |j        t                      G d
 dt          t                    }|                     t          d|d           |                       |d          |j
        |j        z             |                       |d          |j                   |                      |d          d           |                     t           |d                    t          u            |                     t!          |          |j        g           |                       |d          |j                   |                       |d          |j                   |j        |j        z  }|                     |d           |                     ||           |                     t-          |          d           |                     t/          |          d           d S )Nc                       e Zd ZdZdS ),OldTestIntFlag.test_boundary.<locals>.Simpler>   N)rA   rB   rC   SINGLErG   r9   r7   Simpler	  Q  r\  r9   r	  r   c                       e Zd ZdZdZdZdS )*OldTestIntFlag.test_boundary.<locals>.Ironr>   r'   r  Nr  rG   r9   r7   r  r
	  T  r9  r9   r  c                       e Zd ZdZdZdZdS )+OldTestIntFlag.test_boundary.<locals>.Waterr>   r'   r  Nr  rG   r9   r7   r  r	  Z  r9  r9   r  c                       e Zd ZdZdZdZdS )+OldTestIntFlag.test_boundary.<locals>.Spacer>   r'   r  Nr  rG   r9   r7   r  r	  `  r9  r9   r  c                       e Zd ZdZdZdZdS )-OldTestIntFlag.test_boundary.<locals>.Bizarrer?   rO   r  Nr  rG   r9   r7   r  r	  f  r  r9   r  zinvalid value 5r.  r   r  r?   r  z <Simple.SINGLE|<Iron.TWO: 2>: 3>r-  )r_  r-   r   r  r   r   r   r   r   r   r   r   r   r   r  r  r   r  r4  r  r	  r/  r]  r5  )r   r	  r  r  r  r  simples          r7   r.  zOldTestIntFlag.test_boundaryO  s   dl-t444	 	 	 	 	Wt 	 	 	 		 	 	 	 	7V 	 	 	 	 	dov...	 	 	 	 	Gg 	 	 	 	 	e&000	 	 	 	 	Ge 	 	 	 	 	e&...	 	 	 	 	g 	 	 	 	
 	z+<dAFFFeeAhh	%) 3444eeBii+++q1%%%UU1XX#-...g444ggajj'),,,ggajj'),,,)###ff---f'IJJJVc*****r9   c                     | j         }| j        }|                     t          |          |j        |j        |j        g           |                     t          |          |j        |j        |j	        g           d S r   r0  r1  s      r7   r2  zOldTestIntFlag.test_iter}  r3  r9   c                    t          dd          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     ||j        |j        |j        g           t          d                                          D ]\  }}d|z  } ||          }|                     |j	        |           |                     t          |j	                  t                     |                     ||           |                     |j        |           |                     ||           |                     t          |          |           d S r5  r   r   r   r  r  r  rk  r  r  r;  r  r  r   rt  r_  r8  s          r7   r:  z/OldTestIntFlag.test_programatic_function_string  sW   vw''4jjS3t99---TAt,,,tvtvtv6777gmmoo.. 	) 	)DAq1AQAQWa(((T!']]C000Q"""QVQ'''MM!T"""MM$q''4((((	) 	)r9   c                    t          ddd          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     ||j        |j        |j        g           t          d                                          D ]\  }}d|z  } ||          }|                     |j	        |           |                     t          |j	                  t                     |                     ||           |                     |j        |           |                     ||           |                     t          |          |           d S r<  r	  r8  s          r7   r=  z:OldTestIntFlag.test_programatic_function_string_with_start  s\   vwa0004jjS3t99---TAt,,,tvtvtv6777gmmoo.. 	) 	)DAq1AQAQWa(((T!']]C000Q"""QVQ'''MM!T"""MM$q''4((((	) 	)r9   c                    t          dg d          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     ||j        |j        |j        g           t          d                                          D ]\  }}d|z  } ||          }|                     |j	        |           |                     t          |j	                  t                     |                     ||           |                     |j        |           |                     ||           |                     t          |          |           d S r?  r	  r8  s          r7   r@  z4OldTestIntFlag.test_programatic_function_string_list  s[   v//4jjS3t99---TAt,,,tvtvtv6777gmmoo.. 	) 	)DAq1AQAQWa(((T!']]C000Q"""QVQ'''MM!T"""MM$q''4((((	) 	)r9   c                    t          dd          }t          |          }|                     t          |          t          |                     |                     t          |          d|           |                     ||j        |j        |j        g           t          d                                          D ]\  }}dd|z  dz   z  } ||          }|                     |j	        |           |                     t          |j	                  t                     |                     ||           |                     |j        |           |                     ||           |                     t          |          |           d S rB  r	  r8  s          r7   rC  z1OldTestIntFlag.test_programatic_function_iterable  s`   v>??4jjS3t99---TAt,,,tvtvtv6777gmmoo.. 	) 	)DAqAaCE
AQAQWa(((T!']]C000Q"""QVQ'''MM!T"""MM$q''4((((	) 	)r9   c                 4   t          dt          d                    }t          |          }|                     t	          |          t	          |                     |                     t	          |          d|           |                     ||j        |j        |j        g           t          d	                                          D ]\  }}dd|z  dz   z  } ||          }|                     |j
        |           |                     t          |j
                  t                     |                     ||           |                     |j        |           |                     ||           |                     t          |          |           d S rB  )r   r   r   r   r  r  r  rk  r  r  r;  r  r  r   rt  r_  r8  s          r7   rE  z2OldTestIntFlag.test_programatic_function_from_dict  sh   v{+JKKLL4jjS3t99---TAt,,,tvtvtv6777gmmoo.. 	) 	)DAqAaCE
AQAQWa(((T!']]C000Q"""QVQ'''MM!T"""MM$q''4((((	) 	)r9   c                    t          j        dg           }t          |          }|                     t	          |          t	          |                     |                     t	          |          d|           t          j        dg           }t          |          }|                     t	          |          t	          |                     |                     t	          |          d|           d S )Nr  r   Thingr-   r   r   r   r  r   r   r  r  r	  s       r7   )test_programatic_function_from_empty_listz8OldTestIntFlag.test_programatic_function_from_empty_list  s    |FB''4jjS3t99---TAt,,,	'2&&5kkS3u::...UQ.....r9   c                    t          j        dd          }t          |          }|                     t	          |          t	          |                     |                     t	          |          d|           t          j        dd          }|                     t	          |          t	          |                     |                     t	          |          d|           d S )Nr  rG   r   r	  r	  r	  s       r7   *test_programatic_function_from_empty_tuplez9OldTestIntFlag.test_programatic_function_from_empty_tuple  s    |FB''4jjS3t99---TAt,,,	'2&&S3u::...UQ.....r9   ri  rk  c                 D   | j         }| j        }|                     |j        |v            |                     |j        |v            |                     |j        |v            |                     |j        |v            |                     t                    5  |                     t                    5  d|v  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t                    5  |                     t                    5  d|v  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t                    5  |                     t                    5  d|v  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t                    5  |                     t                    5  d|v  d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S Nr  r  r'   )
r  r  r   r  r  r   rL  ru  rv  rw  rK  s      r7   r{  zOldTestIntFlag.test_contains_er  s    
 y
u,---4(((,---E)***y)) 	! 	!!!"455 ! !5  ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! y)) 	 	!!"455                	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	!!"455  U

              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	!!"455  T		              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   C4C9CC			CC		CC #C ED-!E-D1	1E4D1	5EEE)F,F	F,F	F,F	F,,F03F0H,G=1H=H	HH	HHHrL  c                    | j         }| j        }|                     |j        |v            |                     |j        |v            |                     |j        |v            |                     |j        |v            |                     d|v            |                     d|v            |                     d|v            |                     d|v            d S r!	  )r  r  r   r  r  r   rK  s      r7   r  zOldTestIntFlag.test_contains_tf   s    
 y
u,---4(((t+,,,5()))E)***&&&U
###T	"""""r9   c                 
   | j         }|\  }}}||z  }||z  }||z  }||z  |z  }|                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     ||v            |                     t                    5  |                     d|v            d d d            d S # 1 swxY w Y   d S )Nr  )r  r   r   rL  ru  rO  s	            r7   rP  z#OldTestIntFlag.test_member_contains  s   y1aUUU!eaiR   R   S!!!R   R   S!!!R   R   S!!!b!!!b!!!b!!!y)) 	+ 	+Vr\***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   E88E<?E<c                    | j         }|                     t          |j                  g            |                     t          |j                  |j        |j        g           |                     t          |j                  |j        g           |                     t          |j                  |j        g           |                     t          |j                  |j        |j        |j        g           d S r   rR  r   s     r7   rS  zOldTestIntFlag.test_member_iter&  s    
ek**B///el++ei-DEEEej))EJ<888ek**U[M:::ek**UYUZ,PQQQQQr9   c                    |                      | j                            | j        j                  d           |                      | j                            | j        j                  d           |                      | j                            | j        j                  d           |                      | j                            | j        j                  d           d S rU  rV  r   s    r7   rX  z!OldTestIntFlag.test_member_length.  rY  r9   c                    | j         }|                      |d          j        d           |                     |d         j        d           |                      |d          j        d           |                     |d         j        d           |                     |j        |j                   | j        }|                     |d         |j                   d S rb  rc  r1  s      r7   rd  zOldTestIntFlag.test_aliases4  re  r9   c                     | j         }|D ]}|                     |           | j        }|D ]7}|                     t	          |j                  t	          |                     8d S r   r  r	  s       r7   r  zOldTestIntFlag.test_bool>  r
  r9   c                     G d d          } G d d           G d d|t                     }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d	           |                     |j        j        d
           |                     t          |j                  d            G fdd|t                     }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d	           |                     |j        j        d
           |                     t          |j                  d            G fdd|t                     }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d	           |                     |j        j        d
           |                     t          |j                  d           d S )Nc                   $    e Zd Zed             ZdS )4OldTestIntFlag.test_multiple_mixin.<locals>.AllMixinc                 n    t          |           }d }|r|d         }|dd          D ]}||z  }|| _        |S r  r  r  s       r7   r  z8OldTestIntFlag.test_multiple_mixin.<locals>.AllMixin.ALLI  r  r9   Nr  rG   r9   r7   r  r*	  H  r  r9   r  c                       e Zd Zd ZdS )4OldTestIntFlag.test_multiple_mixin.<locals>.StrMixinc                 4    | j                                         S r   r,  r   s    r7   r  z<OldTestIntFlag.test_multiple_mixin.<locals>.StrMixin.__str__T  r.  r9   Nr/  rG   r9   r7   r0  r-	  S  r1  r9   r0  c                   J    e Zd Z e            Z e            Z e            ZdS 1OldTestIntFlag.test_multiple_mixin.<locals>.ColorNrD  rG   r9   r7   r  r1	  V  rE  r9   r  r>   r'   rO   r   r  c                   Z    e Zd Z e            Z e            Z e            Z j        ZdS r0	  rH  rI  s   r7   r  z1OldTestIntFlag.test_multiple_mixin.<locals>.Color_  rJ  r9   r  c                   Z    e Zd Z e            Z e            Z e            Z j        ZdS r0	  rH  rI  s   r7   r  z1OldTestIntFlag.test_multiple_mixin.<locals>.Colori  rJ  r9   )r   r   r]  r;  r  r  r  r5  r  s      @r7   r[  z"OldTestIntFlag.test_multiple_mixinG  s   
	! 
	! 
	! 
	! 
	! 
	! 
	! 
	!	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+	 	 	 	 	Hg 	 	 	 	!,,,*A...)1---!,,,UZ#...	' 	' 	' 	' 	' 	' 	'Hh 	' 	' 	'
 	!,,,*A...)1---!,,,UZ&111	' 	' 	' 	' 	' 	' 	'Hh 	' 	' 	'
 	!,,,*A...)1---!,,,UZ&11111r9   c                 f    G d dt                     t                      dfdfdt          d          D             }t          j        |          5  	 d d d            n# 1 swxY w Y   |                     d           |                     dt                    d	           d S )
Nc                       e Zd Z e            Z e            Z e            Z e            Z e            Z e            Z	 e            Z
 e            Zd Zd ZdS )6OldTestIntFlag.test_unique_composite.<locals>.TestFlagc                 
    | |u S r   rG   r]  s     r7   r
  z=OldTestIntFlag.test_unique_composite.<locals>.TestFlag.__eq__  r  r9   c                 *    t          | j                  S r   r  r   s    r7   r  z?OldTestIntFlag.test_unique_composite.<locals>.TestFlag.__hash__  r  r9   Nr  rG   r9   r7   r  r6	  x  r  r9   r  Fc                      	 t          d          D ] }                      |                      !d S # t          $ r dY d S w xY wr  r  r  s    r7   r  z8OldTestIntFlag.test_unique_composite.<locals>.cycle_enum  r  r  c                 :    g | ]}t          j                   S r  r  r  s     r7   rV  z8OldTestIntFlag.test_unique_composite.<locals>.<listcomp>  r  r9   r  r  r  r  )r   r  rp   r$   r  r   r   r  r  s     @@@@r7   r  z$OldTestIntFlag.test_unique_compositet  sF   	* 	* 	* 	* 	*w 	* 	* 	* uu	 	 	 	 	 	 	   q   +G44 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	M	O 	O 	O 	c$ii)MNNNNNr  N)*rA   rB   rC   r   r   r  r  r  r  r  r  r  r  r.  r  r  r  r	  r.  r2  r:  r=  r@  rC  rE  r	  r	  r  r   r!  r{  r  rP  rS  rX  rd  r  r[  r$   r  r  r  rG   r9   r7   r  r    s             w   
    w                      w   
/ / /    6 6 6@ @ @2 2 2*2 2 242 2 2*= = =",+ ,+ ,+\B B B) ) ) ) ) ) ) ) ) ) ) ) ) ) )"/ / // / / X_g%@  	 ( X_W$D 
# 
#	 
#+ + +,R R RC C C+ + +5 5 5+2 +2 +2Z "0022#O #O 32 #"#O #O #Or9   r  c                        e Zd Zd Zd Zd ZdS )TestEmptyAndNonLatinStringsc                     |                      t                    5  t          dd          }d d d            d S # 1 swxY w Y   d S )N	empty_abc)r  re  r  )rL  r   r   )r   r>	  s     r7   test_empty_stringz-TestEmptyAndNonLatinStrings.test_empty_string  s    z** 	: 	:[.99I	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   9= =c                 |    t          dd          }t          |d          }|                     |j        d           d S )N	greek_abc)   αre  r  rB	  r>   r   r7  r   r;  )r   rA	  r  s      r7   test_non_latin_character_stringz;TestEmptyAndNonLatinStrings.test_non_latin_character_string  s?    &:;;	y(++Q'''''r9   c                 |    t          dd          }t          |d          }|                     |j        d           d S )N
hebrew_123)   אr,  r-  rG	  r>   rC	  )r   rF	  r  s      r7   test_non_latin_number_stringz8TestEmptyAndNonLatinStrings.test_non_latin_number_string  s?    ,(<==
z8,,Q'''''r9   N)rA   rB   rC   r?	  rD	  rH	  rG   r9   r7   r<	  r<	    sA        : : :( ( (
( ( ( ( (r9   r<	  c                        e Zd Zd Zd Zd ZdS )
TestUniquec                     t            G d dt                                }t            G d dt                                }d S )Nc                       e Zd ZdZdZdZdS )+TestUnique.test_unique_clean.<locals>.Cleanr>   r=        @NrA   rB   rC   rp  rq  r>  rG   r9   r7   CleanrM	            CCDDDr9   rP	  c                       e Zd ZdZdZdZdS )-TestUnique.test_unique_clean.<locals>.Cleanerr>   r'   r?   NrA   rB   rC   singledoubletriplerG   r9   r7   CleanerrS	            FFFFFr9   rX	  )r   r   r   r   rP	  rX	  s      r7   test_unique_cleanzTestUnique.test_unique_clean  sv    		 	 	 	 	D 	 	 
	
 
	 	 	 	 	g 	 	 
	 	 	r9   c                 T   |                      t          d          5  t           G d dt                                }d d d            n# 1 swxY w Y   |                      t          d          5  t           G d dt                                }d d d            d S # 1 swxY w Y   d S )N	tres.*onec                       e Zd ZdZdZdZdS )+TestUnique.test_unique_dirty.<locals>.Dirtyr>   r=  NrO	  rG   r9   r7   Dirtyr_	            r9   r`	  double.*single.*turkey.*triplec                       e Zd ZdZdZdZdZdS )-TestUnique.test_unique_dirty.<locals>.Dirtierr>   r?   NrA   rB   rC   rU	  rV	  rW	  turkeyrG   r9   r7   Dirtierrd	    "        r9   rg	  )r   r   r   r   r   r   r`	  rg	  s      r7   test_unique_dirtyzTestUnique.test_unique_dirty  sY   ##J<< 	 	       V	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##0  		 		     '   V		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		s#   !A		AA/!BB!$B!c                     t          t                     G d dt                                }t          t                     G d dt                                }d S )Nc                       e Zd ZdZdZdZdS )/TestUnique.test_unique_with_name.<locals>.Sillyr>   r=  r?   NrA   rB   rC   rp  rq  r   rG   r9   r7   Sillyrm	            CCDDDr9   ro	  c                       e Zd ZdZdZdZdZdS )1TestUnique.test_unique_with_name.<locals>.Sillierr>   r'   r?   rO   NrA   rB   rC   rU	  r   rW	  r;  rG   r9   r7   Sillierrr	    "        FDFEEEr9   rt	  r   r   r   r   r   ro	  rt	  s      r7   test_unique_with_namez TestUnique.test_unique_with_name      		 	 	 	 	D 	 	 
	
 
	 	 	 	 	g 	 	 
	 	 	r9   N)rA   rB   rC   r[	  rj	  rx	  rG   r9   r7   rJ	  rJ	    sA            $    r9   rJ	  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )
TestVerifyc                    t          t                     G d dt                                }t          t                     G d dt                                }|                     t          d          5  t          t                     G d dt                                }d d d            n# 1 swxY w Y   |                     t          d          5  t          t                     G d	 d
t
                                }d d d            n# 1 swxY w Y   |                     t          d          5  t          t                     G d dt
                                }d d d            d S # 1 swxY w Y   d S )Nc                   ^    e Zd Z e            Z e            Z e            Z e            ZdS )(TestVerify.test_continuous.<locals>.AutoN)rA   rB   rC   r   r3  r  THIRDFORTHrG   r9   r7   Autor~	    s:        DFFETVVFDFFEDFFEEEr9   r	  c                       e Zd ZdZdZdZdZdS )*TestVerify.test_continuous.<locals>.Manualr?   rO   r.  r  NrA   rB   rC   r3  r  r	  r	  rG   r9   r7   Manualr	    s"        EFEEEEr9   r	  z<invalid enum .Missing.: missing values 5, 6, 7, 8, 9, 10, 12c                       e Zd ZdZdZdZdZdS )+TestVerify.test_continuous.<locals>.Missingr?   rO   r  rE  Nr	  rG   r9   r7   Missingr	    "        r9   r	  z,invalid flag .Incomplete.: missing values 32c                       e Zd ZdZdZdZdZdS ).TestVerify.test_continuous.<locals>.IncompleterO   r  r(  @   Nr	  rG   r9   r7   
Incompleter	    r	  r9   r	  z1invalid flag .StillIncomplete.: missing values 16c                       e Zd ZdZdZdZdZdS )3TestVerify.test_continuous.<locals>.StillIncompleterO   r  r  r  Nr	  rG   r9   r7   StillIncompleter	    r	  r9   r	  )r   r   r   r   r   r   )r   r	  r	  r	  r	  r	  s         r7   test_continuouszTestVerify.test_continuous  s   	
			 	 	 	 	4 	 	 
		 

			 	 	 	 	T 	 	 
		 ##J0noo 	 	J    $    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##J0^__ 	 	J    T    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##J0cdd 	 	J    $    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   6.B00B47B4.DDD6.E11E58E5c                     G d dt                     }|                     t          |          |j        g           |                     |j        j        d           |                     |j        j        d           |                     |j        j        d           |                     t          d          5  t          t                     G d dt                                 }d d d            n# 1 swxY w Y   |                     t          j        d          dd	g            G d
 dt                    }|                     t          |          |j        g           |                     |j        j        d           |                     |j        j        d           |                     |j        j        d           |                     t          d          5  t          t                     G d dt                                }d d d            n# 1 swxY w Y   |                     t          j        d	          d	g           d S )Nc                       e Zd ZdZdZdZdS *TestVerify.test_composite.<locals>.Bizarrer?   rO   r  Nr  rG   r9   r7   r  r	    r  r9   r  r?   rO   r  zyinvalid Flag 'Bizarre': aliases b and d are missing combined values of 0x3 .use enum.show_flag_values.value. for details.c                       e Zd ZdZdZdZdS r	  r  rG   r9   r7   r  z*TestVerify.test_composite.<locals>.Bizarre  s        r9   r>   r'   c                       e Zd ZdZdZdZdS r	  r  rG   r9   r7   r  z*TestVerify.test_composite.<locals>.Bizarre  r  r9   zcinvalid Flag 'Bizarre': alias d is missing value 0x2 .use enum.show_flag_values.value. for details.c                       e Zd ZdZdZdS )r	  rO   r  N)rA   rB   rC   r  r  rG   r9   r7   r  z*TestVerify.test_composite.<locals>.Bizarre&  s        r9   )r   r   r   r  r4  r;  r  r   r   r   r   r-   show_flag_valuesr   )r   r  s     r7   test_compositezTestVerify.test_composite  s   	 	 	 	 	d 	 	 	 	g444!,,,!,,,!,,,## L  	 	 K      $   ! 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	.q11Aq6:::	 	 	 	 	g 	 	 	 	g444!,,,!,,,!,,,##u  	 	 K      '   ! 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	.q11A377777s$   8.C22C69C6.HHHc                     t          t                     G d dt                                }t          t                     G d dt                                }d S )Nc                       e Zd ZdZdZdZdS )+TestVerify.test_unique_clean.<locals>.Cleanr>   r=  rN	  NrO	  rG   r9   r7   rP	  r	  -  rQ	  r9   rP	  c                       e Zd ZdZdZdZdS )-TestVerify.test_unique_clean.<locals>.Cleanerr>   r'   r?   NrT	  rG   r9   r7   rX	  r	  3  rY	  r9   rX	  rv	  rZ	  s      r7   r[	  zTestVerify.test_unique_clean,  s    		 	 	 	 	D 	 	 
	
 
	 	 	 	 	g 	 	 
	 	 	r9   c                    |                      t          d          5  t          t                     G d dt                                }d d d            n# 1 swxY w Y   |                      t          d          5  t          t                     G d dt
                                }d d d            d S # 1 swxY w Y   d S )Nr]	  c                       e Zd ZdZdZdZdS )+TestVerify.test_unique_dirty.<locals>.Dirtyr>   r=  NrO	  rG   r9   r7   r`	  r	  ;  ra	  r9   r`	  rb	  c                       e Zd ZdZdZdZdZdS )-TestVerify.test_unique_dirty.<locals>.Dirtierr>   r?   Nre	  rG   r9   r7   rg	  r	  D  rh	  r9   rg	  )r   r   r   r   r   r   ri	  s      r7   rj	  zTestVerify.test_unique_dirty9  se   ##J<< 	 	F^^       ^	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##0  		 		 F^^    '   ^		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		s#   .AAA<.B77B;>B;c                     t          t                     G d dt                                }t          t                     G d dt                                }d S )Nc                       e Zd ZdZdZdZdS )/TestVerify.test_unique_with_name.<locals>.Sillyr>   r=  r?   Nrn	  rG   r9   r7   ro	  r	  L  rp	  r9   ro	  c                       e Zd ZdZdZdZdZdS )1TestVerify.test_unique_with_name.<locals>.Sillierr>   r'   r?   rO   Nrs	  rG   r9   r7   rt	  r	  R  ru	  r9   rt	  rv	  rw	  s      r7   rx	  z TestVerify.test_unique_with_nameK  ry	  r9   c                 `    t          t                     G d dt                                }d S )Nc                       e Zd ZdZdZdZdZdS )-TestVerify.test_negative_alias.<locals>.Colorr>   r'   rO   r;   N)rA   rB   rC   r]  r  r  r  rG   r9   r7   r  r	  Z  s"        CEDEEEr9   r  )r   r   r   r   s     r7   test_negative_aliaszTestVerify.test_negative_aliasY  sI    				 	 	 	 	D 	 	 
		 	 	r9   N)	rA   rB   rC   r	  r	  r[	  rj	  rx	  r	  rG   r9   r7   r{	  r{	    sp        % % %P$8 $8 $8L    $      r9   r{	  c                      e Zd ZdZdZdZdZdZd Zd Z	d Z
d	 Zd
 Zd Z ej        edk    d          d             Z ej        edk    d          d             Z ej        edk     d          d             Z ej        edk     d          d             Zd Zd Z ej        edk     d          d             Zd Zd ZdS )TestInternalsr{   r   r   r   r   c                 
   | j         | j        z   D ]-}|                     t          j        |          d|z             .| j        | j        z   | j        z   D ]-}|                     t          j        |          d|z             .d S )Nr   r   r   r   s     r7   r   zTestInternals.test_sunderk  s    %(EE 	V 	VDOODOD113MPT3TUUUU%(::T=NN 	S 	SDT_T224JT4QRRRR	S 	Sr9   c                 
   | j         D ]-}|                     t          j        |          d|z             .| j        | j        z   | j        z   | j        z   D ]-}|                     t          j        |          d|z             .d S )Nr   r   r   r   s     r7   r   zTestInternals.test_dunderq  s    % 	V 	VDOODOD113MPT3TUUUU%(::T=ZZ]a]nn 	S 	SDT_T224JT4QRRRR	S 	Sr9   c                    | j         | j        z   D ]+}|                     t          j        d|          d           ,| j        | j        z   | j        z   D ]+}|                     t          j        d|          d           ,d S r   r   r   s     r7   r   zTestInternals.test_is_privatew  r   r9   c                 V    G d dt                     }|                     t          |          |j        |j        |j        g           |                     |j        j        d           |                     |j        j        d           |                     |j        j        d           d S )Nc                   J    e Zd Z e            Z e            Z e            ZdS )-TestInternals.test_auto_number.<locals>.ColorNri  rG   r9   r7   r  r	  ~  rj  r9   r  r>   r'   r?   r   r   r   r  r  r  r;  r   s     r7   rk  zTestInternals.test_auto_number}  rl  r9   c                 V    G d dt                     }|                     t          |          |j        |j        |j        g           |                     |j        j        d           |                     |j        j        d           |                     |j        j        d           d S )Nc                   P    e Zd Zd Z e            Z e            Z e            ZdS )+TestInternals.test_auto_name.<locals>.Colorc                     | S r   rG   r   r  r  lasts       r7   r  zATestInternals.test_auto_name.<locals>.Color._generate_next_value_      r9   N)rA   rB   rC   r  r   r  r  r  rG   r9   r7   r  r	    s>          $&&C466DDFFEEEr9   r  r  r  r  r	  r   s     r7   test_auto_namezTestInternals.test_auto_name  s    	 	 	 	 	D 	 	 	 	euy%*ek&JKKK%000)6222*G44444r9   c                 r    G d dt                     } G d d|          }|                     t          |          |j        |j        |j        g           |                     |j        j        d           |                     |j        j        d           |                     |j        j        d           d S )Nc                       e Zd Zd ZdS ):TestInternals.test_auto_name_inherit.<locals>.AutoNameEnumc                     | S r   rG   r	  s       r7   r  zPTestInternals.test_auto_name_inherit.<locals>.AutoNameEnum._generate_next_value_  r	  r9   Nr  rG   r9   r7   AutoNameEnumr	    s#            r9   r	  c                   J    e Zd Z e            Z e            Z e            ZdS )3TestInternals.test_auto_name_inherit.<locals>.ColorNri  rG   r9   r7   r  r	    rj  r9   r  r  r  r  r	  )r   r	  r  s      r7   test_auto_name_inheritz$TestInternals.test_auto_name_inherit  s    	 	 	 	 	4 	 	 		 	 	 	 	L 	 	 	
 	euy%*ek&JKKK%000)6222*G44444r9   rD  z+mixed types with auto() no longer supportedc                     |                      t          d          5   G d dt                    }d d d            n# 1 swxY w Y   |                     |j        j        d           d S )N&will require all values to be sortablec                   &    e Zd ZdZ e            ZdS )1TestInternals.test_auto_garbage_ok.<locals>.Colorr  Nrp  rG   r9   r7   r  r	            tvvr9   r  r>   )rQ  rw  r   r   r  r;  r   s     r7   test_auto_garbage_okz"TestInternals.test_auto_garbage_ok  s    
 ""#57_`` 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	)1-----rT  c                    |                      t          d          5   G d dt                    }d d d            n# 1 swxY w Y   |                     t	          |          |j        |j        |j        |j        g           |                     |j        j	        d           |                     |j        j	        d           |                     |j        j	        d           |                     |j        j	        d           d S )Nr	  c                   >    e Zd ZdZdZ e            Z e            ZdS );TestInternals.test_auto_garbage_corrected_ok.<locals>.Colorr  r'   N)rA   rB   rC   r  r  r   r  r  rG   r9   r7   r  r	    s.        r9   r  r  r'   r?   rO   )
rQ  rw  r   r   r   r  r  r  r  r;  r   s     r7   test_auto_garbage_corrected_okz,TestInternals.test_auto_garbage_corrected_ok  sE   
 ""#57_`` 	  	                	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	e)UZelK	M 	M 	M%000)1---*A...+Q/////rT  z*mixed types with auto() will raise in 3.13c                     |                      t          d          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nr	  c                   &    e Zd ZdZ e            ZdS )3TestInternals.test_auto_garbage_fail.<locals>.Colorr  Nrp  rG   r9   r7   r  r	    r	  r9   r  r  r   s     r7   test_auto_garbage_failz$TestInternals.test_auto_garbage_fail  s    
 ##I/WXX 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                     |                      t          d          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nr	  c                   *    e Zd ZdZdZ e            ZdS )=TestInternals.test_auto_garbage_corrected_fail.<locals>.Colorr  r'   N)rA   rB   rC   r  r  r   r  rG   r9   r7   r  r	    s#        r9   r  r  r   s     r7    test_auto_garbage_corrected_failz.TestInternals.test_auto_garbage_corrected_fail  s    
 ##I/WXX 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                     |                      t                    5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nc                   P    e Zd Z e            Z e            Z e            Zd ZdS ),TestInternals.test_auto_order.<locals>.Colorc                     | S r   rG   r	  s       r7   r  zBTestInternals.test_auto_order.<locals>.Color._generate_next_value_  s    Kr9   N)rA   rB   rC   r   r  r  r  r  rG   r9   r7   r  r	    sD        dfftvv         r9   r  r  r   s     r7   test_auto_orderzTestInternals.test_auto_order  s    y)) 	  	                	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   <A A c                 :   t                      d_         G fddt                    }|                     t	          |          |j        |j        g           |                     |j        j        d           |                     |j        j        d           d S )Nzpathological casec                   .    e Zd Z Zd Z e            ZdS )2TestInternals.test_auto_order_wierd.<locals>.Colorc                     | S r   rG   r	  s       r7   r  zHTestInternals.test_auto_order_wierd.<locals>.Color._generate_next_value_  r	  r9   N)rA   rB   rC   r  r  r   r  )
weird_autos   r7   r  r	    s.        C  466DDDr9   r  r  )r   r;  r   r   r   r  r  )r   r  r	  s     @r7   test_auto_order_wierdz#TestInternals.test_auto_order_wierd  s    VV
.
	 	 	 	 	 	 	D 	 	 	
 	euy%*&=>>>*=>>>)622222r9   z,auto() will return highest value + 1 in 3.13c                 ,    G d dt                     }|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   d S )Nc                   R    e Zd Z e            Z e            ZeZeZ e            ZdS )3TestInternals.test_auto_with_aliases.<locals>.ColorN)	rA   rB   rC   r   r  r  oxfordcrimsonr  rG   r9   r7   r  r	    s9        $&&C466DFGDFFEEEr9   r  )r   r_  r	  r  r	  r  r,  r  r   s     r7   test_auto_with_aliasesz$TestInternals.test_auto_with_aliases  s    
	 	 	 	 	D 	 	 	 	emUY///elEJ///ei000ej11111r9   c                      G d dt                     }|                     |j        |j        |j        gt          |                     d S )Nc                   N    e Zd Z e            xZZ e            Z e            ZdS )0TestInternals.test_duplicate_auto.<locals>.DupesNru  rG   r9   r7   rw  r	    rx  r9   rw  ry  rz  s     r7   r{  z!TestInternals.test_duplicate_auto  r|  r9   c                 x    G d dt                     }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d            G d dt                     }|                     |j        j        d           |                     |j        j        d	           |                     |j        j        d
           |                     |j        j        d           |                     |j	        j        d           |                     |j	        j        d           |                     |j
        j        d           |                     |j
        j        d           |                     |j        j        d           |                     |j        j        d            G d dt                     }|                     |j        j        d           |                     |j        j        d           |                     |j        j        d           d S )Nc                       e Zd Z e            Z e             e            fZ e             e             e            fZdS )5TestInternals.test_multiple_auto_on_line.<locals>.HuhN)rA   rB   rC   r   r   r   THREErG   r9   r7   r|  r	    sL        $&&C$&&$$&&.CDFFDDFFDDFF*EEEr9   r|  r>   )r'   r?   )rO   r.  r  c                       e Zd ZddZd Z e            Z e            Z e            dfZ e            dfZ	 e            Z
dS )5TestInternals.test_multiple_auto_on_line.<locals>.HahNc                     t                               |           }||_        |p|d d                                         |_        |S r  )r  r  r  r-  abbr)rD  r;  r	  r   s       r7   r  z=TestInternals.test_multiple_auto_on_line.<locals>.Hah.__new__  s=    ,,!&"7eBQBioo&7&7r9   c                     | S r   rG   r	  s       r7   r  zKTestInternals.test_multiple_auto_on_line.<locals>.Hah._generate_next_value_  r	  r9   WEDThur   )rA   rB   rC   r  r  r   MONDAYTUESDAY	WEDNESDAYTHURSDAYFRIDAYrG   r9   r7   Hahr	    sr           
   TVVFdffGItvvu}HTVVFFFr9   r	  r	  monr	  tuer	  r	  r	  r	  r	  fric                       e Zd Zd Z e            Z e             e            fZ e             e             e            fZdS )r	  c                     |dz   S r5  rG   r	  s       r7   r  zKTestInternals.test_multiple_auto_on_line.<locals>.Huh._generate_next_value_%  s    Qwr9   N)rA   rB   rC   r  r   r   r   r	  rG   r9   r7   r|  z5TestInternals.test_multiple_auto_on_line.<locals>.Huh$  s[          $&&C$&&$$&&.CDFFDDFFDDFF*EEEr9   )r'   r'   )r?   r?   r?   )r   r   r   r;  r   r	  r	  r	  r	  r	  r	  r	  )r   r|  r	  s      r7   test_multiple_auto_on_linez(TestInternals.test_multiple_auto_on_line  s4   	+ 	+ 	+ 	+ 	+$ 	+ 	+ 	+ 	***///)444	 	 	 	 	$ 	 	 	 	)8444%000*I666)5111,k:::+U333+Z888*E222)8444%000	+ 	+ 	+ 	+ 	+$ 	+ 	+ 	+ 	***///)44444r9   N)rA   rB   rC   r   r   r   r   r   r   r   r   rk  r	  r	  r  r   r!  r	  r	  r	  r	  r	  r	  r	  r{  r
  rG   r9   r7   r	  r	  c  s       1L7L@MLCLS S SS S SX X X	/ 	/ 	/5 5 55 5 5 X_g%9 . .	 . X_g%9 0 0	 0 X_W$8  	  X_W$8  	      
3 
3 
3 X_W$: 
2 
2	 
2P P P*5 *5 *5 *5 *5r9   r	  c                       e Zd ZdS )TestEnumTypeSubclassingNr   rG   r9   r7   r
  r
  .  s        Dr9   r
  a  Help on class Color in module %s:

class Color(enum.Enum)
 |  Color(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
 |  
 |  Method resolution order:
 |      Color
 |      enum.Enum
 |      builtins.object
 |  
 |  Data and other attributes defined here:
 |  
 |  CYAN = <Color.CYAN: 1>
 |  
 |  MAGENTA = <Color.MAGENTA: 2>
 |  
 |  YELLOW = <Color.YELLOW: 3>
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from enum.Enum:
 |  
 |  name
 |      The name of the Enum member.
 |  
 |  value
 |      The value of the Enum member.
 |  
 |  ----------------------------------------------------------------------
 |  Methods inherited from enum.EnumType:
 |  
 |  __contains__(member) from enum.EnumType
 |      Return True if member is a member of this enum
 |      raises TypeError if member is not an enum member
 |      
 |      note: in 3.12 TypeError will no longer be raised, and True will also be
 |      returned if member is the value of a member in this enum
 |  
 |  __getitem__(name) from enum.EnumType
 |      Return the member matching `name`.
 |  
 |  __iter__() from enum.EnumType
 |      Return members in definition order.
 |  
 |  __len__() from enum.EnumType
 |      Return the number of members (no aliases)
 |  
 |  ----------------------------------------------------------------------
 |  Readonly properties inherited from enum.EnumType:
 |  
 |  __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:
 |  
 |  YELLOW = <Color.YELLOW: 3>
 |  
 |  MAGENTA = <Color.MAGENTA: 2>
 |  
 |  CYAN = <Color.CYAN: 1>
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from enum.Enum:
 |  
 |  name
 |  
 |  value
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from enum.EnumType:
 |  
 |  __members__c                   F    e Zd ZdZ G d de          Zd Zd Zd Zd Z	dS )
TestStdLibNc                       e Zd ZdZdZdZdS )TestStdLib.Colorr>   r'   r?   N)rA   rB   rC   CYANMAGENTAYELLOWrG   r9   r7   r  r	
    s        r9   r  c                 <   t           j        t          t          z  }nt          t          z  }t                      }t          j        |          } || j                   |	                                
                                }|                     |||           d S )N)output)r	   r   !expected_help_output_without_docsrA   expected_help_output_with_docsr   pydocHelperr  getvaluer  r   )r   expected_textr
  helperresults        r7   
test_pydoczTestStdLib.test_pydoc  s    ?"=HMM:XEMV,,,tz""((**77777r9   c                    t          dt          fdd| j        j        fdt          fd| j        j        fd| j        j        fd| j        j        fdt          j	        d         fd	t          j	        d	         fd
| j        j
        fd| j        j        fdd| j        j        fddt          | j        d          fd| j        j        ff          }t          t          j        | j                            }|                     t%          |                                          t%          |                                                     d}|                                D ]X}|dk    r	||         ||         k    r=t)                       t)          ddd|d||         d||         dddd           d}Y|r|                     d           d S d S )Nr  )r   ...r7  rB   r
  r
  r

  r   r;  rW  __contains__)rA   r  __getitem__)rC   r	
  r  __iter__Fr   
K===========================================================================z
     key: z
  result: z
expected: r  sepT/result does not equal expected, see print above)dictr
   r  r7  rA   r
  r
  r

  r   r  rW  r
  r
  r7  r
  inspect
getmembersr   r  keysrt  fail)r   r3  r
  r  r  s        r7   test_inspect_getmembersz"TestStdLib.test_inspect_getmembers  s   h'"
 67x(4:,-DJ./)v./$-01DJ./!89%
 674$gdj:M&N&NOTZ01!  $ g(4455V[[]]++S-?-?@@@ 	 	AI~~ayF1I%%!111fQiiiHHHFKMO O O O 	IIIGHHHHH	I 	Ir9   c                 t   ddl m}  |ddt          t                     |ddt          | j        j                   |dd| j        d	           |d
dt          | j        j                   |ddt          | j        j                   |ddt          t          | j        d                     |ddt          | j        j	                   |ddt          t          j
                   |dd| j        t                     |dd| j        d           |dd| j        d           |dd| j        | j        j                   |dd| j        | j        j                   |dd| j        | j        j                   |ddt          t          j        d                    |ddt          t          j        d                   g}|D ])}	 |j         # t$          $ r t'          |           Y &w xY w|                    d            t+          t          j        | j                            }|                    d            |                     t1          |          t1          |          d |D             dd  |D                        d!}t3          ||          D ]|\  }}|j        d"v rHd#D ]D}t          ||          t          ||          k    r t'          d$d%d$|d$|d$d%d$	d&'           d(}EV||k    r t'          d$d%d$|d$|d$d%d$	d&'           d(}}|r|                     d)           d S d S )*Nr   )	Attributer  data)r   kinddefining_classr  r
  methodr   r
  r
  r
  r  zclass methodrW  r7  r   rB   rA   r  rC   r	
  r
  r
  r

  r   r;  c                     | j         S r   r   r  s    r7   <lambda>z>TestStdLib.test_inspect_classify_class_attrs.<locals>.<lambda>      TY r9   )keyc                     | j         S r   r   r/
  s    r7   r0
  z>TestStdLib.test_inspect_classify_class_attrs.<locals>.<lambda>  r1
  r9   c                     g | ]	}|j         
S rG   r   rT  r   s     r7   rV  z@TestStdLib.test_inspect_classify_class_attrs.<locals>.<listcomp>  s    666!qv666r9   z != c                     g | ]	}|j         
S rG   r   r5
  s     r7   rV  z@TestStdLib.test_inspect_classify_class_attrs.<locals>.<listcomp>  s    8P8P8PA8P8P8Pr9   F)r  r   )r   r+
  r,
  r
  r
  r  r
  Tr!
  )r#
  r)
  r  r
   r  r
  r
  r
  r7  rW  r7  rA   r
  r
  r

  r   r  r   rM  rt  sortr   classify_class_attrsr   r  r^  r&
  )r   r)
  r3  r  r
  r  rr   s           r7   !test_inspect_classify_class_attrsz,TestStdLib.test_inspect_classify_class_attrs  sV   %%%%%%	{#)(< < <	~H#+DJ4KM M M	yv#':e= = =	}8#+DJ4JL L L	z#+DJ4GI I I	2#)'$*FY2Z2Z\ \ \	yx#+DJ4FH H H	}:#+H4HJ J J	|&#':h@ @ @	z#':g? ? ?	~F#':6HJ J J	xf#':dj6GI I I	yv#':dj6HJ J J	vF#':djoG G G	vF#'f0EG G G	wV#'g0FH H H?!D  	 	A!   a..///g24:>>??..///FS[[66v666668P8P8P8P8P8PQ	 	 	 '' 	 	DAqv999 = & &Dq$''71d+;+;;;hhh111hhhOUWXXXX!%& ahhh111hhhGRPPPP 	IIIGHHHHH	I 	Is   GG/.G/c                    t          t                     G d d                      } G d dt                    }|                     t          ||          d u            d|j        _        |                     t          dt          ||            G d dt          t          	          }|}| 
                    t          |          |j        |j        |j        g           t          t          t          	           G d
 d                      }|}| 
                    t          |          |j        |j        |j        g           t          ||           d S )Nc                   :    e Zd ZdZdZdZej        d             ZdS )5TestStdLib.test_test_simple_enum.<locals>.SimpleColorr>   r'   r?   c                     d| j         z  S Nz	zeroed %sr   r   s    r7   zerothz<TestStdLib.test_test_simple_enum.<locals>.SimpleColor.zeroth      "TY..r9   N	rA   rB   rC   r

  r
  r
  r  r   r@
  rG   r9   r7   SimpleColorr=
    s>        DGF^/ / ^/ / /r9   rC
  c                   :    e Zd ZdZdZdZej        d             ZdS )6TestStdLib.test_test_simple_enum.<locals>.CheckedColorr>   r'   r?   c                     d| j         z  S r?
  r   r   s    r7   r@
  z=TestStdLib.test_test_simple_enum.<locals>.CheckedColor.zeroth  rA
  r9   NrB
  rG   r9   r7   CheckedColorrE
  	  s>        DGF^/ / ^/ / /r9   rG
  r  zenum mismatchc                       e Zd ZdZdZdZdZdS )8TestStdLib.test_test_simple_enum.<locals>.CheckedMissingr	          NrA   rB   rC   
SIXTY_FOURONE_TWENTY_EIGHTTWENTY_FORTY_EIGHTr  rG   r9   r7   CheckedMissingrI
    s$        J"!%&CCCr9   rQ
  r   c                       e Zd ZdZdZdZdZdS )1TestStdLib.test_test_simple_enum.<locals>.Missingr	  rJ
  rK
  rL
  NrM
  rG   r9   r7   r	  rS
    s$        J"!%&CCCr9   r	  )r   r   r   r   r
  r  r   ru  r   r   r   r   rN
  rO
  rP
  )r   rC
  rG
  rQ
  CMr	  Ms          r7   test_test_simple_enumz TestStdLib.test_test_simple_enum   s   	d			/ 	/ 	/ 	/ 	/ 	/ 	/ 
		/	/ 	/ 	/ 	/ 	/4 	/ 	/ 	/ 	),DDLMMM&'#?!<	 	 		' 	' 	' 	' 	'Wt 	' 	' 	' 	'
 n--r?RTVTi/jkkk	g	-	-	-	' 	' 	' 	' 	' 	' 	' 
.	-	'
 n--a>PRSRf/ghhh.'22222r9   )
rA   rB   rC   maxDiffr   r  r
  r'
  r:
  rV
  rG   r9   r7   r
  r
    s        G       

8 
8 
8 I  I  ID?I ?I ?IB'3 '3 '3 '3 '3r9   r
  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )MiscTestCasec                 B    t          j        | t          ddh           d S )Nbinr	  )not_exported)r"   check__all__r-   r   s    r7   test__all__zMiscTestCase.test__all__,  s&    T4u>P6QRRRRRRr9   c                 b     G d dt                     }|                     |j        d            d S )Nc                       e Zd ZdZdS )'MiscTestCase.test_doc_1.<locals>.Singler>   Nr  rG   r9   r7   Singlera
  0  r  r9   rb
  r   r   r   )r   rb
  s     r7   
test_doc_1zMiscTestCase.test_doc_1/  sJ    	 	 	 	 	T 	 	 	.....r9   c                 b     G d dt                     }|                     |j        d            d S )Nc                       e Zd ZdZdZdS )'MiscTestCase.test_doc_2.<locals>.Doubler>   r'   Nr   rG   r9   r7   Doublerg
  5  r  r9   rh
  rc
  )r   rh
  s     r7   
test_doc_2zMiscTestCase.test_doc_24  sL    	 	 	 	 	T 	 	 	 	.....r9   c                 b     G d dt                     }|                     |j        d            d S )Nc                       e Zd ZdZdZdZdS )'MiscTestCase.test_doc_3.<locals>.Tripler>   r'   r?   N)rA   rB   rC   r   r   r	  rG   r9   r7   Triplerl
  ;  r9  r9   rm
  rc
  )r   rm
  s     r7   
test_doc_3zMiscTestCase.test_doc_3:  sL    	 	 	 	 	T 	 	 	 	.....r9   c                 b     G d dt                     }|                     |j        d            d S )Nc                       e Zd ZdZdZdZdZdS )*MiscTestCase.test_doc_4.<locals>.Quadrupler>   r'   r?   rO   N)rA   rB   rC   r   r   r	  r~  rG   r9   r7   	Quadruplerq
  B  s"        CCEDDDr9   rr
  rc
  )r   rr
  s     r7   
test_doc_4zMiscTestCase.test_doc_4A  sM    	 	 	 	 	 	 	 	
 	*D11111r9   N)rA   rB   rC   r^
  rd
  ri
  rn
  rs
  rG   r9   r7   rY
  rY
  *  sb        S S S/ / /
/ / // / /2 2 2 2 2r9   rY
  r.  r  r  r  r>   r;                ?               @              @c                       e Zd ZdZd ZdS )_ModuleWrapperz6We use this class as a namespace for swapping modules.c                 D    | j                             |j                    d S r   )r  rH  )r   rc   s     r7   r   z_ModuleWrapper.__init__i  s     V_-----r9   N)rA   rB   rC   r   r   rG   r9   r7   ry
  ry
  g  s)        @@. . . . .r9   ry
  c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestConvertc                     t                      }dD ]}d|d|z  <   d|d|z  <   dD ]\  }}||d|z  <   dD ]\  }}||d|z  <   d	D ]\  }}||d
|z  <   d S )N)r  re  r  r  r  r  r.  zCONVERT_TEST_NAME_%szCONVERT_STRING_TEST_NAME_%s))r  r.  )re  rt
  )r  r;  zUNCOMPARABLE_%s))r  rv
  )re  rw
  )r  ru
  z
COMPLEX_%s))r+  r  )r,  r  zCONVERT_STR_TEST_%s)r  )r   gsuffixr;  s       r7   tearDownzTestConvert.tearDownm  s     II4 	: 	:F12A$v-.89A+f455F 	2 	2MFE,1A&())> 	- 	-MFE',AlV#$$? 	6 	6MFE05A#f,--	6 	6r9   c                     t           j                            dt          d           }|                      |d          j        d           d S )NUnittestConvertc                 ,    |                      d          S NCONVERT_TEST_rA  r  s    r7   r0
  z@TestConvert.test_convert_value_lookup_priority.<locals>.<lambda>      o!>!> r9   filterr.  CONVERT_TEST_NAME_A)r-   r   	_convert_MODULEr   r   r   r  s     r7   "test_convert_value_lookup_priorityz.TestConvert.test_convert_value_lookup_priority|  sV    L**!>> + @ @	 	1*,ABBBBBr9   c                 P   t           j                            dt          d           |                     j        j                   |                     j        d           |                     j        d           |                     j	        d           |                     j
        d           t          t                    g dz   }fdt                    D             }fdt                    D             }|                     ||z   g d|d	|
           d S )Nr
  c                 ,    |                      d          S r
  rA  r
  s    r7   r0
  z.TestConvert.test_convert_int.<locals>.<lambda>  r
  r9   r
  r.  )
r
  CONVERT_TEST_NAME_BCONVERT_TEST_NAME_CCONVERT_TEST_NAME_DCONVERT_TEST_NAME_ECONVERT_TEST_NAME_FCONVERT_TEST_SIGABRTCONVERT_TEST_SIGIOTCONVERT_TEST_EIOCONVERT_TEST_EBUSc                 6    g | ]}|t                    v|S rG   r  rT  r   r  s     r7   rV  z0TestConvert.test_convert_int.<locals>.<listcomp>  +    TTT$D@S@S4S4S4S4S4Sr9   c                 6    g | ]}|t                    v|S rG   r  r
  s     r7   rV  z0TestConvert.test_convert_int.<locals>.<listcomp>  )    VVVD4s9~~;U;U4;U;U;Ur9   extra names: ;  missing names: msg)r-   r   r
  r
  r   r
  r
  r
  r
  r
  r
  r  r  r  )r   int_dirextrar  r  s       @r7   test_convert_intzTestConvert.test_convert_int  sY   L**!>> + @ @	
 	6"6	8 	8 	86:::6:::6:::6:::c((     UTTT#i..TTTVVVVHY$7$7VVV=BUUGGL 	 	 	 	 	 	r9   c                     t           j                            dt          d           }|                     t          |          |j        |j        |j        g           d S )NUncomparablec                 ,    |                      d          S )NUNCOMPARABLE_rA  r
  s    r7   r0
  z7TestConvert.test_convert_uncomparable.<locals>.<lambda>  r
  r9   r
  )	r-   r   r
  r
  r   r   UNCOMPARABLE_AUNCOMPARABLE_BUNCOMPARABLE_Cr   uncomps     r7   test_convert_uncomparablez%TestConvert.test_convert_uncomparable  sl    $$>> % @ @
 	LL"F$96;PQ	 	 	 	 	r9   c                     t           j                            dt          d           }|                     t          |          |j        |j        |j        g           d S )Nr
  c                 ,    |                      d          S )NCOMPLEX_rA  r
  s    r7   r0
  z2TestConvert.test_convert_complex.<locals>.<lambda>  s    Q\\*55 r9   r
  )	r-   r   r
  r
  r   r   	COMPLEX_A	COMPLEX_B	COMPLEX_Cr
  s     r7   test_convert_complexz TestConvert.test_convert_complex  sj    $$55 % 7 7
 	LLv/1AB	 	 	 	 	r9   c                    t           j                            dt          d d          |                     j        d           |                     j        d           t          t                    ddgz   }fd	t                    D             }fd
t                    D             }|                     ||z   g d|d|           |                     t          j                  dt          z             |                     t          j                  d           |                     t          j                  d           d S )Nr
  c                 ,    |                      d          S )NCONVERT_STR_rA  r
  s    r7   r0
  z.TestConvert.test_convert_str.<locals>.<lambda>  s    n!=!= r9   Tr
  	as_globalr  r  CONVERT_STR_TEST_1CONVERT_STR_TEST_2c                 6    g | ]}|t                    v|S rG   r
  r
  s     r7   rV  z0TestConvert.test_convert_str.<locals>.<listcomp>  r
  r9   c                 6    g | ]}|t                    v|S rG   r
  r
  s     r7   rV  z0TestConvert.test_convert_str.<locals>.<listcomp>  r
  r9   r
  r
  r
  z%s.CONVERT_STR_TEST_1)r-   r	   r
  r
  r   r
  r
  r  r5  r  r]  r  r:  )r   str_dirr
  r  r  s       @r7   test_convert_strzTestConvert.test_convert_str  sb   L**!==	 +    	 	5w???5yAAAc((24HIITTTT#i..TTTVVVVHY$7$7VVV=BUUGGL 	 	 	 	
 	i:;;=TWc=cdddY9::IFFF	 <==wGGGGGr9   c                     |                      t                    5  t          j                            dt
          d            d d d            d S # 1 swxY w Y   d S )Nr
  c                 ,    |                      d          S r
  rA  r
  s    r7   r0
  z0TestConvert.test_convert_raise.<locals>.<lambda>  r
  r9   r
  )rL  rM  r-   r   _convertr
  r   s    r7   test_convert_raisezTestConvert.test_convert_raise  s    ~.. 	@ 	@L!!!>> " @ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   )AAAc                 X   t           j                            dt          d d          }|                     t          |j                  dt          z             |                     t          |j                  d           |                     t          |j                  d           d S )Nr
  c                 ,    |                      d          S )NCONVERT_STRING_TEST_rA  r
  s    r7   r0
  z7TestConvert.test_convert_repr_and_str.<locals>.<lambda>  s    .D!E!E r9   Tr
  z%s.CONVERT_STRING_TEST_NAME_ArL  )
r-   r   r
  r
  r   r]  CONVERT_STRING_TEST_NAME_Ar  r5  r:  r
  s     r7   test_convert_repr_and_strz%TestConvert.test_convert_repr_and_str  s    L**!EE	 +    	
 	iBCCEdgsEstttYABBCHHH	 DEEsKKKKKr9   N)rA   rB   rC   r
  r
  r
  r
  r
  r
  r
  r
  rG   r9   r7   r|
  r|
  l  s        6 6 6C C C  8	 	 		 	 	H H H,@ @ @L L L L Lr9   r|
  c                 p   t          g d| j        z             }| j        t          j        ur|                    d           | j        t          j        ur|                    d           | j        t          u rt          |          S t          t          t          | j                            |z            S )N)
r  r
  r   r
  r
  rW  r7  rB   rA   rC   r  r  )
r  _member_names__new_member_r  r  r  r  r4  sortedr  )rD  interestings     r7   r  r    s       
  !  K v~--	"""
F$<<<+,,,
F""k""" c#c/0011K?@@@r9   c                    | j         j        t          u rt          g d          }nt          t	          |                     }| j                                         D ]}|j                                        D ]}\  }}|d         dk    rt          |t          j
                  r<|j        	|| j        vr|                    |           R|                    |           h|                    |           ~t          |          S )N)r  r   r
  r  rB   r   r;  r   r   )r  r4  r  r  r  r  r  r  r  r-   r   r   r  r  discardr
  )r   allowedrD  r   rw   s        r7   r  r    s   %//cccddc&kk""##%% 
" 
"++-- 		" 		"ID#Aw#~~#t}-- "8'4v7J+J+JKK%%%%OOD))))D!!!!		" '??r9   __main__r   )rR  r-   r+   r#
  r.   r
  r  r  r  rA  builtinsr  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   ior   pickler   r   r    r!   r  r"   test.supportr#   r$   textwrapr%   r&   version_infor!  r8   rA   r
  r  r  r=   r#  r  r  rJ   rP  rL   rN   rT   rY   r[   r]   ra   rd   re   ri   rt   rx   TestCaserz   r   global_enumr   r   r   r   r#  rC  rI  r[  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r<	  rJ	  r{	  r	  r
  r
  r
  r
  rY
  r
  r
  r
  r
  r
  r
  CONVERT_STRING_TEST_NAME_DCONVERT_STRING_TEST_NAME_CCONVERT_STRING_TEST_NAME_Br
  CONVERT_STRING_TEST_NAME_ECONVERT_STRING_TEST_NAME_Fr
  r
  r
  r
  r
  r
  r
  r
  ry
  r|
  r  r  r  r  mainrG   r9   r7   <module>r
     s       				  



           # # # # # #       X X X X X X X X X X X X X X X X X X X X X X N N N N N N N N N N N N N N N N B B B B B B B B B B B B B B 2 2 2 2 2 2 2 2 2 2       @ @ @ @ @ @ @ @ @ @ @ @       " " " " " " ) ) ) ) ) )            !"1"%   
||C  $    $        GGGGGG    S$        JJJJJJ    ud        LLLLLL    d    
    KKKKKK    $       W       W       7   tJ 9(KKKHH   HHHHHHT(9::FF   FFFFFFT(2=RSSSFF   FFFFFF	          	 	 	D	C C C C* * *
1e 1e 1e 1e 1e(# 1e 1e 1el% % % % % % % %     'DI         'DL         T   g g g g g g g gR$4 $4 $4 $4 $4 $4 $4 $4N#3 #3 #3 #3 #3 #3 #3 #3L6& 6& 6& 6& 6& 6& 6& 6&pZ2 Z2 Z2 Z2 Z2 Z2 Z2 Z2z    J 183D       J 1:x?P       *183D       *183D       *1:x?P   % % % % %:0(2C % % %% % % % %:0(2C % % %% % % % %z#4j(BS % % %! ! ! ! !J 183D ! ! !! ! ! ! !j"5x7H ! ! !! ! ! ! !Z!2H4E ! ! !! ! ! ! !z#68I ! ! !i" i" i" i" i"(# i" i" i"X=< < < < <! < < <~tB tB tB tB tB(# tB tB tBnzO zO zO zO zOX& zO zO zOz( ( ( ( (("3 ( ( ("- - - - -" - - -^C C C C C" C C CNI5 I5 I5 I5 I5H% I5 I5 I5V	 	 	 	 	h/ 	 	 	6"8 p% !>_3 _3 _3 _3 _3" _3 _3 _3D2 2 2 2 28$ 2 2 2D                 			. . . . . . . .
qL qL qL qL qL(# qL qL qLlA A A$  $ &(( zHMOOOOO s   C& &C7+C22C7;D DDD D0 0E5D<<EE E%E  E%!F0 0G5F<<GG G#GG#'G6 6H;HHH H"!H"