
    daf                    R   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l0m1Z1m2Z2 d dl0m3Z3 d dlm4Z4 ejj                  dd Z6d Z7e8Z9e9ju                  d      d   Z;	  G d de      Z<	  G d de?e      Z@	  G d deAe      ZB	  G d de      ZC G d de      ZD G d de      ZE G d de      ZF G d  d!e      ZG	  ed"d#e8$      ZH	  ed%d&      ZI	  ed'd(d)*      ZJ	  G d+ d,e      ZKdd-ZLd. ZM G d/ d0ej                        ZO G d1 d2      ZPej                   G d3 d4eej8                  5             ZRej                   G d6 d7eej4                  5             ZSej                   G d8 d9e             ZT G d: d;      ZU G d< d=      ZV G d> d?      ZW G d@ dA      ZX G dB dC      ZY G dD dEeUeVej                        ZZ G dF dGeUeVej                        Z[ G dH dIeUeVeYej                        Z\ G dJ dKeUeVeYej                        Z] G dL dMeUeXej                        Z^ G dN dOeUeXej                        Z_ G dP dQeUeXej                        Z` G dR dSeUeXej                        Za G dT dUeUeXeYej                        Zb G dV dWeUeXeYej                        Zc G dX dYeUeWej                        Zd G dZ d[eUeWej                        Ze G d\ d]eUeWej                        Zf G d^ d_eUeWej                        Zg G d` daeUeWeYej                        Zh G db dceUeWeYej                        Zi G dd deeUeWej                        Zj G df dgeUeWej                        Zk G dh dieUeXej                        Zl G dj dkeUeXej                        Zm G dl dmeUeWej                        Zn G dn doeUeWej                        Zo G dp dqeUeXej                        Zp G dr dseUeXej                        Zq G dt duej                        Zr G dv dwej                        Zs G dx dyej                        Zt G dz d{ej                        Zu G d| d}ej                        Zv G d~ dej                        Zw G d dej                        Zx G d dej                        Zy G d dej                        ZzdZ{dZ| G d dej                        Z} G d dej                        Z~dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ G d dej                        Zd Zd Ze8dk(  r ej,                          yy# e=$ rZ>e>Z<Y dZ>[>dZ>[>ww xY w# e=$ rZ>e>Z@Y dZ>[>dZ>[>ww xY w# e=$ rZ>e>ZBY dZ>[>dZ>[>ww xY w# e=$ rZ>e>ZCY dZ>[>dZ>[>ww xY w# e=$ rZ>e>ZHY dZ>[>dZ>[>ww xY w# e=$ rZ>e>ZIY dZ>[>dZ>[>ww xY w# e=$ rZ>e>ZJY dZ>[>dZ>[>ww xY w# e=$ r Y w xY w)    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	REPO_ROOT)threading_helper)	timedelta   c                 z   |j                  t        j                  t                     t        j
                  j                  t        d      }t        j
                  j                  |      rF|j                  t        j                  |dt        j                  t        j                  z               t        j
                  j                  t        d      }t        j
                  j                  |      rF|j                  t        j                  |dt        j                  t        j                  z               |S )NzDoc/library/enum.rstF)module_relativeoptionflagszDoc/howto/enum.rst)addTestsdoctestDocTestSuiteenumospathjoinr$   existsDocFileSuiteELLIPSISNORMALIZE_WHITESPACE)loadertestsignore	lib_testshowto_testss        )/root/Python-3.12.4/Lib/test/test_enum.py
load_testsr<      s    	NN7''-.Y(>?I	ww~~i w++ %#,,W-I-II 	
 '',,y*>?K	ww~~k"w++ %#,,W-I-II 	
 L    .c                       e Zd ZdZdZdZy)Stooges   r'      N__name__
__module____qualname__LARRYCURLYMOE r=   r;   rA   rA   3       r=   rA   c                       e Zd ZdZdZdZy)
IntStoogesrB   r'   rC   NrD   rK   r=   r;   rN   rN   ;   rL   r=   rN   c                       e Zd ZdZdZdZy)FloatStoogesg=
ףp=?g(\@gR$_	$	@NrD   rK   r=   r;   rP   rP   C   s    r=   rP   c                       e Zd ZdZdZdZdZy)FlagStoogesrB   r'        NrE   rF   rG   rH   rI   rJ   BIGrK   r=   r;   rR   rR   K   s    r=   rR   c                        e Zd ZdZdZdZdZdZy)FlagStoogesWithZeror   rB   r'   rS   rT   NrE   rF   rG   NOFLAGrH   rI   rJ   rV   rK   r=   r;   rX   rX   S       FEE
C
Cr=   rX   c                       e Zd ZdZdZdZdZy)IntFlagStoogesrB   r'   rS   rT   NrU   rK   r=   r;   r]   r]   Z   s    EE
C
Cr=   r]   c                        e Zd ZdZdZdZdZdZy)IntFlagStoogesWithZeror   rB   r'   rS   rT   NrY   rK   r=   r;   r_   r_   `   r[   r=   r_   c                       e Zd ZdZdZy)NameGuido van RossumzBarry WarsawN)rE   rF   rG   BDFLFLUFLrK   r=   r;   ra   ra   h   s    DEr=   ra   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y)FruitrB   r'   rC   N)rE   rF   rG   TOMATOBANANACHERRYrK   r=   r;   rm   rm   }   s    r=   rm   c           	      t    ||}t        t        dz         D ]  } | t        t        ||            |       ! y NrB   )protocol)ranger!   r   r   )	assertionsourcetargetrs   s       r;   test_pickle_dump_loadrx      s>    ~*Q./ C%fx896BCr=   c                     t        t        dz         D ]   } | |      5  t        ||       d d d        " y # 1 sw Y   -xY wrr   )rt   r!   r   )ru   	exceptionobjrs   s       r;   test_pickle_exceptionr|      sH    *Q./ *y! 	*#)	* 	**	* 	*s	   7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y)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 ]^  } |       }| j                  t        j                  |             t        ||d       | j	                  t        j                  |             ` y )Nc                       e Zd Zy)+TestHelpers.test_is_descriptor.<locals>.fooNrE   rF   rG   rK   r=   r;   foor          r=   r   )__get____set__
__delete__rB   )assertFalser.   _is_descriptorsetattr
assertTrue)selfr   attrr{   s       r;   test_is_descriptorzTestHelpers.test_is_descriptor   s^    	 	6 	6D%CT0056Cq!OOD//45		6r=   c                    | j                   | j                  z   D ]*  }| j                  t        j                  |      d|z         , | j
                  | j                  z   | j                  z   D ]*  }| j                  t        j                  |      d|z         , dD ]&  }| j                  t        j                  |             ( dD ]&  }| j                  t        j                  |             ( y )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      r;   test_sunderzTestHelpers.test_sunder   s    %%(E(EE 	VDOODOOD13MPT3TU	V%%(:(::T=N=NN 	SDT__T24JT4QR	S  	0AOODOOA./	0/ 	1AT__Q/0	1r=   c                    | j                   D ]*  }| j                  t        j                  |      d|z         , | j                  | j
                  z   | j                  z   | j                  z   D ]*  }| j                  t        j                  |      d|z         , dD ]&  }| j                  t        j                  |             ( dD ]&  }| j                  t        j                  |             ( y )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      r;   test_dunderzTestHelpers.test_dunder   s    %% 	VDOODOOD13MPT3TU	V%%(:(::T=Z=ZZ]a]n]nn 	SDT__T24JT4QR	S$ 	0AOODOOA./	0/ 	1AT__Q/0	1r=   c                 .   | j                   | j                  z   D ](  }| j                  t        j                  d|      d       * | j
                  | j                  z   | j                  z   D ](  }| j                  t        j                  d|      d       * y 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     r;   test_is_privatezTestHelpers.test_is_private       &&)F)FF 	[DOOD,,Xt<>YZ	[%%(9(99D<M<MM 	XDT--h=?VW	Xr=   c                     | j                  t        t        d            g d       | j                  t        dt        t        d             y )N   rB   r'   rS   z-8 is not a positive integer)assertEquallistr   assertRaisesRegex
ValueErrorr   s    r;   test_iter_bits_lsbzTestHelpers.test_iter_bits_lsb   s8    nQ/0)<z+I4Q_`bQcdr=   N)rE   rF   rG   r   r   r   r   r   r   r   r   r   r   rK   r=   r;   r~   r~      s9     2L7L@MLCL6	1	1Xer=   r~   c                       e Zd ZddZd Zy)classpropertyNc                 \    || _         || _        || _        |||j                  }|| _        y N)fgetfsetfdel__doc__)r   r   r   r   docs        r;   __init__zclassproperty.__init__   s1    			;4+,,Cr=   c                 $    | j                  |      S r   )r   )r   instance
ownerclasss      r;   r   zclassproperty.__get__   s    yy$$r=   )NNNN)rE   rF   rG   r   r   rK   r=   r;   r   r      s    %r=   r   c                   :    e Zd ZdZ e       Z e       Z e       Zy)HeadlightsKr   N)rE   rF   rG   OFF_Kr   
LOW_BEAM_KHIGH_BEAM_KFOG_KrK   r=   r;   r   r          EJ&KFEr=   r   boundaryc                   :    e Zd ZdZ e       Z e       Z e       Zy)HeadlightsCr   N)rE   rF   rG   OFF_Cr   
LOW_BEAM_CHIGH_BEAM_CFOG_CrK   r=   r;   r   r      r   r=   r   c                       e Zd ZdZdZy)NoNamerB   r'   NrE   rF   rG   ONETWOrK   r=   r;   r   r      s    
C
Cr=   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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%y)$
_EnumTestszX
    Test for behavior that is the same across the different types of enumerations.
    Nc           	           j                   j                  dd  dk(  r 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|      }| _         G d d j                        }| _	         G d d j                        }	|	 _
        d _        g d _        t        |t              r j                   _        nk|j                   t"        u r
g d _        nOt         j                  t$              rg d _        d _         |d       _        n j                  xs g d _        t)         dd      s j                   _        y y  j                   j                  dd  dk(  rHt,        j.                  d        }
 j                  dd |
i      }t1               }
t1               }t1               }t         j                  t$              rd!}n|} |dt3        |
|||"            x _        }d# }t1               }
 j                  dd |
fd$|ff       _        d% }t1               }
 j                  d
d |
fd&|fg       _        d' }d( }t1               }
 j                  dt3        |
||)             _        d* }d+ } j                  dt3        ||,             _         j                  dd        _        d- } j                  dd.|i       _	        t4        d/        } j                  dd.|i       _
        d _        g d _        t        |t              r j                   _        nk|j                   t"        u r
g d _        nOt         j                  t$              rg d _        d _         |d       _        n j                  xs g d _        t)         dd      s j                   _        y y t7        d0 j                   j                  z        )1NClassc                   0    e Zd Zej                  d        Zy)"_EnumTests.setUp.<locals>.BaseEnumc                      d| j                   z  S Nz%s is first!r   r   s    r;   firstz(_EnumTests.setUp.<locals>.BaseEnum.first   s    )DII55r=   N)rE   rF   rG   r.   propertyr  rK   r=   r;   BaseEnumr      s    6 6r=   r  c                   j    e Zd Z e       Z e       Z e       Z eW  j                  e	      rdZ
yeZ
y)"_EnumTests.setUp.<locals>.MainEnumrC   N)rE   rF   rG   r   r  secondthird
issubclass	enum_typer   duper   s   r;   MainEnumr     s0    dnnd3D Dr=   r  c                        e Zd Zd Z e       Zy)$_EnumTests.setUp.<locals>.NewStrEnumc                 6    | j                   j                         S r   r   upperr   s    r;   __str__z,_EnumTests.setUp.<locals>.NewStrEnum.__str__      99??,,r=   N)rE   rF   rG   r  r   r  rK   r=   r;   
NewStrEnumr        -r=   r  c                        e Zd Zd Z e       Zy)'_EnumTests.setUp.<locals>.NewFormatEnumc                 6    | j                   j                         S r   r  r   specs     r;   
__format__z2_EnumTests.setUp.<locals>.NewFormatEnum.__format__
  r  r=   N)rE   rF   rG   r  r   r  rK   r=   r;   NewFormatEnumr  	  r  r=   r  c                   &    e Zd Zd Zd Z e       Zy)*_EnumTests.setUp.<locals>.NewStrFormatEnumc                 6    | j                   j                         S r   r   titler   s    r;   r  z2_EnumTests.setUp.<locals>.NewStrFormatEnum.__str__  r  r=   c                 J    dj                  t        | j                              S N r1   reversedr   r  s     r;   r  z5_EnumTests.setUp.<locals>.NewStrFormatEnum.__format__      778DII#677r=   N)rE   rF   rG   r  r  r   r  rK   r=   r;   NewStrFormatEnumr    s    -8r=   r)  c                       e Zd Zd Zd Zy)%_EnumTests.setUp.<locals>.NewBaseEnumc                 6    | j                   j                         S r   r!  r   s    r;   r  z-_EnumTests.setUp.<locals>.NewBaseEnum.__str__  r  r=   c                 J    dj                  t        | j                              S r$  r&  r  s     r;   r  z0_EnumTests.setUp.<locals>.NewBaseEnum.__format__  r(  r=   N)rE   rF   rG   r  r  rK   r=   r;   NewBaseEnumr+    s    -8r=   r.  c                       e Zd Z e       Zy)$_EnumTests.setUp.<locals>.NewSubEnumN)rE   rF   rG   r   r  rK   r=   r;   
NewSubEnumr0    s	    r=   r1  c                       e Zd Zd Zy)!_EnumTests.setUp.<locals>.LazyGNVc                      y r   rK   r   startlastvaluess       r;   _generate_next_value_z7_EnumTests.setUp.<locals>.LazyGNV._generate_next_value_"  s    r=   NrE   rF   rG   r9  rK   r=   r;   LazyGNVr3  !  s    r=   r;  c                       e Zd Zed        Zy)!_EnumTests.setUp.<locals>.BusyGNVc                      y r   rK   r5  s       r;   r9  z7_EnumTests.setUp.<locals>.BusyGNV._generate_next_value_'  s    r=   NrE   rF   rG   staticmethodr9  rK   r=   r;   BusyGNVr=  &  s     r=   rA  F)r  r  r	  )123r   T   rB   r'   rC   source_valuesr   Functionc                      d| j                   z  S r  r  r   s    r;   r  z_EnumTests.setUp.<locals>.first<  s    %		11r=   r  rC   )r  r  r	  r  c                 6    | j                   j                         S r   r  r   s    r;   r  z!_EnumTests.setUp.<locals>.__str__J      yy((r=   r  c                 6    | j                   j                         S r   r  r  s     r;   r  z$_EnumTests.setUp.<locals>.__format__O  rK  r=   r  c                 6    | j                   j                         S r   r!  r   s    r;   r  z!_EnumTests.setUp.<locals>.__str__T  rK  r=   c                 J    dj                  t        | j                              S r$  r&  r  s     r;   r  z$_EnumTests.setUp.<locals>.__format__V      wwx		233r=   )r  r  r  c                 6    | j                   j                         S r   r!  r   s    r;   r  z!_EnumTests.setUp.<locals>.__str__[  rK  r=   c                 J    dj                  t        | j                              S r$  r&  r  s     r;   r  z$_EnumTests.setUp.<locals>.__format__]  rO  r=   )r  r  c                      y r   rK   r5  s       r;   r9  z/_EnumTests.setUp.<locals>._generate_next_value_b      r=   r9  c                      y r   rK   r5  s       r;   r9  z/_EnumTests.setUp.<locals>._generate_next_value_f  s    r=   zunknown enum style: %r)	__class__rE   r  r  r  r  r)  r.  r1  r;  rA  is_flagnamesr
  r	   r8  _member_type_strr   dupe2getattrrG  r.   r  r   dictr@  r   )r   r  r  r  r  r)  r.  r1  r;  rA  r  r  r	  r  r  r  r9  s   `                r;   setUpz_EnumTests.setUp   s   >>""23'7264>> 6!8 ! %DMT^^  )DO  "/D4>>  %5D!8dnn 8
  +D[ (DO$..  #DL$..  #DL DL5DJ(G,"jj''3.-DNND1'#%a[
"kk6Y4%8%)[[" 9^^$$RS)Z7]]2 2~~j75/BHFEVFFE$..$/'/
DuU[chos<t'uuDMH)FE"nn\WUOYW^L_;`aDO)FE!%75/S_`jRkAl!mD)4FE$(NN3EtRWdnx  HA  %BD!)4#~~mTZah=ijD"..|WEDO>>)6MNc5deDL >>)6MNc5deDL DL5DJ(G,"jj''3.-DNND1'#%a[
"kk6Y4%8%)[[" 9 58O8OOPPr=   c                 x    | j                  |j                  |      |j                  |j                               y r   )r   formatvaluer   r  r   s      r;   assertFormatIsValuez_EnumTests.assertFormatIsValue}  s(    V,dkk&,,.GHr=   c                 v    | j                  |j                  |      |j                  t        |                   y r   )r   r_  rY  ra  s      r;   assertFormatIsStrz_EnumTests.assertFormatIsStr  s(    V,dkk#f+.FGr=   c                     G d d| j                         }| j                  t        |d             |`| j	                  t        |d             | j                  t              5  |`d d d        | j                  t              5  |`d d d        | j                  t              5  |j                  `	d d d        y # 1 sw Y   TxY w# 1 sw Y   @xY w# 1 sw Y   y xY w)Nc                   <    e Zd Z e       Z e       Z e       Zd Zy)2_EnumTests.test_attribute_deletion.<locals>.Seasonc                      y r   rK   )clss    r;   spamz7_EnumTests.test_attribute_deletion.<locals>.Season.spam  rS  r=   N)rE   rF   rG   r   SPRINGSUMMERAUTUMNrj  rK   r=   r;   Seasonrg    s    VFVFVFr=   rn  rj  )
r  r   hasattrrj  r   assertRaisesAttributeErrorrk  DRYr   r   rn  s     r;   test_attribute_deletionz"_EnumTests.test_attribute_deletion  s    	T^^ 	 	/0K01~. 		~. 	
	~. 	#"	# 	#		 		 		# 	#s$   #B9C#C9CCCc                     | j                  t        d      5   G d d| j                        }d d d        y # 1 sw Y   y xY w)Nzhas no members definedc                   "     e Zd Z fdZdZ xZS )/_EnumTests.test_bad_new_super.<locals>.BadSuperc                 (    t         |   | |      }|S r   super__new__)ri  r`  r{   rU  s      r;   r{  z7_EnumTests.test_bad_new_super.<locals>.BadSuper.__new__  s    '/#u5CJr=   rB   )rE   rF   rG   r{  failed__classcell__rU  s   @r;   BadSuperrw    s     r=   r  )r   	TypeErrorr  )r   r  s     r;   test_bad_new_superz_EnumTests.test_bad_new_super  s;    ##( 	4>> 		 	 	s   6?c                 z   | j                   }| j                  ru| j                  t        |      d       | j                  t	        |      d       | j                  t        |      d       | j                   |d      | j                  u        nQ| j                  t        |      d       | j                  t	        |      d       | j                  t        |      d       | j                  t        |      |j                  |j                  |j                  g       | j                  |D cg c]  }|j                   c}| j                         | j                  |D cg c]  }|j                   c}| j                         | j                  |D cg c]  }|j                   c}g d       t!        || j                  d      D ]  \  }}| j#                  ||   |        t!        || j                  d      D ]  \  }}| j#                   ||      |        t%        |t&              r6| j                  |j(                   |d      cxu xr |d   u        y c        y |j*                  t        u r6| j                  |j(                   |d	      cxu xr |d   u        y c        y t%        |t,              r6| j                  |j(                   |d
      cxu xr |d   u        y c        y | j                  |j(                   || j                  d         cxu xr |d   u nc        y c c}w c c}w c c}w )Nz<flag 'MainEnum'>rE  z<enum 'MainEnum'>)zfirst is first!zsecond is first!zthird is first!Tstrictr	  r  rD  rC   r'   )r  rV  r   reprrY  r_  r   rZ  r   r  r  r	  r   rW  r`  r8  zipassertIsr
  r	   r  rX  r   )r   TEmr   r   r`  s         r;   test_basicsz_EnumTests.test_basics  s   ]]<<T"X':;SW&9:VBZ)<=OOBqETZZ/0T"X':;SW&9:VBZ)<=bBHHbii#BC!#$A$

	 	"$%Q%	 	"$%Q%J	  DJJt< 	,LFDMM"T(F+	, T[[> 	-MFEMM"U)V,	-b'"OOBGGr'{@bj@A@A$OOBGGr#w<"V*<=<=D!OOBGGr!u:6
:;:;OOBGGr$++a.'9GRZGH- % & &s   *L.L3L8c                      G d d| j                         }| j                  |       | j                  | j                         | j                  D ]  }| j                  |        y )Nc                       e Zd Zy)+_EnumTests.test_bool_is_true.<locals>.EmptyNr   rK   r=   r;   Emptyr    r   r=   r  )r  r   r  )r   r  r   s      r;   test_bool_is_truez_EnumTests.test_bool_is_true  sM    	DNN 	&mm 	$FOOF#	$r=   c                     | j                   }| j                  t              5  d| j                   _        d d d        y # 1 sw Y   y xY w)Nzreally first)r  rp  rq  r  )r   r  s     r;   test_changing_member_failsz%_EnumTests.test_changing_member_fails  s:    ==~. 	2#1DMM 	2 	2 	2s	   =Ac                      j                   } j                  |j                  |        j                   j                  d   |v        t               t        t        fvr j                  d|v        |j                  } j                  ||        G d dt              } j                  |j                  |       |j                  t        u rP G  fdd j                        } j                  |j                   |        j                  |j"                  |       y  G  fdd j                        } j                  |j                   |        j                  |j"                  |       y )	Nr   r  c                   (    e Zd Z e       Z e       Zy)._EnumTests.test_contains_tf.<locals>.OtherEnumN)rE   rF   rG   r   onetworK   r=   r;   	OtherEnumr    s    &C&Cr=   r  c                   N    e Zd ZW  j                  d   ZW  j                  d   Zy)1_EnumTests.test_contains_tf.<locals>.NotEqualEnumr   rB   NrE   rF   rG   rG  thisthatr   s   r;   NotEqualEnumr    #    ))!,))!,r=   r  c                   N    e Zd ZW  j                  d   ZW  j                  d   Zy)._EnumTests.test_contains_tf.<locals>.EqualEnumr   rB   Nr  r   s   r;   	EqualEnumr    r  r=   r  )r  assertInr  r   r8  typeTestStrEnumClassTestStrEnumFunctionr   r  r   assertNotInr  rX  objectr  r  r  )r   r  valr  r  r  s   `     r;   test_contains_tfz_EnumTests.test_contains_tf  s   ==hnnh/A(23:.0CDDW01mmc8$	 	 	1!!V+-t~~ - \..9\..9-DNN - MM)..(3MM)..(3r=   c                    | j                   } G d dt              }| j                  |j                  |       | j                  |j                  |       | j                  |j
                  |       | j                  |j                  |       | j                  |j                  |       | j                  |j
                  |       | j                  |j                  |       | j                  |j                  |       | j                  |j
                  |       | j                  |j                  |       | j                  |j                  |       | j                  |j
                  |       y )Nc                       e Zd ZdZdZdZy)K_EnumTests.test_contains_same_name_diff_enum_diff_values.<locals>.OtherEnumbrandnewr8  NrE   rF   rG   r  r  r	  rK   r=   r;   r  r    s    EFEr=   r  )r  r   r  r  r  r	  r  )r   r  r  s      r;   -test_contains_same_name_diff_enum_diff_valuesz8_EnumTests.test_contains_same_name_diff_enum_diff_values  s   ==	 	
 	hnnh/hoox0hnnh/3)43iooy1i&&	2iooy1(3))84(3r=   c                     | j                   }| j                  t        t        |            t        t	        |                   y r   )r  r   setdirenum_dirr   r  s     r;   test_dir_on_classz_EnumTests.test_dir_on_class  s,    ]]SWs8B<'89r=   c                     | j                   }| j                  t        t        |j                              t        t        |j                                     y r   )r  r   r  r  r  
member_dirr  s     r;   test_dir_on_itemz_EnumTests.test_dir_on_item  s6    ]]S]+SBHH1E-FGr=   c                      G d d| j                         }| j                  dt        |      v       | j                  dt        |j                        v        y )Nc                   .    e Zd Z e       Z e       Zd Zy)5_EnumTests.test_dir_with_added_behavior.<locals>.Testc                      d| j                   z  S )NzWowser! I'm %s!r  r   s    r;   wowserz<_EnumTests.test_dir_with_added_behavior.<locals>.Test.wowser  s    )DII56r=   N)rE   rF   rG   r   r  theser  rK   r=   r;   Testr    s    6DFE7r=   r  r  )r  r   r  r  )r   r  s     r;   test_dir_with_added_behaviorz'_EnumTests.test_dir_with_added_behavior  sB    	74>> 	7
 	D	12C		N23r=   c                      G d d| j                         } G d d|      }| j                  dt        |      v       | j                  dt        |j                        v        y )Nc                       e Zd Zd Zy)D_EnumTests.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnumc                      y)Nzdid you see me?rK   r   s    r;   	invisiblezN_EnumTests.test_dir_on_sub_with_behavior_on_super.<locals>.SuperEnum.invisible  s    (r=   N)rE   rF   rG   r  rK   r=   r;   	SuperEnumr    s    )r=   r  c                       e Zd Z e       Zy)B_EnumTests.test_dir_on_sub_with_behavior_on_super.<locals>.SubEnumN)rE   rF   rG   r   samplerK   r=   r;   SubEnumr    s	    VFr=   r  r  r  r   r  r  r   r  r  s      r;   &test_dir_on_sub_with_behavior_on_superz1_EnumTests.test_dir_on_sub_with_behavior_on_super  sM    	) 	)	i 	3w<78s7>>'::;r=   c                       G  fdd j                         } G  fdd|      } j                  dt        |      v        j                  dt        |j                        v t        |j                               y )Nc                       e Zd Z fdZy)\_EnumTests.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SuperEnumc                     j                   j                  j                  }j                   j                  t        u r	 ||       }n&t	        |d   t
              r|d   \  }n|} || g| }t        |      dk(  r|d   n||_        d|_        |S )Nr   rB   ztest description)	r  rX  r{  r  
isinstancetuplelen_value_description)ri  r`  kwdsr  r{   create_valuer   s         r;   r{  zd_EnumTests.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SuperEnum.__new__&  s    nn22::>>//69c(C!%(E2(-a',c1L1C*-e*/eAhu"4
r=   NrE   rF   rG   r{  r   s   r;   r  r  %  s    r=   r  c                   .    e Zd ZW  j                  d   Zy)Z_EnumTests.test_dir_on_sub_with_behavior_including_instance_dict_on_super.<locals>.SubEnumrB   N)rE   rF   rG   rG  r  r   s   r;   r  r  3  s    ''*Fr=   r  r  r  r  s   `  r;   >test_dir_on_sub_with_behavior_including_instance_dict_on_superzI_EnumTests.test_dir_on_sub_with_behavior_including_instance_dict_on_super#  sY    	 		+i 	+S\9:W^^)<<c'..>QRr=   c                 |    | j                  t        d      5  | j                  d       d d d        y # 1 sw Y   y xY w)Nz#<.... 'NewBaseEnum'> has no membersr   )r   r  r.  r   s    r;   test_empty_enum_has_no_valuesz(_EnumTests.test_empty_enum_has_no_values8  s6    ##I/TU 	 Q	  	  	 s   2;c                 t    | j                   }| j                   ||j                        |j                         y r   )r  r  r  )r   Mains     r;   test_enum_in_enum_outz _EnumTests.test_enum_in_enum_out<  s&    }}d4::&

3r=   c                     | j                   }| j                  }| j                  t        |j                  d         t
        u        | j                  t        |j                  d         t
        u        y )Nr9  )r;  rA  r   r  __dict__r@  )r   lazybusys      r;   test_gnv_is_staticz_EnumTests.test_gnv_is_static@  sT    ||||T]]+BCDTUT]]+BCDTUr=   c                     | j                   }i }d||j                  <   d||j                  <   d||j                  <   | j	                  ||j                     d       y )N122503150704)r  r  r  r	  r   )r   r  mappings      r;   	test_hashz_EnumTests.test_hashF  sS    =="(#) "(16:r=   c                 z   | j                  t              5   G d d| j                        }d d d        | j                  t              5   G d d| j                        }d d d        | j                  t              5   G d d| j                        }d d d        | j                  t              5   G d d| j                        }d d d        | j                  t              5   G d d| j                        }d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   y xY w)Nc                       e Zd ZdZy,_EnumTests.test_invalid_names.<locals>.Wrong	   N)rE   rF   rG   mrorK   r=   r;   Wrongr  P      r=   r  c                       e Zd ZdZy)r     N)rE   rF   rG   _create_rK   r=   r;   r  z,_EnumTests.test_invalid_names.<locals>.WrongS  s    r=   c                       e Zd ZdZyr  )rE   rF   rG   _get_mixins_rK   r=   r;   r  z,_EnumTests.test_invalid_names.<locals>.WrongV  s     r=   c                       e Zd ZdZy)r  rB   N)rE   rF   rG   
_find_new_rK   r=   r;   r  z,_EnumTests.test_invalid_names.<locals>.WrongY      
r=   c                       e Zd ZdZyr  )rE   rF   rG   
_any_name_rK   r=   r;   r  z,_EnumTests.test_invalid_names.<locals>.Wrong\  r  r=   )rp  r   r  r   r  s     r;   test_invalid_namesz_EnumTests.test_invalid_namesN  s   z* 	 	 z* 	 	 z* 	!! !	! z* 	 	 z* 	 	 		 		 		! 	!	 		 	s;   D	D<D/D%"D1D
DD"%D.1D:c                 ~      G  fdd j                         } j                  t        |j                        d       y)z=check that setting __str__ to object's is not reset to Enum'sc                   L    e Zd ZW  j                  d   Zd Zej                  Zy)4_EnumTests.test_object_str_override.<locals>.Genericr'   c                      | j                   dS )Nz.test_name_r   s    r;   __repr__z=_EnumTests.test_object_str_override.<locals>.Generic.__repr__c  s    $(KK22r=   N)rE   rF   rG   rG  itemr  r  r  r   s   r;   Genericr  a  s!    %%a(D3nnGr=   r
  z	item.testN)r  r   rY  r	  r   r
  s   ` r;   test_object_str_overridez#_EnumTests.test_object_str_override_  s.    	%dnn 	%
 	W\\*K8r=   c                 8   | j                   }| j                  t        |j                        |j                  j                  j                                | j                  t        |j                        |j                  j                  j                                y r   )r  r   rY  r  r   r  r_  )r   NSs     r;   test_overridden_strz_EnumTests.test_overridden_strh  s^    __RXX(;(;(=>)288==+>+>+@Ar=   c                 L   | j                   }| j                  t        |j                        |j                  j                  j                                | j                  t        |j                        dj                  t        |j                  j                                     y r$  )	r)  r   rY  r  r   r"  r_  r1   r'  )r   NSFs     r;   test_overridden_str_formatz%_EnumTests.test_overridden_str_formatm  se    ##SYY)=)=)?@		*BGGHSYY^^4L,MNr=   c                 L   | j                   }| j                  t        |j                        |j                  j                  j                                | j                  t        |j                        dj                  t        |j                  j                                     y r$  )	r1  r   rY  r  r   r"  r_  r1   r'  )r   NSEs     r;   $test_overridden_str_format_inheritedz/_EnumTests.test_overridden_str_format_inheritedr  sc    ooSYY)=)=)?@		*BGGHSYY^^4L,MNr=   c                 ^   | j                  dd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  |j                  |j
                  |j                  g|       | j                  }| j                   t        u rg d}t        dj                         |      D ]  \  }}||   }| j                  |j                  |t        |             | j                  |j                  |       |j                  t        ur)t        ||j                        r| j                  ||       n| j!                  ||       | j#                  ||       | j%                  t'        |      |       | j%                  | ||              y )N	MinorEnumjune july augustrC   junejulyaugustr  r   r   r  r  r  r  r8  r	   r  splitr`  r   rX  r  r
  assertNotEqualr  r  r  r   r  lstr8  monthaves          r;   !test_programmatic_function_stringz,_EnumTests.test_programmatic_function_stringw  sZ   NN;0BC	9oS3y>2YI61A1AB	 >>W$-F/557@ 
	,IE2% AQWWb$y/:QVVU+&&f4IyOfOf9g  B'##Ar*MM!Y'MM$q'9-MM!Yr]+
	,r=   c                 N   | j                  dg d      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  |j                  |j
                  |j                  g|       | j                  }| j                   t        u rg d}t        dj                         |      D ]  \  }}||   }| j                  |j                  |       | j                  |j                  |       |j                  t        ur)t        ||j                        r| j                  ||       n| j!                  ||       | j#                  ||       | j%                  t'        |      |       | j%                  | ||              y )Nr  r  rC   r  r  r   s          r;   &test_programmatic_function_string_listz1_EnumTests.test_programmatic_function_string_list  sT   NN;0JK	9oS3y>2YI61A1AB	 >>W$-F/557@ 
	,IE2% AQWWb)QVVU+&&f4IyOfOf9g  B'##Ar*MM!Y'MM$q'9-MM!Yr]+
	,r=   c                 z   | j                  dd| j                  d   fd| j                  d   fd| j                  d   ff      }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       | j                  |j
                  |j                  |j                  g|       t        d	j                         | j                        D ]  \  }}||   }| j                  |j                  |       | j                  |j                  |       |j                  t        ur)t        ||j                        r| j                  ||       n| j!                  ||       | j#                  ||       | j%                  t'        |      |       | j%                  | ||              y 
