
    ai*                    d   d dl mZm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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mZ d dl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& d dlm'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dlm1Z1m2Z2m3Z3m4Z4 d d	lm5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> d d
l?m@Z@ d dlAmBZB d dlCmDZD d dlEmFZFmGZGmHZHmIZI d dlJmKZLmMZNmOZPmQZR d dlJmSZTmUZVmWZX d dlJmYZZm[Z\m]Z^ d dlJm_Z`maZbmcZdmeZf d dlJmgZhmiZj e6rd dlJmkZl 	 d dlmZm	 eo eqZrerj                  d      d   Ztd Zu G d de
j                        Zv	  G d de      Zw	  G d deze      Z{	  G d d e|e      Z}	  G d! d"e      Z~	  G d# d$e      Z	  G d% d&e      Z	  G d' d(e      Z	  ed)d*eq+      Z	  G d, d-e      Z	  G d. d/e      Z	  ed0d1eq+      Z	  ed2d3      Z	  G d4 d5e      Z G d6 d7e      Z	  G d8 d9e      Zdd eIffd:Zd eIffd;Ze7r+dd<lmZmZmZmZmZmZ dd=lmZ e{e_{        ee_        ee_        e5e=k\  rdd>lmZ  G d? d@e      Z G dA dBev      Z G dC dDev      Z G dE dFev      Z G dG dHev      Z G dI dJev      Z G dK dLev      Z G dM dNev      Z G dO dPev      Z G dQ dRe
j                        Z G dS dTev      Z G dU dVev      Z G dW dXev      Z G dY dZev      Z G d[ d\ev      Z G d] d^ev      Z G d_ d`ev      ZdaZdaZdaZdaZdaZdaZdbZdbZdcZdcZdaZdaZdaZdaZdaZdaZddZdeZdaZdfZdgZdhZdiZdjZ G dk dlev      Zdm Zdn Zeqdok(  r ej                         ZdZ	 e7ree_         e
j                  dpq      Zej                  j                          eƐj                  j                  D ]  \  ZZ ee̛dre͛        	  ej                  eds       erR ej                   eeƐj                  j                  xs eƐj                  j                        xr dxs d        yyy# en$ r dZmY &w xY w# ep$ r
 d dlmoZo Y 5w xY w# ex$ r  ej                         d   ZwY w xY w# ex$ r  ej                         d   Z{Y .w xY w# ex$ r  ej                         d   Z}Y Aw xY w# ex$ rZeZ~Y dZ[FdZ[ww xY w# ex$ rZeZY dZ[OdZ[ww xY w# ex$ r eZY Uw xY w# ex$ rZeZY dZ[ZdZ[ww xY w# ex$ r  ej                         d   ZY rw xY w# ex$ r  ej                         d   ZY w xY w# ex$ r  ej                         d   ZY w xY w# ex$ r  ej                         d   ZY w xY w# ex$ r  ej                         d   ZY w xY w# ex$ r  ej                         d   ZY w xY w# ex$ r Y w xY w#  ej                  eds       erR ej                   eeƐj                  j                  xs eƐj                  j                        xr dxs d        w w xY w)t    )divisionprint_functionN)EnumTypeEnumMetaEnumIntEnumStrEnumLowerStrEnumUpperStrEnumReprEnum)AutoNumberEnumMultiValueEnumOrderedEnum
UniqueEnumAddValueEnumFlagIntFlag)
NamedTuple	TupleSizeNamedConstantconstantNoAliasAddValueUnique)STRICTCONFORMEJECTKEEP)
_reduce_ex_by_nameuniqueskipextend_enumautoenum
MultiValuemember	nonmemberno_arg)
basestringbaseintegerunicodeenum_property)
pyverPY2PY3PY2_6PY3_3PY3_4PY3_5PY3_6PY3_7PY3_11)	_high_bit)OrderedDict)	timedelta)dumpsloadsPicklingErrorHIGHEST_PROTOCOL)or_and_xorinv)absaddfloordiv)lshiftrshiftmod)mulnegpospow)truedivsub)div)any.c                     |j                  t        j                  t                     |j                  t        j                  dt        t        j
                  t        j                  z               |S )Nzdoc/aenum.rst)packageoptionflags)addTestsdoctestDocTestSuiteaenumDocFileSuiteELLIPSISNORMALIZE_WHITESPACE)loadertestsignores      ]/home/ccuser/rateright-growth/voice-assistant/venv/lib/python3.12/site-packages/aenum/test.py
load_testsr`   -   sS    	NN7''./	NN7''$$W%A%AA
 
 L    c                        e Zd Z fdZ xZS )TestCasec                 l    t        | dd       }|t        | d      | _        t        t        |   |i | y )NassertRaisesRegexassertRaisesRegexp)getattrre   superrc   __init__)selfargskwdsregex	__class__s       r_   ri   zTestCase.__init__8   s;    148=%,T3G%HD"h&55ra   )__name__
__module____qualname__ri   __classcell__)rn   s   @r_   rc   rc   6   s    6 6ra   rc   c                       e Zd ZdZdZdZy)Stooges         Nro   rp   rq   LARRYCURLYMOE ra   r_   rt   rt   A       ra   rt   ru   c                       e Zd ZdZdZdZy)
IntStoogesru   rv   rw   Nrx   r|   ra   r_   r   r   I   r}   ra   r   c                       e Zd ZdZdZdZy)FloatStoogesg=
ףp=?g(\@gR$_	$	@Nrx   r|   ra   r_   r   r   Q   s    ra   r   c                        e Zd ZdZdZdZdZdZy)FlagStoogesru   rv            Nro   rp   rq   ry   rz   r{   PMASKCMASKr|   ra   r_   r   r   Y       ra   r   c                   $    e Zd ZdZdZdZdZdZdZy)FlagStoogesWithZeror   ru   rv   r   r   r   N	ro   rp   rq   NOFLAGry   rz   r{   r   r   r|   ra   r_   r   r   c        ra   r   c                        e Zd ZdZdZdZdZdZy)IntFlagStoogesru   rv   r   r   r   Nr   r|   ra   r_   r   r   n   r   ra   r   c                   $    e Zd ZdZdZdZdZdZdZy)IntFlagStoogesWithZeror   ru   rv   r   r   r   Nr   r|   ra   r_   r   r   x   r   ra   r   LifeFormzbranch genus speciesmodulec                       e Zd ZdZdZdZy)	DeathFormr   ru   rv   N)ro   rp   rq   colorrigidityodorr|   ra   r_   r   r      s    ra   r   c                       e Zd ZdZdZy)NameGuido van RossumzBarry WarsawN)ro   rp   rq   BDFLFLUFLr|   ra   r_   r   r      s    !ra   r   Questionzwho what when where whyAnswerzhim this then there becausec                       e Zd Zd Zy)WhatsItc                     | d   S Nr   r|   rj   s    r_   whatzWhatsIt.what   s    7Nra   N)ro   rp   rq   r   r|   ra   r_   r   r      s    	ra   r   c                       e Zd ZdZdZy)ThatsItr   ru   N)ro   rp   rq   blahblehr|   ra   r_   r   r      s    ra   r   c                       e Zd ZdZdZdZy)Fruitru   rv   rw   N)ro   rp   rq   tomatobananacherryr|   ra   r_   r   r      s    ra   r   c           	      r   |\  }}g }t        ||dz         D ]@  }	 | | t        t        ||            |       n | t        t        ||            |       B |rt        ddj                  |      z        y # t        $ r3 t	        j
                         dd  \  }}|j                  d||fz         Y w xY w)Nru   protocolz%2d: %sFailed with protocols: %s, )	ranger;   r:   	Exceptionsysexc_infoappend
ValueErrorjoin)		assertionsourcetargetr   startstopfailuresexctbs	            r_   test_pickle_dump_loadr      s    KE4H%a( 8	8~%fx @A6J%fx @A6J8 4tyy7JJKK   	8llnQR(GCOOI#67	8s   =A::9B65B6c                 <   |\  }}g }t        ||dz         D ]  }	  | |t        ||        |rt        ddj                  |      z        y # t        $ rE t        j                         d   }|j                  d||j                  j                  |fz         Y w xY w)Nru   r   z	%d: %s %sr   r   )
r   r:   r   r   r   r   rn   ro   r   r   )r   	exceptionobjr   r   r   r   r   s           r_   test_pickle_exceptionr      s    KE4H%a( S	Sih?S 4tyy7JJKK   	S,,.#COOK8S]]5K5KS*QQR	Ss   AABB)
TestEnumV3TestOrderV3TestNamedTupleV3TestStackoverflowAnswersV3TestIssuesV3TestExtendEnumV3)test_v3)TestEnumV37c                       e Zd ZddZd Zy)classpropertyNc                 \    || _         || _        || _        |||j                  }|| _        y N)fgetfsetfdel__doc__)rj   r   r   r   docs        r_   ri   zclassproperty.__init__   s1    			;4+,,Cra   c                 $    | j                  |      S r   )r   )rj   instance
ownerclasss      r_   __get__zclassproperty.__get__   s    yy$$ra   )NNNN)ro   rp   rq   ri   r   r|   ra   r_   r   r      s    %ra   r   c                   X    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y)	TestOrderz-
    Test _order_ extra/missing members.
    c                 "     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 blueru   rv   rw   Nro   rp   rq   _order_redgreenbluer|   ra   r_   Colorr          &GCEDra   r   r   rj   r   s     r_   test_same_memberszTestOrder.test_same_members       	D 	ra   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   ru   rv   rw   Nro   rp   rq   r   r   r   r   verder|   ra   r_   r   r          &GCEDEra   r   r   r   s     r_   test_same_members_with_aliasesz(TestOrder.test_same_members_with_aliases       	D 	ra   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)5TestOrder.test_order_has_extra_members.<locals>.Colorred green blue purpleru   rv   rw   Nr   r|   ra   r_   r   r          1ra   r   re   	TypeErrorr   r   s     r_   test_order_has_extra_membersz&TestOrder.test_order_has_extra_members   4    ##I/UV 	 	 	 	   09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   ru   rv   rw   Nr   r|   ra   r_   r   r        1ra   r   r   r   s     r_   )test_order_has_extra_members_with_aliasesz3TestOrder.test_order_has_extra_members_with_aliases  4    ##I/UV 	 	 	 	r  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   ru   rv   rw   r   Nro   rp   rq   r   r   r   r   purpler|   ra   r_   r   r        *ra   r   r   r   s     r_   test_enum_has_extra_membersz%TestOrder.test_enum_has_extra_members  4    ##I/UV 	 	 	 	r  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   ru   rv   rw   r   N	ro   rp   rq   r   r   r   r   r  r   r|   ra   r_   r   r         *ra   r   r   r   s     r_   (test_enum_has_extra_members_with_aliasesz2TestOrder.test_enum_has_extra_members_with_aliases  4    ##I/UV 	 	 	 	r  c                 "     G d dt               }y )Nc                       e Zd ZdZdZdZdZy)/TestOrder.test_same_members_flag.<locals>.Colorr   ru   rv   r   Nr   r|   ra   r_   r   r  #  r   ra   r   r   r   s     r_   test_same_members_flagz TestOrder.test_same_members_flag"  r   ra   c                 "     G d dt               }y )Nc                        e Zd ZdZdZdZdZeZy)<TestOrder.test_same_members_with_aliases_flag.<locals>.Colorr   ru   rv   r   Nr   r|   ra   r_   r   r   *  r   ra   r   r  r   s     r_   #test_same_members_with_aliases_flagz-TestOrder.test_same_members_with_aliases_flag)  r   ra   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):TestOrder.test_order_has_extra_members_flag.<locals>.Colorr   ru   rv   r   Nr   r|   ra   r_   r   r$  3  r   ra   r   re   r   r   r   s     r_   !test_order_has_extra_members_flagz+TestOrder.test_order_has_extra_members_flag1  r  r  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)GTestOrder.test_order_has_extra_members_with_aliases_flag.<locals>.Colorr   ru   rv   r   Nr   r|   ra   r_   r   r)  ;  r  ra   r   r%  r   s     r_   .test_order_has_extra_members_with_aliases_flagz8TestOrder.test_order_has_extra_members_with_aliases_flag9  r	  r  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)9TestOrder.test_enum_has_extra_members_flag.<locals>.Colorr   ru   rv   r      Nr  r|   ra   r_   r   r-  D  r  ra   r   r%  r   s     r_    test_enum_has_extra_members_flagz*TestOrder.test_enum_has_extra_members_flagB  r  r  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)FTestOrder.test_enum_has_extra_members_with_aliases_flag.<locals>.Colorr   ru   rv   r   r.  Nr  r|   ra   r_   r   r2  M  r  ra   r   r%  r   s     r_   -test_enum_has_extra_members_with_aliases_flagz7TestOrder.test_enum_has_extra_members_with_aliases_flagK  r  r  N)ro   rp   rq   r   r   r   r  r  r  r  r  r!  r&  r*  r/  r3  r|   ra   r_   r   r      sC    ra   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestAutoValuec                     G d dt               }| j                  |j                  j                  d        G d dt              }| j                  |j                  d        G d dt
              }| j                  |j                  j                  d        G d	 d
t              }| j                  |j                  d       y )Nc                   :    e Zd ZdZ e       Z e       Z e       Zy))TestAutoValue.test_bare.<locals>.BareEnumONE TWO THREENro   rp   rq   r   r#   ONETWOTHREEr|   ra   r_   BareEnumr8  Z      %G&C&CFEra   r>  rw   c                   :    e Zd ZdZ e       Z e       Z e       Zy),TestAutoValue.test_bare.<locals>.BareIntEnumr9  Nr:  r|   ra   r_   BareIntEnumrA  a  r?  ra   rB  c                   :    e Zd ZdZ e       Z e       Z e       Zy))TestAutoValue.test_bare.<locals>.BareFlagr9  Nr:  r|   ra   r_   BareFlagrD  h  r?  ra   rE  r   c                   :    e Zd ZdZ e       Z e       Z e       Zy),TestAutoValue.test_bare.<locals>.BareIntFlagr9  Nr:  r|   ra   r_   BareIntFlagrG  o  r?  ra   rH  )r   assertEqualr=  valuer   r   r   )rj   r>  rB  rE  rH  s        r_   	test_barezTestAutoValue.test_bareX  s    	t 	
 	--q1	' 	
 	**A.	t 	
 	--q1	' 	
 	**A.ra   c                 j    G d dt               }| j                  |j                  j                  d       | j                  |j                  j                  d        G d dt               }| j                  |j                  j                  d       | j                  |j                  j                  d        G d dt
              }| j                  |j                  d       | j                  |j                  j                  d        G d	 d
t              }| j                  |j                  j                  d       | j                  |j                  j                  d        G d dt              }| j                  |j                  d       | j                  |j                  j                  d       y )Nc                        e Zd ZdZdZdZdZdZy)9TestAutoValue.test_init_only_final.<locals>.InitEnumValuevalue descriptionr9  the loneliest numberthe number with you
a triangleNro   rp   rq   _init_r   r;  r<  r=  r|   ra   r_   InitEnumValuerN  x      (F%G(C'C Era   rU  rw   rR  c                        e Zd ZdZdZdZdZdZy)4TestAutoValue.test_init_only_final.<locals>.InitEnumrO  r9  rP  rQ  rR  NrS  r|   ra   r_   InitEnumrX    rV  ra   rY  c                        e Zd ZdZdZdZdZdZy)7TestAutoValue.test_init_only_final.<locals>.InitIntEnumrO  r9  rP  rQ  rR  NrS  r|   ra   r_   InitIntEnumr[    rV  ra   r\  c                        e Zd ZdZdZdZdZdZy)4TestAutoValue.test_init_only_final.<locals>.InitFlagrO  r9  rP  rQ  rR  NrS  r|   ra   r_   InitFlagr^    rV  ra   r_  r   c                        e Zd ZdZdZdZdZdZy)7TestAutoValue.test_init_only_final.<locals>.InitIntFlagrO  r9  rP  rQ  rR  NrS  r|   ra   r_   InitIntFlagra    rV  ra   rb  )r   rI  r=  rJ  descriptionr   r   r   )rj   rU  rY  r\  r_  rb  s         r_   test_init_only_finalz"TestAutoValue.test_init_only_finalv  sL   	!D 	! 	,,22A6,,88,G	!t 	! 	--q133\B	!' 	! 	**A.**66E	!t 	! 	--q133\B	!' 	! 	**A.**66Era   c                     G 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        G d
 dt
        |      }| j                  |j                  d       | j                  |j                  j                  d        G d dt              } G d d|      }| j                  |j                  j                  d       | j                  |j                  j                  d        G d dt
        |      }| j                  |j                  d       | j                  |j                  j                  d       y )Nc                       e Zd ZdZy)=TestAutoValue.test_init_only_inherit.<locals>.InitInheritEnumrO  Nro   rp   rq   rT  r|   ra   r_   InitInheritEnumrg        (Fra   ri  c                       e Zd ZdZdZdZdZy6TestAutoValue.test_init_only_inherit.<locals>.InitEnumr9  rP  rQ  rR  Nro   rp   rq   r   r;  r<  r=  r|   ra   r_   rY  rm        %G(C'C Era   rY  rw   rR  c                       e Zd ZdZy)BTestAutoValue.test_init_only_inherit.<locals>.InitInheritValueEnumrO  Nrh  r|   ra   r_   InitInheritValueEnumrq    rj  ra   rr  c                       e Zd ZdZdZdZdZyrl  rn  r|   ra   r_   rY  z6TestAutoValue.test_init_only_inherit.<locals>.InitEnum  ro  ra   c                       e Zd ZdZdZdZdZy)9TestAutoValue.test_init_only_inherit.<locals>.InitIntEnumr9  rP  rQ  rR  Nrn  r|   ra   r_   r\  ru    ro  ra   r\  c                       e Zd ZdZy)BTestAutoValue.test_init_only_inherit.<locals>.InitInheritValueFlagrO  Nrh  r|   ra   r_   InitInheritValueFlagrw    rj  ra   rx  c                       e Zd ZdZdZdZdZy)6TestAutoValue.test_init_only_inherit.<locals>.InitFlagr9  rP  rQ  rR  Nrn  r|   ra   r_   r_  rz    ro  ra   r_  r   c                       e Zd ZdZdZdZdZy)9TestAutoValue.test_init_only_inherit.<locals>.InitIntFlagr9  rP  rQ  rR  Nrn  r|   ra   r_   rb  r|    ro  ra   rb  )r   rI  r=  rJ  rc  intr   )rj   ri  rY  rr  r\  rx  r_  rb  s           r_   test_init_only_inheritz$TestAutoValue.test_init_only_inherit  st   	)d 	)	! 	!
 	--q133\B	)4 	)	!+ 	!
 	--q133\B	!#3 	!
 	**A.**66E	)4 	)	!+ 	!
 	--q133\B	!#3 	!
 	**A.**66Era   c                 d    G d dt               }| j                  |j                  j                  d       | j                  |j                  j
                  d        G d dt              }| j                  |j                  d       | j                  |j                  j
                  d        G d d	t              }| j                  |j                  j                  d
       | j                  |j                  j
                  d        G d dt              }| j                  |j                  d
       | j                  |j                  j
                  d        G d dt        t               }| j                  |j                  j                  d       | j                  |j                  j                  d
       | j                  |j                  j                  d       | j                  |j                  j                  d        G d dt        t              }| j                  |j                  j                  d
       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       y )Nc                   @    e Zd ZdZd Z e       Z e       Z e       Zy)7TestAutoValue.test_new_only_final.<locals>.NewFinalEnumr9  c                 L    t         j                  |       }||_        d|_        |S )NNFE1object__new___value_proofclsrJ  r&   s      r_   r  z?TestAutoValue.test_new_only_final.<locals>.NewFinalEnum.__new__  #    ,!&%ra   N	ro   rp   rq   r   r  r#   r;  r<  r=  r|   ra   r_   NewFinalEnumr    #    %G
 &C&CFEra   r  rw   r  c                   @    e Zd ZdZd Z e       Z e       Z e       Zy):TestAutoValue.test_new_only_final.<locals>.NewFinalIntEnumr9  c                 N    t         j                  | |      }||_        d|_        |S )NNFE2r}  r  r  r  r  s      r_   r  zBTestAutoValue.test_new_only_final.<locals>.NewFinalIntEnum.__new__  %    S%0!&%ra   Nr  r|   ra   r_   NewFinalIntEnumr    r  ra   r  r  c                   @    e Zd ZdZd Z e       Z e       Z e       Zy)7TestAutoValue.test_new_only_final.<locals>.NewFinalFlagr9  c                 L    t         j                  |       }||_        d|_        |S )NNFE3r  r  s      r_   r  z?TestAutoValue.test_new_only_final.<locals>.NewFinalFlag.__new__  r  ra   Nr  r|   ra   r_   NewFinalFlagr    r  ra   r  r   r  c                   @    e Zd ZdZd Z e       Z e       Z e       Zy):TestAutoValue.test_new_only_final.<locals>.NewFinalIntFlagr9  c                 N    t         j                  | |      }||_        d|_        |S )NNFE4r  r  s      r_   r  zBTestAutoValue.test_new_only_final.<locals>.NewFinalIntFlag.__new__  r  ra   Nr  r|   ra   r_   NewFinalIntFlagr    r  ra   r  r  c                   >    e Zd ZdZd Zej                  ZdZdZdZ	dZ
y):TestAutoValue.test_new_only_final.<locals>.NewFinalStrEnum AllReset Bright FG_Cyan BG_Blackc                 f    d|z  }t         j                  | |      }||_        ||_        ||_        |S Nz[%smstrr  r  coderc  r  rJ  r  rc  	str_valuer   s         r_   r  zBTestAutoValue.test_new_only_final.<locals>.NewFinalStrEnum.__new__  6    &-	kk#y1#"-
ra   0z!reset all (colors and brightness)1bright lights!36cyan40blackNro   rp   rq   r   r  r  __str__AllResetBrightFG_CyanBG_Blackr|   ra   r_   NewFinalStrEnumr    +    8G kkG?H*F"G$Hra   r  r  r  c                   >    e Zd ZdZd Zej                  ZdZdZdZ	dZ
y):TestAutoValue.test_new_only_final.<locals>.NewFinalStrFlagr  c                 f    d|z  }t         j                  | |      }||_        ||_        ||_        |S r  r  r  s         r_   r  zBTestAutoValue.test_new_only_final.<locals>.NewFinalStrFlag.__new__*  r  ra   r  r  r  r  Nr  r|   ra   r_   NewFinalStrFlagr  &  r  ra   r  r.  )r   rI  r=  rJ  r<  r  r   r   r   r  r  r  r  r  r  rc  )rj   r  r  r  r  r  r  s          r_   test_new_only_finalz!TestAutoValue.test_new_only_final  s   		4 		 	++1115))//8		g 		 	..2,,22F;		4 		 	++1115))//8		g 		 	..2,,22F;	%c4 	%$ 	0066:1177;1166<//;;=MN	%c4 	%$ 	0066:1177;1166<//;;=MNra   c                     G d dt               } G d d|      }| j                  |j                  j                  d       | j                  |j                  j
                  d        G d dt        |      }| j                  |j                  d       | j                  |j                  j
                  d        G d	 d
t              } G d d|      }| j                  |j                  j                  d       | j                  |j                  j
                  d        G d dt        |      }| j                  |j                  d       | j                  |j                  j
                  d       y )Nc                       e Zd Zd Zy)=TestAutoValue.test_new_only_inherited.<locals>.NewInheritEnumc                     | j                   t        u rt        j                  | |dz        }nt        j                  |       }|dz  |_        d|_        |S Nrv   NIE_member_type_r}  r  r  r  r  r  s      r_   r  zETestAutoValue.test_new_only_inherited.<locals>.NewInheritEnum.__new__@  I    $$+ [[eAg6F#^^C0F!&$ra   Nro   rp   rq   r  r|   ra   r_   NewInheritEnumr  ?      ra   r  c                   :    e Zd ZdZ e       Z e       Z e       Zy);TestAutoValue.test_new_only_inherited.<locals>.NewFinalEnumr9  Nr:  r|   ra   r_   r  r  I  r?  ra   r     r  c                   :    e Zd ZdZ e       Z e       Z e       Zy)>TestAutoValue.test_new_only_inherited.<locals>.NewFinalIntEnumr9  Nr:  r|   ra   r_   r  r  Q  r?  ra   r  c                       e Zd Zd Zy)=TestAutoValue.test_new_only_inherited.<locals>.NewInheritFlagc                     | j                   t        u rt        j                  | |dz        }nt        j                  |       }|dz  |_        d|_        |S r  r  r  s      r_   r  zETestAutoValue.test_new_only_inherited.<locals>.NewInheritFlag.__new__Z  r  ra   Nr  r|   ra   r_   NewInheritFlagr  Y  r  ra   r  c                   :    e Zd ZdZ e       Z e       Z e       Zy);TestAutoValue.test_new_only_inherited.<locals>.NewFinalFlagr9  Nr:  r|   ra   r_   r  r  c  r?  ra   r  r.  c                   :    e Zd ZdZ e       Z e       Z e       Zy)>TestAutoValue.test_new_only_inherited.<locals>.NewFinalIntFlagr9  Nr:  r|   ra   r_   r  r  k  r?  ra   r  )r   rI  r=  rJ  r<  r  r}  r   )rj   r  r  r  r  r  r  s          r_   test_new_only_inheritedz%TestAutoValue.test_new_only_inherited=  s*   	T 		> 	
 	++1115))//7	c> 	
 	..2,,22E:	T 		> 	
 	++1115))//7	c> 	
 	..2,,22E:ra   c                     G d dt               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d        G d dt              }| 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        G d dt              }| j                  |j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       y )Nc                   &    e Zd ZdZdZd ZdZdZdZy)5TestAutoValue.test_init_new_only.<locals>.InitNewEnumrO  r9  c                 L    t         j                  |       }||_        d|_        |S )NINE1r  r  rJ  rk   r&   s       r_   r  z=TestAutoValue.test_init_new_only.<locals>.InitNewEnum.__new__x  r  ra   rP  rQ  rR  N	ro   rp   rq   rT  r   r  r;  r<  r=  r|   ra   r_   InitNewEnumr  u  "    (F%G
 )C'C Era   r  rw   rR  r  c                   &    e Zd ZdZdZd ZdZdZdZy)8TestAutoValue.test_init_new_only.<locals>.InitNewIntEnumrO  r9  c                 N    t         j                  | |      }||_        d|_        |S )NINE2r  r  s       r_   r  z@TestAutoValue.test_init_new_only.<locals>.InitNewIntEnum.__new__  r  ra   rP  rQ  rR  Nr  r|   ra   r_   InitNewIntEnumr    r  ra   r  r  c                   &    e Zd ZdZdZd ZdZdZdZy)5TestAutoValue.test_init_new_only.<locals>.InitNewFlagrO  r9  c                 L    t         j                  |       }||_        d|_        |S )NINE3r  r  s       r_   r  z=TestAutoValue.test_init_new_only.<locals>.InitNewFlag.__new__  r  ra   rP  rQ  rR  Nr  r|   ra   r_   InitNewFlagr    r  ra   r  r   r  c                   &    e Zd ZdZdZd ZdZdZdZy)8TestAutoValue.test_init_new_only.<locals>.InitNewIntFlagrO  r9  c                 N    t         j                  | |      }||_        d|_        |S )NINE4r  r  s       r_   r  z@TestAutoValue.test_init_new_only.<locals>.InitNewIntFlag.__new__  r  ra   rP  rQ  rR  Nr  r|   ra   r_   InitNewIntFlagr    r  ra   r  r  )
r   rI  r=  rJ  rc  r<  r  r   r   r   )rj   r  r  r  r  s        r_   test_init_new_onlyz TestAutoValue.test_init_new_onlys  sz   
	!$ 
	! 	**00!4**66E..7
	!W 
	! 	--q1--99<H++116:
	!$ 
	! 	**00!4**66E..7
	!W 
	! 	--q1--99<H++116:ra   c                 P    G d dt               } G d d|      }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d        G d d	t               } G d
 dt        |      }| j                  |j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d        G d dt              } G d d|      }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d        G d dt        t              } G d d|      }| j                  |j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       y )Nc                       e Zd ZdZd Zy)4TestAutoValue.test_init_new_inherit.<locals>.InitNewrO  c                 L    t         j                  |       }||_        d|_        |S NINr  r  s       r_   r  z<TestAutoValue.test_init_new_inherit.<locals>.InitNew.__new__  #    ,!&#ra   Nro   rp   rq   rT  r  r|   ra   r_   InitNewr        (Fra   r  c                       e Zd ZdZdZdZdZy)8TestAutoValue.test_init_new_inherit.<locals>.InitNewEnumr9  rP  rQ  rR  Nrn  r|   ra   r_   r  r    ro  ra   r  rw   rR  r  c                       e Zd ZdZd Zy)7TestAutoValue.test_init_new_inherit.<locals>.InitNewIntrO  c                 N    t         j                  | |      }||_        d|_        |S r  r  r  s       r_   r  z?TestAutoValue.test_init_new_inherit.<locals>.InitNewInt.__new__  %    S%0!&#ra   Nr  r|   ra   r_   
InitNewIntr    r  ra   r  c                       e Zd ZdZdZdZdZy);TestAutoValue.test_init_new_inherit.<locals>.InitNewIntEnumr9  rP  rQ  rR  Nrn  r|   ra   r_   r  r    ro  ra   r  c                       e Zd ZdZd Zy)<TestAutoValue.test_init_new_inherit.<locals>.InitNewFlagBaserO  c                 L    t         j                  |       }||_        d|_        |S r  r  r  s       r_   r  zDTestAutoValue.test_init_new_inherit.<locals>.InitNewFlagBase.__new__  r  ra   Nr  r|   ra   r_   InitNewFlagBaser
    r  ra   r  c                       e Zd ZdZdZdZdZy)8TestAutoValue.test_init_new_inherit.<locals>.InitNewFlagr9  rP  rQ  rR  Nrn  r|   ra   r_   r  r    ro  ra   r  r   c                       e Zd ZdZd Zy)?TestAutoValue.test_init_new_inherit.<locals>.InitNewIntFlagBaserO  c                 N    t         j                  | |      }||_        d|_        |S r  r  r  s       r_   r  zGTestAutoValue.test_init_new_inherit.<locals>.InitNewIntFlagBase.__new__  r  ra   Nr  r|   ra   r_   InitNewIntFlagBaser    r  ra   r  c                       e Zd ZdZdZdZdZy);TestAutoValue.test_init_new_inherit.<locals>.InitNewIntFlagr9  rP  rQ  rR  Nrn  r|   ra   r_   r  r    ro  ra   r  )	r   rI  r=  rJ  rc  r<  r  r}  r   )	rj   r  r  r  r  r  r  r  r  s	            r_   test_init_new_inheritz#TestAutoValue.test_init_new_inherit  s   	d 		!' 	!
 	**00!4**66E..5	 		!S* 	!
 	--q1--99<H++1148	d 		!/ 	!
 	**00!4**66E..5	d 		!/ 	!
 	--q1--99<H++1148ra   N)
ro   rp   rq   rK  rd  r~  r  r  r  r  r|   ra   r_   r5  r5  V  s/    /<-F^2FhbOH4;l<;|D9ra   r5  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestHelpersc                      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ro   rp   rq   r|   ra   r_   foor        ra   r  )r   __set__
__delete__ru   )assertFalserX   is_descriptorsetattr
assertTrue)rj   r  attrr   s       r_   test_is_descriptorzTestHelpers.test_is_descriptor  s^    	 	6 	6D%CU0056Cq!OOE//45		6ra   c                     dD ]&  }| j                  t        j                  |             ( dD ]&  }| j                  t        j                  |             ( y )N)_a__aa_)aa__a__aa____a___a____a________________)r#  rX   	is_sunderr   rj   ss     r_   test_is_sunderzTestHelpers.test_is_sunder  sN      	0AOOEOOA./	0/ 	1AU__Q/0	1ra   c                     dD ]&  }| j                  t        j                  |             ( dD ]&  }| j                  t        j                  |             ( y )N)r.  __aa__)r)  r*  r+  r,  r-  r'  r/  r0  r1  r2  r3  r4  r5  )r#  rX   	is_dunderr   r7  s     r_   test_is_dunderzTestHelpers.test_is_dunder  sN    $ 	0AOOEOOA./	0/ 	1AU__Q/0	1ra   c                 @    d fd	}dt         t        d      fdt         t        d      fdt        ddfdt        ddfdt        d	d
fdt
        dd
fdt        ddfdt        ddfdt        ddfdt        dfdt        dfdt        ddfdt        ddfdt        ddfdt        ddfdt        ddfdt         dfdt        ddfdt        ddffD ]  } ||  	 t"        r |dt$        dd       t'               }d}t        ||      }d|_         j+                  |j(                  ddz         y )Nc                    |Lt               } ||      }| |_        j                  |j                  ||j                  d| d|d|       y | }t               } |||      }||_        j                  |j                  |d| d|j                  d|d|j                  d|
       t               }|} |||      }| |_        j                  |j                  |d|d|j                  d| d|j                  d|
       y N z -> z != z	forward: z
reversed: )r#   rJ  rI  ro   )firstopfinalsecondleftrJ  rightrj   s          r_   testerz%TestHelpers.test_auto.<locals>.tester  s    ~v4"
  e/1{{E5%PR 4$  e;@"++vW\WbWbdijlv4"
  e<BBKKQVX]XcXcejkmra   ru   rw   rv      r   1   rq@	   r               
   r)  abbaaa   eggsI see 17 %s!r   )_abs_rB   _add_
_floordiv_	_truediv__mod__lshift__rshift__mul__neg__pos__pow__sub__or__xor__and__inv_r.   _div_r#   rJ  rI  )rj   rH  rk   rF  rG  rJ  s   `     r_   	test_autozTestHelpers.test_auto  sP   	m* E3q6"UCG$E3"Z!,Y*E5!$Hfa(Hfa(E5!$E2UE"E4#E62&D%#E5!$E5!$E2eWc*eWa(' 	D* DM+	. 2ugq)vdE"#
nv&=>ra   c                    g dfd	}dt         t        d      fdt         t        d      fdt        ddfdt        ddfdt        d	d
fdt
        dd
fdt        ddfdt        ddfdt        ddfdt        dfdt        dfdt        ddfdt        ddfdt        ddfdt        ddfdt        ddfdt         dfdt        ddfdt        ddffD ]  } ||  	 t"        r |dt$        dd       t'        d      }d}t        ||      }|ddz  k7  rj)                  d|z         r.t+                D ]  }t+        |        | j-                  d       y y )Nc                    |]t        |       }t         ||            }|j                  |k7  r1	j                  |j                  d| d|j                  d|       y y t        |       }|} |||      }||k7  r*	j                  d| d|j                  d|d|d|
       | }t        |      } |||      }||k7  r+	j                  d|d|j                  d| d|d|
       y y r@  )r   rJ  r   ro   )
rB  rC  rD  rE  primary	secondaryrF  rG  rJ  errorss
            r_   rH  z)TestHelpers.test_constant.<locals>.testerJ  s    ~"5/$R[1	??e+MM/1{{E9??TYZ ,
  4E>MM;@"++vW\^cd  (4E>MM<BBKKQVX]_de "ra   ru   rI  rw   rv   rJ  r   rK  rL  rM  r  rN  rO  rP  rQ  rR  rS  rT  rU  r)  rV  rW  rX  rY  r[  rZ  z'I see 17 eggs!' != %rFr   )r\  rB   r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  ri  rj  rk  r.   rl  r   r   printr#  )rj   rH  rk   rF  rG  rJ  errorrr  s          @r_   test_constantzTestHelpers.test_constantH  s   	0 E3q6"UCG$E3"Z!,Y*E5!$Hfa(Hfa(E5!$E2UE"E4#E62&D%#E5!$E5!$E2eWc*eWa(' 	D* DM+	. 2ugq)'dE"NV++MM2U:;G eOOE"	 ra   N)ro   rp   rq   r%  r9  r=  rm  ru  r|   ra   r_   r  r    s    6113?j<#ra   r  c                       e Zd Zd Zd Zy)TestEnumTypec                 |    G d dt               } G d d|t              }| j                  t        dt        |dd       | j                  t        dt
        |d       | j                  t        d	t        |j                  dd       | j                  t        d
t
        |j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  ddg       t	        |dd       | j                  |j                  d       y )Nc                       e Zd Zed        Zy)+TestEnumType.test_immutability.<locals>.Hahc                 @    | D cg c]  }|j                    c}S c c}w r   rJ  r  ms     r_   
all_valuesz6TestEnumType.test_immutability.<locals>.Hah.all_values  s    ),-A---s   N)ro   rp   rq   r   r  r|   ra   r_   Hahrz    s    . .ra   r  c                       e Zd ZdZdZy)+TestEnumType.test_immutability.<locals>.Huhru   rv   Nro   rp   rq   onetwor|   ra   r_   Huhr        CCra   r  zcannot rebind propertyrJ  boomzcannot delete propertyzcannot set attributezcannot delete attributeru   rv   r  c   )r  r   re   AttributeErrorr"  delattrr  r  rI  rJ  r  )rj   r  r  s      r_   test_immutabilityzTestEnumType.test_immutability  s    	.& 	.	#t 	 	~/GRUW^`fg~/GRUW^_~/EwPSPWPWY`bhi~/H'SVSZSZ\cd**!Q0\2&,ra   c                     G d dt               } G d d|t              | j                  t              d       | j                  t	              j
                  j                  j                  j                  j                  g       | j                  t        dfd       | j                  j
                  j                  d       y )	Nc                   "    e Zd Zd Zed        Zy)1TestEnumType.test_enum_shadow_base.<locals>.hohumc                      | j                   dz  S )cyanize a colorr  r|  r   s    r_   r  z6TestEnumType.test_enum_shadow_base.<locals>.hohum.cyan  s    zzF**ra   c                      d| j                   z   S )Nzazure namer   s    r_   azurez7TestEnumType.test_enum_shadow_base.<locals>.hohum.azure  s    $))++ra   N)ro   rp   rq   r  propertyr  r|   ra   r_   hohumr    s    + , ,ra   r  c                        e Zd ZdZdZdZdZdZy)1TestEnumType.test_enum_shadow_base.<locals>.Colorru   rv   rw   r   r   N)ro   rp   rq   r   r   r   r  r  r|   ra   r_   r   r    s    CEDDEra   r   r   zno attribute .cyan.c                  0     j                   j                  S r   )r   r  r   s   r_   <lambda>z4TestEnumType.test_enum_shadow_base.<locals>.<lambda>  s    ejjoo ra   z	azure red)r  r   rI  lenlistr   r   r   r  r  re   r  rj   r  r   s     @r_   test_enum_shadow_basez"TestEnumType.test_enum_shadow_base  s    	,F 	,	E4 	 	UQ'euyy%++uzz5::W\WbWb&cd~/DF]^+6ra   N)ro   rp   rq   r  r  r|   ra   r_   rw  rw    s    -$7ra   rw  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%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 Zmdl ZndmZodnZpdoZqdp Zrdq Zsdr Ztds Zudt Zvdu Zwdv Zxdw Zydx Zzdy Z{dz Z|d{ Z}d| Z~d} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zerd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)TestEnumc                     G d dt               }|| _         G d dt        t              }|| _         G d dt
              }|| _         G d dt        t              }|| _        d	d
l	m
}  G d d|t              }|| _         G d dt        t               }|| _         G d dt        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)TestEnum.setUp.<locals>.Seasonru   rv   rw   r   N)ro   rp   rq   SPRINGSUMMERAUTUMNWINTERr|   ra   r_   Seasonr    s    FFFFra   r  c                       e Zd ZdZdZdez  Zy)%TestEnum.setUp.<locals>.ReprKonstantsB
@JM!	@rv   Nro   rp   rq   EPITAUr|   ra   r_   ReprKonstantsr        ABb&Cra   r  c                        e Zd ZdZdZdZdZdZy)"TestEnum.setUp.<locals>.ReprGradesr   r   rw   rv   r   Nro   rp   rq   ABCDFr|   ra   r_   
ReprGradesr        AAAAAra   r  c                       e Zd ZdZdZdZdZy)'TestEnum.setUp.<locals>.ReprDirectionaleastwestnorthsouthNro   rp   rq   EASTWESTNORTHSOUTHr|   ra   r_   ReprDirectionalr        DDEEra   r  r   )datec                       e Zd ZdZdZy)#TestEnum.setUp.<locals>.ReprHoliday  ru   ru   r  rw   r   Nro   rp   rq   NEW_YEARIDES_OF_MARCHr|   ra   r_   ReprHolidayr        !H'Mra   r  c                       e Zd ZdZdZdez  Zy)!TestEnum.setUp.<locals>.Konstantsr  r  rv   Nr  r|   ra   r_   	Konstantsr    r  ra   r  c                        e Zd ZdZdZdZdZdZy)TestEnum.setUp.<locals>.Gradesr   r   rw   rv   r   Nr  r|   ra   r_   Gradesr    r  ra   r  c                       e Zd ZdZdZdZdZy)#TestEnum.setUp.<locals>.Directionalr  r  r  r  Nr  r|   ra   r_   Directionalr    r  ra   r  c                       e Zd ZdZdZy)TestEnum.setUp.<locals>.Holidayr  r  Nr  r|   ra   r_   Holidayr    r  ra   r  )r   r  floatr   r  r   r  r  r  datetimer  r  r  r}  r  r  r  )rj   r  r  r  r  r  r  r  r  r  r  s              r_   setUpzTestEnum.setUp  s    	T 	
 	E8 	 +	 	 %	c8 	
  /!	($ 	( '	t 	 #	S$ 	 	#t 	
 '!	(dD 	( ra   c                     G d dt                G fddt              }| j                  t        |      |j                  g       | j                  |j
                  j                  d       d|j                  _        | j                  |j                  j
                  d       | j                  |j                  j                  d   d       y )Nc                   $    e Zd ZdZddZd Zd Zy)*TestEnum.test_set_name.<locals>.DescriptorNc                 <    || S |j                   | j                     S r   __dict__r  rj   r   owner_classs      r_   r   z2TestEnum.test_set_name.<locals>.Descriptor.__get__  "    #K#,,TYY77ra   c                 6    ||j                   | j                  <   y r   r  rj   r   rJ  s      r_   r  z2TestEnum.test_set_name.<locals>.Descriptor.__set__      /4!!$)),ra   c                     || _         y r   r  rj   ownerr  s      r_   __set_name__z7TestEnum.test_set_name.<locals>.Descriptor.__set_name__  	     	ra   r   ro   rp   rq   r  r   r  r  r|   ra   r_   
Descriptorr        D8
5!ra   r  c                   "    e Zd ZdZ W         Zy)&TestEnum.test_set_name.<locals>.AnEnumr  Nro   rp   rq   r;  r  r  s   r_   AnEnumr        C,Cra   r  r  threer  r   rI  r  r;  r  r  r  rj   r  r  s     @r_   test_set_namezTestEnum.test_set_name      
	! 
	!	T 	 	f

|4%0 

1,,U3W=ra   c                 l    G d dt               }| j                  t        |      d       | j                  |j                  d       | j	                  t        |j                  t                      | j                  |j                  d       | j	                  t        |j                  t                      y )Nc                       e Zd ZdZdZy),TestEnum.test_private_names.<locals>.PrivateRadarHoolihanNro   rp   rq   _Private__corporal_Private__major_r|   ra   r_   Privater         J!Hra   r  r   r  r	  r   rI  r  r  r   
isinstancer  rj   r  s     r_   test_private_nameszTestEnum.test_private_names      	"d 	" 	Wq)33W=G$>$>EF11:>G$<$<dCDra   c                 *    G d dt               }|j                  }| j                  t        |      |u t        |             | j	                  |j
                  |j                  |j                  |j                  fd       |j                  }| j	                  |j
                  |j                  |j                  |j                  fd       |j                  }| j	                  |j
                  |j                  |j                  |j                  fd       y )Nc                   $    e Zd ZdZddZdZdZdZy),TestEnum.test_new_with_keywords.<locals>.HuhPLAIN BOLD_ITALIC HIGHLIGHTNc                     t        | j                        }t        j                  | |      }|r||}||_        ||_        ||_        ||_        |S r   )r  __members__r}  r  opencloser   r  r  	docstringr  r  rJ  r&   s         r_   r  z4TestEnum.test_new_with_keywords.<locals>.Huh.__new__  sM    COO,S%0EM E"$!*!&ra   normal***really super important******please ==take notice====r$  NNro   rp   rq   	__order__r  PLAINBOLD_ITALIC	HIGHLIGHTr|   ra   r_   r  r    s    5I	 'ECKBIra   r  r   r  NNru   r   r!  r!  rv   r#  r$  r$  )r   r(  r#  typerI  rJ  r   r  r  r)  r*  rj   r  pbihs        r_   test_new_with_keywordszTestEnum.test_new_with_keywords  s    	C' 	C IIQ3Q0!))QVVQWW5)	 __2::rww9A	 MM!))QVVQWW59	ra   c                 v     G d dt               }| j                  t        |j                        t        u        y )Nc                       e Zd ZdZdZdZdZy)@TestEnum.test_members_is_ordereddict_if_ordered.<locals>.Orderedfirst second thirdbippityboppitybooN)ro   rp   rq   r'  rB  rE  thirdr|   ra   r_   Orderedr6  2  s    ,IEFEra   r<  r   r#  r.  r  r8   )rj   r<  s     r_   &test_members_is_ordereddict_if_orderedz/TestEnum.test_members_is_ordereddict_if_ordered1  s,    	d 	
 	W001[@Ara   c                 v     G d dt               }| j                  t        |j                        t        u        y )Nc                       e Zd ZdZdZy)FTestEnum.test_members_is_ordereddict_if_not_ordered.<locals>.UnorderedthatthoseN)ro   rp   rq   thistheser|   ra   r_   	UnorderedrA  :  s    DEra   rF  r=  )rj   rF  s     r_   *test_members_is_ordereddict_if_not_orderedz3TestEnum.test_members_is_ordereddict_if_not_ordered9  s,    	 	 	Y223{BCra   c                 v    | j                   }| j                   ||j                        |j                  u        y r   )r  r#  r  rj   r  s     r_   test_enum_in_enum_outzTestEnum.test_enum_in_enum_out?  s)    v}}->?ra   c                 h    | j                   }| j                  |j                  j                  d       y Nru   )r  rI  r  rJ  rI  s     r_   test_enum_valuezTestEnum.test_enum_valueC  s%    ,,a0ra   c                 X    | j                  t        j                  j                  d       y Nrv   )rI  r   rz   rJ  r   s    r_   test_intenum_valuezTestEnum.test_intenum_valueG  s    ))//3ra   c           	      n   | j                   }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  |j                  |j
                  |j                  |j                  g|       t        dj                               D ]  \  }}|dz  } ||      }| j                  |t        ||             | j                  |j                  |       | j                  ||       | j                  |j                  |       | j                  ||v        | j                  t        |      |u        | j                  t!        ||             | j                  t#        |      d|z          | j                  t%        |      d|d|d        y )Nr   SPRING SUMMER AUTUMN WINTERru   zSeason.z<Season.: >)r  r  rI  r  r  r  r  r  	enumeratesplitrg   rJ  assertNotEqualr  r#  r.  r  r  repr)rj   r  lstiseasones         r_   	test_enumzTestEnum.test_enumJ  sb   6lS3v;/Va0]]FMM6==&--H#	O ##@#F#F#HI 	IAvFAq	AQ 78QWWa(1%QVVV,OOAK(OODGv-.OOJq&12SVY%78G)/3	ra   c                     t        ddd      }t        ddd      }t        ddd      }| j                  ||u       | j                  ||       | j                  ||       | j                  ||       y )Nru   rv   rM  )r   )r$   r#  rI  rW  )rj   e1e2e3s       r_   test_enum_helperzTestEnum.test_enum_helpera  sk    !Qa !Qa !Q]"%R B#B#ra   c                 ^    G d dt               }| j                  |j                  j                  d       | j                  |j                  j                  d        | j                  |j                  j
                  d        | j                  |j                  j                  |j                         | j                  |j                  j
                  d        | j                  |j                  j                  d        | j                  |j                  j
                  |j                         y )Nc                   N    e Zd ZdZd ZddZ e       Z ee      Z ede      Z	y))TestEnum.test_enum_in_enum.<locals>.LevelzDATA_CHECK DESIGN_CHECK ALERTc                 V    t         j                  |       }t        |       dz   |_        |S rL  )r  r  r  r  )r  rk   rl   r&   s       r_   r  z1TestEnum.test_enum_in_enum.<locals>.Level.__new__o  s$    ,!$SAra   Nc                 f   t        | j                  j                  j                               | _        g | _        | j                  D ]  }|j
                  j                  |         |xr | j                  |j                     xs d | _        |xr | j                  |j                     xs d | _	        y r   )
r  rn   _member_map_valueslower_priority_levelsgreater_priority_levelsr   r  prerequisite	dependent)rj   prereqrm  r&   s       r_   ri   z2TestEnum.test_enum_in_enum.<locals>.Level.__init__t  s    -1$..2M2M2T2T2V-W*/1,"88 @F2299$?@ %+$Jt~~fkk/J$Rd!!*!Mt~~inn/M!UQUra   r%  )
ro   rp   rq   r   r  ri   r$   
DATA_CHECKDESIGN_CHECKALERTr|   ra   r_   Levelre  l  s1    5G
	V J
+Lz*Era   rr  ru   )r   rI  ro  rJ  rl  rm  rp  rq  )rj   rr  s     r_   test_enum_in_enumzTestEnum.test_enum_in_enumj  s    	+D 	+. 	))//3))66=))33T:++88%:J:JK++55t<1148..0@0@Ara   c                 H   | j                   }| j                  |j                  j                  d       | j                  |j                  j                  d       d }d }| j                  t        ||j                  d       | j                  t        ||j                  d       y )Nr  ru   c                     || _         y r   r  r   	new_values     r_   set_namez*TestEnum.test_value_name.<locals>.set_name  s	     CHra   c                     || _         y r   r|  rv  s     r_   	set_valuez+TestEnum.test_value_name.<locals>.set_value  s	    !CIra   inviernorv   )r  rI  r  r  rJ  assertRaisesr  )rj   r  rx  rz  s       r_   test_value_namezTestEnum.test_value_name  sy    ++X6,,a0	!	".(FMM:P.)V]]AFra   c                 N    G d dt               }| j                  t        |d             |`| j	                  t        |d             | j                  t        t        |d       | j                  t        t        |d       | j                  t        t        |j                  d       y )Nc                   "    e Zd ZdZdZdZdZd Zy)0TestEnum.test_attribute_deletion.<locals>.Seasonru   rv   rw   r   c                      y r   r|   )r  s    r_   spamz5TestEnum.test_attribute_deletion.<locals>.Season.spam      ra   N)ro   rp   rq   r  r  r  r  r  r|   ra   r_   r  r    s    FFFFra   r  r  r  DRYr  )	r   r#  hasattrr  r   r|  r  r  r  rI  s     r_   test_attribute_deletionz TestEnum.test_attribute_deletion  s}    	T 	 	/0K01.'68D.'65A.'6==&Ira   c                 V     G d dt               }| j                  t        |             y )Nc                       e Zd Zy)*TestEnum.test_bool_of_class.<locals>.EmptyNr  r|   ra   r_   Emptyr    r  ra   r  r   r#  bool)rj   r  s     r_   test_bool_of_classzTestEnum.test_bool_of_class  s    	D 	U$ra   c                 d     G d dt               }|D ]  }| j                  t        |              y )Nc                       e Zd ZdZdZdZy)+TestEnum.test_bool_of_member.<locals>.Countr   ru   rv   N)ro   rp   rq   zeror  r  r|   ra   r_   Countr        DCCra   r  r  )rj   r  r&   s      r_   test_bool_of_memberzTestEnum.test_bool_of_member  s/    	D 	  	*FOODL)	*ra   c                 h    d }d }| j                  t        |       | j                  t        |       y )Nc                  "     G d dt               } y )Nc                       e Zd ZdZy)FTestEnum.test_invalid_names.<locals>.create_bad_class_1.<locals>.WrongrM  N)ro   rp   rq   mror|   ra   r_   Wrongr    s    ra   r  r   r  s    r_   create_bad_class_1z7TestEnum.test_invalid_names.<locals>.create_bad_class_1  s     ra   c                  "     G d dt               } y )Nc                       e Zd ZdZy)FTestEnum.test_invalid_names.<locals>.create_bad_class_2.<locals>.Wrongrw   N)ro   rp   rq   
_reserved_r|   ra   r_   r  r    s    
ra   r  r   r  s    r_   create_bad_class_2z7TestEnum.test_invalid_names.<locals>.create_bad_class_2  s     ra   r|  r   )rj   r  r  s      r_   test_invalid_nameszTestEnum.test_invalid_names  s0    		 	*&89*&89ra   c                      G d dt               }| j                  |j                         | j                  |j                         y )Nc                       e Zd ZdZdZd ZeZy)!TestEnum.test_bool.<locals>.LogicTFc                 ,    t        | j                        S r   )r  rJ  r   s    r_   __bool__z*TestEnum.test_bool.<locals>.Logic.__bool__  s    DJJ''ra   N)ro   rp   rq   truefalser  __nonzero__r|   ra   r_   Logicr    s    DE("Kra   r  )r   r#  r  r   r  )rj   r  s     r_   	test_boolzTestEnum.test_bool  s2    	#D 	# 	

#%ra   c                    | j                   }| j                  d|v        | j                  |j                  |v        | j                  d|v         |d      }| j                  ||v        | j                  g |v         G d dt              }| j                  |j
                  |v        G d dt              }| j                  |j
                  |v        | j                   ||j
                        |j                  u         G d dt              }| j                  |j                  |v        | j                  d	|v        | j                  d
ddd	|v        | j                  d
d
i|v        y )Nr  rw   c                       e Zd ZdZdZy))TestEnum.test_contains.<locals>.OtherEnumru   rv   Nr  r|   ra   r_   	OtherEnumr        C1Sra   r  c                       e Zd ZdZdZy)+TestEnum.test_contains.<locals>.NumericEnumru   rv   Nr  r|   ra   r_   NumericEnumr    r  ra   r  c                   $    e Zd Zg dZdZddddZy)%TestEnum.test_contains.<locals>.Wierdru   rv   rw   ru   rv   rw   N)ro   rp   rq   rD  rB  rC  r|   ra   r_   Wierdr    s    DDaA&Era   r  r  ru   rv   )	r  r   r#  r  r   r  r   r  rD  )rj   r  valr  r  r  s         r_   test_containszTestEnum.test_contains  s0   V+,/0V$Qiv&v&	 		V34	' 	612{/6==@A	'D 	' 	

e+,	U*+A!*e34!A%(ra   c                 8      j                  t         fd       y )Nc                  4    d j                   j                  v S Ntest)r  r  r   s   r_   r  z/TestEnum.test_member_contains.<locals>.<lambda>  s    Vt{{7I7I-I ra   r|  r   r   s   `r_   test_member_containszTestEnum.test_member_contains  s    )%IJra   c                    | j                   }| j                  dj                  |j                        dj                  t	        |j                                     | j                  dj                  |j                        dj                  t	        |j                                     | j                  dj                  |j                        dj                  t	        |j                                     | j                  dj                  |j                        dj                  t	        |j                                     | j                  dj                  |j                        dj                  t	        |j                                     | j                  dj                  |j                        dj                  t	        |j                                     y N{0}{0:}{0:20}{0:^20}{0:>20}{0:<20})r  rI  formatr  r  rI  s     r_   test_format_enumzTestEnum.test_format_enum  sC   fmm4c&--&89	;&--6 --FMM(:;	=7!V]]);<	>))&--8"))#fmm*<=	?))&--8"))#fmm*<=	?))&--8"))#fmm*<=	?ra   c                      G d dt         t              }| j                  t        |j                        d       | j                  dj                  |j                        d       y )Nc                       e Zd ZdZdZd Zy).TestEnum.test_custom_format.<locals>.TestFloatg      ?g       @c                      y)NTestFloat success!r|   )rj   specs     r_   
__format__z9TestEnum.test_custom_format.<locals>.TestFloat.__format__  s    +ra   N)ro   rp   rq   r  r  r  r|   ra   r_   	TestFloatr    s    CC,ra   r  zTestFloat.oner  r  )r  r   rI  r  r  r  )rj   r  s     r_   test_custom_formatzTestEnum.test_custom_format  sI    	,t 	,
 	Y]]+_=imm46JKra   c                      G d dt         t              }| j                  t        |j                        d       | j                  dj                  |j                        d       y )Nc                       e Zd ZdZdZd Zy)5TestEnum.test_format_with_custom_str.<locals>.TestIntru   rv   c                      | j                   dz  S Nrw   r  r   s    r_   r  z=TestEnum.test_format_with_custom_str.<locals>.TestInt.__str__  s    yy1}$ra   N)ro   rp   rq   r  r  r  r|   ra   r_   TestIntr     s    CC%ra   r  	twotwotwor  )r}  r   rI  r  r  r  )rj   r  s     r_   test_format_with_custom_strz$TestEnum.test_format_with_custom_str  sH    	%c4 	%
 	W[[);7gkk2K@ra   c                 v    | j                  |j                  |      |j                  t        |                   y r   )rI  r  r  rj   r  r&   s      r_   assertFormatIsNamezTestEnum.assertFormatIsName  s(    V,dkk#f+.FGra   c                 l   | j                   }| j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         y r  )r  r  r  )rj   r  s     r_   test_format_enum_datezTestEnum.test_format_enum_date  s    ,,w'<'<=(=(=>'*?*?@	7+@+@A	7+@+@A	7+@+@Ara   c                 l   | j                   }| j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         y r  )r  r  r  )rj   r  s     r_   test_format_enum_floatzTestEnum.test_format_enum_float  s    NN	y}}5	6)--8	9==9	9==9	9==9ra   c                 l   | j                   }| j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         y r  )r  r  r  )rj   r  s     r_   test_format_enum_intzTestEnum.test_format_enum_int  s    vxx01&((3	6884	6884	6884ra   c                 l   | j                   }| j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         y r  )r  r  r  )rj   r  s     r_   test_format_enum_strzTestEnum.test_format_enum_str&  s    &&{'7'78(8(89+*:*:;	;+;+;<	;+;+;<	;+;+;<ra   c                 x    | j                  |j                  |      |j                  |j                               y r   )rI  r  rJ  r  s      r_   assertFormatIsValuezTestEnum.assertFormatIsValue/  s(    V,dkk&,,.GHra   c                    | j                   }| j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         y )	Nr  r  r  r  r  r  z	{0:%Y %m}z{0:%Y %m %M:00})r  r  r  )rj   r  s     r_   test_format_reprenum_datez"TestEnum.test_format_reprenum_date2  s    &&  (A(AB  )B)BC  ;+D+DE  K,E,EF  K,E,EF  K,E,EF  k.G.GH  !2K4M4MNra   c                    | j                   }| j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d	|j                         y )
Nr  r  r  r  r  r  z{0:n}z{0:5.2}z{0:f})r  r  r  )rj   r  s     r_   test_format_reprenum_floatz#TestEnum.test_format_reprenum_float=  s    **  (9(9:  ):):;  =+<+<=  M,=,=>  M,=,=>  M,=,=>  -*;*;<  M,=,=>  -*;*;<ra   c                    | j                   }| j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d	|j                         y )
Nr  r  r  r  r  r  z{0:+}z{0:08X}z{0:b})r  r  r  )rj   r  s     r_   test_format_reprenum_intz!TestEnum.test_format_reprenum_intI  s    __
  
5  6  :<<8  JLL9  JLL9  JLL9  *,,7  JLL9  *,,7ra   c                 l   | j                   }| j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         y r  )r  r  r  )rj   r  s     r_   test_format_reprenum_strz!TestEnum.test_format_reprenum_strU  s    ..  (<(<=  )=)=>  ?+?+?@  O,@,@A  O,@,@A  O,@,@Ara   c                     | j                   }i }d||j                  <   d||j                  <   d||j                  <   d||j                  <   | j                  ||j                     d       y )N1225031507041031)r  r  r  r  r  rI  )rj   r  datess      r_   	test_hashzTestEnum.test_hash^  sa    %fmm%fmm%fmm%fmmv}}-v6ra   c           
      @    G d dt               }t        |      }| j                  ||j                  |j                  |j
                  |j                  g       | j                  |j                  |j
                  u        | j                  |j                  j                  d       | j                  |j
                  j                  d       | j                   |d      |j
                  u        | j                   |d      |j                  u        | j                  |j                  j                  d       | j                  t        |j                  j                         D cg c]  \  }}|j                  |k7  s| c}}      t        ddg             y c c}}w )Nc                   (    e Zd ZdZdZdZdxZZdZdZ	y)-TestEnum.test_enum_duplicates.<locals>.SeasonrR  ru   rv   rw   r   N)
ro   rp   rq   r'  r  r  r  FALLr  ANOTHER_SPRINGr|   ra   r_   r  r  h  s%    5IFFFTFNra   r  rw   ru   r  r  r  )r   r  rI  r  r  r  r  r#  r  rJ  r  setr  items)rj   r  rY  kvs        r_   test_enum_duplicateszTestEnum.test_enum_duplicatesg  s3   	T 	 6l]]FMM]]FMM	
 	v}}45**A.,,a0q	V]]23q	V]]23))84&"4"4":":"<L31Q!QLMV-./	Ls   %F=Fc                 h    G d dt               }| j                  t        |      |j                  |j                  g       | j                  t        |j                        |u        | j                  |j                  j                  d       | j                  |j                  j                  d       y )Nc                       e Zd ZdZdZdZy)/TestEnum.test_enum_with_value_name.<locals>.Huhz
name valueru   rv   N)ro   rp   rq   r   r  rJ  r|   ra   r_   r  r    s    "GDEra   r  r  ru   )r   rI  r  r  rJ  r#  r.  )rj   r  s     r_   test_enum_with_value_namez"TestEnum.test_enum_with_value_name  s    	$ 	 	IXXsyy!	 	SXX#-./+ra   c                 |     G d dt         t              }| j                  |j                  |j                  k         y )Nc                       e Zd ZdZdez  Zy)/TestEnum.test_intenum_from_scratch.<locals>.phyrw   rv   Nro   rp   rq   pitaur|   ra   r_   phyr	        Bb&Cra   r  r}  r   r#  r  r  rj   r  s     r_   test_intenum_from_scratchz"TestEnum.test_intenum_from_scratch  s+    	#t 	 	()ra   c                      G d dt         t              } G d d|      }| j                  |j                  |j                  k         y )Nc                       e Zd Zy)0TestEnum.test_intenum_inherited.<locals>.IntEnumNr  r|   ra   r_   r   r    r  ra   r   c                       e Zd ZdZdez  Zy),TestEnum.test_intenum_inherited.<locals>.phyrw   rv   Nr
  r|   ra   r_   r  r    r  ra   r  r  )rj   r   r  s      r_   test_intenum_inheritedzTestEnum.test_intenum_inherited  s7    	c4 		' 	 	()ra   c                 |     G d dt         t              }| j                  |j                  |j                  k         y )Nc                       e Zd ZdZdez  Zy)1TestEnum.test_floatenum_from_scratch.<locals>.phyr  rv   Nr
  r|   ra   r_   r  r        Bb&Cra   r  r  r   r#  r  r  r  s     r_   test_floatenum_from_scratchz$TestEnum.test_floatenum_from_scratch  s+    	% 	 	()ra   c                      G d dt         t              } G d d|      }| j                  |j                  |j                  k         y )Nc                       e Zd Zy)4TestEnum.test_floatenum_inherited.<locals>.FloatEnumNr  r|   ra   r_   	FloatEnumr     r  ra   r!  c                       e Zd ZdZdez  Zy).TestEnum.test_floatenum_inherited.<locals>.phyr  rv   Nr
  r|   ra   r_   r  r#    r  ra   r  r  )rj   r!  r  s      r_   test_floatenum_inheritedz!TestEnum.test_floatenum_inherited  s7    	t 		) 	 	()ra   c                 |     G d dt         t              }| j                  |j                  |j                  k         y )Nc                       e Zd ZdZdZy)/TestEnum.test_strenum_from_scratch.<locals>.phyPiTauNr
  r|   ra   r_   r  r'        BCra   r  )r  r   r#  r  r  r  s     r_   test_strenum_from_scratchz"TestEnum.test_strenum_from_scratch  s+    	#t 	 	()ra   c                     G d dt               }| j                  g d|j                     d       | j                  t        |j                        D cg c]  }| c}g d       t        |      }| j                  t        |      t        |             | j                  t        |      d       d}|j                         }t        |      D ]  \  }}|dz  } ||      }| j                  ||       | j                  t        |      |       | j                  |j                  |       | j                  ||v        | j                  |j                  |      dz   |       | j                  d	|cxk  xr d
k  nc        | j                  t        |      |u        | j                  t        |t                     | j                  t        |t                      y c c}w )Nc                   (    e Zd ZdZdZdZdZdZdZdZ	y)	&TestEnum.test_intenum.<locals>.WeekDayru   rv   rw   r   r   r  rS  N)
ro   rp   rq   SUNDAYMONDAYTUESDAY	WEDNESDAYTHURSDAYFRIDAYSATURDAYr|   ra   r_   WeekDayr.    s%    FFGIHFHra   r6  )r)  rW  cr7  r   ru   rv   rS  8SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAYru   r   r.  )r   rI  r0  r   r1  r  r  rV  rU  r}  r  r#  indexr.  r  r   )rj   r6  rZ  rY  r   weekdayr\  s          r_   test_intenumzTestEnum.test_intenum  st   	g 	 	8#>U7??%;<!<iH7mS3w<0Wq)K#F+ 	1JAwFA
AQ"SVQ'QVVW-OOAL)SYYq\!^Q/OOAIAI&OODGw./OOJq#./OOJq$/0	1 =s   	Gc                 Z    G d dt               }| j                  |j                  |j                  u        | j	                   |d      j
                  d       | j	                  |j                  j                         D cg c]  \  }}|j
                  |k7  r| c}}dg       y c c}}w )Nc                   0    e Zd ZdZdZdZdxZZdZdZ	dZ
dZy	)
1TestEnum.test_intenum_duplicates.<locals>.WeekDayr9  ru   rv   rw   r   r   r  rS  N)ro   rp   rq   r'  r/  r0  r1  TEUSDAYr2  r3  r4  r5  r|   ra   r_   r6  r?    s/    RIFF !!GgIHFHra   r6  rw   r1  r@  )r   r#  r@  r1  rI  r  r  r  )rj   r6  r   r  s       r_   test_intenum_duplicatesz TestEnum.test_intenum_duplicates  s    	g 	 	7??:;)4w':':'@'@'B  !66Q;   "+	0  s   B'
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  hexr   r{   rJ  assertIsfromhexr|  r   )rj   r2  s     r_   test_floatenum_fromhexzTestEnum.test_floatenum_fromhex  s    IIl&&,,-l**1-|/?/?@IIl&&,,t34z* 	$  #	$ 	$ 	$s   &CCc                     t        t        t              rt        t        | j                  t        j
                         t        | j                  t               y r   )r  rt   r   r   r#  rz   r   s    r_   test_pickle_enumzTestEnum.test_pickle_enum  s1    gy)Mdoow}}=doow7ra   c                     t        t        t              rt        t        | j                  t        j
                         t        | j                  t               y r   )r  r   r   r   r#  rz   r   s    r_   test_pickle_intzTestEnum.test_pickle_int  s4    j),dooz/?/?@dooz:ra   c                     t        t        t              rt        t        | j                  t        j
                         t        | j                  t               y r   )r  r   r   r   r#  rz   r   s    r_   test_pickle_floatzTestEnum.test_pickle_float  s4    lI.doo|/A/ABdoo|<ra   c                     t        t        t              rt        t        | j                  t        j
                         t        | j                  t               y r   )r  r   r   r   r#  himr   s    r_   test_pickle_enum_functionz"TestEnum.test_pickle_enum_function  s1    fi(Ldoovzz:doov6ra   c                     t        t        t              rt        t        | j                  t        j
                         t        | j                  t               y r   )r  r   r   r   r#  whor   s    r_   %test_pickle_enum_function_with_modulez.TestEnum.test_pickle_enum_function_with_module  s1    h	*Ndoox||<doox8ra   c                      G d dt               }t        |_        t        t              D ]-  }| j                  |j                  j                  |      d       / y )Nc                       e Zd ZdZdZy)6TestEnum.test_pickle_by_name.<locals>.ReplaceGlobalIntru   rv   N)ro   rp   rq   r;  r<  r|   ra   r_   ReplaceGlobalIntrU    r  ra   rV  r<  )r   r   __reduce_ex__r   r=   rI  r<  )rj   rV  protos      r_   test_pickle_by_namezTestEnum.test_pickle_by_name  sR    	w 	 *<&+, 	OE-11??FN	Ora   c                     t        dd      }t        j                  |       |t               d<   t	        | j
                  t        |j                         t	        | j
                  t        |       y )N	BadPicklezdill sweet bread-n-butter)	r   rX   make_class_unpicklableglobalsr   r|  r   dillr<   )rj   r[  s     r_   test_exploding_picklezTestEnum.test_exploding_pickle
  sQ    &AB	$$Y/!*	+d//INNKd//	Jra   c                 d     G d dt         t              }| j                  |j                  d       y )Nc                       e Zd ZdZdZdZy)-TestEnum.test_string_enum.<locals>.SkillLevelz'what is the sound of one hand clapping?z#why did the chicken cross the road?knock, knock!N)ro   rp   rq   master
journeyman
apprenticer|   ra   r_   
SkillLevelrb    s    >F>J(Jra   rg  rc  )r  r   rI  rf  )rj   rg  s     r_   test_string_enumzTestEnum.test_string_enum  s(    	)d 	) 	..@ra   c                      G d dt               }| j                   |d      |j                  u        | j                  t        |d      |j                  u        | j                  |d   |j
                  u        y )Nc                       e Zd ZdZdZdZdZy)-TestEnum.test_getattr_getitem.<locals>.Periodru   rv   rw   r   N)ro   rp   rq   morningnooneveningnightr|   ra   r_   Periodrk    s    GDGEra   rp  rv   ro  rl  )r   r#  rm  rg   ro  rl  rj   rp  s     r_   test_getattr_getitemzTestEnum.test_getattr_getitem  s_    	T 	
 	q	V[[010FLL@Ay)V^^;<ra   c                 R    | j                   }| j                  t        |d             y )N__hash__)r  r#  rg   rI  s     r_   test_getattr_dunderzTestEnum.test_getattr_dunder"  s    
34ra   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dZy)-TestEnum.test_iteration_order.<locals>.SeasonzSUMMER WINTER AUTUMN SPRINGrv   r   rw   ru   N)ro   rp   rq   r'  r  r  r  r  r|   ra   r_   r  rx  '  s    5IFFFFra   r  )r   rI  r  r  r  r  r  rI  s     r_   test_iteration_orderzTestEnum.test_iteration_order&  sA    	T 	 	Vv}}fmmL	ra   c                    | j                  t        t        | j                              | j                  j                  | j                  j
                  | j                  j                  | j                  j                  g       y r   )rI  r  reversedr  r  r  r  r  r   s    r_   test_iteration_order_reversedz&TestEnum.test_iteration_order_reversed2  sX    Xdkk*+##T[[%7%79K9K##%	ra   c                      G d dt               }| j                  t        |      |j                  |j                  |j
                  |j                  g       y )Nc                   T    e Zd Z edd      Z edd      Z edd      Z edd      Zy	)
FTestEnum.test_iteration_order_with_unorderable_values.<locals>.ComplexrS  rM  gQ	@rv   ru   rQ   irR  N)ro   rp   rq   complexr)  rW  r7  dr|   ra   r_   Complexr  :  s0    1Aa A2AR Ara   r  )r   rI  r  r)  rW  r7  r  )rj   r  s     r_   ,test_iteration_order_with_unorderable_valuesz5TestEnum.test_iteration_order_with_unorderable_values9  sA    	!d 	!
 	WGIIwyy'))<	ra   c                 x   t        dd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  |j                  |j
                  |j                  g|       t        dj                               D ]  \  }}|dz  } ||      }| j                  t        |j                        |       | j                  ||       | j                  |j                  |       | j                  ||v        | j                  t        |      |u         y NSummerMonthjune july augustrw   ru   r   r  rI  r  junejulyaugustrU  rV  r}  rJ  rW  r  r#  r.  rj   r  rY  rZ  monthr\  s         r_    test_programatic_function_stringz)TestEnum.test_programatic_function_stringD  s   =*<=;S3{#34[)1k:!!;#3#3[5G5GH	 ""4":":"<= 	4HAuFAAAS\1-1%QVVU+OOA,-OODG{23	4ra   c                 t   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                  ||v        | j                  t        |      |u         y )Nr  r  rT  r   rw   r  r  s         r_   +test_programatic_function_string_with_startz4TestEnum.test_programatic_function_string_with_startV  s	   =*<BG;S3{#34[)1k:!!;#3#3[5G5GH	 ""4":":"<bA 	4HAuAAS\1-1%QVVU+OOA,-OODG{23	4ra   c                 |   t        dg d      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  |j                  |j
                  |j                  g|       t        dj                               D ]  \  }}|dz  } ||      }| j                  t        |j                        |       | j                  ||       | j                  |j                  |       | j                  ||v        | j                  t        |      |u         y )Nr  r  r  r  rw   r  ru   r  r  s         r_   %test_programatic_function_string_listz.TestEnum.test_programatic_function_string_listg  s   =*DE;S3{#34[)1k:!!;#3#3[5G5GH	 ""4":":"<= 	4HAuFAAAS\1-1%QVVU+OOA,-OODG{23	4ra   c                 x   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                  ||v        | j                  t        |      |u         y )Nr  r  rN  r  rw   r  r  r  s         r_   0test_programatic_function_string_list_with_startz9TestEnum.test_programatic_function_string_list_with_starty  s	   =*DBO;S3{#34[)1k:!!;#3#3[5G5GH	 ""4":":"<bA 	4HAuAAS\1-1%QVVU+OOA,-OODG{23	4ra   c                 x   t        dd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  |j                  |j
                  |j                  g|       t        dj                               D ]  \  }}|dz  } ||      }| j                  t        |j                        |       | j                  ||       | j                  |j                  |       | j                  ||v        | j                  t        |      |u         y Nr  ))r  ru   )r  rv   )r  rw   rw   r  ru   r  r  s         r_   "test_programatic_function_iterablez+TestEnum.test_programatic_function_iterable  s   9 ;S3{#34[)1k:!!;#3#3[5G5GH	 ""4":":"<= 	4HAuFAAAS\1-1%QVVU+OOA,-OODG{23	4ra   c                    t        dt        d            }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       t
        r3| j                  |j                  |j                  |j                  g|       t        dj                               D ]  \  }}|dz  } ||      }| j                  t        |j                        |       | j                  ||       | j                  |j                  |       | j                  ||v        | j                  t!        |      |u         y r  )r   dictr  rI  r  r.   r  r  r  rU  rV  r}  rJ  rW  r  r#  r.  r  s         r_   #test_programatic_function_from_dictz,TestEnum.test_programatic_function_from_dict  s   >? ;S3{#34[)1k: %%{'7'79K9KL ""4":":"<= 	4HAuFAAAS\1-1%QVVU+OOA,-OODG{23	4ra   c                 :   t        ddt              }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       | j                  |j
                  |j                  |j                  g|       t        dj                               D ]o  \  }}|dz  } ||      }| j                  ||       | j                  |j                  |       | j                  ||v        | j                  t        |      |u        q y Nr  r  r.  rw   ru   r   r}  r  rI  r  r  r  r  rU  rV  r  r#  r.  r  s         r_   test_programatic_function_typez'TestEnum.test_programatic_function_type  s    =*<3G;S3{#34[)1k:!!;#3#3[5G5GH	 ""4":":"<= 	4HAuFAAAQ"QVVU+OOA,-OODG{23	4ra   c                 4   t        ddt        d      }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       | j                  |j
                  |j                  |j                  g|       t        dj                         d      D ]j  \  }} ||      }| j                  ||       | j                  |j                  |       | j                  ||v        | j                  t        |      |u        l y )Nr  r     )r.  r   rw   r  r  s         r_   )test_programatic_function_type_with_startz2TestEnum.test_programatic_function_type_with_start  s    =*<3bQ;S3{#34[)1k:!!;#3#3[5G5GH	 ""4":":"<bA 	4HAuAAQ"QVVU+OOA,-OODG{23	4ra   c                 .   t        dd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  |j                  |j
                  |j                  g|       t        dj                               D ]o  \  }}|dz  } ||      }| j                  ||       | j                  |j                  |       | j                  ||v        | j                  t        |      |u        q y r  r   r  rI  r  r  r  r  rU  rV  r  r#  r.  r  s         r_   ,test_programatic_function_type_from_subclassz5TestEnum.test_programatic_function_type_from_subclass  s    m-?@;S3{#34[)1k:!!;#3#3[5G5GH	 ""4":":"<= 	4HAuFAAAQ"QVVU+OOA,-OODG{23	4ra   c                 *   t        ddd      }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  |j                  |j
                  |j                  g|       t        dj                         d      D ]j  \  }} ||      }| j                  ||       | j                  |j                  |       | j                  ||v        | j                  t        |      |u        l y )Nr  r  (   r  rw   r  r  s         r_   7test_programatic_function_type_from_subclass_with_startz@TestEnum.test_programatic_function_type_from_subclass_with_start  s    m-?rJ;S3{#34[)1k:!!;#3#3[5G5GH	 ""4":":"<bA 	4HAuAAQ"QVVU+OOA,-OODG{23	4ra   c                    t        dt        d            }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       | j                  |j
                  |j                  |j                  g|       t        t        d      j                               D ]  \  }}|dz  } ||      }| j                  t        |j                        |       | j                  ||       | j                  |j                  |       | j                  ||v        | j                  t        |      |u         y r  r   r+   r  rI  r  r  r  r  rU  rV  r}  rJ  rW  r  r#  r.  r  s         r_   !test_programatic_function_unicodez*TestEnum.test_programatic_function_unicode  s   ='2D*EF;S3{#34[)1k:!!;#3#3[5G5GH	 "'*<"="C"C"EF 	4HAuFAAAS\1-1%QVVU+OOA,-OODG{23	4ra   c                    t        dt        d      t        d      t        d      g      }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       | j                  |j
                  |j                  |j                  g|       t        t        d      j                               D ]  \  }}|dz  } ||      }| j                  t        |j                        |       | j                  ||       | j                  |j                  |       | j                  ||v        | j                  t        |      |u         y )Nr  r  r  r  rw   r  ru   r  r  s         r_   &test_programatic_function_unicode_listz/TestEnum.test_programatic_function_unicode_list	  s'   =76?GFOWU]M^*_`;S3{#34[)1k:!!;#3#3[5G5GH	 "'*<"="C"C"EF 	4HAuFAAAS\1-1%QVVU+OOA,-OODG{23	4ra   c                    t        dt        d      dft        d      dft        d      dff      }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       | j                  |j
                  |j                  |j                  g|       t        t        d      j                               D ]  \  }}|dz  } ||      }| j                  t        |j                        |       | j                  ||       | j                  |j                  |       | j                  ||v        | j                  t        |      |u         y 	Nr  r  ru   r  rv   r  rw   r  r  r  s         r_   *test_programatic_function_unicode_iterablez3TestEnum.test_programatic_function_unicode_iterable  s<   &/1%';gh>OQR=ST ;S3{#34[)1k:!!;#3#3[5G5GH	 "'*<"="C"C"EF 	4HAuFAAAS\1-1%QVVU+OOA,-OODG{23	4ra   c           
         t        dt        t        d      dft        d      dft        d      dff            }t        |      }| j	                  t        |      t        |             | j	                  t        |      d|       t        r3| j	                  |j                  |j                  |j                  g|       t        t        d      j                               D ]  \  }}|dz  } ||      }| j	                  t        |j                        |       | j                  ||       | j	                  |j                  |       | j!                  ||v        | j!                  t#        |      |u         y r  )r   r  r+   r  rI  r  r.   r  r  r  rU  rV  r}  rJ  rW  r  r#  r.  r  s         r_   +test_programatic_function_from_unicode_dictz4TestEnum.test_programatic_function_from_unicode_dict0  sD   wv*WV_a,@78CTVWBXYZ ;S3{#34[)1k: %%{'7'79K9KL "'*<"="C"C"EF 	4HAuFAAAS\1-1%QVVU+OOA,-OODG{23	4ra   c                 ^   t        dt        d      t              }t        |      }| j	                  t        |      t        |             | j	                  t        |      d|       | j	                  |j                  |j                  |j                  g|       t        t        d      j                               D ]o  \  }}|dz  } ||      }| j	                  ||       | j	                  |j                  |       | j                  ||v        | j                  t        |      |u        q y r  )r   r+   r}  r  rI  r  r  r  r  rU  rV  r  r#  r.  r  s         r_   &test_programatic_function_unicode_typez/TestEnum.test_programatic_function_unicode_typeF  s   ='2D*ECP;S3{#34[)1k:!!;#3#3[5G5GH	 "'*<"="C"C"EF 	4HAuFAAAQ"QVVU+OOA,-OODG{23	4ra   c                 R   t        dt        d            }t        |      }| j                  t	        |      t	        |             | j                  t	        |      d|       | j                  |j
                  |j                  |j                  g|       t        t        d      j                               D ]o  \  }}|dz  } ||      }| j                  ||       | j                  |j                  |       | j                  ||v        | j                  t        |      |u        q y r  )r   r+   r  rI  r  r  r  r  rU  rV  r  r#  r.  r  s         r_   4test_programatic_function_unicode_type_from_subclassz=TestEnum.test_programatic_function_unicode_type_from_subclassW  s    mW5G-HI;S3{#34[)1k:!!;#3#3[5G5GH	 "'*<"="C"C"EF 	4HAuFAAAQ"QVVU+OOA,-OODG{23	4ra   c           	      <   t         rt        d      dj                  d      f}nd}t        |      D ]h  \  }}t         r+|dk(  r&| j	                  t
        t        |t        d             8t        |t        d            }t        |      }| j                  t        |      t        |             | j                  t        |      d|       | j                  |j                  |j                  |j                  g|       t        t        d      j                               D ]y  \  }}|dz  } ||      }| j                  |j                  |       | j                  |j                  |       | j!                  ||v        | j!                  t#        |      |u        { k y )Nr     SümmérMönthlatin1)r  r  ru   r  rw   )r.   r+   decoderU  r|  r   r   r  rI  r  r  r  r  rV  rJ  r  r#  r.  )rj   class_namesrZ  
class_namer  rY  r  r\  s           r_   (test_programmatic_function_unicode_classz1TestEnum.test_programmatic_function_unicode_classh  sc   !-02H2O2OPX2YYK?K&{3 	<MAzqAv!!)T:wGY?Z[":w7I/JK;'  S3{+;<  [!11kB  $));+;+;[=O=OP !*'2D*E*K*K*M N <HAuFA#AA$$QWWa0$$QVVU3OOA$45OODG{$:;<	<ra   c                 p   t        t        t              rt        | j                  t        j                  d       | j                  t        j                  t        d             | j                  t        j                  t        t        d      u        t        | j
                  t        j                         y )Nr   r   )r  r   r   rI  r   r#  rg   r   r   s    r_   test_subclassingzTestEnum.test_subclassing  sl    dI&J$67		4(:#;<		WT6%::;dootyy9ra   c                 6    d }| j                  t        |       y )Nc                  8     G d dt               }  G d d|       }y )Nc                       e Zd ZdZdZdZy)=TestEnum.test_extending.<locals>.bad_extension.<locals>.Colorru   rv   rw   Nro   rp   rq   r   r   r   r|   ra   r_   r   r        ra   r   c                       e Zd ZdZdZdZy)ATestEnum.test_extending.<locals>.bad_extension.<locals>.MoreColorr   r   r  Nro   rp   rq   r  magentayellowr|   ra   r_   	MoreColorr        ra   r  r   )r   r  s     r_   bad_extensionz.TestEnum.test_extending.<locals>.bad_extension  s     E ra   r  rj   r  s     r_   test_extendingzTestEnum.test_extending  s    	 	)]3ra   c                      G d dt               }| j                  t        |j                        |u        | j	                  |j
                  j                         d       y )Nc                       e Zd ZdZdZd Zy)/TestEnum.test_exclude_methods.<locals>.whateverrB  rC  c                      d| j                   z  S )Nz
no, not %sr|  r   s    r_   reallyz6TestEnum.test_exclude_methods.<locals>.whatever.really  s    #djj00ra   N)ro   rp   rq   rD  rE  r  r|   ra   r_   whateverr    s    DE1ra   r  zno, not that)r   r   r.  r  rI  rD  )rj   r  s     r_   test_exclude_methodszTestEnum.test_exclude_methods  sI    	1t 	1
 	hoo.(:;--/@ra   c                 6    d }| j                  t        |       y )Nc                  ,     G d dt         t              } y )Nc                       e Zd ZdZy)KTestEnum.test_wrong_inheritance_order.<locals>.wrong_inherit.<locals>.Wrongzerror before this pointN)ro   rp   rq   NotHerer|   ra   r_   r  r    s    3ra   r  )r   r  r  s    r_   wrong_inheritz<TestEnum.test_wrong_inheritance_order.<locals>.wrong_inherit  s    4c 4ra   r  )rj   r  s     r_   test_wrong_inheritance_orderz%TestEnum.test_wrong_inheritance_order  s    	4 	)]3ra   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)2TestEnum.test_intenum_transitivity.<locals>.numberru   rv   rw   N)ro   rp   rq   r  r  r   r|   ra   r_   numberr    s    CCEra   r  c                       e Zd ZdZdZdZy)2TestEnum.test_intenum_transitivity.<locals>.numeroru   rv   rw   N)ro   rp   rq   unodostresr|   ra   r_   numeror    s    CCDra   r  )r   rI  r  r  r  r  r   r  )rj   r  r  s      r_   test_intenum_transitivityz"TestEnum.test_intenum_transitivity  sd    	W 		W 	 	VZZ0VZZ0v{{3ra   c                 0    G d dt               }| j                  |j                  j                  t        u        | j                  |j                  t        u         G d dt
        t              }| j                  |j                  j                  t
        u        | j                  |j                  t
        u         G d dt              }| j                  |j                  j                  t        u        | j                  |j                  t        u        y )Nc                       e Zd ZdZdZy)+TestEnum.test_introspection.<locals>.Numberd      Nr  r|   ra   r_   Numberr    s    CCra   r  c                       e Zd ZdZdZdZy)+TestEnum.test_introspection.<locals>.StringsoftroughhardN)ro   rp   rq   yarnropewirer|   ra   r_   Stringr    s    DDDra   r  c                       e Zd ZdZdZy)*TestEnum.test_introspection.<locals>.Plainwhiteru   N)ro   rp   rq   vanillar  r|   ra   r_   Plainr    s    GCra   r  )
r   r#  r  r  r}  r  r   r  r  r  )rj   r  r  r  s       r_   test_introspectionzTestEnum.test_introspection  s    	W 	 	

00C78,,34	S$ 	 	11S89,,34	D 	 	33v=>++v56ra   c                      G d dt               } G d dt               }| j                  t        ||j                         y )Nc                       e Zd ZdZdZy)4TestEnum.test_wrong_enum_in_call.<locals>.Monochromer   ru   Nro   rp   rq   r  r  r|   ra   r_   
Monochromer        EEra   r  c                       e Zd ZdZdZy)0TestEnum.test_wrong_enum_in_call.<locals>.Genderr   ru   Nro   rp   rq   malefemaler|   ra   r_   Genderr        DFra   r  )r   r|  r   r	  rj   r  r  s      r_   test_wrong_enum_in_callz TestEnum.test_wrong_enum_in_call  s2    	 		T 	 	*j&++>ra   c                      G d dt               } G d dt              }| j                  t        ||j                         y )Nc                       e Zd ZdZdZy):TestEnum.test_wrong_enum_in_mixed_call.<locals>.Monochromer   ru   Nr  r|   ra   r_   r  r    r  ra   r  c                       e Zd ZdZdZy)6TestEnum.test_wrong_enum_in_mixed_call.<locals>.Genderr   ru   Nr  r|   ra   r_   r  r    r  ra   r  )r   r   r|  r   r	  r  s      r_   test_wrong_enum_in_mixed_callz&TestEnum.test_wrong_enum_in_mixed_call  s2    	 		T 	 	*j&++>ra   c                      G d dt               } G d dt               }| j                   ||j                        |j                  u        y )Nc                       e Zd ZdZdZy)6TestEnum.test_mixed_enum_in_call_1.<locals>.Monochromer   ru   Nr  r|   ra   r_   r  r    r  ra   r  c                       e Zd ZdZdZy)2TestEnum.test_mixed_enum_in_call_1.<locals>.Genderr   ru   Nr  r|   ra   r_   r  r    r  ra   r  )r   r#  r
  r  r  s      r_   test_mixed_enum_in_call_1z"TestEnum.test_mixed_enum_in_call_1  s<    	 		W 	 	
6==1Z5E5EEFra   c                      G d dt               } G d dt              }| j                   ||j                        |j                  u        y )Nc                       e Zd ZdZdZy)6TestEnum.test_mixed_enum_in_call_2.<locals>.Monochromer   ru   Nr  r|   ra   r_   r  r    r  ra   r  c                       e Zd ZdZdZy)2TestEnum.test_mixed_enum_in_call_2.<locals>.Genderr   ru   Nr  r|   ra   r_   r  r    r  ra   r  )r   r   r#  r	  r  r  s      r_   test_mixed_enum_in_call_2z"TestEnum.test_mixed_enum_in_call_2  s<    	 		W 	 	
6;;/:3C3CCDra   c                      G d dt               } G d d|      }| j                  t        |j                        d       y )Nc                       e Zd Zd Zy)*TestEnum.test_flufl_enum.<locals>.Fluflnumc                 ,    t        | j                        S r   )r}  rJ  r   s    r_   __int__z2TestEnum.test_flufl_enum.<locals>.Fluflnum.__int__  s    4::&ra   N)ro   rp   rq   r%  r|   ra   r_   Fluflnumr#        'ra   r&  c                       e Zd ZdZdZdZy)0TestEnum.test_flufl_enum.<locals>.MailManOptionsru   rv   rw   N)ro   rp   rq   option1option2option3r|   ra   r_   MailManOptionsr)    s    GGGra   r-  ru   )r   rI  r}  r*  )rj   r&  r-  s      r_   test_flufl_enumzTestEnum.test_flufl_enum  s7    	't 	'	X 	 	^334a8ra   c                      G d dt               }| j                  t        |d       | j                  t        |j                  d       y )Nc                       e Zd ZdZdZdZy)0TestEnum.test_no_such_enum_member.<locals>.Colorru   rv   rw   Nr  r|   ra   r_   r   r1        CEDra   r   r   
chartreuse)r   r|  r   KeyError__getitem__r   s     r_   test_no_such_enum_memberz!TestEnum.test_no_such_enum_member  s:    	D 	 	*eQ/(E$5$5|Dra   c                 l     G d dt               }| j                  t        |j                        d       y )Nc                       e Zd ZdZdZdZd Zy)%TestEnum.test_new_repr.<locals>.Colorru   rv   rw   c                      d| j                   z  S )Nz!don't you just love shades of %s?r  r   s    r_   __repr__z.TestEnum.test_new_repr.<locals>.Color.__repr__  s    :TYYFFra   N)ro   rp   rq   r   r   r   r;  r|   ra   r_   r   r9    s    CEDGra   r   z#don't you just love shades of blue?)r   rI  rX  r   r   s     r_   test_new_reprzTestEnum.test_new_repr  s/    	GD 	G 	UZZ 5	ra   c                      G d dt               } G d dt        |      }| j                  t        |j                        d       y )Nc                       e Zd Zd Zy),TestEnum.test_inherited_repr.<locals>.MyEnumc                      d| j                   z  S )NzMy name is %s.r  r   s    r_   r;  z5TestEnum.test_inherited_repr.<locals>.MyEnum.__repr__  s    '$))33ra   N)ro   rp   rq   r;  r|   ra   r_   MyEnumr?        4ra   rA  c                       e Zd ZdZdZdZy)/TestEnum.test_inherited_repr.<locals>.MyIntEnumru   rv   rw   N)ro   rp   rq   rD  rB  theotherr|   ra   r_   	MyIntEnumrD  	  s    DDHra   rF  zMy name is that.)r   r}  rI  rX  rB  )rj   rA  rF  s      r_   test_inherited_reprzTestEnum.test_inherited_repr  s8    	4T 	4	V 	 	inn-/ABra   c                 d     G fddt                dt        fi       } dt        fi       }y )Nc                   "     e Zd Z fdZ xZS )3TestEnum.test_multiple_mixin_mro.<locals>.auto_enumc                    |}| j                  ||i       }t        |d      rM|j                  D ]
  }||   ||<    |j                         D cg c]  }t	        j
                  |      s| }}nEg }|j                         D ]0  \  }}t	        j
                  |      r|j                  |       |||<   2 | j                  ||i       }d}	|D ]
  }||   ||<    |j                  D ]  }||   }|dk(  r|	}n|}	|	dz  }	|||<    |j                         D ]  \  }}||j                  vs||vs|||<     t        | '  | |||      S c c}w )N_member_namesr   r|   ru   )
__prepare__r  rL  keysrX   r6  r  r   rh   r  )metaclsr  bases	classdictoriginal_dict	temp_dictr   sundersr  rZ  rn   	auto_enums             r_   r  z;TestEnum.test_multiple_mixin_mro.<locals>.auto_enum.__new__  s    )#//UB?	=/:*88 8'4Q'7	!8*7*<*<*>UQ%//RSBTqUGU G - 3 3 5 )1 ??1-#NN1-'(	!) $//UB?	  4A#0#3IaL4"00 %A%a(ABwFA#$IaL% *//1 )DAq	 7 77AW<L'(	!) Y8eY8 8- Vs   E)E)ro   rp   rq   r  rr   )rn   rU  s   @r_   rU  rJ    s    8 8ra   rU  AutoNumberedEnumAutoIntEnum)r   r   r   )rj   rV  rW  rU  s      @r_   test_multiple_mixin_mroz TestEnum.test_multiple_mixin_mro  s4    	8 	8@ %%7$"Ez2>ra   c                    d d  G fddt                dt        fi       t        j                  j	                  t
        d      t        d      5 }|j                  d       d d d         G fdd	      }| j                  |j                  |j                  |j                  |j                  gt        |             | j                  |j                  j                  d
       | j                  |j                  j                  d       | j                  |j                  j                   d       | j                  |j                  j"                  d       y # 1 sw Y   xY w)Nc                  ,    t        |       dk(  r| d   S | S )Nru   r   )r  )rk   s    r_   identityz0TestEnum.test_meta_reconfigure.<locals>.identityN  s    4yA~AwKra   c                   F     e Zd Zedd       Z fdZd fd	Z xZS )4TestEnum.test_meta_reconfigure.<locals>.JSONEnumMetac                     i S r   r|   )rO  r  rP  initr   settingss         r_   rM  z@TestEnum.test_meta_reconfigure.<locals>.JSONEnumMeta.__prepare__W  s    	ra   c                     t        |   |  y r   )rh   ri   )r  rk   rl   JSONEnumMetarn   s      r_   ri   z=TestEnum.test_meta_reconfigure.<locals>.JSONEnumMeta.__init__[  s    lC148ra   c           	         dd l }g }Nd|vrt        d      d|vrt        d      d|vrt        d      |j                  d      }	t        |	t        t
        f      s|	f}	|j                  d      }
|j                  d      }t        |      5 }|j                  |      }d d d        D ]  }g }||	d      }|	dd  D ]  }||   }	 t        |
j                               D ]S  \  }\  }}t        |t
        t        f      s|f}||d      }|dd  D ]  }||   }	 | ||      }|j                  |       U t	        |      }|j                  | | f        t        | 3  |||||      }t        |j                               }|j                  d	 
       |D ]
  \  }}|||<    |D ]
  \  }}|||<    t        | ;  | ||||||      S # 1 sw Y   ,xY w)Nr   _filez_file is required_namez_name is required_valuez_value is requiredru   c                 (    | d   d   dk(  rd| fS d| fS )Nr   r1  ru   r|   )r0  s    r_   r  zNTestEnum.test_meta_reconfigure.<locals>.JSONEnumMeta.__new__.<locals>.<lambda>  s"    qtAw#~!a)H 1a)H ra   )key)jsonr   popr  tupler  r  loadsortedr  r   rh   rM  sortr  )rO  r  rP  clsdictr_  r   r`  ri  members	name_spec
value_specfilef	json_datadatari  r  pieceorder
value_pathfuncrJ  	enum_dictr  JSONEnumrb  rn   r[  s                           r_   r  z<TestEnum.test_meta_reconfigure.<locals>.JSONEnumMeta.__new__^  s7   'g-'(;<<g-'(;<<w.'(<== 'G 4I%i%?%.M	!(X!6J";;w/Dd 1q$(IIaL	1 ) !##IaL1%.qr] /E#';D/9?
@P@P@R9S 15E#5J#-j4-#H.8^
$(A$7E)3AB 5(-e5#/(,U"MM%01 "'v!8V#45& ",DS%QUW\^fg	W]]_-

H
I#( ,KD%&+IdO, $+ ,KD%&+IdO,\7;GS%QZ\`bgiqrr=1 1s   GG)NNr|   )ro   rp   rq   classmethodrM  ri   r  rr   )rn   r|  rb  r[  s   @r_   rb  r]  U  s&     9-s -sra   rb  JsonEnumztest_json.jsonwun  [{"name":"Afghanistan","alpha-2":"AF","country-code":"004","notes":{"description":"pretty"}},{"name":"Åland Islands","alpha-2":"AX","country-code":"248","notes":{"description":"serene"}},{"name":"Albania","alpha-2":"AL","country-code":"008","notes":{"description":"exciting"}},{"name":"Algeria","alpha-2":"DZ","country-code":"012","notes":{"description":"scarce"}}]c                   6    e Zd ZdZW  ZdZddd fddd fd	Zy
)/TestEnum.test_meta_reconfigure.<locals>.Countryz"abbr code country_name descriptionalpha-2)r  Nzcountry-codec                     t        |       S r   )r}  )r7  s    r_   r  z8TestEnum.test_meta_reconfigure.<locals>.Country.<lambda>  s
    #a& ra   r  N)notesrc  c                 "    | j                         S r   )title)r8  s    r_   r  z8TestEnum.test_meta_reconfigure.<locals>.Country.<lambda>  s    1779 ra   )ru   rv   rw   r   N)ro   rp   rq   rT  rd  re  rf  )	test_files   r_   Countryr    s1    9FEE(&(89%/1DE	Fra   r  AF   AlbaniaScarce)r   r   ospathr   tempdirr  writerI  r  AXALDZr  abbrr  country_namerc  )rj   rt  r  r|  rb  r[  r  s      @@@@r_   test_meta_reconfigurezTestEnum.test_meta_reconfigureL  s#   	
 6	s 6	s8 6	sr  
THb9GGLL*:;	)S! 	lQGGkl	l		h 		 	'**gjj'**gjjI4PW=Y$/#.00)<//:-	l 	ls   E##E,c                 &    G fddt                G d dt              }| j                  |j                  t        j                  u        | j	                  t        |j                  |j                  z         d       t               d<   |t               d<    dd      }| j	                  |d       t        | j                  |d       | j	                  |j                  j                  d       t        | j                  |j                         y )	Nc                   D    e Zd ZdZd Zd Zed        Z d Zd Z fdZy)	:TestEnum.test_subclasses_with_getnewargs.<locals>.NamedIntNamedIntc                     |}t        |      dk  rt        d      |d   |dd  }}t        j                  | g| }||_        ||_        |S Nru    name and value must be specifiedr   r  r   r}  r  _intname_argsr  rk   r  r  rj   s        r_   r  zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__new__  W    t9q=#$FGG!!Wd12hd{{3.. $"
ra   c                     | j                   S r   )r  r   s    r_   __getnewargs__zITestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__getnewargs__  s    zz!ra   c                     | j                   S r   r  r   s    r_   ro   zCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__name__      }}$ra   c                 x    t        |       j                  d| j                  dt        j                  |       dS N(r   )r.  ro   r}  r;  r   s    r_   r;  zCTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__repr__  .    '+Dz':':-1]]-0\\$-?A Ara   c                 |    t         }|j                  }|j                  t        u r|j	                  |       S  ||       S r   r}  r  __objclass__r  r;  rj   basebase_strs      r_   r  zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__str__  7    <<((F2==..~%ra   c                     t        |       t        |      z   }t        |       r0t        |      r$ d| j                  d|j                  d|      S |S Nr  z + r  r}  r  ro   rj   othertempr  s      r_   __add__zBTestEnum.test_subclasses_with_getnewargs.<locals>.NamedInt.__add__  O    4y3;.dH-*UH2M#'+}}ennE   Kra   N)	ro   rp   rq   r  r  r  r;  r  r  r  s   r_   r  r    s4    %L"% %A
& ra   r  c                       e Zd ZdZdZdZy)5TestEnum.test_subclasses_with_getnewargs.<locals>.NEINEIzthe-xru   zthe-yrv   Nro   rp   rq   xyr|   ra   r_   r  r         LAAra   r  NamedInt('(the-x + the-y)', 3)r  r   rv   r}  r   r#  r  rI  rX  r  r  r]  r   rJ  rj   r  NI5r  s      @r_   test_subclasses_with_getnewargsz(TestEnum.test_subclasses_with_getnewargs  s    %	 s %	 N	(D 	
 	t||34ceeceem,.NO (	*	%vq!a doosA6a(doosuu5ra   c                 &    G fddt                G d dt              }| j                  |j                  t        j                  u        | j	                  t        |j                  |j                  z         d       t               d<   |t               d<    dd      }| j	                  |d       t        | j                  |d       | j	                  |j                  j                  d       t        | j                  |j                         y )	Nc                   D    e Zd ZdZd Zd Zed        Z d Zd Z fdZy)	6TestEnum.test_subclasses_with_reduce.<locals>.NamedIntr  c                     |}t        |      dk  rt        d      |d   |dd  }}t        j                  | g| }||_        ||_        |S r  r  r  s        r_   r  z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__new__  r  ra   c                 2    | j                   | j                  fS r   rn   r  r   s    r_   
__reduce__zATestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__reduce__      ~~tzz11ra   c                     | j                   S r   r  r   s    r_   ro   z?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__name__  r  ra   c                 x    t        |       j                  d| j                  dt        j                  |       dS r  r  r   s    r_   r;  z?TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__repr__  r  ra   c                 |    t         }|j                  }|j                  t        u r|j	                  |       S  ||       S r   r  r  s      r_   r  z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__str__  r  ra   c                     t        |       t        |      z   }t        |       r0t        |      r$ d| j                  d|j                  d|      S |S r  r  r  s      r_   r  z>TestEnum.test_subclasses_with_reduce.<locals>.NamedInt.__add__ 	  r  ra   N)	ro   rp   rq   r  r  r  r;  r  r  r  s   r_   r  r    4    %L2% %A
& ra   r  c                       e Zd ZdZdZdZy)1TestEnum.test_subclasses_with_reduce.<locals>.NEIr  r  r  Nr  r|   ra   r_   r  r  		  r  ra   r  r  r  r   rv   r  r  s      @r_   test_subclasses_with_reducez$TestEnum.test_subclasses_with_reduce      %	 s %	 N	(D 	 	t||34ceeceem,.NO (	*	%vq!a d..Q7a(doosuu5ra   c                 &    G fddt                G d dt              }| j                  |j                  t        j                  u        | j	                  t        |j                  |j                  z         d       t               d<   |t               d<    dd      }| j	                  |d       t        | j                  |d       | j	                  |j                  j                  d       t        | j                  |j                         y )	Nc                   D    e Zd ZdZd Zd Zed        Z d Zd Z fdZy)	9TestEnum.test_subclasses_with_reduce_ex.<locals>.NamedIntr  c                     |}t        |      dk  rt        d      |d   |dd  }}t        j                  | g| }||_        ||_        |S r  r  r  s        r_   r  zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__new__	  r  ra   c                 2    | j                   | j                  fS r   r  rj   rX  s     r_   rW  zGTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__reduce_ex__%	  r  ra   c                     | j                   S r   r  r   s    r_   ro   zBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__name__'	  r  ra   c                 x    t        |       j                  d| j                  dt        j                  |       dS r  r  r   s    r_   r;  zBTestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__repr__*	  r  ra   c                 |    t         }|j                  }|j                  t        u r|j	                  |       S  ||       S r   r  r  s      r_   r  zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__str__/	  r  ra   c                     t        |       t        |      z   }t        |       r0t        |      r$ d| j                  d|j                  d|      S |S r  r  r  s      r_   r  zATestEnum.test_subclasses_with_reduce_ex.<locals>.NamedInt.__add__8	  r  ra   N)	ro   rp   rq   r  rW  r  r;  r  r  r  s   r_   r  r  	  r  ra   r  c                       e Zd ZdZdZdZy)4TestEnum.test_subclasses_with_reduce_ex.<locals>.NEIr  r  r  Nr  r|   ra   r_   r  r  A	  r  ra   r  r  r  r   rv   r  r  s      @r_   test_subclasses_with_reduce_exz'TestEnum.test_subclasses_with_reduce_ex	  r  ra   c                 8    G fddt                G d dt              }| j                  |j                  t        j                  u        | j	                  t        |j                  |j                  z         d       t               d<   |t               d<    dd      }| j	                  |d       | j	                  |j                  j                  d       t        | j                  t        |j                         t        | j                  t        |       y )	Nc                   >    e Zd ZdZd Zed        Z d Zd Z fdZy)HTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedIntr  c                     |}|d   |dd  }}t        |      dk(  rt        d      t        j                  | g| }||_        ||_        |S Nr   ru   r  r  r  s        r_   r  zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__new__T	  W    !!Wd12hdt9>#$FGG{{3.. $"
ra   c                     | j                   S r   r  r   s    r_   ro   zQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__name__]	  r  ra   c                 x    t        |       j                  d| j                  dt        j                  |       dS r  r  r   s    r_   r;  zQTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__repr__`	  r  ra   c                 |    t         }|j                  }|j                  t        u r|j	                  |       S  ||       S r   r  r  s      r_   r  zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__str__e	  r  ra   c                     t        |       t        |      z   }t        |       r0t        |      r$ d| j                  d|j                  d|      S |S r  r  r  s      r_   r  zPTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NamedInt.__add__n	  r  ra   Nro   rp   rq   r  r  r;  r  r  r  s   r_   r  r  R	  1    %L % %A
& ra   r  c                       e Zd ZdZdZdZy)CTestEnum.test_subclasses_without_direct_pickle_support.<locals>.NEIr  r  r  Nr  r|   ra   r_   r  r  w	  r  ra   r  r  r  r   rv   )r}  r   r#  r  rI  rX  r  r  r]  rJ  r   r|  r   r<   r  s      @r_   -test_subclasses_without_direct_pickle_supportz6TestEnum.test_subclasses_without_direct_pickle_supportQ	  s    #	 s #	 J	(D 	
 	t||34ceeceem,.NO (	*	%vq!a a(d//CEEBd//Dra   c                 $    G fddt                G d dt              }| j                  |j                  t        j                  u        | 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                   >    e Zd ZdZd Zed        Z d Zd Z fdZy)STestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedIntr  c                     |}|d   |dd  }}t        |      dk(  rt        d      t        j                  | g| }||_        ||_        |S r  r  r  s        r_   r  z[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__new__	  r  ra   c                     | j                   S r   r  r   s    r_   ro   z\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__name__	  r  ra   c                 x    t        |       j                  d| j                  dt        j                  |       dS r  r  r   s    r_   r;  z\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__repr__	  r  ra   c                 |    t         }|j                  }|j                  t        u r|j	                  |       S  ||       S r   r  r  s      r_   r  z[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__str__	  r  ra   c                     t        |       t        |      z   }t        |       r0t        |      r$ d| j                  d|j                  d|      S |S r  r  r  s      r_   r  z[TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NamedInt.__add__	  r  ra   Nr  r  s   r_   r  r  	  r  ra   r  c                       e Zd ZdZdZdZd Zy)NTestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEIr  r  r  c                 >    t         | j                  | j                  ffS r   )rg   rn   _name_r  s     r_   rW  z\TestEnum.test_subclasses_without_direct_pickle_support_using_name.<locals>.NEI.__reduce_ex__	  s     ===ra   N)ro   rp   rq   r  r  rW  r|   ra   r_   r  r  	  s     LAA>ra   r  r  r  r   rv   )r}  r   r#  r  rI  rX  r  r  r]  rJ  r   r  s      @r_   8test_subclasses_without_direct_pickle_support_using_namezATestEnum.test_subclasses_without_direct_pickle_support_using_name	  s    #	 s #	 J	>(D 	> 	t||34ceeceem,.NO (	*	%vq!a a(doosuu5doos3ra   c                 \    G d dt         t              }| j                  t        |j                        |u        | j                  t        |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)/TestEnum.test_tuple_subclass.<locals>.SomeTuple	SomeTuple)ru   zfor the money)rv   zfor the showrw   zfor the musicN)ro   rp   rq   rB  rE  r;  r|   ra   r_   r
  r	  	  s    &L(E(F(Era   r
  r  )rk  r   r#  r.  rB  r  rE  rI  r;  r]  r   )rj   r
  s     r_   test_tuple_subclasszTestEnum.test_tuple_subclass	  sx    	)t 	)
 	Y__-:;
9#3#3U;<*>?!*	+dooy?ra   c                 h    G d dt               } G d d|      }| j                  t        |      ddt        |      dfz         | j                  t        |      |j                  |j
                  |j                  g       t        r,| j                  t        t        t        |            g d       y y )Nc                       e Zd Zd Zd Zy)CTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber2c                 n    t        | j                        dz   }t        j                  |       }||_        |S rL  r  r  r  r  r  r  rJ  r   s      r_   r  zKTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber2.__new__	  s/    COO,q0nnS)#
ra   c                 ,    t        | j                        S r   )r}  r  r   s    r_   r%  zKTestEnum.test_inherited_new_from_enhanced_enum.<locals>.AutoNumber2.__int__	  s    4<<((ra   N)ro   rp   rq   r  r%  r|   ra   r_   AutoNumber2r  	  s    
)ra   r  c                       e Zd ZdZdZdZdZy)=TestEnum.test_inherited_new_from_enhanced_enum.<locals>.Colorr   r|   Nro   rp   rq   r'  r   r   r   r|   ra   r_   r   r  	      (ICEDra   r   rw   +wrong number of elements: %d (should be %d)r  )
r   rI  r  r  r   r   r   r/   mapr}  )rj   r  r   s      r_   %test_inherited_new_from_enhanced_enumz.TestEnum.test_inherited_new_from_enhanced_enum	  s    	)$ 	)	K 	
 	UQ(UY\]bYcefXg(gheuyy%++uzz&JKT#c5/2I> ra   c                     G d dt               } G d d|      }| j                  t        |      ddt        |      dfz         |j                   |j                   |j
                   | j                  |j
                  d       y )Nc                       e Zd Zd Zy)@TestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumber3c                 p    t        | j                        dz   }t        j                  | |      }||_        |S )N   )r  r  r}  r  r  r  s      r_   r  zHTestEnum.test_inherited_new_from_mixed_enum.<locals>.AutoNumber3.__new__	  s1    COO,r1kk#u-#
ra   Nr  r|   ra   r_   AutoNumber3r  	      ra   r!  c                       e Zd ZdZdZdZdZy):TestEnum.test_inherited_new_from_mixed_enum.<locals>.Colorr   r|   Nr  r|   ra   r_   r   r$  	  r  ra   r   rw   r     )r   rI  r  r   r   r   )rj   r!  r   s      r_   "test_inherited_new_from_mixed_enumz+TestEnum.test_inherited_new_from_mixed_enum	  sn    	' 		K 	
 	UQ(UY\]bYcefXg(gh		

R(ra   c                      G d d      } G d dt               }| j                   |       |j                         | j                  |j                   |              y )Nc                       e Zd Zd Zy)+TestEnum.test_equality.<locals>.AlwaysEqualc                      y)NTr|   rj   r  s     r_   __eq__z2TestEnum.test_equality.<locals>.AlwaysEqual.__eq__ 
  s    ra   N)ro   rp   rq   r,  r|   ra   r_   AlwaysEqualr)  	      ra   r-  c                       e Zd ZdZy),TestEnum.test_equality.<locals>.OrdinaryEnumru   N)ro   rp   rq   r)  r|   ra   r_   OrdinaryEnumr0  
  s    Ara   r1  )r   rI  r)  )rj   r-  r1  s      r_   test_equalityzTestEnum.test_equality	  sD    	 		4 	77ra   c                     G d dt               }| j                  t        |      |j                  |j                  |j
                  |j                  |j                  g       | j                  |j                  |j                  kD         | j                  |j                  |j
                  k         | j                  |j                  |j                  k         | j                  |j                  |j                  k\         y )Nc                   $    e Zd ZdZdZdZdZdZdZy)*TestEnum.test_ordered_mixin.<locals>.Gradez	A B C D Fr   r   rw   rv   ru   N)	ro   rp   rq   r'  r  r  r  r  r  r|   ra   r_   Grader5  
  s     #IAAAAAra   r6  )	r   rI  r  r  r  r  r  r  r#  )rj   r6  s     r_   test_ordered_mixinzTestEnum.test_ordered_mixin
  s    	K 	 	euww%''577&ST%'')*577*+%'')*577*+ra   c                 0    G d dt               }| j                  |j                   |d             | j                  t              5  |j
                   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ed        Zy)/TestEnum.test_missing_deprecated.<locals>.Labelr   ru   rv   c                     | j                   S r   AnyAppler  r  s     r_   	_missing_z9TestEnum.test_missing_deprecated.<locals>.Label._missing_
      ||#ra   N)ro   rp   rq   r=  RedApple
GreenAppler}  r?  r|   ra   r_   Labelr:  
  #    HHJ$ $ra   rC  r   redappler   rI  r=  r|  r  rE  r4  rj   rC  s     r_   test_missing_deprecatedz TestEnum.test_missing_deprecated
      	$D 	$ 	q2~. 	NN	x( 	*	 		 		 	   B 1B B	Bc                 0    G d dt               }| j                  |j                   |d             | j                  t              5  |j
                   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ed        Zy)$TestEnum.test_missing.<locals>.Labelr   ru   rv   c                     | j                   S r   r<  r  rJ  s     r_   _missing_value_z4TestEnum.test_missing.<locals>.Label._missing_value_)
  r@  ra   Nro   rp   rq   r=  rA  rB  r}  rP  r|   ra   r_   rC  rM  %
  rD  ra   rC  r   rE  rF  rG  s     r_   test_missingzTestEnum.test_missing$
  rI  rJ  c                      G d dt               }|d    | j                  t              5  |j                   d d d        | j                  t              5   |d       d d d        y # 1 sw Y   0xY w# 1 sw Y   y xY w)Nc                   $    e Zd ZdZdZed        Zy))TestEnum.test_missing_name.<locals>.Labelru   rv   c                 p    | D ]1  }|j                   j                         |j                         k(  s/|c S  y r   )r  lower)r  r  r&   s      r_   _missing_name_z8TestEnum.test_missing_name.<locals>.Label._missing_name_7
  s1    ! &F{{((*djjl:%&ra   Nro   rp   rq   rA  rB  r}  rX  r|   ra   r_   rC  rU  4
  s    HJ& &ra   rC  rE  )r   r|  r  rE  r   rG  s     r_   test_missing_namezTestEnum.test_missing_name3
  sr    	&D 	& 	j~. 	NN	z* 	*	 		 		 	s   A&	A2&A/2A;c                      G d dt               }| j                  |j                   |d             | j                  t              5  |d    d d d        y # 1 sw Y   y xY w)Nc                   (    e Zd ZdZdZdZed        Zy)4TestEnum.test_missing_value_bad_input.<locals>.Labelr   ru   rv   c                     | j                   S r   r<  rO  s     r_   rP  zDTestEnum.test_missing_value_bad_input.<locals>.Label._missing_value_H
  r@  ra   NrQ  r|   ra   r_   rC  r]  D
  rD  ra   rC  r   T)r   rI  r=  r|  r4  rG  s     r_   test_missing_value_bad_inputz%TestEnum.test_missing_value_bad_inputC
  sR    	$D 	$ 	q2x( 	$K	 	 	s   AAc                 P    G d dt               }| j                  t              5  |j                   d d d        | j                  t              5   |d       d d d        | j                  t
              5  |d    d d d        y # 1 sw Y   SxY w# 1 sw Y   9xY w# 1 sw Y   y xY w)Nc                   $    e Zd ZdZdZed        Zy)4TestEnum.test_missing_name_bad_return.<locals>.Labelru   rv   c                      y r   r|   r>  s     r_   rX  zCTestEnum.test_missing_name_bad_return.<locals>.Label._missing_name_T
  s    ra   NrY  r|   ra   r_   rC  rb  Q
  s    HJ ra   rC  rE  )r   r|  r  rE  r   r4  rG  s     r_   test_missing_name_bad_returnz%TestEnum.test_missing_name_bad_returnP
  s    	D 	 ~. 	NN	z* 	*	x( 	*	 			 		 		 	s#   B	B5BBBB%c                 6    d }| j                  t        |       y )Nc                  N     G d dt               }  G d d|       } G d d|      }y )Nc                       e Zd Zd Zy)>TestEnum.test_extending2.<locals>.bad_extension.<locals>.Shadec                 .    t        | j                         y r   )rs  r  r   s    r_   shadezDTestEnum.test_extending2.<locals>.bad_extension.<locals>.Shade.shadeb
  s    $))$ra   Nro   rp   rq   rj  r|   ra   r_   Shaderh  a
  s    %ra   rl  c                       e Zd ZdZdZdZy)>TestEnum.test_extending2.<locals>.bad_extension.<locals>.Colorru   rv   rw   Nr  r|   ra   r_   r   rn  d
  r  ra   r   c                       e Zd ZdZdZdZy)BTestEnum.test_extending2.<locals>.bad_extension.<locals>.MoreColorr   r   r  Nr  r|   ra   r_   r  rp  h
  r  ra   r  r   )rl  r   r  s      r_   r  z/TestEnum.test_extending2.<locals>.bad_extension`
  s&    % % E ra   r  r  s     r_   test_extending2zTestEnum.test_extending2_
  s    	 	)]3ra   c                      G d dt               } G d d|      } G d d|      }| j                  |j                  j                         d       y )Nc                       e Zd Zd Zy)'TestEnum.test_extending3.<locals>.Shadec                     | j                   S r   r  r   s    r_   rj  z-TestEnum.test_extending3.<locals>.Shade.shadep
  s    yy ra   Nrk  r|   ra   r_   rl  rt  o
  s    !ra   rl  c                       e Zd Zd Zy)'TestEnum.test_extending3.<locals>.Colorc                      d| j                   z  S )Nz%s hexlified!r|  r   s    r_   rC  z+TestEnum.test_extending3.<locals>.Color.hexs
  s    &33ra   N)ro   rp   rq   rC  r|   ra   r_   r   rw  r
  rB  ra   r   c                       e Zd ZdZdZdZy)+TestEnum.test_extending3.<locals>.MoreColorr   r   r  Nr  r|   ra   r_   r  rz  u
  s    DGFra   r  z5 hexlified!)r   rI  r  rC  )rj   rl  r   r  s       r_   test_extending3zTestEnum.test_extending3n
  sG    	!D 	!	4E 	4	 	 	**..0.Ara   c                 P    G d dt               }| j                  t        |      |j                  |j                  |j
                  |j                  g       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  |v        | j                   |d      |j                         | j                  |d   |j                         | j                  |j                  j                  d       y )Nc                        e Zd ZdZdZdZdZdZy)'TestEnum.test_extending5.<locals>.Colorzred green blue valueru   rv   rw   r   N)ro   rp   rq   r   r   r   r   rJ  r|   ra   r_   r   r~  |
  s    ,GCEDEra   r   rJ  r   ru   )	r   rI  r  r   r   r   rJ  r  r#  r   s     r_   test_extending5zTestEnum.test_extending5{
  s    	D 	 	euyy%++uzz5;;&WX))73**A.u,-q5;;/w5!,ra   r  Continuez!Request received, please continuee   zSwitching Protocolsz.Switching to new protocol; obey Upgrade header)f   
Processingc                 6    d }| j                  t        |       y )Nc                  @     G d dt               }  G d dt               }y )Nc                       e Zd ZdZdZdZy)CTestEnum.test_no_duplicates.<locals>.bad_duplicates.<locals>.Color1ru   rv   rw   Nr  r|   ra   r_   Color1r  
  r  ra   r  c                       e Zd ZdZdZdZdZy)CTestEnum.test_no_duplicates.<locals>.bad_duplicates.<locals>.Color2ru   rv   rw   N)ro   rp   rq   r   r   r   grener|   ra   r_   Color2r  
  s    ra   r  )r   )r  r  s     r_   bad_duplicatesz3TestEnum.test_no_duplicates.<locals>.bad_duplicates
  s      ra   r  )rj   r  s     r_   test_no_duplicateszTestEnum.test_no_duplicates
  s    		 	*n5ra   c                 J     G d dt               } G d dt        t               }y )Nc                       e Zd ZdZdZdZy)0TestEnum.test_no_duplicates_kinda.<locals>.Sillyru   r  rw   Nro   rp   rq   r  r  r  r|   ra   r_   Sillyr  
  s    CCDra   r  c                       e Zd ZdZdZdZdZy)2TestEnum.test_no_duplicates_kinda.<locals>.Sillierru   rv   rw   r   Nro   rp   rq   singler  triplerJ  r|   ra   r_   Sillierr  
  s    FDFEra   r  )r   r   rj   r  r  s      r_   test_no_duplicates_kindaz!TestEnum.test_no_duplicates_kinda
  s    	J 		gz 	ra   c                      G d dt               }| j                  t        |j                  j                  d      d       | j                  |j                  j
                  d       y )Nc                   B    e Zd ZdZdZdZdZdZdZdZ	dZ
d	 Zed
        Zy)"TestEnum.test_init.<locals>.PlanetITf|D    
BAQX4E    WAgoEg    TXAg	Dg    (IAgcEg   Ag[\h}Eg    ，Ag#'?TQEg   _xAgJ-UEg    wAc                      || _         || _        y r   massradius)rj   r  r  s      r_   ri   z+TestEnum.test_init.<locals>.Planet.__init__
  s     	$ra   c                 X    d}|| j                   z  | j                  | j                  z  z  S NyдW=r  rj   Gs     r_   surface_gravityz2TestEnum.test_init.<locals>.Planet.surface_gravity
  )      499}dkk(ABBra   N)ro   rp   rq   MERCURYVENUSEARTHMARSJUPITERSATURNURANUSNEPTUNEri   r  r  r|   ra   r_   Planetr  
  sE    +G+E,E+D+G+F+F+G% C Cra   r  rv   皙#@r  r   rI  roundr  r  rJ  rj   r  s     r_   	test_initzTestEnum.test_init
  sN    	CT 	C" 	v||;;Q?F++-CDra   c                 r    G d dt         t              } G d d|      }| j                  |j                  j                  d       | j                  |j                  j
                  d       | j                  |j
                  j                  d       | j                  |j
                  j
                  d       y )	Nc                   &    e Zd ZdZd Zed        Zy)ATestEnum.test_init_and_shadowing_attribute.<locals>.SelectionEnumdb userc                 ~    t        | j                        }t        j                  | |d         }||_        ||_        |S r   )r  r  r  r  _countr  r  rk   rl   countr   s        r_   r  zITestEnum.test_init_and_shadowing_attribute.<locals>.SelectionEnum.__new__
  s7    COO,kk#tAw/"
"
ra   c                     | f|z   S r   r|   r  r   r  ri  rk   rl   s         r_   _generate_next_value_zWTestEnum.test_init_and_shadowing_attribute.<locals>.SelectionEnum._generate_next_value_
      x$&ra   Nro   rp   rq   rT  r  staticmethodr  r|   ra   r_   SelectionEnumr  
       F ' 'ra   r  c                       e Zd ZdZdZdZy)DTestEnum.test_init_and_shadowing_attribute.<locals>.DeviceTypeSourcezuser systemUser controlledSystem controlledN)ro   rp   rq   r   usersystemr|   ra   r_   DeviceTypeSourcer  
  s    #G$D(Fra   r  r  r  r  r  )r  r   rI  r  dbr  )rj   r  r  s      r_   !test_init_and_shadowing_attributez*TestEnum.test_init_and_shadowing_attribute
  s    
	'C 
	'	)} 	) 	)0033X>)00557JK)..116:)..335FGra   c                 D    G d dt               } G d d|      }| j                  t        |      |j                  |j                  |j
                  g       | j                  |j                  j                  dg       | j                   |dg      |j                         y )Nc                       e Zd Zd Zy)6TestEnum.test_nonhash_value.<locals>.AutoNumberInAListc                 p    t        | j                        dz   g}t        j                  |       }||_        |S rL  r  r  s      r_   r  z>TestEnum.test_nonhash_value.<locals>.AutoNumberInAList.__new__
  s2    S__-12nnS)#
ra   Nr  r|   ra   r_   AutoNumberInAListr  
  r"  ra   r  c                       e Zd ZdZdZdZdZy)1TestEnum.test_nonhash_value.<locals>.ColorInAListr   r|   Nr  r|   ra   r_   ColorInAListr  
  r  ra   r  ru   )r   rI  r  r   r   r   rJ  )rj   r  r  s      r_   test_nonhash_valuezTestEnum.test_nonhash_value
  s    	 		, 	
 	l+l.>.>@R@RT`TeTe-fg))//!5qc*L,<,<=ra   c                     G d dt               }| j                  t        |      |j                  |j                  |j
                  |j                  g       | j                  |j                  |j                         | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       y )Nc                   h    e Zd ZdZ e       Z e       Z e       ZdZ e       Z	 e       Z
 e       Zy)>TestEnum.test_number_reset_and_order_cleanup.<locals>.ConfusedzONE TWO THREE UNO DOS TRES FOURru   N)ro   rp   rq   r   r#   r;  r<  r=  UNODOSTRESFOURr|   ra   r_   Confusedr  
  s6    7G&C&CFEC&C6D6Dra   r  rv   rw   r   )r   rI  r  r;  r<  r=  r  rD  r  r  r  rj   r  s     r_   #test_number_reset_and_order_cleanupz,TestEnum.test_number_reset_and_order_cleanup
  s    	t 	 	h(,,hnnV^VcVc)dehllHLL1--q1..2..2ra   c                      G d dt         t              } G d d|      }| j                  |j                  d       | j                   |d      |j                         | j                  t	        |      |j                  |j
                  g       y )Nc                       e Zd Zd Zy)HTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnumc                 X    |\  }}t         j                  | |      }||_        ||_        |S r   )r}  r  labelr  )r  rk   rJ  r  r   s        r_   r  zPTestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledIntEnum.__new__
  s.    #ukk#u-!	#
ra   Nr  r|   ra   r_   LabelledIntEnumr  
  s    ra   r  c                       e Zd ZdZdZy)ETestEnum.test_conflicting_types_resolved_in_new.<locals>.LabelledList)ru   Unprocessed)rv   zPayment CompleteN)ro   rp   rq   unprocessedpayment_completer|   ra   r_   LabelledListr  
  s    ,K6ra   r  ru   )r}  r   rI  r  r  r  )rj   r  r  s      r_   &test_conflicting_types_resolved_in_newz/TestEnum.test_conflicting_types_resolved_in_new
  st    	c4 		7? 	7 	1115a,*B*BCl+l.F.FHeHe-fgra   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)(TestEnum.test_auto_number.<locals>.Colorred blue greenNro   rp   rq   r   r#   r   r   r   r|   ra   r_   r   r        &G&C6DFEra   r   ru   rv   rw   r   rI  r  r   r   r   rJ  r   s     r_   test_auto_numberzTestEnum.test_auto_number      	D 	 	euyy%**ekk&JK!,))1-**A.ra   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d Z e       Z e       Z e       Zy)&TestEnum.test_auto_name.<locals>.Colorr  c                     | S r   r|   r  r   r  lasts       r_   r  z<TestEnum.test_auto_name.<locals>.Color._generate_next_value_      ra   N)	ro   rp   rq   r   r  r#   r   r   r   r|   ra   r_   r   r
    s!    &G&C6DFEra   r   r   r   r   r  r   s     r_   test_auto_namezTestEnum.test_auto_name  s    	D 	 	euyy%**ekk&JK%0))62**G4ra   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)5TestEnum.test_auto_name_inherit.<locals>.AutoNameEnumc                     | S r   r|   r  s       r_   r  zKTestEnum.test_auto_name_inherit.<locals>.AutoNameEnum._generate_next_value_  r  ra   Nro   rp   rq   r  r|   ra   r_   AutoNameEnumr    r.  ra   r  c                   :    e Zd ZdZ e       Z e       Z e       Zy).TestEnum.test_auto_name_inherit.<locals>.Colorr  Nr  r|   ra   r_   r   r     r  ra   r   r   r   r   r  )rj   r  r   s      r_   test_auto_name_inheritzTestEnum.test_auto_name_inherit  s    	4 		L 	 	euyy%**ekk&JK%0))62**G4ra   c                 n     G d dt               }| j                  |j                  j                  d       y )Nc                   "    e Zd ZdZdZ e       Zy))TestEnum.test_auto_garbage.<locals>.Colorred bluer   Nro   rp   rq   r   r   r#   r   r|   ra   r_   r   r  ,  s     GC6Dra   r   ru   )r   rI  r   rJ  r   s     r_   test_auto_garbagezTestEnum.test_auto_garbage+  s*    	D 	 	))1-ra   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dZdZ e       Zy)3TestEnum.test_auto_garbage_corrected.<locals>.Colorr  r   rv   N)ro   rp   rq   r   r   r   r#   r   r|   ra   r_   r   r!  3  s    &GCDFEra   r   r   rv   rw   r  r   s     r_   test_auto_garbage_correctedz$TestEnum.test_auto_garbage_corrected2  s    	D 	 	euyy%**ekk&JK%0))1-**A.ra   c                     G d dt               }| j                  t        |      |j                  |j                  |j
                  g       | j                  |D cg c]  }|j                   c}g d        G d dt               }| j                  |j                  |j                  |j                  gt        |             y c c}w )Nc                   2    e Zd ZdZ e       ZefZ e       Zy)/TestEnum.test_duplicate_auto.<locals>.MoreDupesA B CNro   rp   rq   r   r#   r  r  r  r|   ra   r_   	MoreDupesr%  @  s    GAAAra   r(  )ru   )ru   rv   c                   >    e Zd ZdZ e       xZZ e       Z e       Zy)+TestEnum.test_duplicate_auto.<locals>.Dupesr7  N	ro   rp   rq   r   r#   rB  primerorE  r;  r|   ra   r_   Dupesr*  H  !    *G"f$EGVFFEra   r-  )
r   rI  r  r  r  r  rJ  rB  rE  r;  )rj   r(  r~  r-  s       r_   test_duplicate_autozTestEnum.test_duplicate_auto>  s    	 	
 	i9;;	Y[[*QR95a!''5}E	D 	
 	%++u||U[[A4;O 6s   Cc                     G d dt               } G d d|      }| j                  t        |      |j                  |j                  g       | 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
       y )Nc                   &    e Zd ZdZd Zed        Zy)9TestEnum.test_auto_value_with_auto.<locals>.SelectionEnumr  c                     t        | j                        }t        j                  |       }||_        ||_        |\  |_        |_        |S r   )r  r  r  r  r  r  r  r  r  s        r_   r  zATestEnum.test_auto_value_with_auto.<locals>.SelectionEnum.__new__S  s?    COO,nnS)"
"#' 
ra   c                     | f|z   S r   r|   r  s         r_   r  zOTestEnum.test_auto_value_with_auto.<locals>.SelectionEnum._generate_next_value_Z  r  ra   Nr  r|   ra   r_   r  r2  Q  s     F ' 'ra   r  c                   0    e Zd ZdZ ed      Z ed      Zy)0TestEnum.test_auto_value_with_auto.<locals>.Test	this thatrE  rC  N)ro   rp   rq   r   r#   rD  rB  r|   ra   r_   Testr6  ^  s    !G=D=Dra   r8  rD  rD  rE  rE  rB  rB  rC  rC  	r   rI  r  rD  rB  r  rJ  r  r  rj   r  r8  s      r_   test_auto_value_with_autoz"TestEnum.test_auto_value_with_autoO  s    	'D 	'	!= 	!
 	ddii%;<0*;<v.10*;<v.1ra   c                     G d dt               } G d d|      }| j                  t        |      |j                  |j                  g       | 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
       y )Nc                   &    e Zd ZdZd Zed        Zy)>TestEnum.test_auto_value_with_autovalue.<locals>.SelectionEnumr  c                 v    t        | j                        }t        j                  |       }||_        ||_        |S r   )r  r  r  r  r  r  r  s        r_   r  zFTestEnum.test_auto_value_with_autovalue.<locals>.SelectionEnum.__new__q  s1    COO,nnS)"
"
ra   c                     | f|z   S r   r|   r  s         r_   r  zTTestEnum.test_auto_value_with_autovalue.<locals>.SelectionEnum._generate_next_value_w  r  ra   Nr  r|   ra   r_   r  r@  o  r  ra   r  c                       e Zd ZdZdZdZy)5TestEnum.test_auto_value_with_autovalue.<locals>.Testr7  rE  rC  N)ro   rp   rq   r   rD  rB  r|   ra   r_   r8  rD  {  s    !GDDra   r8  rD  r9  rE  rB  r:  rC  r;  r<  s      r_   test_auto_value_with_autovaluez'TestEnum.test_auto_value_with_autovaluem  s    
	'D 
	'	= 	
 	ddii%;<0*;<v.10*;<v.1ra   c                 z    G d dt               }| j                  |j                  j                  |j                  j                  |j                  j
                  fddddif       | j                  |j                  j                  |j                  j                  |j                  j
                  fdddd	if       y )
Nc                   F    e Zd ZdZ edddi      Z edddi      Zd Zy	)
)TestEnum.test_auto_and_kwds.<locals>.ItemA Br  r   T)sizereqr  Fc                 Z    t         j                  |       }||_        ||_        ||_        |S r   )r  r  r  rJ  rK  )r  rJ  rJ  rK  r   s        r_   r  z1TestEnum.test_auto_and_kwds.<locals>.Item.__new__  s*    nnS)#
ra   Nro   rp   rq   r   r#   r  r  r  r|   ra   r_   ItemrH    s,    G#E4=1A#E5>2Ara   rN  ru   r  r   Trv   r  F)r   rI  r  rJ  rJ  rK  r  rj   rN  s     r_   test_auto_and_kwdszTestEnum.test_auto_and_kwds  s    
	4 
	 	$&&,,TVVZZ@1cESW=BYZ$&&,,TVVZZ@1cESX>BZ[ra   c                 f    t        j                  di       }| j                  t        |      d       y )NFoor   )rX   r   rI  r  )rj   emptys     r_   test_empty_with_functional_apiz'TestEnum.test_empty_with_functional_api  s&    eR(UQ'ra   c                      G d dt               }| j                  t        |j                  j                  d      d       | j                  |j                  j
                  d       y )Nc                   @    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zed
        Zy)'TestEnum.test_auto_init.<locals>.Planetzmass radiusr  r  r  r  r  r  r  r  c                 X    d}|| j                   z  | j                  | j                  z  z  S r  r  r  s     r_   r  z7TestEnum.test_auto_init.<locals>.Planet.surface_gravity  r  ra   N)ro   rp   rq   rT  r  r  r  r  r  r  r  r  r  r  r|   ra   r_   r  rW    sC    "F+G+E,E+D+G+F+F+GC Cra   r  rv   r  r  r  r  s     r_   test_auto_initzTestEnum.test_auto_init  sN    	CT 	C 	v||;;Q?F++-CDra   c                     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       y )	Nc                       e Zd ZdZdZdZdZy)1TestEnum.test_auto_init_with_value.<locals>.Colorz
value, rgb)ru   ru   r   r   )rv   r   ru   r   )rw   r   r   ru   N)ro   rp   rq   rT  REDBLUEGREENr|   ra   r_   r   r\    s    FCD Era   r   ru   rv   rw   r]  r^  r_  )r   rI  r`  rJ  ra  rb  rgbr   s     r_   test_auto_init_with_valuez"TestEnum.test_auto_init_with_value  s    	!D 	!
 	!,))1-**A.	23)4ra   c                      G d dt               }| j                  |j                  |j                  u        | j	                  t
        |d       y )Nc                       e Zd ZeZdZdZy)'TestEnum.test_noalias.<locals>.Settingsru   N)ro   rp   rq   r   
_settings_r   rojor|   ra   r_   Settingsrg    s     JCDra   rj  ru   )r   r   r   ri  r|  r   )rj   rj  s     r_   test_noaliaszTestEnum.test_noalias  s=    	t 	 	67)Xq1ra   c                 4    G d dt         t              }| j                  |j                  d       | j                  |j                  d       | j                  |j                  j
                  d       | j                  |j                  j
                  d       y )Nc                       e Zd ZdZdZdZdZy)*TestEnum.test_auto_and_init.<locals>.Field
TYPE STARTvalue __doc__Char, Date, Logical, etc.Field offset in recordN)ro   rp   rq   r   rT  TYPESTARTr|   ra   r_   Fieldrn    s    "G$F.D,Era   ru  ru   rv   rq  rr  )r}  r   rI  rs  rt  r   rj   ru  s     r_   test_auto_and_initzTestEnum.test_auto_and_init  sp    	-C 	-
 	Q'a(++-HI,,.FGra   c                 *    G d dt               }| j                  |j                  d       | j                  |j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       y )Nc                        e Zd ZdZdZdZdZdZy)+TestEnum.test_auto_and_start.<locals>.Fieldro  r   rp  rq  rr  N)ro   rp   rq   r   _start_rT  rs  rt  r|   ra   r_   ru  rz    s    "GG$F.D,Era   ru  r   ru   rq  rr  )r   rI  rs  rt  r   rv  s     r_   test_auto_and_startzTestEnum.test_auto_and_start  sn    	-G 	- 	Q'a(++-HI,,.FGra   c                 <    G d dt         t              }| j                  |j                  d       | j                  |j                  d       | j                  |j
                  d       | j                  |j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d	       | j                  |j                  j                  d
       y )Nc                   $    e Zd ZdZdZdZdZdZdZy):TestEnum.test_auto_and_init_and_some_values.<locals>.FieldTYPE START BLAH BELCHrp  rq  rr  r   	test blah
test belchN	ro   rp   rq   r   rT  rs  rt  BLAHBELCHr|   ra   r_   ru  r    s     -G$F.D,E!D Era   ru  ru   rv   r   r  rq  rr  r  r  )r}  r   rI  rs  rt  r  r  r   rv  s     r_   "test_auto_and_init_and_some_valuesz+TestEnum.test_auto_and_init_and_some_values  s    	!C 	! 	Q'a(Q'a(++-HI,,.FG++[9,,l;ra   c                     | j                  t        d      5   G d dt        t              }d d d        y # 1 sw Y   y xY w)Nz8Field\.BLAH: number of fields provided do not match initc                   $    e Zd ZdZdZdZdZdZdZy)FTestEnum.test_auto_and_init_w_value_and_too_many_values.<locals>.Fieldr  rp  )ru   rq  )rv   rr  )r   r  r  )rS  r  Nr  r|   ra   r_   ru  r    s     1(53('ra   ru  )re   r   r}  r   rv  s     r_   .test_auto_and_init_w_value_and_too_many_valuesz7TestEnum.test_auto_and_init_w_value_and_too_many_values  s6    ##I/jk 	((T (	( 	( 	(   5>c                 l    G d dt         t              }| j                  |j                  d       | j                  |j                  d       | j                  |j
                  d       | 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       y )Nc                   $    e Zd ZdZdZdZdZdZdZy)BTestEnum.test_auto_and_init_and_some_complex_values.<locals>.Fieldr  zvalue __doc__ help)rq  !fields composed of character data)rr  #where the data starts in the record)r   r  	some help)r  some more helpNr  r|   ra   r_   ru  r    s     -G)FSDSE.D2Era   ru  ru   rv   r   r  rq  rr  r  r  r  r  r  r  )	r}  r   rI  rs  rt  r  r  r   helprv  s     r_   *test_auto_and_init_and_some_complex_valuesz3TestEnum.test_auto_and_init_and_some_complex_values  s3   	3C 	3 	Q'a(Q'a(++-HI,,.FG++[9,,l;*MN))+PQ+6))+;<ra   c                 H    G d dt               } G d d|      }| j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j
                  d       | j                  |j                  j                  d	       | j                  |j                  j                  d
       | j                  |j                  j                  d       | j                  |j
                  j                  d       y )Nc                       e Zd ZdZdZy)7TestEnum.test_auto_and_init_inherited.<locals>.AutoEnumr   rp  N)ro   rp   rq   r{  rT  r|   ra   r_   AutoEnumr    s    G$Fra   r  c                        e Zd ZdZdZdZdZdZy)4TestEnum.test_auto_and_init_inherited.<locals>.Fieldr  rq  rr  r  r  N)ro   rp   rq   r   rs  rt  r  r  r|   ra   r_   ru  r    s    -G.D,E!D Era   ru  r   ru   r   r  rq  rr  r  r  )r   rI  rs  rt  r  r  r   )rj   r  ru  s      r_   test_auto_and_init_inheritedz%TestEnum.test_auto_and_init_inherited  s    	%w 	%	!H 	! 	Q'a(Q'a(++-HI,,.FG++[9,,l;ra   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                   2    e Zd ZdZd Zd Zd ZdZdZdZ	dZ
y	)
3TestEnum.test_missing_value_error.<locals>.Combinedvalue sequencec                     | j                   S r   sequencer~  s    r_   r  z<TestEnum.test_missing_value_error.<locals>.Combined.<lambda>$  s
    AJJ ra   c                     t         j                  | |      }d|v r'|j                  dd      \  }}|j                  d      }n|}d }||_        ||_        |S )Nr  ru   z ))r  r  rV  stripfis_namesegment)r  rJ  rk   r$   r  r  s         r_   r  z;TestEnum.test_missing_value_error.<locals>.Combined.__new__&  sY    ;;sE2De|,1KKQ,?)'")--"5#("&$,DM#*DLKra   c                 P    d| j                   j                  d| j                  dS N<rP   rT  rn   ro   r  r   s    r_   r;  z<TestEnum.test_missing_value_error.<locals>.Combined.__repr__2  s    (,(?(?MMra   )zAn$(1,2)r   )zAn$(3,2)ru   )zAn$(5,1)rv   )zBn$rw   N)ro   rp   rq   rT  r   r  r;  key_type
company_idr  rc  r|   ra   r_   Combinedr  !  s-    ).
 N !. -
 - -ra   r  )re   r   r  r   )rj   r  s     r_   test_missing_value_errorz!TestEnum.test_missing_value_error  s6    ##I/LM 	..3 .	. 	. 	.r  c                 0    G d dt         j                        }| j                  |j                  |j                  gt        |             | j                  |j                  j                  d       | j                  |j                  j                  d       y )Nc                   ^    e Zd ZdZ ej
                         Ze ej
                         z  ZdZy)(TestEnum.test_auto_and_enum.<locals>.Fooza b crv   N)	ro   rp   rq   r   rX   r#   r)  rW  r7  r|   ra   r_   rR  r  <  s+    G

AJEJJL AAra   rR  ru   rw   )rX   r   rI  r)  r7  r  rJ  rW  )rj   rR  s     r_   test_auto_and_enumzTestEnum.test_auto_and_enum;  sd    	%** 	 	#%%c3a(a(ra   c                      G d dt               } G d d|      }| j                  |j                  j                  d       y )Nc                       e Zd Zd Zy)1TestEnum.test_multiple_arg_auto.<locals>.AutoNamec                     | f|z   S r   r|   r  r   r  r  rk   rl   s         r_   r  zGTestEnum.test_multiple_arg_auto.<locals>.AutoName._generate_next_value_H      x$&ra   Nr  r|   ra   r_   AutoNamer  G  r'  ra   r  c                   4    e Zd ZdZ edd      Z edd      Zy)/TestEnum.test_multiple_arg_auto.<locals>.Planetvalue mass radiusr  r  r  r  Nro   rp   rq   rT  r#   r  r  r|   ra   r_   r  r  K  s    (F9h/GH-Era   r  r  r   rI  r  rJ  rj   r  r  s      r_   test_multiple_arg_autozTestEnum.test_multiple_arg_autoF  s6    	't 	'	.X 	. 	--y9ra   c                      G d dt               } G d d|      }| j                  |j                  j                  d       y )Nc                       e Zd Zd Zy)3TestEnum.test_auto_w_multiple_arg.<locals>.AutoNamec                     |r| f|z   S | S r   r|   r  s         r_   r  zITestEnum.test_auto_w_multiple_arg.<locals>.AutoName._generate_next_value_S  s     8d?*Kra   Nr  r|   ra   r_   r  r  R  s     ra   r  c                   8    e Zd ZdZ e       ddfZ e       ddfZy)1TestEnum.test_auto_w_multiple_arg.<locals>.Planetr  r  r  r  r  Nr  r|   ra   r_   r  r  Y  s#    (Ffi1GFIx/Era   r  r  r  r  s      r_   test_auto_w_multiple_argz!TestEnum.test_auto_w_multiple_argQ  s6    	 t 	 	0X 	0 	--y9ra   c                      G d dt               } G d d|      }| j                  |j                  j                  d       y )Nc                       e Zd Zd Zy)1TestEnum.test_auto_gnv_and_init.<locals>.AutoNamec                     | f|z   S r   r|   r  s         r_   r  zGTestEnum.test_auto_gnv_and_init.<locals>.AutoName._generate_next_value_a  r  ra   Nr  r|   ra   r_   r  r  `  r'  ra   r  c                       e Zd ZdZdZdZy)/TestEnum.test_auto_gnv_and_init.<locals>.Planetr  r  r  N)ro   rp   rq   rT  r  r  r|   ra   r_   r  r  d  s    (F)G'Era   r  r  r  r  s      r_   test_auto_gnv_and_initzTestEnum.test_auto_gnv_and_init_  s6    	't 	'	(X 	( 	--y9ra   c                     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
       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j
                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d	      |j                         | j                   |d
      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         y )Nc                   $    e Zd ZdZdZeZdZdZdZ	y):TestEnum.test_MultiValue_with_init_wo_value.<locals>.Colorcolor r g br   r   ru   rv   rw   r   r   r   r  r   rS  r.  rM  N
ro   rp   rq   rT  r   r%   rh  r   r   r   r|   ra   r_   r   r         "F&G#J C$E"Dra   r   r   ru   rv   rw   r   r   r   r  r   rS  r.  rM  )r   rI  r   rJ  r   rgrW  r   r   rD  r   s     r_   "test_MultiValue_with_init_wo_valuez+TestEnum.test_MultiValue_with_init_wo_value  s   	#D 	# 	%0%0a(a(a(**G4**G4***))62))62q)q)q)eElEII.eAh		*eAh		*eAh		*eGnekk2eAh,eAh,eAh,eFmUZZ0eAh

+eAh

+eAh

+ra   c                     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       | j                  |j                  j
                  d       | j                  |j                  j                  d       | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d	      |j                         | j                   |d
      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         y )Nc                   $    e Zd ZdZdZeZdZdZdZ	y)9TestEnum.test_MultiValue_with_init_w_value.<locals>.Colorzvalue r g br   r  r  r  Nr  r|   ra   r_   r   r    r  ra   r   r   ru   rv   rw   r   r   r   r  r   rS  r.  rM  )
r   rI  r   rJ  r  r  rW  r   r   rD  r   s     r_   !test_MultiValue_with_init_w_valuez*TestEnum.test_MultiValue_with_init_w_value  s<   	#D 	# 	%0a(a(a(**G4***))62q)q)q)eElEII.eAh		*eAh		*eAh		*eGnekk2eAh,eAh,eAh,eFmUZZ0eAh

+eAh

+eAh

+ra   c                     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       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j
                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d	      |j                         | j                   |d
      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         y )Nc                   $    e Zd ZdZdZeZdZdZdZ	y)GTestEnum.test_MultiValue_with_init_wo_value_w_autonumber.<locals>.Colorr  r   )r   rT  rN  r  )r   r  2   <   )r   F   P   Z   Nr  r|   ra   r_   r   r    s     "F&G#J#C'E%Dra   r   ru   r   rT  rN  r  rv   r   r  r  r  rw   r   r  r  r  )r   rI  r   rJ  r   r  r  rW  r   r   rD  r   s     r_   /test_MultiValue_with_init_wo_value_w_autonumberz8TestEnum.test_MultiValue_with_init_wo_value_w_autonumber  s   	&N 	& 	!,%0b)b)b)**A.**G4+++))1-))62r*r*r*eAh		*eElEII.eBi+eBi+eBi+eAh,eGnekk2eBi-eBi-eBi-eAh

+eFmUZZ0eBi,eBi,eBi,ra   c                     G d dt               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       | j                   |d      |j                         | j                   |d      |j                         y )Nc                   (    e Zd ZeefZdZdZdZdZ	dZ
y)ETestEnum.test_multivalue_and_autonumber_wo_init_wo_value.<locals>.Dayone two threerS  )21r  )22r  )23r   N)ro   rp   rq   r%   r   rh  r   r{  r  r  r   r|   ra   r_   Dayr    s%    #X-J%GGCC!Era   r  rS  r.  rM  r  r  )r   rI  r  rJ  r  r   )rj   r  s     r_   /test_multivalue_and_autonumber_wo_init_wo_valuez8TestEnum.test_multivalue_and_autonumber_wo_init_wo_value  s    	"$ 	" 	**!,TCGG,USWW-ra   c                 r    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                   |d      |j                         | j                   |d	      |j
                         y )
Nc                   ^    e Zd ZeefZdZdZdZdZ	 e
       dfZ e
       dfZdZ e
       dfZy	)
KTestEnum.test_multivalue_and_autonumber_wo_init_w_some_value.<locals>.Colorz#BLACK RED BLUE YELLOW GREEN MAGENTArO  )rQ   Text0)Text1Text2Text3)Text4Text5N)ro   rp   rq   r%   r   rh  r   rT  BLACKr`  r#   ra  YELLOWrb  MAGENTAr|   ra   r_   r   r    sF    #V+J;G(FEC67?DVW_F EfgoGra   r   rQ   r  iir  ir  )	r   rI  r  rJ  r`  ra  r  rb  r   r   s     r_   3test_multivalue_and_autonumber_wo_init_w_some_valuez<TestEnum.test_multivalue_and_autonumber_wo_init_w_some_value  s    		&D 		& 	**B/#.))3/++S1**C0,,c2rEKK0w4ra   c                      G d dt               }| j                  t              5   G d d|      }d d d        y # 1 sw Y   y xY w)Nc                       e Zd ZeZy)BTestEnum.test_combine_new_settings_with_old_settings.<locals>.AutoN)ro   rp   rq   r   rh  r|   ra   r_   Autor    s    Jra   r  c                   ,    e Zd Z e       Z e       ZdZy)HTestEnum.test_combine_new_settings_with_old_settings.<locals>.AutoUniqueru   N)ro   rp   rq   r#   r  BLUHICKr|   ra   r_   
AutoUniquer    s    vvra   r
  )r   r|  r   )rj   r  r
  s      r_   +test_combine_new_settings_with_old_settingsz4TestEnum.test_combine_new_settings_with_old_settings  s=    	 4 	 z* 	T 	 	 	s	   :Ac                      G d dt         t              }| j                  t        |d             | j                  t        |d             | j                  t        |d             | j	                  t        |j                  t                      y )Nc                       e Zd ZdZdZeZdZ e       Z	 e
d      D ]  Ze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z  dfe	dez  <    eZeZy)'TestEnum.test_timedelta.<locals>.Periodz3
            different lengths of time
            zvalue periodzPeriod i   dayzday_%dr   rS  weekzweek_%drY  r  r  zmonth_%dN)ro   rp   rq   r   rT  r   rh  _ignore_varsrp  r   rZ  day_1OneDayweek_1OneWeekr|   ra   r_   rp  r    s     $F J!HVF2Y 0'(%xx!|$02Y 4()!Vy1}%42Y 7)*2wzA~&7FGra   rp  r  rZ  )r9   r   r   r  r#  r  r  rq  s     r_   test_timedeltazTestEnum.test_timedelta  sh    	Y 	  	4523-.
6<<;<ra   c                 t     G d dt               }| j                  |j                  |j                  d          y )Nc                   L    e Zd Ze G d de             Ze G d de             Zy)!TestEnum.test_skip.<locals>.enumAc                       e Zd ZdZdZy)'TestEnum.test_skip.<locals>.enumA.enumBr)  rW  Nro   rp   rq   elementAelementBr|   ra   r_   enumBr  .      ra   r!  c                       e Zd ZdZdZy)'TestEnum.test_skip.<locals>.enumA.enumCr7  r  Nro   rp   rq   elementCelementDr|   ra   r_   enumCr$  2  r"  ra   r(  N)ro   rp   rq   r!   r   r!  r(  r|   ra   r_   enumAr  -  s6         ra   r)  r!  r   rD  r!  r  rj   r)  s     r_   	test_skipzTestEnum.test_skip,  +    	D 	 	ekk5>>'#:;ra   c                 t     G d dt               }| j                  |j                  |j                  d          y )Nc                   L    e Zd Ze G d de             Ze G d de             Zy)&TestEnum.test_nonmember.<locals>.enumAc                       e Zd ZdZdZy),TestEnum.test_nonmember.<locals>.enumA.enumBr)  rW  Nr  r|   ra   r_   r!  r2  :  r"  ra   r!  c                       e Zd ZdZdZy),TestEnum.test_nonmember.<locals>.enumA.enumCr7  r  Nr%  r|   ra   r_   r(  r4  >  r"  ra   r(  N)ro   rp   rq   r'   r   r!  r(  r|   ra   r_   r)  r0  9  s6         ra   r)  r!  r*  r+  s     r_   test_nonmemberzTestEnum.test_nonmember8  r-  ra   c                 T    G d dt               }| j                  |j                  |j                  gt	        |             | j                  t
        t        g|j                         | j                  |j                  d      d       | j                  |j                  d      d       y )Nc                   L    e Zd ZdZ ee      Z ee      Ze	d        Z
d Zd Zy):TestEnum.test_member_with_external_functions.<locals>.Funczan_int a_strc                 R    t        |       D cg c]  }|j                   c}S c c}w r   r  rJ  r}  s     r_   typesz@TestEnum.test_member_with_external_functions.<locals>.Func.typesI      )-c3A333   $c                 P    d| j                   j                  d| j                  dS r  rn   ro   r  r   s    r_   r;  zCTestEnum.test_member_with_external_functions.<locals>.Func.__repr__L      $(NN$;$;TYYIIra   c                 &     | j                   |i |S r   r|  rj   rk   rl   s      r_   __call__zCTestEnum.test_member_with_external_functions.<locals>.Func.__call__N      !tzz40400ra   N)ro   rp   rq   r   r&   r}  an_intr  a_strr   r;  r;  rC  r|   ra   r_   Funcr8  E  s6    $GC[F3KE4 4J1ra   rG  rS  BlahBlah)r   rI  rE  rF  r  r}  r  r;  rj   rG  s     r_   #test_member_with_external_functionsz,TestEnum.test_member_with_external_functionsD  sz    
	14 
	1 	$++tzz2DJ?#sTZZ0Q+J/<ra   c                     G d dt               }| j                  |j                  |j                  gt	        |             | j                  |j                  j
                  |j                  j
                  g|j                         | j                  |j                         d       | j                  |j                  d      d       y )Nc                   L    e Zd ZdZed        Zed        Zed        Zd Z	d Z
y):TestEnum.test_member_with_internal_functions.<locals>.Funcz	haha hehec                       y)Nhahar|   r|   ra   r_   rO  z?TestEnum.test_member_with_internal_functions.<locals>.Func.hahaY  s    ra   c                     d| z  S )Nzhehe -- what a name!  %s!r|   r  s    r_   hehez?TestEnum.test_member_with_internal_functions.<locals>.Func.hehe\  s    2T99ra   c                 R    t        |       D cg c]  }|j                   c}S c c}w r   r:  r}  s     r_   r;  z@TestEnum.test_member_with_internal_functions.<locals>.Func.types_  r<  r=  c                 P    d| j                   j                  d| j                  dS r  r?  r   s    r_   r;  zCTestEnum.test_member_with_internal_functions.<locals>.Func.__repr__b  r@  ra   c                 &     | j                   |i |S r   r|  rB  s      r_   rC  zCTestEnum.test_member_with_internal_functions.<locals>.Func.__call__d  rD  ra   N)ro   rp   rq   r   r&   rO  rQ  r   r;  r;  rC  r|   ra   r_   rG  rM  W  sH    !G : :4 4J1ra   rG  rO  rH  zhehe -- what a name!  BlahBlah!)r   rI  rO  rQ  r  rJ  r;  rI  s     r_   #test_member_with_internal_functionsz,TestEnum.test_member_with_internal_functionsV  s    	14 	1  	$))TYY/d<$))//499??;TZZHf-:.0QRra   c                      G d dt               }| j                  |j                  d       | j                  t        dt
        |dd       | j                  t        dt        |d       y )Nc                   ,    e Zd Z ed      Z ed      Zy)9TestEnum.test_constantness_of_constants.<locals>.Universei!	@r  N)ro   rp   rq   r   r  r  r|   ra   r_   UniverserX  m  s    (#B%Ara   rZ  rY  cannot rebind constantr  rM  cannot delete constant)r   rI  r  re   r  r"  r  rj   rZ  s     r_   test_constantness_of_constantsz'TestEnum.test_constantness_of_constantsl  sY    	&t 	& 	h/~/H'S[]acde~/H'S[]abra   c                      G d dt               }| j                  |j                  d       | j                  |j                  d|j                  z         y )Nc                   2    e Zd Z ed      Z edez        Zy)=TestEnum.test_math_and_stuff_with_constants.<locals>.UniverserY  rv   N)ro   rp   rq   r   r  r  r|   ra   r_   rZ  ra  u  s    (#B1r6"Cra   rZ  rY  rv   )r   rI  r  r  r]  s     r_   "test_math_and_stuff_with_constantsz+TestEnum.test_math_and_stuff_with_constantst  s@    	#t 	# 	h/q8;;7ra   c                 t    G d dt               }| j                  t        |      |j                  |j                  |j
                  |j                  g       | j                  t        |j                        |j
                  |j                  g       | j                  |j                  |j                  v        y )Nc                   ^    e Zd ZdZ e       Z e       Z e       Z e       Z e	eez        Z
y):TestEnum.test_constant_with_auto_is_updated.<locals>.Fruitzapple banana lemon orangeN)ro   rp   rq   r   r#   appler   lemonoranger   CitrusTypesr|   ra   r_   r   re  |  s1    1GFEVFFEVF"56>2Kra   r   )	r   rI  r  rf  r   rg  rh  ri  r#  )rj   r   s     r_   "test_constant_with_auto_is_updatedz+TestEnum.test_constant_with_auto_is_updated{  s    	3D 	3 	eu{{ELL%++u||&\]e//05;;2MN(9(99:ra   c                 B    G d dt               }t        |      D ]!  \  }}| j                  ||j                         # |}| 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       | 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       | 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        | j                  |j                   j
                  d!       | j                  |j                   j                  d"       | j                  |j                   j                  d#        G d$ dt               }t        |      D ]$  \  }}| 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       | 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       | j                  |j                  j                  d.       | j                  |j                   j
                  d!       | j                  |j                   j                  d/       | j#                  t$              5   G d0 dt               }d d d        | j#                  t$              5   G d1 dt               }d d d        y # 1 sw Y   7xY w# 1 sw Y   y xY w)2Nc                   B    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y)5TestEnum.test_order_as_function.<locals>.TestSequencezvalue, sequencec                     | j                   S r   r  r&   s    r_   r  z>TestEnum.test_order_as_function.<locals>.TestSequence.<lambda>  s
    V__ ra   An$(1,6)r   An$(7,2)ru   An$(9,4)rv   	Hn$(13,6)rw   	Cn$(19,3)r   Zn$(1,1)r   Bn(2,1)r  FnrS  Rn$(5,1)r.  Sn$(6,1)rM  Qn$(7,2)rT  Nro   rp   rq   rT  r   item_idr  warehouse_nocompanyr  	availablecontract_itemsales_categorygl_categorywarehouse_category	inv_unitsr|   ra   r_   TestSequencerm    sD    &F4G'9G'9J'9L'9G'9H'9I'9M'9N'9K'9'9Ira   r  r  rq  r   r  rs  ru   r  ru  rv   r  rw  rw   r  ry  r   r  r{  r   r  r}  r  r  r  rS  r  r  r.  r  r  rM  r  r  rT  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y)rm  c                      | j                   d   S rL  r|  ro  s    r_   r  z>TestEnum.test_order_as_function.<locals>.TestSequence.<lambda>  s    V\\!_ ra   rp  rr  rt  rv  rx  rz  r|  r~  r  r  r  N)ro   rp   rq   r   r  r  r  r  r  r  r  r  r  r  r  r|   ra   r_   r  z5TestEnum.test_order_as_function.<locals>.TestSequence  s?    4G'9G'9J'9L'9G'9H'9I'9M'9N'9K'9'9Ira   rp  rr  rt  rv  rx  rz  r|  r~  r  r  r  c                   B    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y)rm  r  c                     | j                   S r   r  ro  s    r_   r  z>TestEnum.test_order_as_function.<locals>.TestSequence.<lambda>  
     ra   rp  rr  rt  rv  rx  rz  r|  r~  r  r  r  Nr  r|   ra   r_   r  z5TestEnum.test_order_as_function.<locals>.TestSequence  sD    #8+=+=
+=+=+=+=	+=+=+=+="+=	ra   c                   B    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y)rm  r  c                     | j                   S r   r  ro  s    r_   r  z>TestEnum.test_order_as_function.<locals>.TestSequence.<lambda>  r  ra   rp  rt  rv  rr  r  rz  r|  r~  rx  r  r  N)ro   rp   rq   rT  r   r  r  r  r  r  r  r  r  r  r  r  r|   ra   r_   r  z5TestEnum.test_order_as_function.<locals>.TestSequence  sD    #8+=+=+=+=
+=	+=	+=+=+=+=+="ra   )r   rU  rI  r  r  r  rJ  r  r  r  r  r  r  r  r  r  r  r|  r   )rj   r  rZ  r&   tss        r_   test_order_as_functionzTestEnum.test_order_as_function  s   	:4 	: #<0 	1IAvQ0	1)4)):6,,a0++\:,,j9//3--~>..
;1115)4));7,,a0)):6**K8--q1**K8++Z8..2))..@))//;))22A6**//1AB**00$7**33Q7,,m<--z:00!4..335IJ..44jA..77;**K8++Z8..3	:4 	: #<0 	1IAvQQ0	1)4))?;++\:,,o>--~>..@)4))+;<)):6**,<=**K8++_=))..@))//@**//1AB**00)<,,m<--?..335IJ..44oF**K8++-=>y) 	>>t >	>  y) 	>>t >	> 	>!	> 	> 	> 	>s   d	0d	ddc                 f
    G d dt               } G d d|      }t        |      D ]!  \  }}| j                  ||j                         # |}| 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       | 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       | 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"       | j                  |j                   j
                  d#       | j                  |j                   j                  d$       | j                  |j                   j                  d%       y )&Nc                       e Zd ZdZd Zy);TestEnum.test_order_as_function_in_subclass.<locals>.Parentr  c                     | j                   S r   r  r  s    r_   r  zDTestEnum.test_order_as_function_in_subclass.<locals>.Parent.<lambda>  s
    

 ra   N)ro   rp   rq   rT  r   r|   ra   r_   Parentr    s    %F*Gra   r  c                   8    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y):TestEnum.test_order_as_function_in_subclass.<locals>.Childrp  rr  rt  rv  rx  rz  r|  r~  r  r  r  N)ro   rp   rq   r  r  r  r  r  r  r  r  r  r  r  r|   ra   r_   Childr  
  s:    '9G'9J'9L'9G'9H'9I'9M'9N'9K'9'9Ira   r  r  rq  r   r  rs  ru   r  ru  rv   r  rw  rw   r  ry  r   r  r{  r   r  r}  r  r  r  rS  r  r  r.  r  r  rM  r  r  rT  )r   rU  rI  r  r  r  rJ  r  r  r  r  r  r  r  r  r  r  )rj   r  r  rZ  r&   r  s         r_   "test_order_as_function_in_subclassz+TestEnum.test_order_as_function_in_subclass  s   	+T 	+	:F 	: #5) 	1IAvQ0	1 )4)):6,,a0++\:,,j9//3--~>..
;1115)4));7,,a0)):6**K8--q1**K8++Z8..2))..@))//;))22A6**//1AB**00$7**33Q7,,m<--z:00!4..335IJ..44jA..77;**K8++Z8..3ra   c                 $    G d dt               } G d dt               } 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 d d
||t              }| j                  |j                  j                  d       | j                  |j
                  j                  d       | j                  |j                  j                  d       | j                  |j                  d       | j                  t        |j                        dt        |j                        dd        G d d
||t              }| j                  |j                  j                  d       | j                  |j
                  j                  d       | j                  |j                  j                  d       | j                  |j                  d       | j                  t        |j                        dt        |j                        dd        G d d||t              }| j                  |j                  j                  d       | j                  |j
                  j                  d       | j                  |j                  j                  d       | j                  t        |j                        dt        |j                        dd       | j                  |j                  j                         d        G d d||t              }| j                  |j                  j                  d       | j                  |j
                  j                  d       | j                  |j                  j                  d       | j                  t        |j                        dt        |j                        dd       | j                  |j                  j                         d       | j                  |j                  j                         d        G d d|||      }| j                  |j                  j                  d       | j                  |j
                  j                  d       | j                  |j                  j                  d       | j                  t        |j                        dt        |j                        dd       | j                  |j                  j                         d       | j                  |j                  j                         d        G d d|||      }	| j                  |	j                  j                  d       | j                  |	j
                  j                  d       | j                  |	j                  j                  d       | j                  t        |	j                        dt        |j                        d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                  t        |
j                        dt        |j                        dd       | j                  |
j                  j                         d       | j                  |	j                  j                         d       | j                  t        |
t                     y ) Nc                       e Zd Zed        Zy).TestEnum.test_multiple_mixin.<locals>.MaxMixinc                 *    t        |       }|| _        |S r   )r  MAX)r  maxs     r_   r  z2TestEnum.test_multiple_mixin.<locals>.MaxMixin.MAXA  s    #h
ra   N)ro   rp   rq   r   r  r|   ra   r_   MaxMixinr  @  s     ra   r  c                       e Zd Zd Zy).TestEnum.test_multiple_mixin.<locals>.StrMixinc                 6    | j                   j                         S r   r  rW  r   s    r_   r  z6TestEnum.test_multiple_mixin.<locals>.StrMixin.__str__G      {{((**ra   Nro   rp   rq   r  r|   ra   r_   StrMixinr  F      +ra   r  c                       e Zd Zd Zy).TestEnum.test_multiple_mixin.<locals>.SomeEnumc                      y)Nbooyahr|   r   s    r_   behaviorz7TestEnum.test_multiple_mixin.<locals>.SomeEnum.behaviorJ      ra   N)ro   rp   rq   r  r|   ra   r_   SomeEnumr  I  s     ra   r  c                       e Zd Zd Zd Zy)1TestEnum.test_multiple_mixin.<locals>.AnotherEnumc                      y)Nnuhuh!r|   r   s    r_   r  z:TestEnum.test_multiple_mixin.<locals>.AnotherEnum.behaviorM  r  ra   c                      y)N
what's up?r|   r   s    r_   socialz8TestEnum.test_multiple_mixin.<locals>.AnotherEnum.socialO  s    #ra   N)ro   rp   rq   r  r  r|   ra   r_   AnotherEnumr  L  s     $ra   r  c                   :    e Zd ZdZ e       Z e       Z e       Zy+TestEnum.test_multiple_mixin.<locals>.ColorRED GREEN BLUENro   rp   rq   r   r#   r`  rb  ra  r|   ra   r_   r   r  Q      &G&CFE6Dra   r   ru   rv   rw   
Color.BLUEc                   :    e Zd ZdZ e       Z e       Z e       Zyr  r  r|   ra   r_   r   z+TestEnum.test_multiple_mixin.<locals>.Color[  r  ra   r   z is not c                   :    e Zd ZdZ e       Z e       Z e       Zyr  r  r|   ra   r_   r   z+TestEnum.test_multiple_mixin.<locals>.Colore  r  ra   c                   :    e Zd ZdZ e       Z e       Z e       Zy)/TestEnum.test_multiple_mixin.<locals>.CoolColorr  Nr  r|   ra   r_   	CoolColorr  o  r  ra   r  r  c                   :    e Zd ZdZ e       Z e       Z e       Zy)1TestEnum.test_multiple_mixin.<locals>.CoolerColorr  Nr  r|   ra   r_   CoolerColorr  y  r  ra   r  r  r  c                   :    e Zd ZdZ e       Z e       Z e       Zy)2TestEnum.test_multiple_mixin.<locals>.CoolestColorr  Nr  r|   ra   r_   CoolestColorr    r  ra   r  c                   :    e Zd ZdZ e       Z e       Z e       Zy)3TestEnum.test_multiple_mixin.<locals>.ConfusedColorr  Nr  r|   ra   r_   ConfusedColorr    r  ra   r  c                   :    e Zd ZdZ e       Z e       Z e       Zy)3TestEnum.test_multiple_mixin.<locals>.ReformedColorr  Nr  r|   ra   r_   ReformedColorr    r  ra   r  )r  r   rI  r`  rJ  rb  ra  r  r  r  r  r   r#  
issubclassr}  )rj   r  r  r  r  r   r  r  r  r  r  s              r_   test_multiple_mixinzTestEnum.test_multiple_mixin?  s   	v 		+v 	+	 t 	 	$$ 	$
	Hd 	
 	!,**A.))1-A&UZZ,7	Hh 	
 	!,**A.))1-A&UZZ&C

OU[2\]	Hh 	
 	!,**A.))1-A&UZZ&C

OU[2\]	(D 	
 	,,a0..2--q1Y^^,fEJJY_6`a//18<	(K 	
 	..2**00!4))//3[--.#ejj/[a8bc113X>//1<@	8X{ 	
 	))//3++1115**00!4\../3uzz?\b9cd))224h?))002LA	Hk8 	
 	**00!4,,22A6++1115]//0&CPUPZPZO]c:de**335x@**113\B	Hgx 	
 	**00!4,,22A6++1115]//0&CPUPZPZO]c:de**335x@**113\B
=#67ra   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)9TestEnum.test_multiple_inherited_mixin.<locals>.Decision1REVERT
REVERT_ALLRETRYNro   rp   rq   r  r  r  r|   ra   r_   	Decision1r        F%JEra   r  c                       e Zd Zy)6TestEnum.test_multiple_inherited_mixin.<locals>.MyEnumNr  r|   ra   r_   rA  r    r  ra   rA  c                       e Zd ZdZdZdZy)9TestEnum.test_multiple_inherited_mixin.<locals>.Decision2r  r  r  Nr  r|   ra   r_   	Decision2r    r  ra   r  )r    r	   )rj   r  rA  r  s       r_   test_multiple_inherited_mixinz&TestEnum.test_multiple_inherited_mixin  s@    		 	 
		W 			 	 
	ra   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)-TestEnum.test_value_auto_assign.<locals>.Somec                 ,    t         j                  |       S r   r  r  )r  r  s     r_   r  z5TestEnum.test_value_auto_assign.<locals>.Some.__new__      ~~c**ra   ru   rv   N)ro   rp   rq   r  r  r  r|   ra   r_   Somer    s    +AAra   r  ru   rv   )r   rI  r  rJ  r  )rj   r  s     r_   test_value_auto_assignzTestEnum.test_value_auto_assign  s@    	4 	
 	q)q)ra   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)z2Support using Enum to refer to types deliberately.c                       e Zd ZeZeZeZy),TestEnum.test_enum_of_types.<locals>.MyTypesN)	ro   rp   rq   r}  rZ  r  rt  r  r8  r|   ra   r_   MyTypesr    s    AAAra   r  c                       e Zd Zy)(TestEnum.test_enum_of_types.<locals>.FooNr  r|   ra   r_   rR  r    r  ra   rR  c                       e Zd Zy)(TestEnum.test_enum_of_types.<locals>.BarNr  r|   ra   r_   Barr    r  ra   r  c                       e Zd ZW ZW  Zy)-TestEnum.test_enum_of_types.<locals>.MyTypes2N)ro   rp   rq   r)  rW  )r  rR  s   r_   MyTypes2r    s    AAra   r  c                       e Zd Zy)5TestEnum.test_enum_of_types.<locals>.SpamEnumNotInnerNr  r|   ra   r_   SpamEnumNotInnerr    r  ra   r 	  c                       e Zd ZW  Zy)-TestEnum.test_enum_of_types.<locals>.SpamEnumN)ro   rp   rq   r  )r 	  s   r_   SpamEnumr	    s    #Dra   r	  N)r   rI  rZ  rJ  r}  rt  r  r8  r  r)  rW  r  )rj   r  r  r	  r  rR  r 	  s       @@@r_   test_enum_of_typeszTestEnum.test_enum_of_types  s    	d 	 	#.%0#.	 		 		t 	 	))3/))3/	 		$t 	$,,.>?ra   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 )Nc                   2    e Zd ZdZdZdZdZ G d de      Zy)ETestEnum.test_nested_classes_in_enum_do_become_members.<locals>.Outer	a b InnerOuterru   rv   c                       e Zd ZdZdZdZy)KTestEnum.test_nested_classes_in_enum_do_become_members.<locals>.Outer.InnerOuter.InnerrT  r   Nro   rp   rq   r  barr|   ra   r_   Innerr	    s    #0LCCra   r	  Nro   rp   rq   r   r)  rW  r   r	  r|   ra   r_   r		  r	    s"    %&D ra   r		  ru   rT  r   r#  r  r	  rI  r)  rJ  r  r  r	  rW  rj   r		  s     r_   -test_nested_classes_in_enum_do_become_membersz6TestEnum.test_nested_classes_in_enum_do_become_members  s      OOJu{{E:;UWW]]A.U[[..2288"=U[[&&'""&&(9(9(=(=> U%''5;;/ra   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 )Nc                   .    e Zd ZdZdZdZ G d de      Zy)LTestEnum.test_really_nested_classes_in_enum_do_become_members.<locals>.Outerr	  ru   rv   c                       e Zd ZdZdZy)RTestEnum.test_really_nested_classes_in_enum_do_become_members.<locals>.Outer.InnerrT  r   Nr	  r|   ra   r_   r	  r	    s    CCra   r	  Nr	  r|   ra   r_   r		  r	    s    %D ra   r		  ru   rT  r	  r	  s     r_   4test_really_nested_classes_in_enum_do_become_membersz=TestEnum.test_really_nested_classes_in_enum_do_become_members  s      OOJu{{E:;UWW]]A.U[[..2288"=U[[&&'""&&(9(9(=(=> U%''5;;/ra   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)2Support locally-defined nested classes using @skipc                   8    e Zd ZdZdZdZe G d de             Zy)ITestEnum.test_nested_classes_in_enum_are_skipped_with_skip.<locals>.Outerr		  ru   rv   c                       e Zd ZdZdZdZy)OTestEnum.test_nested_classes_in_enum_are_skipped_with_skip.<locals>.Outer.Innerr	  rT  r   Nr	  r|   ra   r_   r	  r	  	  s    ,ra   r	  Nro   rp   rq   r)  rW  r!   r   r	  r|   ra   r_   r		  r	    s*    "LAA  ra   r		  ru   rT  Nr   r#  r  r	  r.  rI  r)  rJ  r  r  r	  rW  r	  s     r_   1test_nested_classes_in_enum_are_skipped_with_skipz:TestEnum.test_nested_classes_in_enum_are_skipped_with_skip  s    	D 	 	
5;;56*..3[[__ekkoo.	 	KWWegg	ra   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)r	  c                   4    e Zd ZdZdZe G d de             Zy)PTestEnum.test_really_nested_classes_in_enum_are_skipped_with_skip.<locals>.Outerru   rv   c                       e Zd ZdZdZy)VTestEnum.test_really_nested_classes_in_enum_are_skipped_with_skip.<locals>.Outer.InnerrT  r   Nr	  r|   ra   r_   r	  r'	    s    ra   r	  Nr 	  r|   ra   r_   r		  r%	    s%    AA  ra   r		  ru   rT  Nr!	  r	  s     r_   8test_really_nested_classes_in_enum_are_skipped_with_skipzATestEnum.test_really_nested_classes_in_enum_are_skipped_with_skip  s    	D 	 	
5;;56*..3[[__ekkoo.	 	KWWegg	ra   c                      G d dt               }| j                  |j                   |d      u        | j                  |j                   |       u        y )Nc                   ,    e Zd ZdZdZdZdZed        Zy)2TestEnum.test_enum_call_without_arg.<locals>.Colorr   ru   rv   rw   c                 ,    |t         u r| j                  S y r   )r(   r  rO  s     r_   rP  zBTestEnum.test_enum_call_without_arg.<locals>.Color._missing_value_6  s    F?99$ #ra   N)	ro   rp   rq   r  r   r   r   r}  rP  r|   ra   r_   r   r+	  0  s(    ECED% %ra   r   ru   )r   r#  r   r  r   s     r_   test_enum_call_without_argz#TestEnum.test_enum_call_without_arg/  s@    		%D 		% 			U1X-.uw./ra   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 )+TestEnum.test_init_subclass.<locals>.MyEnumc                     t        |   di | j                  | j                  j	                  dd             d| _        y N_testFrA  r|   rh   __init_subclass__r   r  get_test1r  rl   rA  rn   rj   s     r_   r5	  z=TestEnum.test_init_subclass.<locals>.MyEnum.__init_subclass__?  ;    fc4<t<  !1!1'5!AB%
ra   ro   rp   rq   r5	  rr   rn   rA  rj   s   @r_   rA  r0	  >      & &ra   rA  c                   "     e Zd Z fdZ xZS ).TestEnum.test_init_subclass.<locals>.TheirEnumc                 2    t        |   di | d| _        y N	TheirEnumr|   rh   r5	  _test2r  rl   rA	  rn   s     r_   r5	  z@TestEnum.test_init_subclass.<locals>.TheirEnum.__init_subclass__E      i7?$?(
ra   r:	  rn   rA	  s   @r_   rA	  r>	  D      ) )ra   rA	  c                       e Zd Zd Zy).TestEnum.test_init_subclass.<locals>.WhoseEnumc                      y r   r|   r  rl   s     r_   r5	  z@TestEnum.test_init_subclass.<locals>.WhoseEnum.__init_subclass__I  r  ra   Nro   rp   rq   r5	  r|   ra   r_   	WhoseEnumrI	  H      ra   rM	  c                       e Zd ZdZy)+TestEnum.test_init_subclass.<locals>.NoEnumru   Nro   rp   rq   r;  r|   ra   r_   NoEnumrP	  K      Cra   rR	  r7	  rC	  Fc                       e Zd Zd Zy),TestEnum.test_init_subclass.<locals>.OurEnumc                     d| _         y NOurEnumrC	  rK	  s     r_   r5	  z>TestEnum.test_init_subclass.<locals>.OurEnum.__init_subclass__T  	    &
ra   NrL	  r|   ra   r_   rX	  rU	  S  r'  ra   rX	  c                       e Zd Zd Zy).TestEnum.test_init_subclass.<locals>.WhereEnumc                      y r   r|   rK	  s     r_   r5	  z@TestEnum.test_init_subclass.<locals>.WhereEnum.__init_subclass__W  r  ra   NrL	  r|   ra   r_   	WhereEnumr\	  V  rN	  ra   r^	  c                       e Zd ZdZy).TestEnum.test_init_subclass.<locals>.NeverEnumr  NrQ	  r|   ra   r_   	NeverEnumr`	  Y      Cra   ra	  )r   rI  r  r   r6	  rj   rM	  rR	  rX	  r^	  ra	  rA  rA	  s   `     @@r_   test_init_subclasszTestEnum.test_init_subclass=  s   	&T 	&	) 	)		 		Y 	++H5x@++H5x@++H5{C,,Xu=>,,Xu=>	'f 	'	 			 	))(3X>++//%@A++H5yA++//%@A++//%@Ara   c                     G d dt               | j                  t              5   G d dt              }d d d        | j                  t              5   G fddt              }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y)*TestEnum.test_init_exception.<locals>.Basec                 ,    t         j                  |       S r   r  r  rk   s     r_   r  z2TestEnum.test_init_exception.<locals>.Base.__new__c  r  ra   c                     t        d|      )NzI don't like)r   )rj   r  s     r_   ri   z3TestEnum.test_init_exception.<locals>.Base.__init__e  s     33ra   N)ro   rp   rq   r  ri   r|   ra   r_   Baserg	  b  s    +4ra   rk	  c                       e Zd ZdZd Zy),TestEnum.test_init_exception.<locals>.MyEnumr)  c                     || _         y r   r  rj   r  s     r_   ri   z5TestEnum.test_init_exception.<locals>.MyEnum.__init__j  	    DFra   N)ro   rp   rq   r  ri   r|   ra   r_   rA  rm	  h  s    ra   rA  c                   "    e Zd ZdZd Z fdZy)rm	  r)  c                     || _         y r   ro	  rp	  s     r_   ri   z5TestEnum.test_init_exception.<locals>.MyEnum.__init__o  rq	  ra   c                 D    j                  |       } |      |_        |S r   )r  r  )r  rJ  r&   rk	  s      r_   r  z4TestEnum.test_init_exception.<locals>.MyEnum.__new__q  s!    !\\#.F%)%[FN!Mra   N)ro   rp   rq   r  ri   r  )rk	  s   r_   rA  z,TestEnum.test_init_exception.<locals>.MyEnumm  s    "ra   )r  r|  r   r   r   )rj   rA  rk	  s     @r_   test_init_exceptionzTestEnum.test_init_exceptiona  sz    	46 	4
 y) 	t 	
 z* 	""t "	" 	"	 	
	" 	"s   A0A<0A9<B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       y c c}w )Nr   
namedtupleTTuple
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1TestEnum.test_namedtuple_as_value.<locals>.NTEnumr   ru   rv   r   r8  Nro   rp   rq   NONEr  r  ry	  s   r_   NTEnumr}	  y  /    !Q#Dq!aS!Aq!Y'Ara   r	  *<NTEnum.NONE: TTuple(id=0, a=0, blist=[])>idr)  blistru   rv   r   r8  collectionsrx	  r   rI  rX  r	  rJ  rj   rx	  r	  r  ry	  s       @r_   test_namedtuple_as_valuez!TestEnum.test_namedtuple_as_valuev      *Hl3	(T 	( 	fkk*,XY**Fa1B,GH"()Q)1,fQqc.JFVW[\dmLno	)   Cc                      G d dt               } G d dt               }| j                  t        |j                  d         t        u        | j                  t        |j                  d         t        u        y )Nc                       e Zd Zd Zy),TestEnum.test_gnv_is_static.<locals>.LazyGNVc                      y r   r|   r  r   r  ri  s       r_   r  zBTestEnum.test_gnv_is_static.<locals>.LazyGNV._generate_next_value_  r  ra   Nr  r|   ra   r_   LazyGNVr	    rN	  ra   r	  c                       e Zd Zed        Zy),TestEnum.test_gnv_is_static.<locals>.BusyGNVc                      y r   r|   r	  s       r_   r  zBTestEnum.test_gnv_is_static.<locals>.BusyGNV._generate_next_value_  s    ra   N)ro   rp   rq   r  r  r|   ra   r_   BusyGNVr	    s     ra   r	  r  )r   r#  r.  r  r  )rj   r	  r	  s      r_   test_gnv_is_staticzTestEnum.test_gnv_is_static  s`    	d 		d 	 	W--.EFG<WXW--.EFG<WXra   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       y c c}w )Nr   rw	  ry	  rz	  c                   V    e Zd Z W  ddg       Z W  dddg      Z W  ddg d      Zyr|	  r~	  r	  s   r_   r	  z1TestEnum.test_namedtuple_as_value.<locals>.NTEnum  r	  ra   r	  r	  r	  ru   rv   r   r8  r	  r	  s       @r_   r	  z!TestEnum.test_namedtuple_as_value  r	  r	  c                 <    G d dt               }| j                  t        |      d       | j                  |j                  j                  d       | j                  |j
                  j                  d       | j                  |j                  j                  d       y )Nc                   j    e Zd ZdZ e       d e       fZdd e       fZ e        e        e       fZy)4TestEnum.test_multiple_auto_assignment.<locals>.Manyr&  rv   r   r   Nr'  r|   ra   r_   Manyr	    s6    G46!A1dfA&Ara   r	  rw   )ru   rv   rv   )r   r   rw   )r   r   r  )r   rI  r  r  rJ  r  r  )rj   r	  s     r_   test_multiple_auto_assignmentz&TestEnum.test_multiple_auto_assignment  sl    	'4 	'
 	TA&y1y1y1ra   N)ro   rp   rq   r  r  r  r3  r>  rG  rJ  rM  rP  r]  rb  rs  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r+  r<  rA  rF  rH  rJ  rL  rO  rR  rY  r_  rh  rr  ru  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r.  r6  r<  rG  rX  r  r  r  r  r  r  r  r  r&  r2  r7  rH  rR  rZ  r_  rd  rq  r{  r  CONTINUESWITCHING_PROTOCOLS
PROCESSINGr  r  r  r  r  r  r  r  r  r  r  r"  r/  r=  rE  rP  rT  rY  rd  rk  rw  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r,  r5  rJ  rU  r^  rb  rj  r  r  r  r  r  r	  r.   r	  r	  r"	  r(	  r-	  rd	  ru	  r	  r	  r	  r|   ra   r_   r  r    s   <|>.EBBD@14.$BB	GJ$%
*:&)6K?LAHB:5=I	O
=
8B72,*****1>0$8;=79OKA=5
	4$4"4$4"4*4,4"4 4"4 4$4$4*4,4"4"<2:
4A447$??GE9E
C#?z[;|56n66p66p3Ej54n
@8?&)$8, 4B- DH>"J6	E*H*> 3 h"
/55.
/P"2<2:\(E&52	H
H<"(=*<&.8	)	::	:@",H,B%-N.5(=,
<
<=$S,c8
;z>x9vf8P*@0 	.	(0*0"BH"*	Y	2ra   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestStrEnumc                     G d dt                G fddt              }| j                  t        |      |j                  g       | j                  |j
                  j                  d       d|j                  _        | j                  |j                  j
                  d       | j                  |j                  j                  d   d       y )Nc                   $    e Zd ZdZddZd Zd Zy)-TestStrEnum.test_set_name.<locals>.DescriptorNc                 <    || S |j                   | j                     S r   r  r  s      r_   r   z5TestStrEnum.test_set_name.<locals>.Descriptor.__get__  r  ra   c                 6    ||j                   | j                  <   y r   r  r  s      r_   r  z5TestStrEnum.test_set_name.<locals>.Descriptor.__set__  r  ra   c                     || _         y r   r  r  s      r_   r  z:TestStrEnum.test_set_name.<locals>.Descriptor.__set_name__  r  ra   r   r  r|   ra   r_   r  r	    r  ra   r  c                   "    e Zd ZdZ W         Zy))TestStrEnum.test_set_name.<locals>.AnEnumr  Nr  r  s   r_   r  r	    r  ra   r  r  r   r  r  s     @r_   r  zTestStrEnum.test_set_name  r  ra   c                 l    G d dt               }| j                  t        |      d       | j                  |j                  d       | j	                  t        |j                  t                      | j                  |j                  d       | j	                  t        |j                  t                      y )Nc                       e Zd ZdZdZy)/TestStrEnum.test_private_names.<locals>.Privater  r	  Nr
  r|   ra   r_   r  r	    r  ra   r  r   r  r	  r  r  s     r_   r  zTestStrEnum.test_private_names  r  ra   c                     G d dt               }| j                  |j                  |j                  k         | j	                  |j                  j                         d       | j	                  |j                  j                  d      d       y )Nc                       e Zd ZdZdZy)7TestStrEnum.test_strenum_inherited_methods.<locals>.phyr(  r)  Nr
  r|   ra   r_   r  r	    r*  ra   r  r  r)  ru   )r	   r#  r  r  rI  upperr  r  s     r_   test_strenum_inherited_methodsz*TestStrEnum.test_strenum_inherited_methods  s`    	' 	 	().s+Q/ra   c                     t         t               g t        dfD ]2  | j                  t        d      5   G fddt              }d d d        4  G d dt              }| j                  |D cg c]  }|j                   c}g d       | j                  t        d      5   G d	 dt              }d d d         G d
 dt              }| j                  |D cg c]  }|j                   c}g d       | j                  t        d      5   G d dt              }d d d         G d dt              }| j                  |D cg c]  }|j                   c}g d       y # 1 sw Y   MxY wc c}w # 1 sw Y   xY wc c}w # 1 sw Y   hxY wc c}w )NrM  zvalues must be strc                       e Zd ZW  Zy),TestStrEnum.test_strict_strenum.<locals>.HuhNro   rp   rq   huh)uhohs   r_   r  r	    s    Cra   r  c                   8    e Zd ZdZ e       ZdZ e       ZdZdZ	y)/TestStrEnum.test_strict_strenum.<locals>.Eitherthis that Those lower upperThatrW  UPPERN
ro   rp   rq   r   r#   rD  rB  ThoserW  r	  r|   ra   r_   Eitherr	    $    3G6DDFEEEra   r	  )rD  r	  rC  rW  r	  z is not lower-casec                       e Zd ZdZyr	  WhatNr	  r|   ra   r_   r  z,TestStrEnum.test_strict_strenum.<locals>.Huh      ra   c                   8    e Zd ZdZ e       ZdZ e       ZdZdZ	y).TestStrEnum.test_strict_strenum.<locals>.Lowerr	  rB  rW  r	  Nr	  r|   ra   r_   Lowerr	    r	  ra   r	  )rD  rB  rC  rW  r	  z is not upper-casec                       e Zd ZdZyr	  r	  r|   ra   r_   r  z,TestStrEnum.test_strict_strenum.<locals>.Huh  r	  ra   c                   8    e Zd ZdZ e       ZdZ e       ZdZdZ	y).TestStrEnum.test_strict_strenum.<locals>.Upperr	  THATLOWERr	  Nr	  r|   ra   r_   Upperr	    r	  ra   r	  )THISr	  THOSEr	  r	  )
r  r   re   r   r	   rI  rJ  r   r
   r   )rj   r  r	  r~  r	  r	  r	  s         @r_   test_strict_strenumzTestStrEnum.test_strict_strenum  sQ   VXr43 	D''	3HI '  		W 	 	62a!''24_`##J0EF 	l 		L 	 	51a!''13^_##J0EF 	l 		L 	 	51a!''13^_I  3	 	 2	 	 2s5   E,E)E.E:E?>FE&	.E7?F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 ).TestStrEnum.test_init_subclass.<locals>.MyEnumc                     t        |   di | j                  | j                  j	                  dd             d| _        y r2	  r4	  r8	  s     r_   r5	  z@TestStrEnum.test_init_subclass.<locals>.MyEnum.__init_subclass__  r9	  ra   r:	  r;	  s   @r_   rA  r	    r<	  ra   rA  c                   "     e Zd Z fdZ xZS )1TestStrEnum.test_init_subclass.<locals>.TheirEnumc                 2    t        |   di | d| _        y r@	  rB	  rD	  s     r_   r5	  zCTestStrEnum.test_init_subclass.<locals>.TheirEnum.__init_subclass__  rE	  ra   r:	  rF	  s   @r_   rA	  r	    rG	  ra   rA	  c                       e Zd Zd Zy)1TestStrEnum.test_init_subclass.<locals>.WhoseEnumc                      y r   r|   rK	  s     r_   r5	  zCTestStrEnum.test_init_subclass.<locals>.WhoseEnum.__init_subclass__  r  ra   NrL	  r|   ra   r_   rM	  r	    rN	  ra   rM	  c                       e Zd ZdZy).TestStrEnum.test_init_subclass.<locals>.NoEnumr  NrQ	  r|   ra   r_   rR	  r	  
  rb	  ra   rR	  r7	  rC	  Fc                       e Zd Zd Zy)/TestStrEnum.test_init_subclass.<locals>.OurEnumc                     d| _         y rW	  rY	  rK	  s     r_   r5	  zATestStrEnum.test_init_subclass.<locals>.OurEnum.__init_subclass__  rZ	  ra   NrL	  r|   ra   r_   rX	  r	    r'  ra   rX	  c                       e Zd Zd Zy)1TestStrEnum.test_init_subclass.<locals>.WhereEnumc                      y r   r|   rK	  s     r_   r5	  zCTestStrEnum.test_init_subclass.<locals>.WhereEnum.__init_subclass__  r  ra   NrL	  r|   ra   r_   r^	  r	    rN	  ra   r^	  c                       e Zd ZdZy)1TestStrEnum.test_init_subclass.<locals>.NeverEnumr  NrQ	  r|   ra   r_   ra	  r	    rb	  ra   ra	  )r	   rI  r  r   r6	  rc	  s   `     @@r_   rd	  zTestStrEnum.test_init_subclass  s   	&W 	&	) 	)		 		Y 	++H5x@++H5x@++H5{C,,Xu=>,,Xu=>	'f 	'	 			 	))(3X>++//%@A++H5yA++//%@A++//%@Ara   N)ro   rp   rq   r  r  r	  r	  rd	  r|   ra   r_   r	  r	    s    >.E0&`P"Bra   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%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+ e,jZ                  e.d*      d+        Z/d, Z0d- Z1d. Z2d/ Z3d0 Z4d1 Z5d2 Z6d3 Z7d4 Z8d5 Z9d6 Z:d7 Z;d8 Z<y9):TestFlagzTests of the Flags.c                      G d dt               }|| _         G d dt               }|| _         G d dt               }|| _         G d dt        t               }|| _         G d	 d
t               }|| _        y )Nc                       e Zd ZdZd\  ZZZy)TestFlag.setUp.<locals>.PermR W X)r   rv   ru   Nro   rp   rq   r   RWXr|   ra   r_   Permr	  %  s    GGAq!ra   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)TestFlag.setUp.<locals>.Colorr   ru   rv   r   N)ro   rp   rq   r  r`  ROJOrb  ra  PURPLEWHITEBLANCOr|   ra   r_   r   r	  *  s>    ECDEDXFIdNEYt^Fra   r   c                   v    e Zd ZdZ e       Z e       Zeez  Z e       Zeez  Z	eez  Z
eez  ez  Z e       Zy)TestFlag.setUp.<locals>.FunzONE TWO FOUR EIGHTN)ro   rp   rq   r   r#   r;  r<  r=  r  FIVESIXSEVENEIGHTr|   ra   r_   Funr	  5  sL    *G&C&C#IE6D#:D*C3J$EFEra   r	  c                       e Zd Zd Ze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j<                  Zd Zd Z d Z!y)!TestFlag.setUp.<locals>.TermColorc                 X    d|z  }t         j                  | |      }||_        ||_        |S r  r  r  r  r  r  rJ  r  r  r   s        r_   r  z)TestFlag.setUp.<locals>.TermColor.__new__B  /    &-	kk#y1#
ra   c                 >    dj                  d |D              }||fz   S )N;c              3   4   K   | ]  }|j                     y wr   r  .0r~  s     r_   	<genexpr>zRTestFlag.setUp.<locals>.TermColor._create_pseudo_member_values_.<locals>.<genexpr>K       818   r   r  rp  ri  r  s       r_   _create_pseudo_member_values_z?TestFlag.setUp.<locals>.TermColor._create_pseudo_member_values_I  #    xx888((ra   r  r  24r  303132333435r  3739r  4142434445464749c           	          | j                   'd| j                  j                  d| j                   dS d| j                  j                  ddj                  t	        j
                  |       D cg c]  }|j                   c}      dS c c}w Nr  rP   rT  rS  |)r  rn   ro   r   r   __iter__r  rj   r~  s     r_   r;  z*TestFlag.setUp.<locals>.TermColor.__repr__k  sj    ;;*(,(?(?MM + *.)@)@#((\`\i\ijn\oKpWXAFFKpBqrrKps   .Bc                 6    t        | j                  dd       | S N r   )endverbosers  r  r   s    r_   	__enter__z+TestFlag.setUp.<locals>.TermColor.__enter__q  s    dmmQ7ra   c                 4    t        | j                  dd       y r*
  r.
  )rj   rk   s     r_   __exit__z*TestFlag.setUp.<locals>.TermColor.__exit__u  s    dmmQ7ra   N)"ro   rp   rq   r  r}  r
  r  r  Dim	UnderlineNormalFG_BlackFG_RedFG_Green	FG_YellowFG_Blue
FG_Magentar  FG_WhiteFG_Resetr  BG_RedBG_Green	BG_YellowBG_Blue
BG_MagentaBG_CyanBG_WhiteBG_Resetr  r  r;  r/
  r1
  r|   ra   r_   	TermColorr 
  A  s     ) ) HFCIF HFHIGJGHHHFHIGJGHHkkGs8ra   rE
  c                        e Zd ZdZdZdZdZdZy)TestFlag.setUp.<locals>.Openr   ru   rv   rw      N)ro   rp   rq   ROWORWACCEr|   ra   r_   OpenrG
  y  s    BBBBBra   rN
  )r   r	  r   r	  r  rE
  rN
  )rj   r	  r   r	  rE
  rN
  s         r_   r  zTestFlag.setUp$  sn    	4 	 		$D 	$ 
		$ 		 5	8T 5	8l #	4 	 	ra   c                     G d dt               }|\  }}|j                  }| j                  | |       | j                   |d      |       | j                  |  |d             | j                   |d       |d             | j                   |d      ||z         | j                  ||z    |d              G d dt               }|\  }}}|j                  }	| j                  | ||z         | j                   |d	      ||z         | j                  |	  |d             | j                   |d
       |d             | j                   |d      ||z  |z         | j                  ||z  |z    |d             y )Nc                       e Zd ZdZdZdZdZy):TestFlag.test_closed_invert_expectations.<locals>.ClosedABrI  ru   rv   rw   Nro   rp   rq   r   r  r  MASKr|   ra   r_   ClosedABrQ
        GAADra   rT
  r   rQ  rQ   c                        e Zd ZdZdZdZdZdZy);TestFlag.test_closed_invert_expectations.<locals>.ClosedXYZX Y Zr   rv   ru   rS  Nro   rp   rq   r   r	  YZrS
  r|   ra   r_   	ClosedXYZrX
        GAAADra   r]
  rP  rU  r   rS
  rD  
rj   rT
  r  r  AB_MASKr]
  r	  r[
  r\
  XYZ_MASKs
             r_   test_closed_invert_expectationsz(TestFlag.test_closed_invert_expectations  sH   	t 	
 1--qb!hrlA&wh,hrlHQK0hrlAaC(!fhqk*	 	 1a>>qb!A#imQqS)xi1.imYq\2imQqSU+!Ah	!-ra   c                 z    G d dt               }|\  }}|j                  }| j                  | |       | j                  | |       | j                   |d      |       | j                   |d      |       | j                  ||z    |d             | j                  |  |d             | j                   |d      ||z         | j                   |d       ||z         | j                   |d       |d             | j                   |d       |d	             | j                   |d
      |        G d dt               }|\  }}}|j                  }	| j                  | ||z         | j                  | ||z         | j                  | ||z         | j                   |d      ||z         | j                   |d      ||z         | j                   |d      ||z         | j                  ||z   |       | j                  ||z   |       | j                  ||z   |       | j                   |d      ||z         | j                  |	  |d             | j                  ||z  |z    |d             | j                   |d       |d             | j                   |d      ||z  |z         y )Nc                       e Zd ZdZdZdZdZy)6TestFlag.test_open_invert_expectations.<locals>.OpenABrI  ru   rv   r   NrR
  r|   ra   r_   OpenABrf
    s    GAADra   rg
  rV
  rI  r   rQ   rQ  rP  rw   ic                        e Zd ZdZdZdZdZdZy)7TestFlag.test_open_invert_expectations.<locals>.OpenXYZrY
  r   rv   ru   r  NrZ
  r|   ra   r_   OpenXYZri
        GAAADra   rj
  rU  r_
  
rj   rg
  r  r  ra
  rj
  r	  r[
  r\
  rb
  s
             r_   test_open_invert_expectationsz&TestFlag.test_open_invert_expectations  sP   	T 	
 1++qb!qb!fRj!$fRj!$!ffQi(whq	*fRj!A#&vayj!A#&fRj&),fRj&),fSk1%	d 	 1a<<qb!A#qb!A#qb!A#gbk1Q3'gbk1Q3'gbk1Q3'!fa !fa !fa gbk1Q3'xi,!Ah
+gbk71:.gbk1Q3q5)ra   c                     G d dt               }| j                  t        |      |j                  |j                  g       | j                  |j                   |j                         | j                  |j                  |j                         | j                  |j                  j                  d        G d dt               }| j                  t        |      |j                  |j                  |j                  g       | j                  |j                   |j                  |j                  z         | j                  |j                  |j                  |j                  z         | j                  |j                  j                  d       y )Nc                   (    e Zd ZdZdZdZeez  Ze Zy)0TestFlag.test_assigned_negative_value.<locals>.XA B C Dru   rv   Nro   rp   rq   r   r  r  r  r  r|   ra   r_   r	  rp
    s!    GAAAAAra   r	  rv   c                   ,    e Zd ZdZdZdZeez  Ze ZdZy)0TestFlag.test_assigned_negative_value.<locals>.Y	A B C D Eru   rv   r   N)	ro   rp   rq   r   r  r  r  r  r  r|   ra   r_   r[
  rt
    s&    !GAAAAAAra   r[
  r  )	r   rI  r  r  r  rD  r  rJ  r  rj   r	  r[
  s      r_   test_assigned_negative_valuez%TestFlag.test_assigned_negative_value  s    	 	 	a133*-qssdACC acc133A&	 	 	a133QSS/2qssdACCG$acc133qss7#A&ra   c                     G d dt                G fddt              }| j                  t        |      |j                  g       | j                  |j
                  j                  d       d|j                  _        | j                  |j                  j
                  d       | j                  |j                  j                  d   d       y )Nc                   $    e Zd ZdZddZd Zd Zy)*TestFlag.test_set_name.<locals>.DescriptorNc                 <    || S |j                   | j                     S r   r  r  s      r_   r   z2TestFlag.test_set_name.<locals>.Descriptor.__get__  r  ra   c                 6    ||j                   | j                  <   y r   r  r  s      r_   r  z2TestFlag.test_set_name.<locals>.Descriptor.__set__  r  ra   c                     || _         y r   r  r  s      r_   r  z7TestFlag.test_set_name.<locals>.Descriptor.__set_name__  r  ra   r   r  r|   ra   r_   r  rz
    r  ra   r  c                   "    e Zd ZdZ W         Zy)&TestFlag.test_set_name.<locals>.AnEnumru   Nr  r  s   r_   r  r
        C,Cra   r  r  r   r  r  s     @r_   r  zTestFlag.test_set_name  r  ra   c                 *    G d dt               }|j                  }| j                  t        |      |u t        |             | j	                  |j
                  |j                  |j                  |j                  fd       |j                  }| j	                  |j
                  |j                  |j                  |j                  fd       |j                  }| j	                  |j
                  |j                  |j                  |j                  fd       y )Nc                   $    e Zd ZdZddZdZdZdZy),TestFlag.test_new_with_keywords.<locals>.Huhr  Nc                     | j                   rdt        | j                         dz
  z  }nd}t        j                  | |      }|r||}||_        ||_        ||_        ||_        |S )Nrv   ru   r   )r  r  r}  r  r  r  r   r  r  s         r_   r  z4TestFlag.test_new_with_keywords.<locals>.Huh.__new__   sc    ??#coo"6q"89EES%0EM E"$!*!&ra   r  r  r"  r%  r&  r|   ra   r_   r  r
    s    5I 'ECKBIra   r  r+  r,  r-  )r   r(  r#  r.  rI  rJ  r   r  r  r)  r*  r/  s        r_   r3  zTestFlag.test_new_with_keywords  s    	C' 	C$ IIQ3Q0!))QVVQWW5)	 __2::rww9A	 MM!))QVVQWW59	ra   c                 l    G d dt               }| j                  t        |      d       | j                  |j                  d       | j	                  t        |j                  t                      | j                  |j                  d       | j	                  t        |j                  t                      y )Nc                       e Zd ZdZdZy),TestFlag.test_private_names.<locals>.Privater  r	  Nr
  r|   ra   r_   r  r
  "  r  ra   r  r   r  r	  r  r  s     r_   r  zTestFlag.test_private_names!  r  ra   c                    | j                   }| j                  t        |      |j                  |j                  |j
                  |j                  g       | j                  |j                  j                  d       | j                  t        |j                        d       | j                  t        |j                        |j                  |j                  |j
                  g       y )Nrw   z<Fun.SEVEN: 7>)r	  rI  r  r;  r<  r  r	  r=  r  rX  r	  )rj   r	  s     r_   test_auto_aliaszTestFlag.test_auto_alias+  s    hhS	#''388SYY7	 	**A.cii*:;cii377CGGSXX*FGra   c                    | j                   j                  | j                   j                  }}||z  }| j                  |d       | j                  |j                  |j                  |j                  z         | j                  |j
                  dj                  |j
                  |j
                  g             | j                  t        |      d       | j                  t        |      d       y )Nz[31;47mr
  z<TermColor.FG_Red|BG_White>)	rE
  r6
  rC
  rI  rJ  r  r   rX  r  )rj   r   r  barbers       r_   test_str_is_str_strzTestFlag.test_str_is_str_str5  s    ^^**DNN,C,CUu/syy5;;'>?chh%**/E&FGf'DEVm4ra   c                    | j                   }| j                  }| j                  d|v        | j                  d|v        | j                  |j                  |v        | j                  |j
                  |v        | j                  |j                  |v        | j                  |j
                  |v        | j                  d|v        | j                  d|v        y )Nr  rI
  r   )r   rN
  r   r#  r  rI
  rj   r   rN
  s      r_   test_membershipzTestFlag.test_membership>  s    

yyE)*&u,-4(,-E)*U
#T	"ra   c                    | j                   | j                  t        fd       | j                  t        fd       | j                  j                  j                  v        | j                  j                  d   v        y )Nc                       d j                   v S r  ra  r  s   r_   r  z/TestFlag.test_member_contains.<locals>.<lambda>L  s    Vuzz-A ra   c                       d j                   v S rO  r
  r  s   r_   r  z/TestFlag.test_member_contains.<locals>.<lambda>M  s    Q%**_ ra   zRED|GREEN|BLUE)r   r|  r   r#  ra  r   s    @r_   r  zTestFlag.test_member_containsJ  sb    

)%AB)%<=

ejj01

e,<&==>ra   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   ru   rv   rw   )rI  r   __len__r  rb  r	  r	  r   s    r_   test_member_lengthzTestFlag.test_member_lengthQ  s    ++DJJ,<,<=qA++DJJ,<,<=qA++DJJ,=,=>B++DJJ,=,=>Bra   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)>TestFlag.test_number_reset_and_order_cleanup.<locals>.ConfusedzONE TWO FOUR DOS EIGHT SIXTEENrv   N)ro   rp   rq   r   r#   r;  r<  r  r  r	  SIXTEENr|   ra   r_   r  r
  X  s/    6G&C&C6DCFEfGra   r  rv   r.     )r   rI  r  r;  r<  r  r	  r
  rD  r  r  r  s     r_   r  z,TestFlag.test_number_reset_and_order_cleanupW  s    	t 	 	Xx||X]]HNNHL\L\]	_ 	hllHLL1--q1//3))1126ra   c                    | j                   }| j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j
                        d       | j                  t        |j                  |j                  z        d       | j                  t        |j                  |j                  z  |j
                  z        d       | j                  t         |d            d       | j                  t        |j                         d       | j                  t        |j                         d	       | j                  t        |j
                         d       | j                  t        |j                  |j                  z         d       | j                  t        |j                  |j                  z  |j
                  z         d       | j                  t         |d
            d       | j                  t         |d
            d       | j                  }| j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j                  |j                  z        d       | j                  t        |j                  |j                  z        d       | j                  t        |j                         d       | j                  t        |j                         d       | j                  t        |j                         d       | j                  t        |j                  |j                  z         d       | j                  t        |j                  |j                  z         d       y )NzPerm.RzPerm.WzPerm.XzPerm.R|Wz
Perm.R|W|Xr   zPerm(0)zPerm.W|XzPerm.R|XrQ   zOpen.ROzOpen.WOzOpen.ACzOpen.CEz
Open.WO|CEzOpen.WO|RW|CEz
Open.RW|CEzOpen.RWr	  rI  r  r	  r	  r	  rN
  rI
  rJ
  rL
  rM
  rj   r	  rN
  s      r_   test_strzTestFlag.test_strh  s   yyTVVh/TVVh/TVVh/TVVdff_-z:TVVdff_tvv56ET!Wy1dffWz2dffWz2dffWz2tvv/0(;tvv7899ET"X5T"X5yyTWWy1TWWy1TWWy1TWWtww./;TWWtww./>dggX8dggX5dggX	2tww012I>tww012I>ra   c                    | j                   }| j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j
                        d       | j                  t        |j                  |j                  z        d       | j                  t        |j                  |j                  z  |j
                  z        d       | j                  t         |d            d       | j                  t        |j                         d       | j                  t        |j                         d	       | j                  t        |j
                         d       | j                  t        |j                  |j                  z         d       | j                  t        |j                  |j                  z  |j
                  z         d       | j                  t         |d
            d       | j                  }| j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j                  |j                  z        d       | j                  t        |j                  |j                  z        d       | j                  t        |j                         d       | j                  t        |j                         d       | j                  t        |j                         d       | j                  t        |j                  |j                  z         d       | j                  t        |j                  |j                  z         d       y )N<Perm.R: 4><Perm.W: 2><Perm.X: 1><Perm.R|W: 6><Perm.R|W|X: 7>r   	<Perm: 0><Perm.W|X: 3><Perm.R|X: 5>rQ   <Open.RO: 0><Open.WO: 1><Open.AC: 3><Open.CE: 524288><Open.WO|CE: 524289><Open.WO|RW|CE: 524291><Open.RW|CE: 524290><Open.RW: 2>)r	  rI  rX  r	  r	  r	  rN
  rI
  rJ
  rL
  rM
  r
  s      r_   	test_reprzTestFlag.test_repr  s   yydff}5dff}5dff}5dfftvvo.@dfftvvo679JKd1g4tvvg8tvvg8tvvg801=A$&& 89:KHd2h):;yydgg7dgg7dgg7dgg/02EFdgg/02HItwwh)BCtwwh)?@twwh)<=$'' 123^D$'' 123^Dra   c                     | j                   }| j                  |j                  |d   u        | j                  |j                  |j                  z  |d   u        | j                  |j                  |d   u        y Nr`  z	RED|GREENzRED|BLUEr   r#  r`  rb  r	  r   s     r_   test_name_lookupzTestFlag.test_name_lookup  a    

		U5\12		%++-{1CCDj(99:ra   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	  rI  rJ  rD  r.  rN
  rI
  rM
  rj   r	  rZ  jrN
  s        r_   test_orzTestFlag.test_or  s    yy 	1A 1  !a%$qww/@*AB  !a%!''0ABd1q5k401	1
  	$AMM!a%#	$yydgg'1ra   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 r   )r	  r	  r	  r	  r  rI  rJ  rD  r.  rN
  rI
  rM
  
rj   r	  rK
  RXWXRWXri  rZ  r
  rN
  s
             r_   test_andzTestFlag.test_and  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'1ra   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TestFlag.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'1ra   c                    | j                   }|j                  |j                  z  }|j                  |j                  z  }|j                  |j                  z  }|j                  |j                  z  |j                  z  }t	        |      |||| |d      gz   }|D ]2  }| j                  t        |       |       | j                  |  |       4 |D ]  }| j                  |  |        | j                  }| j                  |j                  |j                   z  |j                         | j                  |j                  |j                  z  |j                   z  |j                         y r   )r	  r	  r	  r	  r  rD  r.  rI  rN
  rJ
  rI
  rM
  	rj   r	  rK
  r
  r
  r
  ri  rZ  rN
  s	            r_   test_invertzTestFlag.test_invert  s"   yyVVdff_VVdff_VVdff_fftvvo&dr2r3Q88 	%AMM$r(D)qbS!$	%  	"AMMA2#q!	"yydgg($''2twwtww477(2DGG<ra   c                     | j                   }|D ]  }| j                  |        | j                  }|D ]0  }| j                  t	        |j
                        t	        |             2 y r   r	  r#  rN
  rI  r  rJ  rj   r	  rt  rN
  s       r_   r  zTestFlag.test_bool  Z    yy 	AOOA	yy 	5AT!'']DG4	5ra   c                     G d dt               } G d d|      }|}| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       | j                  |j                  |j                  z  j                  dd	|j                  |j                  z  z         y )
Nc                       e Zd ZdZdZy)'TestFlag.test_doc_flag.<locals>.DocFlagrp  r   N)ro   rp   rq   rT  r{  r|   ra   r_   DocFlagr
    s    $FGra   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y).TestFlag.test_doc_flag.<locals>.AddressSegmentzXUNKNOWN PO PO_TYPE NUMBER PREORD NAME STREET POSTORD SECONDARY_TYPE SECONDARY_NUMBER ANDz(unable to determine address element typezpost office deliveryzbox or drawerzmain unit designatorzN S E W etczstreet namezst ave blvd etczapt bldg floor etczsecondary unit designatorz& indicates a corner addressN)ro   rp   rq   r   UNKNOWNPOPO_TYPENUMBERPREORDNAMESTREETPOSTORDSECONDARY_TYPESECONDARY_NUMBERANDr|   ra   r_   AddressSegmentr
    s?    pG@G'B%G+F"F D&F#G1N:0Cra   r
  r
  rR     0   z%r is not 48)r   rI  r
  r  r
  r
  )rj   r
  r
  ASs       r_   test_doc_flagzTestFlag.test_doc_flag  s    	d 	*	1W 	1 "-**B/**22C8"''BII-66NbggXZXaXaNa<bcra   c                 
   | j                   }| j                  t        |      |j                  |j                  |j
                  g       | j                  t        |j                        |j                  |j
                  g       y r   )r   rI  r  r`  rb  ra  r	  rj   r  s     r_   test_iterationzTestFlag.test_iteration  sV    JJa155!''166":;ahh!%%9ra   c                 <   | j                   }| j                  t        |j                        g        | j                  t        |j                        |j                  g       | j                  t        |j
                        |j                  |j                  g       y r   )r   rI  r  r  r`  r	  ra  r
  s     r_   test_member_iterationzTestFlag.test_member_iteration  se    JJagg+aeequug.ahh!%%9ra   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	  rw   ru   r   r  rI  r  r	  r	  r	  rU  rV  rJ  r.  r}  r  assertInrD  rj   r	  rY  rZ  nr  r\  s          r_   r  z)TestFlag.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(	)ra   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  rw   r
  r
  s          r_   r  z4TestFlag.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(	)ra   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	  rw   r	  ru   r
  r
  s          r_   r  z.TestFlag.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(	)ra   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	  rv   )r	  r.  )r	  rR  rw   r	  ru   rv   r
  r
  s          r_   r  z+TestFlag.test_programatic_function_iterableI  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(	)ra   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   r8   r  rI  r  r	  r	  r	  rU  rV  rJ  r.  r}  r  r
  rD  r
  s          r_   r  z,TestFlag.test_programatic_function_from_dictX  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(	)ra   c                 T   t        dg       }| j                  t        t        |            t        |             | j                  t        |      d       t	        dg       }| j                  t        t        |            t        |             | j                  t        |      d       y )Nr	  r   Thingr   rI  r  r  r   rj   r	  r
  s      r_   $test_programatic_function_empty_listz-TestFlag.test_programatic_function_empty_listg  {    vr"T$Z#d)4TA&Wb!T%[)3u:6UQ'ra   c                 T   t        dd      }| j                  t        t        |            t        |             | j                  t        |      d       t	        dd      }| j                  t        t        |            t        |             | j                  t        |      d       y )Nr	  r|   r   r
  r
  r
  s      r_   %test_programatic_function_empty_tuplez.TestFlag.test_programatic_function_empty_tupleo  r
  ra   c                    t        t        t              rt        t        | j                  t        j
                  t        j                  z         t        | j                  t               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                  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                  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                  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         t        | j                  t        j                         t        | j                  t        j                  dz         t        | j                  t        j
                  t        j                  z         y )Nr
  r   ru   )r  r   r   r   rD  rz   r{   rI  r   r   r   r   r   r   r   s    r_   test_picklezTestFlag.test_picklew  s   k9-!!KOO3	 		 	  !![%6%6$66	 		 	  !!	 	  !!K$5$55	 	  !!	 	  !!K$5$55	
 	#))	 	  #)),?,C,CC	 	#**	 	  #))	 	  #)),?,E,EE	 	  #))	 	  #)),?,E,EE	
 	$$	 	  $$~'9'99	 	  $$~'9'99$>	 	  q!	 	  t$	 		 	  $$	 	  $$q(	 	  $$~';';;	 	  $$	 	  $$q(	 	  $$~';';;	
 	&,,	 	  &,,/E/I/II	 	&--	 	  &,,	 	  &,,q0	 	  &,,/E/K/KK	 	  &,,	 	  &,,q0	 	  &,,/E/K/KK	ra   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   	rj   r	  r	  r	  r	  rK
  r
  r
  r
  s	            r_   test_containmentzTestFlag.test_containment     yy1aUUU!eaiR R S!R R S!R R S!b!b!b!ra   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)(TestFlag.test_auto_number.<locals>.Colorr  Nr  r|   ra   r_   r   r  #  r  ra   r   ru   rv   r   )r   rI  r  r   r   r   rJ  r   s     r_   r  zTestFlag.test_auto_number"  r  ra   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dZ e       Zy)0TestFlag.test_auto_number_garbage.<locals>.Colorr  z
not an intNr  r|   ra   r_   r   r  0  s    $"vra   r   r%  r   s     r_   test_auto_number_garbagez!TestFlag.test_auto_number_garbage.  s4    ##I/RS 	 	 	 	r  c                     G d dt               }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j
                  j                  d       y )Nc                   :    e Zd ZdZdZ e       Z e       Zeez  Zy).TestFlag.test_auto_w_pending.<locals>.RequiredzTO_S FROM_Sr   N)	ro   rp   rq   r   r	  r#   TO_SFROM_SBOTHr|   ra   r_   Requiredr  6  s#    #GD6DVF&=Dra   r  ru   rv   rw   )r   rI  r  rJ  r  r  )rj   r  s     r_   test_auto_w_pendingzTestFlag.test_auto_w_pending5  s^    	!t 	! 	,,a0..2,,a0ra   c                      G d dt               }| j                  |j                  |j                  |j                  gt        |             y )Nc                   >    e Zd ZdZ e       xZZ e       Z e       Zy)+TestFlag.test_duplicate_auto.<locals>.Dupesr7  Nr+  r|   ra   r_   r-  r  A  r.  ra   r-  )r   rI  rB  rE  r;  r  )rj   r-  s     r_   r/  zTestFlag.test_duplicate_auto@  s7    	D 	
 	%++u||U[[A4;Ora   c                     G d dt               }| j                   |d      |j                  |j                  z         | j	                  t        |      |j                  g       | j                   |d      |j                         | j                  |j                   |j                         | j                  t        d|j                  j                         y )Nc                       e Zd ZdZdZdZy)&TestFlag.test_bizarre.<locals>.Bizarrerw   r   r  N)ro   rp   rq   rW  r7  r  r|   ra   r_   Bizarrer  I  s    AAAra   r  rQ   r  zno members with value 1)
r   rD  rW  r7  rI  r  r  re   r   
__invert__)rj   r  s     r_   test_bizarrezTestFlag.test_bizarreH  s    	d 	 	gbk799WYY#67g4gaj')),wyyj')),z+DgiiFZFZ[ra   c                     G d dt               }| j                  |j                  |j                  |j                  z  v        | j                  |j                  |j                  v        | j                   |d      |j                         | j                  t        d|d        G d dt              }| j                  |j                  |j                  |j                  z  v        | j                  |j                  |j                  v        | j                   |d      |j                         | j                   |d      j                  d       y )Nc                       e Zd ZdZdZdez  Zy),TestFlag.test_skipped_flag.<locals>.SkipFlagru   rv   r   Nro   rp   rq   r  r  r  r|   ra   r_   SkipFlagr  T      AAAAra   r  rV
  zSkipFlag.. invalid value 42*   c                       e Zd ZdZdZdez  Zy)/TestFlag.test_skipped_flag.<locals>.SkipIntFlagru   rv   r   Nr  r|   ra   r_   SkipIntFlagr"  ^  r  ra   r#  )r   r#  r  r  r  rD  re   r   r   rI  rJ  )rj   r  r#  s      r_   test_skipped_flagzTestFlag.test_skipped_flagS  s    	t 	
 	

xzz(**'<=>

hjj01hrlHJJ/z+H(TVW	' 	
 	+--*EFG67k"o{}}5R..3ra   c                     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                  j                  d
       | j                  t        |j                        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 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).TestFlag.test_multiple_mixin.<locals>.AllMixinc                 Z    t        |       }d }|r|d   }|dd  D ]  }||z  }	 || _        |S Nr   ru   r  ALLr  rp  	all_valuer&   s       r_   r+  z2TestFlag.test_multiple_mixin.<locals>.AllMixin.ALLj  H    s) 	 '
I")!"+ ,!V+	,#  ra   Nro   rp   rq   r   r+  r|   ra   r_   AllMixinr'  i      ! !ra   r0  c                       e Zd Zd Zy).TestFlag.test_multiple_mixin.<locals>.StrMixinc                 6    | j                   j                         S r   r  r   s    r_   r  z6TestFlag.test_multiple_mixin.<locals>.StrMixin.__str__u  r  ra   Nr  r|   ra   r_   r  r3  t  r  ra   r  c                   :    e Zd ZdZ e       Z e       Z e       Zy+TestFlag.test_multiple_mixin.<locals>.Colorr  Nr  r|   ra   r_   r   r7  w  r  ra   r   ru   rv   r   rS  r  c                   :    e Zd ZdZ e       Z e       Z e       Zyr6  r  r|   ra   r_   r   z+TestFlag.test_multiple_mixin.<locals>.Color  r  ra   r   c                   :    e Zd ZdZ e       Z e       Z e       Zyr6  r  r|   ra   r_   r   z+TestFlag.test_multiple_mixin.<locals>.Color  r  ra   )	r  r   rI  r`  rJ  rb  ra  r+  r  )rj   r0  r  r   s       r_   r  zTestFlag.test_multiple_mixinh  s   
	!v 
	!	+v 	+	Hd 	
 	!,**A.))1-!,UZZ,7	Hh 	
 	!,**A.))1-!,UZZ&1	Hh 	
 	!,**A.))1-!,UZZ&1ra   !Threading required for this test.c                 p    G d dt               t               dgfd}t        d      D cg c]  }t        j                  |       }}|D ]  }|j                           |D ]  }|j                           | j                  d   d       | j                  d	t              d
       y c c}w )Nc                       e Zd ZdZ e       Z e       Z e       Z e       Z e       Z	 e       Z
 e       Z e       Zd Zd Zy)0TestFlag.test_unique_composite.<locals>.TestFlag'one two three four five six seven eightc                 
    | |u S r   r|   r+  s     r_   r,  z7TestFlag.test_unique_composite.<locals>.TestFlag.__eq__      u}$ra   c                 ,    t        | j                        S r   hashr  r   s    r_   rt  z9TestFlag.test_unique_composite.<locals>.TestFlag.__hash__      DLL))ra   Nro   rp   rq   r   r#   r  r  r   fourfivesixseveneightr,  rt  r|   ra   r_   r	  r=    I    ?G&C&CFE6D6D&CFEFE%*ra   r	  Fc                  ~    	 t        d      D ]  } j                   |               y # t        $ r dd<   Y y w xY wN   Tr   r   rC   r   rZ  r	  failedseens    r_   
cycle_enumz2TestFlag.test_unique_composite.<locals>.cycle_enum  C    !s *AHHXa[)* ! q	!   '+ <<r.  r   r   ;at least one thread failed while creating composite membersrN  "too many composite members created)
r   r  r   	threadingThreadr   r   r   rI  r  rj   rS  r1  threadstr	  rQ  rR  s        @@@r_   test_unique_compositezTestFlag.test_unique_composite  s    	*t 	* u	! q   
3   	AGGI	 	AFFH	 	q	M	O 	c$i)MN   B3c                 (     G fddt               y )Nc                   J     e Zd ZdZd Ze fd       ZdZdZdZ	dZ
dZ xZS )	HTestFlag.test_init_with_autovalue_and_generate_next_value.<locals>.Colorz
value codec                     |sd|f|d u   f|z   S d}t        |      D ]  }	 t        |      } n |r
ddz   z  f|z   S # t        $ r}	|	}
d}Y d }	~	 #d }	~	ww xY w)Nru   FTrv   )r{  r7   r   )r  r   r  last_valuesrk   rl   rt  
last_valuehigh_bitr\  r   s              r_   r  z^TestFlag.test_init_with_autovalue_and_generate_next_value.<locals>.Color._generate_next_value_  s    JuD'89<tCC"*;"7 J#,Z#8 Ihqj),t33 %  $s   ?	AAAc                     t        | j                  |            }t        |   |      }dj	                  d |D              |_        |S )Nr
  c              3   4   K   | ]  }|j                     y wr   r
  r	
  s     r_   r
  zrTestFlag.test_init_with_autovalue_and_generate_next_value.<locals>.Color._create_pseudo_member_.<locals>.<genexpr>  s     -Faff-Fr
  )r  _iter_member_rh   _create_pseudo_member_r   r  )r  rJ  rp  pseudo_memberr   rn   s       r_   rj  z_TestFlag.test_init_with_autovalue_and_generate_next_value.<locals>.Color._create_pseudo_member_  sF    s0078 %eS H O%(XX-Fg-F%F"$$ra   r  r  r
  r
  r  )ro   rp   rq   rT  r  r}  rj  r  r  r2
  r3
  r4
  rr   rn   r   s   @r_   r   rb    s<    !F4  % %
 HFCIFra   r   r  r   s    @r_   0test_init_with_autovalue_and_generate_next_valuez9TestFlag.test_init_with_autovalue_and_generate_next_value  s    	D 	ra   c                 2     G fddt         t              y )Nc                   f     e Zd ZdZd Zed        Ze fd       ZdZ	dZ
dZdZd	Zd
ZdZdZ xZS )>TestFlag.test_autovalue_and_generate_next_value.<locals>.ColorFFG_Black FG_Red FG_Green FG_Blue BG_Yellow BG_Magenta BG_Cyan BG_Whitec                 X    d|z  }t         j                  | |      }||_        ||_        |S r  r
  r
  s        r_   r  zFTestFlag.test_autovalue_and_generate_next_value.<locals>.Color.__new__  r
  ra   c                     d|z  f|z   S rO  r|   r  s         r_   r  zTTestFlag.test_autovalue_and_generate_next_value.<locals>.Color._generate_next_value_      U
~,,ra   c                     t        | j                  |            }dj                  d |D              }t        |   ||      }|S )Nr
  c              3   4   K   | ]  }|j                     y wr   r
  r	
  s     r_   r
  zhTestFlag.test_autovalue_and_generate_next_value.<locals>.Color._create_pseudo_member_.<locals>.<genexpr>  r
  r
  r  ri  r   rh   rj  r  rJ  rp  r  rk  r   rn   s        r_   rj  zUTestFlag.test_autovalue_and_generate_next_value.<locals>.Color._create_pseudo_member_  H     s0078xx888 %eS HPT U$$ra   r
  r
  r
  r
  r
  r 
  r!
  r"
  ro   rp   rq   r   r  r  r  r}  rj  r5
  r6
  r7
  r9
  r?
  rA
  rB
  rC
  rr   rl  s   @r_   r   rp    s_    ^G - - % % HFHGIJGHra   r   )r  r   r   s    @r_   &test_autovalue_and_generate_next_valuez/TestFlag.test_autovalue_and_generate_next_value  s    	C 	ra   c                 R    G fddt         t              | j                  t        j                               | j                  t        j                  t                      | j                  j                  d       | j                  j                  j                  d       y )Nc                   f     e Zd ZdZd Zed        Ze fd       ZdZ	dZ
dZdZd	Zd
ZdZdZ xZS )%TestFlag.test_subclass.<locals>.Colorrq  c                 X    d|z  }t         j                  | |      }||_        ||_        |S r  r
  r
  s        r_   r  z-TestFlag.test_subclass.<locals>.Color.__new__  r
  ra   c                     d|z  f|z   S rO  r|   r  s         r_   r  z;TestFlag.test_subclass.<locals>.Color._generate_next_value_	  rt  ra   c                     t        | j                  |            }dj                  d |D              }t        |   ||      }|S )Nr
  c              3   4   K   | ]  }|j                     y wr   r
  r	
  s     r_   r
  zOTestFlag.test_subclass.<locals>.Color._create_pseudo_member_.<locals>.<genexpr>  r
  r
  rw  rx  s        r_   rj  z<TestFlag.test_subclass.<locals>.Color._create_pseudo_member_  ry  ra   r
  r
  r
  r
  r
  r 
  r!
  r"
  rz  rl  s   @r_   r   r~    s]    ^G - -% % HFHGIJGHra   r   [30mr
  r  r   r#  r  r5
  rI  r  r   s    @r_   test_subclasszTestFlag.test_subclass   so    	C 	: 	
5>>59:
5>>3784,,d3ra   c                 h    G fddt         t              } G d d|      | j                  t        j                               | j                  t        j                  t                      | j                  j                  d       | j                  j                  j                  d       y )Nc                   2     e Zd Zd Ze fd       Z xZS )-TestFlag.test_sub_subclass_1.<locals>.StrFlagc                 X    d|z  }t         j                  | |      }||_        ||_        |S r  r
  r
  s        r_   r  z5TestFlag.test_sub_subclass_1.<locals>.StrFlag.__new__%  r
  ra   c                     t        | j                  |            }dj                  d |D              }t        |   ||      }|S )Nr
  c              3   4   K   | ]  }|j                     y wr   r
  r	
  s     r_   r
  zWTestFlag.test_sub_subclass_1.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>/  r
  r
  rw  rx  s        r_   rj  zDTestFlag.test_sub_subclass_1.<locals>.StrFlag._create_pseudo_member_+  ry  ra   ro   rp   rq   r  r}  rj  rr   rl  s   @r_   StrFlagr  $       % %ra   r  c                   0    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zy
)+TestFlag.test_sub_subclass_1.<locals>.Colorrq  r
  r
  r
  r
  r
  r 
  r!
  r"
  Nro   rp   rq   r   r5
  r6
  r7
  r9
  r?
  rA
  rB
  rC
  r|   ra   r_   r   r  2  /    ^GHFHGIJGHra   r   r  r
  r  rj   r  r   s     @r_   test_sub_subclass_1zTestFlag.test_sub_subclass_1#  s{    	%c4 	%	G 	 	
5>>59:
5>>3784,,d3ra   c                 h    G fddt         t              } G d d|      | j                  t        j                               | j                  t        j                  t                      | j                  j                  d       | j                  j                  j                  d       y )Nc                   <     e Zd Zed        Ze fd       Z xZS )-TestFlag.test_sub_subclass_2.<locals>.StrFlagc                     d|z  f|z   S rO  r|   r  s         r_   r  zCTestFlag.test_sub_subclass_2.<locals>.StrFlag._generate_next_value_E  rt  ra   c                     t        | j                  |            }dj                  d |D              }t        |   ||      }|S )Nr
  c              3   4   K   | ]  }|j                     y wr   r
  r	
  s     r_   r
  zWTestFlag.test_sub_subclass_2.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>L  r
  r
  rw  rx  s        r_   rj  zDTestFlag.test_sub_subclass_2.<locals>.StrFlag._create_pseudo_member_H  ry  ra   )ro   rp   rq   r  r  r}  rj  rr   rl  s   @r_   r  r  D  s'    - -% %ra   r  c                   6    e Zd ZdZd ZdZdZdZdZdZ	dZ
d	Zd
Zy)+TestFlag.test_sub_subclass_2.<locals>.Colorrq  c                 X    d|z  }t         j                  | |      }||_        ||_        |S r  r
  r
  s        r_   r  z3TestFlag.test_sub_subclass_2.<locals>.Color.__new__R  r
  ra   r
  r
  r
  r
  r
  r 
  r!
  r"
  N)ro   rp   rq   r   r  r5
  r6
  r7
  r9
  r?
  rA
  rB
  rC
  r|   ra   r_   r   r  P  s6    ^G HFHGIJGHra   r   r  r
  r  r  s     @r_   test_sub_subclass_2zTestFlag.test_sub_subclass_2C  s{    
	%c4 
	%	G 	$ 	
5>>59:
5>>3784,,d3ra   c                 h    G fddt         t              } G d d|      | j                  t        j                               | j                  t        j                  t                      | j                  j                  d       | j                  j                  j                  d       y )Nc                   2     e Zd Zd Ze fd       Z xZS )-TestFlag.test_sub_subclass_3.<locals>.StrFlagc                 X    d|z  }t         j                  | |      }||_        ||_        |S r  r
  r
  s        r_   r  z5TestFlag.test_sub_subclass_3.<locals>.StrFlag.__new__i  r
  ra   c                     t        | j                  |            }dj                  d |D              }t        |   ||      }|S )Nr
  c              3   4   K   | ]  }|j                     y wr   r
  r	
  s     r_   r
  zWTestFlag.test_sub_subclass_3.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>s  r
  r
  rw  rx  s        r_   rj  zDTestFlag.test_sub_subclass_3.<locals>.StrFlag._create_pseudo_member_o  ry  ra   r  rl  s   @r_   r  r  h  r  ra   r  c                   0    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zy
)+TestFlag.test_sub_subclass_3.<locals>.Colorrq  r
  r
  r
  r
  r
  r 
  r!
  r"
  Nr  r|   ra   r_   r   r  w  r  ra   r   r  r
  r  r  s     @r_   test_sub_subclass_3zTestFlag.test_sub_subclass_3g  s{    	%c4 	%	G 	 	
5>>59:
5>>3784,,d3ra   c                     G d dt         t              } G d d|      }| j                  t        |j                  |             | j                  t        |j                  t                      | j                  |j                  d       | j                  |j                  j                  d       |j                  |j                  z  }| j                  t        ||             | j                  t        |t                      | j                  |d       | j                  |j                  d       | j                  t        |      d	       y )
Nc                   "    e Zd Zd Zed        Zy)-TestFlag.test_sub_subclass_4.<locals>.StrFlagc                 X    d|z  }t         j                  | |      }||_        ||_        |S r  r
  r
  s        r_   r  z5TestFlag.test_sub_subclass_4.<locals>.StrFlag.__new__  r
  ra   c                 >    dj                  d |D              }||fz   S )Nr
  c              3   4   K   | ]  }|j                     y wr   r
  r	
  s     r_   r
  z^TestFlag.test_sub_subclass_4.<locals>.StrFlag._create_pseudo_member_values_.<locals>.<genexpr>  r
  r
  r
  r
  s       r_   r
  zKTestFlag.test_sub_subclass_4.<locals>.StrFlag._create_pseudo_member_values_  r
  ra   N)ro   rp   rq   r  r}  r
  r|   ra   r_   r  r    s     ) )ra   r  c                   6    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
 Zy)+TestFlag.test_sub_subclass_4.<locals>.Colorrq  r
  r
  r
  r
  r
  r 
  r!
  r"
  c                 P    d| j                   j                  d| j                  dS r  r  r   s    r_   r;  z4TestFlag.test_sub_subclass_4.<locals>.Color.__repr__  s    $(NN$;$;T[[IIra   N)ro   rp   rq   r   r5
  r6
  r7
  r9
  r?
  rA
  rB
  rC
  r;  r|   ra   r_   r   r    s5    ^GHFHGIJGHJra   r   r  r
  z[30;45mz30;45z<Color.FG_Black|BG_Magenta>)	r  r   r#  r  r5
  rI  r  rA
  rX  )rj   r  r   colorss       r_   test_sub_subclass_4zTestFlag.test_sub_subclass_4  s    
	)c4 
	)	JG 	J 	
5>>59:
5>>3784,,d3!!ENN2
6512
63/0/g.f'DEra   c                     G fddt         t               G d d      }| j                  t        |j                  |             | j                  t        |j                  t                      | j                  |j                  dt         j                  |j                               | j                  |j                  j                  d       y )Nc                   2     e Zd Zd Ze fd       Z xZS )8TestFlag.test_sub_subclass_with_new_new.<locals>.StrFlagc                 X    d|z  }t         j                  | |      }||_        ||_        |S r  r
  r
  s        r_   r  z@TestFlag.test_sub_subclass_with_new_new.<locals>.StrFlag.__new__  r
  ra   c                     t        | j                  |            }dj                  d |D              }t        |   ||      }|S )Nr
  c              3   4   K   | ]  }|j                     y wr   r
  r	
  s     r_   r
  zbTestFlag.test_sub_subclass_with_new_new.<locals>.StrFlag._create_pseudo_member_.<locals>.<genexpr>  r
  r
  rw  )r  rJ  rp  r  rk  r  rn   s        r_   rj  zOTestFlag.test_sub_subclass_with_new_new.<locals>.StrFlag._create_pseudo_member_  sH     s0078xx888 %gs J5RV W$$ra   r  )rn   r  s   @r_   r  r    r  ra   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y)6TestFlag.test_sub_subclass_with_new_new.<locals>.Colorrq  c                     |xs dj                         }t        j                  | |      }||_        ||_        ||_        |S )Nr+
  )r  r  r  r  r  r  )r  rJ  stringr  r  r   s         r_   r  z>TestFlag.test_sub_subclass_with_new_new.<locals>.Color.__new__  s>    !ZR..0	kk#y1#!
ra   )r
  blk)r
  r   )r
  grn)r
  blu)r
  ylw)r 
  mag)r!
  cyn)r"
  whtc           	          | j                   'd| j                  j                  d| j                   dS d| j                  j                  ddj                  | D cg c]  }|j                   c}      dS c c}w r%
  r  rn   ro   r   r  r(
  s     r_   r;  z?TestFlag.test_sub_subclass_with_new_new.<locals>.Color.__repr__  ^    ;;*(,(?(?MM + *.)@)@#((\`KaWXAFFKaBbccKa   A8N)ro   rp   rq   r   r  r5
  r6
  r7
  r9
  r?
  rA
  rB
  rC
  r;  r|   ra   r_   r   r    s<    ^G #H F"H!G#I$J!G"Hdra   r   Blkr  )r  r   r#  r  r5
  rI  r;  r  )rj   r   r  s     @r_   test_sub_subclass_with_new_newz'TestFlag.test_sub_subclass_with_new_new  s    	%c4 	%	dG 	d2 	
5>>59:
5>>378U^^0LM,,e4ra   c                     G d dt         t              }| j                  |j                  d       | j                  |j                  j                  d       | j                  |j
                  d       | j                  |j
                  j                  d       | j                  |j                  d       | j                  |j                  j                  d       y )	Nc                       e Zd ZdZdZdZdZy)7TestFlag.test_subclass_with_default_new.<locals>.MyFlagzthis these theotherrB  rC  thingimibobsN)ro   rp   rq   r   rD  rE  rE  r|   ra   r_   MyFlagr    s    +GDE%Hra   r  rB  ru   rC  rv   r  r   )r  r   rI  rD  rJ  rE  rE  )rj   r  s     r_   test_subclass_with_default_newz'TestFlag.test_subclass_with_default_new  s    	&S$ 	&
 	f-**A.w/++Q/.9..2ra   c                     G fddt         t              j                  j                  z  }| j	                  t        |             | j	                  t        |t                      | j                  |j                  j                  z         | j                  |d       | j                  |j                  d       | j                  |j                  d       y )Nc                   l     e Zd ZdZd Zed        Ze fd       ZdZ	dZ
dZdZd	Zd
ZdZdZd Z xZS )-TestFlag.test_subclass_a_bunch.<locals>.Colorrq  c                 X    d|z  }t         j                  | |      }||_        ||_        |S r  r
  r
  s        r_   r  z5TestFlag.test_subclass_a_bunch.<locals>.Color.__new__  r
  ra   c                     d|z  f|z   S rO  r|   r  s         r_   r  zCTestFlag.test_subclass_a_bunch.<locals>.Color._generate_next_value_  rt  ra   c                     t        | j                  |            }dj                  d |D              }t        |   ||      }|S )Nr
  c              3   4   K   | ]  }|j                     y wr   r
  r	
  s     r_   r
  zWTestFlag.test_subclass_a_bunch.<locals>.Color._create_pseudo_member_.<locals>.<genexpr>  r
  r
  rw  rx  s        r_   rj  zDTestFlag.test_subclass_a_bunch.<locals>.Color._create_pseudo_member_  ry  ra   r
  r
  r
  r
  r
  r 
  r!
  r"
  c           	          | j                   'd| j                  j                  d| j                   dS d| j                  j                  ddj                  | D cg c]  }|j                   c}      dS c c}w r%
  r  r(
  s     r_   r;  z6TestFlag.test_subclass_a_bunch.<locals>.Color.__repr__	  r  r  )ro   rp   rq   r   r  r  r  r}  rj  r5
  r6
  r7
  r9
  r?
  rA
  rB
  rC
  r;  rr   rl  s   @r_   r   r    sc    ^G - -% % HFHGIJGHdra   r   z[34;45mz34;45zFG_Blue|BG_Magenta)
r  r   rA
  r9
  r#  r  rD  rI  r  r  )rj   Purpler   s     @r_   test_subclass_a_bunchzTestFlag.test_subclass_a_bunch  s    "	dC "	dH !!EMM1
6512
63/0fe..>?/g.&:;ra   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 )+TestFlag.test_init_subclass.<locals>.MyEnumc                     t        |   di | j                  | j                  j	                  dd             d| _        y r2	  r4	  r8	  s     r_   r5	  z=TestFlag.test_init_subclass.<locals>.MyEnum.__init_subclass__  r9	  ra   r:	  r;	  s   @r_   rA  r    r<	  ra   rA  c                   "     e Zd Z fdZ xZS ).TestFlag.test_init_subclass.<locals>.TheirEnumc                 2    t        |   di | d| _        y r@	  rB	  rD	  s     r_   r5	  z@TestFlag.test_init_subclass.<locals>.TheirEnum.__init_subclass__  rE	  ra   r:	  rF	  s   @r_   rA	  r    rG	  ra   rA	  c                       e Zd Zd Zy).TestFlag.test_init_subclass.<locals>.WhoseEnumc                      y r   r|   rK	  s     r_   r5	  z@TestFlag.test_init_subclass.<locals>.WhoseEnum.__init_subclass__#  r  ra   NrL	  r|   ra   r_   rM	  r  "  rN	  ra   rM	  c                       e Zd ZdZy)+TestFlag.test_init_subclass.<locals>.NoEnumru   NrQ	  r|   ra   r_   rR	  r  %  rS	  ra   rR	  r7	  rC	  Fc                       e Zd Zd Zy),TestFlag.test_init_subclass.<locals>.OurEnumc                     d| _         y rW	  rY	  rK	  s     r_   r5	  z>TestFlag.test_init_subclass.<locals>.OurEnum.__init_subclass__.  rZ	  ra   NrL	  r|   ra   r_   rX	  r  -  r'  ra   rX	  c                       e Zd Zd Zy).TestFlag.test_init_subclass.<locals>.WhereEnumc                      y r   r|   rK	  s     r_   r5	  z@TestFlag.test_init_subclass.<locals>.WhereEnum.__init_subclass__1  r  ra   NrL	  r|   ra   r_   r^	  r  0  rN	  ra   r^	  c                       e Zd ZdZy).TestFlag.test_init_subclass.<locals>.NeverEnumru   NrQ	  r|   ra   r_   ra	  r  3  rS	  ra   ra	  )r   rI  r  r   r6	  rc	  s   `     @@r_   rd	  zTestFlag.test_init_subclass  s   	&T 	&	) 	)		 		Y 	++H5x@++H5x@++H5{C,,Xu=>,,Xu=>	'f 	'	 			 	))(3X>++//%@A++H5yA++//%@A++//%@Ara   c                 f    G d dt               }| j                  |j                   |d             | j                  |j                  |j                  z   |d             | j                  |j                   |d             | j                  |j                  |j                  z   |d             y )Nc                        e Zd ZdZdZdZdZdZy)/TestFlag.test_int_long_conversion.<locals>.Permru   rv   r                       N)ro   rp   rq   EXECWRITEREADMSB32MSB64r|   ra   r_   r	  r  <  s    DEDEEra   r	  r  l       r  l           )r   rI  r  r  r  rj   r	  s     r_   test_int_long_conversionz!TestFlag.test_int_long_conversion;  s    	4 	 	T*%56DJJ.Z0@A 	T*<%=>DJJ.5G0HIra   c                     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)5TestFlag.test_none_member.<locals>.FlagWithNoneMemberru   N)ro   rp   rq   r  r  r|   ra   r_   FlagWithNoneMemberr  L  s    AAra   r  ru   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   rI  r  rJ  rD  r  re   r   )rj   r  s     r_   test_none_memberzTestFlag.test_none_memberK  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)=ro   rp   rq   r   r  rc
  rm
  rw
  r  r3  r  r
  r
  r
  r  r
  r  r
  r
  r
  r
  r
  r
  r
  r  r
  r
  r
  r  r  r  r  r  r
  r
  r
  r   r  r  r  r/  r  r$  r  unittest
skipUnlessrY  r^  rm  r{  r  r  r  r  r  r  r  r  rd	  r  r  r|   ra   r_   r	  r	  !  sS   [z.@+*Z'0>."HEH5
#?C7"?8E6;
22$2= 5'dR:
:)))))((Un"(
/	1P	\4*,2\ X$GH&O I&OP@B!4F4@"4H4B%FN,5\3+<Z"BHJ "ra   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  e!jD                  e#d      d         Z$d! Z%y")#TestIntFlagzTests of the IntFlags.c                      G d dt               } G d dt               } G d dt               }|| _        || _        || _        y )Nc                       e Zd ZdZdZdZdZy)TestIntFlag.setUp.<locals>.Permr	  r   rv   ru   Nr	  r|   ra   r_   r	  r  a      GAAAra   r	  c                   &    e Zd ZdZdZdZdZeez  Zy) TestIntFlag.setUp.<locals>.Colorr   ru   rv   r   N)ro   rp   rq   r  r`  rb  ra  r	  r|   ra   r_   r   r  g  s    ECEDXFra   r   c                   $    e Zd ZdZdZdZdZdZdZy)TestIntFlag.setUp.<locals>.Opennot a good flag candidater   ru   rv   rw   rH
  N	ro   rp   rq   r   rI
  rJ
  rK
  rL
  rM
  r|   ra   r_   rN
  r
  n      'BBBBBra   rN
  )r   r	  r   rN
  )rj   r	  r   rN
  s       r_   r  zTestIntFlag.setUp_  s=    	7 		G 		7 	 	
	ra   c                     G d dt               }|\  }}|j                  }| j                  |  |d             | j                   |d       |d             | j                   |d      ||z         | j                  ||z    |d              G d dt               }|\  }}}|j                  }	| j                  | ||z         | j                   |d      ||z         | j                  |	  |d             | j                   |d	       |d             | j                   |d      ||z  |z         | j                  ||z  |z    |d             y )
Nc                       e Zd ZdZdZdZdZy)=TestIntFlag.test_closed_invert_expectations.<locals>.ClosedABrI  ru   rv   rw   NrR
  r|   ra   r_   rT
  r  {  rU
  ra   rT
  r   rQ  rQ   c                        e Zd ZdZdZdZdZdZy)>TestIntFlag.test_closed_invert_expectations.<locals>.ClosedXYZrY
  r   rv   ru   rS  NrZ
  r|   ra   r_   r]
  r    r^
  ra   r]
  rP  rU  )r   rS
  rD  r`
  s
             r_   rc
  z+TestIntFlag.test_closed_invert_expectationsz  s(   	w 	
 1-- 	wh,hrlHQK0hrlAaC(!fhqk*	 	 1a>>qb!A#imQqS)xi1.imYq\2imQqSU+!Ah	!-ra   c                 b    G d dt               }|\  }}|j                  }| j                  | |       | j                  | |       | j                  ||z    |d             | j                  |  |d             | j                   |d       ||z         | j                   |d       ||z          G d dt               }|\  }}}|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dZy)9TestIntFlag.test_open_invert_expectations.<locals>.OpenABrI  ru   rv   rS  NrR
  r|   ra   r_   rg
  r    rU
  ra   rg
  r   rQ  c                        e Zd ZdZdZdZdZdZy):TestIntFlag.test_open_invert_expectations.<locals>.OpenXYZrY
  r   rv   ru   r  NrZ
  r|   ra   r_   rj
  r    rk
  ra   rj
  )r   rS
  rD  r#  rl
  s
             r_   rm
  z)TestIntFlag.test_open_invert_expectations  s   	W 	
 1++qb!qb!!ffQi(whq	*vayj!A#&vbzk1Q3'	g 	 1a<<qb!A#qb!A#qb!A#!fa !fa !fa !Ah
+xi,QqSU+ra   c                 0    G d dt               }| j                  t        |      |j                  |j                  g       | j                  |j                   |j                         | j                  |j                  |j                         | j                  |j                  j                  d        G d dt               }| j                  t        |      |j                  |j                  g       | j                  |j                   |j                         | j                  |j                  |j                         | j                  |j                  j                  d        G d dt               }| j                  t        |      |j                  |j                  |j                  g       | j                  |j                   |j                  |j                  z         | j                  |j                  |j                  |j                  z         | j                  |j                  j                  d        G d dt               }| j                  t        |      |j                  |j                  |j                  g       | j                  |j                   |j                  |j                  z         | j                  |j                  |j                  |j                  z         | j                  |j                  j                  d       y )	Nc                   &    e Zd ZdZdZdZeez  ZdZy)3TestIntFlag.test_assigned_negative_value.<locals>.Xrq
  ru   rv   rV
  Nrr
  r|   ra   r_   r	  r    s    GAAAAAra   r	  rv   c                   <    e Zd ZdZ e       Z e       Zeez  Ze Zy)r  rq
  N)	ro   rp   rq   r   r#   r  r  r  r  r|   ra   r_   r	  z3TestIntFlag.test_assigned_negative_value.<locals>.X  s%    GAAAAAra   c                   J    e Zd ZdZ e       Z e       Zeez  Ze Z e       Z	y3TestIntFlag.test_assigned_negative_value.<locals>.Yru
  N
ro   rp   rq   r   r#   r  r  r  r  r  r|   ra   r_   r[
  r    ,    !GAAAAAAra   r[
  r  c                   J    e Zd ZdZ e       Z e       Zeez  Ze Z e       Z	yr  r  r|   ra   r_   r[
  z3TestIntFlag.test_assigned_negative_value.<locals>.Y  r   ra   )	r   rI  r  r  r  rD  r  rJ  r  rv
  s      r_   rw
  z(TestIntFlag.test_assigned_negative_value  s   	 	 	a133*-qssdACC acc133A&	 	 	a133*-qssdACC acc133A&	 	 	a133QSS/2qssdACCG$acc133qss7#A&	 	 	a133QSS/2qssdACCG$acc133qss7#A&ra   c                     G d dt                G fddt              }| j                  t        |      |j                  g       | j                  |j
                  j                  d       d|j                  _        | j                  |j                  j
                  d       | j                  |j                  j                  d   d       y )Nc                   $    e Zd ZdZddZd Zd Zy)-TestIntFlag.test_set_name.<locals>.DescriptorNc                 <    || S |j                   | j                     S r   r  r  s      r_   r   z5TestIntFlag.test_set_name.<locals>.Descriptor.__get__  r  ra   c                 6    ||j                   | j                  <   y r   r  r  s      r_   r  z5TestIntFlag.test_set_name.<locals>.Descriptor.__set__  r  ra   c                     || _         y r   r  r  s      r_   r  z:TestIntFlag.test_set_name.<locals>.Descriptor.__set_name__  r  ra   r   r  r|   ra   r_   r  r$    r  ra   r  c                   "    e Zd ZdZ W         Zy))TestIntFlag.test_set_name.<locals>.AnEnumru   Nr  r  s   r_   r  r)    r
  ra   r  r  r   r  r  s     @r_   r  zTestIntFlag.test_set_name  r  ra   c                 l    G d dt               }| j                  t        |      d       | j                  |j                  d       | j	                  t        |j                  t                      | j                  |j                  d       | j	                  t        |j                  t                      y )Nc                       e Zd ZdZdZy)/TestIntFlag.test_private_names.<locals>.Privater  r	  Nr
  r|   ra   r_   r  r,    r  ra   r  r   r  r	  r  r  s     r_   r  zTestIntFlag.test_private_names  r  ra   c                    | j                   }| j                  }| j                  d|v        | j                  d|v        | j                  |j                  |v        | j                  |j
                  |v        | j                  |j                  |v        | j                  |j
                  |v        | j                  d|v        | j                  d|v        y )Nrb  rK
  rv   )r   rN
  r   r#  rb  rK
  r
  s      r_   r
  zTestIntFlag.test_membership  s    

yyE)*&u,-4(t+,5()U
#T	"ra   c                 &   | j                   | j                  t        fd       | j                  dj                  v        | j                  j                  j                  v        | j                  j                  j
                  v        y )Nc                       d j                   v S r  )r`  r  s   r_   r  z2TestIntFlag.test_member_contains.<locals>.<lambda>  s    Vuyy-@ ra   ru   )r   r|  r   r#  r`  r	  r   s    @r_   r  z TestIntFlag.test_member_contains  sc    

)%@AUYY'		UYY./		U\\12ra   c                     | j                   }| j                  |j                  |d   u        | j                  |j                  |j                  z  |d   u        | j                  |j                  |d   u        y r
  r
  r   s     r_   r
  zTestIntFlag.test_name_lookup   r
  ra   c                    | j                   }| 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 r  )
r	  rN
  r#  r  rI  rJ  r	  r	  rJ
  rK
  )rj   r	  rN
  rt  s       r_   	test_typezTestIntFlag.test_type&  s    yyyy 	)AOOJq$/0Q(	) 	
466DFF?D9:$&&!, 	)AOOJq$/0Q(	) 	
477TWW#4d;<477*A.ra   c                    | j                   }| j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j
                        d       | j                  t        |j                  |j                  z        d       | j                  t        |j                  |j                  z  |j
                  z        d       | j                  t         |d            d       | j                  t        |j                         d       | j                  t        |j                         d	       | j                  t        |j
                         d       | j                  t        |j                  |j                  z         d       | j                  t        |j                  |j                  z  |j
                  z         d       | j                  t         |d
            d       | j                  }| j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j                  |j                  z        d       | j                  t        |j                  |j                  z        d       | j                  t        |j                         d       | j                  t        |j                         d       | j                  t        |j                         d       | j                  t        |j                  |j                  z         d       | j                  t        |j                  |j                  z         d       y )Nr
  r
  r  67r   r  35rQ   524288524289524291524290r
  r
  s      r_   r
  zTestIntFlag.test_str5  s   yyTVVc*TVVc*TVVc*TVVdff_-s3TVVdff_tvv56<T!Ws+dffWs+dffWs+dffWs+tvv/0#6tvv7893?T"X,yyTWWs+TWWs+TWWs+TWWtww./:TWWtww./:dggX1dggX1dggX1tww012C8tww012C8ra   c                 z    G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                  |j                  z  |j                  z        d       | j	                  t         |d            d	       | j	                  t        |j                         d
       | j	                  t        |j                         d       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d       | j	                  t        |j                  |j                  z  |j                  z         d	       | j	                  t         |d            d	       | j                  t        d      5  t        |j                  dz         d d d        | j                  t        d      5  t         |d             d d d        | j                  t        d      5  t         |d             d d d         G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                  |j                  z  |j                  z        d       | j	                  t         |d            d	       | j	                  t        |j                         d
       | j	                  t        |j                         d       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d       | j	                  t        |j                  |j                  z  |j                  z         d	       | j	                  t         |d            d	       | j                  t        d      5  t        |j                  dz         d d d        | j                  t        d      5  t         |d             d d d        | j                  t        d      5  t         |d             d d d         G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                  |j                  z  |j                  z        d       | j	                  t         |d            d	       | j	                  t        |j                         d
       | j	                  t        |j                         d       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d       | j	                  t        |j                  |j                  z  |j                  z         d	       | j	                  t         |d            d	       | j	                  t         |d            d
       | j	                  t         |d            d       | j                  t        d      5  t        |j                  dz         d d d         G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t         |d            d	       | j	                  t        |j                         d       | j	                  t         |d             d       | j	                  t         |d            d       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d	       | j                  t        d      5  t         |d             d d d        | j                  t        d      5  t         |d             d d d        | j                  t        d      5  t        |j                  dz         d d d        | j                  t        d      5  t         |d             d d d        | j                  t        d      5  t         |d             d d d        y # 1 sw Y   Kx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   xY w# 1 sw Y   jx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   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)*TestIntFlag.test_repr_strict.<locals>.Permr	  r   rv   ru   Nr	  r|   ra   r_   r	  r>  R  r  ra   r	  r
  r
  r
  r
  r
  r   r
  r
  r
  rU  zinvalid value 12r.  zinvalid value -13zinvalid value -9c                        e Zd ZdZdZdZdZdZy)r>  r	  r   rv   ru   rS  Nro   rp   rq   r   r	  r	  r	  rS
  r|   ra   r_   r	  z*TestIntFlag.test_repr_strict.<locals>.Permm      GAAADra   <Perm.MASK: 7>c                        e Zd ZdZdZdZdZdZy)r>  r	  r   rv   ru   r  Nro   rp   rq   r   r	  r	  r	  FUTUREr|   ra   r_   r	  z*TestIntFlag.test_repr_strict.<locals>.Perm      GAAAFra   c                       e Zd ZdZdZdZy)r>  R Xr   ru   Nro   rp   rq   r   r	  r	  r|   ra   r_   r	  z*TestIntFlag.test_repr_strict.<locals>.Perm      GAAra   rQ   zinvalid value 7rS  zinvalid value 2rv   )r   rX   r   
_boundary_rI  rX  r	  r	  r	  re   r   r  s     r_   test_repr_strictzTestIntFlag.test_repr_strictP  s   	7 	
  ,,dff}5dff}5dff}5dfftvvo.@dfftvvo679JKd1g4tvvg8tvvg8tvvg801=A$&& 89:KHd2h5##J0CD 	!	##J0DE 	cO	##J0CD 	bN		7 	  ,,dff}5dff}5dff}5dfftvvo.@dfftvvo679IJd1g4tvvg8tvvg8tvvg801=A$&& 89:KHd2h5##J0CD 	!	##J0DE 	cO	##J0CD 	bN		7 	  ,,dff}5dff}5dff}5dfftvvo.@dfftvvo679JKd1g4tvvg8tvvg8tvvg801=A$&& 89:KHd2h5d3i/:d2h):;##J0CD 	!		7 	  ,,dff}5dff}5dfftvvo.@d1g4tvvg6tAwh9d2h9tvvg601;?##J0BC 	aM	##J0BC 	aM	##J0CD 	!	##J0DE 	cO	##J0CD 	bN	 	k	 		 		 	0	 		 		 	4	 	&	 		 		 		 		 	s   j$9j1)j>k;k+k%k2k?2l"ll%	l1$j.1j;>kkk"%k/2k<?l	ll"%l.1l:c                     G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                  |j                  z  |j                  z        d       | j	                  t         |d            d	       | j	                  t        |j                         d
       | j	                  t        |j                         d       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d       | j	                  t        |j                  |j                  z  |j                  z         d	       | j	                  t        |j                  dz        d       | j	                  t         |d            d	       | j	                  t        |j                  dz         d
       | j	                  t         |d            d       | j	                  t         |d            d        G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                  |j                  z  |j                  z        d       | j	                  t         |d            d	       | j	                  t        |j                         d
       | j	                  t        |j                         d       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d       | j	                  t        |j                  |j                  z  |j                  z         d	       | j	                  t        |j                  dz        d       | j	                  t         |d            d	       | j	                  t        |j                  dz         d
       | j	                  t         |d            d       | j	                  t         |d            d        G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                  |j                  z  |j                  z        d       | j	                  t         |d            d	       | j	                  t        |j                         d
       | j	                  t        |j                         d       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d       | j	                  t        |j                  |j                  z  |j                  z         d	       | j	                  t        |j                  dz        d       | j	                  t         |d            d	       | j	                  t        |j                  dz         d
       | j	                  t         |d            d       | j	                  t         |d            d       | j	                  t         |d            d        G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t         |d            d	       | j	                  t        |j                         d       | j	                  t         |d             d       | j	                  t         |d            d       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d	       | j	                  t         |d            d       | j	                  t         |d            d	       | j	                  t        |j                  dz        d       | j	                  t        |j                  dz         d       | j	                  t         |d            d       | j	                  t         |d            d       | j	                  t         |d            d       y )Nc                       e Zd ZdZdZdZdZy)+TestIntFlag.test_repr_conform.<locals>.Permr	  r   rv   ru   Nr	  r|   ra   r_   r	  rQ    r  ra   r	  r
  r
  r
  r
  r
  r   r
  r
  r
  r.  r@  c                        e Zd ZdZdZdZdZdZy)rQ  r	  r   rv   ru   rS  NrB  r|   ra   r_   r	  z+TestIntFlag.test_repr_conform.<locals>.Perm  rC  ra   rD  c                        e Zd ZdZdZdZdZdZy)rQ  r	  r   rv   ru   r  NrF  r|   ra   r_   r	  z+TestIntFlag.test_repr_conform.<locals>.Perm  rH  ra   ic                       e Zd ZdZdZdZy)rQ  rJ  r   ru   NrK  r|   ra   r_   r	  z+TestIntFlag.test_repr_conform.<locals>.Perm
  rL  ra   rQ   rS  rv   ii)	r   rX   r   rM  rI  rX  r	  r	  r	  r  s     r_   test_repr_conformzTestIntFlag.test_repr_conform  s   	7 	
  --dff}5dff}5dff}5dfftvvo.@dfftvvo679JKd1g4tvvg8tvvg8tvvg801=A$&& 89:KHdffqj)=9d1g4
m,o>d2h):;d3i/:	7 	  --dff}5dff}5dff}5dfftvvo.@dfftvvo679IJd1g4tvvg8tvvg8tvvg801=A$&& 89:KHdffqj)=9d1g4
m,o>d2h)9:d3i/:	7 	  --dff}5dff}5dff}5dfftvvo.@dfftvvo679JKd1g4tvvg8tvvg8tvvg801=A$&& 89:KHdffqj)=9d1g4
m,o>d2h):;d3i/:d3i/:	7 	  --dff}5dff}5dfftvvo.@d1g4tvvg6tAwh9d2h9tvvg601;?d1g8d1g4dffQh7qk*M:d2h9d3i/:d3i/:ra   c                 n    G d dt               }| j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j
                        d       | j                  t        |j                  |j                  z        d       | j                  t        |j                  |j                  z  |j
                  z        d       | j                  t         |d            d	       | j                  t        |j                         d
       | j                  t        |j                         d       | j                  t        |j
                         d       | j                  t        |j                  |j                  z         d       | j                  t        |j                  |j                  z  |j
                  z         d	       | j                  t        |j                  dz        d       | j                  t         |d            d       | j                  t        |j                  dz         d       | j                  t         |d            d       | j                  t         |d            d        G d dt               }| j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j
                        d       | j                  t        |j                  |j                  z        d       | j                  t        |j                  |j                  z  |j
                  z        d       | j                  t         |d            d	       | j                  t        |j                         d
       | j                  t        |j                         d       | j                  t        |j
                         d       | j                  t        |j                  |j                  z         d       | j                  t        |j                  |j                  z  |j
                  z         d	       | j                  t        |j                  dz        d       | j                  t         |d            d       | j                  t        |j                  dz         d       | j                  t         |d            d        G d dt               }| j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j
                        d       | j                  t        |j                  |j                  z        d       | j                  t        |j                  |j                  z  |j
                  z        d       | j                  t         |d            d	       | j                  t        |j                         d
       | j                  t        |j                         d       | j                  t        |j
                         d       | j                  t        |j                  |j                  z         d       | j                  t        |j                  |j                  z  |j
                  z         d	       | j                  t        |j                  dz        d       | j                  t         |d            d       | j                  t        |j                  dz         d       | j                  t         |d            d        G d dt               }| j                  t        |j                        d       | j                  t        |j
                        d       | j                  t        |j                  |j
                  z        d       | j                  t         |d            d	       | j                  t         |d             d       | j                  t         |d            d       | j                  t        |j
                         d       | j                  t        |j                  |j
                  z         d	       | j                  t         |d            d       | j                  t         |d            d       | j                  t        |j                  dz        d       | j                  t        |j                  dz         d       | j                  t         |d            d       y )Nc                        e Zd ZdZeZdZdZdZy))TestIntFlag.test_repr_eject.<locals>.Permr	  r   rv   ru   N)	ro   rp   rq   r   r   rM  r	  r	  r	  r|   ra   r_   r	  rY  "  s    GJAAAra   r	  r
  r
  r
  r
  r
  r   r
  r
  r
  r.  128z-13r?  r@  z-9c                   $    e Zd ZdZeZdZdZdZdZ	y)rY  r	  r   rv   ru   rS  N)
ro   rp   rq   r   r   rM  r	  r	  r	  rS
  r|   ra   r_   r	  z)TestIntFlag.test_repr_eject.<locals>.Perm:  s     GJAAADra   rD  c                   $    e Zd ZdZeZdZdZdZdZ	y)rY  r	  r   rv   ru   r  N)
ro   rp   rq   r   r   rM  r	  r	  r	  rG  r|   ra   r_   r	  z)TestIntFlag.test_repr_eject.<locals>.PermR  s     GJAAAFra   c                       e Zd ZdZeZdZdZy)rY  rJ  r   ru   N)ro   rp   rq   r   r   rM  r	  r	  r|   ra   r_   r	  z)TestIntFlag.test_repr_eject.<locals>.Permj  s    GJAAra   rQ   rS  r5  rv   r
  )r   rI  rX  r	  r	  r	  r  s     r_   test_repr_ejectzTestIntFlag.test_repr_eject   s   	7 	 	dff}5dff}5dff}5dfftvvo.@dfftvvo679JKd1g4tvvg8tvvg8tvvg801=A$&& 89:KHdffqj)40d1g,
m,e4d3i%0d2h.	7 	 	dff}5dff}5dff}5dfftvvo.@dfftvvo679IJd1g4tvvg8tvvg8tvvg801=A$&& 89:KHdffqj)40d1g,
m,e4d2h.	7 	 	dff}5dff}5dff}5dfftvvo.@dfftvvo679JKd1g4tvvg8tvvg8tvvg801=A$&& 89:KHdffqj)40d1g,
m,e4d2h):;	7 	
 	dff}5dff}5dfftvvo.@d1g4tAwh9d2h9tvvg601;?d1g,d1g,dffQh.qk*E2d2h.ra   c                     G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                  |j                  z  |j                  z        d       | j	                  t         |d            d	       | j	                  t        |j                         d
       | j	                  t        |j                         d       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d       | j	                  t        |j                  |j                  z  |j                  z         d	       | j	                  t        |j                  dz        d       | j	                  t         |d            d       | j	                  t        |j                  dz         d
       | j	                  t         |d            d        G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                  |j                  z  |j                  z        d       | j	                  t         |d            d	       | j	                  t        |j                         d
       | j	                  t        |j                         d       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d       | j	                  t        |j                  |j                  z  |j                  z         d	       | j	                  t        |j                  dz        d       | j	                  t         |d            d       | j	                  t        |j                  dz         d
       | j	                  t         |d            d       | j	                  t         |d            d        G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                  |j                  z  |j                  z        d       | j	                  t         |d            d	       | j	                  t        |j                         d
       | j	                  t        |j                         d       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d       | j	                  t        |j                  |j                  z  |j                  z         d	       | j	                  t        |j                  dz        d       | j	                  t         |d            d       | j	                  t        |j                  dz         d
       | j	                  t         |d            d       | j	                  t         |d            d        G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t         |d            d	       | j	                  t        |j                         d       | j	                  t         |d             d       | j	                  t         |d            d       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d	       | j	                  t         |d            d       | j	                  t         |d            d       | j	                  t        |j                  dz        d       | j	                  t        |j                  dz         d       | j	                  t         |d            d       | j	                  t         |d            d       y )Nc                       e Zd ZdZdZdZdZy)(TestIntFlag.test_repr_keep.<locals>.Permr	  r   rv   ru   Nr	  r|   ra   r_   r	  rb    r  ra   r	  r
  r
  r
  r
  r
  r   r
  r
  r
  r.  z<Perm.R|8: 12>z	<Perm: 8>r@  c                        e Zd ZdZdZdZdZdZy)rb  r	  r   rv   ru   rS  NrB  r|   ra   r_   r	  z(TestIntFlag.test_repr_keep.<locals>.Perm  rC  ra   rD  rR  z<Perm.R|W|24: 30>c                        e Zd ZdZdZdZdZdZy)rb  r	  r   rv   ru   r  NrF  r|   ra   r_   r	  z(TestIntFlag.test_repr_keep.<locals>.Perm  rH  ra   c                       e Zd ZdZdZdZy)rb  rJ  r   ru   NrK  r|   ra   r_   r	  z(TestIntFlag.test_repr_keep.<locals>.Perm  rL  ra   rQ   rS  z<Perm.R|X|2: 7>rv   z	<Perm: 2>z<Perm.X|2: 3>z<Perm.R|26: 30>)	r   rX   r   rM  rI  rX  r	  r	  r	  r  s     r_   test_repr_keepzTestIntFlag.test_repr_keep}  sU   	7 	
  **dff}5dff}5dff}5dfftvvo.@dfftvvo679JKd1g4tvvg8tvvg8tvvg801=A$&& 89:KHdffqj)+;<d1g4
m,o>d2h):;	7 	  **dff}5dff}5dff}5dfftvvo.@dfftvvo679IJd1g4tvvg8tvvg8tvvg801=A$&& 89:KHdffqj)+;<d1g4
m,o>d2h)9:d3i*=>	7 	  **dff}5dff}5dff}5dfftvvo.@dfftvvo679JKd1g4tvvg8tvvg8tvvg801=A$&& 89:KHdffqj)+;<d1g4
m,o>d2h):;d3i*=>	7 	  **dff}5dff}5dfftvvo.@d1g4tvvg6tAwh9d2h9tvvg601;?d1g(9:d1g4dffQh)9:qk*O<d2h):;d3i*;<ra   c                 &    G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                         d       | j	                  t        |j                         d	       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d       | j	                  t        |j                  |j                  z         d
       | j	                  t         |d            d       | j                  t        d      5  t         |d             d d d         G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                         d       | j	                  t        |j                         d	       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d       | j	                  t        |j                  |j                  z         d
       | j	                  t         |d            d       | j	                  t         |d            d        G d dt               }t        j                  |_        | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                  |j                  z        d       | j	                  t        |j                         d       | j	                  t        |j                         d	       | j	                  t        |j                         d       | j	                  t        |j                  |j                  z         d       | j	                  t        |j                  |j                  z         d
       | j	                  t         |d            d       | j	                  t         |d            d       | j	                  t         |d            d       | j	                  t         |d            d       y # 1 sw Y   oxY w)Nc                   $    e Zd ZdZdZdZdZdZdZy(TestIntFlag.test_repr_open.<locals>.Openr  r   ru   rv   rw   rH
  Nr  r|   ra   r_   rN
  rj    r  ra   rN
  r
  r
  r
  r
  r
  r
  r
  r
  rP  zinvalid value 4r   c                   $    e Zd ZdZdZdZdZdZdZyri  r  r|   ra   r_   rN
  z(TestIntFlag.test_repr_open.<locals>.Open  r  ra   c                   $    e Zd ZdZdZdZdZdZdZyri  r  r|   ra   r_   rN
  z(TestIntFlag.test_repr_open.<locals>.Open	  r  ra   r
  iO  591iz-1048577)r   rX   r   rM  rI  rX  rI
  rJ
  rL
  rM
  re   r   r   r   )rj   rN
  s     r_   test_repr_openzTestIntFlag.test_repr_open  s   	7 	  ,,dgg7dgg7dgg7dgg/02EFdgg/02HItwwh)BCtwwh)?@twwh)<=$'' 123^D$'' 123^Dd2h)BC##J0BC 	aM		7 	  --dgg7dgg7dgg7dgg/02EFdgg/02HItwwh)BCtwwh)?@twwh)<=$'' 123^D$'' 123^Dd2h)BCd1g7	7 	  ++dgg7dgg7dgg7dgg/02EFdgg/02HItwwh)BCtwwh)?@twwh)<=$'' 123^D$'' 123^Dd2h)BCd1g,d3i%0d6l+Z8[	 	s   ZZ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	  rI  rJ  rD  r.  r   rN
  rI
  rM
  r
  s        r_   r
  zTestIntFlag.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'1ra   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.  rS  )r	  r	  r	  r	  r  rI  rJ  rD  r.  r   rN
  rI
  rM
  r
  s
             r_   r
  zTestIntFlag.test_and5  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'1ra   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 rp  rq  r
  s        r_   r
  zTestIntFlag.test_xorO  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'1ra   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  rI  rJ  rD  r.  rN
  rJ
  rI
  rM
  r
  s	            r_   r
  zTestIntFlag.test_invertd  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<ra   c                    | j                   }|j                  |j                  z  }|j                  |j                  z  |j                  z  }| j	                  t        |      g        | j	                  t        |j                        |j                  g       | j	                  t        |      |j                  |j                  |j                  g       y r   )r	  r	  r	  r	  rI  r  )rj   r	  NoPermr
  s       r_   	test_iterzTestIntFlag.test_iteru  s    yy$&&fftvvo&fr*dffx0cTVVTVVTVV$<=ra   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  rI  r  r	  r	  r	  rU  rV  rJ  r.  r}  r  r
  rD  r
  s          r_   r  z,TestIntFlag.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(	)ra   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
  ry  r
  s          r_   r  z7TestIntFlag.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(	)ra   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
  ry  r
  s          r_   r  z1TestIntFlag.test_programatic_function_string_list  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(	)ra   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
  ry  r
  s          r_   r  z.TestIntFlag.test_programatic_function_iterable  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(	)ra   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   r8   r  rI  r  r	  r	  r	  rU  rV  rJ  r.  r}  r  r
  rD  r
  s          r_   r  z/TestIntFlag.test_programatic_function_from_dict  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(	)ra   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
  s	            r_   r   zTestIntFlag.test_containment  r  ra   c                     | j                   }|D ]  }| j                  |        | j                  }|D ]0  }| j                  t	        |j
                        t	        |             2 y r   r
  r
  s       r_   r  zTestIntFlag.test_bool  r
  ra   c                     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                  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)1TestIntFlag.test_multiple_mixin.<locals>.AllMixinc                 Z    t        |       }d }|r|d   }|dd  D ]  }||z  }	 || _        |S r)  r*  r,  s       r_   r+  z5TestIntFlag.test_multiple_mixin.<locals>.AllMixin.ALL  r.  ra   Nr/  r|   ra   r_   r0  r    r1  ra   r0  c                       e Zd Zd Zy)1TestIntFlag.test_multiple_mixin.<locals>.StrMixinc                 6    | j                   j                         S r   r  r   s    r_   r  z9TestIntFlag.test_multiple_mixin.<locals>.StrMixin.__str__  r  ra   Nr  r|   ra   r_   r  r    r  ra   r  c                   :    e Zd ZdZ e       Z e       Z e       Zy.TestIntFlag.test_multiple_mixin.<locals>.Colorr  Nr  r|   ra   r_   r   r    r  ra   r   ru   rv   r   rS  r
  c                   V    e Zd ZdZW  j                  Z e       Z e       Z e       Zyr  	ro   rp   rq   r   r  r#   r`  rb  ra  r  s   r_   r   z.TestIntFlag.test_multiple_mixin.<locals>.Color  (    &G&&G&CFE6Dra   r   c                   V    e Zd ZdZW  j                  Z e       Z e       Z e       Zyr  r  r  s   r_   r   z.TestIntFlag.test_multiple_mixin.<locals>.Color  r  ra   )	r  r   rI  r`  rJ  rb  ra  r+  r  )rj   r0  r   r  s      @r_   r  zTestIntFlag.test_multiple_mixin  s   
	!v 
	!	+v 	+	Hg 	
 	!,**A.))1-!,UZZ#.	Hh 	 	!,**A.))1-!,UZZ&1	Hh 	 	!,**A.))1-!,UZZ&1ra   r:  c                 p    G d dt               t               dgfd}t        d      D cg c]  }t        j                  |       }}|D ]  }|j                           |D ]  }|j                           | j                  d   d       | j                  d	t              d
       y c c}w )Nc                       e Zd ZdZ e       Z e       Z e       Z e       Z e       Z	 e       Z
 e       Z e       Zd Zd Zy)3TestIntFlag.test_unique_composite.<locals>.TestFlagr>  c                 
    | |u S r   r|   r+  s     r_   r,  z:TestIntFlag.test_unique_composite.<locals>.TestFlag.__eq__&  r@  ra   c                 ,    t        | j                        S r   rB  r   s    r_   rt  z<TestIntFlag.test_unique_composite.<locals>.TestFlag.__hash__(  rD  ra   NrE  r|   ra   r_   r	  r    rK  ra   r	  Fc                  ~    	 t        d      D ]  } j                   |               y # t        $ r dd<   Y y w xY wrM  rO  rP  s    r_   rS  z5TestIntFlag.test_unique_composite.<locals>.cycle_enum-  rT  rU  r.  rV  r   rW  rN  rX  )
r   r  r   rY  rZ  r   r   r   rI  r  r[  s        @@@r_   r^  z!TestIntFlag.test_unique_composite  s    	*w 	* u	! q   
3   	AGGI	 	AFFH	 	q	M	O 	c$i)MNr_  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 ).TestIntFlag.test_init_subclass.<locals>.MyEnumc                     t        |   di | j                  | j                  j	                  dd             d| _        y r2	  r4	  r8	  s     r_   r5	  z@TestIntFlag.test_init_subclass.<locals>.MyEnum.__init_subclass__D  r9	  ra   r:	  r;	  s   @r_   rA  r  C  r<	  ra   rA  c                   "     e Zd Z fdZ xZS )1TestIntFlag.test_init_subclass.<locals>.TheirEnumc                 2    t        |   di | d| _        y r@	  rB	  rD	  s     r_   r5	  zCTestIntFlag.test_init_subclass.<locals>.TheirEnum.__init_subclass__J  rE	  ra   r:	  rF	  s   @r_   rA	  r  I  rG	  ra   rA	  c                       e Zd Zd Zy)1TestIntFlag.test_init_subclass.<locals>.WhoseEnumc                      y r   r|   rK	  s     r_   r5	  zCTestIntFlag.test_init_subclass.<locals>.WhoseEnum.__init_subclass__N  r  ra   NrL	  r|   ra   r_   rM	  r  M  rN	  ra   rM	  c                       e Zd ZdZy).TestIntFlag.test_init_subclass.<locals>.NoEnumru   NrQ	  r|   ra   r_   rR	  r  P  rS	  ra   rR	  r7	  rC	  Fc                       e Zd Zd Zy)/TestIntFlag.test_init_subclass.<locals>.OurEnumc                     d| _         y rW	  rY	  rK	  s     r_   r5	  zATestIntFlag.test_init_subclass.<locals>.OurEnum.__init_subclass__Y  rZ	  ra   NrL	  r|   ra   r_   rX	  r  X  r'  ra   rX	  c                       e Zd Zd Zy)1TestIntFlag.test_init_subclass.<locals>.WhereEnumc                      y r   r|   rK	  s     r_   r5	  zCTestIntFlag.test_init_subclass.<locals>.WhereEnum.__init_subclass__\  r  ra   NrL	  r|   ra   r_   r^	  r  [  rN	  ra   r^	  c                       e Zd ZdZy)1TestIntFlag.test_init_subclass.<locals>.NeverEnumru   NrQ	  r|   ra   r_   ra	  r  ^  rS	  ra   ra	  )r   rI  r  r   r6	  rc	  s   `     @@r_   rd	  zTestIntFlag.test_init_subclassB  s   	&W 	&	) 	)		 		Y 	++H5x@++H5x@++H5{C,,Xu=>,,Xu=>	'f 	'	 			 	))(3X>++//%@A++H5yA++//%@A++//%@Ara   N)&ro   rp   rq   r   r  rc
  rm
  rw
  r  r  r
  r  r
  r2  r
  rN  rV  r_  rf  rn  r
  r
  r
  r
  rw  r  r  r  r  r  r   r  r  r  r   rY  r^  rd	  r|   ra   r_   r  r  \  s     6.@!,F-'^>.E
#3;/96kZa;F[/z^=@A9F2*242*=">) ) ) ) ) "(5.2` X$GH&O I&OP"Bra   r  c                       e Zd Zd Zd Zd Zy)TestEmptyAndNonLatinStringsc                 t    | j                  t              5  t        dd      }| d d d        y # 1 sw Y   y xY w)N	empty_abc)r+
  r  r  )r|  r   r   )rj   r  s     r_   test_empty_stringz-TestEmptyAndNonLatinStrings.test_empty_stringi  s4    z* 	[.9I	 	 	s   .7c                 l    t        dd      }t        |d      }| j                  |j                  d       y )N	greek_abc)   αr  r  r  ru   r   rg   rI  rJ  )rj   r  items      r_   test_non_latin_character_stringz;TestEmptyAndNonLatinStrings.test_non_latin_character_stringn  s/    &:;	y(+Q'ra   c                 l    t        dd      }t        |d      }| j                  |j                  d       y )N
hebrew_123)   אr
  r6  r  ru   r  )rj   r  r  s      r_   test_non_latin_number_stringz8TestEmptyAndNonLatinStrings.test_non_latin_number_strings  s/    ,(<=
z8,Q'ra   N)ro   rp   rq   r  r  r  r|   ra   r_   r  r  g  s    
(
(ra   r  c                   "    e Zd ZdZd Zd Zd Zy)
TestUniquez82.4 doesn't allow class decorators, use function syntax.c                 l     G d dt               }t        |        G d dt              }t        |       y )Nc                       e Zd ZdZdZdZy)+TestUnique.test_unique_clean.<locals>.Cleanru   r  g      @N)ro   rp   rq   r  r  r  r|   ra   r_   Cleanr  }  s    CCDra   r  c                       e Zd ZdZdZdZy)-TestUnique.test_unique_clean.<locals>.Cleanerru   rv   rw   N)ro   rp   rq   r  doubler  r|   ra   r_   Cleanerr    s    FFFra   r  )r   r    r   )rj   r  r  s      r_   test_unique_cleanzTestUnique.test_unique_clean|  s,    	D 	 	u	g 	 	wra   c                    	  G d dt               }t        |       | j                  dv        	  G d dt              }t        |       | j                  d|v        | j                  d	|v        y # t        $ r) t        j                         d   }|j
                  d   }Y w xY w# t        $ r) t        j                         d   }|j
                  d   }Y w xY w)
Nc                       e Zd ZdZdZdZdZy)+TestUnique.test_unique_dirty.<locals>.Dirtyzone tworu   r  N)ro   rp   rq   r'  r  r  r  r|   ra   r_   Dirtyr    s    %	ra   r  ru   r   ztres -> onec                        e Zd ZdZdZdZdZdZy)-TestUnique.test_unique_dirty.<locals>.Dirtierzsingle tripleru   rw   N)ro   rp   rq   r'  r  r  r  turkeyr|   ra   r_   Dirtierr    s    +	ra   r  zdouble -> singlezturkey -> triple)r   r    r   r   r   rk   r#  r   )rj   r  r   messager  s        r_   test_unique_dirtyzTestUnique.test_unique_dirty  s    		" 
 5M 	01
	"'  7O 	*g56*g56#  	",,.#ChhqkG	"  	",,.#ChhqkG	"s"   A1 B& 1/B#"B#&/CCc                 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_with_name.<locals>.Sillyru   r  rw   Nr  r|   ra   r_   r  r    s    CCDra   r  c                       e Zd ZdZdZdZdZy)1TestUnique.test_unique_with_name.<locals>.Sillierru   rv   rw   r   Nr  r|   ra   r_   r  r    s    FDFEra   r  )r    r   r   r  s      r_   test_unique_with_namez TestUnique.test_unique_with_name  s6    		D 	 
	 
	g 	 
	ra   N)ro   rp   rq   r   r  r  r  r|   ra   r_   r  r  y  s    B
76ra   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y)TestNamedTuplec                     G d dt               } |ddd      } |ddd      }| j                  |d   d       | j                  |d	   d       | j                  |d
   d       | j                  |d   d       | j                  |d	   d       | j                  |d
   d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       y )Nc                       e Zd ZdZdZdZy)5TestNamedTuple.test_explicit_indexing.<locals>.Personr   ru   rv   Nro   rp   rq   agerB  r  r|   ra   r_   Personr    r2  ra   r     JohnDoe   Janer   ru   rv   r   rI  r  rB  r  rj   r  p1p2s       r_   test_explicit_indexingz%TestNamedTuple.test_explicit_indexing  s   	Z 	 B&B&A#A'A&A#A'A&$6*%($6*%(ra   c                     G d dt               } |ddd      } |ddd      }| j                  |d   d       | j                  |d	   d       | j                  |d
   d       | j                  |d   d       | j                  |d	   d       | j                  |d
   d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       y )Nc                       e Zd ZdZdZdZdZy)5TestNamedTuple.test_implicit_indexing.<locals>.Personage first lastperson's ageperson's first nameperson's last nameNro   rp   rq   r'  r  rB  r  r|   ra   r_   r  r        (I C)E'Dra   r  r  r  r  r  r  r   ru   rv   r  r  s       r_   test_implicit_indexingz%TestNamedTuple.test_implicit_indexing  s   	(Z 	(
 B&B&A#A'A&A#A'A&$6*%($6*%(ra   c                     G d dt               } |dddd      } |dddd	      }| j                  |d
   d       | j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d
   d       | j                  |d   d       | j                  |d   d       | j                  |d   d	       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d	       y )Nc                       e Zd ZdZdZdZdZy)2TestNamedTuple.test_mixed_indexing.<locals>.Personzage last carsr  )rv   r  zperson's carsN)ro   rp   rq   r'  r  r  carsr|   ra   r_   r  r    s    'I C*D"Dra   r  r  r  r  rw   r  r  rM  r   ru   rv   r   rI  r  r  r  r  s       r_   test_mixed_indexingz"TestNamedTuple.test_mixed_indexing  sH   	#Z 	#
 Bq)Bq)A#A'A&A"A#A'A&A"$%(!$$%(!$ra   c                      G d dt               }| j                  t        |t                      | j                  t        |t                     y )Nc                       e Zd ZdZdZdZy).TestNamedTuple.test_issubclass.<locals>.Personr   ru   rv   Nr  r|   ra   r_   r  r    r2  ra   r  r   r#  r  rk  rj   r  s     r_   test_issubclasszTestNamedTuple.test_issubclass  s6    	Z 	 	
6:67
6512ra   c                      G d dt               } |ddd      }| j                  t        ||             | j                  t        |t                      | j                  t        |t                     y )Nc                       e Zd ZdZdZdZy).TestNamedTuple.test_isinstance.<locals>.Personr   ru   rv   Nr  r|   ra   r_   r  r    r2  ra   r  r  r  r  r   r#  r  rk  rj   r  r  s      r_   test_isinstancezTestNamedTuple.test_isinstance  sW    	Z 	 B&
2v./
2z23
2u-.ra   c                    t        dd      } |ddd      } |ddd      }| j                  |d   d       | j                  |d	   d       | j                  |d
   d       | j                  |d   d       | j                  |d	   d       | j                  |d
   d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       y )Nr  )r  r   )rB  ru   r  rv   r  r  r  r  r  r   ru   rv   r  r  s       r_   +test_explicit_indexing_after_functional_apiz:TestNamedTuple.test_explicit_indexing_after_functional_api  s   H&MNB&B&A#A'A&A#A'A&$6*%($6*%(ra   c                    t        dd      } |ddd      } |ddd      }| j                  |d   d       | j                  |d	   d       | j                  |d
   d       | j                  |d   d       | j                  |d	   d       | j                  |d
   d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       y )Nr  r  r  r  r  r  r  r   ru   rv   r  r  s       r_   +test_implicit_indexing_after_functional_apiz:TestNamedTuple.test_implicit_indexing_after_functional_api  s   H&67B&B&A#A'A&A#A'A&$6*%($6*%(ra   c                    t        dd      } |dddd      } |dddd	      }| j                  |d
   d       | j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d
   d       | j                  |d   d       | j                  |d   d       | j                  |d   d	       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d	       y )Nr  )r  r  )r  rw   r  r  r  rw   r  r  rM  r   ru   rv   r  r  s       r_   (test_mixed_indexing_after_functional_apiz7TestNamedTuple.test_mixed_indexing_after_functional_api'  sG   H&LMBq)Bq)A#A'A&A"A#A'A&A"$%(!$$%(!$ra   c                     t        dd      }| j                  t        |t                      | j                  t        |t                     y )Nr  r  r  r  s     r_   $test_issubclass_after_functional_apiz3TestNamedTuple.test_issubclass_after_functional_api:  s5    H&67
6:67
6512ra   c                     t        dd      } |ddd      }| j                  t        ||             | j                  t        |t                      | j                  t        |t                     y )Nr  r  r  r  r  r  r  s      r_   $test_isinstance_after_functional_apiz3TestNamedTuple.test_isinstance_after_functional_api?  sV    H&67B&
2v./
2z23
2u-.ra   c                 X   t        dd      } |ddd      }| j                  |d   d       | j                  |d   d       | j                  |d	   d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       y )
Nr  r  r  r  r  )r  rB  r  r   ru   rv   r  r  s      r_   test_creation_with_all_keywordsz.TestNamedTuple.test_creation_with_all_keywordsF  s    H&67&u5A#A'A&$6*%(ra   c                    t        dd      } |ddd      }| j                  |d   d       | j                  |d   d       | j                  |d	   d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d        |ddd
      }| j                  |d   d       | j                  |d   d       | j                  |d	   d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       y )Nr  r  r  r  r  )rB  r  r   ru   rv   )r  rB  r  r  s      r_    test_creation_with_some_keywordsz/TestNamedTuple.test_creation_with_some_keywordsP  s   H&67Bf51A#A'A&$6*%(BU&1A#A'A&$6*%(ra   c                      G fddt                d      }| j                  |j                  d       | j                  |j                  d       | j                  |j                  d       y )Nc                   .     e Zd ZdZdZdZ fdZ xZS ),TestNamedTuple.test_custom_new.<locals>.Bookr   ru   rv   c                     |j                  d      D cg c]  }|j                          }}t        |   | gt	        |       S c c}w )Nr
  )rV  r  rh   r  rk  )r  r  r8  rk   Bookrn   s       r_   r  z4TestNamedTuple.test_custom_new.<locals>.Book.__new__f  sE    +1<<+<=a	==T3/BeDkBB >s   A)ro   rp   rq   r  authorgenrer  rr   )rn   r  s   @r_   r  r  b  s    EFEC Cra   r  z&The Last Mohican; John Doe; HistoricalzThe Last MohicanJohn Doe
Historical)r   rI  r  r  r  )rj   b1r  s     @r_   test_custom_newzTestNamedTuple.test_custom_newa  s[    	C: 	C :;#56J/<0ra   c                      G d dt               }ddiddddd	d
dd	ddfD ]9  } |di |}dD ]*  \  }}||v r||   }| j                  t        ||      |       , ; y )Nc                       e Zd ZdZdZdZy)8TestNamedTuple.test_defaults_in_class.<locals>.Characterr   )ru   Nr	  )rv   NfighterN)ro   rp   rq   r  genderklassr|   ra   r_   	Characterr  o  s    D$F&Era   r"  r  r  zWilliam Pickneyscholar)r  r!  zSarah Doughteryr
  )r  r   zSissy Moonbeam	sorceress)r  r   r!  )r  )r   r	  )r!  r  r|   )r   rI  rg   )rj   r"  charr7  r  rJ  s         r_   test_defaults_in_classz%TestNamedTuple.test_defaults_in_classn  s    	'
 	'
 
#)9=)H=(8[Q	 
	:D !D!AW :e4< JE  D!159:
	:ra   c                      G d dt               } |       }| j                  |j                  d       | j                  |j                  d       y )Nc                       e Zd ZdZdZy)DTestNamedTuple.test_defaults_in_class_that_are_falsey.<locals>.Point)r   zhorizondal coordinater   )ru   vertical coordinater   Nr  r|   ra   r_   Pointr)    s    -A+Ara   r+  r   )r   rI  r  r  )rj   r+  r0  s      r_   &test_defaults_in_class_that_are_falseyz5TestNamedTuple.test_defaults_in_class_that_are_falsey  s?    	,J 	, Ga a ra   c                 ~    t        t        t              rt        t        ddd      }t        | j                  |       y )NrD  rB  rE  )r  r   r   r   rI  )rj   lfs     r_   "test_pickle_namedtuple_with_modulez1TestNamedTuple.test_pickle_namedtuple_with_module  s/    h	*Nffj1d..3ra   c                 ~    t        t        t              rt        t        ddd      }t        | j                  |       y )Nzsickly green2x4foul)r  r   r   r   rI  )rj   dfs     r_   %test_pickle_namedtuple_without_modulez4TestNamedTuple.test_pickle_namedtuple_without_module  s/    i+O~uf5d..3ra   c                     t        t        t              rt        t        dd      }| j                  |j                  d       | j                  |j                         d       t        | j                  |       y )NHenry	Weinhardt)r  r   r   rI  r   r#  r   r   )rj   tis     r_   r  zTestNamedTuple.test_subclassing  sU    gy)MWk*'*	7+d..3ra   c                     t        dd      } |ddd      }| j                  d|v        | j                  d|v        | j                  d|v        y )Nr  ztitle author genreTecklaSteven Brustfantasy)r   r#  rj   r  rW  s      r_   r  zTestNamedTuple.test_contains  sN    &"67>95A&!+,	Q'ra   c                 v    G d dt               } |ddd      }| j                  d|v        | j                  d|v        | j                  d|v        | j                  |j                  d       | j                  |j                  d       | j                  t        |dd       | j                  t        |d       y )Nc                   0    e Zd Zej                  ZdZdZdZy),TestNamedTuple.test_fixed_size.<locals>.Bookr   ru   rv   N)	ro   rp   rq   r   fixed_size_r  r  r  r|   ra   r_   r  r@    s    __FEFEra   r  r:  r;  r<  r   r#  rI  r  r  r|  r   r=  s      r_   test_fixed_sizezTestNamedTuple.test_fixed_size  s    	: 	
 >95A&!+,	Q'(+>2)T8^D)T84ra   c                     G d dt               } |ddd      }| j                  d|v        | j                  d|v        | j                  d|v        | j                  |j                  d       | j                  |j                  d        |dd      }| j                  d|v        | j                  d|v        | j                  |j                  d       | j                  |j                  d       | j                  t        |d       y )Nc                   ,    e Zd Zej                  ZdZdZy).TestNamedTuple.test_minimum_size.<locals>.Bookr   ru   N)ro   rp   rq   r   minimumrB  r  r  r|   ra   r_   r  rG    s    &&FEFra   r  r:  r;  r<  rC  r=  s      r_   test_minimum_sizez TestNamedTuple.test_minimum_size  s    	: 	 >95A&!+,	Q'(+>2>*A&!+,(+>2)T84ra   c                     G d dt               } |ddd      }| j                  d|v        | j                  d|v        | j                  d|v        | j                  |j                  d       | j                  |j                  d       | j                  |j
                  d        |dd      }| j                  d|v        | j                  d|v        | j                  |j                  d       | j                  |j                  d       | j                  t        t        |d       | j                  t        |dd       | j                  t        |d       y )	Nc                   0    e Zd Zej                  ZdZdZdZy)/TestNamedTuple.test_variable_size.<locals>.Bookr   ru   rv   N)	ro   rp   rq   r   variablerB  r  r  r  r|   ra   r_   r  rL    s    ''FEFEra   r  r:  r;  r<  r  )r  r  )r  )
r   r#  rI  r  r  r  r|  r  rg   r   r=  s      r_   test_variable_sizez!TestNamedTuple.test_variable_size  s    	: 	
 >95A&!+,	Q'(+>2),>*A&!+,(+>2.'1g>)TK)T.Ara   c                 |
    G d dt               } G d dt               }t        d||z   t              } G d d||      } G d	 d
|      }| j                  |j                  dj	                                | 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       | j                  |j                  dj	                                | 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       | j                  |j                  dj	                                | 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       y )Nc                       e Zd ZdZdZy)8TestNamedTuple.test_combining_namedtuples.<locals>.Pointr   horizontal coordinateru   ru   r*  rQ   Nr  r|   ra   r_   r+  rQ        -A,Ara   r+  c                       e Zd ZdZdZdZy)8TestNamedTuple.test_combining_namedtuples.<locals>.Colorr   red componentr   ru   green component   rv   blue component%   Nro   rp   rq   r  r  rW  r|   ra   r_   r   rW        &A(A'Ara   r   Pixelr   c                       e Zd ZdZy)9TestNamedTuple.test_combining_namedtuples.<locals>.Pixel2za colored dotN)ro   rp   rq   r   r|   ra   r_   Pixel2rd    s    ra   re  c                       e Zd ZdZdZdZy)9TestNamedTuple.test_combining_namedtuples.<locals>.Pixel3)rv   rY  r   )rw   r[  r\  )r   r^  r_  Nr`  r|   ra   r_   Pixel3rg    ra  ra   rh  z	x y r g brS  ru   r*  rQ   rY  r   r[  r\  r^  r_  )r   ro   rI  _fields_rV  r  r   defaultr  r  r  rW  )rj   r+  r   Pixel1re  rh  s         r_   test_combining_namedtuplesz)TestNamedTuple.test_combining_namedtuples  s   	-J 	-	(J 	( GU5[B	UE 		(U 	( 	+*;*;*=>))+BC))1-))+@A))2.))?;))2.))+<=))2.))+;<))2.+*;*;*=>))+BC))1-))+@A))2.))?;))2.))+<=))2.))+;<))2.+*;*;*=>))+BC))1-))+@A))2.))?;))2.))+<=))2.))+;<))2.ra   c                      G d dt               } |dg d      } |dd      } |dd      }| j                  |d	       | j                  t        |      d
       | j                  |j                  d       y )Nc                   ,    e Zd Zed        Zed        Zy)=TestNamedTuple.test_inherit_from_existing.<locals>.OERecTuplec                 (    |d   j                         S rL  )r	  )r  recs     r_   
record_keyzHTestNamedTuple.test_inherit_from_existing.<locals>.OERecTuple.record_key  s    1v||~%ra   c                 ,    | j                  |      |d<   y )NrQ   )rr  ri	  s     r_   _review_zFTestNamedTuple.test_inherit_from_existing.<locals>.OERecTuple._review_  s     >>$/Rra   N)ro   rp   rq   r}  rr  rt  r|   ra   r_   
OERecTuplero    s(    & & 0 0ra   ru  OERec)r	  xmlidrh  ru   abc123rv   xyz789)ru   rx  ABC123rw   rz  )r   rI  r  rh  )rj   ru  rv  oe_1oe_2s        r_   test_inherit_from_existingz)TestNamedTuple.test_inherit_from_existing
  sn    		0 		0 7$:;Q!Q!67TA&8,ra   c                      G d dt               }t        dd|      } |ddd      }| j                  |j                         d	g d
f       y )Nc                       e Zd Zd Zy)5TestNamedTuple.test_function_api_type.<locals>.Testerc                 .    dt        t        |             fS )N	backwards)r  r{  r   s    r_   howdyz;TestNamedTuple.test_function_api_type.<locals>.Tester.howdy  s    "D$$888ra   N)ro   rp   rq   r  r|   ra   r_   Testerr    s    9ra   r  Testeeza c er  ru   rv   rw   r  )rw   rv   ru   )r   rI  r  )rj   r  r  r]  s       r_   test_function_api_typez%TestNamedTuple.test_function_api_type  sF    	9Z 	9 HgF;1aO[)$<=ra   c           	           G d dt               } G d dt               }t        d||z   t              } |ddd	d
d      }| j                  |j                         ddd	d
dd       y )Nc                       e Zd ZdZdZy))TestNamedTuple.test_asdict.<locals>.PointrR  rT  Nr  r|   ra   r_   r+  r  &  rU  ra   r+  c                       e Zd ZdZdZdZy))TestNamedTuple.test_asdict.<locals>.ColorrX  rZ  r]  Nr`  r|   ra   r_   r   r  )  ra  ra   r   rb  r   r  i   r
  r   )r  r  r  r  rW  )r   ro   rI  _asdict)rj   r+  r   rb  pixels        r_   test_asdictzTestNamedTuple.test_asdict%  sb    	-J 	-	(J 	( 7E%KAb$S!,rt#ST*UVra   c                      G d dt               }| j                   |dd      d       | j                  |j                  d      d       y )Nc                       e Zd ZdZdZy)'TestNamedTuple.test_make.<locals>.PointrR  rT  Nr  r|   ra   r_   r+  r  2  rU  ra   r+  r   r   )r   r   )r   rI  _make)rj   r+  s     r_   	test_makezTestNamedTuple.test_make1  s?    	-J 	- 	q!f-V,f5ra   c                 ~     G d dt               } |ddd      }|j                  d      }| j                  |d       y )Nc                       e Zd ZdZdZdZy)*TestNamedTuple.test_replace.<locals>.ColorrX  rZ  r]  Nr`  r|   ra   r_   r   r  9  ra  ra   r      r   )r  )r  r  r  )r   _replacerI  )rj   r   r  mid_grays       r_   test_replacezTestNamedTuple.test_replace8  s>    	(J 	( sAs#??S?)?3ra   c                     G d dt               } |ddd      } |ddd      }| j                  |d   d       | j                  |d	   d       | j                  |d
   d       | j                  |d   d       | j                  |d	   d       | j                  |d
   d       | j                  t        d|j                  d       y )Nc                       e Zd ZdZdZdZdZy)1TestNamedTuple.test_index_by_name.<locals>.Personr  r  r  r  Nr  r|   ra   r_   r  r  B  r  ra   r  r  r  r  r  r  r  rB  r  zobject has no attribute .nope.nope)r   rI  re   r  r5  r  s       r_   test_index_by_namez!TestNamedTuple.test_index_by_nameA  s    	(Z 	(
 B&B&EB'Gf-FU+EB'Gf-FU+~/OQSQ_Q_aghra   N) ro   rp   rq   r  r  r  r  r   r  r  r  r
  r  r  r  r  r&  r,  r/  r4  r  r  rD  rI  rN  rl  r}  r  r  r  r  r  r|   ra   r_   r  r    s    )()*%.3/)")"%&3
/))"1:"!444(55$B,//b-&>
W64ira   r  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestNamedConstantc                 F    G d dt               }| j                  |j                  d       | j                  |j                  d|j                  z         | j	                  t
        d      5  d|_        d d d        | j	                  t
        d      5  |`d d d        | j	                  t
        d      5   |dd	       d d d        | j                  |j                  |v        | j                  |j                  |v        y # 1 sw Y   xY w# 1 sw Y   xxY w# 1 sw Y   \xY w)
Nc                       e Zd ZdZdez  Zy).TestNamedConstant.test_constantness.<locals>.KrY  rv   N)ro   rp   rq   r  r  r|   ra   r_   Kr  T  s    Bb&Cra   r  rY  rv   r[  rM  r\  r  rw   )r   rI  r  r  re   r  r#  )rj   r  s     r_   test_constantnessz#TestNamedConstant.test_constantnessS  s    	 	 	x(ADD)##N4MN 	AD	##N4MN 		##N4MN 	dAJ		"
#	 		 		 	s$   +C?D2
D?DDD c                      G d dt               }| j                  |j                  |j                  u        | j	                  |j                  |j                         | j	                  |j                  d       y )Nc                   @    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y)5TestNamedConstant.test_duplicates.<locals>.CardNumberr   rv   rw   r   r   r  rS  r.  rM  rT  N)ro   rp   rq   ACEr<  r=  r  r	  r	  r	  r	  NINETENJACKQUEENKINGr|   ra   r_   
CardNumberr  c  sC    CCEDDCEEDCDEDra   r  rT  )r   r   r  r  rI  )rj   r  s     r_   test_duplicatesz!TestNamedConstant.test_duplicatesb  sW    	 	 	:??:;9,ra   c                     G d dt               }| j                  |j                  d        |dd      }| j                  ||j                         | j                  |j                  d       | j                  |j                  |v        y )Nc                       e Zd ZdZdZdZdZy)9TestNamedConstant.test_extend_constants.<locals>.CardSuitru   rv   rw   r   N)ro   rp   rq   HEARTSSPADESDIAMONTSCLUBSr|   ra   r_   CardSuitr  v  s    FFHEra   r  ru   STARSr   )r   rI  r  rD  r  r#  )rj   r  starss      r_   test_extend_constantsz'TestNamedConstant.test_extend_constantsu  sk    	} 	
 	!,!$eX^^,+(23ra   c                     G d dt               }| j                  |j                  d       | j                  |j                  j                  d       | j                  |j                  d       | j                  |j                  j                  d        | j                  |j
                  d       | j                  |j
                  j                  d       y )Nc                   4    e Zd Z edd      ZdZ edd      Zy)=TestNamedConstant.test_constant_with_docstring.<locals>.StuffrS  lucky number!r   r\  	blah blahN)ro   rp   rq   r   ArtifactBowlingHillWompr|   ra   r_   Stuffr    s    ?3HGK0Hra   r  rS  r  r   r\  r  )r   rI  r  r   r  r  )rj   r  s     r_   test_constant_with_docstringz.TestNamedConstant.test_constant_with_docstring  s    	1M 	1 	+//A+..5,//=ra   c                     dd l } G d dt        j                        } |d       d|j                  i}|j	                  |       | j                  |d   |j                  u        y )Nr   c                       e Zd ZdZdZy)2TestNamedConstant.test_deep_copy.<locals>.APITypesr  r}  N)ro   rp   rq   STRINGINTr|   ra   r_   APITypesr    s    FCra   r  r  rB  )copyrX   Constantr  deepcopyr#  )rj   r  r  r  s       r_   test_deep_copyz TestNamedConstant.test_deep_copy  sR    	u~~ 	 	hoo&a'
hoo56ra   c                     G d dt         j                         G fddt         j                        }| j                  j                  |j                         | j	                  j                  |j                  u        y )Nc                       e Zd ZdZdZy)9TestNamedConstant.test_subclass_w_same_value.<locals>.Foobla1aba1Nro   rp   rq   BLAABAr|   ra   r_   rR  r    s    CCra   rR  c                   ,    e Zd ZW  j                  ZdZy)9TestNamedConstant.test_subclass_w_same_value.<locals>.Baraba2Nr  )rR  s   r_   r  r    s    ''CCra   r  )rX   r  rI  r  r   )rj   r  rR  s     @r_   test_subclass_w_same_valuez,TestNamedConstant.test_subclass_w_same_value  sX    	%.. 		%.. 	 	#''*CGG+,ra   N)	ro   rp   rq   r  r  r  r  r  r  r|   ra   r_   r  r  Q  s     $-&
4
>7-ra   r  c                       e Zd Zd Zy)TestStarImportc                 F    i }t        d||       | j                  d|       y )Nzfrom aenum import *r   )execr
  )rj   scopes     r_   test_all_exports_namesz%TestStarImport.test_all_exports_names  s"    "E51fe$ra   N)ro   rp   rq   r  r|   ra   r_   r  r    s    %ra   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestStackoverflowAnswersc                 6    G d dt               }|}| j                  |j                  j                  d       | j	                  |j                  j
                  |j                  u        | j	                  |j                  j                  |j                  u        y )Nc                   &    e Zd ZdZdZdZdZdZd Zy)MTestStackoverflowAnswers.test_self_referential_directions.<locals>.DirectionszNORTH WEST SOUTH EASTru   r   )r   ru   )rQ   r   )r   rQ   c                     || _         || _        t        | j                        r<t	        | j                        }|d   |d   }}|| _        || _        | |_        | |_        y y Nr   rQ   )r  r  r  rn   r  rF  rG  )rj   r  r  allrF  rG  s         r_   ri   zVTestStackoverflowAnswers.test_self_referential_directions.<locals>.Directions.__init__  s\    t~~&t~~.C"%a&#b'%D $DI!&DJ!%DJ!%EJ 'ra   N)	ro   rp   rq   r   r  r  r  r  ri   r|   ra   r_   
Directionsr    s     -GEDED
&ra   r  r  )	r   rI  r  rJ  r#  rF  r  r  rG  )rj   r  r  s      r_    test_self_referential_directionsz9TestStackoverflowAnswers.test_self_referential_directions  sg    	& 	&( /.//0ra   c                 H    G d dt               }| j                  |j                  j                  |j                  u        | j                  |j                  j                  |j
                  u        | j                  |j
                  j                  |j                  u        y )Nc                   "    e Zd ZdZdZdZdZd Zy)OTestStackoverflowAnswers.test_self_referential_rock_paper_scissors.<locals>.RPSzRock, Paper, Scissorsrockpaperscissorsc                     t        | j                        r.t        | j                        }|d   |d   }}| |_        || _        y y r  )r  rn   r  beats)rj   rJ  r  rB  previouss        r_   ri   zXTestStackoverflowAnswers.test_self_referential_rock_paper_scissors.<locals>.RPS.__init__  s@    t~~&t~~.C&)!fc"g8E"&EK!)DJ 'ra   N)ro   rp   rq   r   RockPaperScissorsri   r|   ra   r_   RPSr    s    -GDE!H*ra   r  )r   r#  r  r  r  r  )rj   r  s     r_   )test_self_referential_rock_paper_scissorszBTestStackoverflowAnswers.test_self_referential_rock_paper_scissors  si    	*$ 	* 	#,,67**cii78		38834ra   c                 &    G d dt               } G d d|      }t        t        j                  j	                  t
        d            5 }|j                         }d d d        | j                  t        j                  d             y # 1 sw Y   /xY w)Nc                       e Zd Zd Zy)>TestStackoverflowAnswers.test_arduino_headers.<locals>.CHeaderc           	         | j                   }t        | d|z        }t        |d      5 }|j                  d       | D ].  }|j                  d|j                  d|j
                  d       0 	 d d d        y # 1 sw Y   y xY w)Nz_%s__headerr  zinitial header stuff here
z#define rA  
)ro   rg   r  r  r  rJ  )r  rl   cls_nameheader_pathfhr$   s         r_   r5	  zPTestStackoverflowAnswers.test_arduino_headers.<locals>.CHeader.__init_subclass__  sx    <<%c=8+CD+s+ NrHH:; # Ndii!LMNN N Ns   AA77B NrL	  r|   ra   r_   CHeaderr    s    Nra   r  c                   P    e Zd ZdZej
                  j                  ed      ZdZ	dZ
y)>TestStackoverflowAnswers.test_arduino_headers.<locals>.ArduinozONE TWO	arduino.hru   rv   N)ro   rp   rq   r   r  r  r   r  _Arduino__headerr;  r<  r|   ra   r_   Arduinor    s%    Gww||G[9HCCra   r
  r  zv                initial header stuff here
                #define ONE 1
                #define TWO 2
                )
r   r  r  r  r   r  readrI  textwrapdedent)rj   r  r
  r  rv  s        r_   test_arduino_headersz-TestStackoverflowAnswers.test_arduino_headers  sz    	Nd 	N	g 	
 "'',,w45 	!wwy	! * 
 		! 	!s   BBc                      G fddt                G d dt              }| j                  |j                  d             y )Nc                   2     e Zd Z fdZed        Z xZS )ITestStackoverflowAnswers.test_lowercase_compare.<locals>.CompareLowerCasec                     t        |   di | t        | D cg c]  }|j                  j	                          c}      | _        y c c}w )Nr|   )rh   r5	  r  r  rW  lowered_names)r  rl   r~  CompareLowerCasern   s      r_   r5	  z[TestStackoverflowAnswers.test_lowercase_compare.<locals>.CompareLowerCase.__init_subclass__  s;    &>FF$'(EA(E$F!(Es   !Ac                 :    |j                         | j                  v S r   )rW  r  r>  s     r_   has_namezRTestStackoverflowAnswers.test_lowercase_compare.<locals>.CompareLowerCase.has_name  s    zz|s'8'888ra   )ro   rp   rq   r5	  r}  r  rr   )rn   r  s   @r_   r  r    s    G 9 9ra   r  c                   $    e Zd ZdZdZdZdZdZdZy)BTestStackoverflowAnswers.test_lowercase_compare.<locals>.LabelEnumzEnum OnezEnum Twoz
Enum Threer  r	  r	  N)	ro   rp   rq   ENUM_ONEENUM_TWO
ENUM_THREEr  r	  r	  r|   ra   r_   	LabelEnumr    s     !H!H%JDDCra   r  
Enum_Three)r   r	   r#  r  )rj   r  r  s     @r_   test_lowercase_comparez/TestStackoverflowAnswers.test_lowercase_compare  s7    	9t 	9	(' 	 		**<89ra   N)ro   rp   rq   r  r  r  r  r|   ra   r_   r  r    s    165*4:ra   r  c                   f    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y)TestExtendEnumc                     G d dt               }| j                  t        dt        |dd       t        |dd       | j	                  |j
                  j                  d       | j	                  |j
                  j                  d       | j                  |j
                  |v        | j	                   |d      |j
                         | j	                  |d   |j
                         | j	                  t        |      d       t        |d       | j	                  |j                  j                  d       | j	                  |j                  j                  d       | j                  |j                  |v        | j	                   |d      |j                         | j	                  |d   |j                         | j	                  t        |      d       y )	Nc                       e Zd ZdZdZdZy)4TestExtendEnum.test_extend_enum_plain.<locals>.Colorru   rv   rw   Nr  r|   ra   r_   r   r#    r2  ra   r   zalready in use asr   r   brownr   mauve)r   re   r   r"   rI  r$  r  rJ  r#  r  r%  r   s     r_   test_extend_enum_plainz%TestExtendEnum.test_extend_enum_plain  s[   	D 	 	y*={ESY[\]E7A&))73**A.u,-q5;;/w5UQ'E7#))73**A.u,-q5;;/w5UQ'ra   c                     G d dt               }t        |dd       | j                  |j                  j                  d       | j                  |j                  j
                  d       | j                  |j                  |v        | j                   |d      |j                         | j                  |d   |j                         | j                  t        |      d       y )Nc                       e Zd ZdZdZdZy)4TestExtendEnum.test_extend_enum_alias.<locals>.Colorru   rv   rw   Nr  r|   ra   r_   r   r)  $  r2  ra   r   ri  ru   r   rw   )	r   r"   rI  ri  r  rJ  r#  r   r  r   s     r_   test_extend_enum_aliasz%TestExtendEnum.test_extend_enum_alias#  s    	D 	 	E61%%0))1-

e+,q5::.v		2UQ'ra   c                     G d dt               }| j                  t        dt        |dd       | j	                  |j
                  j                  d       | j	                  |j
                  j                  d       | j                  |j
                  |v        | j	                   |d      |j
                         | j	                  |d   |j
                         | j	                  |j                  j                  d       | j	                  |j                  j                  d       | j                  |j                  |v        | j	                   |d      |j                         | j	                  |d	   |j                         | j	                  |j                  j                  d	       | j	                  |j                  j                  d
       | j                  |j                  |v        | j	                   |d
      |j                         | j	                  t        |      d
       t        |dd       | j	                  |j                  j                  d       | j	                  |j                  j                  d       | j                  |j                  |v        | j	                   |d      |j                         | j	                  |d   |j                         | j	                  t        |      d       | j                  t        dt        |dd       t        |d       | j	                  |j                  j                  d       | j	                  |j                  j                  d       | j                  |j                  |v        | j	                   |d      |j                         | j	                  |d   |j                         | j	                  t        |      d       y )Nc                       e Zd ZdZdZdZy)5TestExtendEnum.test_extend_enum_unique.<locals>.Colorru   rv   rw   Nr  r|   ra   r_   r   r-  1  r2  ra   r   z0<Color.rojo: 1> is a duplicate of <Color.red: 1>ri  ru   r   r   rv   r   rw   r$  r   r+
  r   r%  r   )r   re   r   r"   rI  r   r  rJ  r#  r   r   r  r$  r%  r   s     r_   test_extend_enum_uniquez&TestExtendEnum.test_extend_enum_unique0  s   	J 	 	z+^`kmrtz|}~/!,		U*+q599-uuyy1))73**A.u,-q5;;/v

3&1))1-

e+,q5::.UQ'E7A&))73**A.u,-q5;;/w5UQ'z2{E7ANE7#))73**A.u,-q5;;/w5UQ'ra   c                     G d dt               }t        |dd       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  |v        | j                   |d      |j                         | j                  |d   |j                         | j                  t        |      d       | j                  |j                  j                  d       y )Nc                       e Zd ZdZdZdZy)>TestExtendEnum.test_extend_enum_shadow_property.<locals>.Colorru   rv   rw   Nr  r|   ra   r_   r   r1  [  r2  ra   r   rJ  r   ru   )r   r"   rI  rJ  r  r#  r  r   r   s     r_    test_extend_enum_shadow_propertyz/TestExtendEnum.test_extend_enum_shadow_propertyZ  s    	D 	 	E7A&))73**A.u,-q5;;/w5UQ'!,ra   c                 ,    G d dt               } G d d|t              }| j                  t        dt        |dd       | j                  t        |      d       | j                  t        |      |j                  |j                  |j                  g       y )	Nc                       e Zd Zd Zy):TestExtendEnum.test_extend_enum_shadow_base.<locals>.hohumc                     | j                   S )r  r|  r   s    r_   r  z?TestExtendEnum.test_extend_enum_shadow_base.<locals>.hohum.cyanj  s    zz!ra   N)ro   rp   rq   r  r|   ra   r_   r  r5  i  s    "ra   r  c                       e Zd ZdZdZdZy):TestExtendEnum.test_extend_enum_shadow_base.<locals>.Colorru   rv   rw   Nr  r|   ra   r_   r   r8  m  r2  ra   r   zalready in use in superclassr  r   rw   )r  r   re   r   r"   rI  r  r  r   r   r   r  s      r_   test_extend_enum_shadow_basez+TestExtendEnum.test_extend_enum_shadow_baseh  su    	"F 	"	E4 	 	y*I;X]_eghiUQ'euyy%++uzz&JKra   c                 F    G d dt               }t        |ddd       | j                  |j                  j                  d       | j                  |j                  j
                  d       | j                  |j                  |v        | j                   |d      |j                         | j                   |d      |j                         | j                  |d   |j                         | j                  t        |      d       | j                  t        dt        |d       y )	Nc                       e Zd ZdZdZdZy)9TestExtendEnum.test_extend_enum_multivalue.<locals>.Colorru   r   rS  rv   r   r.  rw   r  rM  Nr  r|   ra   r_   r   r<  v      CEDra   r   r$  rT  rN  r   z'no values specified for MultiValue enumr%  )
r   r"   rI  r$  r  rJ  r#  r  re   r   r   s     r_   test_extend_enum_multivaluez*TestExtendEnum.test_extend_enum_multivalueu  s    	N 	 	E7B+))73**B/u,-rEKK0rEKK0w5UQ'z+TVachjqrra   c                     G d dt               }| j                  t        dt        |dd       | j	                  |j
                  j                  d       | j	                  |j
                  j                  d       | j                  |j
                  |v        | j	                   |d      |j
                         | j	                   |d      |j
                         | j	                   |d      |j
                         | j	                  |d   |j
                         | j	                  |j                  j                  d	       | j	                  |j                  j                  d
       | j                  |j                  |v        | j	                   |d
      |j                         | j	                   |d      |j                         | j	                   |d      |j                         | j	                  |d   |j                         | j	                  |j                  j                  d       | j	                  |j                  j                  d       | j                  |j                  |v        | j	                   |d      |j                         | j	                   |d      |j                         | j	                   |d      |j                         | j	                  t        |      d       y )Nc                       e Zd ZdZdZdZy)?TestExtendEnum.test_extend_enum_multivalue_alias.<locals>.Colorr=  r>  r?  Nr  r|   ra   r_   r   rD    r@  ra   r   z0<Color.rojo: 7> is a duplicate of <Color.red: 1>ri  rS  r   ru   r   r   rv   r   r.  r   rw   r  rM  )r   re   r   r"   rI  r   r  rJ  r#  r   r   r  r   s     r_   !test_extend_enum_multivalue_aliasz0TestExtendEnum.test_extend_enum_multivalue_alias  s   	N 	 	z+^`kmrtz|}~/!,		U*+q599-q599-q599-uuyy1))73**A.u,-q5;;/q5;;/q5;;/v

3&1))1-

e+,q5::.q5::.q5::.UQ'ra   c                 D    G d dt         t              }| j                  |j                  t         u        t	        |ddd       | j                  t        |      |j                  |j                  |j                  |j                  g       | j                   |d      |j                  u        | j                   |d      |j                  u        | j                  |j                  j                  dk(         | j                  |j                  j                  dk(         y )Nc                       e Zd ZdZdZdZy)9TestExtendEnum.test_extend_enum_multivalue_str.<locals>.M)value_1VALUE_1)value_2VALUE_2)value_3VALUE_3N)ro   rp   rq   rJ  rL  rN  r|   ra   r_   MrH    s    *G*G*Gra   rO  VALUE_4value_4)r  r   r#  r  r"   rI  r  rJ  rL  rN  rP  r  rJ  )rj   rO  s     r_   test_extend_enum_multivalue_strz.TestExtendEnum.test_extend_enum_multivalue_str  s    	+^ 	+ 	3./Ay)Y7a199aiiAII"NO)		12)		12		)34		945ra   c                     G d dt               }dD ]  \  }}t        |||        | j                  t        |      d       | j                  t	        |      |j
                  |j                  |j                  |j                  |j                  g       | j                  |j
                  j                  d       | j                  |j                  j                  d       y )Nc                       e Zd ZdZdZy)1TestExtendEnum.test_extend_intenum.<locals>.Index   i  N)ro   rp   rq   
DeviceTypeErrorRegisterr|   ra   r_   IndexrU    s    "J"Mra   rY  ))ControlWordi@`  )
StatusWordA`  )OperationModei``  r   rV  r\  )r   r"   rI  r  r  rW  rX  rZ  r[  r]  rJ  )rj   rY  r  rJ  s       r_   test_extend_intenumz"TestExtendEnum.test_extend_intenum  s    	#G 	# 	,KD%
 tU+	, 	UQ'eu'7'79L9LeN_N_afaqaqsx  tG  tG  'H  	I))//8))//8ra   c                    	 ddl m} t        |      }t        |dddd	       t        |d
ddd       | j                  t        |      |dz          | j                  t        |      dd  |j                  |j                  g       | 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       y # t        $ r  G d dt              }d}Y w xY w)Nr   )
HTTPStatusc                       e Zd Zd ZdZdZdZy)9TestExtendEnum.test_extend_multi_init.<locals>.HTTPStatusc                 \    t         j                  | |      }||_        ||_        ||_        |S r   )r}  r  r  phraserc  )r  rJ  rd  rc  r   s        r_   r  zATestExtendEnum.test_extend_multi_init.<locals>.HTTPStatus.__new__  s,    ++c51C"'CK!'CJ&1COJra   r  r  )r  r  r+
  N)ro   rp   rq   r  r	  r	  r	  r|   ra   r_   r`  rb    s     P&r#2
ra   r`  rw   BAD_SPAMi  z
Too greasyzfor a trainBAD_EGGSi  z	Too greenr+
  rv   rV
  )httpr`  r  ImportErrorr   r"   rI  r  re  rf  rJ  r  rd  rc  )rj   r`  lengths      r_   test_extend_multi_initz%TestExtendEnum.test_extend_multi_init  s   	'_F 	J
C}MJ
CbAZ&(3Z %$$j&9&9:	 	,,22C8,,11:>,,33\B,,88-H,,22C8,,11:>,,33[A,,88"=7  	
3W 
3 F	s   F4 4GGc                 J    G d dt               }t        |d       | j                   |d      |j                  u        | j                  t	        |j                  |             | j                  |j                  j                  d       t        |dd       | j                   |d      |j                  u        | j                  t	        |j                  |             | j                  |j                  j                  d       | j                  t        |t                      y )Nc                       e Zd ZdZdZdZdZy).TestExtendEnum.test_extend_flag.<locals>.Colorr   ru   rv   r   Nro   rp   rq   r  r`  rb  ra  r|   ra   r_   r   rm        ECEDra   r   r   r.  r	  r   )	r   r"   r#  r   r  rI  rJ  r	  r  r   s     r_   test_extend_flagzTestExtendEnum.test_extend_flag  s    	D 	
 	E9%aEMM12
5==%89,,a0E8R(b	U\\12
5<<78++R0
5$/0ra   c                     G d dt               }t        |dd       | j                   |d      |j                  u        | j                  t	        |j                  |             | j                  |j                  j                  d       | j                  t        |t                      t        |d       | j                   |d      |j                  u        | j                  t	        |j                  |             | j                  |j                  j                  d       t        |d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  |v        | j                   |d      |j                         | j                  |d   |j                         | j                  t        |      d	       y )
Nc                       e Zd ZdZdZdZdZy)8TestExtendEnum.test_extend_flag_backwards.<locals>.Colorr   ru   rv   r   Nrn  r|   ra   r_   r   rs    ro  ra   r   r	  r   r   r.  r%  r
  r   )r   r"   r#  r	  r  rI  rJ  r  r   r%  r  r  r   s     r_   test_extend_flag_backwardsz)TestExtendEnum.test_extend_flag_backwards  sd   	D 	
 	E8R(b	U\\12
5<<78++R0
5$/0E9%aEMM12
5==%89,,a0E7#))73**B/u,-rEKK0w5UQ'ra   c                     G d dt               }t        |d       | j                   |d      |j                  u        | j                  t	        |j                  |             | j                  |j                  j                  d       t        |dd       | j                   |d      |j                  u        | j                  t	        |j                  |             | j                  |j                  j                  d       | j                  t        |t                     t        |d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  |v        | j                   |d      |j                         | j                  |d   |j                         | j                  t        |      d	       y )
Nc                       e Zd ZdZdZdZdZy)1TestExtendEnum.test_extend_intflag.<locals>.Colorr   ru   rv   r   Nrn  r|   ra   r_   r   rw  
  ro  ra   r   r   r.  r	  r   r%  r
  r   )r   r"   r#  r   r  rI  rJ  r	  r  r   r%  r  r  r   s     r_   test_extend_intflagz"TestExtendEnum.test_extend_intflag	  sd   	G 	
 	E9%aEMM12
5==%89,,a0E8R(b	U\\12
5<<78++R0
5$/0E7#))73**B/u,-rEKK0w5UQ'ra   c                     G d dt               }t        |dd       | j                   |d      |j                  u        | j                  t	        |j                  |             | j                  |j                  j                  d       | j                  t        |t                     t        |d       | j                   |d      |j                  u        | j                  t	        |j                  |             | j                  |j                  j                  d       t        |d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  |v        | j                   |d      |j                         | j                  |d   |j                         | j                  t        |      d	       y )
Nc                       e Zd ZdZdZdZdZy);TestExtendEnum.test_extend_intflag_backwards.<locals>.Colorr   ru   rv   r   Nrn  r|   ra   r_   r   r{  "  ro  ra   r   r	  r   r   r.  r%  r
  r   )r   r"   r#  r	  r  rI  rJ  r  r   r   r%  r  r  r   s     r_   test_extend_intflag_backwardsz,TestExtendEnum.test_extend_intflag_backwards!  sd   	G 	
 	E8R(b	U\\12
5<<78++R0
5$/0E9%aEMM12
5==%89,,a0E7#))73**B/u,-rEKK0w5UQ'ra   c                     G d dt               }t        |d       | j                  |j                  j                  d       | j                  |j                  j
                  d       | j                  t        |      d       y )Nc                   6    e Zd Z e       Z e       Z e       Zy)1TestExtendEnum.test_extend_strenum.<locals>.ColorN)ro   rp   rq   r#   r`  rb  ra  r|   ra   r_   r   r  ;  s    &CFE6Dra   r   r  r  r   )r	   r"   rI  r  r  rJ  r  r   s     r_   test_extend_strenumz"TestExtendEnum.test_extend_strenum:  sb    	G 	 	E7#))73**G4UQ'ra   N)ro   rp   rq   r&  r*  r.  r2  r9  rA  rE  rR  r^  rj  rp  rt  rx  r|  r  r|   ra   r_   r   r   
  sQ    (.('(T-Ls (869">B1 (2(0(2(ra   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)
TestIssuesc                     G d dt         t        t              }| j                  |D cg c]  }|j                   c}g d       | j                  |D cg c]  }|j
                   c}g d       | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d      |j                         | j                   |d	      |j                         | j                   |d
      |j                         y c c}w c c}w )Nc                        e Zd ZdZdZdZdZdZy)3TestIssues.test_auto_multi_int.<locals>.Measurementr  r   201107212012091120110518N)ro   rp   rq   r   r{  r  r  r   r|   ra   r_   Measurementr  H  s    %GGCCEra   r  r8  )r  r  r   r  r   r  ru   r  rv   )
r}  r   r   rI  rJ  r  rD  r  r  r   )rj   r  r~  s      r_   test_auto_multi_intzTestIssues.test_auto_multi_intG  s    	#~| 	 	;7a!''7C+6Q!&&68OPk*-{?k!nkoo6k*-{?k!nkoo6k*-{/@/@Ak!nk&7&78 86s   D?Ec                     G d dt               }| j                  |j                  j                  |j                  j                  |j                  j
                  fddi f       | j                  |j                  j                  |j                  j                  |j                  j
                  fdd|j                  dif       y )Nc                   B    e Zd ZdZ edi       Z ededi      Zd Zy)'TestIssues.test_auto_kwds.<locals>.ItemrI  r  rJ  requirementsr  ru   c                     t         j                  |       }||_        ||_        i }|j	                         D ]&  \  }}t        |t              r|j                  }|||<   ( ||_        |S r   	r  r  r  rJ  r  r  r#   enum_memberr  r  rJ  rJ  r  r   new_requirementsr   r  s           r_   r  z/TestIssues.test_auto_kwds.<locals>.Item.__new__]  m    nnS)##% (..0 ,DAq!!T*MM*+$Q', $4 
ra   NrM  r|   ra   r_   rN  r  X  s(    G#B/A#QF3Ara   rN  ru   r  rv   r  r   rI  r  rJ  rJ  r  r  rO  s     r_   test_auto_kwdszTestIssues.test_auto_kwdsW  s    	4 	" 	$&&,,TVV5H5HIAsTV<X$&&,,TVV5H5HIAsUYU[U[]^T_K`ara   c                     G d dt               }| j                  |j                  j                  |j                  j                  |j                  j
                  fddi f       | j                  |j                  j                  |j                  j                  |j                  j
                  fdd|j                  dif       y )Nc                   H    e Zd ZdZd Z edi       Z ededi      Zd Zy)	/TestIssues.test_auto_kwds_and_gnv.<locals>.ItemrI  c                     | S r   r|   r  s         r_   r  zETestIssues.test_auto_kwds_and_gnv.<locals>.Item._generate_next_value_p  r  ra   r  r  r  ru   c                     t         j                  |       }||_        ||_        i }|j	                         D ]&  \  }}t        |t              r|j                  }|||<   ( ||_        |S r   r  r  s           r_   r  z7TestIssues.test_auto_kwds_and_gnv.<locals>.Item.__new__u  r  ra   N)	ro   rp   rq   r   r  r#   r  r  r  r|   ra   r_   rN  r  m  s-    G#B/A#QF3Ara   rN  r  r  r  r  ru   r  rO  s     r_   test_auto_kwds_and_gnvz!TestIssues.test_auto_kwds_and_gnvl  s    	4 	( 	$&&,,TVV5H5HICQTVX>Z$&&,,TVV5H5HICQTW[W]W]_`VaKbcra   c                      G d dt               }t        |dd       | j                  |j                  |j                  z   |d             | j                  |j                  |j                  z  j
                  d       y )Nc                       e Zd ZdZdZdZy)-TestIssues.test_extend_flag.<locals>.FlagTestr   ru   rv   N)ro   rp   rq   r	  LOWMIDr|   ra   r_   FlagTestr    r  ra   r  HIGHr   r   )r   r"   rI  r  r  rJ  )rj   r  s     r_   rp  zTestIssues.test_extend_flag  s`    	t 	 	Hfa(5x{C(,,6==qAra   c                      G d dt               }t        j                         j                  }ddd}t	        |||       y )Nc                        e Zd ZdddZdddZy)3TestIssues.test_extend_unhashable.<locals>.TestEnumr   abcr	  rJ  ru   defN)ro   rp   rq   ABCDEFr|   ra   r_   r  r    s    C
 Cra   r  r  newr  )r   uuiduuid4rC  r"   )rj   r  randrw  s       r_   test_extend_unhashablez!TestIssues.test_extend_unhashable  s<    	t 	 zz|	 	HdI.ra   N)ro   rp   rq   r  r  r  rp  r  r|   ra   r_   r  r  E  s    9 b*d0B/ra   r  r   r   rS  goodbyehellorM  ru   rJ                ?               @              @c                       e Zd Zd Zd Zd Z ej                  ed      d        Z	 ej                  ed      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  <    d|d<   d|d<   d|d<   d|d<   y )N)r  r  r  r  r  r  r   zCONVERT_TEST_NAME_%szCONVERT_STRING_TEST_NAME_%s))r  r   )r  r  )r  rJ  zUNCOMPARABLE_%s))r  r  )r  r  )r  r  z
COMPLEX_%s))r  r  )r
  r  zCONVERT_STR_TEST_%sr   CONVERT_TEST_SIGABRTCONVERT_TEST_SIGIOTrS  CONVERT_TEST_EIOCONVERT_TEST_EBUS)r]  )rj   r  suffixrJ  s       r_   tearDownzTestConvert.tearDown  s     I4 	:F12A$v-.89A+f45	: G 	2MFE,1A&()	2> 	-MFE',AlV#$	-? 	6MFE05A#f,-	6$%
 !#$
  !
!"
ra   c                    t        j                  dt        d       }| j                   |d      j                  d       | j                   |d      j                  d       | j                   |d      j                  d	       | j                  t        |      |j                  |j                  |j                  g       y )
NUnittestConvertc                 $    | j                  d      S NCONVERT_TEST_
startswithr  s    r_   r  z@TestConvert.test_convert_value_lookup_priority.<locals>.<lambda>      o!> ra   filterr   CONVERT_TEST_NAME_Ar   r  rS  r  )	r   	_convert_MODULErI  r  r  r  r  r  rj   r2  s     r_   "test_convert_value_lookup_priorityz.TestConvert.test_convert_value_lookup_priority  s    %%!>@	 	1**,AB1**,BC1**,?@Y2211//	ra   c                 x   t        j                  dt        d       }| j                  |j                  |j
                         | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       t        t              g dz   }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 )	Nr  c                 $    | j                  d      S r  r  r  s    r_   r  z.TestConvert.test_convert_int.<locals>.<lambda>  r  ra   r  r   )
r  CONVERT_TEST_NAME_BCONVERT_TEST_NAME_CCONVERT_TEST_NAME_DCONVERT_TEST_NAME_ECONVERT_TEST_NAME_Fr  r  r  r  extra names: ;  missing names: msg)r   r  r  rI  r  r  r  r  r  r  dirr}  enum_dir)rj   r2  int_dirr  extramissings         r_   test_convert_intzTestConvert.test_convert_int  s   %%!>@	
 	66"66	866:66:66:66:c(   #&i.T$D@S4STT$,Y$7VD4s9~;U4VV=BGL 	 	 UVs   D2(D2;D7D7z$everything is comparable on Python 2c                     t        j                  dt        d       }| j                  t	        |      |j
                  |j                  |j                  gt	        |             y )NUncomparablec                 $    | j                  d      S )NUNCOMPARABLE_r  r  s    r_   r  z7TestConvert.test_convert_uncomparable.<locals>.<lambda>  r  ra   r  )r   r  r  rI  r  UNCOMPARABLE_AUNCOMPARABLE_BUNCOMPARABLE_Crj   uncomps     r_   test_convert_uncomparablez%TestConvert.test_convert_uncomparable  sT    >@
 	L""F$9$96;P;PQL	ra   c                     t        j                  dt        d       }| j                  t	        |      |j
                  |j                  |j                  g       y )Nr  c                 $    | j                  d      S )NCOMPLEX_r  r  s    r_   r  z2TestConvert.test_convert_complex.<locals>.<lambda>  s    Q\\*5 ra   r  )r   r  r  rI  r  	COMPLEX_A	COMPLEX_B	COMPLEX_Cr  s     r_   test_convert_complexz TestConvert.test_convert_complex  sL    57
 	Lv//1A1AB	ra   c                    t        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 )Nr  c                 $    | j                  d      S )NCONVERT_STR_r  r  s    r_   r  z.TestConvert.test_convert_str.<locals>.<lambda>$  s    n!= ra   Tr  	as_globalr  r  r  r  r  z%s.CONVERT_STR_TEST_1)r	   r  r  rI  CONVERT_STR_TEST_1CONVERT_STR_TEST_2r  r  rX  SHORT_MODULEr  r  )rj   r2  r  r  r  s        r_   test_convert_strzTestConvert.test_convert_str   s   %%!=	 	 	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   $D77D7
D<D<c                 ,   t        j                  dt        d d      }| j                  t	        |j
                        dt        z         | j                  t        |j
                        d       | j                  t        |j
                        d       y )Nr  c                 $    | j                  d      S )NCONVERT_STRING_TEST_r  r  s    r_   r  z7TestConvert.test_convert_repr_and_str.<locals>.<lambda>9  s    .D!E ra   Tr  z%s.CONVERT_STRING_TEST_NAME_Ar7  )	r   r  r  rI  rX  CONVERT_STRING_TEST_NAME_Ar  r  r  r  s     r_   test_convert_repr_and_strz%TestConvert.test_convert_repr_and_str5  sx    %%!E	 	
 	iBBCEdgsEstYAABCH	 D DEsKra   N)ro   rp   rq   r  r  r  r  r   r/   r  r  r  r   r|   ra   r_   r  r    sg    #&(6 XDE
 F
 XDE	 F	H*Lra   r  c                 D   t        | j                  g dz         }| j                  t        j                  ur|j                  d       | j                  t        j                  ur|j                  d       t        t        d      r|j                  d       dD ]@  }t        | |      t        t        |      t        t        |      fvs0|j                  |       B | j                  t        u rt        |      S t        t        t        | j                              |z        S )N)	rn   __contains__r   r5  r'
  r
  r  rp   ro   r  r5	  rq   )ri   r  r;  r  )r  _member_names__new_member_r  r  rC   r5	  r   r  rg   r   r  rm  r  )r  interestingmethods      r_   r  r  A  s    #,, 0  
 6>>1OOI&  (>(>>OO/06>*OON+G 	(FsF#GD&,A74QWCX+YY'	( &+&& #c#"3"345CDDra   c                    | j                   j                  t        u rt        g d      }nt        t	        |             }| j                   j                         D ]  }|j                  j                         D ]w  \  }}|d   dk(  rt        |t        j                        r>|j                  || j                  vr|j                  |       U|j                  |       g|j                  |       y  t        |      S )N)rn   r   r,  rt  rp   r  rJ  r   r1  )rn   r  r  r  r  r  r  r  r  r$   r  r   rh  rC   discardrm  )r&   allowedr  r  r   s        r_   
member_dirr
  V  s    %%/cdc&k"##% 
"++- 		"ID#Aw#~#t}}-88'4v7J7J+JKK%OOD)D!		"
" '?ra   __main__F)exitrS  T)
__future__r   r   r   rX   rV   r  shutiltempfiler  r  r  warningsr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   aenum._enumr7   r	  r8   r  r9   pickler:   r;   r<   r=   operatorr>   rh  r?   rj  r@   ri  rA   rk  rB   r\  rC   r]  rD   r^  rE   ra  rF   rb  rG   r`  rH   rc  rI   rd  rJ   re  rK   rf  rL   r_  rM   rg  rN   rl  rY  rh  rO   	NameErrorro   r  rV  r  r`   rc   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   r   r   r   r   r+
  test_v37r   r  r   r   r5  r  rw  r  r	  r	  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  CONVERT_STRING_TEST_NAME_DCONVERT_STRING_TEST_NAME_CCONVERT_STRING_TEST_NAME_Br  CONVERT_STRING_TEST_NAME_ECONVERT_STRING_TEST_NAME_Fr  r  r  r  r  r  r  r  r  r  r
  mkdtempr  r  mainstdoutflushresultskippedr  reasonrs  rmtreer  r  rr  r   r|   ra   r_   <module>r#     s   0 
   	       b b b f f f [ [ [ . . r r r A A S S S ! #  @ @ K K G G I I K K 7% 
||C $6x   6 $ #S$ %ud d 	d  	! !*&<XNH"J w !J 9(KH(9:F * ' 	  59AGWCX L @ABR>S 
L ~~#G$9G!$9G!E>%%F %i iX_9H _9DL#( L#^%78 %7Pw/2x w/2t_uB( uBpx"x x"v)HB( HBV (("3"3 ($5 5p^iX ^i@N- N-b%X %^:x ^:Bx(X x(v	W/ W/|                     			zL( zL|E*( zh GD
Q%GOx}}%(

 KK// 	-LD&dF+,	- 	gt$CHHS++Ct{{/C/CDJOaP  Qr  I
  <   cllnQG   #"J#  %3<<>!$L%  K    N  ! !
  !s||~a H!  "q!I"  3<<>!D
  !s||~a H!
  S\\^AF   cllnQG   		Hn 	gt$CHHS++Ct{{/C/CDJOaP s@  P, P: Q Q, R (R, 4S  S S$ S9 $T 0T9 <U 	U9 V )V9 A&W ,P76P7:Q	Q	Q)(Q),R	R	R)(R),R>1R99R>SSSS! S!$S6)S11S69TTT65T69UUU65U69VVV65V69WWA*X/