Nr  r  r   r  rB   r  r'   rC   r  )r  rG  r   r   r  r  r  r  r  r  r8  r`  r   rX  r  r
  r  r  r  r  r   r  r!  r"  r#  r$  s         r;   #test_programmatic_function_iterablez._EnumTests.test_programmatic_function_iterable  s}   NN$,,Q/064;M;Ma;P2QT\^b^p^pqr^sStu	 9oS3y>2YI61A1AB	 /557E 
	,IE2% AQWWb)QVVU+&&f4IyOfOf9g  B'##Ar*MM!Y'MM$q'9-MM!Yr]+
	,r=   c           
         | j                  dt        d| j                  d   fd| j                  d   fd| j                  d   ff            }t        |      }| j	                  t        |      t        |             | j	                  t        |      d|       | j	                  |j                  |j                  |j                  g|       t        d	j                         | j                        D ]  \  }}||   }|j                  t        ur)t        ||j                        r| j	                  ||       n| j                  ||       | j!                  ||       | j#                  t%        |      |       | j#                  | ||              y r)  )r  r   rG  r   r   r  r  r  r  r  r  r8  rX  r  r
  r  r  r  r  r*  s         r;   $test_programmatic_function_from_dictz/_EnumTests.test_programmatic_function_from_dict  se   NNfd&8&8&;<vtGYGYZ[G\>]`hjnj|j|}~j  `A  B  C	 9oS3y>2YI61A1AB	 /557E 	,IE2% A&&f4IyOfOf9g  B'##Ar*MM!Y'MM$q'9-MM!Yr]+	,r=   c           	         | j                   }| j                  rl| j                  t         |d            d       | j                  t        |j                        d       | j                  t        | j
                        d       nwt        |t              r&| j                  t        |j                        d       nA| j                  t        |j                        d| j                  d   d|j                         t        | j                  | j                  |d	
      D ]<  \  }}}| j                  t        |      d|j                  d|j                  d       > y )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  rV  r   r  r  rZ  r
  r	   r8  _value_repr_r  rW  r   r`  r   r  r   r`  r   s        r;   	test_reprz_EnumTests.test_repr  s    ]]<<T"Q%[/:T"''],@AT$**-/JKG$T"''],GHT"'']dkkRSn,WY[YhYhi#&tzz4;;4#P 	^D%T&\&++v||+\]	^r=   c                 x     G d d| j                         }| j                  t        |j                        d       y )Nc                   <    e Zd Z e       Z e       Z e       Zd Zy)._EnumTests.test_repr_override.<locals>.Genericc                      d| j                   z  S )Nz!don't you just love shades of %s?r  r   s    r;   r  z7_EnumTests.test_repr_override.<locals>.Generic.__repr__  s    :TYYFFr=   N)rE   rF   rG   r   r  r  r	  r  rK   r=   r;   r
  r5    s    FEVFFEGr=   r
  z$don't you just love shades of third?)r  r   r  r	  r  s     r;   test_repr_overridez_EnumTests.test_repr_override  s3    	Gdnn 	G 	W]]#6	r=   c                      G d d| j                         } G d d|      }| j                  t        |j                        d       y )Nc                       e Zd Zd Zy)._EnumTests.test_inherited_repr.<locals>.MyEnumc                      d| j                   z  S )NzMy name is %s.r  r   s    r;   r  z7_EnumTests.test_inherited_repr.<locals>.MyEnum.__repr__  s    '$))33r=   NrE   rF   rG   r  rK   r=   r;   r   r:        4r=   r   c                   6    e Zd Z e       Z e       Z e       Zy)1_EnumTests.test_inherited_repr.<locals>.MySubEnumN)rE   rF   rG   r   r  r  theotherrK   r=   r;   	MySubEnumr?    s    6D6DvHr=   rA  zMy name is that.)r  r   r  r  )r   r   rA  s      r;   test_inherited_reprz_EnumTests.test_inherited_repr  s:    	4T^^ 	4	 	 	inn-/ABr=   c                      G d dt               } G d d|t              }| j                  t        |j                        d       y )Nc                       e Zd Zy)C_EnumTests.test_multiple_superclasses_repr.<locals>._EnumSuperClassNr   rK   r=   r;   _EnumSuperClassrE    r   r=   rF  	metaclassc                       e Zd ZdZy)5_EnumTests.test_multiple_superclasses_repr.<locals>.ErB   N)rE   rF   rG   ArK   r=   r;   ErJ        Ar=   rL  z<E.A: 1>)r   r   r   r  rK  )r   rF  rL  s      r;   test_multiple_superclasses_reprz*_EnumTests.test_multiple_superclasses_repr  s4    	 		 	accJ/r=   c                     | j                  t        t        | j                              | j                  j                  | j                  j
                  | j                  j                  g       y r   )r   r   r'  r  r	  r  r  r   s    r;   test_reversed_iteration_orderz(_EnumTests.test_reversed_iteration_order  sI    Xdmm,-$$dmm&:&:DMM<O<OP	r=   )&rE   rF   rG   r   r8  r]  rb  rd  rt  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  r7  rB  rN  rP  rK   r=   r;   r   r      s     FHQTIH#(	#IJ$2
4:4,:H4<S* 4V;"9B
O
O
,0,0,0,,^
C0r=   r   c                   $    e Zd Zd Zd Zd Zd Zy)_PlainOutputTestsc                    | j                   }| j                  rl| j                  t         |d            d       | j                  t        |j                        d       | j                  t        | j
                        d       n%| j                  t        |j                        d       t        | j                  | j                  |d      D ].  \  }}}| j                  t        |      d|j                         0 y )	Nr   zMainEnum(0)MainEnum.dupeMainEnum.first|thirdMainEnum.thirdTr  	MainEnum.
r  rV  r   rY  r  rZ  r  rW  r8  r   r1  s        r;   test_strz_PlainOutputTests.test_str  s    ]]<<SAZ7S\?;S_.DES\+;<#&tzz4;;4#P 	KD%S[6;;*IJ	Kr=   c                    | j                   }| j                  rK| j                  t        |j                        d       | j                  t        | j
                        d       n%| j                  t        |j                        d       t        | j                  | j                  |d      D ].  \  }}}| j                  t        |      d|j                         0 y NrT  rU  rV  Tr  rW  
r  rV  r   r_  r  rZ  r  rW  r8  r   r1  s        r;   test_formatz_PlainOutputTests.test_format      ]]<<VBGG_o>VDJJ/1GHVBGG_.>?#&tzz4;;4#P 	ND%VF^fkk-LM	Nr=   c                     | j                   }| j                  t        |j                        d|j                  d|j                         | j                  t        |j                        d       y )NNewFormatEnum.first FIRST)r  r   rY  r  r  r_  r   NFs     r;   test_overridden_formatz(_PlainOutputTests.test_overridden_format  sQ    RXX(="**VXV^V^?_`)73r=   c                    | j                   }| j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         y N{}{:}{:20}{:^20}{:>20}{:<20}{:5.2})r  rd  r  r  s     r;   test_format_specsz#_PlainOutputTests.test_format_specs!  s    ]]tRYY/ubii0w		2x3x3x3x3r=   NrE   rF   rG   rY  r]  re  ro  rK   r=   r;   rR  rR    s    	KN4
4r=   rR  c                   $    e Zd Zd Zd Zd Zd Zy)_MixedOutputTestsc                    | j                   }| j                  rK| j                  t        |j                        d       | j                  t        | j
                        d       n%| j                  t        |j                        d       t        | j                  | j                  |d      D ].  \  }}}| j                  t        |      d|j                         0 y r[  rX  r1  s        r;   rY  z_MixedOutputTests.test_str.  s    ]]<<S\?;S_.DES\+;<#&tzz4;;4#P 	KD%S[6;;*IJ	Kr=   c                    | j                   }| j                  rK| j                  t        |j                        d       | j                  t        | j
                        d       n%| j                  t        |j                        d       t        | j                  | j                  |d      D ].  \  }}}| j                  t        |      d|j                         0 y r[  r\  r1  s        r;   r]  z_MixedOutputTests.test_format8  r^  r=   c                     | j                   }| j                  t        |j                        d       | j                  t	        |j                        d       y )Nr`  rb  )r  r   rY  r  r_  rc  s     r;   re  z(_MixedOutputTests.test_overridden_formatB  s?    RXX(=>)73r=   c                    | j                   }| j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         y rg  )r  rd  r  r  s     r;   ro  z#_MixedOutputTests.test_format_specsG  s    ]]tRXX.ubhh/w1x2x2x2x2r=   Nrp  rK   r=   r;   rr  rr  ,  s    KN4
3r=   rr  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)_MinimalOutputTestsc                    | j                   }| j                  rK| j                  t        |j                        d       | j                  t        | j
                        d       n;| j                  t        |j                        t        | j                  d                t        | j                  | j                  |d      D ]*  \  }}}| j                  t        |      t        |             , y NrD  5r'   Tr  )	r  rV  r   rY  r  rZ  r8  r  rW  r1  s        r;   rY  z_MinimalOutputTests.test_strT  s    ]]<<S\3/S_c2S\3t{{1~+>?#&tzz4;;4#P 	6D%S[#e*5	6r=   c                    | j                   }| j                  rK| j                  t        |j                        d       | j                  t        | j
                        d       n;| j                  t        |j                        t        | j                  d                t        | j                  | j                  |d      D ]*  \  }}}| j                  t        |      t        |             , y rz  )	r  rV  r   r_  r  rZ  r8  r  rW  r1  s        r;   r]  z_MinimalOutputTests.test_format^  s    ]]<<VBGG_c2VDJJ/5VBGG_fT[[^.DE#&tzz4;;4#P 	<D%VF^VE];	<r=   c                     | j                   }| j                  t        |j                        t        | j                  d                | j                  t        |j                        d       y )Nr   rb  )r  r   rY  r  r8  r_  rc  s     r;   re  z*_MinimalOutputTests.test_overridden_formath  sK    RXXDKKN(;<)73r=   c                 :   | j                   }| j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         |j                  t        u rU| j                  d|j                         | j                  d|j                         | j                  d	|j                         y y )
Nrh  ri  rj  rk  rl  rm  z{:n}rn  z{:f})r  rb  r	  rX  floatr  s     r;   ro  z%_MinimalOutputTests.test_format_specsm  s    ]]  rxx0  1  "((3  2884  2884  2884u$$$VRXX6$$Xrxx8$$VRXX6 %r=   c                     | j                   }t        j                  |      }| j                  ||       | j                  ||       t        j                  |      }| j                  ||       | j                  ||       y r   )r  copyr   r  deepcopyr   r  copieddeeps       r;   	test_copyz_MinimalOutputTests.test_copyz  sb    ]]2$fb!}}R r"dBr=   c                    | j                   }t        j                  |j                        }| j                  ||j                         t        j                  |j                        }| j                  ||j                         y r   )r  r  r  r  r  r  s       r;   test_copy_memberz$_MinimalOutputTests.test_copy_member  sS    ]]288$fbhh'}}RXX&dBHH%r=   N)	rE   rF   rG   rY  r]  re  ro  r  r  rK   r=   r;   rx  rx  R  s     6<4
7 &r=   rx  c                       e Zd Zd Zd Zd Zy)
_FlagTestsc                     | j                  t        d      5 }| j                  d       d d d        | j                  j                  j
                  d        y # 1 sw Y   0xY w)Nz'RED' is not a valid RED)r   r   r  r  rz   __context__)r   ctxs     r;   *test_default_missing_with_wrong_type_valuez5_FlagTests.test_default_missing_with_wrong_type_value  sV    ### 	! MM% 		!
 	cmm//6	! 	!s   AA!c                 B    G d d| j                         }|\  }}|j                  }| j                  | |       | j                  | |       | j                  ||z    |d             | j                  |  |d             | j                   |d       ||z          G d d| j                         }|\  }}}|j                  }	| j                  | ||z         | j                  | ||z         | j                  | ||z         | j                  ||z   |       | j                  ||z   |       | j                  ||z   |       | j                  ||z  |z    |d             | j                  |	  |d             | j                   |d       ||z  |z         y )Nc                       e Zd ZdZdZdZy)<_FlagTests.test_closed_invert_expectations.<locals>.ClosedABrB   r'   rC   NrE   rF   rG   rK  BMASKrK   r=   r;   ClosedABr    s    AADr=   r  r   c                       e Zd ZdZdZdZdZy)=_FlagTests.test_closed_invert_expectations.<locals>.ClosedXYZrS   r'   rB   r   NrE   rF   rG   XYZr  rK   r=   r;   	ClosedXYZr    s    AAADr=   r  )r  r  r  )
r   r  rK  r  AB_MASKr  r  r  r  XYZ_MASKs
             r;   test_closed_invert_expectationsz*_FlagTests.test_closed_invert_expectations  st   	t~~ 	 1--qb!qb!!fhqk*wh,x{lQqS*	 	
 1a>>qb!A#qb!A#qb!A#!fa !fa !fa !Ah	!-xi1.y|mac!e-r=   c                     G d d| j                         }|\  }}|j                  }|j                  t        t        fv r| j                  |  |d             | j                  |  |d             | j                  ||z    |d             | j                  |  |d             | j                   |d       |       nw| j                  | |       | j                  | |       | j                  ||z    |d             | j                  |  |d             | j                   |d       ||z          G d d| j                         }|\  }}}|j                  }	|j                  t        t        fv r| j                  |  |d	             | j                  |  |d
             | j                  |  |d             | j                  ||z    |d             | j                  ||z    |d             | j                  ||z    |d             | j                  ||z  |z    |d             | j                  |	  |d             | j                   |d       |	       y | j                  | ||z         | j                  | ||z         | j                  | ||z         | j                  ||z   |       | j                  ||z   |       | j                  ||z   |       | j                  ||z  |z    |d             | j                  |	  |d             | j                   |d       ||z  |z         y )Nc                       e Zd ZdZdZdZy)8_FlagTests.test_open_invert_expectations.<locals>.OpenABrB   r'      Nr  rK   r=   r;   OpenABr    s    AADr=   r           r   c                       e Zd ZdZdZdZdZy)9_FlagTests.test_open_invert_expectations.<locals>.OpenXYZrS   r'   rB      Nr  rK   r=   r;   OpenXYZr    s    AAADr=   r                       )r  r  
_boundary_r   r   r  r   )
r   r  rK  r  r  r  r  r  r  r  s
             r;   test_open_invert_expectationsz(_FlagTests.test_open_invert_expectations  s   	T^^ 	 1++-MM1"fSk*MM1"fSk*MMAaC&&+.MM7(F1I.MM6!9*g.MM1"a MM1"a MMAaC&&),MM7(F1I.MM6!9*qs,	dnn 	
 1a<<%.MM1"gbk*MM1"gbk*MM1"gbk*MMAaC&'"+.MMAaC&'"+.MMAaC&'"+.MMAaCE(GBK0MM8)WQZ0OOWQZK2MM1"ac"MM1"ac"MM1"ac"MMAaC&!$MMAaC&!$MMAaC&!$MMAaCE(GAJ/MM8)WQZ0OOWQZK!A#a%1r=   N)rE   rF   rG   r  r  r  rK   r=   r;   r  r    s    7.@02r=   r  c                       e Zd ZeZy)TestPlainEnumClassNrE   rF   rG   r   r  rK   r=   r;   r  r        Ir=   r  c                       e Zd ZeZy)TestPlainEnumFunctionNr  rK   r=   r;   r  r    r  r=   r  c                       e Zd ZeZd Zy)TestPlainFlagClassc                     G d dt               }| j                  |j                  j                  d       | j	                  |j
                  j                  d        | j                  t        d      5  |j                  |j
                  z   d d d        | j                  t        d      5  |j
                  |j                  z   d d d        | j                  t        d      5  |j                  |j
                  z   d d d        | j                  t        d      5  |j
                    d d d        y # 1 sw Y   xY w# 1 sw Y   zxY w# 1 sw Y   NxY w# 1 sw Y   y xY w)Nc                       e Zd ZdZdZy)?TestPlainFlagClass.test_none_member.<locals>.FlagWithNoneMemberrB   N)rE   rF   rG   rK  rL  rK   r=   r;   FlagWithNoneMemberr    s    AAr=   r  rB   zA'FlagWithNoneMember.E' cannot be combined with other flags with |zA'FlagWithNoneMember.E' cannot be combined with other flags with &zB'FlagWithNoneMember.E' cannot be combined with other flags with \^z)'FlagWithNoneMember.E' cannot be inverted)r   r   rK  r`  r  rL  r   r  )r   r  s     r;   test_none_memberz#TestPlainFlagClass.test_none_member  s0   	 	 	+--33Q7(**00$7##I/st 	8  #5#7#77	8##I/st 	8  #5#7#77	8##I/tu 	8  #5#7#77	8##I/[\ 	"!!!	" 	"	8 	8	8 	8	8 	8	" 	"s0   2D1*D="E	E1D:=E	EEN)rE   rF   rG   r   r  r  rK   r=   r;   r  r    s    I"r=   r  c                       e Zd ZeZy)TestPlainFlagFunctionN)rE   rF   rG   r   r  rK   r=   r;   r  r    r  r=   r  c                       e Zd ZeZd Zy)TestIntEnumClassc                      G d dt               }| j                  |j                  j                  d       | j	                  |j                  j                  |j                         y )Nc                       e Zd ZdZdZy)3TestIntEnumClass.test_shadowed_attr.<locals>.NumberrB   r'   N)rE   rF   rG   divisor	numeratorrK   r=   r;   Numberr    s    GIr=   r  rB   r   r   r  r  r  r   r  s     r;   test_shadowed_attrz#TestIntEnumClass.test_shadowed_attr
  sH    	W 	 	1115f&&..?r=   NrE   rF   rG   r   r  r  rK   r=   r;   r  r    s    I@r=   r  c                       e Zd ZeZd Zy)TestIntEnumFunctionc                     t        dd      }| j                  |j                  j                  d       | j	                  |j                  j                  |j                         y )Nr  )r  r  rB   r  r  s     r;   r  z&TestIntEnumFunction.test_shadowed_attr  sG    #;<1115f&&..?r=   Nr  rK   r=   r;   r  r    s    I@r=   r  c                       e Zd ZeZd Zy)r  c                 *    G d dt               }| j                  |j                  j                         d       | j                  |j                  j                         d       | j	                  |j                  j                  |j                         y )Nc                       e Zd ZdZdZy)1TestStrEnumClass.test_shadowed_attr.<locals>.Bookauthorr"  N)rE   rF   rG   r  r"  rK   r=   r;   Bookr  !  s    FEr=   r  AuthorTitler	   r   r  r"  r  r   r  s     r;   r  z#TestStrEnumClass.test_shadowed_attr   sf    	7 	 	**,h7))+W5djj''5r=   NrE   rF   rG   r	   r  r  rK   r=   r;   r  r    s    I6r=   r  c                       e Zd ZeZd Zy)r  c                 $   t        dd      }| j                  |j                  j                         d       | j                  |j                  j                         d       | j	                  |j                  j                  |j                         y )Nr  )r  r"  r  r  r  r  s     r;   r  z&TestStrEnumFunction.test_shadowed_attr-  se    v23**,h7))+W5djj''5r=   Nr  rK   r=   r;   r  r  *  s    I6r=   r  c                       e Zd ZeZy)TestIntFlagClassNrE   rF   rG   r   r  rK   r=   r;   r  r  5      Ir=   r  c                       e Zd ZeZy)TestIntFlagFunctionNr  rK   r=   r;   r  r  9  r  r=   r  c                   $    e Zd Z G d dee      Zy)TestMixedIntClassc                       e Zd Zy)TestMixedIntClass.enum_typeNr   rK   r=   r;   r  r  >      r=   r  N)rE   rF   rG   intr   r  rK   r=   r;   r  r  =      $C$r=   r  c                        e Zd Z ede      Zy)TestMixedIntFunctionr  r  N)rE   rF   rG   r   r  r  rK   r=   r;   r  r  A      [s+Ir=   r  c                   $    e Zd Z G d dee      Zy)TestMixedStrClassc                       e Zd Zy)TestMixedStrClass.enum_typeNr   rK   r=   r;   r  r  F  r  r=   r  N)rE   rF   rG   rY  r   r  rK   r=   r;   r  r  E  r  r=   r  c                        e Zd Z ede      Zy)TestMixedStrFunctionr  r  N)rE   rF   rG   r   rY  r  rK   r=   r;   r  r  I  r  r=   r  c                   $    e Zd Z G d dee      Zy)TestMixedIntFlagClassc                       e Zd Zy)TestMixedIntFlagClass.enum_typeNr   rK   r=   r;   r  r  N  r  r=   r  N)rE   rF   rG   r  r   r  rK   r=   r;   r  r  M  r  r=   r  c                        e Zd Z ede      Zy)TestMixedIntFlagFunctionr  r  N)rE   rF   rG   r   r  r  rK   r=   r;   r  r  Q  r  r=   r  c                   f    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y)TestMixedDateClass     r    rC        r  r  )r   r  r  )r  rC   r  )r  r  r  c                       e Zd Zed        Zy)TestMixedDateClass.enum_typec                     g d}||   S Nr  rK   r   r6  countlast_valuesr8  s        r;   r9  z2TestMixedDateClass.enum_type._generate_next_value_[  s    DF%= r=   Nr?  rK   r=   r;   r  r  Z  s    		! 
	!r=   r  N)rE   rF   rG   r   r8  rG  r   r  rK   r=   r;   r  r  U  s<    4R $tQ"3T$B5GHFCM!D$ !r=   r  c                   n    e Zd Z eddd       eddd       eddd	      gZg d
Zd Z eddeie      Zy)TestMixedDateFunctionr   r  r  r  rC   r  r  r  r  r  c                     g d}||   S r	  rK   r
  s        r;   r9  z+TestMixedDateFunction._generate_next_value_g  s    @e}r=   r  r9  r  N)	rE   rF   rG   r   r8  rG  r9  r   r  rK   r=   r;   r  r  a  sK    4R $tQ"3T$B5GHFCM [#:;P"QX\]Ir=   r  c                   f    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y)TestMinimalDateClass  r  rB     r'   r    )r  r  rB   )r  r'   r  )r  rB   rB   c                       e Zd Zd Zy)TestMinimalDateClass.enum_typec                     g d}||   S Nr  rK   r
  s        r;   r9  z4TestMinimalDateClass.enum_type._generate_next_value_u  s    AF%= r=   Nr:  rK   r=   r;   r  r  s  s    	!r=   r  N)rE   rF   rG   r   r8  rG  r   r  rK   r=   r;   r  r  n  s<    4QdAr!2Dq!4DEF@M!D( !r=   r  c                   x    e Zd Z eddd       eddd       eddd      gZg dZed	        Z ed
deie      Z	y)TestMinimalDateFunctionr  r  rB   r  r'   r  r  r  c                     g d}||   S r  rK   r
  s        r;   r9  z-TestMinimalDateFunction._generate_next_value_  s    =e}r=   r  r9  r  N)
rE   rF   rG   r   r8  rG  r@  r9  r   r  rK   r=   r;   r  r  z  sX    4QdAr!2Dq!4DEF@M  '>?T&U\`aIr=   r  c                   ,    e Zd Zg dZ G d dee      Zy)TestMixedFloatClassg?g@gffffff
@c                       e Zd Zd Zy)TestMixedFloatClass.enum_typec                     g d}||   S Nr  rK   r
  s        r;   r9  z3TestMixedFloatClass.enum_type._generate_next_value_      $F%= r=   Nr:  rK   r=   r;   r  r!        	!r=   r  N)rE   rF   rG   r8  r  r   r  rK   r=   r;   r  r    s    F!E4 !r=   r  c                   4    e Zd Zg dZd Z eddeie      Zy)TestMixedFloatFunctionr  c                     g d}||   S r#  rK   r
  s        r;   r9  z,TestMixedFloatFunction._generate_next_value_       e}r=   r  r9  r  N)rE   rF   rG   r8  r9  r   r  r  rK   r=   r;   r'  r'    s$    F [#:;P"QX]^Ir=   r'  c                   ,    e Zd Zg dZ G d dee      Zy)TestMinimalFloatClassg@g      @gffffff@c                       e Zd Zd Zy)TestMinimalFloatClass.enum_typec                     g d}||   S Nr,  rK   r
  s        r;   r9  z5TestMinimalFloatClass.enum_type._generate_next_value_  r$  r=   Nr:  rK   r=   r;   r  r.    r%  r=   r  N)rE   rF   rG   r8  r  r   r  rK   r=   r;   r+  r+    s    F!E8 !r=   r+  c                   4    e Zd Zg dZd Z eddeie      Zy)TestMinimalFloatFunctionr,  c                     g d}||   S r0  rK   r
  s        r;   r9  z.TestMinimalFloatFunction._generate_next_value_  r)  r=   r  r9  r  N)rE   rF   rG   r8  r9  r   r  r  rK   r=   r;   r2  r2    s$    F '>?T&U\abIr=   r2  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 Zedd Zfde Zgdf Zhdg Zidh Zjdi Zkdj Zldk Zmyl)m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               }|| _        y )Nc                       e Zd ZdZdZdZdZy)!TestSpecial.setUp.<locals>.SeasonrB   r'   rC   rS   N)rE   rF   rG   rk  rl  rm  WINTERrK   r=   r;   rn  r8        FFFFr=   rn  c                        e Zd ZdZdZdZdZdZy)!TestSpecial.setUp.<locals>.GradesrE  rS   rC   r'   r   NrE   rF   rG   rK  r  CDFrK   r=   r;   Gradesr<        AAAAAr=   rA  c                       e Zd ZdZdZdZdZy)&TestSpecial.setUp.<locals>.DirectionaleastwestnorthsouthN)rE   rF   rG   EASTWESTNORTHSOUTHrK   r=   r;   DirectionalrD    s    DDEEr=   rM  r   r   c                       e Zd ZdZdZy)"TestSpecial.setUp.<locals>.Holiday)  rB   rB   )rP  rC   r  N)rE   rF   rG   NEW_YEARIDES_OF_MARCHrK   r=   r;   HolidayrO    s    !H'Mr=   rS  )	r   rn  r   rA  rY  rM  datetimer   rS  )r   rn  rA  rM  r   rS  s         r;   r]  zTestSpecial.setUp  s^    	T 	
 	W 	 	#t 	
 '!	(dD 	( r=   c                     G d dt               }| j                  |j                         | j                  |j                          G d dt               }| j                  |j                         | j	                  |j                          G d dt
        t               }| j                  |j                         | j	                  |j                         y )Nc                       e Zd ZdZdZy)$TestSpecial.test_bool.<locals>.LogicTFNrE   rF   rG   truefalserK   r=   r;   LogicrW    s    DEr=   r[  c                       e Zd ZdZdZd Zy)(TestSpecial.test_bool.<locals>.RealLogicTFc                 ,    t        | j                        S r   )boolr  r   s    r;   __bool__z1TestSpecial.test_bool.<locals>.RealLogic.__bool__      DLL))r=   N)rE   rF   rG   rY  rZ  r`  rK   r=   r;   	RealLogicr]    s    DE*r=   rb  c                       e Zd ZdZdZy)'TestSpecial.test_bool.<locals>.IntLogicrB   r   NrX  rK   r=   r;   IntLogicrd        DEr=   re  )r   r   rY  rZ  r   r  )r   r[  rb  re  s       r;   	test_boolzTestSpecial.test_bool  s    	D 	 	

#$	* 	*
 		')	sD 	 	&(r=   c                 <   | j                   }| j                  t              5  |j                  |j                  k   d d d        | j                  t              5  |j                  dkD   d d d        | j                  |j                  d        G d dt              }| j                  |j                  |j                         | j                  t              5  |j                  |j                  k   d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrS   rB   c                       e Zd ZdZdZdZy)*TestSpecial.test_comparisons.<locals>.PartrB   r'   rC   N)rE   rF   rG   rk  CLIPBARRELrK   r=   r;   Partrj    s    FDFr=   rm  )rn  rp  r  rk  r9  r  r   rk  )r   rn  rm  s      r;   test_comparisonszTestSpecial.test_comparisons  s    y) 	*MMFMM)	*y) 	MMA	 	FMM1-	4 	
 	FMM4;;7y) 	&MMDII%	& 	&	* 	*	 		& 	&s#   C:DD:DDDz
to-do listc                     G d dt               }t        |      }| j                  d|       | j                  d|       | j                  d|       | j                  d|        G d dt               }t        |      }| j                  d|       | j                  d|       | j                  d|       | j                  d|       y )	Nc                       e Zd Zy);TestSpecial.test_dir_with_custom_dunders.<locals>.PlainEnumNr   rK   r=   r;   	PlainEnumrq    r   r=   rr  r  r  r  r   c                   $    e Zd Zd Zd Zd Zd Zy)8TestSpecial.test_dir_with_custom_dunders.<locals>.MyEnumc                 ,    t         j                  |       S r   r  r  r   s    r;   r  zATestSpecial.test_dir_with_custom_dunders.<locals>.MyEnum.__repr__      t,,r=   c                 ,    t         j                  |       S r   rv  r   s    r;   r  z@TestSpecial.test_dir_with_custom_dunders.<locals>.MyEnum.__str__  rw  r=   c                 ,    t         j                  |       S r   rv  r   s    r;   r  zCTestSpecial.test_dir_with_custom_dunders.<locals>.MyEnum.__format__
  rw  r=   c                      y r   rK   r   s    r;   r   zATestSpecial.test_dir_with_custom_dunders.<locals>.MyEnum.__init__  rS  r=   N)rE   rF   rG   r  r  r  r   rK   r=   r;   r   rt    s    ---r=   r   )r   r  r  r  )r   rr  cls_dirr   s       r;   test_dir_with_custom_dundersz(TestSpecial.test_dir_with_custom_dunders  s    	 	i.W-G,w/W-	T 	 f+j'*i)lG,j'*r=   c                 Z   | j                  t              5   G d dt              }d d d        | j                  t              5   G d dt              }d d d        | j                  t              5   G d dt              }d d d        y # 1 sw Y   dxY w# 1 sw Y   CxY w# 1 sw Y   y xY w)Nc                       e Zd ZdZdZdZdZy)4TestSpecial.test_duplicate_name_error.<locals>.ColorrB   r'   rC   rS   NrE   rF   rG   redgreenbluerK   r=   r;   Colorr    s    r=   r  c                       e Zd ZdZdZdZd Zy)r  rB   r'   rC   c                      y)Nr  rK   r   s    r;   r  z8TestSpecial.test_duplicate_name_error.<locals>.Color.red!  s     r=   Nr  rK   r=   r;   r  z4TestSpecial.test_duplicate_name_error.<locals>.Color  s    !r=   c                   <    e Zd Zej                  d        ZdZdZdZy)r  c                      y)NredderrK   r   s    r;   r  z8TestSpecial.test_duplicate_name_error.<locals>.Color.red&  s    #r=   rB   r'   rC   N)rE   rF   rG   r.   r  r  r  r  rK   r=   r;   r  z4TestSpecial.test_duplicate_name_error.<locals>.Color%  s'    $ $r=   rp  r  r   r   r  s     r;   test_duplicate_name_errorz%TestSpecial.test_duplicate_name_error  s    y) 	 	 y) 	!! !	! y) 	 	 		 		! 	!	 	s#   B	B0B!	BB!B*c                 x    t        t        t              rt        | j                  t        j                  d       y )Nrj   )r  ri   	Exceptionr   rG   r   s    r;    test_enum_function_with_qualnamez,TestSpecial.test_enum_function_with_qualname-  s(    fi(L,,.CDr=   c                     G d dt               }| j                  |j                  j                  t               | j                  |j
                  j                  t               | j                  |j                  j                  t                G d d       G d d       G fddt               }| j                  |j                  j                         | j                  |j                  j                          G d	 d
       G fddt               }| j                  |j                  j                         y)2Support using Enum to refer to types deliberately.c                       e Zd ZeZeZeZy)/TestSpecial.test_enum_of_types.<locals>.MyTypesN)	rE   rF   rG   r  ir  frY  r   rK   r=   r;   MyTypesr  4  s    AAAr=   r  c                       e Zd Zy)+TestSpecial.test_enum_of_types.<locals>.FooNr   rK   r=   r;   Foor  ;  r   r=   r  c                       e Zd Zy)+TestSpecial.test_enum_of_types.<locals>.BarNr   rK   r=   r;   Barr  =  r   r=   r  c                       e Zd ZW ZW  Zy)0TestSpecial.test_enum_of_types.<locals>.MyTypes2N)rE   rF   rG   r   br  r  s   r;   MyTypes2r  ?  s    AAr=   r  c                       e Zd Zy)8TestSpecial.test_enum_of_types.<locals>.SpamEnumNotInnerNr   rK   r=   r;   SpamEnumNotInnerr  D  r   r=   r  c                       e Zd ZW  Zy)0TestSpecial.test_enum_of_types.<locals>.SpamEnumN)rE   rF   rG   rj  )r  s   r;   SpamEnumr  F  s    #Dr=   r  N)r   r   r  r`  r  r  r  r   rY  r   r  rj  )r   r  r  r  r  r  r  s       @@@r;   test_enum_of_typeszTestSpecial.test_enum_of_types2  s    	d 	 	#.%0#.	 		 		t 	 	))3/))3/	 		$t 	$,,.>?r=   c                     G d dt               }| j                  |j                  j                  t        j
                  t                  | j                  |j                  j                  t        t                  | j                  t        |j                        d       | j                  t        |j                        d       y )Nc                   4    e Zd Zej                  e   Zee   Zy)3TestSpecial.test_enum_of_generic_aliases.<locals>.EN)	rE   rF   rG   typingListr  r   r   r  rK   r=   r;   rL  r  K  s    C AS	Ar=   rL  z<E.a: typing.List[int]>z<E.b: list[int]>)
r   r   r   r`  r  r  r  r  r   r  )r   rL  s     r;   test_enum_of_generic_aliasesz(TestSpecial.test_enum_of_generic_aliasesJ  s    	 	 	FKK$45DI.acc$=>acc$67r=   rC      zinner classes are not membersc                    | j                  t        d      5   G d dt              }ddd       | j                  t	        j
                  |             | j                  |j                  j                  d       | j                  |j
                  j                  j                  j                  d       | j                  t        |j
                  j                        |j
                  j                  j                  |j
                  j                  j                  g       | j                  t        |      |j                  |j                  |j
                  g       y# 1 sw Y   9xY w)z-
        Check for warnings pre-3.13
        zwill not become a memberc                   *    e Zd ZdZdZ G d de      Zy)BTestSpecial.test_nested_classes_in_enum_are_members.<locals>.OuterrB   r'   c                       e Zd ZdZdZy)HTestSpecial.test_nested_classes_in_enum_are_members.<locals>.Outer.Inner
   r  NrE   rF   rG   r   barrK   r=   r;   Innerr  _  s    CCr=   r  NrE   rF   rG   r   r  r   r  rK   r=   r;   Outerr  \  s    D r=   r  NrB   r  )assertWarnsRegexDeprecationWarningr   r   r  r  r   r   r`  r   r   r  r  r   r  s     r;   'test_nested_classes_in_enum_are_membersz3TestSpecial.test_nested_classes_in_enum_are_membersS  s    ""#57QR 	 	 	
5;;67***..44b9""#[[""EKK$5$5$9$9:	 	KWWeggu{{+		 	s   EE(zinner classes are still membersc                      G d dt               }| j                  t        |j                  t                     | j                  |j                  j                  d       | j                  |j                  j                  j                  d       | j                  t        |j                        |j                  j                  |j                  j                  g       | j                  t        |      |j                  |j                  g       y)'Support locally-defined nested classes.c                   *    e Zd ZdZdZ G d de      Zy)FTestSpecial.test_nested_classes_in_enum_are_not_members.<locals>.OuterrB   r'   c                       e Zd ZdZdZy)LTestSpecial.test_nested_classes_in_enum_are_not_members.<locals>.Outer.Innerr  r  Nr  rK   r=   r;   r  r  w  s    r=   r  Nr  rK   r=   r;   r  r  t  s    AA r=   r  rB   r  Nr   r   r  r  r  r   r   r`  r   r   r  r  r  s     r;   +test_nested_classes_in_enum_are_not_membersz7TestSpecial.test_nested_classes_in_enum_are_not_membersn  s    	D 	 	
5;;56*..3[[__ekkoo.	 	KWWegg	r=   c                      G d dt               }| j                  t        |j                  t                     | j                  |j                  j                  d       | j                  |j                  j                  j                  d       | j                  t        |j                        |j                  j                  |j                  j                  g       | j                  t        |      |j                  |j                  g       y )Nc                   4    e Zd ZdZdZe G d de             Zy)ETestSpecial.test_nested_classes_in_enum_with_nonmember.<locals>.OuterrB   r'   c                       e Zd ZdZdZy)KTestSpecial.test_nested_classes_in_enum_with_nonmember.<locals>.Outer.Innerr  r  Nr  rK   r=   r;   r  r        r=   r  N)rE   rF   rG   r   r  r   r   r  rK   r=   r;   r  r    s%    AA  r=   r  rB   r  r  r  s     r;   *test_nested_classes_in_enum_with_nonmemberz6TestSpecial.test_nested_classes_in_enum_with_nonmember  s    	D 	 	
5;;56*..3[[__ekkoo.	 	KWWegg	r=   c                 T    G d dt               }| j                  |j                  j                  t               | j                  |j                  t        u        | j                  |j                  j                  t                G d d       G d d       G fddt               }| j                  |j                  j                         | j                  |j                  u         G d	 d
       G fddt               }| j                  |j                  u        y)r  c                   $    e Zd ZeZ ee      ZeZ	y)>TestSpecial.test_enum_of_types_with_nonmember.<locals>.MyTypesN)
rE   rF   rG   r  r  r   r  r  rY  r   rK   r=   r;   r  r    s    A% AAr=   r  c                       e Zd Zy):TestSpecial.test_enum_of_types_with_nonmember.<locals>.FooNr   rK   r=   r;   r  r    r   r=   r  c                       e Zd Zy):TestSpecial.test_enum_of_types_with_nonmember.<locals>.BarNr   rK   r=   r;   r  r    r   r=   r  c                   &    e Zd ZW Z eW        Zy)?TestSpecial.test_enum_of_types_with_nonmember.<locals>.MyTypes2N)rE   rF   rG   r   r   r  r  s   r;   r  r    s    A#Ar=   r  c                       e Zd Zy)FTestSpecial.test_enum_of_types_with_nonmember.<locals>.SpamEnumIsInnerNr   rK   r=   r;   SpamEnumIsInnerr    r   r=   r  c                        e Zd Z eW        Zy)?TestSpecial.test_enum_of_types_with_nonmember.<locals>.SpamEnumN)rE   rF   rG   r   rj  )r  s   r;   r  r    s    _-Dr=   r  N)r   r   r  r`  r  r   r  r  r   rY  r   r  rj  )r   r  r  r  r  r  r  s       @@@r;   !test_enum_of_types_with_nonmemberz-TestSpecial.test_enum_of_types_with_nonmember  s    	d 	 	#.		U*+#.	 		 		t 	 	))3/

c)*	 		.t 	.89r=   c                 ~    G d dt               }| j                  t        |j                  |             | j	                  |j
                  j                  d       | j	                  |j                  j                  j                  j                  d       | j	                  t        |j                  j                        |j                  j                  j                  |j                  j                  j                  g       | j	                  t        |      |j
                  |j                  |j                  g       y)r  c                   4    e Zd ZdZdZe G d de             Zy)BTestSpecial.test_nested_classes_in_enum_with_member.<locals>.OuterrB   r'   c                       e Zd ZdZdZy)HTestSpecial.test_nested_classes_in_enum_with_member.<locals>.Outer.Innerr  r  Nr  rK   r=   r;   r  r    r  r=   r  N)rE   rF   rG   r   r  r   r   r  rK   r=   r;   r  r    s%    AA  r=   r  rB   r  N)r   r   r  r  r   r   r`  r   r   r  r  r  s     r;   'test_nested_classes_in_enum_with_memberz3TestSpecial.test_nested_classes_in_enum_with_member  s    	D 	 	
5;;67***..44b9""#[[""EKK$5$5$9$9:	 	KWWeggu{{+	r=   c                 f    G d dt               }| j                  t        |      |j                  |j                  g       | j                  t        |j                        |       | j                  |j                  j                  d       | j                  |j                  j                  d       y )Nc                       e Zd ZdZdZy)2TestSpecial.test_enum_with_value_name.<locals>.HuhrB   r'   N)rE   rF   rG   r   r`  rK   r=   r;   Huhr    rf  r=   r  r   rB   )r   r   r   r   r`  r  r  )r   r  s     r;   test_enum_with_value_namez%TestSpecial.test_enum_with_value_name  sw    	$ 	 	cSXXsyy$9:d388nc*/+r=   c                 \    G d dt               } G d dt               } G d dt               } G d dt               }| j                  |j                  |       | j                  |j                  |       | j                  |j                  |       | j                  |j                  |       y )	Nc                       e Zd ZdZy)BTestSpecial.test_contains_name_and_value_overlap.<locals>.IntEnum1rB   NrE   rF   rG   r  rK   r=   r;   IntEnum1r    rM  r=   r  c                       e Zd ZdZy)BTestSpecial.test_contains_name_and_value_overlap.<locals>.IntEnum2rB   Nr  rK   r=   r;   IntEnum2r    rM  r=   r  c                       e Zd ZdZy)BTestSpecial.test_contains_name_and_value_overlap.<locals>.IntEnum3r'   Nr  rK   r=   r;   IntEnum3r    rM  r=   r  c                       e Zd ZdZy)BTestSpecial.test_contains_name_and_value_overlap.<locals>.IntEnum4rB   N)rE   rF   rG   r  rK   r=   r;   IntEnum4r    rM  r=   r  )r   r  r  r  )r   r  r  r  r  s        r;   $test_contains_name_and_value_overlapz0TestSpecial.test_contains_name_and_value_overlap  s|    	w 		w 		w 		w 	hjj(+hjj(+X.hjj(+r=   c                      G d dt               } G d dt              }| j                  |j                  |       | j                  |j                  |       y )Nc                       e Zd ZdZy)HTestSpecial.test_contains_different_types_same_members.<locals>.IntEnum1rB   Nr  rK   r=   r;   r  r    rM  r=   r  c                       e Zd ZdZy)HTestSpecial.test_contains_different_types_same_members.<locals>.IntFlag1rB   Nr  rK   r=   r;   IntFlag1r    rM  r=   r  )r   r   r  r  )r   r  r  s      r;   *test_contains_different_types_same_membersz6TestSpecial.test_contains_different_types_same_members  s>    	w 		w 	hjj(+hjj(+r=   c                     G d dt               } G d d|t        j                        }| j                  t	        |j
                        d       |t               d<   |t               d<   t        | j                  |j
                         t        | j                  |        G d d|      } G d d	|t        j                        }| j                  |j                  |       |t               d<   |t               d	<   t        | j                  |j                         t        | j                  |        G d
 dt               } G d d|t              }| j                  |j                  |       | j                   |d      |j                         |t               d<   |t               d<   t        | j                  |j                         t        | j                  |       y )Nc                       e Zd ZdZd Zy)4TestSpecial.test_inherited_data_type.<locals>.HexIntHexIntc                     t        |       S r   hexr   s    r;   r  z=TestSpecial.test_inherited_data_type.<locals>.HexInt.__repr__      4y r=   Nr<  rK   r=   r;   r  r    s    #L!r=   r  c                       e Zd ZdZdZdZdZy)4TestSpecial.test_inherited_data_type.<locals>.MyEnumr   rB   r'   rC   NrE   rF   rG   rK  r  r>  rK   r=   r;   r   r    s    #LAAAr=   r   z<MyEnum.A: 0x1>c                       e Zd ZdZy)6TestSpecial.test_inherited_data_type.<locals>.SillyIntSillyIntNr   rK   r=   r;   r  r    s    %Lr=   r  c                       e Zd ZdZdZdZdZy)9TestSpecial.test_inherited_data_type.<locals>.MyOtherEnumMyOtherEnumrS   rE     N)rE   rF   rG   r?  rL  r@  rK   r=   r;   r  r    s    (LAAAr=   r  c                       e Zd ZdZd Zy)9TestSpecial.test_inherited_data_type.<locals>.UnBrokenIntUnBrokenIntc                 .    t         j                  | |      S r   )r  r{  )ri  r`  s     r;   r{  zATestSpecial.test_inherited_data_type.<locals>.UnBrokenInt.__new__  s    {{3..r=   Nr  rK   r=   r;   r  r    s    (L/r=   r  c                       e Zd ZdZdZdZdZy)<TestSpecial.test_inherited_data_type.<locals>.MyUnBrokenEnumMyUnBrokenEnumr      r  N)rE   rF   rG   GHIrK   r=   r;   r  r    s    +LAAAr=   r  r   )r  r.   r   r   r  rK  globalsrx   r  rX  rL  r  r  )r   r  r   r  r  r  r  s          r;   test_inherited_data_typez$TestSpecial.test_inherited_data_type  sc   	!S 	!	VTYY 	
 	fhh):;$	($	(dmmVXX6dmmV4	&v 	&	(DII 	
 	k//: (	*#.	- dmm[]];dmm[9	/# 	/	[$ 	
 	n22K@nQ')9)9:#.	- &4	"#dmm^-=-=>dmm^<r=   c                    t         j                  t        j                  j                        }| j                  t        j                  |      t        j                         t         j                  t        j                  j                  dz         }| j                  t              5  t        j                  |       d d d        y # 1 sw Y   y xY w)Ng{Gz?)	r  r  rP   rJ   r`  r  fromhexrp  r   )r   hs     r;   test_floatenum_fromhexz"TestSpecial.test_floatenum_fromhex  s    IIl&&,,-l**1-|/?/?@IIl&&,,t34z* 	$  #	$ 	$ 	$s   &CCc                 .   t        ddt              }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       | j                  |j
                  |j                  |j                  g|       t        dj                         d      D ]h  \  }} ||      }| j                  ||       | j                  |j                  |       | j                  ||       | j                  t        |      |       j y )Nr  r  r  rC   rB   r   r  r   r   r  r  r  r  	enumerater  r   r  r  r  r   r  r!  r  r"  r$  s         r;   test_programmatic_function_typez+TestSpecial.test_programmatic_function_type  s    &8sC	9oS3y>2YI61A1AB	 ""4":":"<a@ 	.HAu!AQ"QVVU+MM!Y'MM$q'9-	.r=   c                 p   t        ddd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  |j                  |j
                  |j                  g|       t        dj                         d      D ]  \  }} ||      }| j                  t        |j                        |       | j                  ||       | j                  |j                  |       | j                  ||       | j                  t        |      |        y )Nr  r  r  r6  rC   r   r   r   r  r  r  r  r$  r  r  r`  r  r   r  r  r  r%  s         r;   ,test_programmatic_function_string_with_startz8TestSpecial.test_programmatic_function_string_with_start+  s    &8C	9oS3y>2YI61A1AB	 ""4":":"<bA 	.HAu!AS\1-1%QVVU+MM!Y'MM$q'9-	.r=   c                 0   t        ddt        d      }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       | j                  |j
                  |j                  |j                  g|       t        dj                         d      D ]h  \  }} ||      }| j                  ||       | j                  |j                  |       | j                  ||       | j                  t        |      |       j y )Nr  r  r  )r  r6  rC   r#  r%  s         r;   *test_programmatic_function_type_with_startz6TestSpecial.test_programmatic_function_type_with_start<  s    &8s"M	9oS3y>2YI61A1AB	 ""4":":"<bA 	.HAu!AQ"QVVU+MM!Y'MM$q'9-	.r=   c                 t   t        dg dd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  |j                  |j
                  |j                  g|       t        dj                         d      D ]  \  }} ||      }| j                  t        |j                        |       | j                  ||       | j                  |j                  |       | j                  ||       | j                  t        |      |        y )Nr  r     r(  rC   r  r)  r%  s         r;   1test_programmatic_function_string_list_with_startz=TestSpecial.test_programmatic_function_string_list_with_startL  s    &@K	9oS3y>2YI61A1AB	 ""4":":"<bA 	.HAu!AS\1-1%QVVU+MM!Y'MM$q'9-	.r=   c                 "   t        dd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  |j                  |j
                  |j                  g|       t        dj                         d      D ]h  \  }} ||      }| j                  ||       | j                  |j                  |       | j                  ||       | j                  t        |      |       j y )Nr  r  rC   rB   r   r   r   r  r  r  r  r$  r  r   r  r  r  r%  s         r;   -test_programmatic_function_type_from_subclassz9TestSpecial.test_programmatic_function_type_from_subclass]  s    K);<	9oS3y>2YI61A1AB	 ""4":":"<a@ 	.HAu!AQ"QVVU+MM!Y'MM$q'9-	.r=   c                 &   t        ddd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  |j                  |j
                  |j                  g|       t        dj                         d      D ]h  \  }} ||      }| j                  ||       | j                  |j                  |       | j                  ||       | j                  t        |      |       j y )Nr  r  (   r(  rC   r1  r%  s         r;   8test_programmatic_function_type_from_subclass_with_startzDTestSpecial.test_programmatic_function_type_from_subclass_with_startm  s    K);2F	9oS3y>2YI61A1AB	 ""4":":"<bA 	.HAu!AQ"QVVU+MM!Y'MM$q'9-	.r=   c                     G d dt               }| j                  t        d|d       | j                   |d      |j                         | j                   |dd      |j                          G d dt               }| j                   |d	      |j
                         | j                   |d
dd      |j
                         y )Nc                       e Zd ZdZdZdZy)ETestSpecial.test_programmatic_function_is_value_call.<locals>.TwoPartrB         ?)r'          @)rC         @NrE   rF   rG   r   r   THREErK   r=   r;   TwoPartr8  ~  s    CCEr=   r?  z1 is not a valid .*TwoPartrB   r9  r:  c                       e Zd ZdZdZdZy)GTestSpecial.test_programmatic_function_is_value_call.<locals>.ThreePart)rB   r:  r  )r'   r;  r  rC   r<  threeNr=  rK   r=   r;   	ThreePartrA    s    CC#Er=   rD  rB  rC   r<  rC  )r   r   r   r  r   r>  )r   r?  rD  s      r;   (test_programmatic_function_is_value_callz4TestSpecial.test_programmatic_function_is_value_call}  s    	d 	 	z+GRSTgh'5gaow{{3	$ 	$ 	i 12IOODi30)//Br=   c                     | j                  t        j                  dd      t        j                         | j	                  t
              5  t        j                  dd       d d d        y # 1 sw Y   y xY w)Ns    bigs    )r  rN   
from_bytesrJ   rp  r   r   s    r;   test_intenum_from_bytesz#TestSpecial.test_intenum_from_bytes  sT    j++K?Pz* 	6!!+u5	6 	6 	6s   
A**A3c                 x    | j                  t        d      5   G d dt              }d d d        y # 1 sw Y   y xY w)Nz-_sunder_ names, such as ._bad_., are reservedc                       e Zd ZdZy)3TestSpecial.test_reserved_sunder_error.<locals>.BadrB   N)rE   rF   rG   r   rK   r=   r;   BadrL    s    r=   rM  )r   r   r   )r   rM  s     r;   test_reserved_sunder_errorz&TestSpecial.test_reserved_sunder_error  s7    ##? 	d 		 	 	   09c                 @   | j                  t        d      5   G d dt        t        t              }d d d         G d dt              } G d dt              }| j                  t        d      5   G d d||t              }d d d        y # 1 sw Y   XxY w# 1 sw Y   y xY w)	Nztoo many data typesc                       e Zd ZdZy1TestSpecial.test_too_many_data_types.<locals>.HuhrB   NrE   rF   rG   OnerK   r=   r;   r  rS    r  r=   r  c                       e Zd Zd Zy)3TestSpecial.test_too_many_data_types.<locals>.MyStrc                     d| z  S )Nz	hello, %srK   r   s    r;   helloz9TestSpecial.test_too_many_data_types.<locals>.MyStr.hello  s    "T))r=   NrE   rF   rG   rY  rK   r=   r;   MyStrrW    s    *r=   r[  c                       e Zd Zd Zy)3TestSpecial.test_too_many_data_types.<locals>.MyIntc                     t        |       S r   r  r   s    r;   r  z8TestSpecial.test_too_many_data_types.<locals>.MyInt.repr  r  r=   N)rE   rF   rG   r  rK   r=   r;   MyIntr]        !r=   r_  c                       e Zd ZdZyrR  rT  rK   r=   r;   r  z1TestSpecial.test_too_many_data_types.<locals>.Huh  r  r=   )r   r  rY  r  r   )r   r  r[  r_  s       r;   test_too_many_data_typesz$TestSpecial.test_too_many_data_types  s    ##I/DE 	c3 		*C 	*	!C 	! ##I/DE 	eUD 	 		 		 	s   B-BBBc                     t        t        t              rt        t        | j                  t        j
                         t        | j                  t               y r   )r  rA   r  rx   r  rI   r   s    r;   test_pickle_enumzTestSpecial.test_pickle_enum  s1    gy)MdmmW]];dmmW5r=   c                     t        t        t              rt        t        | j                  t        j
                         t        | j                  t               y r   )r  rN   r  rx   r  rI   r   s    r;   test_pickle_intzTestSpecial.test_pickle_int  s4    j),dmmZ-=-=>dmmZ8r=   c                     t        t        t              rt        t        | j                  t        j
                         t        | j                  t               y r   )r  rP   r  rx   r  rI   r   s    r;   test_pickle_floatzTestSpecial.test_pickle_float  s4    lI.dmm\-?-?@dmm\:r=   c                     t        t        t              rt        t        | j                  t        j
                         t        | j                  t               y r   )r  rh   r  rx   r  himr   s    r;   test_pickle_enum_functionz%TestSpecial.test_pickle_enum_function  s1    fi(LdmmVZZ8dmmV4r=   c                     t        t        t              rt        t        | j                  t        j
                         t        | j                  t               y r   )r  re   r  rx   r  whor   s    r;   %test_pickle_enum_function_with_modulez1TestSpecial.test_pickle_enum_function_with_module  s1    h	*NdmmX\\:dmmX6r=   c                      G d dt               }|| j                  _        d| j                  j                  z  | j                  _        t        | j                  | j                  j                         y )Nc                       e Zd ZdZdZy)8TestSpecial.test_pickle_nested_class.<locals>.NestedEnumcommonrareN)rE   rF   rG   twigsshinyrK   r=   r;   
NestedEnumrq    s    EEr=   rv  z%s.NestedEnum)r   rU  rv  rE   rG   rx   r  rt  )r   rv  s     r;   test_pickle_nested_classz$TestSpecial.test_pickle_nested_class  sO    	 	 %/!'69P9P'P$dmmT__-B-BCr=   c                      G d dt               }t        j                  |_        t	        t
              D ]-  }| j                  |j                  j                  |      d       / y )Nc                       e Zd ZdZdZy)9TestSpecial.test_pickle_by_name.<locals>.ReplaceGlobalIntrB   r'   Nr   rK   r=   r;   ReplaceGlobalIntrz        CCr=   r{  r   )r   r.   _reduce_ex_by_global_name__reduce_ex__rt   r!   r   r   )r   r{  protos      r;   test_pickle_by_namezTestSpecial.test_pickle_by_name  sX    	w 	 *.)G)G&+, 	OE-11??FN	Or=   c                     t        ddt              }|t               d<   t        j                  |       t        | j                  t        |j                         t        | j                  t        |       y )N	BadPicklezdill sweet bread-n-butterrf   )
r   rE   r  r.   _make_class_unpicklabler|   rp  r  dillr    )r   r  s     r;   test_pickle_explodesz TestSpecial.test_pickle_explodes  sW    8K	!*	+$$Y/d//INNKd//	Jr=   c                 d     G d dt         t              }| j                  |j                  d       y )Nc                       e Zd ZdZdZdZy)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)rE   rF   rG   master
journeyman
apprenticerK   r=   r;   
SkillLevelr    s    >F>J(Jr=   r  r  )rY  r   r   r  )r   r  s     r;   test_string_enumzTestSpecial.test_string_enum  s(    	)d 	) 	..@r=   c                      G d dt               }| j                   |d      |j                         | j                  t        |d      |j                         | j                  |d   |j
                         y )Nc                       e Zd ZdZdZdZdZy)0TestSpecial.test_getattr_getitem.<locals>.PeriodrB   r'   rC   rS   N)rE   rF   rG   morningnooneveningnightrK   r=   r;   Periodr    s    GDGEr=   r  r'   r  r  )r   r  r  r[  r  r  r   r  s     r;   test_getattr_getitemz TestSpecial.test_getattr_getitem  sV    	T 	
 	fQi-gfg.=fY'8r=   c                 R    | j                   }| j                  t        |d             y )N__eq__)rn  r   r[  rs  s     r;   test_getattr_dunderzTestSpecial.test_getattr_dunder  s    12r=   c                      G d dt               }| j                  t        |      |j                  |j                  |j
                  |j                  g       y )Nc                       e Zd ZdZdZdZdZy)0TestSpecial.test_iteration_order.<locals>.Seasonr'   rS   rC   rB   N)rE   rF   rG   rl  r9  rm  rk  rK   r=   r;   rn  r    r:  r=   rn  )r   r   r   rl  r9  rm  rk  rs  s     r;   test_iteration_orderz TestSpecial.test_iteration_order  sA    	T 	
 	Vv}}fmmL	r=   c                 n   t        t        t              rt        | j                  t        j                  d       | j                  t        j                  t        d             | j                  t        j                  t        t        d             t        | j                  t        j                         y )Nrb   rc   )	r  ra   r  r   rc   r   r  r[  rx   r   s    r;   test_subclassingzTestSpecial.test_subclassing  si    dI&J$67		4(:#;<diiv!67dmmTYY7r=   c                 j    G d dt               }| j                  t              5   G d d|      }d d d        | j                  t        d      5   G d d|t              }d d d        | j                  t
        d      5   |d	d
       d d d        y # 1 sw Y   axY w# 1 sw Y   >xY w# 1 sw Y   y xY w)Nc                       e Zd ZdZdZdZy))TestSpecial.test_extending.<locals>.ColorrB   r'   rC   Nr  rK   r=   r;   r  r  
      CEDr=   r  c                       e Zd ZdZdZdZy)-TestSpecial.test_extending.<locals>.MoreColorrS   rE  r  NrE   rF   rG   cyanmagentayellowrK   r=   r;   	MoreColorr        r=   r  z3<enum .EvenMoreColor.> cannot extend <enum .Color.>c                       e Zd ZdZy)1TestSpecial.test_extending.<locals>.EvenMoreColorr   N)rE   rF   rG   
chartrueserK   r=   r;   EvenMoreColorr    r  r=   r  z5\(.Foo., \(.pink., .black.\)\) is not a valid .*Colorr  )pinkblack)r   rp  r  r   r   r   )r   r  r  r  s       r;   test_extendingzTestSpecial.test_extending	  s    	D 	
 y) 	E 	 ##I/de 	w 	 ##J0hi 	,%*+	, 	,	 		 		, 	,s#   BB>
B)BB&)B2c                      G d dt               }| j                  t        |j                        |       | j	                  |j
                  j                         d       y )Nc                       e Zd ZdZdZd Zy)2TestSpecial.test_exclude_methods.<locals>.whateverr  thosec                      d| j                   z  S )Nz
no, not %sr`  r   s    r;   reallyz9TestSpecial.test_exclude_methods.<locals>.whatever.really   s    #djj00r=   N)rE   rF   rG   r  r  r  rK   r=   r;   whateverr    s    DE1r=   r  zno, not that)r   assertIsNotr  r  r   r  )r   r  s     r;   test_exclude_methodsz TestSpecial.test_exclude_methods  sF    	1t 	1
 	hoo.9--/@r=   c                     | j                  t              5   G d dt        t              }d d d        y # 1 sw Y   y xY w)Nc                       e Zd ZdZy)7TestSpecial.test_wrong_inheritance_order.<locals>.Wrongzerror before this pointN)rE   rF   rG   NotHererK   r=   r;   r  r  '  s    3r=   r  )rp  r  r   rY  r   s     r;   test_wrong_inheritance_orderz(TestSpecial.test_wrong_inheritance_order%  s3    y) 	44c 4	4 	4 	4s   4=c                 $    G d dt               } G d dt               }| j                  |j                  |j                         | j                  |j                  |j
                         | j                  |j                  |j                         y )Nc                       e Zd ZdZdZdZy)5TestSpecial.test_intenum_transitivity.<locals>.numberrB   r'   rC   NrE   rF   rG   r  r  rC  rK   r=   r;   numberr  +      CCEr=   r  c                       e Zd ZdZdZdZy)5TestSpecial.test_intenum_transitivity.<locals>.numerorB   r'   rC   N)rE   rF   rG   unodostresrK   r=   r;   numeror  /      CCDr=   r  )r   r   r  r  r  r  rC  r  )r   r  r  s      r;   test_intenum_transitivityz%TestSpecial.test_intenum_transitivity*  sd    	W 		W 	 	VZZ0VZZ0v{{3r=   c                      G d dt               } G d dt               }| j                  t        ||j                         y )Nc                       e Zd ZdZdZy)7TestSpecial.test_wrong_enum_in_call.<locals>.Monochromer   rB   NrE   rF   rG   r  whiterK   r=   r;   
Monochromer  8      EEr=   r  c                       e Zd ZdZdZy)3TestSpecial.test_wrong_enum_in_call.<locals>.Genderr   rB   NrE   rF   rG   malefemalerK   r=   r;   Genderr  ;      DFr=   r  )r   rp  r   r  r   r  r  s      r;   test_wrong_enum_in_callz#TestSpecial.test_wrong_enum_in_call7  s2    	 		T 	 	*j&++>r=   c                      G d dt               } G d dt              }| j                  t        ||j                         y )Nc                       e Zd ZdZdZy)=TestSpecial.test_wrong_enum_in_mixed_call.<locals>.Monochromer   rB   Nr  rK   r=   r;   r  r  A  r  r=   r  c                       e Zd ZdZdZy)9TestSpecial.test_wrong_enum_in_mixed_call.<locals>.Genderr   rB   Nr  rK   r=   r;   r  r  D  r  r=   r  )r   r   rp  r   r  r  s      r;   test_wrong_enum_in_mixed_callz)TestSpecial.test_wrong_enum_in_mixed_call@  s2    	 		T 	 	*j&++>r=   c                      G d dt               } G d dt               }| j                   ||j                        |j                         y )Nc                       e Zd ZdZdZy)9TestSpecial.test_mixed_enum_in_call_1.<locals>.Monochromer   rB   Nr  rK   r=   r;   r  r  J  r  r=   r  c                       e Zd ZdZdZy)5TestSpecial.test_mixed_enum_in_call_1.<locals>.Genderr   rB   Nr  rK   r=   r;   r  r  M  r  r=   r  )r   r  r  r  r  s      r;   test_mixed_enum_in_call_1z%TestSpecial.test_mixed_enum_in_call_1I  s9    	 		W 	 	j/1A1ABr=   c                      G d dt               } G d dt              }| j                   ||j                        |j                         y )Nc                       e Zd ZdZdZy)9TestSpecial.test_mixed_enum_in_call_2.<locals>.Monochromer   rB   Nr  rK   r=   r;   r  r  S  r  r=   r  c                       e Zd ZdZdZy)5TestSpecial.test_mixed_enum_in_call_2.<locals>.Genderr   rB   Nr  rK   r=   r;   r  r  V  r  r=   r  )r   r   r  r  r  r  s      r;   test_mixed_enum_in_call_2z%TestSpecial.test_mixed_enum_in_call_2R  s9    	 		W 	 	j-z/?/?@r=   c                      G d dt               } G d d|      }| j                  t        |j                        d       y )Nc                       e Zd Zd Zy)-TestSpecial.test_flufl_enum.<locals>.Fluflnumc                 ,    t        | j                        S r   )r  r`  r   s    r;   __int__z5TestSpecial.test_flufl_enum.<locals>.Fluflnum.__int__]  s    4::&r=   N)rE   rF   rG   r  rK   r=   r;   Fluflnumr  \      'r=   r  c                       e Zd ZdZdZdZy)3TestSpecial.test_flufl_enum.<locals>.MailManOptionsrB   r'   rC   N)rE   rF   rG   option1option2option3rK   r=   r;   MailManOptionsr  _  s    GGGr=   r   rB   )r   r   r  r  )r   r  r   s      r;   test_flufl_enumzTestSpecial.test_flufl_enum[  s7    	't 	'	X 	 	^334a8r=   c                 $    G d dt               }| j                  |j                  j                  t               | j                  |j                  t                G d dt
        t              }| j                  |j                  j                  t
               | j                  |j                  t
                G d dt              }| j                  |j                  j                  t               | j                  |j                  t               y )Nc                       e Zd ZdZdZy).TestSpecial.test_introspection.<locals>.Numberd      NrE   rF   rG   r  r  rK   r=   r;   r  r  f  s    CCr=   r  c                       e Zd ZdZdZdZy).TestSpecial.test_introspection.<locals>.StringsoftroughhardN)rE   rF   rG   yarnropewirerK   r=   r;   Stringr	  k  s    DDDr=   r  c                       e Zd ZdZdZy)-TestSpecial.test_introspection.<locals>.Plainr  rB   N)rE   rF   rG   vanillar  rK   r=   r;   Plainr  q  s    GCr=   r  )
r   r  r  rX  r  rY  r   r  r  r  )r   r  r  r  s       r;   test_introspectionzTestSpecial.test_introspectione  s    	W 	 	fjj..4f**C0	S$ 	 	fkk//5f**C0	D 	 	emm116:e))62r=   c                      G d dt               }| j                  t              5   |d       d d d        | j                  t              5  |d    d d d        y # 1 sw Y   -xY w# 1 sw Y   y xY w)Nc                       e Zd ZdZdZdZy)3TestSpecial.test_no_such_enum_member.<locals>.ColorrB   r'   rC   Nr  rK   r=   r;   r  r  x  r  r=   r  rS   
chartreuse)r   rp  r   KeyErrorr  s     r;   test_no_such_enum_memberz$TestSpecial.test_no_such_enum_memberw  sj    	D 	 z* 	!H	x( 	 ,	  	 	 		  	 s   	AA&A#&A/c                      G fddt        t                     G d dt              } G d dt              } G d d	|      } G d
 d|      }y )Nc                   "     e Zd Z fdZ xZS )6TestSpecial.test_multiple_mixin_mro.<locals>.auto_enumc                 "    t        |             }||_        t        |j                        }d}|j                  D ]  }||   }|t        u r|}n|}|dz  }|||<     |j                         D ]  \  }}||vs|||<    t        
|   | |||      S Nr   rB   )r  	_cls_namer  _member_namesEllipsisitemsrz  r{  )metaclsri  bases	classdicttemprW  r  kvrU  	auto_enums            r;   r{  z>TestSpecial.test_multiple_mixin_mro.<locals>.auto_enum.__new__  s    &tI(!$I334"00  A!!AH}FADG  &OO- $DAq~"#Q$ Y8eT3 3r=   rE   rF   rG   r{  r}  )rU  r+  s   @r;   r+  r    s    3 3r=   r+  c                       e Zd Zy)=TestSpecial.test_multiple_mixin_mro.<locals>.AutoNumberedEnumNr   rK   r=   r;   AutoNumberedEnumr.    r   r=   r/  rG  c                       e Zd Zy)8TestSpecial.test_multiple_mixin_mro.<locals>.AutoIntEnumNr   rK   r=   r;   AutoIntEnumr1    r   r=   r2  c                       e Zd ZdZdZdZy);TestSpecial.test_multiple_mixin_mro.<locals>.TestAutoNumber.rC   NrE   rF   rG   r   r  crK   r=   r;   TestAutoNumberr4        AAAr=   r7  c                       e Zd ZdZdZdZy)8TestSpecial.test_multiple_mixin_mro.<locals>.TestAutoInt.rC   Nr5  rK   r=   r;   TestAutoIntr:    r8  r=   r;  )r  r   r   )r   r/  r2  r7  r;  r+  s        @r;   test_multiple_mixin_mroz#TestSpecial.test_multiple_mixin_mro  sH    	3T
 	3(	ty 		'Y 		- 	
	+ 	r=   c                 P    G fddt                G d dt              }| j                  |j                  t        j                         | j	                  t        |j                  |j                  z         d       t               d<   |t               d<    dd      }| j	                  |d       t        | j                  |d       | j	                  |j                  j                  d       t        | j                  |j                         t        | j                  |       y )	Nc                   X    e Zd ZdZd Zd Zej                  d        Z d Zd Z fdZ	y)	=TestSpecial.test_subclasses_with_getnewargs.<locals>.NamedIntNamedIntc                     |}|^}}t        |      dk(  rt        d      t        j                  | g| }||_        ||_        |S Nr    name and value must be specifiedr  r  r  r{  _intname_argsri  argsrF  r   r   s        r;   r{  zETestSpecial.test_subclasses_with_getnewargs.<locals>.NamedInt.__new__  M    "tt9>#$FGG{{3.. $"
r=   c                     | j                   S r   rF  r   s    r;   __getnewargs__zLTestSpecial.test_subclasses_with_getnewargs.<locals>.NamedInt.__getnewargs__  s    zz!r=   c                     | j                   S r   rE  r   s    r;   rE   zFTestSpecial.test_subclasses_with_getnewargs.<locals>.NamedInt.__name__      }}$r=   c                     dj                  t        |       j                  | j                  t        j	                  |             S Nz{}({!r}, {})r_  r  rE   r  r  r   s    r;   r  zFTestSpecial.test_subclasses_with_getnewargs.<locals>.NamedInt.__repr__  5    %,,T
++T* r=   c                 |    t         }|j                  }|j                  t        u r|j	                  |       S  ||       S r   r  r  __objclass__r  r  r   basebase_strs      r;   r  zETestSpecial.test_subclasses_with_getnewargs.<locals>.NamedInt.__str__  7    <<((F2==..~%r=   c                     t        |       t        |      z   }t        |       r9t        |      r- dj                  | j                  |j                        |      S |S Nz({0} + {1})r  r  r_  rE   r   otherr(  r@  s      r;   __add__zETestSpecial.test_subclasses_with_getnewargs.<locals>.NamedInt.__add__  W    4y3;.dH-*UH2M#%,,T]]ENNK 
  Kr=   N)
rE   rF   rG   r{  rL  bltnsr  r  r  r`  r@  s   r;   r@  r?    s7    %L"^^% %& r=   r@  c                       e Zd ZdZdZdZy)8TestSpecial.test_subclasses_with_getnewargs.<locals>.NEINEIzthe-xrB   zthe-yr'   NrE   rF   rG   xyrK   r=   r;   rf  re         LAAr=   rf  NamedInt('(the-x + the-y)', 3)testrE  r'   r  r   r  r{  r   r  rj  rk  r  rx   r`  r   rf  NI5r@  s      @r;   test_subclasses_with_getnewargsz+TestSpecial.test_subclasses_with_getnewargs      (	 s (	 T	(D 	 	ckk4<<0ceeceem,.NO (	*	%vq!a d..Q7a(dmmSUU3dmmS1r=   c                 P    G fddt                G d dt              }| j                  |j                  t        j                         | j	                  t        |j                  |j                  z         d       t               d<   |t               d<    dd      }| j	                  |d       t        | j                  |d       | j	                  |j                  j                  d       t        | j                  |j                         t        | j                  |       y )	Nc                   X    e Zd ZdZd Zd Zej                  d        Z d Zd Z fdZ	y)	@TestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedIntr@  c                     |}|^}}t        |      dk(  rt        d      t        j                  | g| }||_        ||_        |S rB  rD  rG  s        r;   r{  zHTestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__new__  rI  r=   c                     | j                   i fS r   rK  r   s    r;   __getnewargs_ex__zRTestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__getnewargs_ex__  s    zz2~%r=   c                     | j                   S r   rN  r   s    r;   rE   zITestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__name__  rO  r=   c                     dj                  t        |       j                  | j                  t        j	                  |             S rQ  rR  r   s    r;   r  zITestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__repr__  rS  r=   c                 |    t         }|j                  }|j                  t        u r|j	                  |       S  ||       S r   rU  rW  s      r;   r  zHTestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__str__  rZ  r=   c                     t        |       t        |      z   }t        |       r9t        |      r- dj                  | j                  |j                        |      S |S r\  r]  r^  s      r;   r`  zHTestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NamedInt.__add__  ra  r=   N)
rE   rF   rG   r{  ry  rb  r  r  r  r`  rc  s   r;   r@  rv    s7    %L&^^% %& r=   r@  c                       e Zd ZdZdZdZy);TestSpecial.test_subclasses_with_getnewargs_ex.<locals>.NEIrf  rg  rh  Nri  rK   r=   r;   rf  r    rl  r=   rf  rm  rn  rE  r'   ro  rp  s      @r;   "test_subclasses_with_getnewargs_exz.TestSpecial.test_subclasses_with_getnewargs_ex  rs  r=   c                 P    G fddt                G d dt              }| j                  |j                  t        j                         | j	                  t        |j                  |j                  z         d       t               d<   |t               d<    dd      }| j	                  |d       t        | j                  |d       | j	                  |j                  j                  d       t        | j                  |j                         t        | j                  |       y )	Nc                   X    e Zd ZdZd Zd Zej                  d        Z d Zd Z fdZ	y)	9TestSpecial.test_subclasses_with_reduce.<locals>.NamedIntr@  c                     |}|^}}t        |      dk(  rt        d      t        j                  | g| }||_        ||_        |S rB  rD  rG  s        r;   r{  zATestSpecial.test_subclasses_with_reduce.<locals>.NamedInt.__new__#  rI  r=   c                 2    | j                   | j                  fS r   rU  rF  r   s    r;   
__reduce__zDTestSpecial.test_subclasses_with_reduce.<locals>.NamedInt.__reduce__,      ~~tzz11r=   c                     | j                   S r   rN  r   s    r;   rE   zBTestSpecial.test_subclasses_with_reduce.<locals>.NamedInt.__name__.  rO  r=   c                     dj                  t        |       j                  | j                  t        j	                  |             S rQ  rR  r   s    r;   r  zBTestSpecial.test_subclasses_with_reduce.<locals>.NamedInt.__repr__1  rS  r=   c                 |    t         }|j                  }|j                  t        u r|j	                  |       S  ||       S r   rU  rW  s      r;   r  zATestSpecial.test_subclasses_with_reduce.<locals>.NamedInt.__str__8  rZ  r=   c                     t        |       t        |      z   }t        |       r9t        |      r- dj                  | j                  |j                        |      S |S r\  r]  r^  s      r;   r`  zATestSpecial.test_subclasses_with_reduce.<locals>.NamedInt.__add__A  ra  r=   N)
rE   rF   rG   r{  r  rb  r  r  r  r`  rc  s   r;   r@  r  !  7    %L2^^% %& r=   r@  c                       e Zd ZdZdZdZy)4TestSpecial.test_subclasses_with_reduce.<locals>.NEIrf  rg  rh  Nri  rK   r=   r;   rf  r  K  rl  r=   rf  rm  rn  rE  r'   ro  rp  s      @r;   test_subclasses_with_reducez'TestSpecial.test_subclasses_with_reduce   rs  r=   c                 P    G fddt                G d dt              }| j                  |j                  t        j                         | j	                  t        |j                  |j                  z         d       t               d<   |t               d<    dd      }| j	                  |d       t        | j                  |d       | j	                  |j                  j                  d       t        | j                  |j                         t        | j                  |       y )	Nc                   X    e Zd ZdZd Zd Zej                  d        Z d Zd Z fdZ	y)	<TestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedIntr@  c                     |}|^}}t        |      dk(  rt        d      t        j                  | g| }||_        ||_        |S rB  rD  rG  s        r;   r{  zDTestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedInt.__new___  rI  r=   c                 2    | j                   | j                  fS r   r  r   r  s     r;   r~  zJTestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedInt.__reduce_ex__h  r  r=   c                     | j                   S r   rN  r   s    r;   rE   zETestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedInt.__name__j  rO  r=   c                     dj                  t        |       j                  | j                  t        j	                  |             S rQ  rR  r   s    r;   r  zETestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedInt.__repr__m  rS  r=   c                 |    t         }|j                  }|j                  t        u r|j	                  |       S  ||       S r   rU  rW  s      r;   r  zDTestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedInt.__str__t  rZ  r=   c                     t        |       t        |      z   }t        |       r9t        |      r- dj                  | j                  |j                        |      S |S r\  r]  r^  s      r;   r`  zDTestSpecial.test_subclasses_with_reduce_ex.<locals>.NamedInt.__add__}  ra  r=   N)
rE   rF   rG   r{  r~  rb  r  r  r  r`  rc  s   r;   r@  r  ]  r  r=   r@  c                       e Zd ZdZdZdZy)7TestSpecial.test_subclasses_with_reduce_ex.<locals>.NEIrf  rg  rh  Nri  rK   r=   r;   rf  r    rl  r=   rf  rm  rn  rE  r'   ro  rp  s      @r;   test_subclasses_with_reduce_exz*TestSpecial.test_subclasses_with_reduce_ex\  s    (	 s (	 T	(D 	
 	ckk4<<0ceeceem,.NO (	*	%vq!a d..Q7a(dmmSUU3dmmS1r=   c                     G fddt                G d dt              }| j                  |j                  t        j                         | j	                  t        |j                  |j                  z         d       t               d<   |t               d<    dd      }| j	                  |d       | j	                  |j                  j                  d       | j                  t        d	      5  t        | j                  |j                         d d d        t        j                  |_        t        | j                  |j                         t        | j                  |       y # 1 sw Y   UxY w)
Nc                   R    e Zd ZdZd Zej
                  d        Z d Zd Z fdZy)KTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NamedIntr@  c                     |}|^}}t        |      dk(  rt        d      t        j                  | g| }||_        ||_        |S rB  rD  rG  s        r;   r{  zSTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__new__  rI  r=   c                     | j                   S r   rN  r   s    r;   rE   zTTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__name__  rO  r=   c                     dj                  t        |       j                  | j                  t        j	                  |             S rQ  rR  r   s    r;   r  zTTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__repr__  rS  r=   c                 |    t         }|j                  }|j                  t        u r|j	                  |       S  ||       S r   rU  rW  s      r;   r  zSTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__str__  rZ  r=   c                     t        |       t        |      z   }t        |       r9t        |      r- dj                  | j                  |j                        |      S |S r\  r]  r^  s      r;   r`  zSTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__add__  sW    4y3;.dH-*UH2M#%,,T]]ENNK   Kr=   N	rE   rF   rG   r{  rb  r  r  r  r`  rc  s   r;   r@  r    s4    %L ^^% %& r=   r@  c                       e Zd ZdZdZdZy)FTestSpecial.test_subclasses_without_direct_pickle_support.<locals>.NEIrf  rg  rh  Nri  rK   r=   r;   rf  r    rl  r=   rf  rm  rn  rE  r'   rC  )r  r   r  r{  r   r  rj  rk  r  r`  r   r  rx   r.   pickle_by_enum_namer~  rp  s      @r;   -test_subclasses_without_direct_pickle_supportz9TestSpecial.test_subclasses_without_direct_pickle_support  s   %	 s %	 N	(D 	 	ckk4<<0ceeceem,.NO (	*	%vq!a a(##I/QR 	8!$--7	8 !44dmmSUU3dmmS1	8 	8s   0!E%%E.c                 "    G fddt                G d dt              }| j                  |j                  t        j                         | j	                  t        |j                  |j                  z         d       t               d<   |t               d<    dd      }| j	                  |d       | j	                  |j                  j                  d       t        | j                  |j                         t        | j                  |       y )	Nc                   R    e Zd ZdZd Zej
                  d        Z d Zd Z fdZy)HTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NamedIntr@  c                     |}|^}}t        |      dk(  rt        d      t        j                  | g| }||_        ||_        |S rB  rD  rG  s        r;   r{  zPTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NamedInt.__new__  rI  r=   c                     | j                   S r   rN  r   s    r;   rE   zQTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NamedInt.__name__  rO  r=   c                     dj                  t        |       j                  | j                  t        j	                  |             S rQ  rR  r   s    r;   r  zQTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NamedInt.__repr__  rS  r=   c                 |    t         }|j                  }|j                  t        u r|j	                  |       S  ||       S r   rU  rW  s      r;   r  zPTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NamedInt.__str__  rZ  r=   c                     t        |       t        |      z   }t        |       r9t        |      r- dj                  | j                  |j                        |      S |S r\  r]  r^  s      r;   r`  zPTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NamedInt.__add__  ra  r=   Nr  rc  s   r;   r@  r    s4    %L ^^% %& r=   r@  c                       e Zd ZdZdZdZd Zy)CTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NEIrf  rg  rh  c                 >    t         | j                  | j                  ffS r   )r[  rU  r  r  s     r;   r~  zQTestSpecial.test_subclasses_with_direct_pickle_support.<locals>.NEI.__reduce_ex__  s     ===r=   N)rE   rF   rG   rj  rk  r~  rK   r=   r;   rf  r    s     LAA>r=   rf  rm  rn  rE  r'   )r  r   r  r{  r   r  rj  rk  r  r`  rx   rp  s      @r;   *test_subclasses_with_direct_pickle_supportz6TestSpecial.test_subclasses_with_direct_pickle_support  s    &	 s &	 P	>(D 	> 	ckk4<<0ceeceem,.NO (	*	%vq!a a(dmmSUU3dmmS1r=   c                 H    G d dt         t              }| j                  t        |j                        |       | j                  |j                  t                | j                  |j                  d       |t               d<   t        | j                  |j                         y )Nc                       e Zd ZdZdZdZdZy)2TestSpecial.test_tuple_subclass.<locals>.SomeTuple	SomeTuple)rB   for the money)r'   for the showrC   for the musicNr  rK   r=   r;   r  r  	  s    &L(E(F(Er=   r  r  )r  r   r  r  r  assertIsInstancer  r   r	  r  rx   )r   r  s     r;   test_tuple_subclasszTestSpecial.test_tuple_subclass	  sr    	)t 	)
 	d9??+Y7i..6*>?!*	+dmmY__=r=   c                 0   ddl m}  |dd      } G d d|t              }| j                  t	        |j
                        |       | j                  |j                  j                  d       | j                  |j                  j                  |       | j                  |j
                  j                  d       | j                  |j                  j                  d	       |t               d<   |t               d<   t        | j                  |j
                         y )
Nr   
namedtupleT
index descc                   F    e Zd ZdZ e       dfZ e       dfZ e       dfZy)=TestSpecial.test_tuple_subclass_with_auto_1.<locals>.SomeEnumSomeEnumr  r  r  NrE   rF   rG   r   r  r  r	  rK   r=   r;   r  r  	  s+    %LFO+EV^+FFO+Er=   r  r  rB   r  collectionsr  r   r  r  r  r   r	  r`  r  indexr  descr  rx   )r   r  r  r  s       r;   test_tuple_subclass_with_auto_1z+TestSpecial.test_tuple_subclass_with_auto_1	  s    *sL)	,q$ 	,
 	d8>>*H5--/CDhnn22A6--q1--~> (	*	#dmmX^^<r=   c                 \   ddl m}  |dd       G fddt              }| j                  t	        |j
                        |       | j                  |j                  j                  d       | j                  |j                  j                         | j                  |j
                  j                  j                  d       | j                  |j                  j                  j                  d	       |t               d<   t               d<   t        | j                  |j
                         y )
Nr   r  r  r  c                   l    e Zd ZdZ W   e       d      Z W   e       d      Z W   e       d      Zy)=TestSpecial.test_tuple_subclass_with_auto_2.<locals>.SomeEnumr  r  r  r  Nr  )r  s   r;   r  r  +	  s2    %Ldfo.Etv~.Fdfo.Er=   r  r  rB   r  r  )r   r  r  r  s      @r;   test_tuple_subclass_with_auto_2z+TestSpecial.test_tuple_subclass_with_auto_2(	  s    *sL)	/t 	/
 	d8>>*H5--/CDhnn22A6--33Q7..33^D (	*	#dmmX^^<r=   c                 t    G d dt               }| j                  t        |      |j                  |j                  |j
                  g       | j                  t        |j                        d       | j                  |j
                  j                  d       | j                   |d      |j                         y )Nc                   $    e Zd ZdZdZdZd Zd Zy)LTestSpecial.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumberrK   c                 n    t        | j                        dz   }t        j                  |       }||_        |S NrB   r  __members__r  r{  r  ri  r`  r{   s      r;   r{  zTTestSpecial.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__new__>	  /    COO,q0nnS)#
r=   c                 ,    t        | j                        S r   r  r  r   s    r;   r  zTTestSpecial.test_duplicate_values_give_unique_enum_items.<locals>.AutoNumber.__int__C	      4<<((r=   N)rE   rF   rG   r  r  r	  r{  r  rK   r=   r;   
AutoNumberr  :	  s    EFE
)r=   r  r'   rC   rB   )	r   r   r   r  r  r	  r  r`  r  )r   r  s     r;   ,test_duplicate_values_give_unique_enum_itemsz8TestSpecial.test_duplicate_values_give_unique_enum_items9	  s    
	) 
	) 	Z !!:#4#4j6F6FG	 	Z../3))//3jmZ%5%56r=   c                     G d dt               } G d d|      }| j                  t        |      |j                  |j                  |j
                  g       | j                  t        t        t        |            g d       y )Nc                       e Zd Zd Zd Zy)ETestSpecial.test_inherited_new_from_enhanced_enum.<locals>.AutoNumberc                 n    t        | j                        dz   }t        j                  |       }||_        |S r  r  r  s      r;   r{  zMTestSpecial.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__new__O	  r  r=   c                 ,    t        | j                        S r   r  r   s    r;   r  zMTestSpecial.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber.__int__T	  r  r=   N)rE   rF   rG   r{  r  rK   r=   r;   r  r  N	  s    
)r=   r  c                       e Zd ZdZdZdZy)@TestSpecial.test_inherited_new_from_enhanced_enum.<locals>.ColorrK   Nr  rK   r=   r;   r  r  V	      CEDr=   r  rF  )r   r   r   r  r  r  mapr  r   r  r  s      r;   %test_inherited_new_from_enhanced_enumz1TestSpecial.test_inherited_new_from_enhanced_enumM	  s^    	) 	)	J 	 	euyy%++uzz&JKc#uo.	:r=   c                     G d dt               } G d d|      }| j                  t        |      |j                  |j                  |j
                  g       | j                  t        t        t        |            g d       y )Nc                       e Zd Zd Zy)BTestSpecial.test_inherited_new_from_mixed_enum.<locals>.AutoNumberc                 p    t        | j                        dz   }t        j                  | |      }||_        |S r  )r  r  r  r{  r  r  s      r;   r{  zJTestSpecial.test_inherited_new_from_mixed_enum.<locals>.AutoNumber.__new___	  s1    COO,q0kk#u-#
r=   Nr  rK   r=   r;   r  r  ^	      r=   r  c                       e Zd ZdZdZdZy)=TestSpecial.test_inherited_new_from_mixed_enum.<locals>.ColorrK   Nr  rK   r=   r;   r  r  d	  r  r=   r  rF  )r   r   r   r  r  r  r  r  r  s      r;   "test_inherited_new_from_mixed_enumz.TestSpecial.test_inherited_new_from_mixed_enum]	  s^    	 		J 	 	euyy%++uzz&JKc#uo.	:r=   c                      G d dt               }| j                  t        |j                         | j                  |j                  t               y )Nc                       e Zd ZdZy)/TestSpecial.test_equality.<locals>.OrdinaryEnumrB   N)rE   rF   rG   r   rK   r=   r;   OrdinaryEnumr  l	  rM  r=   r  )r   r   r#   r   )r   r  s     r;   test_equalityzTestSpecial.test_equalityk	  s6    	4 	LNN33r=   c                      G d dt               } G d d|      }| j                  |j                  |j                         | j	                  |j
                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         | j                  |j                  |j                         y )Nc                   $    e Zd Zd Zd Zd Zd Zy)3TestSpecial.test_ordered_mixin.<locals>.OrderedEnumc                 p    | j                   |j                   u r| j                  |j                  k\  S t        S r   rU  r  NotImplementedr   r_  s     r;   __ge__z:TestSpecial.test_ordered_mixin.<locals>.OrderedEnum.__ge__s	  +    >>U__4<<5==88%%r=   c                 p    | j                   |j                   u r| j                  |j                  kD  S t        S r   r  r  s     r;   __gt__z:TestSpecial.test_ordered_mixin.<locals>.OrderedEnum.__gt__w	  +    >>U__4<<%--77%%r=   c                 p    | j                   |j                   u r| j                  |j                  k  S t        S r   r  r  s     r;   __le__z:TestSpecial.test_ordered_mixin.<locals>.OrderedEnum.__le__{	  r  r=   c                 p    | j                   |j                   u r| j                  |j                  k  S t        S r   r  r  s     r;   __lt__z:TestSpecial.test_ordered_mixin.<locals>.OrderedEnum.__lt__	  r  r=   N)rE   rF   rG   r   r  r  r  rK   r=   r;   OrderedEnumr  r	  s    &&&&r=   r	  c                        e Zd ZdZdZdZdZdZy)-TestSpecial.test_ordered_mixin.<locals>.GraderE  rS   rC   r'   rB   Nr=  rK   r=   r;   Grader  	  rB  r=   r  )r   assertGreaterrK  r  assertLessEqualr@  r>  
assertLessr?  assertGreaterEqualr   r  )r   r	  r  s      r;   test_ordered_mixinzTestSpecial.test_ordered_mixinq	  s    	&$ 	&"	K 	 	577EGG,UWWegg.)1%''*EGGUWW-r=   c                      G d dt               } G d d|      }| j                  t              5   G d d|      }d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zd Zy)*TestSpecial.test_extending2.<locals>.Shadec                 .    t        | j                         y r   )printr   r   s    r;   shadez0TestSpecial.test_extending2.<locals>.Shade.shade	  s    dii r=   NrE   rF   rG   r  rK   r=   r;   Shader  	  r`  r=   r  c                       e Zd ZdZdZdZy)*TestSpecial.test_extending2.<locals>.ColorrB   r'   rC   Nr  rK   r=   r;   r  r  	  r  r=   r  c                       e Zd ZdZdZdZy).TestSpecial.test_extending2.<locals>.MoreColorrS   rE  r  Nr  rK   r=   r;   r  r  	  r  r=   r  )r   rp  r  r   r  r  r  s       r;   test_extending2zTestSpecial.test_extending2	  sK    	!D 	!	E 	 y) 	E 	 	 	   AAc                      G d dt               } G d d|      } G d d|      }| j                  |j                  j                         d       y )Nc                       e Zd Zd Zy)*TestSpecial.test_extending3.<locals>.Shadec                     | j                   S r   r  r   s    r;   r  z0TestSpecial.test_extending3.<locals>.Shade.shade	  s    yy r=   Nr  rK   r=   r;   r  r#  	  r`  r=   r  c                       e Zd Zd Zy)*TestSpecial.test_extending3.<locals>.Colorc                      d| j                   z  S )Nz%s hexlified!r  r   s    r;   r  z.TestSpecial.test_extending3.<locals>.Color.hex	  s    &33r=   N)rE   rF   rG   r  rK   r=   r;   r  r&  	  r=  r=   r  c                       e Zd ZdZdZdZy).TestSpecial.test_extending3.<locals>.MoreColorrS   rE  r  Nr  rK   r=   r;   r  r)  	  s    DGFr=   r  z5 hexlified!)r   r   r  r  r  s       r;   test_extending3zTestSpecial.test_extending3	  sG    	!D 	!	4E 	4	 	 	**..0.Ar=   c                      G d dt               } G d d|      }| j                  t        |j                        |       y )Nc                       e Zd Zd Zy)6TestSpecial.test_subclass_duplicate_name.<locals>.Basec                      y r   rK   r   s    r;   rn  z;TestSpecial.test_subclass_duplicate_name.<locals>.Base.test	  rS  r=   NrE   rF   rG   rn  rK   r=   r;   Baser-  	      r=   r0  c                       e Zd ZdZy)6TestSpecial.test_subclass_duplicate_name.<locals>.TestrB   Nr/  rK   r=   r;   r  r3  	      Dr=   r  )r   r  r  rn  )r   r0  r  s      r;   test_subclass_duplicate_namez(TestSpecial.test_subclass_duplicate_name	  s0    	4 		4 	d499ot,r=   c                    ddl m  G fddt              } G d d|      }| j                  |j                  j                  d       | j                  |j                  j
                  d        G d	 d
t              } G d d|      }| j                  |j                  j                  d       | j                  |j                  j
                  d       y )Nr   DynamicClassAttributec                        e Zd ZW  d        Zy)>TestSpecial.test_subclass_duplicate_name_dynamic.<locals>.Basec                      y)NdynamicrK   r   s    r;   rn  zCTestSpecial.test_subclass_duplicate_name_dynamic.<locals>.Base.test	  s     r=   Nr/  r7  s   r;   r0  r:  	  s    "! #!r=   r0  c                       e Zd ZdZy>TestSpecial.test_subclass_duplicate_name_dynamic.<locals>.TestrB   Nr/  rK   r=   r;   r  r?  	  r4  r=   r  r<  rB   c                   0    e Zd Zej                  d        Zy)?TestSpecial.test_subclass_duplicate_name_dynamic.<locals>.Base2c                      y)Nflashy dynamicrK   r   s    r;   flashzETestSpecial.test_subclass_duplicate_name_dynamic.<locals>.Base2.flash	  s    'r=   N)rE   rF   rG   r.   r  rD  rK   r=   r;   Base2rA  	  s    ]]( (r=   rE  c                       e Zd ZdZyr>  )rE   rF   rG   rD  rK   r=   r;   r  z>TestSpecial.test_subclass_duplicate_name_dynamic.<locals>.Test	  s    Er=   rC  )typesr8  r   r   rn  r`  rD  )r   r0  r  rE  r8  s       @r;   $test_subclass_duplicate_name_dynamicz0TestSpecial.test_subclass_duplicate_name_dynamic	  s    /	!4 	!	4 	3!,	(D 	(	5 	))+;<))1-r=   c                      G d dt               } G d d|      }| j                  t              5   G d d|      }d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zd Zy)2TestSpecial.test_no_duplicates.<locals>.UniqueEnumc                       j                   }t         fd|D              r9 j                  } | j                        j                  }t	        d|d|      y )Nc              3   P   K   | ]  }j                   |j                   k(    y wr   r  ).0r$  r   s     r;   	<genexpr>zNTestSpecial.test_no_duplicates.<locals>.UniqueEnum.__init__.<locals>.<genexpr>	  s     :tzzQWW,:s   #&z$aliases not allowed in UniqueEnum:  z --> )rU  anyr   r`  r   )r   rH  ri  r   r$  s   `    r;   r   z;TestSpecial.test_no_duplicates.<locals>.UniqueEnum.__init__	  sR    nn:c::		ADJJ,,A$ !%  ;r=   NrE   rF   rG   r   rK   r=   r;   
UniqueEnumrK  	  s    r=   rR  c                       e Zd ZdZdZdZy-TestSpecial.test_no_duplicates.<locals>.ColorrB   r'   rC   Nr  rK   r=   r;   r  rU  	  r  r=   r  c                       e Zd ZdZdZdZdZyrT  )rE   rF   rG   r  r  r  grenerK   r=   r;   r  z-TestSpecial.test_no_duplicates.<locals>.Color	  s    r=   )r   rp  r   )r   rR  r  s      r;   test_no_duplicateszTestSpecial.test_no_duplicates	  sK    		 			J 	 z* 	
 	 	 	r   c                      G d dt               }| j                  t        |j                  j                  d      d       | j                  |j                  j
                  d       y )Nc                   V    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y)%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                      || _         || _        y r   massradius)r   r_  r`  s      r;   r   z.TestSpecial.test_init.<locals>.Planet.__init__	  s     	$r=   c                 X    d}|| j                   z  | j                  | j                  z  z  S )NgyдW=r^  )r   r  s     r;   surface_gravityz5TestSpecial.test_init.<locals>.Planet.surface_gravity	  s)      499}dkk(ABBr=   N)rE   rF   rG   MERCURYVENUSEARTHMARSJUPITERSATURNURANUSNEPTUNEr   r.   r  rb  rK   r=   r;   Planetr[  	  sI    +G+E,E+D+G+F+F+G% ]]C Cr=   rk  r'   g#@r\  )r   r   roundre  rb  r`  )r   rk  s     r;   	test_initzTestSpecial.test_init	  sN    	CT 	C" 	v||;;Q?F++-CDr=   c                     G d dt         t              }| j                  t        |d             | j                  t        |d             | j                  t        |d             | j	                  t        |j                  t                      | j	                  |j                  |j                  u        | j	                  |j                  |j                  u        y )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y)'TestSpecial.test_ignore.<locals>.Periodz3
            different lengths of time
            c                 N    t        j                  | |      }||_        ||_        |S r   )r&   r{  r  period)ri  r`  rr  r{   s       r;   r{  z/TestSpecial.test_ignore.<locals>.Period.__new__	  s'    ''U3##

r=   zPeriod ir  r  r"  zmonth_%d5   r   weekzweek_%d    dayzday_%dN)rE   rF   rG   r   r{  _ignore_varsr  rt   r  day_1OneDayweek_1OneWeekmonth_1OneMonthrK   r=   r;   r  rp  	  s    
 "HVF2Y 7)*2wzA~&72Y 4()!Vy1}%42Y 0'(%xx!|$0FGHr=   r  rw  r  )r&   r   r   ro  r   r  ry  r}  day_30week_4day_28r  s     r;   test_ignorezTestSpecial.test_ignore	  s    	Y 	( 	4523-.
6<<;<&--7867r=   c                 `    G d dt               } G d d|      }| j                  t        |      |j                  |j                  |j
                  g       t        |t        d            D ]@  \  }}|dz  }| j                  |j                  |g       | j                   ||g      |       B y )Nc                       e Zd Zd Zy)9TestSpecial.test_nonhash_value.<locals>.AutoNumberInAListc                 p    t        | j                        dz   g}t        j                  |       }||_        |S r  r  r  s      r;   r{  zATestSpecial.test_nonhash_value.<locals>.AutoNumberInAList.__new__
  s2    S__-12nnS)#
r=   Nr  rK   r=   r;   AutoNumberInAListr  
  r  r=   r  c                       e Zd ZdZdZdZy)4TestSpecial.test_nonhash_value.<locals>.ColorInAListrK   Nr  rK   r=   r;   ColorInAListr  
  r  r=   r  rC   rB   )
r   r   r   r  r  r  r  rt   r`  r  )r   r  r  r.   r`  s        r;   test_nonhash_valuezTestSpecial.test_nonhash_value
  s    	 		, 	 	l+l.>.>@R@RT`TeTe-fg|U1X6 	7KD%QJETZZ%1MM,w/6	7r=   c                      G d dt         t              } G d d|      }| j                  t        |      |j                  |j
                  g       | j                  |j                  d       | j                   |d      |j                         y )Nc                       e Zd Zd Zy)KTestSpecial.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnumc                 X    |\  }}t         j                  | |      }||_        ||_        |S r   )r  r{  labelr  )ri  rH  r`  r  r{   s        r;   r{  zSTestSpecial.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnum.__new__ 
  s.    #ukk#u-!	#
r=   Nr  rK   r=   r;   LabelledIntEnumr  
  s    r=   r  c                       e Zd ZdZdZy)HTestSpecial.test_conflicting_types_resolved_in_new.<locals>.LabelledList)rB   Unprocessed)r'   zPayment CompleteN)rE   rF   rG   unprocessedpayment_completerK   r=   r;   LabelledListr  '
  s    ,K6r=   r  rB   )r  r   r   r   r  r  )r   r  r  s      r;   &test_conflicting_types_resolved_in_newz2TestSpecial.test_conflicting_types_resolved_in_new
  st    	c4 		7? 	7 	l+l.F.FHeHe-fg1115a,*B*BCr=   c                      G d dt               }	  |d       t        d      # t        $ r'}| j                  |j                  d u        Y d }~y d }~ww xY w)Nc                       e Zd ZdZdZdZy)DTestSpecial.test_default_missing_no_chained_exception.<locals>.ColorrB   r'   rC   N)rE   rF   rG   r  GREENBLUErK   r=   r;   r  r  0
  r  r=   r  r   Exception not raised.)r   r  r   r   r  r   r  excs      r;   )test_default_missing_no_chained_exceptionz5TestSpecial.test_default_missing_no_chained_exception/
  sR    	D 		5!H 344  	5OOCOOt344	5s   $ 	AAAc                 >    G d dt               }| j                   |d      |j                         	  |d       t        d      # t        $ r'}| j                  |j                  d u        Y d }~nd }~ww xY w	  |d       t        d      # t        $ r3}| j                  t        |j                  t                     Y d }~nd }~ww xY w	  |d       t        d      # t        $ r3}| j                  t        |j                  t                     Y d }~y d }~ww xY w)Nc                   (    e Zd ZdZdZdZed        Zy)0TestSpecial.test_missing_override.<locals>.ColorrB   r'   rC   c                 H    |dk(  r| j                   S |dk(  ry|dk(  rt        y )NrC  
bad returnrE  	error out)r  ZeroDivisionError)ri  r	  s     r;   	_missing_z:TestSpecial.test_missing_override.<locals>.Color._missing_@
  s0    7?88O\)[(++  r=   N)rE   rF   rG   r  r  r  classmethodr  rK   r=   r;   r  r  <
  s#    CED
  
 r=   r  rC  r   r  r  r  )
r   r  r  r  r   r   r  r  r  r  r  s      r;   test_missing_overridez!TestSpecial.test_missing_override;
  s    	 D 	   	eGnejj1	5!H 344  	5OOCOOt344	5	5, 344  	EOOJs
CDD	E	5+ 344 ! 	EOOJs
CDD	EsG   A 	A6A11A6:B 	C	)CC	C   	D))DDc                 H   dd l }dd l} G d dt        j                         G d d      } G fdd      }|j	                   |             }|j	                   |             }|j                          | j                   |       d        | j                   |       d        y )Nr   c                       e Zd ZdZdZy);TestSpecial.test_missing_exceptions_reset.<locals>.TestEnumval1val2N)rE   rF   rG   VAL1VAL2rK   r=   r;   TestEnumr  d
  s    DDr=   r  c                       e Zd Zd Zy)9TestSpecial.test_missing_exceptions_reset.<locals>.Class1c                 6    	 t               # t         $ r Y y w xY wr   r   r   s    r;   r   zBTestSpecial.test_missing_exceptions_reset.<locals>.Class1.__init__i
  s!    $,&! s   
 	NrQ  rK   r=   r;   Class1r  h
  s    r=   r  c                       e Zd Z fdZy)9TestSpecial.test_missing_exceptions_reset.<locals>.Class2c                 6    	  d       y # t         $ r Y y w xY w)Ninvalid_valuer  )r   r  s    r;   r   zBTestSpecial.test_missing_exceptions_reset.<locals>.Class2.__init__q
  s"    _-! s    	NrQ  )r  s   r;   Class2r  p
  s    r=   r  )gcweakrefr.   r   refcollectr  )r   r  r  r  r  class_1_refclass_2_refr  s          @r;   test_missing_exceptions_resetz)TestSpecial.test_missing_exceptions_reset`
  sz    	tyy 		 		 	 kk&(+kk&(+
 	

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

|t               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       | j                  |j                  d       | j                  t        |j
                        d        G 
fdd
|t               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       | j                  t        |j
                        d       | j                  |j                  j                         d        G 
fdd
|t               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       | j                  t        |j
                        d       | j                  |j                  j                         d       | j                  |j                  j                         d        G 
fdd
||      }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       | j                  t        |j
                        d       | j                  |j                  j                         d       | j                  |j                  j                         d        G 
fdd
||      }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       | j                  t        |j
                        d       | j                  |j                  j                         d       | j                  |j                  j                         d        G 
fdd
t        ||      }	| j                  |	j                  j                  d       | j                  |	j                  j                  d       | j                  |	j
                  j                  d       | j                  t        |	j
                        d       | j                  |	j                  j                         d       | j                  |j                  j                         d       | j                  t        |	t                     y )Nc                       e Zd Zed        Zy)1TestSpecial.test_multiple_mixin.<locals>.MaxMixinc                 *    t        |       }|| _        |S r   )r  MAX)ri  maxs     r;   r  z5TestSpecial.test_multiple_mixin.<locals>.MaxMixin.MAX
  s    #h
r=   N)rE   rF   rG   r   r  rK   r=   r;   MaxMixinr  
  s     r=   r  c                       e Zd Zd Zy)1TestSpecial.test_multiple_mixin.<locals>.StrMixinc                 6    | j                   j                         S r   r  lowerr   s    r;   r  z9TestSpecial.test_multiple_mixin.<locals>.StrMixin.__str__
      {{((**r=   NrE   rF   rG   r  rK   r=   r;   StrMixinr  
      +r=   r  c                       e Zd Zd Zy)1TestSpecial.test_multiple_mixin.<locals>.SomeEnumc                      y)NbooyahrK   r   s    r;   behaviorz:TestSpecial.test_multiple_mixin.<locals>.SomeEnum.behavior
      r=   N)rE   rF   rG   r  rK   r=   r;   r  r  
  s     r=   r  c                       e Zd Zd Zd Zy)4TestSpecial.test_multiple_mixin.<locals>.AnotherEnumc                      y)Nnuhuh!rK   r   s    r;   r  z=TestSpecial.test_multiple_mixin.<locals>.AnotherEnum.behavior
  r  r=   c                      y)N
what's up?rK   r   s    r;   socialz;TestSpecial.test_multiple_mixin.<locals>.AnotherEnum.social
  s    #r=   N)rE   rF   rG   r  r  rK   r=   r;   AnotherEnumr  
  s     $r=   r  c                   6    e Zd Z e       Z e       Z e       Zy.TestSpecial.test_multiple_mixin.<locals>.ColorNrE   rF   rG   r   r  r  r  rK   r=   r;   r  r  
      &CFE6Dr=   r  rB   r'   rC   
Color.BLUEc                   R    e Zd Z e       Z e       Z e       ZW  j                  Zyr  rE   rF   rG   r   r  r  r  r  r  s   r;   r  z.TestSpecial.test_multiple_mixin.<locals>.Color
  #    &CFE6D&&Gr=   r  c                   R    e Zd Z e       Z e       Z e       ZW  j                  Zyr  r  r  s   r;   r  z.TestSpecial.test_multiple_mixin.<locals>.Color
  r  r=   c                   R    e Zd Z e       Z e       Z e       ZW  j                  Zy)2TestSpecial.test_multiple_mixin.<locals>.CoolColorNr  r  s   r;   	CoolColorr  
  r  r=   r  r  c                   R    e Zd Z e       Z e       Z e       ZW  j                  Zy)4TestSpecial.test_multiple_mixin.<locals>.CoolerColorNr  r  s   r;   CoolerColorr  
  r  r=   r  r  r  c                   R    e Zd Z e       Z e       Z e       ZW  j                  Zy)5TestSpecial.test_multiple_mixin.<locals>.CoolestColorNr  r  s   r;   CoolestColorr  
  r  r=   r  c                   R    e Zd Z e       Z e       Z e       ZW  j                  Zy)6TestSpecial.test_multiple_mixin.<locals>.ConfusedColorNr  r  s   r;   ConfusedColorr  
  r  r=   r  c                   R    e Zd Z e       Z e       Z e       ZW  j                  Zy)6TestSpecial.test_multiple_mixin.<locals>.ReformedColorNr  r  s   r;   ReformedColorr  
  r  r=   r  )r   r   r  r`  r  r  r  rY  r  r  r   r   r
  r  )r   r  r  r  r  r  r  r  r  r  r  s             @r;   test_multiple_mixinzTestSpecial.test_multiple_mixin
  sl   	 		+ 	+	 t 	 	$$ 	$
	Hd 	 	!,**A.))1-A&UZZ,7	'Hh 	'
 	!,**A.))1-A&UZZ&1	'Hh 	'
 	!,**A.))1-A&UZZ&1	'(D 	'
 	,,a0..2--q1Y^^,f5//18<	'(K 	'
 	..2**00!4))//3[--.7113X>//1<@	'8X{ 	'
 	))//3++1115**00!4\../8))224h?))002LA	'Hk8 	'
 	**00!4,,22A6++1115]//0&9**335x@**113\B	'Hgx 	'
 	**00!4,,22A6++1115]//0&9**335x@**113\B
=#67r=   c                 z    t          G d dt                     } G d dt              }t          G d d|             }y )Nc                       e Zd ZdZdZdZy)<TestSpecial.test_multiple_inherited_mixin.<locals>.Decision1REVERT
REVERT_ALLRETRYNrE   rF   rG   r  r  r  rK   r=   r;   	Decision1r   
      F%JEr=   r  c                       e Zd Zy)9TestSpecial.test_multiple_inherited_mixin.<locals>.MyEnumNr   rK   r=   r;   r   r  
  r   r=   r   c                       e Zd ZdZdZdZy)<TestSpecial.test_multiple_inherited_mixin.<locals>.Decision2r  r  r  Nr  rK   r=   r;   	Decision2r
  
  r  r=   r  )r   r	   )r   r  r   r  s       r;   test_multiple_inherited_mixinz)TestSpecial.test_multiple_inherited_mixin
  s@    		 	 
		W 			 	 
	r=   c                     G d dt               } G d d       G fdd|t        j                        } G d d|      }| j                  t	        |j
                  |             | j                  |j                  |       | j                  t        |j
                        d	        G d
 d|      }| j                  |j
                  d       y )Nc                        e Zd Z fdZ xZS )8TestSpecial.test_multiple_mixin_inherited.<locals>.MyIntc                 $    t         |   | |      S r   ry  )ri  r`  rU  s     r;   r{  z@TestSpecial.test_multiple_mixin_inherited.<locals>.MyInt.__new__
  s    wsE22r=   r,  r~  s   @r;   r_  r  
  s    3 3r=   r_  c                       e Zd Zd Zy);TestSpecial.test_multiple_mixin_inherited.<locals>.HexMixinc                     t        |       S r   r  r   s    r;   r  zDTestSpecial.test_multiple_mixin_inherited.<locals>.HexMixin.__repr__
  r  r=   Nr<  rK   r=   r;   HexMixinr  
  r`  r=   r  c                   (    e Zd ZW  j                  Zy)<TestSpecial.test_multiple_mixin_inherited.<locals>.MyIntEnumNr<  )r  s   r;   	MyIntEnumr     s    ((Hr=   r  c                       e Zd ZdZy)6TestSpecial.test_multiple_mixin_inherited.<locals>.FoorB   N)rE   rF   rG   TESTrK   r=   r;   r  r    r4  r=   r  0x1c                       e Zd ZdZd Zy)6TestSpecial.test_multiple_mixin_inherited.<locals>.FeerB   c                 J    |dz  }t         j                  | |      }||_        |S r  r  r{  r  )ri  r`  r   s      r;   r{  z>TestSpecial.test_multiple_mixin_inherited.<locals>.Fee.__new__  s'    
S%0!&r=   N)rE   rF   rG   r  r{  rK   r=   r;   Feer  	  s    Dr=   r   r'   )	r  r.   r   r   r  r  r   rX  r  )r   r_  r  r  r   r  s        @r;   test_multiple_mixin_inheritedz)TestSpecial.test_multiple_mixin_inherited
  s    	3C 	3	! 	!	)% 	)	) 	
388U34**E2chh/	) 	 	1%r=   c                      G d dt         t              } G d dt         t              } G d d||      }|}| j                  t        |      |j                  |j
                  |j                  g       | j                  |j                  d       | j                  |j                  j                  d       | j                   |d      |j                         | j                  |j                  j                          |d	      }| j                  t        |      |j                  |j
                  |j                  g       | j                  |j                  d       | j                  |j                  j                  d       | j                   |d      |j                         | j                  |j                  j                         | j                  t        ||             | j                  |j                         y )
Nc                   (     e Zd Ze fd       Z xZS )UTestSpecial.test_multiple_mixin_with_common_data_type.<locals>.CaseInsensitiveStrEnumc                     | j                   j                         D ]1  }|j                  j                         |j                         k(  s/|c S  t        |   |      S r   )_member_map_r8  r  r  rz  r  )ri  r`  r   rU  s      r;   r  z_TestSpecial.test_multiple_mixin_with_common_data_type.<locals>.CaseInsensitiveStrEnum._missing_  sS    !..557 &F~~++->%& w(//r=   )rE   rF   rG   r  r  r}  r~  s   @r;   CaseInsensitiveStrEnumr$    s    0 0r=   r'  c                   F    e Zd Zd Zed        Zej                  d        Zy)MTestSpecial.test_multiple_mixin_with_common_data_type.<locals>.LenientStrEnumc                     d| _         y )NT_valid)r   rH  s     r;   r   zVTestSpecial.test_multiple_mixin_with_common_data_type.<locals>.LenientStrEnum.__init__  s	    "r=   c                     | j                   j                  | |      }d|_        |j                         |_        ||_        || j                  |<   |S )NF)rX  r{  r,  r  r  r  r&  )ri  r`  unknowns      r;   r  zWTestSpecial.test_multiple_mixin_with_common_data_type.<locals>.LenientStrEnum._missing_  sJ    ++33C?!&!&"'*1  'r=   c                     | j                   S r   r+  r   s    r;   validzSTestSpecial.test_multiple_mixin_with_common_data_type.<locals>.LenientStrEnum.valid&  s    {{"r=   N)	rE   rF   rG   r   r  r  r.   r  r0  rK   r=   r;   LenientStrEnumr)    s1    #  ]]# #r=   r1  c                       e Zd ZdZdZdZy)HTestSpecial.test_multiple_mixin_with_common_data_type.<locals>.JobStatusactivepending
terminatedN)rE   rF   rG   ACTIVEPENDING
TERMINATEDrK   r=   r;   	JobStatusr3  *  s    FG%Jr=   r:  r4  Activemissing)rY  r   r   r   r7  r8  r9  r`  r  r   r0  r  r   )r   r'  r1  r:  JSr<  s         r;   )test_multiple_mixin_with_common_data_typez5TestSpecial.test_multiple_mixin_with_common_data_type  s\   	0S$ 	0	#S$ 	#	&. 	&
 i299bjj"--*PQH-(3blBII.		(Y-i299bjj"--*PQH-(3blBII.		(
7B/0'r=   c                 D    d}t        |dd      }i }i }t        |||       y )Nz8from enum import Enum; Enum('Animal', 'ANT BEE CAT DOG')z<string>exec)compiler@  )r   code	global_nslocal_lss       r;   test_empty_globalszTestSpecial.test_empty_globals>  s.     JtZ0	T9h'r=   c                   
  G d dt               }| j                  |j                  d       | j                  t        |j                        d       | j                  dj	                  |j                        d       | j                  |j                  t        |j                               | j                  |j                  dj	                  |j                               | j                  t        |j                        d        G d d      
 G 
fdd	
t               }| j                  |j                  d
       | j                  t        |j                        d        G d dt              } G d d|t               }| j                  |j                  d       | j                  |j                  t        |j                                G d d      } G d d||t               }| j                  |j                  d       | j                  |j                  t        |j                               | j                  t        d      5   G d dt               }d d d        | j                  t        d      5   G d dt               }d d d        | j                  t        d      5   G d dt               }	d d d        | j                  t        dt        j                        5   G d dt               }	d d d        | j                  t        d       5   G d! dt               }	d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   \xY w# 1 sw Y   y xY w)"Nc                       e Zd ZdZdZdZdZy)-TestSpecial.test_strenum.<locals>.GoodStrEnumrB  rC     3ascii   4latin1r  NrE   rF   rG   r  r  rC  fourrK   r=   r;   GoodStrEnumrH  H      CC!E+Dr=   rQ  rB  rh  z<GoodStrEnum.one: '1'>c                       e Zd Zd Zy)+TestSpecial.test_strenum.<locals>.DumbMixinc                      yNdon't do thisrK   r   s    r;   r  z3TestSpecial.test_strenum.<locals>.DumbMixin.__str__U      &r=   Nr  rK   r=   r;   	DumbMixinrT  T  r  r=   rY  c                   4    e Zd ZdZdZdZW  j                  Zy)-TestSpecial.test_strenum.<locals>.DumbStrEnumr{  67NrE   rF   rG   fivesixsevenr  rY  s   r;   DumbStrEnumr[  W      DCE''Gr=   rc  r]  rW  c                       e Zd Zd Zy)+TestSpecial.test_strenum.<locals>.EnumMixinc                      t        d|        y Nzhello from r  r   s    r;   rY  z1TestSpecial.test_strenum.<locals>.EnumMixin.hello`      01r=   NrZ  rK   r=   r;   	EnumMixinrf  _      2r=   rk  c                       e Zd ZdZy)+TestSpecial.test_strenum.<locals>.HelloEnum8NrE   rF   rG   eightrK   r=   r;   	HelloEnumrn  b      Er=   rr  ro  c                       e Zd Zd Zy).TestSpecial.test_strenum.<locals>.GoodbyeMixinc                     t        d       y Nz%s wishes you a fond farewellri  r   s    r;   goodbyez6TestSpecial.test_strenum.<locals>.GoodbyeMixin.goodbyeh      56r=   NrE   rF   rG   rx  rK   r=   r;   GoodbyeMixinru  g      7r=   r{  c                       e Zd ZdZy)-TestSpecial.test_strenum.<locals>.GoodbyeEnum9NrE   rF   rG   ninerK   r=   r;   GoodbyeEnumr~  j      Dr=   r  r  z1 is not a stringc                       e Zd ZdZdZy)4TestSpecial.test_strenum.<locals>.FirstFailedStrEnumrB   rC  Nr  rK   r=   r;   FirstFailedStrEnumr  p  s    r=   r  z2 is not a stringc                       e Zd ZdZdZdZy)5TestSpecial.test_strenum.<locals>.SecondFailedStrEnumrB  r'   rD  Nr  rK   r=   r;   SecondFailedStrEnumr  t  s    r=   r  c                       e Zd ZdZdZy)4TestSpecial.test_strenum.<locals>.ThirdFailedStrEnumrB  r'   Nr  rK   r=   r;   ThirdFailedStrEnumr  y  s    r=   r  zencoding must be a string, not c                   ,    e Zd ZdZdej
                  fZy)r  rB     2NrE   rF   rG   r  sysgetdefaultencodingr  rK   r=   r;   r  z4TestSpecial.test_strenum.<locals>.ThirdFailedStrEnum}      C222r=   zerrors must be a string, not 9c                       e Zd ZdZdZy)r  rB  r  rK  r  Nr  rK   r=   r;   r  z4TestSpecial.test_strenum.<locals>.ThirdFailedStrEnum      &r=   )r	   r   r  rY  r_  r  ra  r   rq  r  r   r  r  r  )r   rQ  rc  rk  rr  r{  r  r  r  r  rY  s             @r;   test_strenumzTestSpecial.test_strenumG  s   	,' 	,
 	#.[__-s3[__5s;#koo*>?$++koo*FGkoo.0HI	' 	'	()W 	(
 	**C0[../A	2 	2		7 	#.#ioo*>?	7 	7	,	7 	))3/))3{/?/?+@A##I/BC 	W 	 ##I/BC 	g 	
 ##I/BC 	W 	 ##IVYVlVl/op 	33W 3	3 ##I/OP 	''W '	' 	'#	 		 	
	 		3 	3	' 	's<   	L+7L7%M$MM+L47M MMM$c                     G d dt         t              } G d d|      }| j                  |j                  d       | j                  t        |j                        d       | j                  dj	                  |j                        d       | j                  t        |j                        d        G d	 d
       G fdd|      }| j                  |j                  d       | j                  t        |j                        d        G d dt              } G d d||      }| j                  |j                  d       | j                  t        |j                        d        G d d      } G d d|||      }| j                  |j                  d       | j                  t        |j                        d        G d d|      } G d d|      }	 G d d |      }
| j                  t        d!      5   G d" d |      }
d d d        | j                  t        d#      5   G d$ d |      }
d d d        y # 1 sw Y   4xY w# 1 sw Y   y xY w)%Nc                       e Zd Zy)6TestSpecial.test_custom_strenum.<locals>.CustomStrEnumNr   rK   r=   r;   CustomStrEnumr    r   r=   r  c                       e Zd ZdZdZdZdZy)1TestSpecial.test_custom_strenum.<locals>.OkayEnumrB  rC  rI  rL  NrO  rK   r=   r;   OkayEnumr    rR  r=   r  rB  zOkayEnum.onerh  z<OkayEnum.one: '1'>c                       e Zd Zd Zy)2TestSpecial.test_custom_strenum.<locals>.DumbMixinc                      yrV  rK   r   s    r;   r  z:TestSpecial.test_custom_strenum.<locals>.DumbMixin.__str__  rX  r=   Nr  rK   r=   r;   rY  r    r  r=   rY  c                   4    e Zd ZdZdZdZW  j                  Zy)4TestSpecial.test_custom_strenum.<locals>.DumbStrEnumr{  r\  r]  Nr^  rb  s   r;   rc  r    rd  r=   rc  r]  rW  c                       e Zd Zd Zy)2TestSpecial.test_custom_strenum.<locals>.EnumMixinc                      t        d|        y rh  ri  r   s    r;   rY  z8TestSpecial.test_custom_strenum.<locals>.EnumMixin.hello  rj  r=   NrZ  rK   r=   r;   rk  r    rl  r=   rk  c                       e Zd ZdZy)2TestSpecial.test_custom_strenum.<locals>.HelloEnumro  Nrp  rK   r=   r;   rr  r    rs  r=   rr  ro  zHelloEnum.eightc                       e Zd Zd Zy)5TestSpecial.test_custom_strenum.<locals>.GoodbyeMixinc                     t        d       y rw  ri  r   s    r;   rx  z=TestSpecial.test_custom_strenum.<locals>.GoodbyeMixin.goodbye  ry  r=   Nrz  rK   r=   r;   r{  r    r|  r=   r{  c                       e Zd ZdZy)4TestSpecial.test_custom_strenum.<locals>.GoodbyeEnumr  Nr  rK   r=   r;   r  r    r  r=   r  r  zGoodbyeEnum.ninec                       e Zd ZdZdZy);TestSpecial.test_custom_strenum.<locals>.FirstFailedStrEnumrB   rC  Nr  rK   r=   r;   r  r    s    CCr=   r  c                       e Zd ZdZdZdZy)<TestSpecial.test_custom_strenum.<locals>.SecondFailedStrEnumrB  r  rD  Nr  rK   r=   r;   r  r    s    CCEr=   r  c                       e Zd ZdZdZy);TestSpecial.test_custom_strenum.<locals>.ThirdFailedStrEnumrB  r'   Nr  rK   r=   r;   r  r    s    CCr=   r  z.encoding. must be str, not c                   ,    e Zd ZdZdej
                  fZy)r  rB  r  Nr  rK   r=   r;   r  z;TestSpecial.test_custom_strenum.<locals>.ThirdFailedStrEnum  r  r=   z.errors. must be str, not c                       e Zd ZdZdZy)r  rB  r  Nr  rK   r=   r;   r  z;TestSpecial.test_custom_strenum.<locals>.ThirdFailedStrEnum  r  r=   )rY  r   r   r  r_  r  ra  rq  r  r   r  )r   r  r  rc  rk  rr  r{  r  r  r  r  rY  s              @r;   test_custom_strenumzTestSpecial.test_custom_strenum  s   	C 		,} 	,
 	s+X\\*N;X\\2NChll+-BC	' 	'	()] 	(
 	**C0[../A	2 	2		= 	#.Y__-/@A	7 	7	,	= 	))3/[--.0BC	 		- 		 	 ##I/MN 	33] 3	3 ##I/KL 	''] '	' 	'		3 	3	' 	's   6H5 I5H>I
c                     | j                  t        d      5   G d dt        t              }d d d        y # 1 sw Y   y xY w)Nz_value_ not set in __new__c                   (    e Zd Zd Zd ZdZdZdZdZy)6TestSpecial.test_missing_value_error.<locals>.Combinedc                     t         j                  | |      }d|v r'|j                  dd      \  }}|j                  d      }n|}d }||_        ||_        ||_        |S )N(rB   z ))rY  r{  r  stripfis_namesegmentsequence)ri  r`  r  r.   r  r  s         r;   r{  z>TestSpecial.test_missing_value_error.<locals>.Combined.__new__  s`    ;;sE2De|,1KKQ,?)'")--"5#("&$,DM#*DL$,DMKr=   c                 P    d| j                   j                  d| j                  dS )N<r>   r/  )rU  rE   r  r   s    r;   r  z?TestSpecial.test_missing_value_error.<locals>.Combined.__repr__  s    (,(?(?MMr=   )zAn$(1,2)r   )zAn$(3,2)rB   )zAn$(5,1)r'   )zBn$rC   N)	rE   rF   rG   r{  r  key_type
company_idrB  r  rK   r=   r;   Combinedr    s#     N !. -
 - -r=   r  )r   r  rY  r   )r   r  s     r;   test_missing_value_errorz$TestSpecial.test_missing_value_error  s6    ##I/KL 	..3 .	. 	. 	.s   5>c                      G d dt               }| j                  |j                  d       | j                  |j                  d       y )Nc                       e Zd ZdZdZy)FTestSpecial.test_private_variable_is_normal_attribute.<locals>.PrivateRadarHoolihanN)rE   rF   rG   _Private__corporal_Private__major_rK   r=   r;   Privater    s     J!Hr=   r  r  r  )r   r   r  r  )r   r  s     r;   )test_private_variable_is_normal_attributez5TestSpecial.test_private_variable_is_normal_attribute  s<    	"d 	" 	33W=11:>r=   c                     G d dt               }|j                  j                  }| j                  ||j                         | j                  |j                  |d          | j                  |j                  j                  d       y )Nc                       e Zd ZdZdZdZy)6TestSpecial.test_member_from_member_access.<locals>.DirB   r   rC   N)rE   rF   rG   YESNOr   rK   r=   r;   Dir    s    CBDr=   r  r   )r   r  r  r  r   r   )r   r  warns      r;   test_member_from_member_accessz*TestSpecial.test_member_from_member_access  s]    	 	 vvyydBEE"bggr&z*v.r=   c                    dddd G fddt               }| j                  t        |      |j                  |j                  g       | j                  |j                  j
                  d       | j                  |j                  j                         d       | j                  t        d      5   G fd	d
t               }d d d        y # 1 sw Y   y xY w)NalooffriendlyrG  )FOO_CATBAR_DOG	FOO_HORSEc            
           e Zd Z e       j	                  W j                         D  ci c]  \  }}|j                  d      r|| c}}}        d Zyc c}}} w )ATestSpecial.test_dynamic_members_with_static_methods.<locals>.FooFOO_c                 6    | j                   j                         S r   r`  r  r   s    r;   r  zGTestSpecial.test_dynamic_members_with_static_methods.<locals>.Foo.upper  s    zz''))r=   NrE   rF   rG   rx  updater$  
startswithr  rN  r)  r*  foo_definess   000r;   r  r    sS    FMM + 1 1 3 1||F+ qD 
*s   Ar  rV   z$'FOO_CAT' already defined as 'aloof'c            
           e Zd Z  e       j                  W j                         D  ci c]  \  }}|j                  d      r|| c}}} fi ddi d Zyc c}}} w )DTestSpecial.test_dynamic_members_with_static_methods.<locals>.FooBarr  r  smallc                 6    | j                   j                         S r   r  r   s    r;   r  zJTestSpecial.test_dynamic_members_with_static_methods.<locals>.FooBar.upper  s    ::++--r=   Nr  r  s   000r;   FooBarr    sd    $/$5$5$7  Aq<</ 1 
 %g..s   Ar  )	r   r   r   r  r  r`  r  r   r  )r   r  r  r  s      @r;   (test_dynamic_members_with_static_methodsz4TestSpecial.test_dynamic_members_with_static_methods  s    ")juU	*$ 	* 	cS[[#--$@A**G4,,.6##I/UV 
	.	. 	.
	. 
	. 
	.s   0CCc                    ddl m}m  |d       G d d             } G d d|t              }| j	                  t        |j                        d	       | j                  |j                  j                   |d
      k(  |j                  j                         | j                  t        |j                  |             | j                  |j                  |u |j                         | G fdd             } G d d|t              }| j	                  t        |j                        d        G d d      } |d       G fdd|             } G d d|t              }| j	                  t        |j                        d        |d       G fdd             } G d d|t              }| j                  t        |j                        d       y)z)ensure dataclass-mixin has correct repr()r   )	dataclassfieldF)r  c                   "    e Zd ZU dZeed<   d Zy)1TestSpecial.test_repr_with_dataclass.<locals>.Foor  r   c                      y)Nzha hah!rK   r   s    r;   r  z:TestSpecial.test_repr_with_dataclass.<locals>.Foo.__repr__  s     r=   N)rE   rF   rG   r  __annotations__r  rK   r=   r;   r  r    s     LF!r=   r  c                       e Zd ZdZy)5TestSpecial.test_repr_with_dataclass.<locals>.EntriesrB   NrE   rF   rG   ENTRY1rK   r=   r;   Entriesr        Fr=   r  z<Entries.ENTRY1: ha hah!>rB   c                   H    e Zd ZU dZeed<   eed<    W  dd      Zeed<   y	?TestSpecial.test_repr_with_dataclass.<locals>.CreatureDataMixinCreatureDataMixinsizelegsFT)r  defaulttailNrE   rF   rG   rY  r  r  r  r_  r  s   r;   r  r    #    .LIIE48D$8r=   r  c                       e Zd ZdZdZdZy6TestSpecial.test_repr_with_dataclass.<locals>.CreatureCreature)r  r  )mediumrS   NrE   rF   rG   BEETLEDOGrK   r=   r;   r  r  !      %L!FCr=   r  z%<Creature.DOG: size='medium', legs=4>c                       e Zd Zd Zy)1TestSpecial.test_repr_with_dataclass.<locals>.Huhc                      y)N	inheritedrK   r   s    r;   r  z:TestSpecial.test_repr_with_dataclass.<locals>.Huh.__repr__*  s    "r=   Nr<  rK   r=   r;   r  r  )  s    #r=   r  c                   H    e Zd ZU dZeed<   eed<    W  dd      Zeed<   yr  r  r  s   r;   r  z?TestSpecial.test_repr_with_dataclass.<locals>.CreatureDataMixin,  r  r=   c                       e Zd ZdZdZdZyr  r
  rK   r=   r;   r  z6TestSpecial.test_repr_with_dataclass.<locals>.Creature2  r  r=   z<Creature.DOG: inherited>c                   H    e Zd ZU dZeed<   eed<    W  dd      Zeed<   yr  r  r  s   r;   r  z?TestSpecial.test_repr_with_dataclass.<locals>.CreatureDataMixin:  r  r=   c                       e Zd ZdZdZdZyr  r
  rK   r=   r;   r  z6TestSpecial.test_repr_with_dataclass.<locals>.Creature@  r  r=   z0<Creature.DOG: .*CreatureDataMixin object at .*>N)dataclassesr  r  r   r   r  r  r   r`  r  rX  r  assertRegex)r   r  r  r  r  r  r  r  s          @r;   test_repr_with_dataclassz$TestSpecial.test_repr_with_dataclass  s   
 	1			! 	! 
	!
	c4 	gnn-/JK,,A68L8LM
7>>378--4g6K6KL 
	9 	9 
	9
	 ($ 	  	hll+-TU	# 	# 
		9 	9 
	9
	 ($ 	  	hll+-HI 
		9 	9 
	9
	 ($ 	  	hll+-_`r=   c                      G d d      } G d d|t               }| j                  t        |j                        d       y )Nc                       e Zd Zd Zd Zy)2TestSpecial.test_repr_with_init_mixin.<locals>.Fooc                     || _         y r   r   )r   r   s     r;   r   z;TestSpecial.test_repr_with_init_mixin.<locals>.Foo.__init__H  s	    r=   c                 "    d| j                   dS )NzFoo(a=)r  r   s    r;   r  z;TestSpecial.test_repr_with_init_mixin.<locals>.Foo.__repr__J  s    z++r=   N)rE   rF   rG   r   r  rK   r=   r;   r  r  G  s    ,r=   r  c                       e Zd ZdZy)6TestSpecial.test_repr_with_init_mixin.<locals>.EntriesrB   Nr  rK   r=   r;   r  r!  L  r  r=   r  zFoo(a=1))r   r   r  r  r   r  r  s      r;   test_repr_with_init_mixinz%TestSpecial.test_repr_with_init_mixinF  s5    	, 	,
	c4 	 	gnn-z:r=   c                      G d d      } G d d|t               }| j                  t        |j                        d       | j                  t	        |j                        d       y )Nc                       e Zd Zd Zd Zy)=TestSpecial.test_repr_and_str_with_no_init_mixin.<locals>.Fooc                      y)Nr  rK   r   s    r;   r  zFTestSpecial.test_repr_and_str_with_no_init_mixin.<locals>.Foo.__repr__T      r=   c                      y)NooFrK   r   s    r;   r  zETestSpecial.test_repr_and_str_with_no_init_mixin.<locals>.Foo.__str__V  r(  r=   N)rE   rF   rG   r  r  rK   r=   r;   r  r&  S  s    r=   r  c                       e Zd ZdZy)ATestSpecial.test_repr_and_str_with_no_init_mixin.<locals>.EntriesrB   Nr  rK   r=   r;   r  r,  X  r  r=   r  r*  )r   r   r  r  rY  r"  s      r;   $test_repr_and_str_with_no_init_mixinz0TestSpecial.test_repr_and_str_with_no_init_mixinQ  sN    	 	
	c4 	 	gnn-u5W^^,e4r=   c                      G d dt               }| j                  |j                  j                  d       | j                  |j                  j                  d       y )Nc                       e Zd Zd ZdZdZy)2TestSpecial.test_value_backup_assign.<locals>.Somec                 ,    t         j                  |       S r   r  r{  )ri  r  s     r;   r{  z:TestSpecial.test_value_backup_assign.<locals>.Some.__new__a      ~~c**r=   rB   r'   N)rE   rF   rG   r{  rj  rk  rK   r=   r;   Somer0  `  s    +AAr=   r4  rB   r'   )r   r   rj  r`  rk  )r   r4  s     r;   test_value_backup_assignz$TestSpecial.test_value_backup_assign^  s@    	4 	
 	q)q)r=   c                     G d dt         t              }| j                  t        |j                  |j
                  z  |      |j                  |j
                  z         | j                  t        |j                  dz  |             y )Nc                       e Zd ZdZdZdZy)7TestSpecial.test_custom_flag_bitwise.<locals>.MyIntFlagrB   r'   rS   NrE   rF   rG   r   r   FOURrK   r=   r;   	MyIntFlagr8  i  r  r=   r;  r'   )r  r   r   r  r   r   )r   r;  s     r;   test_custom_flag_bitwisez$TestSpecial.test_custom_flag_bitwiseh  s`    	T 	 	
9==9==#@)Limm^g^k^kNkl
9==1#4i@Ar=   c                     G d dt               }|j                  |j                  z  }t        j                  |      }t        j                  |      }| j                  ||       | j                  ||       |j                  |j                  z  dz  }t        j                  |      }t        j                  |      }| j                  ||       | j                  ||       | j                  |j                  d       y )Nc                       e Zd ZdZdZdZy)2TestSpecial.test_int_flags_copy.<locals>.MyIntFlagrB   r'   rS   Nr9  rK   r=   r;   r;  r?  q  r  r=   r;  r  r  )r   r   r   r  r  r   r`  )r   r;  flagsr  r  s        r;   test_int_flags_copyzTestSpecial.test_int_flags_copyp  s    	 	
 	-5!}}U#'u%	-15!}}U#'u%y1r=   c                 ~   ddl m}  |dd       G fddt              }| j                  t	        |j
                        d       | j                  |j
                  j                   ddg              | j                  |D cg c]  }|j                   c} ddg        d	d
dg       d
dg d      g       | j                  t        t        |j
                  d        G d dt              }| j                  t	        |j
                        d       | j                  |j
                  j                   ddg              | j                  |j
                  j                  d       | j                  |j                  j                  d
       | j                  |j                  j                  g d       | j                  |D cg c]  }|j                   c} ddg        d	d
dg       d
dg d      g        G fddt              }| j                  t	        |j
                        d       | j                  |j
                  j                  d       | j                  |j                  j                  d
       | j                  |j                  j                  g d       y c c}w c c}w )Nr   r  TTuplez
id a blistc                   V    e Zd Z W  ddg       Z W  dddg      Z W  ddg d      Zy)4TestSpecial.test_namedtuple_as_value.<locals>.NTEnumr   rB   r'   rS   r   rB   r'   NrE   rF   rG   NONErK  r  rC  s   r;   NTEnumrE    s/    !Q#Dq!aS!Aq!Y'Ar=   rJ  z*<NTEnum.NONE: TTuple(id=0, a=0, blist=[])>)idr   blistrB   r'   rS   rF  rK  c                   0    e Zd Zddg fZdddgfZddg dfZy)5TestSpecial.test_namedtuple_as_value.<locals>.NTCEnumr   rB   r'   rS   rF  NrG  rK   r=   r;   NTCEnumrN    s%    a8D1qc	A1iAr=   rO  z+<NTCEnum.NONE: TTuple(id=0, a=0, blist=[])>c                   \    e Zd Zd Z W  ddg       Z W  dddg      Z W  ddg d      Zy)5TestSpecial.test_namedtuple_as_value.<locals>.NTDEnumc                 Z    t         j                  |       }||_        ||_        ||_        |S r   )r  r{  rK  r   rL  )ri  rK  r   rL  r   s        r;   r{  z=TestSpecial.test_namedtuple_as_value.<locals>.NTDEnum.__new__  s*    ,	$r=   r   rB   r'   rS   rF  N)rE   rF   rG   r{  rH  rK  r  rI  s   r;   NTDEnumrQ    s6     !Q#Dq!aS!Aq!Y'Ar=   rS  z+<NTDEnum.NONE: TTuple(id=0, a=0, blist=[])>)r  r  r   r   r  rH  r`  rp  rq  r[  rK  rK  r   r  rL  )r   r  rJ  rj  rO  rS  rC  s         @r;   test_namedtuple_as_valuez$TestSpecial.test_namedtuple_as_value  s   *Hl3	(T 	( 	fkk*,XY**Fa1B,GH"()Q)1,fQqc.JFVW[\dmLno	
 	.'6;;E	 fd 	  	gll+-Z[++VqAR-HI!,a()4")*Q*1,fQqc.JFVW[\dmLno	
		(d 		( 	gll+-Z[!,a()4C *  +s   J5J:c                 b    G d dt               }| j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  dz  d        G d dt
              }| j                  |j                  d       | j                  |j                  d       | j                  |j                  j                  d       | j                  |j                  |j                  z  j                  d        G d	 dt        t
        t        
      }| j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  dz  d       y )Nc                   "    e Zd Zd Z ed      Zy);TestSpecial.test_flag_with_custom_new.<locals>.FlagFromCharc                 J    d|z  }t         j                  | |      }||_        |S r  r  ri  r6  r`  r   s       r;   r{  zCTestSpecial.test_flag_with_custom_new.<locals>.FlagFromChar.__new__  '    Q{{3.$r=   r   NrE   rF   rG   r{  ordr   rK   r=   r;   FlagFromCharrW         CAr=   r]  l    l                rB   l               c                   &    e Zd Zd Z ed      ZdZy)rW  c                 H    d|z  }t         j                  |       }||_        |S r  )r  r{  r  rY  s       r;   r{  zCTestSpecial.test_flag_with_custom_new.<locals>.FlagFromChar.__new__  s%    Q~~c*$r=   r   rB   N)rE   rF   rG   r{  r\  r   zrK   r=   r;   r]  z;TestSpecial.test_flag_with_custom_new.<locals>.FlagFromChar  s     CAAr=   l               c                   "    e Zd Zd Z ed      Zy)rW  c                 J    d|z  }t         j                  | |      }||_        |S r  r  rY  s       r;   r{  zCTestSpecial.test_flag_with_custom_new.<locals>.FlagFromChar.__new__  rZ  r=   r   Nr[  rK   r=   r;   r]  z;TestSpecial.test_flag_with_custom_new.<locals>.FlagFromChar  r^  r=   r   )
r   r   
_all_bits__flag_mask_r   r   r`  ra  r  r   )r   r]  s     r;   test_flag_with_custom_newz%TestSpecial.test_flag_with_custom_new  sW   	7 	 	002PQ113QR)GH)+IJ	4 	 	002PQ113QR--/MN,..7>>@^_	3t 	 	002PQ113QR)GH)+IJr=   c                 .    G d d      | j                  t              5   G d dt        j                        }d d d        | j                  t              5   G fddt        j                        }d d d        y # 1 sw Y   DxY w# 1 sw Y   y xY w)Nc                       e Zd Zd Zd Zy)-TestSpecial.test_init_exception.<locals>.Basec                 ,    t         j                  |       S r   r2  )ri  rH  s     r;   r{  z5TestSpecial.test_init_exception.<locals>.Base.__new__  r3  r=   c                     t        d|      )NzI don't liker  )r   rj  s     r;   r   z6TestSpecial.test_init_exception.<locals>.Base.__init__  s     33r=   N)rE   rF   rG   r{  r   rK   r=   r;   r0  ri    s    +4r=   r0  c                       e Zd ZdZd Zy)/TestSpecial.test_init_exception.<locals>.MyEnumr   c                     || _         y r   rk  r   rk  s     r;   r   z8TestSpecial.test_init_exception.<locals>.MyEnum.__init__  	    DFr=   N)rE   rF   rG   rK  r   rK   r=   r;   r   rm    s    r=   r   c                   "    e Zd ZdZd Z fdZy)rm  r   c                     || _         y r   ro  rp  s     r;   r   z8TestSpecial.test_init_exception.<locals>.MyEnum.__init__  rq  r=   c                 D    j                  |       } |      |_        |S r   )r{  r  )ri  r`  r   r0  s      r;   r{  z7TestSpecial.test_init_exception.<locals>.MyEnum.__new__  s!    !\\#.F%)%[FN!Mr=   N)rE   rF   rG   rK  r   r{  )r0  s   r;   r   z/TestSpecial.test_init_exception.<locals>.MyEnum  s    "r=   )rp  r  r.   r   r   )r   r   r0  s     @r;   test_init_exceptionzTestSpecial.test_init_exception  s    	4 	4
 y) 	tyy 	
 z* 	""tyy "	" 	"	 	
	" 	"s   A?B?BBc                      G d dt               }| j                   |dd      |j                         | j                   |dd      |j                         y )Nc                       e Zd ZdZdZdZdZy)>TestSpecial.test_second_tuple_item_is_falsey.<locals>.Cardinal)rB   r   )r   rB   )r?   r   )r   r?   N)rE   rF   rG   RIGHTUPLEFTDOWNrK   r=   r;   Cardinalrx    s    EBDDr=   r}  rB   r   r?   )r   r  ry  r{  )r   r}  s     r;    test_second_tuple_item_is_falseyz,TestSpecial.test_second_tuple_item_is_falsey  s@    	t 	
 	hq!nhnn5hr1ox}}5r=   c                     | j                  t        d      5  t        d       d d d        | j                  t        d      5  t        d       d d d        y # 1 sw Y   4xY w# 1 sw Y   y xY w)Nhas no membersr   )r   r  r   r   r   s    r;   test_no_memberszTestSpecial.test_no_members  sm    ##  	 G		
 ##  	 G		 		 	
	 	s   AA"A"A+c                 6   dg i fD ]P  }d t         fD ]C  }t        d||      }| j                  t        |      d       | j	                  t
        d|d       E R | j	                  t
        dt        dd       | j	                  t
        dt        ddt                y )	Nr%  
empty_enumr  r   r  z.int. object is not iterablebad_enum)rW  )r  r   r   r  r   r  )r   nothinge_typer  s       r;   test_empty_nameszTestSpecial.test_empty_names  s    2rz 	SG) S!,fE
  Z!4&&y2BJPQRS	S
 	y*H$PZbcdy*H$PZ\]dghr=   N)nrE   rF   rG   r   r]  rg  rn  unittestskipr|  r  r  r  r  skipIfpython_versionr  r  r  r  r  r  r  r  r  r!  r&  r*  r,  r/  r2  r5  rE  rI  rN  rb  rd  rf  rh  rk  rn  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r<  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r*  r5  rH  rX  rm  r  r  r  r  r  r  r  r  r!  r>  rE  r  r  r  r  r  r  r  r#  r-  r5  r<  rA  rT  rf  ru  r~  r  r  rK   r=   r;   r5  r5    s   :),&$ X]]< + !+02E
@08 X__g%+	. X__W$-	((:0*,,,,=\$. .". .". . C6
69;57DOKA93	8,&A4
4??CA93$ #J:2x:2x:2x92v82t82t
>="="7(; ;4.>B-.&,E*887"D"
5#5J +De8N&6*(X(<'|9'v.4?/.6>a@	;5*B2&+5Z,K\"*6
ir=   r5  c                   :    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
y	)
	TestOrderz%test usage of the `_order_` attributec                 "     G d dt               }y )Nc                       e Zd ZdZdZdZdZy)*TestOrder.test_same_members.<locals>.Colorred green bluerB   r'   rC   NrE   rF   rG   _order_r  r  r  rK   r=   r;   r  r    s    &GCEDr=   r  r   r  s     r;   test_same_memberszTestOrder.test_same_members  s    	D 	r=   c                 "     G d dt               }y )Nc                        e Zd ZdZdZdZdZeZy)7TestOrder.test_same_members_with_aliases.<locals>.Colorr  rB   r'   rC   NrE   rF   rG   r  r  r  r  verderK   r=   r;   r  r    s    &GCEDEr=   r  r  r  s     r;   test_same_members_with_aliasesz(TestOrder.test_same_members_with_aliases  s    	D 	r=   c                 x    | j                  t        d      5   G d dt              }d d d        y # 1 sw Y   y xY w)N#member order does not match _order_c                       e Zd ZdZdZdZdZy)6TestOrder.test_same_members_wrong_order.<locals>.Colorr  rB   rC   r'   N)rE   rF   rG   r  r  r  r  rK   r=   r;   r  r  &  s    *r=   r  r   r  r   r  s     r;   test_same_members_wrong_orderz'TestOrder.test_same_members_wrong_order$  s4    ##I/TU 	 	 	 	rO  c                 x    | j                  t        d      5   G d dt              }d d d        y # 1 sw Y   y xY w)Nr  c                       e Zd ZdZdZdZdZy)5TestOrder.test_order_has_extra_members.<locals>.Colorred green blue purplerB   r'   rC   Nr  rK   r=   r;   r  r  .  s    1r=   r  r  r  s     r;   test_order_has_extra_membersz&TestOrder.test_order_has_extra_members,  s4    ##I/TU 	 	 	 	rO  c                 x    | j                  t        d      5   G d dt              }d d d        y # 1 sw Y   y xY w)Nr  c                        e Zd ZdZdZdZdZeZy)BTestOrder.test_order_has_extra_members_with_aliases.<locals>.Colorr  rB   r'   rC   Nr  rK   r=   r;   r  r  6  s    1r=   r  r  r  s     r;   )test_order_has_extra_members_with_aliasesz3TestOrder.test_order_has_extra_members_with_aliases4  s4    ##I/TU 	 	 	 	rO  c                 x    | j                  t        d      5   G d dt              }d d d        y # 1 sw Y   y xY w)Nr  c                        e Zd ZdZdZdZdZdZy)4TestOrder.test_enum_has_extra_members.<locals>.Colorr  rB   r'   rC   rS   N)rE   rF   rG   r  r  r  r  purplerK   r=   r;   r  r  ?  s    *r=   r  r  r  s     r;   test_enum_has_extra_membersz%TestOrder.test_enum_has_extra_members=  s4    ##I/TU 	 	 	 	rO  c                 x    | j                  t        d      5   G d dt              }d d d        y # 1 sw Y   y xY w)Nr  c                   $    e Zd ZdZdZdZdZdZeZy)ATestOrder.test_enum_has_extra_members_with_aliases.<locals>.Colorr  rB   r'   rC   rS   N)	rE   rF   rG   r  r  r  r  r  r  rK   r=   r;   r  r  H  s     *r=   r  r  r  s     r;   (test_enum_has_extra_members_with_aliasesz2TestOrder.test_enum_has_extra_members_with_aliasesF  s4    ##I/TU 	 	 	 	rO  N)rE   rF   rG   r   r  r  r  r  r  r  r  rK   r=   r;   r  r    s(    +r=   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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"y )!OldTestFlagzTests of the Flags.c                       e Zd Zd\  ZZZy)OldTestFlag.Perm)rS   r'   rB   NrE   rF   rG   RWr  rK   r=   r;   Permr  T  s    1ar=   r  c                        e Zd ZdZdZdZdZdZy)OldTestFlag.Openr   rB   r'   rC      NrE   rF   rG   ROWORWACCErK   r=   r;   Openr  W      r=   r  c                   J    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
y)OldTestFlag.Colorr   rB   r'   rS   NrE   rF   rG   BLACKr  ROJOr  r  PURPLEWHITEBLANCOrK   r=   r;   r  r  ^  >    TE	$U4r=   r  c           	         | j                   }|D ]  }|D ]  }| j                  ||z   ||j                  |j                  z               | j                  ||z  j                  |j                  |j                  z         | j                  t	        ||z        |         |D ]  }| j                  ||z  |        | j
                  }| j                  |j                  |j                  z  |j                         y r   r  r   r`  r  r  r  r  r  r   r  r  jr  s        r;   test_orzOldTestFlag.test_orh  s    yy 	1A 1  !a%$qww/@*AB  !a%!''0ABd1q5k401	1
  	$AMM!a%#	$yydgg'1r=   c                    | j                   }|j                  |j                  z  }|j                  |j                  z  }|j                  |j                  z  }|j                  |j                  z  |j                  z  }t	        |      |||| |d      gz   }|D ]]  }|D ]V  }| j                  ||z  j                  |j                  |j                  z         | j                  t        ||z        |       X _ |D ]A  }| j                  ||z  |       | j                  ||z  |       | j                  ||z  |       C | j                  }	| j                  |	j                  |	j                  z  |	j                         y Nr   )r  r  r  r  r   r   r`  r  r  r  r  r  
r   r  r  RXWXRWXr8  r  r  r  s
             r;   test_andzOldTestFlag.test_andt  s?   yyVVdff_VVdff_VVdff_fftvvo&dr2r3Q88 	1A 1  !a%!''0ABd1q5k401	1  	&AMM!a%#MM!c'1%MM#'1%	& yydgg'1r=   c                 >   | j                   }|D ]]  }|D ]V  }| j                  ||z  j                  |j                  |j                  z         | j                  t	        ||z        |       X _ |D ]8  }| j                  | |d      z  |       | j                   |d      |z  |       : | j
                  }| j                  |j                  |j                  z  |j                         | j                  |j                  |j                  z  |j                         y r  r  r  s        r;   test_xorzOldTestFlag.test_xor  s    yy 	1A 1  !a%!''0ABd1q5k401	1  	*AMM!d1g+q)MM$q'A+q)	* yydgg'1dgg'1r=   c                     | j                   }|D ]  }| j                  |        | j                  }|D ]0  }| j                  t	        |j
                        t	        |             2 y r   r  r   r  r   r_  r`  r   r  r  r  s       r;   rg  zOldTestFlag.test_bool  Z    yy 	AOOA	yy 	5AT!'']DG4	5r=   c                    | j                  t        j                  j                  t                G d dt        t
              }| j                  |j                  t
                G d dt        t              }| j                  |j                  t                G d dt        t              }| j                  |j                  t                G d d	t        t              }| j                  t        d
|d       | j                   |d      |j                  |j                  z         | j                   |d      |j                         | j                   |d      d       | j                  t         |d            t        u        | j                  t!        |      |j"                  g       | j                   |d      |j$                         | j                   |d      |j&                          G d dt        j                        }| j                  |j(                  |j*                  |j(                  z  v        | j                  t        d|d        G d dt        j,                        }| j                  |j(                  |j*                  |j(                  z  v        | j                   |d      j.                  d        G d dt              }| j                  t1        |j2                  |j4                  z        d       y )Nc                       e Zd ZdZdZdZy)'OldTestFlag.test_boundary.<locals>.IronrB   r'   r  NrE   rF   rG   r   r   EIGHTrK   r=   r;   Ironr    r  r=   r  r   c                       e Zd ZdZdZdZy)(OldTestFlag.test_boundary.<locals>.WaterrB   r'   r  Nr  rK   r=   r;   Waterr    r  r=   r  c                       e Zd ZdZdZdZy)(OldTestFlag.test_boundary.<locals>.SpacerB   r'   r  Nr  rK   r=   r;   Spacer    r  r=   r  c                       e Zd ZdZdZdZy)*OldTestFlag.test_boundary.<locals>.BizarrerC   rS   r  NrE   rF   rG   r  r6  drK   r=   r;   Bizarrer        AAAr=   r  zinvalid value 7r   rC   r  c                       e Zd ZdZdZdez  Zy)+OldTestFlag.test_boundary.<locals>.SkipFlagrB   r'   rS   Nr	  rK   r=   r;   SkipFlagr        AAAAr=   r  zSkipFlag.. invalid value 42*   c                       e Zd ZdZdZdez  Zy).OldTestFlag.test_boundary.<locals>.SkipIntFlagrB   r'   rS   Nr	  rK   r=   r;   SkipIntFlagr    r  r=   r  c                       e Zd ZdZdZdZdZy)-OldTestFlag.test_boundary.<locals>.MethodHint   rB   r'   r  N)rE   rF   rG   
HiddenText
DigitsOnlyLettersOnlyOnlyMaskrK   r=   r;   
MethodHintr    s    JJKHr=   r	  z5MethodHint.HiddenText|DigitsOnly|LettersOnly|OnlyMask)r  r.   r   r  r   r   r   r   r   r   r   r   r   r   r  r  r   r6  r  r  r>  rK  r   r`  rY  r 	  r	  )r   r  r  r  r  r  r  r	  s           r;   test_boundaryzOldTestFlag.test_boundary  s%   dii**F3	4' 	 	doow/	D6 	 	e&&/	D5 	 	e&&.	dT 	
 	z+<eQGd1gtxx01d2h)q1%U1X#-.g4gaj')),gaj')),	tyy 	
 	

xzz(**'<=>z+H(TVW	$,, 	
 	+--*EFGR..3	 	 	Z22:3F3FFG  JA  	Br=   c                 $   | j                   }| j                  }| j                  t        |      |j                  |j
                  |j                  g       | j                  t        |      |j                  |j                  |j                  g       y r   
r  r  r   r   r  r  r  r  r  r  r   r  r  s      r;   	test_iterzOldTestFlag.test_iter  b    

yyeuyy%++uzz&JKddggtww%@Ar=   c                    t        dd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  ||j                  |j
                  |j                  g       t        dj                               D ]  \  }}d|z  } ||      }| j                  |j                  |       | j                  t        |j                        t               | j                  |j                  |       | j                  ||       | j                  t        |      |        y Nr  R W XrC   rB   r   r   r   r  r  r  r  r$  r  r`  r  r  r   r  r  r   r  r!  r  nr*  r$  s          r;    test_programatic_function_stringz,OldTestFlag.test_programatic_function_string  s    FG$4jS3t9-TAt,tvvtvvtvv67gmmo. 	)DAq1AQAQWWa(T!'']C0QVVQ'MM!T"MM$q'4(	)r=   c                    t        ddd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  ||j                  |j
                  |j                  g       t        dj                               D ]  \  }}d|z  } ||      }| j                  |j                  |       | j                  t        |j                        t               | j                  |j                  |       | j                  ||       | j                  t        |      |        y Nr  r	  r  r(  rC   r	  r	  s          r;   +test_programatic_function_string_with_startz7OldTestFlag.test_programatic_function_string_with_start  s    FG1-4jS3t9-TAt,tvvtvvtvv67gmmo. 	)DAq1AQAQWWa(T!'']C0QVVQ'MM!T"MM$q'4(	)r=   c                    t        dg d      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  ||j                  |j
                  |j                  g       t        dj                               D ]  \  }}d|z  } ||      }| j                  |j                  |       | j                  t        |j                        t               | j                  |j                  |       | j                  ||       | j                  t        |      |        y Nr  )r  r  r  rC   r	  rB   r	  r	  s          r;   %test_programatic_function_string_listz1OldTestFlag.test_programatic_function_string_list  s    FO,4jS3t9-TAt,tvvtvvtvv67gmmo. 	)DAq1AQAQWWa(T!'']C0QVVQ'MM!T"MM$q'4(	)r=   c                    t        dd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  ||j                  |j
                  |j                  g       t        dj                               D ]  \  }}dd|z  dz   z  } ||      }| j                  |j                  |       | j                  t        |j                        t               | j                  |j                  |       | j                  ||       | j                  t        |      |        y Nr  ))r  r'   )r  r  )r  ru  rC   r	  rB   r'   r	  r	  s          r;   "test_programatic_function_iterablez.OldTestFlag.test_programatic_function_iterable  s   F;<4jS3t9-TAt,tvvtvvtvv67gmmo. 	)DAqAaCE
AQAQWWa(T!'']C0QVVQ'MM!T"MM$q'4(	)r=   c                    t        dt        d            }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       | j                  ||j
                  |j                  |j                  g       t        dj                               D ]  \  }}dd|z  dz   z  } ||      }| j                  |j                  |       | j                  t        |j                        t               | j                  |j                  |       | j                  ||       | j                  t        |      |        y r	  )r   r   r   r   r  r  r  r  r$  r  r`  r  r  r   r  r  r	  s          r;   #test_programatic_function_from_dictz/OldTestFlag.test_programatic_function_from_dict  s   FK(GHI4jS3t9-TAt,tvvtvvtvv67gmmo. 	)DAqAaCE
AQAQWWa(T!'']C0QVVQ'MM!T"MM$q'4(	)r=   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         y )N0   r   rB   )r  rR   r  rx   r  rI   r   rJ   rV   rX   rZ   r]   r_   r   s    r;   test_picklezOldTestFlag.test_pickle*  s   k9-dmm[->->?d..#))+//9	;d..#));+<+<*<<	>dmm[9d..@d..#))+//9	; 	dmm-@-F-FGd..+112E2I2II	Kdmm-@-G-GHd..0C0G0GHd..+112E2I2II	K 	dmm^-A-ABd..&,,^-?-??	Ad..&,,^-?-??D	Fd..q0ABd..t0DEdmm^<d..0B0BCd..0B0B10DEd..&,,^-?-??	A 	dmm-C-I-IJd...445K5O5OO	Qdmm-C-J-JKd..0F0J0JKd..0F0J0J10LMd...445K5O5OO	Qr=   c                    | j                   }| j                  }| j                  |j                  |v        | j                  |j                  |v        | j                  d|v        | j                  d|v        | j                  |j                  |v        | j                  |j                  |v        | j                  d|v        | j                  d|v        y )Nr  r  rB   )r  r  r   r  r  r   r   r  r  s      r;   r  zOldTestFlag.test_contains_tfU  s    yy

,-E)*E)*&u,-4(U
#T	"r=   c                    | j                   }|\  }}}||z  }||z  }||z  }||z  |z  }| j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        y r   )r  r   r   	r   r  r  r  r  r  r  r  r  s	            r;   test_member_containsz OldTestFlag.test_member_containsa  s   yy1aUUU!eaiR R S!R R S!R R S!b!b!b!r=   c                    | j                   }| j                  t        |j                        g        | j                  t        |j                        |j
                  |j                  g       | j                  t        |j                        |j                  g       | j                  t        |j                        |j                  g       | j                  t        |j                        |j
                  |j                  |j                  g       | j                  t        |j                        |j
                  |j                  |j                  g       y r   	r  r   r   r  r  r  r  r  r  r  s     r;   test_member_iterzOldTestFlag.test_member_iteru  s    

ekk*B/ell+eii-DEejj)EJJ<8ekk*U[[M:ekk*UYYUZZ,PQekk*UYYUZZ,PQr=   c                    | j                  | j                  j                  | j                  j                        d       | j                  | j                  j                  | j                  j                        d       | j                  | j                  j                  | j                  j
                        d       | j                  | j                  j                  | j                  j                        d       y Nr   rB   r'   rC   r   r  __len__r  r  r  r  r   s    r;   test_member_lengthzOldTestFlag.test_member_length~      ++DJJ,<,<=qA++DJJ,<,<=qA++DJJ,=,=>B++DJJ,=,=>Br=   c                     G d dt               }| j                  t        |      |j                  |j                  |j
                  |j                  |j                  g       | j                  |j                  |j                         | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       y )Nc                   Z    e Zd ZdZ e       Z e       Z e       ZdZ e       Z	 e       Z
y)AOldTestFlag.test_number_reset_and_order_cleanup.<locals>.ConfusedzONE TWO FOUR DOS EIGHT SIXTEENr'   N)rE   rF   rG   r  r   r   r   r:  DOSr  SIXTEENrK   r=   r;   Confusedr0	    s/    6G&C&C6DCFEfGr=   r3	  r'   r  r  )r   r   r   r   r   r:  r  r2	  r  r1	  r  )r   r3	  s     r;   #test_number_reset_and_order_cleanupz/OldTestFlag.test_number_reset_and_order_cleanup  s    	t 	 	Xx||X]]HNNHL\L\]	_ 	hllHLL1--q1//3))1126r=   c                    | j                   }| j                   |d      j                  d       | j                  |d   j                  d       | j                   |d      j                  d       | j                  |d   j                  d       | j                  |j                  |j
                         | j                  }| j                  |d   |j                         y NrB   r  r  r   r  r  r  r  r   r   r  r  r  r  r  r	  s      r;   test_aliaseszOldTestFlag.test_aliases      

q.v++U3q0x--w7ellEKK0yyd4j$''*r=   c                 ~    G d dt               }| j                  t        |      |j                  |j                  |j
                  g       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       y )Nc                   6    e Zd Z e       Z e       Z e       Zy)+OldTestFlag.test_auto_number.<locals>.ColorNrE   rF   rG   r   r  r  r  rK   r=   r;   r  r<	        &C6DFEr=   r  rB   r'   rS   )r   r   r   r  r  r  r`  r  s     r;   test_auto_numberzOldTestFlag.test_auto_number      	D 	
 	euyy%**ekk&JK!,))1-**A.r=   c                 x    | j                  t        d      5   G d dt              }d d d        y # 1 sw Y   y xY w)Nzinvalid flag value .not an int.c                       e Zd ZdZ e       Zy)3OldTestFlag.test_auto_number_garbage.<locals>.Colorz
not an intNrE   rF   rG   r  r   r  rK   r=   r;   r  rC	    s    "vr=   r  )r   r  r   r  s     r;   test_auto_number_garbagez$OldTestFlag.test_auto_number_garbage  s4    ##I/PQ 	 	 	 	rO  c                      G d dt               }| j                  |j                  |j                  |j                  gt        |             y )Nc                   :    e Zd Z e       xZZ e       Z e       Zy).OldTestFlag.test_duplicate_auto.<locals>.DupesNrE   rF   rG   r   r  primeror  r	  rK   r=   r;   DupesrH	        "f$EGVFFEr=   rK	  r   r   r  r  r	  r   r   rK	  s     r;   test_duplicate_autozOldTestFlag.test_duplicate_auto  7    	D 	 	%++u||U[[A4;Or=   c                     G d d      } G d d       G d d|t               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d	       | j                  |j                  j                  d
       | j                  t        |j
                        d        G fdd|t               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d	       | j                  |j                  j                  d
       | j                  t        |j
                        d        G fdd|t               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d	       | j                  |j                  j                  d
       | j                  t        |j
                        d       y )Nc                       e Zd Zed        Zy)1OldTestFlag.test_multiple_mixin.<locals>.AllMixinc                 Z    t        |       }d }|r|d   }|dd  D ]  }||z  }	 || _        |S r   r   ALLri  members	all_valuer   s       r;   rV	  z5OldTestFlag.test_multiple_mixin.<locals>.AllMixin.ALL  H    s) 	 '
I")!"+ ,!V+	,#  r=   NrE   rF   rG   r   rV	  rK   r=   r;   AllMixinrS	        ! !r=   r\	  c                       e Zd Zd Zy)1OldTestFlag.test_multiple_mixin.<locals>.StrMixinc                 6    | j                   j                         S r   r  r   s    r;   r  z9OldTestFlag.test_multiple_mixin.<locals>.StrMixin.__str__  r  r=   Nr  rK   r=   r;   r  r_	    r  r=   r  c                   6    e Zd Z e       Z e       Z e       Zy.OldTestFlag.test_multiple_mixin.<locals>.ColorNr  rK   r=   r;   r  rc	    r  r=   r  rB   r'   rS   r   r  c                   R    e Zd Z e       Z e       Z e       ZW  j                  Zyrb	  r  r  s   r;   r  z.OldTestFlag.test_multiple_mixin.<locals>.Color  r  r=   r  c                   R    e Zd Z e       Z e       Z e       ZW  j                  Zyrb	  r  r  s   r;   r  z.OldTestFlag.test_multiple_mixin.<locals>.Color  r  r=   )r   r   r  r`  r  r  rV	  rY  r   r\	  r  r  s      @r;   r  zOldTestFlag.test_multiple_mixin  s   
	! 
	!	+ 	+	Hd 	 	!,**A.))1-!,UZZ,7	'Hh 	'
 	!,**A.))1-!,UZZ&1	'Hh 	'
 	!,**A.))1-!,UZZ&1r=   c                 b    G d dt               t               dfd}t        d      D cg c]  }t        j                  |       }}t        j                  |      5  	 d d d        | j                  d       | j                  dt              d	       y c c}w # 1 sw Y   =xY w)
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y)3OldTestFlag.test_unique_composite.<locals>.TestFlagc                 
    | |u S r   rK   r  s     r;   r  z:OldTestFlag.test_unique_composite.<locals>.TestFlag.__eq__      u}$r=   c                 ,    t        | j                        S r   hashr  r   s    r;   __hash__z<OldTestFlag.test_unique_composite.<locals>.TestFlag.__hash__  ra  r=   NrE   rF   rG   r   r  r  rC  rP  r_  r`  ra  rq  r  ro	  rK   r=   r;   TestFlagri	    D    &C&CFE6D6D&CFEFE%*r=   rq	  Fc                  x    	 t        d      D ]  } j                   |               y # t        $ r dY y w xY wN   Trt   addr  r  rq	  r|  seens    r;   
cycle_enumz5OldTestFlag.test_unique_composite.<locals>.cycle_enum  ?    s *AHHXa[)*    '+ 99r  rw   ;at least one thread failed while creating composite membersru	  "too many composite members created)
r   r  rt   	threadingThreadr%   start_threadsr   r   r  r   rz	  r   threadsrq	  r|  ry	  s       @@@r;   test_unique_compositez!OldTestFlag.test_unique_composite  s    	*t 	* u	 q   
3  ++G4 		 	M	O 	c$i)MN	 	   B 'B%%B.c                      G  fddt               } G fdd|       G d d      } G d d|      } j                  j                  d	   d        j                  |j                  d	   d        j                  |j                  d
   d        j                  |j                  j	                  d	d              j                  |j                  j	                  d
d              G d d|      } G d d|      } G d d|      } j                  |j                  d	   d        j                  |j                  j	                  d	d              j                  |j                  d
   d        j                  |j                  j	                  d	d              j                  |j                  j	                  d
d             y )Nc                   "     e Zd Z fdZ xZS ).OldTestFlag.test_init_subclass.<locals>.MyEnumc                     t        |   di | j                  | j                  j	                  dd             d| _        y )N_testFr   rK   )rz  __init_subclass__r   r  get_test1)ri  r  rU  r   s     r;   r	  z@OldTestFlag.test_init_subclass.<locals>.MyEnum.__init_subclass__  s9    )1D1  !1!1'5!AB%
r=   rE   rF   rG   r	  r}  )rU  r   s   @r;   r   r	    s    & &r=   r   c                   "     e Zd Z fdZ xZS )1OldTestFlag.test_init_subclass.<locals>.TheirEnumc                 2    t        |   di | d| _        y )N	TheirEnumrK   )rz  r	  _test2)ri  r  r	  rU  s     r;   r	  zCOldTestFlag.test_init_subclass.<locals>.TheirEnum.__init_subclass__  s    i7?$?(
r=   r	  )rU  r	  s   @r;   r	  r	    s    ) )r=   r	  c                       e Zd Zd Zy)1OldTestFlag.test_init_subclass.<locals>.WhoseEnumc                      y r   rK   ri  r  s     r;   r	  zCOldTestFlag.test_init_subclass.<locals>.WhoseEnum.__init_subclass__  rS  r=   NrE   rF   rG   r	  rK   r=   r;   	WhoseEnumr	    r1  r=   r	  c                       e Zd ZdZy).OldTestFlag.test_init_subclass.<locals>.NoEnumrB   NrE   rF   rG   r   rK   r=   r;   NoEnumr	        Cr=   r	  r	  r	  Fc                       e Zd Zd Zy)/OldTestFlag.test_init_subclass.<locals>.OurEnumc                     d| _         y )NOurEnum)r	  r	  s     r;   r	  zAOldTestFlag.test_init_subclass.<locals>.OurEnum.__init_subclass__"  s	    &
r=   Nr	  rK   r=   r;   r	  r	  !  r  r=   r	  c                       e Zd Zd Zy)1OldTestFlag.test_init_subclass.<locals>.WhereEnumc                      y r   rK   r	  s     r;   r	  zCOldTestFlag.test_init_subclass.<locals>.WhereEnum.__init_subclass__%  rS  r=   Nr	  rK   r=   r;   	WhereEnumr	  $  r1  r=   r	  c                       e Zd ZdZy)1OldTestFlag.test_init_subclass.<locals>.NeverEnumrB   Nr	  rK   r=   r;   	NeverEnumr	  '  r	  r=   r	  )r   r   r  r   r	  )r   r   r	  r	  r	  r	  r	  r	  s   `      @r;   test_init_subclasszOldTestFlag.test_init_subclass  s   	&T 	&	) 	)		 		Y 	++H5x@++H5x@++H5{C,,Xu=>,,Xu=>	'f 	'	 			 	))(3X>++//%@A++H5yA++//%@A++//%@Ar=   N)#rE   rF   rG   r   r   r  r  r  r  r  r  rg  r	  r		  r	  r	  r	  r	  r	  r	  r  r$	  r'	  r,	  r4	  r8	  r?	  rE	  rO	  r  r%   reap_threadsrequires_working_threadingr	  r	  rK   r=   r;   r  r  Q  s    t t    
22$25;B|B))))))QV
#"(RC7"+	/P+2Z ""0002#O 3 ##OJ"Br=   r  c                   J   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d Zd Zd Zd Zd  Zd! Z d" Z!e"jF                   e"jH                         d#               Z%y$)%OldTestIntFlagzTests of the IntFlags.c                       e Zd ZdZdZdZy)OldTestIntFlag.PermrS   r'   rB   Nr  rK   r=   r;   r  r	  3  s    r=   r  c                        e Zd ZdZdZdZdZdZy)OldTestIntFlag.Openr   rB   r'   rC   r  Nr  rK   r=   r;   r  r	  8  r  r=   r  c                   J    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
y)OldTestIntFlag.Colorr   rB   r'   rS   Nr  rK   r=   r;   r  r	  ?  r  r=   r  c                       e Zd ZdZdZdZy)OldTestIntFlag.SkiprB   r'   r  N)rE   rF   rG   rb  SECONDEIGHTHrK   r=   r;   Skipr	  I  s    r=   r	  c                    | j                   }| j                  |j                  t        u        | j                  }|D ]9  }| j                  t        ||             | j                  ||j                         ; | j                  t        |j                  |j                  z  |             | j                  |j                  |j                  z  d       |D ]9  }| j                  t        ||             | j                  ||j                         ; | j                  t        |j                  |j                  z  |             | j                  |j                  |j                  z  d       y NrC   )r  r   rX  r  r  r  r   r`  r  r  r  r  )r   r  r  r  s       r;   	test_typezOldTestIntFlag.test_typeN  s   yy**c12yy 	)AOOJq$/0Q(	) 	
466DFF?D9:$&&!, 	)AOOJq$/0Q(	) 	
477TWW#4d;<477*A.r=   c                    | j                  t        t        d            dt        z         | j                  t        t        d            ddt        iz         | j                  t        t        d            ddt        iz         y )Nr   z%s.OFF_Kr  z%(m)s.LOW_BEAM_K|%(m)s.FOG_K|8r  r  z%(m)s.HeadlightsK(8))r   r  r   SHORT_MODULEr   s    r;   test_global_repr_keepz$OldTestIntFlag.test_global_repr_keep]  sy    [^$\)	 	[!3450C3FF	 	[&'&#|)<<	r=   c                    | j                  t        t        d            dt        z         | j                  t        t        d            ddt        iz         | j                  t        t        d            ddt        iz         y )Nr   z%s.OFF_Cr  z%(m)s.LOW_BEAM_C|%(m)s.FOG_Cr  r  z%(m)s.OFF_C)r   r  r   r	  r   s    r;   test_global_repr_conform1z(OldTestIntFlag.test_global_repr_conform1k  sy    [^$\)	 	[!345.#|1DD	 	[&'l 33	r=   c                 Z   | j                  t        t        j                        d       | j                  t        t        d            d       | j                  t	        t        j                  t        j
                  z        d       | j                  t	        t        d            d       y )Nztest_enum.ONEr   ztest_enum.NoName(0)z	NoName(0))r   r  r   r   rY  r   r   s    r;   test_global_enum_strz#OldTestIntFlag.test_global_enum_stry  sn    fjj)?;fQi*?@VZZ&**45{CVAY5r=   c                    | j                   }| j                  t        |j                  d      d       | j                  t        |j                  |j                  z  d      d        G d dt
              }| j                  t        |j                  d      d       | j                  t        |j                  |j                  z  d      d       y )Nr%  4r{  c                       e Zd ZdZdZdZd Zy)+OldTestIntFlag.test_format.<locals>.NewPermrS   r'   rB   c                     | j                   S r   r  r   s    r;   r  z3OldTestIntFlag.test_format.<locals>.NewPerm.__str__  s    {{"r=   N)rE   rF   rG   r  r  r  r  rK   r=   r;   NewPermr	    s    AAA#r=   r	  r  zR|X)r  r   r_  r  r  r   )r   r  r	  s      r;   r]  zOldTestIntFlag.test_format  s    yy+S14c:	#g 	# 			2.4		DFF 2B7?r=   c                    | j                   }|D ]r  }|D ]  }| j                  ||z  |j                  |j                  z         | j                  ||z  j                  |j                  |j                  z         | j                  t	        ||z        |        t        d      D ]  }| j                  ||z  |j                  |z         | j                  ||z  j                  |j                  |z         | j                  t	        ||z        |       | j                  ||z  ||j                  z         | j                  ||z  j                  ||j                  z         | j                  t	        ||z        |        u |D ]A  }| j                  ||z  |       | j                  |dz  |       | j                  d|z  |       C | j                  }| j                  |j                  |j                  z  |j                         y Nr  r   	r  r   r`  r  r  rt   r  r  r  r  s        r;   r  zOldTestIntFlag.test_or  s   yy 	1A 1  Q!''(9:  !a%!''0ABd1q5k401 1X 1  Q!4  !a%!<d1q5k40  QAGG4  !a%AGG<d1q5k401	1  	$AMM!a%#MM!a%#MM!a%#	$ yydgg'1r=   c           
      T   | j                   }|j                  |j                  z  }|j                  |j                  z  }|j                  |j                  z  }|j                  |j                  z  |j                  z  }t	        |      |||| |d      gz   }|D ]  }|D ]  }| j                  ||z  |j                  |j                  z  d|d|       | j                  ||z  j                  |j                  |j                  z  d|d|       | j                  t        ||z        |d|d|        t        d      D ]  }| j                  ||z  |j                  |z         | j                  ||z  j                  |j                  |z         | j                  t        ||z        |       | j                  ||z  ||j                  z         | j                  ||z  j                  ||j                  z         | j                  t        ||z        |         |D ]A  }| j                  ||z  |       | j                  |dz  |       | j                  d|z  |       C | j                  }	| j                  |	j                  |	j                  z  |	j                         y )Nr   zi is z, j is r  r   )r  r  r  r  r   r   r`  r  r  rt   r  r  r  r  s
             r;   r  zOldTestIntFlag.test_and  s4   yyVVdff_VVdff_VVdff_fftvvo&dr2r3Q88 	1A N  Q!''(9QRTU;VW  !a%!''0AYZ\]C^_d1q5k4q!1LMN 1X 1  Q!4  !a%!<d1q5k40  QAGG4  !a%AGG<d1q5k401	1  	$AMM!a%#MM!a%#MM!a%#	$ yydgg'1r=   c                 R   | j                   }|D ]r  }|D ]  }| j                  ||z  |j                  |j                  z         | j                  ||z  j                  |j                  |j                  z         | j                  t	        ||z        |        t        d      D ]  }| j                  ||z  |j                  |z         | j                  ||z  j                  |j                  |z         | j                  t	        ||z        |       | j                  ||z  ||j                  z         | j                  ||z  j                  ||j                  z         | j                  t	        ||z        |        u |D ],  }| j                  |dz  |       | j                  d|z  |       . | j                  }| j                  |j                  |j                  z  |j                         | j                  |j                  |j                  z  |j                         y r	  r	  r  s        r;   r  zOldTestIntFlag.test_xor  s   yy 	1A 1  Q!''(9:  !a%!''0ABd1q5k401 1X 1  Q!4  !a%!<d1q5k40  QAGG4  !a%AGG<d1q5k401	1  	$AMM!a%#MM!a%#	$ yydgg'1dgg'1r=   c                    | j                   }|j                  |j                  z  }|j                  |j                  z  }|j                  |j                  z  }|j                  |j                  z  |j                  z  }t	        |      |||| |d      gz   }|D ]P  }| j                  | | j                         | j                  t        |       |       | j                  |  |       R |D ]  }| j                  |  |        | j                  }| j                  |j                  |j                   z  |j                         | j                  |j                  |j                  z  |j                   z  |j                         y r  )r  r  r  r  r   r   r`  r  r  r  r  r  r  )	r   r  r  r  r  r  r8  r  r  s	            r;   test_invertzOldTestIntFlag.test_invert  s:   yyVVdff_VVdff_VVdff_fftvvo&dr2r3Q88 	%AaR1",MM$r(D)qbS!$	%  	"AMMA2#q!	"yydgg($''2twwtww477(2DGG<r=   c                    | j                  t        j                  j                  t                G d dt        t              } G d dt        t
              }| j                  |j                  t
                G d dt        t              }| j                  |j                  t                G d d	t        t              }| j                  |j                  t                G d
 dt        t              }| j                  t        d|d       | j                   |d      |j                  |j                  z         | j                   |d      |j                         | j                   |d      d       | j                  t         |d            t        u        | j                  t!        |      |j"                  g       | j                   |d      |j$                         | j                   |d      |j&                         |j(                  |j                  z  }| j                  |d       | j+                  ||       | j                  t-        |      d       | j                  t/        |      d       y )Nc                       e Zd ZdZy),OldTestIntFlag.test_boundary.<locals>.SimplerB   N)rE   rF   rG   SINGLErK   r=   r;   Simpler	    r  r=   r	  r   c                       e Zd ZdZdZdZy)*OldTestIntFlag.test_boundary.<locals>.IronrB   r'   r  Nr  rK   r=   r;   r  r	    r  r=   r  c                       e Zd ZdZdZdZy)+OldTestIntFlag.test_boundary.<locals>.WaterrB   r'   r  Nr  rK   r=   r;   r  r	    r  r=   r  c                       e Zd ZdZdZdZy)+OldTestIntFlag.test_boundary.<locals>.SpacerB   r'   r  Nr  rK   r=   r;   r  r	    r  r=   r  c                       e Zd ZdZdZdZy)-OldTestIntFlag.test_boundary.<locals>.BizarrerC   rS   r  Nr  rK   r=   r;   r  r	    r  r=   r  zinvalid value 5rE  r   r  rC   r  z <Simple.SINGLE|<Iron.TWO: 2>: 3>rD  )r  r.   r   r  r   r   r   r   r   r   r   r   r   r   r  r  r   r6  r  r  r	  r  r  rY  )r   r	  r  r  r  r  simples          r;   r	  zOldTestIntFlag.test_boundary  s   dll--t4	Wt 		7V 	 	doov.	Gg 	 	e&&0	Ge 	 	e&&.	g 	
 	z+<dAFeAh		%)) 34eBi+q1%U1X#-.g4gaj')),gaj')),)#ff-f'IJVc*r=   c                 $   | j                   }| j                  }| j                  t        |      |j                  |j
                  |j                  g       | j                  t        |      |j                  |j                  |j                  g       y r   r	  r	  s      r;   r		  zOldTestIntFlag.test_iter  r
	  r=   c                    t        dd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  ||j                  |j
                  |j                  g       t        dj                               D ]  \  }}d|z  } ||      }| j                  |j                  |       | j                  t        |j                        t               | j                  ||       | j                  |j                  |       | j                  ||       | j                  t        |      |        y r	  r   r   r   r  r  r  r  r$  r  r`  r  r  r   r  r  r	  s          r;   r	  z/OldTestIntFlag.test_programatic_function_string  s   vw'4jS3t9-TAt,tvvtvvtvv67gmmo. 	)DAq1AQAQWWa(T!'']C0Q"QVVQ'MM!T"MM$q'4(	)r=   c                    t        ddd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  ||j                  |j
                  |j                  g       t        dj                               D ]  \  }}d|z  } ||      }| j                  |j                  |       | j                  t        |j                        t               | j                  ||       | j                  |j                  |       | j                  ||       | j                  t        |      |        y r	  r	  r	  s          r;   r	  z:OldTestIntFlag.test_programatic_function_string_with_start&  s
   vwa04jS3t9-TAt,tvvtvvtvv67gmmo. 	)DAq1AQAQWWa(T!'']C0Q"QVVQ'MM!T"MM$q'4(	)r=   c                    t        dg d      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  ||j                  |j
                  |j                  g       t        dj                               D ]  \  }}d|z  } ||      }| j                  |j                  |       | j                  t        |j                        t               | j                  ||       | j                  |j                  |       | j                  ||       | j                  t        |      |        y r	  r	  r	  s          r;   r	  z4OldTestIntFlag.test_programatic_function_string_list6  s   v/4jS3t9-TAt,tvvtvvtvv67gmmo. 	)DAq1AQAQWWa(T!'']C0Q"QVVQ'MM!T"MM$q'4(	)r=   c                    t        dd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  ||j                  |j
                  |j                  g       t        dj                               D ]  \  }}dd|z  dz   z  } ||      }| j                  |j                  |       | j                  t        |j                        t               | j                  ||       | j                  |j                  |       | j                  ||       | j                  t        |      |        y r	  r	  r	  s          r;   r	  z1OldTestIntFlag.test_programatic_function_iterableF  s   v>?4jS3t9-TAt,tvvtvvtvv67gmmo. 	)DAqAaCE
AQAQWWa(T!'']C0Q"QVVQ'MM!T"MM$q'4(	)r=   c                    t        dt        d            }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       | j                  ||j
                  |j                  |j                  g       t        dj                               D ]  \  }}dd|z  dz   z  } ||      }| j                  |j                  |       | j                  t        |j                        t               | j                  ||       | j                  |j                  |       | j                  ||       | j                  t        |      |        y r	  )r   r   r   r   r  r  r  r  r$  r  r`  r  r  r   r  r  r	  s          r;   r	  z2OldTestIntFlag.test_programatic_function_from_dictV  s   v{+JKL4jS3t9-TAt,tvvtvvtvv67gmmo. 	)DAqAaCE
AQAQWWa(T!'']C0Q"QVVQ'MM!T"MM$q'4(	)r=   c                    t        j                  dg       }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       t        j
                  dg       }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       y )Nr  r   Thingr.   r   r   r   r  r   r   r  r!  r	  s       r;   )test_programatic_function_from_empty_listz8OldTestIntFlag.test_programatic_function_from_empty_listg  s    ||FB'4jS3t9-TAt,		'2&5kS3u:.UQ.r=   c                 r   t        j                  dd      }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       t        j
                  dd      }| j                  t	        |      t	        |             | j                  t	        |      d|       y )Nr  rK   r   r	  r	  r	  s       r;   *test_programatic_function_from_empty_tuplez9OldTestIntFlag.test_programatic_function_from_empty_tupler  s    ||FB'4jS3t9-TAt,		'2&S3u:.UQ.r=   c                 @   | j                   }| j                  }| j                  |j                  |v        | j                  |j                  |v        | j                  d|v        | j                  d|v        | j                  d|v        | j                  d|v        y )Nr  r  r'   )r  r  r   r  r  r   r!	  s      r;   r  zOldTestIntFlag.test_contains_tf{  s    yy

u,-4(E)*&U
#T	"r=   c                    | j                   }|\  }}}||z  }||z  }||z  }||z  |z  }| j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  ||v        | j                  t              5  | j                  d|v        d d d        y # 1 sw Y   y xY w)Nrn  )r  r   r   rp  r  r#	  s	            r;   r$	  z#OldTestIntFlag.test_member_contains  s9   yy1aUUU!eaiR R S!R R S!R R S!b!b!b!y) 	+Vr\*	+ 	+ 	+s   #E  E	c                 (   | j                   }| j                  t        |j                        g        | j                  t        |j                        |j
                  |j                  g       | j                  t        |j                        |j                  g       | j                  t        |j                        |j                  g       | j                  t        |j                        |j
                  |j                  |j                  g       y r   r&	  r  s     r;   r'	  zOldTestIntFlag.test_member_iter  s    

ekk*B/ell+eii-DEejj)EJJ<8ekk*U[[M:ekk*UYYUZZ,PQr=   c                    | j                  | j                  j                  | j                  j                        d       | j                  | j                  j                  | j                  j                        d       | j                  | j                  j                  | j                  j
                        d       | j                  | j                  j                  | j                  j                        d       y r)	  r*	  r   s    r;   r,	  z!OldTestIntFlag.test_member_length  r-	  r=   c                    | j                   }| j                   |d      j                  d       | j                  |d   j                  d       | j                   |d      j                  d       | j                  |d   j                  d       | j                  |j                  |j
                         | j                  }| j                  |d   |j                         y r6	  r7	  r	  s      r;   r8	  zOldTestIntFlag.test_aliases  r9	  r=   c                     | j                   }|D ]  }| j                  |        | j                  }|D ]0  }| j                  t	        |j
                        t	        |             2 y r   r  r  s       r;   rg  zOldTestIntFlag.test_bool  r  r=   c                     G d d      } G d d       G d d|t               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d	       | j                  |j                  j                  d
       | j                  t        |j
                        d        G fdd|t               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d	       | j                  |j                  j                  d
       | j                  t        |j
                        d        G fdd|t               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d	       | j                  |j                  j                  d
       | j                  t        |j
                        d       y )Nc                       e Zd Zed        Zy)4OldTestIntFlag.test_multiple_mixin.<locals>.AllMixinc                 Z    t        |       }d }|r|d   }|dd  D ]  }||z  }	 || _        |S r   rU	  rW	  s       r;   rV	  z8OldTestIntFlag.test_multiple_mixin.<locals>.AllMixin.ALL  rZ	  r=   Nr[	  rK   r=   r;   r\	  r	    r]	  r=   r\	  c                       e Zd Zd Zy)4OldTestIntFlag.test_multiple_mixin.<locals>.StrMixinc                 6    | j                   j                         S r   r  r   s    r;   r  z<OldTestIntFlag.test_multiple_mixin.<locals>.StrMixin.__str__  r  r=   Nr  rK   r=   r;   r  r	    r  r=   r  c                   6    e Zd Z e       Z e       Z e       Zy1OldTestIntFlag.test_multiple_mixin.<locals>.ColorNr  rK   r=   r;   r  r	    r  r=   r  rB   r'   rS   r   r	  c                   R    e Zd Z e       Z e       Z e       ZW  j                  Zyr	  r  r  s   r;   r  z1OldTestIntFlag.test_multiple_mixin.<locals>.Color  r  r=   r  c                   R    e Zd Z e       Z e       Z e       ZW  j                  Zyr	  r  r  s   r;   r  z1OldTestIntFlag.test_multiple_mixin.<locals>.Color  r  r=   )r   r   r  r`  r  r  rV	  rY  rf	  s      @r;   r  z"OldTestIntFlag.test_multiple_mixin  s   
	! 
	!	+ 	+	Hg 	 	!,**A.))1-!,UZZ#.	'Hh 	'
 	!,**A.))1-!,UZZ&1	'Hh 	'
 	!,**A.))1-!,UZZ&1r=   c                 b    G d dt               t               dfd}t        d      D cg c]  }t        j                  |       }}t        j                  |      5  	 d d d        | j                  d       | j                  dt              d	       y c c}w # 1 sw Y   =xY w)
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y)6OldTestIntFlag.test_unique_composite.<locals>.TestFlagc                 
    | |u S r   rK   r  s     r;   r  z=OldTestIntFlag.test_unique_composite.<locals>.TestFlag.__eq__  rk	  r=   c                 ,    t        | j                        S r   rm	  r   s    r;   ro	  z?OldTestIntFlag.test_unique_composite.<locals>.TestFlag.__hash__  ra  r=   Nrp	  rK   r=   r;   rq	  r
    rr	  r=   rq	  Fc                  x    	 t        d      D ]  } j                   |               y # t        $ r dY y w xY wrt	  rv	  rx	  s    r;   rz	  z8OldTestIntFlag.test_unique_composite.<locals>.cycle_enum  r{	  r|	  r  r}	  r~	  ru	  r	  )
r   r  rt   r	  r	  r%   r	  r   r   r  r	  s       @@@r;   r	  z$OldTestIntFlag.test_unique_composite  s    	*w 	* u	 q   
3  ++G4 		 	M	O 	c$i)MN	 	r	  N)&rE   rF   rG   r   r   r  r  r  r	  r	  r	  r	  r	  r]  r  r  r  r	  r	  r		  r	  r	  r	  r	  r	  r	  r	  r  r$	  r'	  r,	  r8	  rg  r  r%   r	  r	  r	  rK   r=   r;   r	  r	  0  s     w 
w    w 
/6@2*242*=",+\B) ) ) ) )"//#+,RC+5+2Z ""0002#O 3 ##Or=   r	  c                       e Zd Zd Zd Zd Zy)TestEmptyAndNonLatinStringsc                 p    | j                  t              5  t        dd      }d d d        y # 1 sw Y   y xY w)N	empty_abc)r%  r  r>  )rp  r   r   )r   r	
  s     r;   test_empty_stringz-TestEmptyAndNonLatinStrings.test_empty_string  s1    z* 	:[.9I	: 	: 	:s   ,5c                 l    t        dd      }t        |d      }| j                  |j                  d       y )N	greek_abc)   αr  r>  r
  rB   r   r[  r   r`  )r   r
  r	  s      r;   test_non_latin_character_stringz;TestEmptyAndNonLatinStrings.test_non_latin_character_string  s/    &:;	y(+Q'r=   c                 l    t        dd      }t        |d      }| j                  |j                  d       y )N
hebrew_123)   אrC  rD  r
  rB   r
  )r   r
  r	  s      r;   test_non_latin_number_stringz8TestEmptyAndNonLatinStrings.test_non_latin_number_string  s/    ,(<=
z8,Q'r=   N)rE   rF   rG   r

  r
  r
  rK   r=   r;   r
  r
    s    :(
(r=   r
  c                       e Zd Zd Zd Zd Zy)
TestUniquec                 d    t          G d dt                     }t          G d dt                     }y )Nc                       e Zd ZdZdZdZy)+TestUnique.test_unique_clean.<locals>.CleanrB   r        @NrE   rF   rG   r  r  r  rK   r=   r;   Cleanr
  %      CCDr=   r
  c                       e Zd ZdZdZdZy)-TestUnique.test_unique_clean.<locals>.CleanerrB   r'   rC   NrE   rF   rG   singledoubletriplerK   r=   r;   Cleanerr
  +      FFFr=   r#
  )r   r   r   r   r
  r#
  s      r;   test_unique_cleanzTestUnique.test_unique_clean$  s6    		D 	 
	
 
	g 	 
	r=   c                    | j                  t        d      5  t         G d dt                     }d d d        | j                  t        d      5  t         G d dt                     }d d d        y # 1 sw Y   AxY w# 1 sw Y   y xY w)N	tres.*onec                       e Zd ZdZdZdZy)+TestUnique.test_unique_dirty.<locals>.DirtyrB   r  Nr
  rK   r=   r;   Dirtyr*
  3      r=   r+
  double.*single.*turkey.*triplec                       e Zd ZdZdZdZdZy)-TestUnique.test_unique_dirty.<locals>.DirtierrB   rC   NrE   rF   rG   r 
  r!
  r"
  turkeyrK   r=   r;   Dirtierr/
  <      r=   r2
  )r   r   r   r   r   r   r+
  r2
  s      r;   test_unique_dirtyzTestUnique.test_unique_dirty1  s    ##J< 	  	 ##0 		 '  		 			 			 		s   A0A<0A9<Bc                     t        t               G d dt                     }t        t               G d dt                     }y )Nc                       e Zd ZdZdZdZy)/TestUnique.test_unique_with_name.<locals>.SillyrB   r  rC   NrE   rF   rG   r  r  r   rK   r=   r;   Sillyr8
  D      CCDr=   r:
  c                       e Zd ZdZdZdZdZy)1TestUnique.test_unique_with_name.<locals>.SillierrB   r'   rC   rS   NrE   rF   rG   r 
  r   r"
  r`  rK   r=   r;   Sillierr=
  J      FDFEr=   r?
  r   r   r   r   r   r:
  r?
  s      r;   test_unique_with_namez TestUnique.test_unique_with_nameC  >    		D 	 
	
 
	g 	 
	r=   N)rE   rF   rG   r&
  r5
  rC
  rK   r=   r;   r
  r
  "  s    $r=   r
  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)
TestVerifyc                 P   t        t               G d dt                     }t        t               G d dt                     }| j                  t        d      5  t        t               G d dt                     }d d d        | j                  t        d      5  t        t               G d	 d
t
                     }d d d        | j                  t        d      5  t        t               G d dt
                     }d d d        y # 1 sw Y   xY w# 1 sw Y   VxY w# 1 sw Y   y xY w)Nc                   D    e Zd Z e       Z e       Z e       Z e       Zy)(TestVerify.test_continuous.<locals>.AutoN)rE   rF   rG   r   rb  r	  THIRDFORTHrK   r=   r;   AutorI
  T  s    FEVFFEFEr=   rL
  c                       e Zd ZdZdZdZdZy)*TestVerify.test_continuous.<locals>.ManualrC   rS   rE  r  NrE   rF   rG   rb  r	  rJ
  rK
  rK   r=   r;   ManualrN
  [  s    EFEEr=   rP
  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y)+TestVerify.test_continuous.<locals>.MissingrC   rS   r  r  NrO
  rK   r=   r;   MissingrR
  c      r=   rS
  z,invalid flag .Incomplete.: missing values 32c                       e Zd ZdZdZdZdZy).TestVerify.test_continuous.<locals>.IncompleterS   r  r  @   NrO
  rK   r=   r;   
IncompleterV
  k  rT
  r=   rX
  z1invalid flag .StillIncomplete.: missing values 16c                       e Zd ZdZdZdZdZy)3TestVerify.test_continuous.<locals>.StillIncompleterS   r  r  ru  NrO
  rK   r=   r;   StillIncompleterZ
  s  rT
  r=   r[
  )r   r   r   r   r   r   )r   rL
  rP
  rS
  rX
  r[
  s         r;   test_continuouszTestVerify.test_continuousS  s   	
		4 	 
	 

		T 	 
	 ##J0no 	J$   	 ##J0^_ 	JT   	 ##J0cd 	J$   	 	!	 		 		 	s$   "D"D"DDDD%c                 l    G d dt               }| j                  t        |      |j                  g       | j                  |j                  j
                  d       | j                  |j                  j
                  d       | j                  |j                  j
                  d       | j                  t        d      5  t        t               G d dt                      }d d d        | j                  t        j                  d      dd	g        G d
 dt              }| j                  t        |      |j                  g       | j                  |j                  j
                  d       | j                  |j                  j
                  d       | j                  |j                  j
                  d       | j                  t        d      5  t        t               G d dt                     }d d d        | j                  t        j                  d	      d	g       y # 1 sw Y   ?xY w# 1 sw Y   =xY w)Nc                       e Zd ZdZdZdZy*TestVerify.test_composite.<locals>.BizarrerC   rS   r  Nr  rK   r=   r;   r  r`
  |  r  r=   r  rC   rS   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yr_
  r  rK   r=   r;   r  z*TestVerify.test_composite.<locals>.Bizarre  s    r=   rB   r'   c                       e Zd ZdZdZdZyr_
  r  rK   r=   r;   r  z*TestVerify.test_composite.<locals>.Bizarre  r  r=   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y)r`
  rS   r  N)rE   rF   rG   r6  r  rK   r=   r;   r  z*TestVerify.test_composite.<locals>.Bizarre  s    r=   )r   r   r   r6  r  r`  r  r   r   r   r   r.   show_flag_valuesr   )r   r  s     r;   test_compositezTestVerify.test_composite{  s   	d 	 	g4!,!,!,## L 	 K $  !	 	..q1Aq6:	g 	 	g4!,!,!,##u 	 K '  !	 	..q1A377	 	&	 	s   >"H"H*H'*H3c                     t        t               G d dt                     }t        t               G d dt                     }y )Nc                       e Zd ZdZdZdZy)+TestVerify.test_unique_clean.<locals>.CleanrB   r  r
  Nr
  rK   r=   r;   r
  rh
    r
  r=   r
  c                       e Zd ZdZdZdZy)-TestVerify.test_unique_clean.<locals>.CleanerrB   r'   rC   Nr
  rK   r=   r;   r#
  rj
    r$
  r=   r#
  rA
  r%
  s      r;   r&
  zTestVerify.test_unique_clean  s>    		D 	 
	
 
	g 	 
	r=   c                 4   | j                  t        d      5  t        t               G d dt                     }d d d        | j                  t        d      5  t        t               G d dt
                     }d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)Nr(
  c                       e Zd ZdZdZdZy)+TestVerify.test_unique_dirty.<locals>.DirtyrB   r  Nr
  rK   r=   r;   r+
  rm
    r,
  r=   r+
  r-
  c                       e Zd ZdZdZdZdZy)-TestVerify.test_unique_dirty.<locals>.DirtierrB   rC   Nr0
  rK   r=   r;   r2
  ro
    r3
  r=   r2
  )r   r   r   r   r   r   r4
  s      r;   r5
  zTestVerify.test_unique_dirty  s    ##J< 	F^  	 ##0 		 F^'  		 			 			 		s   "B"BBBc                     t        t               G d dt                     }t        t               G d dt                     }y )Nc                       e Zd ZdZdZdZy)/TestVerify.test_unique_with_name.<locals>.SillyrB   r  rC   Nr9
  rK   r=   r;   r:
  rr
    r;
  r=   r:
  c                       e Zd ZdZdZdZdZy)1TestVerify.test_unique_with_name.<locals>.SillierrB   r'   rC   rS   Nr>
  rK   r=   r;   r?
  rt
    r@
  r=   r?
  rA
  rB
  s      r;   rC
  z TestVerify.test_unique_with_name  rD
  r=   c                 F    t        t               G d dt                     }y )Nc                       e Zd ZdZdZdZdZy)-TestVerify.test_negative_alias.<locals>.ColorrB   r'   rS   r?   N)rE   rF   rG   r  r  r  r  rK   r=   r;   r  rw
    s    CEDEr=   r  )r   r   r   r  s     r;   test_negative_aliaszTestVerify.test_negative_alias  s     			D 	 
	r=   N)	rE   rF   rG   r\
  re
  r&
  r5
  rC
  rx
  rK   r=   r;   rF
  rF
  Q  s"    %P$8L$r=   rF
  c                   t   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y)TestInternalsr   r   r   r   r   c                 6   | j                   | j                  z   D ]*  }| j                  t        j                  |      d|z         , | j
                  | j                  z   | j                  z   D ]*  }| j                  t        j                  |      d|z         , y )Nr   r   r   r   s     r;   r   zTestInternals.test_sunder  s    %%(E(EE 	VDOODOOD13MPT3TU	V%%(:(::T=N=NN 	SDT__T24JT4QR	Sr=   c                 6   | j                   D ]*  }| j                  t        j                  |      d|z         , | j                  | j
                  z   | j                  z   | j                  z   D ]*  }| j                  t        j                  |      d|z         , y )Nr   r   r   r   s     r;   r   zTestInternals.test_dunder  s    %% 	VDOODOOD13MPT3TU	V%%(:(::T=Z=ZZ]a]n]nn 	SDT__T24JT4QR	Sr=   c                 .   | j                   | j                  z   D ](  }| j                  t        j                  d|      d       * | j
                  | j                  z   | j                  z   D ](  }| j                  t        j                  d|      d       * y r   r   r   s     r;   r   zTestInternals.test_is_private  r   r=   c                 ~    G d dt               }| j                  t        |      |j                  |j                  |j
                  g       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       y )Nc                   6    e Zd Z e       Z e       Z e       Zy)-TestInternals.test_auto_number.<locals>.ColorNr=	  rK   r=   r;   r  r
    r>	  r=   r  rB   r'   rC   r   r   r   r  r  r  r`  r  s     r;   r?	  zTestInternals.test_auto_number  r@	  r=   c                 ~    G d dt               }| j                  t        |      |j                  |j                  |j
                  g       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       y )Nc                   <    e Zd Zd Z e       Z e       Z e       Zy)+TestInternals.test_auto_name.<locals>.Colorc                     | S r   rK   r   r6  r  r7  s       r;   r9  zATestInternals.test_auto_name.<locals>.Color._generate_next_value_      r=   N)rE   rF   rG   r9  r   r  r  r  rK   r=   r;   r  r
    s    &C6DFEr=   r  r  r  r  r
  r  s     r;   test_auto_namezTestInternals.test_auto_name  s    	D 	 	euyy%**ekk&JK%0))62**G4r=   c                     G d dt               } G d d|      }| j                  t        |      |j                  |j                  |j
                  g       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       y )Nc                       e Zd Zd Zy):TestInternals.test_auto_name_inherit.<locals>.AutoNameEnumc                     | S r   rK   r
  s       r;   r9  zPTestInternals.test_auto_name_inherit.<locals>.AutoNameEnum._generate_next_value_  r
  r=   Nr:  rK   r=   r;   AutoNameEnumr
    s    r=   r
  c                   6    e Zd Z e       Z e       Z e       Zy)3TestInternals.test_auto_name_inherit.<locals>.ColorNr=	  rK   r=   r;   r  r
    r>	  r=   r  r  r  r  r
  )r   r
  r  s      r;   test_auto_name_inheritz$TestInternals.test_auto_name_inherit
  s    	4 		L 	
 	euyy%**ekk&JK%0))62**G4r=   r  z+mixed types with auto() no longer supportedc                     | j                  t        d      5   G d dt              }d d d        | j                  j                  j
                  d       y # 1 sw Y   0xY w)N&will require all values to be sortablec                       e Zd ZdZ e       Zy)1TestInternals.test_auto_garbage_ok.<locals>.Colorr  NrD	  rK   r=   r;   r  r
        vr=   r  rB   )r  r  r   r   r  r`  r  s     r;   test_auto_garbage_okz"TestInternals.test_auto_garbage_ok  sS    
 ""#57_` 	 	 	))1-		 	s   AAc                 6   | j                  t        d      5   G d dt              }d d d        | j                  t	              |j
                  |j                  |j                  |j                  g       | j                  |j
                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       y # 1 sw Y   xY w)Nr
  c                   0    e Zd ZdZdZ e       Z e       Zy);TestInternals.test_auto_garbage_corrected_ok.<locals>.Colorr  r'   N)rE   rF   rG   r  r  r   r  r  rK   r=   r;   r  r
  )  s    r=   r  r  r'   rC   rS   )
r  r  r   r   r   r  r  r  r  r`  r  s     r;   test_auto_garbage_corrected_okz,TestInternals.test_auto_garbage_corrected_ok#  s    
 ""#57_` 	    	  	e))UZZellK	M%0))1-**A.++Q/	  	 s   DDz*mixed types with auto() will raise in 3.13c                 x    | j                  t        d      5   G d dt              }d d d        y # 1 sw Y   y xY w)Nr
  c                       e Zd ZdZ e       Zy)3TestInternals.test_auto_garbage_fail.<locals>.Colorr  NrD	  rK   r=   r;   r  r
  <  r
  r=   r  r  r  s     r;   test_auto_garbage_failz$TestInternals.test_auto_garbage_fail6  s6    
 ##I/WX 	 	 	 	rO  c                 x    | j                  t        d      5   G d dt              }d d d        y # 1 sw Y   y xY w)Nr
  c                   "    e Zd ZdZdZ e       Zy)=TestInternals.test_auto_garbage_corrected_fail.<locals>.Colorr  r'   N)rE   rF   rG   r  r  r   r  rK   r=   r;   r  r
  F  s    r=   r  r  r  s     r;    test_auto_garbage_corrected_failz.TestInternals.test_auto_garbage_corrected_fail@  s6    
 ##I/WX 	 	 	 	rO  c                 v    | j                  t              5   G d dt              }d d d        y # 1 sw Y   y xY w)Nc                   <    e Zd Z e       Z e       Z e       Zd Zy),TestInternals.test_auto_order.<locals>.Colorc                     | S r   rK   r
  s       r;   r9  zBTestInternals.test_auto_order.<locals>.Color._generate_next_value_Q  s    Kr=   N)rE   rF   rG   r   r  r  r  r9  rK   r=   r;   r  r
  M  s    fv r=   r  r  r  s     r;   test_auto_orderzTestInternals.test_auto_orderK  s1    y) 	    	  	  	 s   /8c                 D   t               d_         G fddt              }| j                  t	        |      |j
                  |j                  g       | j                  |j
                  j                  d       | j                  |j                  j                  d       y )Nzpathological casec                   (    e Zd ZW  Zd Z e       Zy)2TestInternals.test_auto_order_wierd.<locals>.Colorc                     | S r   rK   r
  s       r;   r9  zHTestInternals.test_auto_order_wierd.<locals>.Color._generate_next_value_Y  r
  r=   N)rE   rF   rG   r  r9  r   r  )
weird_autos   r;   r  r
  W  s    C6Dr=   r  r  )r   r`  r   r   r   r  r  )r   r  r
  s     @r;   test_auto_order_wierdz#TestInternals.test_auto_order_wierdT  st    V
.
	D 	
 	euyy%**&=>*=>))62r=   z,auto() will return highest value + 1 in 3.13c                 R    G d dt               }| j                  |j                  |j                         | j                  |j                  |j
                         | j                  |j                  |j                         | j                  |j                  |j
                         y )Nc                   >    e Zd Z e       Z e       ZeZeZ e       Zy)3TestInternals.test_auto_with_aliases.<locals>.ColorN)	rE   rF   rG   r   r  r  oxfordcrimsonr  rK   r=   r;   r  r
  e  s!    &C6DFGFEr=   r  )r   r  r
  r  r
  r  r  r  r  s     r;   test_auto_with_aliasesz$TestInternals.test_auto_with_aliases`  sl    
	D 	 	emmUYY/ellEJJ/eii0ejj1r=   c                      G d dt               }| j                  |j                  |j                  |j                  gt        |             y )Nc                   :    e Zd Z e       xZZ e       Z e       Zy)0TestInternals.test_duplicate_auto.<locals>.DupesNrI	  rK   r=   r;   rK	  r
  q  rL	  r=   rK	  rM	  rN	  s     r;   rO	  z!TestInternals.test_duplicate_autop  rP	  r=   c                     G d dt               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d        G d dt               }| j                  |j                  j                  d       | j                  |j                  j                  d	       | j                  |j                  j                  d
       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d        G d dt               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       y )Nc                   ^    e Zd Z e       Z e        e       fZ e        e        e       fZy)5TestInternals.test_multiple_auto_on_line.<locals>.HuhN)rE   rF   rG   r   r   r   r>  rK   r=   r;   r  r
  x  s(    &C&$&.CFDFDF*Er=   r  rB   )r'   rC   )rS   rE  r  c                   h    e Zd ZddZd Z e       Z e       Z e       dfZ e       dfZ	 e       Z
y)5TestInternals.test_multiple_auto_on_line.<locals>.HahNc                 v    t         j                  |       }||_        |xs |d d j                         |_        |S r	  )r  r{  r  r  abbr)ri  r`  r
  r   s       r;   r{  z=TestInternals.test_multiple_auto_on_line.<locals>.Hah.__new__  s5    ,!&"7eBQioo&7r=   c                     | S r   rK   r
  s       r;   r9  zKTestInternals.test_multiple_auto_on_line.<locals>.Hah._generate_next_value_  r
  r=   WEDThur   )rE   rF   rG   r{  r9  r   MONDAYTUESDAY	WEDNESDAYTHURSDAYFRIDAYrK   r=   r;   Hahr
    s9    
 VFfGIvu}HVFr=   r
  r
  monr
  tuer
  r
  r
  r
  r
  fric                   d    e Zd Zd Z e       Z e        e       fZ e        e        e       fZy)r
  c                     |dz   S r  rK   r
  s       r;   r9  zKTestInternals.test_multiple_auto_on_line.<locals>.Huh._generate_next_value_  s    Qwr=   N)rE   rF   rG   r9  r   r   r   r>  rK   r=   r;   r  z5TestInternals.test_multiple_auto_on_line.<locals>.Huh  s-    &C&$&.CFDFDF*Er=   )r'   r'   )rC   rC   rC   )r   r   r   r`  r   r>  r
  r
  r
  r
  r
  r
  )r   r  r
  s      r;   test_multiple_auto_on_linez(TestInternals.test_multiple_auto_on_linew  s   	+$ 	+ 	*/)4	$ 	 	))84%0**I6))51,,k:++U3++Z8**E2))84%0	+$ 	+ 	*/)4r=   N)rE   rF   rG   r   r   r   r   r   r   r   r   r?	  r
  r
  r  r  r  r
  r
  r
  r
  r
  r
  r
  rO	  r
  rK   r=   r;   rz
  rz
    s$   1L7L@MLCLSSX	/55 X__g%9.	. X__g%90	0 X__W$8	 X__W$8	 
3 X__W$:
2	
2P*5r=   rz
  c                       e Zd Zy)TestEnumTypeSubclassingNr   rK   r=   r;   r
  r
    s    r=   r
  a  Help on class Color in module %s:

class Color(enum.Enum)
 |  Color(*values)
 |
 |  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.
 |
 |  ----------------------------------------------------------------------
 |  Static methods inherited from enum.EnumType:
 |
 |  __contains__(value)
 |      Return True if `value` is in `cls`.
 |
 |      `value` is in `cls` if:
 |      1) `value` is a member of `cls`, or
 |      2) `value` is the value of one of the `cls`'s members.
 |
 |  __getitem__(name)
 |      Return the member matching `name`.
 |
 |  __iter__()
 |      Return members in definition order.
 |
 |  __len__()
 |      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(*values)
 |
 |  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
 |
 |  value
 |
 |  ----------------------------------------------------------------------
 |  Static methods inherited from enum.EnumType:
 |
 |  __contains__(value)
 |
 |  __getitem__(name)
 |
 |  __iter__()
 |
 |  __len__()
 |
 |  ----------------------------------------------------------------------
 |  Readonly properties inherited from enum.EnumType:
 |
 |  __members__c                   D    e Zd ZdZ G d de      Zd Zd Zd Zd Z	d Z
y)	
TestStdLibNc                       e Zd ZdZdZdZy)TestStdLib.ColorrB   r'   rC   N)rE   rF   rG   CYANMAGENTAYELLOWrK   r=   r;   r  r
    s    r=   r  c                     t         j                  t        t        z  }nt        t        z  }t               }t        j                  |      } || j                         |j                         j                         }| j                  |||       y )N)output)r	   r   !expected_help_output_without_docsrE   expected_help_output_with_docsr   pydocHelperr  getvaluer  r   )r   expected_textr
  helperresults        r;   
test_pydoczTestStdLib.test_pydoc  sh    ??"=HM:XEMV,tzz"((*7r=   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                              }| j#                  t%        |j'                               t%        |j'                                      d}|j'                         D ]C  }|dk(  r	||   ||   k7  st)                t)        ddd|d||   d||   dddd       d}E |r| j+                  d       y y )NrU  )r   ...r  rF   r
  r
  r
  r   r`  r+	  __contains__)rE   r  __getitem__)rG   r
  r	  __iter__Fr   
K===========================================================================z
     key: z
  result: z
expected: r%  sepT/result does not equal expected, see print above)r\  r
   r  r  rE   r
  r
  r
  r   r  r+	  r
  r
  r[  r
  inspect
getmembersr   r  keysr  fail)r   r8  r
  r|  r)  s        r;   test_inspect_getmembersz"TestStdLib.test_inspect_getmembers  s   h'"

 6 67x(4::,,-DJJ../)v./$--01DJJ../!8!89%

 6 674$gdjj:M&NOTZZ001! $ g((45V[[]+S-?@ 	AI~ayF1I%!1fQiHFKMO	 IIGH r=   c                    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"                    |j)                  d        t+        t        j,                  | j                              }|j)                  d        | j/                  t1        |      t1        |      |D cg c]  }|j"                   c}d|D cg c]  }|j"                   c}       d}t3        ||      D ]s  \  }}|j"                  d v r>d!D ]8  }t        ||      t        ||      k7  st'        d"d#d"|d"|d"d#d"	d$%       d&}: R||k7  sXt'        d"d#d"|d"|d"d#d"	d$%       d&}u |r| j5                  d'       y y # t$        $ r t'        |       Y jw xY wc c}w c c}w )(Nr   )	AttributerU  data)r   kinddefining_classr  r
  methodr   r
  r
  r
  r	  zclass methodr+	  r  r  rF   rE   r  rG   r
  r
  r
  r
  r   r`  c                     | j                   S r   r  r	  s    r;   <lambda>z>TestStdLib.test_inspect_classify_class_attrs.<locals>.<lambda>i  
    TYY r=   )keyc                     | j                   S r   r  r
  s    r;   r
  z>TestStdLib.test_inspect_classify_class_attrs.<locals>.<lambda>k  r
  r=   z != F)r	  r   )r   r
  r
  r
  r
  r%  r
  Tr
  )r
  r
  r  r
   r  r
  r
  r
  r[  r+	  r  rE   r
  r
  r
  r   r  r   rq  r  sortr   classify_class_attrsr   r  r  r
  )	r   r
  r8  r*  r
  r   r|  rr   s	            r;   !test_inspect_classify_class_attrsz,TestStdLib.test_inspect_classify_class_attrs?  s   %{#)(<~H#+DJJ4K4KMyv#'::e=}8#+DJJ4J4JLz#+DJJ4G4GI2#)'$**FY2Z\yx#+DJJ4F4FH}:#+H4H4HJ|&#'::h@z#'::g?~F#'::6HJxf#'::djj6G6GIyv#'::djj6H6HJvF#'::djjooGvF#'f0EGwV#'g0FH?!D  	A	
 	./g224::>?./FS[/56!qvv68PA8PQ	 ' 	DAqvv99 = &Dq$'71d+;;h1hOUWX!%& ah1hGRP	 IIGH - " a 78Ps   M M+M0M('M(c                    ddl m}m}m} | j	                   |t
               | |d|j                         |d|j                         |d|j                  d        |d|j                  d        |d|j                  d        |d	|j                  d
       |d|j                  d       g             | j	                   |t        j                         | |d|j                        g             y )Nr   )	signature	Signature	Parameternew_class_namerW  rg   )r   rk   r  r6  rB   r   r8  )r
  r  r  r  r   r   POSITIONAL_ONLYPOSITIONAL_OR_KEYWORDKEYWORD_ONLYr.   FlagBoundaryVAR_POSITIONAL)r   r  r  r  s       r;   test_inspect_signaturesz"TestStdLib.test_inspect_signatures  s    ;;$.	0I0IJgy'F'FGh	(>(>Mj)*@*@$Ofi&<&<dKgy'='=qIj)*@*@$O 	 	$++,h	(@(@A 	r=   c                 n   t        t               G d d             } G d dt              }| j                  t        ||      d u        d|j                  _        | j                  t        dt        ||        G d dt        t        	      }|}| j                  t        |      |j                  |j                  |j                  g       t        t        t        	       G d
 d             }|}| j                  t        |      |j                  |j                  |j                  g       t        ||       y )Nc                   <    e Zd ZdZdZdZej                  d        Zy)5TestStdLib.test_test_simple_enum.<locals>.SimpleColorrB   r'   rC   c                      d| j                   z  S Nz	zeroed %sr  r   s    r;   zerothz<TestStdLib.test_test_simple_enum.<locals>.SimpleColor.zeroth      "TYY..r=   N	rE   rF   rG   r
  r
  r
  rb  r  r  rK   r=   r;   SimpleColorr    s'    DGF^^/ /r=   r  c                   <    e Zd ZdZdZdZej                  d        Zy)6TestStdLib.test_test_simple_enum.<locals>.CheckedColorrB   r'   rC   c                      d| j                   z  S r  r  r   s    r;   r  z=TestStdLib.test_test_simple_enum.<locals>.CheckedColor.zeroth  r  r=   Nr  rK   r=   r;   CheckedColorr    s'    DGF^^/ /r=   r  r  zenum mismatchc                       e Zd ZdZdZdZdZy)8TestStdLib.test_test_simple_enum.<locals>.CheckedMissingrW
          NrE   rF   rG   
SIXTY_FOURONE_TWENTY_EIGHTTWENTY_FORTY_EIGHTrV	  rK   r=   r;   CheckedMissingr    s    J"!%&Cr=   r!  r   c                       e Zd ZdZdZdZdZy)1TestStdLib.test_test_simple_enum.<locals>.MissingrW
  r  r  r  Nr  rK   r=   r;   rS
  r#    s    J"!%&Cr=   rS
  )r   r   r   r   r
  r  r   r  r   r   r   r   r  r  r   )r   r  r  r!  CMrS
  Ms          r;   test_test_simple_enumz TestStdLib.test_test_simple_enum  s   	d		/ 	/ 
	/	/4 	/ 	),DLM&'#?!<		'Wt 	'
 n-r?R?RTVTiTi/jk	g	-	' 	' 
.	'
 n-a>P>PRSRfRf/gh.'2r=   )rE   rF   rG   maxDiffr   r  r
  r
  r
  r
  r&  rK   r=   r;   r
  r
    s0    G 

8 ID?IB*'3r=   r
  c                   *    e Zd Zd Zd Zd Zd Zd Zy)MiscTestCasec                 @    t        j                  | t        ddh       y )Nbinrd
  )not_exported)r"   check__all__r.   r   s    r;   test__all__zMiscTestCase.test__all__  s    T4u>P6QRr=   c                 Z     G d dt               }| j                  |j                  d        y )Nc                       e Zd ZdZy)'MiscTestCase.test_doc_1.<locals>.SinglerB   Nr	  rK   r=   r;   Singler1    r	  r=   r2  r   r   r   )r   r2  s     r;   
test_doc_1zMiscTestCase.test_doc_1  s"    	T 	.r=   c                 Z     G d dt               }| j                  |j                  d        y )Nc                       e Zd ZdZdZy)'MiscTestCase.test_doc_2.<locals>.DoublerB   r'   Nr   rK   r=   r;   Doubler7    r|  r=   r8  r3  )r   r8  s     r;   
test_doc_2zMiscTestCase.test_doc_2  s$    	T 	 	.r=   c                 Z     G d dt               }| j                  |j                  d        y )Nc                       e Zd ZdZdZdZy)'MiscTestCase.test_doc_3.<locals>.TriplerB   r'   rC   Nr=  rK   r=   r;   Tripler<    r  r=   r=  r3  )r   r=  s     r;   
test_doc_3zMiscTestCase.test_doc_3  s$    	T 	 	.r=   c                 Z     G d dt               }| j                  |j                  d        y )Nc                       e Zd ZdZdZdZdZy)*MiscTestCase.test_doc_4.<locals>.QuadruplerB   r'   rC   rS   N)rE   rF   rG   r   r   r>  r:  rK   r=   r;   	QuadruplerA    s    CCEDr=   rB  r3  )r   rB  s     r;   
test_doc_4zMiscTestCase.test_doc_4  s&    	 	
 	**D1r=   N)rE   rF   rG   r.  r4  r9  r>  rC  rK   r=   r;   r)  r)    s    S/
//2r=   r)  rE  rx  rY  r  rB   r`                ?               @              @c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestConvertc                     t               }dD ]  }d|d|z  <   d|d|z  <    dD ]  \  }}||d|z  <    dD ]  \  }}||d|z  <    d	D ]  \  }}||d
|z  <    y )N)rK  r  r>  r?  rL  r@  rE  zCONVERT_TEST_NAME_%szCONVERT_STRING_TEST_NAME_%s))rK  rE  )r  rD  )r>  r`  zUNCOMPARABLE_%s))rK  rF  )r  rG  )r>  rE  z
COMPLEX_%s))rB  rY  )rC  rx  zCONVERT_STR_TEST_%s)r  )r   gsuffixr`  s       r;   tearDownzTestConvert.tearDown  s     I4 	:F12A$v-.89A+f45	: G 	2MFE,1A&()	2> 	-MFE',AlV#$	-? 	6MFE05A#f,-	6r=   c                     t         j                  j                  dt        d       }| j	                   |d      j
                  d       y )NUnittestConvertc                 $    | j                  d      S NCONVERT_TEST_r  rj  s    r;   r
  z@TestConvert.test_convert_value_lookup_priority.<locals>.<lambda>      o!> r=   filterrE  CONVERT_TEST_NAME_A)r.   r   	_convert_MODULEr   r   r   r	  s     r;   "test_convert_value_lookup_priorityz.TestConvert.test_convert_value_lookup_priority  sB    LL**!> + @	 	1**,ABr=   c                 d   t         j                  j                  dt        d       }| j	                  |j
                  |j                         | j	                  |j                  d       | j	                  |j                  d       | j	                  |j                  d       | j	                  |j                  d       t        |      D cg c]  }|t        |      vs| }}t        |      D cg c]  }|t        |      vs| }}| j	                  ||z   g d|d|       y c c}w c c}w )NrO  c                 $    | j                  d      S rQ  rS  rT  s    r;   r
  z.TestConvert.test_convert_int.<locals>.<lambda>  rU  r=   rV  rE  extra names: ;  missing names: msg)r.   r   rY  rZ  r   CONVERT_TEST_NAME_FrX  CONVERT_TEST_NAME_BCONVERT_TEST_NAME_CCONVERT_TEST_NAME_DCONVERT_TEST_NAME_Er  r  r   r	  r   extrar<  s        r;   test_convert_intzTestConvert.test_convert_int  s   LL**!> + @	
 	66"66	866:66:66:66:"%i.T$D@S4STT$,Y$7VD4s9~;U4VV=BGL 	 	 UVs   D(D(1D-D-c                     t         j                  j                  dt        d       }| j	                  t        |      |j                  |j                  |j                  g       y )NUncomparablec                 $    | j                  d      S )NUNCOMPARABLE_rS  rT  s    r;   r
  z7TestConvert.test_convert_uncomparable.<locals>.<lambda>0  rU  r=   rV  )	r.   r   rY  rZ  r   r   UNCOMPARABLE_AUNCOMPARABLE_BUNCOMPARABLE_Cr   uncomps     r;   test_convert_uncomparablez%TestConvert.test_convert_uncomparable,  sX    $$> % @
 	L""F$9$96;P;PQ	r=   c                     t         j                  j                  dt        d       }| j	                  t        |      |j                  |j                  |j                  g       y )Nrl  c                 $    | j                  d      S )NCOMPLEX_rS  rT  s    r;   r
  z2TestConvert.test_convert_complex.<locals>.<lambda>;  s    Q\\*5 r=   rV  )	r.   r   rY  rZ  r   r   	COMPLEX_A	COMPLEX_B	COMPLEX_Crr  s     r;   test_convert_complexz TestConvert.test_convert_complex7  sW    $$5 % 7
 	Lv//1A1AB	r=   c                    t         j                  j                  dt        d d      }| j	                  |j
                  d       | j	                  |j                  d       t        |      D cg c]  }|t        |      vs| }}t        |      D cg c]  }|t        |      vs| }}| j	                  ||z   g d|d|	       | j	                  t        |j
                        d
t        z         | j	                  t        |j                        d       | j	                  t        |j
                        d       y c c}w c c}w )NrO  c                 $    | j                  d      S )NCONVERT_STR_rS  rT  s    r;   r
  z.TestConvert.test_convert_str.<locals>.<lambda>F  s    n!= r=   TrW  	as_globalrY  rx  r_  r`  ra  z%s.CONVERT_STR_TEST_1)r.   r	   rY  rZ  r   CONVERT_STR_TEST_1CONVERT_STR_TEST_2r  r  r  r	  rY  r_  rh  s        r;   test_convert_strzTestConvert.test_convert_strB  s#   LL**!=	 +  	 	55w?55yA"%i.T$D@S4STT$,Y$7VD4s9~;U4VV=BGL 	 	
 	i::;=TWc=cdY99:IF	 < <=wG UVs   .EEE'Ec                     | j                  t              5  t        j                  j	                  dt
        d        d d d        y # 1 sw Y   y xY w)NrO  c                 $    | j                  d      S rQ  rS  rT  s    r;   r
  z0TestConvert.test_convert_raise.<locals>.<lambda>\  rU  r=   rV  )rp  rq  r.   r   _convertrZ  r   s    r;   test_convert_raisezTestConvert.test_convert_raiseW  sJ    ~. 	@LL!!!> " @	@ 	@ 	@s   (AAc                 @   t         j                  j                  dt        d d      }| j	                  t        |j                        dt        z         | j	                  t        |j                        d       | j	                  t        |j                        d       y )NrO  c                 $    | j                  d      S )NCONVERT_STRING_TEST_rS  rT  s    r;   r
  z7TestConvert.test_convert_repr_and_str.<locals>.<lambda>b  s    .D!E r=   Tr  z%s.CONVERT_STRING_TEST_NAME_Ar{  )
r.   r   rY  rZ  r   r  CONVERT_STRING_TEST_NAME_Ar	  rY  r_  r[  s     r;   test_convert_repr_and_strz%TestConvert.test_convert_repr_and_str^  s    LL**!E	 +  	
 	iBBCEdgsEstYAABCH	 D DEsKr=   N)rE   rF   rG   rM  r\  rj  rt  r{  r  r  r  rK   r=   r;   rI  rI    s.    6C,		H*@Lr=   rI  c                 x   t        g d| j                  z         }| j                  t        j                  ur|j                  d       | j                  t        j                  ur|j                  d       | j                  t        u rt        |      S t        t        t        | j                              |z        S )N)
rU  r
  r   r
  r
  r+	  r  rF   rE   rG   r{  r	  )
r  _member_names__new_member_r  r{  rw	  r	  rX  sortedr  )ri  interestings     r;   r  r  k  s     
   ! K v~~-	"
F$<$<<+,
F"k"" c#c//01K?@@r=   c                    | j                   j                  t        u rt        g d      }nt        t	        |             }| j                   j                         D ]  }|j                  j                         D ]  \  }}|d   dk(  rt        |t        j                        r>|j                  || j                  vr|j                  |       U|j                  |       g|| j                  vsv|j                  |         t        |      S )N)rU  r   r  ro	  rF   r   r`  r   r   )rU  rX  r  r  r  r  r  r$  r  r.   r  r   r&  rw	  discardr  )r   allowedri  r   r{   s        r;   r  r  }  s    %%/cdc&k"##% 
"++- 		"ID#Aw#~#t}}-88'4v7J7J+JKK%OOD)V000D!		"
" '?r=   __main__r   )r  r.   r,   r
  r/   r
  r  r  r	  r  builtinsrb  r  r   rT  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!   rn  r"   test.supportr#   r$   r%   r&   version_infor  r<   rE   rZ  r  r	  rA   r  r  r  rN   r  rP   rR   rX   r]   r_   ra   re   rh   ri   rm   rx   r|   TestCaser~   r   global_enumr   r   r   r   rR  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+  r2  r5  r  r  r	  r
  r
  rF
  rz
  r
  r
  r
  r
  r)  rf  re  rd  rX  rg  rc  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  ro  rq  rp  rz  rx  ry  rI  r  r  mainrK   r=   r;   <module>r     s       	  
     #  X X X N N B B 2 2  @ @  - ) !!"1%& 
||C $$ S$ ud d $ W W 7 J 9(KH(9:F(2=RSF
	 C*
1e(## 1el% % 'DII   'DLL   T  W Wr$4 $4N#3 #3L6& 6&pZ2 Z2z%68I8I J(98;L;L "%6
HDUDU "(J(9:xGXGX 	@z#68I8I 	@@*&98;L;L @
6z#68I8I 
66*&98;L;L 6z#6
HDUDU *&9:xGXGX %
$5x7H7H %,:'8(:K:K ,%
$5x7H7H %,:'8(:K:K ,%J(9:xGXGX %,z+<j(J[J[ ,	!%68I8I 	!
^J(98;L;L 
^	!:':H<M<M 	!
bj*=x?P?P 
b!*&79J9J !_Z):H<M<M _!J(;X=N=N !cz+>@Q@Q c^!i(## ^!iBC<!! <~\B(## \B~^OX&& ^OB(("3"3 ("-"" -^C"" CNI5H%% I5V	h// 	6"8 p(% !Tt3"" t3n28$$ 2D                 			jL(## jL^A$& zHMMO sb  G  J  L  K<  H
  F
  F  		s   V
 V %V4 2W	 *W 6	W3  X X 
VVVV1$V,,V14W9WW	WWWW0#W++W03X8X  XXXXX&%X&