
    dafw                       d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZm Z m!Z! d dl"m#Z# d d	l$m%Z% d d
l&m'Z'm(Z(m)Z) d dl*m+Z+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1 d dl&m2Z2 d dl3m4Z4m5Z5 	 d dl6Z6d dl7Z7d\  Z9Z:e9e:z   dk(  Z; G d d      Z< G d d      Z= G d d      Z>ddddddddd d! e?ej                        ej                  fd"eAfd#d$eAfd%eAfd&eAfd'eAf eBd(d)      d*f eCd+      eAfgZDdddddddd,eAfd d-eAf e?ej                        ej                  fd"eAfd.eAfd$eAfd%eAfd&eAfd'eAf eBd(d)      d*f eCd+      eAfgZE G d/ d0      ZF G d1 d2      ZGd3 ZHd4 ZI G d5 d6ej                        ZK G d7 d8ej                        ZL ej                  e6d9       G d: d;ej                               ZN G d< d=ej                        ZO G d> d?ej                        ZPe' G d@ dAej                               ZQ G dB dCej                        ZRdD ZSeTdEk(  r ej                          yy# e8$ r dxZ6Z7Y w xY w)F    N)	ExitStack)partial)CO_COROUTINE)product)dedent)AsyncGeneratorTypeFunctionTypeCellType)neg)support)cpython_only	swap_attrmaybe_get_event_loop_policy)EnvironmentVarGuardTESTFNunlink)assert_python_ok)check_warnings)requires_IEEE_754)	MagicMockpatch)g 7yACg):@g7yACc                       e Zd Zd Zd Zd Zy)Squaresc                      || _         g | _        y Nmaxsofarselfr   s     ,/root/Python-3.12.4/Lib/test/test_builtin.py__init__zSquares.__init__4       
    c                 ,    t        | j                        S r   lenr   r    s    r!   __len__zSquares.__len__8   s    c$**o-r$   c                     d|cxk  r| j                   k  st         t        t        | j                        }||k  r)| j                  j	                  ||z         |dz  }||k  r)| j                  |   S Nr      )r   
IndexErrorr'   r   appendr    ins      r!   __getitem__zSquares.__getitem__:   sl    A  
"2 
"2

O1fJJac"FA 1f zz!}r$   N__name__
__module____qualname__r"   r)   r2    r$   r!   r   r   2   s     .r$   r   c                       e Zd Zd Zd Zd Zy)
StrSquaresc                      || _         g | _        y r   r   r   s     r!   r"   zStrSquares.__init__D   r#   r$   c                 ,    t        | j                        S r   r&   r(   s    r!   r)   zStrSquares.__len__H   s    4::r$   c                     d|cxk  r| j                   k  st         t        t        | j                        }||k  r2| j                  j	                  t        ||z               |dz  }||k  r2| j                  |   S r+   )r   r-   r'   r   r.   strr/   s      r!   r2   zStrSquares.__getitem__K   st    A   !

O1fJJc!A#h'FA 1f zz!}r$   Nr3   r7   r$   r!   r9   r9   B   s    r$   r9   c                       e Zd Zd Zy)	BitBucketc                      y r   r7   )r    lines     r!   writezBitBucket.writeU   s    r$   N)r4   r5   r6   rB   r7   r$   r!   r?   r?   T   s    r$   r?   )0r   )1r,   )9	   )10
   )99c   )100d   )314:  ) 314rN   )z314 rN   )  		  314  		  rN   z  1x)  1  r,   z  1    z  		  s   \u0663\u0661\u0664 zraw-unicode-escaperN   i   rO   rP   rQ   c                       e Zd Zd Zy)TestFailingBoolc                     t         r   RuntimeErrorr(   s    r!   __bool__zTestFailingBool.__bool__       r$   N)r4   r5   r6   rY   r7   r$   r!   rU   rU          r$   rU   c                       e Zd Zd Zy)TestFailingIterc                     t         r   rW   r(   s    r!   __iter__zTestFailingIter.__iter__   rZ   r$   Nr4   r5   r6   r_   r7   r$   r!   r]   r]      r[   r$   r]   c                 0    t        |       t        d      kD  S )Nd)ordargs    r!   filter_charrf      s    s8c#hr$   c                 0    t        t        |       dz         S Nr,   )chrrc   rd   s    r!   map_charrj      s    s3xz?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 ej                   ej$                  xs ej&                  d      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d  Z&d! Z'd" Z( ejR                  d#      d$        Z*d% Z+d& Z,d' Z-d( Z.d) Z/d* Z0d+ Z1d, Z2d- Z3d. Z4d/ Z5d0 Z6d1 Z7d2 Z8d3 Z9d4 Z:d5 Z; ej                   e<jz                  j|                  d6      d7        Z? ej                         d8        ZAd9 ZBd: ZCd; ZDd< ZEd= ZF eGj                         j                  d>      xr   eGj                         j                  d?      ZK eLd@      d@k7  ZM ej                   eKxr eMdA      dB        ZNdC ZOdD ZPdE ZQeR ej                   eSdF      ej                  dG                      ZUdH ZVeWdI        ZXeWdJ        ZY G dK dLeZ      Z[dM Z\dN Z]dO Z^dP Z_dQ Z`dR ZadS ZbdT ZcdU ZddV ZedW Zfej                  dX        ZgdY ZhdZ Zid[ Zjd\ Zkd] Zld^ Zmd_ Znd` Zoda Zpyb)cBuiltinTestc                    |}t        j                  ||      }t        j                  |      }| j                  t	        |      t	        |             | j                  t        |      |       t        j                  |      }	 t        |       t        j                  ||      }t        j                  |      }| j                  t        |      |dd         y # t        $ r Y y w xY wrh   )pickledumpsloadsassertEqualtypelistnextStopIteration)r    itseqprotoitorgrb   s         r!   check_iter_picklezBuiltinTest.check_iter_pickle   s    LLU#\\!_ed2h/b3' \\!_	H LLU#\\!_b3qr7+	  		s   C 	C$#C$c           
      ,   t        d       t        d       t        d       t        d       t        dd       | j                  t        t         d       | j                  t        t         dd	d
d       | j                  t        t         d       | j                  t        t         dd       | j                  t              5  | j                  t        t         dd d ddi dd       d d d        | j                  t        t         d       y # 1 sw Y   %xY w)Nsystimestringnamer   )r   levelspamspamr,            rR   __main__)__package____spec__r4   )foo)localsfromlistr   zstring )
__import__assertRaisesModuleNotFoundError	TypeError
ValueErrorassertWarnsImportWarningImportErrorr(   s    r!   test_importzBuiltinTest.test_import   s    568a(-z:F)ZAq!<*j"5)ZUCm, 	Ek:r.2R\]%'(!  E	E
 	-z<H	E 	Es   %D

Dc                    | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        t        j                   dz
        dkD         | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        t        d       | j                  t        d	      d       | j                  t        d
      d       | j                  t        t               | j                  t        t        d         G d dt              }| j                  t         |             d       y )Nr     i.r,           gQ	@gQ	aTFc                       e Zd Zd Zy)&BuiltinTest.test_abs.<locals>.AbsClassc                      y)Nr7   r(   s    r!   __abs__z.BuiltinTest.test_abs.<locals>.AbsClass.__abs__       r$   N)r4   r5   r6   r   r7   r$   r!   AbsClassr          r$   r   r   )rq   abs
assertTruer|   maxsizer   r   object)r    r   s     r!   test_abszBuiltinTest.test_abs   s   Q#TD)UT*S[[LN+a/0S3'TD)UT*)S#.TA&UQ')S))S$/	v 	 	XZ"-r$   c                    | j                  t        g d      d       | j                  t        g d      d       | j                  t        t        dt	               dg       | j                  t        t        t                      | j                  t        t        d       | j                  t        t               | j                  t        t        g dg        | j                  t        g       d       | j                  t        dt	               g      d       d	d
g}| j                  t        d |D              d       g d}| j                  t        d |D              d       y )Nr   r      T)r   Nr   Fr   r   rH   r   2   <   c              3   &   K   | ]	  }|d kD    yw*   Nr7   .0xs     r!   	<genexpr>z'BuiltinTest.test_all.<locals>.<genexpr>        /QV/   )r   (   r   c              3   &   K   | ]	  }|d kD    ywr   r7   r   s     r!   r   z'BuiltinTest.test_all.<locals>.<genexpr>   r   r   )rq   allr   rX   rU   r]   r   r    Ss     r!   test_allzBuiltinTest.test_all   s   Y.\*E2,a1BA-FG,_->?)S"-)S))S)R8R$'a!234e<H/Q//6/Q//7r$   c                    | j                  t        g d      d       | j                  t        g d      d       | j                  t        t        d t	               dg       | j                  t        t        t                      | j                  t        t        d       | j                  t        t               | j                  t        t        g dg        | j                  t        g       d       | j                  t        dt	               g      d       g d	}| j                  t        d
 |D              d       g d}| j                  t        d |D              d       y )N)NNNF)Nr   NTr   rH   r   r,   )r   r      c              3   &   K   | ]	  }|d kD    ywr   r7   r   s     r!   r   z'BuiltinTest.test_any.<locals>.<genexpr>   r   r   )rH      r   c              3   &   K   | ]	  }|d kD    ywr   r7   r   s     r!   r   z'BuiltinTest.test_any.<locals>.<genexpr>   r   r   )rq   anyr   rX   rU   r]   r   r   s     r!   test_anyzBuiltinTest.test_any   s   /0%8_-t4,dO4Eq-IJ,_->?)S"-)S))S)R8R%(a!234d;/Q//6/Q//7r$   c                      j                  t        d      d        j                  t        d      d        j                  t        d      d        j                  t        g       d        j                  t        i       d       g }|j                  |        j                  t        |      d	       i }||d<    j                  t        |      d
        fd} |d        |d        |d        |d        |d        |d        |d        |d        |d        |d        j                  t        d      d       d} j                  t        |      d       y )NrR   ''r   rC   r7   ()[]{}[[...]]
{0: {...}}c                 N    j                  t        |       t        |              y r   )rq   asciirepr)sr    s    r!   
_check_uniz*BuiltinTest.test_ascii.<locals>._check_uni   s    U1XtAw/r$   '"z"' z
	 .   u   ῿u   𒿿u   u   u   𝄡z'\U0001d121'u   ' "
	 abcdé𒿿𝄡xxx.z:'\'\x00"\n\r\t abcd\x85\xe9\U00012fff\ud800\U0001d121xxx.')rq   r   r.   )r    r   r   r   s   `   r!   
test_asciizBuiltinTest.test_ascii   s4   rF+q3'rD)rD)rD)	q9-!q<0	03354:68< 88 	|,o>BqM	Or$   c                     t         j                   dz
  }| j                  t        |t                     | j                  | t         j                  dz          y rh   )r|   r   r   
isinstanceintrq   r    r   s     r!   test_negzBuiltinTest.test_neg  s>    [[LN
1c*+!S[[]+r$   c                    | j                  t        t                     | j                  t        d             | j                  t        t                     | j                  t        d              | j                  t        t                     d }| j                  t        |              G d d      }| j                  t        |              |       }| j                  t        |j
                               | j                  t        |             d |_        | j                  t        |             d |_        | j                  t        |             |`| j                  t        |              G d dt              } |       }| j                  t        |             d |_        | j                  t        |              G d	 d
|      } |       }| j                  t        |             y )Nr   c                     | |z   S r   r7   r   ys     r!   <lambda>z+BuiltinTest.test_callable.<locals>.<lambda>  s
    a!e r$   c                       y r   r7   r7   r$   r!   fz$BuiltinTest.test_callable.<locals>.f      r$   c                       e Zd Zd Zy)%BuiltinTest.test_callable.<locals>.C1c                      y r   r7   r(   s    r!   methz*BuiltinTest.test_callable.<locals>.C1.meth  s    Dr$   N)r4   r5   r6   r   r7   r$   r!   C1r     s     r$   r   c                      yNr   r7   r(   s    r!   r   z+BuiltinTest.test_callable.<locals>.<lambda>'      r$   c                       e Zd Zd Zy)%BuiltinTest.test_callable.<locals>.C2c                      y r   r7   r(   s    r!   __call__z.BuiltinTest.test_callable.<locals>.C2.__call__-  s    r$   N)r4   r5   r6   r   r7   r$   r!   C2r   ,  s    $r$   r   c                       e Zd Zy)%BuiltinTest.test_callable.<locals>.C3Nr4   r5   r6   r7   r$   r!   C3r   2      r$   r   )r   callabler'   assertFalse__builtins__r   r   r   )r    r   r   cr   c2r   c3s           r!   test_callablezBuiltinTest.test_callable  sY   &#'*+!345,/0$	! 	!%D()!% 
!%#
!%J!%	% 	%T%%T%r$   c                 ^   | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        t        d	       | j                  t        t        j
                        t        d
j                  d      d             | j                  t        t               | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        t        d       | j                  t        t        d        | j                  t        t        ft        d!       y )"N    rS   A   Aa   r         ÿi   z
\U0010ffffr   zunicode-escape     ￿      𐀀     𐀁    󿿾    󿿿      􀀀     􀀁    􏿾    􏿿i           )
rq   ri   r   r   r|   
maxunicoder=   encoder   OverflowErrorr(   s    r!   test_chrzBuiltinTest.test_chr6  s   R#&R#&R#&TF+*c51S^^,]11':<LM	O)S)Z,7Z,7Z,7Z,7Z,7Z,7Z,7Z,7Z,7*c2.*c:6=*5sEBr$   c                 D    | j                  t        t        d              y )Ncmp)r   hasattrbuiltinsr(   s    r!   test_cmpzBuiltinTest.test_cmpL  s    GHe445r$   c           
         t        ddd       d}t        |dz   dd       t        ddd       t        d	d
dd       t        dddd       t        t        d      dd       | j                  t        t                | j                  t        t         ddd       | j                  t        t         dddd       | j                  t        t         dddddd
       t        ddd       | j                  t
        t         t        d      dd       | j                  t        t         t        d      dd       d}d }dd|j                  ddfd d!d"g}|D ]  ^}}g }|j                  t        |d#d|$             t        j                  |      }|j                  t        |d#d|$             |D ]5  }	i }
t        |	|
        |
d          }| j                  |t        |             7  y )%Nz	print(1)
rR   exec   ﻿s	   print(1)
pass?)sourcefilenamemodeFtmprC   eval)dont_inheritr"  r!  r#  T)r&  r#  s   textr   z
print(42)
<string>badmodesingler   )r#  r!  r"  u   print("å")
r   r   za = 1badaJ  def f():
        """doc"""
        debug_enabled = False
        if __debug__:
            debug_enabled = True
        try:
            assert False
        except AssertionError:
            return (True, f.__doc__, debug_enabled, __debug__)
        else:
            return (False, f.__doc__, debug_enabled, __debug__)
        c                       y)docNr7   r7   r$   r!   r   z#BuiltinTest.test_compile.<locals>.fn  r   r$   r  )r   Tr,  TT)r,   Fr,  FF)r   FNFFz<test>)optimize)compile
memoryviewr   r   r   SyntaxErrorri   r=   __doc__r.   astparser  rq   tuple)r    bomcodestrr   valuesoptvalexpectedcodeobjstreecodensrvs               r!   test_compilezBuiltinTest.test_compileO  s   b&)m#R0v&9UU3VL$V<
7#VV4)W-*g}j)T*g}j(TXY)Wfc6%cE 	 	C!2v.+wAVD*gs7|S%H 	y!))Y	B.102 "( 
	6FXHOOGGXvOP99W%DOOGD(FVLM  6T2RWY  U8_5	6
	6r$   c           	          d}g d}t        ||      D ]\  \  }}t        |      }t        |d|t        j                        }| j                  |j                  t        z  t        d| d|        ^ y)	zCMake sure top level non-await codes get the correct coroutine flagsr)  r  )zdef f():pass
z[x for x in l]z{x for x in l}z(x for x in l)z{x:x for x in l}r   flagssource= mode=msgN)r   r   r.  r2  PyCF_ALLOW_TOP_LEVEL_AWAITassertNotEqualco_flagsr   )r    modescode_samplesr#  code_sampler!  cos          r!   $test_compile_top_level_await_no_coroz0BuiltinTest.test_compile_top_level_await_no_coro  s    "
 ")!= 	DD+K(F "%"@"@BB
 l :L&-fXVD6$B   D	Dr$   zsocket.accept is brokenc           	         d }d}g d}t               }	 t        ||      D ]  \  }}t        |      }| j                  t        d| d|       5  t        |d|       ddd       t        |d|t        j                  	      }| j                  |j                  t        z  t        d| d|        t        d
|d}	t        ||	      }
t        j                   |
              | j                  |	d   d       t        d
|d}	t        j                  t        ||	             | j                  |	d   d        	 t        j                  |       y# 1 sw Y   xY w# t        j                  |       w xY w)aI  Test whether code some top level await can be compiled.

        Make sure it compiles only with the PyCF_ALLOW_TOP_LEVEL_AWAIT flag
        set, and make sure the generated code object has the CO_COROUTINE flag
        set in order to execute it with  `await eval(.....)` instead of exec,
        or via a FunctionType.
        c                6   K   t        |       D ]  }| 	 y wr   ranger1   r0   s     r!   arangez8BuiltinTest.test_compile_top_level_await.<locals>.arange       1X    rA  )
z$a = await asyncio.sleep(0, result=1)z2async for i in arange(1):
                   a = 1z8async with asyncio.Lock() as l:
                   a = 1z#a = [x async for x in arange(2)][1]z%a = 1 in {x async for x in arange(2)}z%a = {x:1 async for x in arange(1)}[0]z<a = [x async for x in arange(2) async for x in arange(2)][1]z6a = [x async for x in (x async for x in arange(5))][1]z.a, = [1 for x in {x async for x in arange(1)}]z;a = [await asyncio.sleep(0, x) async for x in arange(2)][1]rD  rE  rF  r   NrB  r   )asyncior   rU  r   r,   )r   r   r   r   r0  r.  r2  rH  rq   rJ  r   rX  r	   runr%  set_event_loop_policy)r    rU  rK  rL  policyr#  rM  r!  rN  globals_async_fs              r!   test_compile_top_level_awaitz(BuiltinTest.test_compile_top_level_await  ss   	 #
 -.	2%,UL%A 3!k,&&#76(&)G ' I /FC./ V !#&#A#AC
   |!;\'.vhfTF%C ! E (/Q&I&r84GI&  #2 (/Q&IDX./  #2/32 ))&1// /. ))&1s$   ;E ECE E	E E2c                    d }d}g d}t               }	 t        ||      D ]  \  }}t        |      }| j                  t        d| d|       5  t        |d|       d d d        | j                  t        d| d|       5  t        |d|t        j                        }d d d         	 t        j                  |       y # 1 sw Y   exY w# 1 sw Y   xY w# t        j                  |       w xY w)	Nc                6   K   t        |       D ]  }| 	 y wr   rR  rT  s     r!   rU  zFBuiltinTest.test_compile_top_level_await_invalid_cases.<locals>.arange  rV  rW  rA  )zdef f():  await arange(10)
z(def f():  [x async for x in arange(10)]
z.def f():  [await x async for x in arange(10)]
z_def f():
                   async for i in arange(1):
                       a = 1
            zedef f():
                   async with asyncio.Lock() as l:
                       a = 1
            rD  rE  rF  r   rB  )
r   r   r   r   r0  r.  r2  rH  rX  rZ  )	r    rU  rK  rL  r[  r#  rM  r!  rN  s	            r!   *test_compile_top_level_await_invalid_casesz6BuiltinTest.test_compile_top_level_await_invalid_cases  s   	 #
 -.	2%,UL%A C!k,&&#76(&)G ' I /FC./ &&#76(&)G ' I C  !#&#A#ACBC CC ))&1/ /C C ))&1s;   :C C%C C 
C C
	C C	C C0c                     t        d      }t        |ddt        j                        }i }t	        ||       | j                  t         |d                t               y)z
        With the PyCF_ALLOW_TOP_LEVEL_AWAIT flag added in 3.8, we want to
        make sure AsyncGenerators are still properly not marked with the
        CO_COROUTINE flag.
        z~async def ticker():
                for i in range(10):
                    yield i
                    await asyncio.sleep(0)r   r  rB  tickerN)r   r.  r2  rH  r  rq   rr   r   )r    r<  rN  globs       r!   test_compile_async_generatorz(BuiltinTest.test_compile_async_generator  sX      . /
 T3c.L.LMRnd8n./1CDr$   c                     dt         _        t        t         d       | j                  t        t               | j                  t        t        t                d}| j                  t        |t        t         d       y )Nr,   spam*^attribute name must be string, not 'int'$)r|   rg  delattrr   r   assertRaisesRegexr    rG  s     r!   test_delattrzBuiltinTest.test_delattr  sP    V)W-)Wc2;y#wQ?r$   c                    | j                  t        t        dd       d}| j                  dt                      | j                  dt        t                      G d dt
        j                        } |d      }| j                  t        t        |       | j                  dt        t                     | j                  d	t        t                      G d
 dt              } |       }| j                  dt        |              G d dt              } |       }| j                  dt        |              G d dt              } |       }| j                  dt        |             | j                  dt        |              G d dt              } |       }| j                  t        |      g dk(          G d dt              }t         |             }| j                  |t               | j                  |g dk(          G d dt              }t         |             }| j                  |t               | j                  t        |      g d        G d dt              } |       }| j                  t        t        |       	 t        # t        $ r8}| j                  t!        t        |j"                              d       Y d }~nd }~ww xY w| j                  t        g j%                               t        g              y )Nr   r,   	local_varexitc                       e Zd ZdZy)!BuiltinTest.test_dir.<locals>.Foo   N)r4   r5   r6   __dict__r7   r$   r!   Foorq    s    Hr$   rt  r   strip__mro__c                       e Zd Zd Zy)rq  c                 .    d| _         d| _        d| _        y )N   rr  rF   )r   r   zr(   s    r!   r"   z*BuiltinTest.test_dir.<locals>.Foo.__init__'  s    r$   N)r4   r5   r6   r"   r7   r$   r!   rt  z!BuiltinTest.test_dir.<locals>.Foo&  s    r$   r   c                       e Zd Zg Zy)rq  N)r4   r5   r6   	__slots__r7   r$   r!   rt  z!BuiltinTest.test_dir.<locals>.Foo/  s    Ir$   __repr__c                       e Zd ZddgZd Zy)rq  	__class__rs  c                     d| _         y )Nwow)barr(   s    r!   r"   z*BuiltinTest.test_dir.<locals>.Foo.__init__8  s	     r$   N)r4   r5   r6   r|  r"   r7   r$   r!   rt  z!BuiltinTest.test_dir.<locals>.Foo6  s    $j1I!r$   r  c                       e Zd Zd Zy)rq  c                 
    g dS )N)kangaroor7   r(   s    r!   __dir__z)BuiltinTest.test_dir.<locals>.Foo.__dir__@  s    ++r$   Nr4   r5   r6   r  r7   r$   r!   rt  z!BuiltinTest.test_dir.<locals>.Foo?  s    ,r$   )r  r  r  c                       e Zd Zd Zy)rq  c                      y)N)br   r   r7   r(   s    r!   r  z)BuiltinTest.test_dir.<locals>.Foo.__dir__G  s    &r$   Nr  r7   r$   r!   rt  z!BuiltinTest.test_dir.<locals>.FooF      'r$   r   r  r   c                       e Zd Zd Zy)rq  c                 
    h dS )N>   r   r  r   r7   r(   s    r!   r  z)BuiltinTest.test_dir.<locals>.Foo.__dir__O  s    &&r$   Nr  r7   r$   r!   rt  z!BuiltinTest.test_dir.<locals>.FooN  r  r$   c                       e Zd Zd Zy)rq  c                      y)Nry  r7   r(   s    r!   r  z)BuiltinTest.test_dir.<locals>.Foo.__dir__W      r$   Nr  r7   r$   r!   rt  z!BuiltinTest.test_dir.<locals>.FooV  s    r$   r   )r   r   dirassertInr|   types
ModuleTyper=   assertNotInr   r   assertIsInstancers   rq   sortedr-   r'   __traceback__r  )r    rn  rt  r   reses         r!   test_dirzBuiltinTest.test_dir  sC   )S"b1 	k35) 	fc#h'	%"" 	J)S!, 	gs3x(CH-	& 	
 Ec3q6"	& 	Ej#a&)	!& 	! ESV,eSV$	,& 	, EA"667	'& 	' #%jc4(./	'& 	' #%jc4(o6	& 	 E)S!,	; 	;SQ__!56::	; 	

-s2w7s   J
 
	K.KKc                     | j                  d j                  d              | j                  d j                  d      t               | j                  d j                  d      t               y )Nr   abc)r   __ne__assertIsNotImplementedr(   s    r!   test___ne__zBuiltinTest.test___ne__e  sF    T*+dkk!nn5dkk%(.9r$   c                 (   | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        t        j                   d	z
  d
      t        j                  d	z   df       dD ]B  \  }}}t        ||      }| j	                  |d   |d          | j	                  |d	   |d	          D | j                  t        t               y )N   ry  )r,      i)r   i)r  r  )r,   r   r,   r  r   ))      
@      ?)      @g      ?)      
r  )      g      ?)r        )r  g      )r  r  )r  g      п)rq   divmodr|   r   assertAlmostEqualr   r   )r    numdenom
exp_resultresults        r!   test_divmodzBuiltinTest.test_divmodj  s    A/Q1B2R'2Q3ckk!mQ5GH'E 	="C
 C'F""6!9jm<""6!9jm<	= 	)V,r$   c                    | j                  t        d      d       | j                  t        d      d       ddd}ddd}| j                  t        d	|      d       | j                  t        d	||      d       | j                  t        d
||      d       | j                  t        d||      d       ddd}ddd}d}| j                  t        |dz   ||      d       | j                  t        d|      d       | j                  t        t               | j                  t        t        d       | j                  t        t        |d d dz           G d d      }| j                  t
        t        di  |              y )N1+1r   z 1+1
r,   r   r     ,  )r  r   r   r  r   r     au   "å"   år7   c                       e Zd Zd Zy) BuiltinTest.test_eval.<locals>.Xc                     t         r   r   r    keys     r!   r2   z,BuiltinTest.test_eval.<locals>.X.__getitem__        r$   Nr4   r5   r6   r2   r7   r$   r!   Xr        !r$   r  r   )rq   r%  r   r   r0  r   )r    globalsr   r5  r  s        r!   	test_evalzBuiltinTest.test_eval|  sO   ea(h+"%c7+a0c7F3Q7c7F3S9c7F3S9"%cDj'6:A>h0&9)T*)T2.+tS!Wt^<	! 	! 	*dE2qs;r$   c                     G d d      } |       }t               }| j                  t        d||      d       | j                  t        t        d||       | j                  t        d||      t        d             | j                  t        d||      |       | j                  t        d	||      |       | j                  t        t        d|        G d
 d      } |       }| j                  t        t        d||        G d dt              } |       }| j                  t        d||      d       | j                  t        t        d||       | j                  t        d||      t        d             | j                  t        d||      |       | j                  t        d	||      |       t        d||       t        d|t        j                                 G d d      } |       }d|d<   d|d<   d|d<   | j                  |d   d        G d d      }	| j                  t        t        dt                |	              y )Nc                       e Zd ZdZd Zd Zy)(BuiltinTest.test_general_eval.<locals>.Mz9Test mapping interface versus possible calls from eval().c                     |dk(  ryt         Nr   r  KeyErrorr  s     r!   r2   z4BuiltinTest.test_general_eval.<locals>.M.__getitem__  s    #:r$   c                     t        d      S Nxyzrs   r(   s    r!   keysz-BuiltinTest.test_general_eval.<locals>.M.keys      E{"r$   N)r4   r5   r6   r1  r2   r  r7   r$   r!   Mr    s    G#r$   r  r   r  r  zdir()r  z	globals()zlocals()c                       e Zd ZdZy)(BuiltinTest.test_general_eval.<locals>.AzNon-mappingN)r4   r5   r6   r1  r7   r$   r!   r   r    s    r$   r   c                       e Zd Zd Zd Zy)(BuiltinTest.test_general_eval.<locals>.Dc                 :    |dk(  ryt         j                  | |      S r  )dictr2   r  s     r!   r2   z4BuiltinTest.test_general_eval.<locals>.D.__getitem__  s    #:''c22r$   c                     t        d      S r  r  r(   s    r!   r  z-BuiltinTest.test_general_eval.<locals>.D.keys  r  r$   Nr4   r5   r6   r2   r  r7   r$   r!   Dr    s    3#r$   r  z[locals() for i in (2,3)]c                        e Zd ZdZi Zd Zd Zy)2BuiltinTest.test_general_eval.<locals>.SpreadSheetz6Sample application showing nested, calculated lookups.c                 "    || j                   |<   y r   )_cells)r    r  formulas      r!   __setitem__z>BuiltinTest.test_general_eval.<locals>.SpreadSheet.__setitem__  s    #*C r$   c                 F    t        | j                  |   t               |       S r   )r%  r  r  r  s     r!   r2   z>BuiltinTest.test_general_eval.<locals>.SpreadSheet.__getitem__  s    DKK,gi>>r$   N)r4   r5   r6   r1  r  r  r2   r7   r$   r!   SpreadSheetr    s    DF+?r$   r  5a1za1*6a2za2*7a3   c                       e Zd Zd Zd Zy)(BuiltinTest.test_general_eval.<locals>.Cc                     t        |      r   r  )r    items     r!   r2   z4BuiltinTest.test_general_eval.<locals>.C.__getitem__  s    tn$r$   c                      yrh   r7   r(   s    r!   r  z-BuiltinTest.test_general_eval.<locals>.C.keys  r  r$   Nr  r7   r$   r!   Cr    s    %r$   r  )
r  rq   r%  r   	NameErrorrs   r   r  collectionsUserDict)
r    r  mgr   r  rb   r  ssr  s
             r!   test_general_evalzBuiltinTest.test_general_eval  s   	# 	# CIc1a"-)T315gq!,d5k:k1a0!4j!Q/3)T32	 	 C)T315	# 	# Cc1a"-)T315gq!,d5k:k1a0!4j!Q/3 	(!Q/(![-A-A-CD	? 	? ]444D3'	 	
 	)T7GIqsCr$   c                    i }t        d|       d|v r|d= | j                  |ddi       t        d|       d|v r|d= | j                  |ddi       i }i }t               5  t        j                  ddd	
       t        d||       d d d        d|v r|d= d|v r|d= | j                  ||fddiddif       y # 1 sw Y   2xY w)Nzz = 1r   rz  r,   zz = 1+1r   ignorezglobal statementr'  )modulezglobal a; a = 1; b = 2r   r  )r  rq   r   warningsfilterwarnings)r    r  ls      r!   	test_execzBuiltinTest.test_exec  s    WaQ.!S!H%YQ.!S!H% 	1##H.@%')1a0	1 Q.!Q.!!Q3(S!H!56	1 	1s   &B66B?c                     t        ddd      }| j                  t        dt        |di i       | j	                  t
        t        |ddi       y )Nzprint('Hello World!')rR   r  zname 'print' is not definedr   {   )r.  rj  r  r  r   r   )r    r<  s     r!   test_exec_globalszBuiltinTest.test_exec_globals  sO    .F;y*G#TNB+?	A 	)~s&;	=r$   c           	      ,    G d dt                G fddt              }t        t        t        j
                        r |t        j                        }n |t              }t        ddd      }| j                  t        |d|i       t        d	d
d      }| j                  t        dt        |di i       t        |d|i       | j                  t        dt        |d |       i        |i       }t        ddd      }| j                  t        ||       y )Nc                       e Zd Zy)>BuiltinTest.test_exec_globals_frozen.<locals>.frozendict_errorNr   r7   r$   r!   frozendict_errorr        r$   r  c                       e Zd Z fdZy)8BuiltinTest.test_exec_globals_frozen.<locals>.frozendictc                      d      )Nzfrozendict is readonlyr7   )r    r  valuer  s      r!   r  zDBuiltinTest.test_exec_globals_frozen.<locals>.frozendict.__setitem__  s    &'?@@r$   N)r4   r5   r6   r  )r  s   r!   
frozendictr
    s	    Ar$   r  z1__builtins__['superglobal']=2; print(superglobal)testr  r   zclass A: passrR   z__build_class__ not foundzx=1)	Exceptionr  r   r   r  r  rs  r.  r   r  rj  r  )r    r  frozen_builtinsr<  	namespacer  s        @r!   test_exec_globals_frozenz$BuiltinTest.test_exec_globals_frozen  s   	y 		A 	A
 lE$4$45()>)>?O(6OJFTZ[*~&G	I F3y*E#TNB+?	A 	TNO45y*E#TNJL+I	K rN	uff-*i	1r$   c           
           G d dt                G fddt              }t        ddd      }| j                  t        | |ddi             t        d	dd      }| j                  t        |d
 |d	di      i       y )Nc                       e Zd Zy)@BuiltinTest.test_exec_globals_error_on_get.<locals>.setonlyerrorNr   r7   r$   r!   setonlyerrorr    r  r$   r  c                       e Zd Z fdZy)?BuiltinTest.test_exec_globals_error_on_get.<locals>.setonlydictc                     r   r7   )r    r  r  s     r!   r2   zKBuiltinTest.test_exec_globals_error_on_get.<locals>.setonlydict.__getitem__  s	    ""r$   Nr  )r  s   r!   setonlydictr    s    #r$   r  
globalnamer  r  r,   superglobalr   )r  r  r.  r   r  )r    r  r<  r  s      @r!   test_exec_globals_error_on_getz*BuiltinTest.test_exec_globals_error_on_get  s    	9 		#$ 	#
 |VV4,k<2C&D	F }ff5,d);q7I+JK	Mr$   c           	           G d dt               }t        ddd      }t        |d |ddi      i       | j                  t        dt        |d |       i       y )	Nc                       e Zd Zy)?BuiltinTest.test_exec_globals_dict_subclass.<locals>.customdictNr   r7   r$   r!   
customdictr   -  r  r$   r!  r  r  r  r   r,   !name 'superglobal' is not defined)r  r.  r  rj  r  )r    r!  r<  s      r!   test_exec_globals_dict_subclassz+BuiltinTest.test_exec_globals_dict_subclass,  sY    	 	 }ff5TNJq/A$BCDy*M#TNJL+I	Kr$   c                     t        ddd      }dt        j                  ddi      i}| j                  t	        ||      d       dt        j                  i       i}| j                  t        dt        ||       y )Nr  r  r%  r   r,   r"  )r.  r  MappingProxyTyperq   r%  rj  r  r    r<  r=  s      r!   test_eval_builtins_mappingz&BuiltinTest.test_eval_builtins_mapping7  so    }ff5e44mQ5GHIdB+e44R89y*M#T2	/r$   c                    t        ddd      }dt        j                  i       i}| j                  t        dt
        ||       dt        j                  dd i      i}t        ||       | j                  |d   d	||d d
f       y )Nzimport foo.barr  r  r   z__import__ not foundr   c                      | S r   r7   argss    r!   r   z?BuiltinTest.test_exec_builtins_mapping_import.<locals>.<lambda>E  s    RV r$   r   zfoo.barr   )r.  r  r%  rj  r   r  rq   r&  s      r!   !test_exec_builtins_mapping_importz-BuiltinTest.test_exec_builtins_mapping_importA  s    '8e44R89{,BD$PRSe44lDV5WXYT2EYBa$@Ar$   c                 <   t        ddd      }t        j                  i       t        ddg      d}| j	                  t
        dt        ||       t        j                  dt        i      t        ddg      d}| j                  t        ||      t        ddgfdf       y )	Nzx.__reduce__()r  r%  r,   r   )r   r   iterr   )r.  r  r%  r.  rj  AttributeErrorr%  rq   r&  s      r!   !test_eval_builtins_mapping_reducez-BuiltinTest.test_eval_builtins_mapping_reduceI  s    '8#44R8tQF|L~vtT2F#44fd^D4QRTUPV<XdB$!Q	1)=>r$   c                     t         j                  }d t         _        	 t        d       |t         _        y # t        $ r Y w xY w# |t         _        w xY w)Nr   )r|   stdoutr  r  )r    
savestdouts     r!   test_exec_redirectedz BuiltinTest.test_exec_redirectedQ  sE    ZZ

	$I $CJ  		 $CJs   4 	A A A  A Ac                    d }dfd} |       \  }}dt        |j                  |j                  |j                         | j	                  d       dt        d      t        d      |j                  d   f}t        |j                  |j                  |       | j	                  d	       | j                  t        t         |j                  |j                  |       | j                  t        t         |j                  |j                  d        | j                  t        t         |j                  |j                  |j                         t        |      }| j                  t        t         |j                  |j                  |       t        |d<   t        |      }| j                  t        t         |j                  |j                  |       y )
Nc                       y)N   r7   r7   r$   r!   function_without_closuresz@BuiltinTest.test_exec_closure.<locals>.function_without_closures]  s    r$   r   c                  <    dddfd} fd}| |fS )Nr   r   r  c                       z  y r   r7   )r   r  r  s   r!   three_freevarszUBuiltinTest.test_exec_closure.<locals>.make_closure_functions.<locals>.three_freevarse  s     1r$   c                       z  z  y r   r7   )r   r  r   r  s   r!   four_freevarszTBuiltinTest.test_exec_closure.<locals>.make_closure_functions.<locals>.four_freevarsj  s    
 1Qr$   r7   )r;  r=  r   r  r   r  s     @@@r!   make_closure_functionsz=BuiltinTest.test_exec_closure.<locals>.make_closure_functionsa  s)    AAA
 "=00r$   )closurer   #   H   r   i	  )r  __code____globals____closure__rq   r
   r   r   rs   r   r4  )r    r8  r>  r;  r=  
my_closurer  s         @r!   test_exec_closurezBuiltinTest.test_exec_closure\  s   	 	1  )?(@% ^$$&&"..	0 	# rlHRL.2L2LQ2OP
^$$&&	  	& 	)%..%11	 	 	  	)##&&	 	 	 	)##&&!--	 	 	/ *%
)##&&	 	 	  
1:&
)##&&	 	 	 r$   c                     | j                  t        t        d d            t        d             | j                  t        t        d ddg dgdd dd	g            dddgdg       | j                  t        t        d
 g d            g d       | j                  t        t        d t        d                  g d       | j                  t        t        d t        d                  g d       d }t        |t        d             | j	                  t
        t                G d dt              }| j	                  t        t        t        d  |                    d }| j	                  t
        t        t        |t        d                   | j                  t        t        d d            ddg       | j                  t        t        d d            ddg       | j	                  t
        t        t        dd             y )Nc                 "    d| cxk  xr dk  S c S )Nr   rz  r7   )r   s    r!   r   z)BuiltinTest.test_filter.<locals>.<lambda>  s    sa3  r$   zHello Worldelloorldr,   hellor   rR   rF   r   c                     | dkD  S r   r7   r   s    r!   r   z)BuiltinTest.test_filter.<locals>.<lambda>  s
    q1u r$   )r,   rF   r   r   )r,   rF   r   rH   )	r,   r   rF         $   1   @   Q   c                     | dz  S )Nr   r7   rL  s    r!   r   z)BuiltinTest.test_filter.<locals>.<lambda>  s
    qs r$   )r,   rF   rO  rQ  rS  c                      yrh   r7   )r  s    r!   identityz)BuiltinTest.test_filter.<locals>.identity  s    r$   r  c                       e Zd Zd Zy)'BuiltinTest.test_filter.<locals>.BadSeqc                     |dk  ryt         )Nr   r   r  r    indexs     r!   r2   z3BuiltinTest.test_filter.<locals>.BadSeq.__getitem__  s    7  r$   Nr  r7   r$   r!   BadSeqrX    s    !r$   r\  c                     | S r   r7   rL  s    r!   r   z)BuiltinTest.test_filter.<locals>.<lambda>  s    Q r$   c                       y r   r7   r7   r$   r!   badfuncz(BuiltinTest.test_filter.<locals>.badfunc      r$   r,   r   r   c                     | dk\  S )Nr   r7   rL  s    r!   r   z)BuiltinTest.test_filter.<locals>.<lambda>  s
    q!t r$   r,   r   r   r   r   r   )	rq   rs   filterr   r   r   r   r   rS  )r    rV  r\  r_  s       r!   test_filterzBuiltinTest.test_filter  s   f%>NOQUV`QabfTAwQCT1a+PQRUVX_bcadfgThif_6FGH)TfT72;78:[\f]GBK@ACUV	x$)V,	!V 	!
 	*dF;,IJ	)T6'58+DE 	fT623aV<f^\BCaVL)T6"f+=>r$   c                     t        t        j                  dz         D ]>  }t        t        d      }t        t        d      }| j                  |t        |      |       @ y )Nr,   
abcdeabcde)rS  rn   HIGHEST_PROTOCOLrd  rf   rz   rs   )r    rx   f1f2s       r!   test_filter_picklezBuiltinTest.test_filter_pickle  sO    622Q67 	8E\2B\2B""2tBx7	8r$   cpuc                     d}t        t        t        |            }t        |      D ]  }t        t        |      } ~t        j                          y )Ni@B )rd  boolrS  gccollect)r    	max_itersr0   _s       r!   test_filter_dealloczBuiltinTest.test_filter_dealloc  sE     	4y)*y! 	 AtQA	 


r$   c                    | j                  t        t        d      t        j                  u        | j	                  t
        t               | j	                  t
        t        t               d}| j                  t
        |t        t        d       | j                  t
        |t        t        dd       | j	                  t        t        t        t        t        j                               | j	                  t        t        dd       y )Nr2  rh  r,   rg  u   픞)
r   getattrr|   r2  r   r   rj  r/  ri   r  rk  s     r!   test_getattrzBuiltinTest.test_getattr  s    X.#**<=)W-)Wc2;y#wQ?y#wQG.'3CNN8KL.'1nEr$   c           	         | j                  t        t        d             | j                  t        t               | j                  t        t        t               d}| j                  t        |t        t        d       | j                  dt        t        t        t        j                                      G d d      }| j                  t        t         |       d        G d d	      }| j                  t        t         |       d       y )
Nr2  rh  r,   Fc                       e Zd Zd Zy)#BuiltinTest.test_hasattr.<locals>.Ac                     t         r   )
SystemExitr    whats     r!   __getattr__z/BuiltinTest.test_hasattr.<locals>.A.__getattr__  r  r$   Nr4   r5   r6   r~  r7   r$   r!   r   ry    r  r$   r   r  c                       e Zd Zd Zy)#BuiltinTest.test_hasattr.<locals>.Bc                     t         r   r  r|  s     r!   r~  z/BuiltinTest.test_hasattr.<locals>.B.__getattr__  r  r$   Nr  r7   r$   r!   Br    r  r$   r  )r   r  r|   r   r   rj  rq   ri   r  r{  r   )r    rG  r   r  s       r!   test_hasattrzBuiltinTest.test_hasattr  s    X./)W-)Wc2;y#wQ?S-@ AB	! 	! 	*gqsC8	! 	! 	*gqsC8r$   c                    t        d        | j                  t        d      t        d             | j                  t        d      t        d             t        d       | j                  t        d      t        d             t        d       d }t        |       | j                  t        t         g        | j                  t        t         i         G d d      }| j                  t	        t         |                   t
                G d	 d
t
              }| j                  t         |d            t        d             y )Nr,   r  rg  s   spamr   r,   r   r   c                       y r   r7   r7   r$   r!   r   z BuiltinTest.test_hash.<locals>.f  r   r$   c                       e Zd Zd Zy) BuiltinTest.test_hash.<locals>.Xc                     ddz  S )Nr   rL   r7   r(   s    r!   __hash__z)BuiltinTest.test_hash.<locals>.X.__hash__  s    #vr$   Nr4   r5   r6   r  r7   r$   r!   r  r    s    r$   r  c                       e Zd Zd Zy) BuiltinTest.test_hash.<locals>.Zc                     | S r   r7   r(   s    r!   r  z)BuiltinTest.test_hash.<locals>.Z.__hash__      r$   Nr  r7   r$   r!   Zr        r$   r  r   )hashrq   r   r   rr   r   )r    r   r  r  s       r!   	test_hashzBuiltinTest.test_hash  s    T
a$q'*a$s),VftG}5YQ)T2.)T2.	 	 	d13i#.	 	 	aed2h/r$   c                     | j                  t        d      d       | j                  t        d      d       | j                  t        t        i        y )NrN  0x10iz-0x10)rq   hexr   r   r(   s    r!   test_hexzBuiltinTest.test_hex  s<    R&)S7+)S"-r$   c                     t        d        t        d       t        d       t        d       t        d       t        g d       t        dddd       y )Nr,   r  rg  r  r   r   )rg  eggsham)idr(   s    r!   test_idzBuiltinTest.test_id  s;    
4
1
3
6

9
9
Aq+,r$   c                 D   | j                  t        t               | j                  t        t        dd       dddgdg}|D ]^  }t        |      }| j                  t	        |      d       | j                  t	        |      d       | j                  t
        t        |       ` y )Nr   )rD   2rD   r  12)r   r   r.  rq   rt   ru   )r    listsr  r0   s       r!   	test_iterzBuiltinTest.test_iter  s    )T*)T2r2c3Z. 	6AQAT!Wc*T!Wc*mT15		6r$   c                     G d d      } G d d|      } G d d      } |       } |       } |       }| j                  t        ||             | j                  t        ||             | j                  t        ||              | j                  t        ||              | j                  t        d|              | j                  t        t        |d       | j                  t        t               y )Nc                       e Zd Zy)&BuiltinTest.test_isinstance.<locals>.CNr   r7   r$   r!   r  r  "  r  r$   r  c                       e Zd Zy)&BuiltinTest.test_isinstance.<locals>.DNr   r7   r$   r!   r  r  $  r  r$   r  c                       e Zd Zy)&BuiltinTest.test_isinstance.<locals>.ENr   r7   r$   r!   Er  &  r  r$   r  r   )r   r   r   r   r    r  r  r  r   rb   r  s          r!   test_isinstancezBuiltinTest.test_isinstance!  s    	 		 		 	CCC
1a()
1a()Jq!,,-Jq!,,-Jua001)ZE:)Z0r$   c                     G d d      } G d d|      } G d d      } |       } |       } |       }| j                  t        ||             | j                  t        ||             | j                  t        ||              | j                  t        t        d|       | j                  t        t        |d       | j                  t        t               y )Nc                       e Zd Zy)&BuiltinTest.test_issubclass.<locals>.CNr   r7   r$   r!   r  r  4  r  r$   r  c                       e Zd Zy)&BuiltinTest.test_issubclass.<locals>.DNr   r7   r$   r!   r  r  6  r  r$   r  c                       e Zd Zy)&BuiltinTest.test_issubclass.<locals>.ENr   r7   r$   r!   r  r  8  r  r$   r  r   )r   
issubclassr   r   r  s          r!   test_issubclasszBuiltinTest.test_issubclass3  s    	 		 		 	CCC
1a()
1a()Jq!,,-)Z:)ZE:)Z0r$   c                    | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        g d      d       | j                  t        i       d       | j                  t        ddd	      d        G d
 d      }| j                  t        t         |               G d d      }| j                  t        t         |               G d d      }| j                  t        t         |               G d d      }| j                  t        t         |               G d d      }| j                  t
        t         |               G d d      }| j                  t        t         |               G d dt              }| j                  t        t         |              y )N123r   r7   r   rc  r   r,   r   r  c                       e Zd Zd Zy)$BuiltinTest.test_len.<locals>.BadSeqc                     t         r   r  r(   s    r!   r)   z,BuiltinTest.test_len.<locals>.BadSeq.__len__L  r  r$   Nr4   r5   r6   r)   r7   r$   r!   r\  r  K  r  r$   r\  c                       e Zd Zd Zy)(BuiltinTest.test_len.<locals>.InvalidLenc                      y r   r7   r(   s    r!   r)   z0BuiltinTest.test_len.<locals>.InvalidLen.__len__P  s    r$   Nr  r7   r$   r!   
InvalidLenr  O  r  r$   r  c                       e Zd Zd Zy)&BuiltinTest.test_len.<locals>.FloatLenc                      y)Ng      @r7   r(   s    r!   r)   z.BuiltinTest.test_len.<locals>.FloatLen.__len__T      r$   Nr  r7   r$   r!   FloatLenr  S      r$   r  c                       e Zd Zd Zy))BuiltinTest.test_len.<locals>.NegativeLenc                      y)Nir7   r(   s    r!   r)   z1BuiltinTest.test_len.<locals>.NegativeLen.__len__X  r  r$   Nr  r7   r$   r!   NegativeLenr  W  r  r$   r  c                       e Zd Zd Zy)%BuiltinTest.test_len.<locals>.HugeLenc                 (    t         j                  dz   S rh   r|   r   r(   s    r!   r)   z-BuiltinTest.test_len.<locals>.HugeLen.__len__\  s    {{Q&r$   Nr  r7   r$   r!   HugeLenr  [  r  r$   r  c                       e Zd Zd Zy)-BuiltinTest.test_len.<locals>.HugeNegativeLenc                 *    t         j                   dz
  S )NrH   r  r(   s    r!   r)   z5BuiltinTest.test_len.<locals>.HugeNegativeLen.__len__`  s    |B&r$   Nr  r7   r$   r!   HugeNegativeLenr  _  r  r$   r  c                       e Zd Zy))BuiltinTest.test_len.<locals>.NoLenMethodNr   r7   r$   r!   NoLenMethodr  c  r   r$   r  )rq   r'   r   r   r   r  r   )r    r\  r  r  r  r  r  r  s           r!   test_lenzBuiltinTest.test_lenD  s^   UQ'R!$\*A.\*A.R!$!!_-q1	! 	! 	*c684	 	 	)S*,7	 	 	)S(*5	 	 	*c;=9	' 	' 	-gi8	' 	' 	*c?+<='&')S+-8r$   c                    | j                  t        t        d t        dd                  g d       	 ddlm | j                  t        t        fdd	dgd
dgg            ddgddgg       | j                  t        t        d g dg d            g d       d }| j                  t        t        |g d            g d       | j                  t        t        |g dg d            g d       | j                  t        t        |g dg dg d            g d       | j                  t        t        t        t        d                  g d       d }| j                  t        t        |t        d      t        d                  ddg       | j                  t        t               | j                  t        t        d d         G d! d"      }| j                  t        t        t        d#  |                    d$ }| j                  t        t        t        |t        d%                   y # t        $ r d Y w xY w)&Nc                     | | z  S r   r7   rL  s    r!   r   z&BuiltinTest.test_map.<locals>.<lambda>h  s
    qs r$   r,   r   )r,   r   rF   r   )sqrtc                     t        | d      S )N      ?)powrL  s    r!   r  z"BuiltinTest.test_map.<locals>.sqrtn  s    1c{"r$   c                 .    t        t        |             S r   )rs   map)r   r  s    r!   r   z&BuiltinTest.test_map.<locals>.<lambda>q  s    tCaL1 r$   rN  rS  rF         @       @g      "@r  c                     | |z   S r   r7   r   s     r!   r   z&BuiltinTest.test_map.<locals>.<lambda>u  s
    !A# r$   )r,   r   r   )rF   r,   r   )rH   r   r   c                  "    d}| D ]  }||z   }	 |S r   r7   )vaccur0   s      r!   plusz"BuiltinTest.test_map.<locals>.plusy  s    D'tax'Kr$   )r,   r   ry  )r   rF   r   )r  r  rF   )r,   r,   r   )r      rF   rH   )
r   r,   r   rF   rN  rO  rP  rQ  rR  rS  c                 *    | |S || S t        | |      S r   )r   r  s     r!   Maxz!BuiltinTest.test_map.<locals>.Max  s"    yyq!9r$   r   r   c                     | S r   r7   rL  s    r!   r   z&BuiltinTest.test_map.<locals>.<lambda>  s    A r$   r   c                       e Zd Zd Zy)$BuiltinTest.test_map.<locals>.BadSeqc              3      K   t         wr   r  r(   s    r!   r_   z-BuiltinTest.test_map.<locals>.BadSeq.__iter__  s       s   	Nr`   r7   r$   r!   r\  r    s    r$   r\  c                     | S r   r7   rL  s    r!   r   z&BuiltinTest.test_map.<locals>.<lambda>  s    ! r$   c                     t         r   rW   rL  s    r!   r_  z%BuiltinTest.test_map.<locals>.badfunc  s    r$   r  )rq   rs   r  rS  mathr  r   r   r   r   r   r   rX   )r    r  r  r\  r_  r  s        @r!   test_mapzBuiltinTest.test_mapf  s   ]E!AJ/0	
	#! 	1RGb!W3EFG3Z#s$	
 	%w89	

	 	T9%&	
 	T9i01	
 	T9i;<!	
 	S'"+&'0	
	 	S'!*gaj12F	
 	)S))S+r:	 	 	*dCVX,FG	,c'58.DEg  	##	#s   H2 2IIc                     t        t        j                  dz         D ]>  }t        t        d      }t        t        d      }| j                  |t        |      |       @ y )Nr,   zIs this the real life?)rS  rn   rh  r  rj   rz   rs   )r    rx   m1m2s       r!   test_map_picklezBuiltinTest.test_map_pickle  sQ    622Q67 	8EX78BX78B""2tBx7	8r$   c                    | j                  t        d      d       | j                  t        ddd      d       | j                  t        d      d       | j                  t        g d      d       | j                  t        ddd      d       | j                  t        ddd      d       | j                  t        d	dd      d       | j                  t        d
      5  t                d d d        | j	                  t        t        d       | j                  t
        d      5  t        d       d d d         G d d      }| j	                  t
        t         |              dD ](  }	 t        |t                      | j                  |       * | j                  t        dt              d       | j                  t        dt              d       | j                  t        ddt              d       | j                  t        dd       d        | j                  t        dd       d       | j                  t        dd       d       | j                  t        ddt              d       | j                  t        ddt              d       | j                  t        dd       d       t        d      D cg c]  }t        j                  d       }}t        d |D              }|j                  }| j                  t        ||      t        t!        |      |      d          y # 1 sw Y   @xY w# 1 sw Y   xY w# t        $ r Y w xY wc c}w )N1231233r,   r   r   r,   r   r   r,   r   r   r  r  r  z'max expected at least 1 argument, got 0r   z"max\(\) iterable argument is emptyr7   c                       e Zd Zd Zy)$BuiltinTest.test_max.<locals>.BadSeqc                     t         r   r  rZ  s     r!   r2   z0BuiltinTest.test_max.<locals>.BadSeq.__getitem__  r  r$   Nr  r7   r$   r!   r\  r    r  r$   r\  )zmax(key=int)zmax(default=None)zmax(1, 2, default=None)zmax(default=None, key=int)zmax(1, key=int)zmax(1, 2, keystone=int)zmax(1, 2, key=int, abc=int)zmax(1, 2, key=1)r,   r  ra  defaultr  r  rL   r  c              3   J   K   | ]  }|t        j                  d       f  ywr   Nrandom	randranger   elems     r!   r   z'BuiltinTest.test_max.<locals>.<genexpr>        BTT6++B/0B   !#r  )rq   r   rj  r   r   r   r  r  failr   rS  r  r  r  r2   r  reversedr    r\  stmtr0   datar  r   s          r!   test_maxzBuiltinTest.test_max  s   X,Q1q)/0!4/0!4Q3-QQ+S!Q+##5
 	 E		 	)S"-##1
 	 G		
	! 	! 	*c684	 	 D T79% 		$	 " 	Ts+Q/U,a0Qs+Q/R.5T40!4UD115R4a8VQC8!<V.2/4Sz:!  %::BTBBTq)A6r:	<e	 		 	,  $ ;s0   L'"L4&M6M'L14L>	MMc                    | j                  t        d      d       | j                  t        ddd      d       | j                  t        d      d       | j                  t        g d      d       | j                  t        ddd      d       | j                  t        ddd      d       | j                  t        d	dd      d	       | j                  t        d
      5  t                d d d        | j	                  t        t        d       | j                  t
        d      5  t        d       d d d         G d d      }| j	                  t
        t         |              dD ](  }	 t        |t                      | j                  |       * | j                  t        dt              d       | j                  t        dt              d       | j                  t        ddt              d       | j                  t        dd       d        | j                  t        dd       d       | j                  t        dd       d       | j                  t        ddt              d       | j                  t        ddt              d       | j                  t        dd       d       t        d      D cg c]  }t        j                  d       }}t        d |D              }|j                  }| j                  t        ||      t        ||      d          y # 1 sw Y   7xY w# 1 sw Y   xY w# t        $ r Y w xY wc c}w )Nr  rD   r,   r   r   r  r  r  r  z'min expected at least 1 argument, got 0r   z"min\(\) iterable argument is emptyr7   c                       e Zd Zd Zy)$BuiltinTest.test_min.<locals>.BadSeqc                     t         r   r  rZ  s     r!   r2   z0BuiltinTest.test_min.<locals>.BadSeq.__getitem__  r  r$   Nr  r7   r$   r!   r\  r    r  r$   r\  )zmin(key=int)zmin(default=None)zmin(1, 2, default=None)zmin(default=None, key=int)zmin(1, key=int)zmin(1, 2, keystone=int)zmin(1, 2, key=int, abc=int)zmin(1, 2, key=1)r  r  ra  r  r   rL   r  c              3   J   K   | ]  }|t        j                  d       f  ywr  r  r  s     r!   r   z'BuiltinTest.test_min.<locals>.<genexpr>!  r  r	  r   )rq   minrj  r   r   r   r  r  r
  r   rS  r  r  r  r2   r  r  s          r!   test_minzBuiltinTest.test_min  s   X,Q1q)/0!4/0!4Q3+QQ+S!Q-##5
 	 E		 	)S"-##1
 	 G		
	! 	! 	*c684	 	 D T79% 		$	 " 	Ts+Q/U,a0Qs+Q/R.5T40!4UD115R4a8VQC8!<V.2/4Sz:!  %::BTBBTq)!,Q/	1e	 		 	,  $ ;s0   L"L+&L86ML(+L58	MMc                    t        t        d            }| j                  t        |      d       | j                  t        |      d       | j	                  t
        t        |       | j	                  t
        t        |       | j                  t        |d      d        G d dt              }t         |             }| j                  t        |d      d       | j	                  t
        t        |       d } |       }| j                  t        |      d       | j	                  t
        t        |       | j                  t        |d      d       y )Nr   r   r,   r   c                       e Zd Zd Zd Zy)#BuiltinTest.test_next.<locals>.Iterc                     | S r   r7   r(   s    r!   r_   z,BuiltinTest.test_next.<locals>.Iter.__iter__/  r  r$   c                     t         r   )ru   r(   s    r!   __next__z,BuiltinTest.test_next.<locals>.Iter.__next__1  s    ##r$   N)r4   r5   r6   r_   r  r7   r$   r!   Iterr  .  s    $r$   r  c               3      K   d y wrh   r7   r7   r$   r!   genz"BuiltinTest.test_next.<locals>.gen8  s     Gs   )r.  rS  rq   rt   r   ru   r   )r    rv   r  r  s       r!   	test_nextzBuiltinTest.test_next&  s    %(^b1%b1%-r2-r2b"r*	$6 	$ $&\b"r*-r2	 Ub1%-r2b"r*r$   c                     | j                  t        d      d       | j                  t        d      d       | j                  t        t        d       y )NrL   0o144iz-0o144r7   )rq   octr   r   r(   s    r!   test_octzBuiltinTest.test_octA  s<    S7+TH-)S"-r$   c                 V   t        t        dd      }| j                  t        t               |5  |j	                  d       |j	                  d       |j	                  d       |j	                  d       |j	                  d       |j	                  d	       d d d        y # 1 sw Y   y xY w)
Nwutf-8encoding1+1
z+The quick brown fox jumps over the lazy dogz.
z
Dear John
,  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,  YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY)openr   
addCleanupr   rB   r    fps     r!   write_testfilezBuiltinTest.write_testfileF  s~    &#0' 	 HHWHHBCHHUOHH]#HHYHHY	  	  	 s   A'BB(c                 j   | j                          t        t        d      }|5  | j                  |j	                  d      d       | j                  |j	                         d       | j                  |j	                  d      d       | j                  |j	                  d      d       | j                  |j                  d	      d
       | j                  |j                  d      d       d d d        | j                  t        t        d       | j                  t        t        d       y # 1 sw Y   @xY w)Nr'  r(  r   r*  z-The quick brown fox jumps over the lazy dog.
DearrL   z John
r  r+    r,  za bs   a b)r1  r-  r   rq   readlinereadr   r   r/  s     r!   	test_openzBuiltinTest.test_openR  s    &7+ 	7R[[^W5R[[],\]R[[^V4R[[-y9RWWS\95RWWT]I6	7 	*dH5*dI6	7 	7s   CD))D2zutf-8 mode is enabledc                    t        t        j                        }	 dD ]&  }|t        j                  v st        j                  |= ( | j                          t	        j
                         }t        j                         5  t        j                  dt               t        t        d      }d d d        5  | j                  |j                  |       d d d        t        j                  j                          t        j                  j                  |       y # 1 sw Y   nxY w# 1 sw Y   SxY w# t        j                  j                          t        j                  j                  |       w xY w)N)LC_ALLLANGLC_CTYPEr  r&  )r  osenvironr1  localegetencodingr  catch_warningssimplefilterEncodingWarningr-  r   rq   r)  clearupdate)r    old_environr  current_locale_encodingr0  s        r!   test_open_default_encodingz&BuiltinTest.test_open_default_encodinga  s   2::&	+ 6 ("**$

3( !&,&8&8&:#((* '%%h@&#&'  G  .EFG JJJJk*' 'G G JJJJk*sA   D. AD. >+D)
D. 3D"D. DD. "D+'D. .?E-c                     t        t        d      }|5  | j                  t        j                  |j                                      d d d        y # 1 sw Y   y xY w)Nr'  r(  )r-  __file__r   r<  get_inheritablefileno)r    fileobjs     r!   test_open_non_inheritablez%BuiltinTest.test_open_non_inheritablew  sJ    x'2 	CR//0@AB	C 	C 	Cs   3AAc                    | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d	      d
       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d
       | j                  t        t        t        j                              t        j                         | j                  t        t        d       | j                  t        t        d            d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d       d!       | j                  t        d"      d       y )#NrS   r   r   r   r   r         r   r          Ar        r   r  r   r   r  r  r  r  r  r  r  r  r
  r	  r  r  r  r  r  )rq   rc   ri   r|   r  r   r   r(   s    r!   test_ordzBuiltinTest.test_ord}  s   S2&S2&S2&Vc*Vc*TB'TB'TB'Ws+Ws+S013>>B)S"-S]+X6\*J7\*J7\*J7\*J7\*J7\*J7\*J7\*J7\*J7r$   c           
      :	   | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d	       | j                  t        d
d      d       | j                  t        d
d      d
       | j                  t        d
d      d       | j                  t        d
d      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       dD ]{  }dD ]t  }dD ]m  }t        |t              s t        |t              st        |t              r| j                  t        t        |||       Q| j                  t        |||      d       o v } | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd
d      d       | j                  t        t        ddd       | j                  t        t               | j                  t        dd       d       | j                  t        dd!      d"       | j                  t        d#dd$%      d&       t        t        d'      }| j                   |d#       d(       t        t        d#       }| j                   |d      d(       t        t        d)      }| j                   |dd*      d       | j                   |d*d+      d       y ),Nr   r,   r   rH   i   r   r	  r      @r  r   r   r   r  r  g      @g      0Ag      Ag       r         )r   r  )rH         $@)r4  g     @@g      8@r  r  y              ?gUUUUUU?y      ?LXz?)exp)baser[  rN  r     )r\  r[  mod   )r\  r   )r^  r   )r[  r\  )	rq   r  r  r   floatr   r   r   r   )r    r   r   rz  twopowfifth_powermod10s          r!   test_powzBuiltinTest.test_pow  s   Qq1%Qq1%Qq1%Qq1%Qq1%QrD)QrI.QrN3RA&RB'RA&RB's2ay"-s2ay"-s2ay"-s2ay"-s2ay"-s2bz51s2bz;7s2bz+<=s3qz2.s3qz3/s3qz2.s3qz3/ 	CA C% CA!!U+!!U+!!U+)))S!QB..s1a|TBCC	C 	s2s|R0s2s|-FG 	RQ+*c1a3)S) 	QA*!+R0!3R81%A+cq)Q,$q!a(11-q1r$   c                    | j                          t        t        d      }t        j                  }t        j
                  }	 |t        _        t               t        _        | j                  t               d       | j                  t               d       | j                  t        d      d       |t        _        t        j                  j                          | j                  t        t               t               t        _        t        j                  d      t        _        | j                  t        t        dd       t        j                  d	      t        _        | j                  t               d	       t        j                         t        _        | j                  t        t               t        `| j                  t         t        d
       t        `| j                  t         t        d
       |t        _        |t        _        |j                          y # |t        _        |t        _        |j                          w xY w)Nr'  r(  r  z,The quick brown fox jumps over the lazy dog.ztesting
z	Dear JohnzNULL r   z    'whitespace'prompt)r1  r-  r   r|   stdinr2  r?   rq   inputcloser   r   ioStringIOr   EOFErrorrX   )r    r0  	savestdinr3  s       r!   
test_inputzBuiltinTest.test_input  sp   &7+II	ZZ
	CI"CJUWe,UW&TUU;/= $CJIIOOj%0"CJH-CIiB7$67CIUW&89CIh.
lE8<	lE8<!CI#CJHHJ "CI#CJHHJs   F.H (I c                    | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        g       d       | j                  t        i       d       g }|j                  |       | j                  t        |      d	       i }||d<   | j                  t        |      d
       y )NrR   r   r   rC   r7   r   r   r   r   r   )rq   r   r.   )r    r   s     r!   	test_reprzBuiltinTest.test_repr  s    b6*a#&b4(b4(b4(	a),!a,/r$   c                 
   | j                  t        d      d       | j                  t        t        d            t               | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d	      d	       | j                  t        d
      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        dd      d       | j                  t        t        dd            t               | j                  t        t        dd            t               | j                  t        t        dd            t               | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d       d       | j                  t        d      d       | j                  t        d!      d!       | j                  t        d"      d"       | j                  t        t        d            t               | j                  t        t        d"d            t               | j                  t        t        d"d            t               | j                  t        t        d"d            t               | j                  t        dd#      d       | j                  t        t                G d$ d%      } G d& d'      }| j                  t         |             d(       | j                  t        t        dd)d*       | j                  t        t         |               |       }d+ |_        | j                  t        t        |       | j                  t        t        |d       y ),Nr   r  rZ  g    eAg@xDr  g      $g    eg@x皙?g?g333333$@g eAgg333333$g eg?g#@g33dAgg#g33drY  r  r   r,   g      @r   g      @g      ig      rr  rX  )numberndigitsc                       e Zd Zd Zy))BuiltinTest.test_round.<locals>.TestRoundc                      y)N   r7   r(   s    r!   	__round__z3BuiltinTest.test_round.<locals>.TestRound.__round__B  r   r$   N)r4   r5   r6   ry  r7   r$   r!   	TestRoundrv  A  r   r$   rz  c                       e Zd Zy)+BuiltinTest.test_round.<locals>.TestNoRoundNr   r7   r$   r!   TestNoRoundr|  E  r  r$   r}  rx  r   r   c                      | S r   r7   r*  s    r!   r   z(BuiltinTest.test_round.<locals>.<lambda>N  s    D r$   )rq   roundrr   r   r`  r   r   ry  )r    rz  r}  ts       r!   
test_roundzBuiltinTest.test_round  s   sS)eCj)3/sS)td+|,l;td+td+uu-}-}=uu-sS)sS)td+|,l;td+uu-}-}=sS)sT*{+\:td+te,|,m<tR%0eD"o.6eD!n-u5eD!n-u5 	sQ'sQ'tb)tb) 	q1%q1%rB'eAh-eBm,c2eBl+S1eBl+S1 	dB7?)U+	 		 	 	y{+R0)UAq!4)UKM:M()UA.)UAq1r$   Linuxalpha7y1CzItest will fail;  failure is probably due to a buggy system round functionc                    | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       y )Ng7y1Cg 7y1Cr  g7y1Cg7y1C)rq   r  r(   s    r!   test_round_largezBuiltinTest.test_round_large\  sh    
 	v/td+v/v/v/r$   c           	          ddt        j                  d      t        j                  dd      fD ]^  }| j	                  t        |d       t        |             | j	                  t        t        |d             t        t        |                   ` y )Nr   g
ףp=J@z1234.56i@ rL   )decimalDecimal	fractionsFractionrq   r  rr   r   s     r!   test_bug_27936zBuiltinTest.test_bug_27936g  sv    //),$$VS13 	CA U1d^U1X6T%4.14a>B	Cr$   c                 `   t        t        dd       | j                  t        j                  d       | j	                  t
        t                | j	                  t
        t         t               | j	                  t
        t         t        d       d}| j                  t
        |t         t        dd       y )Nrg  r,   rh  )setattrr|   rq   rg  r   r   rj  rk  s     r!   test_setattrzBuiltinTest.test_setattrp  su    VQ1%)W-)Wc2)Wc6:;y#wQGr$   c                 T   | j                  t        g       d       | j                  t        t        t        dd                  d       | j                  t        t	        t        t        dd                        d       | j                  t        t        d            d       | j                  t        t	        t        d                  d       | j                  t        dgdgdggg       g d	       | j                  t        t        d      d
      d       | j                  t        t        d      d
      d       | j                  t        t        d      d      d       | j                  t        t        d      d      d       | j                  t        d t        d      D              d       | j                  t        d t        d      D        d      d       | j                  t        d t        d      D        d      d       | j                  t        g d      d       | j                  t        d t        d      D              d       | j                  t        d t        d      D        d
      d       | j                  t        d t        d      D        d      d        | j                  t        d!dg      d"       | j                  t        dd!g      d"       | j                  t        t        d#g            d$       | j                  t        t        d#gd#            d%       | j                  t        t        g d#            d%       | j                  t        j                  t        t        d&      t        d&      g                   | j                  t        j                  t        d'd'g                   | j                  t        t               | j                  t        t        d(       | j                  t        t        g d)       | j                  t        t        g d)d*       | j                  t        t        d+d,gd-       t        d+      t        d.      g}| j                  t        t        |t        d-             | j                  t        t        dgdgdgg       | j                  t        t        ddig       | j                  t        t        ddigdz  ddi       | j                  t        t        g d*       | j                  t        t        g d-       | j                  t        t        g t                       G d/ d0      }| j                  t        t         |              g }t        d1 t        d      D        |       | j                  |g        y )2Nr   r   rr     rH   i  r,   r   r,   r   r   r4  i  )startil   (    l    l   (        c              3   ,   K   | ]  }|d z  dk7    ywr   r   Nr7   r   r0   s     r!   r   z'BuiltinTest.test_sum.<locals>.<genexpr>  s     ;AQUaZ;   r  c              3   ,   K   | ]  }|d z  dk7    ywr  r7   r  s     r!   r   z'BuiltinTest.test_sum.<locals>.<genexpr>       <Qa!eqj<r  il       c              3   ,   K   | ]  }|d z  dk7    ywr  r7   r  s     r!   r   z'BuiltinTest.test_sum.<locals>.<genexpr>  r  r  l    l           Fc              3   &   K   | ]	  }|d z    ywr   Nr7   r  s     r!   r   z'BuiltinTest.test_sum.<locals>.<genexpr>  s     6qQU6r   g     6@c              3   &   K   | ]	  }|d z    ywr  r7   r  s     r!   r   z'BuiltinTest.test_sum.<locals>.<genexpr>       7a!e7r   g     @c              3   &   K   | ]	  }|d z    ywr  r7   r  s     r!   r   z'BuiltinTest.test_sum.<locals>.<genexpr>  r  r   g     B@g     @r  g      ?g       z0.0z-0.0infgr   r  rR   r     cr$      bc                       e Zd Zd Zy)$BuiltinTest.test_sum.<locals>.BadSeqc                     t         r   r  rZ  s     r!   r2   z0BuiltinTest.test_sum.<locals>.BadSeq.__getitem__  r  r$   Nr  r7   r$   r!   r\  r    r  r$   r\  c              3   "   K   | ]  }|g 	 y wr   r7   r   s     r!   r   z'BuiltinTest.test_sum.<locals>.<genexpr>  s     $QaS$s   )rq   sumrs   rS  r.  r   r  r   r   r  isinfr`  r   r   	bytearrayr   )r    r7  r\  emptys       r!   test_sumzBuiltinTest.test_sum{  s/   R!$T%!*-.3T$uQqz"234b9WR[)3/T'"+./5qcA3_b19=U2Y-t4U2Yd3T:U2Y0(;U2Y0(;;r;;Q?<%)<gF 	"<%)<gF 	"c"ene,6E"I66=7U2Y7>G7U2Y7A7Kc1X,aX,c4&k*E2c4&$/0&9c"dm,f5

3eeEl'C#DEF

3u~#678)S))S"-)S/:)S/2>)S4,<D/9T?3)S&)C.A)SA3aS/:)SAa5'2)SAa5'!)aU;)S"b1)S"c2)S"ik:	! 	! 	*c684$%)$e,#r$   z<sum accuracy not guaranteed on machines with double roundingc                 |    | j                  t        dgdz        d       | j                  t        g d      d       y )Nrr  rH   r  )r  g\nTr  g\nr  )rq   r  r(   s    r!   test_sum_accuracyzBuiltinTest.test_sum_accuracy  s4    
 	cURZ#.893?r$   c                     | j                  t        d      t        d             | j                  t        d      t        d             y )NrR   r  r7   )rq   rr   rI  r(   s    r!   	test_typezBuiltinTest.test_type  s2    bDK0DHd2h/r$   c                      t               S r   )varsr7   r$   r!   get_vars_f0zBuiltinTest.get_vars_f0  s	    vr$   c                  F    t         j                          d} d}t               S )Nr,   r   )rl   r  r  r  s     r!   get_vars_f2zBuiltinTest.get_vars_f2  s    !vr$   c                   $    e Zd Zd Z ee      Zy)BuiltinTest.C_get_varsc                 
    ddiS )Nr   r   r7   r(   s    r!   getDictzBuiltinTest.C_get_vars.getDict  s    7Nr$   )fgetN)r4   r5   r6   r  propertyrs  r7   r$   r!   
C_get_varsr    s    	)r$   r  c                 2   | j                  t        t                     t        t                            | j                  t        t        t                    t        t        t                           | j                  | j                         i        | j                  | j                         ddd       | j                  t        t        dd       | j                  t        t        d       | j                  t        | j                               ddi       y )Nr,   r   r  r   r   )
rq   setr  r  r|   r  r  r   r   r  r(   s    r!   	test_varszBuiltinTest.test_vars  s    TVc#%j1T#YSX7))+R0))+11-=>)T2r2)T2.doo/03q':r$   c                     g }| j                  |      5  |D ]  }|j                  |        	 ddd       |S # 1 sw Y   |S xY w)z=Collect `iterable` into a list, catching an expected `error`.N)r   r.   )r    iterableerroritemsr  s        r!   
iter_errorzBuiltinTest.iter_error  sN    u% 	#  #T"#	# 	# s	   8Ac           
         d}d}g d}| j                  t        t        ||            |       g d}| j                  t        t        ||            |       d}| j                  t        t        ||            |        G d d      }| j                  t        t        | |                   |       | j                  t        t                     g        | j                  t        t        g        g        | j                  t        t        d         G d d      }| j                  t        t        | |              | j                  t
        t        |t                       G d	 d
      }| j                  t        t         |       t        d                  t        t        t        d                          G d d      }| j                  t        t        t         |        |                    y )Nr  r   r  r   )r,   r   )r   r  )r   r   r   r  r   ry  c                       e Zd Zd Zy)BuiltinTest.test_zip.<locals>.Ic                 ,    |dk  s|dkD  rt         |dz   S )Nr   r   r   r-   r    r0   s     r!   r2   z+BuiltinTest.test_zip.<locals>.I.__getitem__  s    q5AE#31ur$   Nr  r7   r$   r!   Ir    s    r$   r  c                       e Zd Zy)BuiltinTest.test_zip.<locals>.GNr   r7   r$   r!   Gr    r  r$   r  c                       e Zd Zd Zy)4BuiltinTest.test_zip.<locals>.SequenceWithoutALengthc                     |dk(  rt         |S Nr  r  r  s     r!   r2   z@BuiltinTest.test_zip.<locals>.SequenceWithoutALength.__getitem__      6$$Hr$   Nr  r7   r$   r!   SequenceWithoutALengthr        r$   r  rW  r  c                       e Zd Zd Zy)$BuiltinTest.test_zip.<locals>.BadSeqc                     |dk(  rt         |S r  r  r  s     r!   r2   z0BuiltinTest.test_zip.<locals>.BadSeq.__getitem__  r  r$   Nr  r7   r$   r!   r\  r    r  r$   r\  )
rq   rs   zipr   r   rX   r]   rS  	enumerater   )r    r   r  r  r  r  r  r\  s           r!   test_zipzBuiltinTest.test_zip  st   $c!Qi!,c!Qi!,c!Qi!,	 	 	c!QSk*A.ceb)c2h,)S$/	 	)S!QS1,Q0AB
	 	 	+-uU|<=58$%	

	 	 	*dC&(,CDr$   c                     d}d}g d}t        t        j                  dz         D ]!  }t        ||      }| j	                  |||       # y )Nr  r  r  r,   rS  rn   rh  r  rz   r    r   r  r  rx   z1s         r!   test_zip_picklezBuiltinTest.test_zip_pickle  sM    $622Q67 	1EQB""2q%0	1r$   c                     d}d}g d}t        t        j                  dz         D ]#  }t        ||d      }| j	                  |||       % y )Nr  r  r  r,   Tstrictr  r  s         r!   test_zip_pickle_strictz"BuiltinTest.test_zip_pickle_strict  sP    $622Q67 	1EQ$'B""2q%0	1r$   c                 \   d}d}g d}t        t        j                  dz         D ]  }t        ||d      }t        j                  t        j
                  ||            }| j                  | j                  |t              |       | j                  | j                  |t              |        y )Nr  r  r  r,   Tr  )	rS  rn   rh  r  rp   ro   rq   r  r   )r    r   r  r  rx   r  z2s          r!   test_zip_pickle_strict_failz'BuiltinTest.test_zip_pickle_strict_fail  s    $622Q67 	AEQ$'Bfll2u56BT__R<a@T__R<a@		Ar$   c                     t                G fdd      }| j                  t               5 }t         |              d d d        | j                  j                         y # 1 sw Y   &xY w)Nc                       e Zd Z fdZy)6BuiltinTest.test_zip_bad_iterable.<locals>.BadIterablec                     r   r7   )r    	exceptions    r!   r_   z?BuiltinTest.test_zip_bad_iterable.<locals>.BadIterable.__iter__*  s    r$   Nr`   )r  s   r!   BadIterabler  )  s     r$   r  )r   r   r  r  r  )r    r  cmr  s      @r!   test_zip_bad_iterablez!BuiltinTest.test_zip_bad_iterable&  sY    K		  	  y) 	R	 	bllI.	 	s   A##A,c           
      >   | j                  t        t        ddd            d       | j                  t        t        t        ddd             | j                  t        t        t        ddd             | j                  t        t        t        dddd             y )Nr  r  Tr  ))r,   r   )r   r  )r   r   rc  ra  )rq   r4  r  r   r   r(   s    r!   test_zip_strictzBuiltinTest.test_zip_strict2  s    s9eDAB7	9*elE$?	A*efeD9	;*effeDA	Cr$   c           
         t        t        d            }dg}t        t        d            }| j                  t        t        t        |||d             | j                  t        |      d       | j                  t        |      d       y )Nr  r   Tr  r   r,   )r.  rS  r   r   rs   r  rq   rt   )r    r   r   rz  s       r!   test_zip_strict_iteratorsz%BuiltinTest.test_zip_strict_iterators<  sk    qNCqN*dq!Qt4	7a!$a!$r$   c                   
  G d dt               
 G 
fdd      }| j                  t        d |d      d      
      }| j                  |d	g       | j                  t        d |d
      dd      t              }| j                  |dg       | j                  t        d |d
      dd      
      }| j                  |ddg       | j                  t        d |d      d      t              }| j                  |ddg       | j                  t         |d      dd      
      }| j                  |dg       | j                  t         |d
      dd      t              }| j                  |dg       | j                  t         |d
      dd      
      }| j                  |ddg       | j                  t         |d      dd      t              }	| j                  |	ddg       y )Nc                       e Zd Zy)9BuiltinTest.test_zip_strict_error_handling.<locals>.ErrorNr   r7   r$   r!   Errorr  G  r  r$   r  c                   $    e Zd Zd Zd Z fdZy)8BuiltinTest.test_zip_strict_error_handling.<locals>.Iterc                     || _         y r   sizer    r  s     r!   r"   zABuiltinTest.test_zip_strict_error_handling.<locals>.Iter.__init__K  	     	r$   c                     | S r   r7   r(   s    r!   r_   zABuiltinTest.test_zip_strict_error_handling.<locals>.Iter.__iter__M  r  r$   c                 h    | xj                   dz  c_         | j                   dk  r| j                   S Nr,   r   r  )r    r  s    r!   r  zABuiltinTest.test_zip_strict_error_handling.<locals>.Iter.__next__O  s*    		Q	99q=Kyy r$   Nr4   r5   r6   r"   r_   r  )r  s   r!   r  r  J  s    !!r$   r  ABr,   Tr  r   r   r   r   r   r,   r   ABCr  r   r  r   r   r   r  r,   r   r   r,   r   r   r  r   r   r,   r  )r  r  r  rq   r   )r    r  l1l2l3l4l5l6l7l8r  s             @r!   test_zip_strict_error_handlingz*BuiltinTest.test_zip_strict_error_handlingE  s   	I 			! 		! __StAwt<eDhZ(__StAwDA:Nm_-__StAwdCUKm];<__StAwt<jIh12__Sa$t<eDhZ(__Sa#d;ZHhZ(__Sa%=uEh12__Sa$t<jIh12r$   c                     G d d      }| j                  t        d |d      d      t              }| j                  |dg       | j                  t        d |d      d	d      t              }| j                  |d
g       | j                  t        d |d      dd      t              }| j                  |d
dg       | j                  t        d |d      d      t              }| j                  |ddg       | j                  t         |d      dd      t              }| j                  |dg       | j                  t         |d      d	d      t              }| j                  |dg       | j                  t         |d      dd      t              }| j                  |ddg       | j                  t         |d      dd      t              }	| j                  |	ddg       y )Nc                       e Zd Zd Zd Zd Zy)FBuiltinTest.test_zip_strict_error_handling_stopiteration.<locals>.Iterc                     || _         y r   r  r  s     r!   r"   zOBuiltinTest.test_zip_strict_error_handling_stopiteration.<locals>.Iter.__init__i  r   r$   c                     | S r   r7   r(   s    r!   r_   zOBuiltinTest.test_zip_strict_error_handling_stopiteration.<locals>.Iter.__iter__k  r  r$   c                 n    | xj                   dz  c_         | j                   dk  rt        | j                   S r  )r  ru   r(   s    r!   r  zOBuiltinTest.test_zip_strict_error_handling_stopiteration.<locals>.Iter.__next__m  s*    		Q	99q=''yy r$   Nr  r7   r$   r!   r  r  h  s    !!r$   r  r  r,   Tr  r  r   r   r  r  r	  r   r
  r  r  r  r  r  r  )r  r  r   rq   )
r    r  r  r  r  r  r  r  r  r  s
             r!   ,test_zip_strict_error_handling_stopiterationz8BuiltinTest.test_zip_strict_error_handling_stopiterationf  s   		! 		! __StAwt<jIhZ(__StAwDA:Nm_-__StAwdCZPm];<__StAwt<jIh12__Sa$t<jIhZ(__Sa#d;ZHhZ(__Sa%=zJh12__Sa$t<jIh12r$   c                     t        g g      }t        j                          | j                  t        j                  t        |                   y r   )r  ro  rp  r   
is_trackedrt   )r    rv   s     r!   test_zip_result_gczBuiltinTest.test_zip_result_gc  s3    
 "Y


 	d2h/0r$   c                 8     j                  t        dd      d       d } fd} | |          fd} |d        |d        |d	        |d
        |d        |d        |t                |d         G d d      } j                  t        t         |       d        j                  t        t        t               d        j                  t        t        t               t                      t               j                  d      } j                  |j                  d              j                  t        t               j
                  d        j                  t        t               j
                  t                       j                  t        t               j
                  d         G d d      } j                  t         |             d        j                  t         |       d      d        j                  t         |       d      d        G d d      } G d dt              }t        ||fD ]  }	 |	       }
 j                  t        |
      t        |
              j                  t        |
d      t        |
              j                  t        dt        j                  |	j                        z        5  t        |
d       d d d          G d dt              } j                  t        d |d            d       y # 1 sw Y   xY w)Nr   rR   r  c                       G d dt               }  G d d|       } G d dt               } G d d|      } G d	 d
|      }| |||fS )Nc                       e Zd Zd Zd Zy)7BuiltinTest.test_format.<locals>.classes_new.<locals>.Ac                     || _         y r   rL  r   s     r!   r"   z@BuiltinTest.test_format.<locals>.classes_new.<locals>.A.__init__  	    DFr$   c                 2    t        | j                        |z   S r   r=   r   r    format_specs     r!   
__format__zBBuiltinTest.test_format.<locals>.classes_new.<locals>.A.__format__      tvv;44r$   Nr4   r5   r6   r"   r.  r7   r$   r!   r   r'        5r$   r   c                       e Zd Zy)BBuiltinTest.test_format.<locals>.classes_new.<locals>.DerivedFromANr   r7   r$   r!   DerivedFromAr3    s    r$   r4  c                       e Zd Zy)<BuiltinTest.test_format.<locals>.classes_new.<locals>.SimpleNr   r7   r$   r!   Simpler6    r   r$   r7  c                       e Zd Zd Zd Zy)GBuiltinTest.test_format.<locals>.classes_new.<locals>.DerivedFromSimplec                     || _         y r   rL  r   s     r!   r"   zPBuiltinTest.test_format.<locals>.classes_new.<locals>.DerivedFromSimple.__init__  r)  r$   c                 2    t        | j                        |z   S r   r+  r,  s     r!   r.  zRBuiltinTest.test_format.<locals>.classes_new.<locals>.DerivedFromSimple.__format__  r/  r$   Nr0  r7   r$   r!   DerivedFromSimpler9    r1  r$   r<  c                       e Zd Zy)HBuiltinTest.test_format.<locals>.classes_new.<locals>.DerivedFromSimple2Nr   r7   r$   r!   DerivedFromSimple2r>    r   r$   r?  )r   )r   r4  r7  r<  r?  s        r!   classes_newz,BuiltinTest.test_format.<locals>.classes_new  sL    5F 5
q  '&5F 5
 >%6=l$57IIIr$   c                    j                  t         | d      d      d       j                  t         |d      d      d       j                  t         |d      d      d       j                  t         |d	      d
      d       y )Nr   spec3specr   4specr  r  5abcrH   abcdef10abcdef)rq   format)r   r4  r<  r?  r    s       r!   
class_testz+BuiltinTest.test_format.<locals>.class_test  sv    VAaD&17;VLOV<gFV$5a$8%@&IV$6r$:HE')r$   c                     j                  t        | d      t        |              j                  t        |       t        |              y NrR   )rq   rH  r=   )r  r    s    r!   empty_format_specz2BuiltinTest.test_format.<locals>.empty_format_spec  s8     VE2.E
;VE]CJ7r$   l   .@r  g]]^Ug]]^g;q7r*g;q7rc                       e Zd Zd Zy)0BuiltinTest.test_format.<locals>.BadFormatResultc                      y)Nr  r7   r,  s     r!   r.  z;BuiltinTest.test_format.<locals>.BadFormatResult.__format__  r  r$   Nr4   r5   r6   r.  r7   r$   r!   BadFormatResultrN    r  r$   rQ  r   z<object object atc                       e Zd Zd Zy)"BuiltinTest.test_format.<locals>.Ac                     t        d|      S rK  )rH  )r    fmt_strs     r!   r.  z-BuiltinTest.test_format.<locals>.A.__format__  s    b'**r$   NrP  r7   r$   r!   r   rS    s    +r$   r   r   c                       e Zd Zy)"BuiltinTest.test_format.<locals>.BNr   r7   r$   r!   r  rW    r  r$   r  c                       e Zd Zy)"BuiltinTest.test_format.<locals>.CNr   r7   r$   r!   r  rY    r  r$   r  z\b%s\bc                       e Zd Zy)/BuiltinTest.test_format.<locals>.DerivedFromStrNr   r7   r$   r!   DerivedFromStrr[    r   r$   r\  r   rG   z
         0)rq   rH  r   r   r   r.  r   
startswithr=   rj  reescaper4   )r    r@  rI  rL  rQ  r   r   r  r  clsobjr\  s   `           r!   test_formatzBuiltinTest.test_format  sq    	2,	J$	) 	KM"	8 	&!#*%+&+&,'&!$	 	 	)V_->C 	)VVXq9)VVXvx@ H#%89: 	)VX%8%8!<)VX%8%8&(C)VX%8%8$?
	+ 	+ 	b)R"-S)2.	 		 	 Aq> 	!C%CVC[#c(3VC_c#h7''	(1BIIcll4K(KM !sC ! !		! 	(S'>$#78,G! !s   LL	c                    | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        ddz        d	       | j                  t        ddz  dz
        d
       | j                  t        ddz         d       | j                  t        ddz  dz
         d       y )Nr   0b0r,   0b1r  z-0b1r   r   D0b100000000000000000000000000000000000000000000000000000000000000000C0b11111111111111111111111111111111111111111111111111111111111111111zE-0b100000000000000000000000000000000000000000000000000000000000000000zD-0b11111111111111111111111111111111111111111111111111111111111111111)rq   binr(   s    r!   test_binzBuiltinTest.test_bin  s    Q'Q'R&)QU%56QU1W7q"uX(9:q"uQwZ*:;r$   c                     t        d      }| j                  t        |j                  dd       | j                  t        |j                  dd       y )Ns   abc   1r,   s   1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111)r  r   r   	translater   r   s     r!   test_bytearray_translatez$BuiltinTest.test_bytearray_translate  s<    f*akk4;)Q[[(A>r$   c                 z    t               }t        t        d      }| j                  t        |j
                  |       y )Nr  )r  r  r   r   r   extend)r    arraybad_iters      r!   test_bytearray_extend_errorz'BuiltinTest.test_bytearray_extend_error  s*    sC=*ellH=r$   c                 r    t        d      fd}| j                  t        j                   |              y )N   ,c               3   >   K    j                          d d y wNrR     B)rC  )rp  s   r!   iteratorzKBuiltinTest.test_bytearray_join_with_misbehaving_iterator.<locals>.iterator  s     KKMJJs   )r  r   BufferErrorjoin)r    rx  rp  s     @r!   -test_bytearray_join_with_misbehaving_iteratorz9BuiltinTest.test_bytearray_join_with_misbehaving_iterator  s+    $	 	+uzz8:>r$   c                 ~    t        d      }d }| j                  t        d      |j                   |                    y )Nrt  c               3      K   d d y wrv  r7   r7   r$   r!   rx  zFBuiltinTest.test_bytearray_join_with_custom_iterator.<locals>.iterator  s     JJs   
s   A,B)r  rq   rz  )r    rp  rx  s      r!   (test_bytearray_join_with_custom_iteratorz4BuiltinTest.test_bytearray_join_with_custom_iterator  s2    $	 	6*EJJxz,BCr$   c                     d t         t        fD ]U  }t        |      }| j                   |       |       | j	                  t
        |dd       | j	                  t
        |dd       W y )Nr,   r   r  )Ellipsisr  rr   r  r   r   )r    consttps      r!   test_construct_singletonsz%BuiltinTest.test_construct_singletons  s\    8^3 	7EeBMM"$&iQ2iqA6		7r$   c                 @   | j                  t        t        t               | j                  t              5  | j	                  t               d d d        | j                  t              5  | j                  t                d d d        y # 1 sw Y   >xY w# 1 sw Y   y xY wr   )r   DeprecationWarningrn  r  r   r   r(   s    r!   test_warning_notimplementedz'BuiltinTest.test_warning_notimplemented   s     	+T>B01 	,OON+	,01 	1/0	1 	1	, 	,	1 	1s   B(BBBc                    t         t        fD ]  }| j                  |      5  | j                  t	        |      |j
                         | j                  t	        |      j
                  t               | j                  t              5  d|_        d d d        | j                  t              5  |j                   d d d        | j                  t              5  dt	        |      _        d d d        | j                  t              5  t	        |      j                   d d d        d d d         y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   `xY w# 1 sw Y   9xY w# 1 sw Y   ZxY wrh   )
r  r  subTestr  rr   r  r   r/  propr   )r    	singletons     r!   test_singleton_attribute_accessz+BuiltinTest.test_singleton_attribute_access.  s#   ((3 	)Ii( )d9oy/B/BCd9o77> &&~6 '%&IN'&&~6 #NN# &&y1 -+,DO(-&&~6 )O(()) )	)' '# #- -) )) )sl   A$ED-E+D98EE&EEE-D62E9E>EE
EEEE'	N)qr4   r5   r6   rz   r   r   r   r   r   r   r   r  r  r?  rO  unittestskipIfr   is_emscriptenis_wasir^  ra  re  rl  r  r  r  r  r  r   r  r  r  r#  r'  r,  r0  r4  rF  re  rk  requires_resourcers  rv  r  r  r  r  r  r  r  r  r  r  r  r  r   r$  r1  r7  r|   rC  	utf8_moderG  requires_subprocessrM  rU  rd  rn  rp  r  platformsystemr]  machinelinux_alphar  system_round_bugr  r  r  r  r   HAVE_DOUBLE_ROUNDINGr   r  r  staticmethodr  r  r   r  r  r  r  r  r  r  r  r  r  r  r   r#  rb  ri  rm  rr  r{  r~  r  r  r  r7   r$   r!   rl   rl      sY   ,"I$..88!OF,
 &DC,6.6`D* X__0!82	82t#2LE @S8j:
-$<.CDJ70=1@M&	K/B?	$K \?28 Wu% &	F9&0*.
-61$1" 9D:Fx8=<~=1~+6.

 7 X__SYY((*AB+ C+* !W  "C #C
86<2|!J0H2b #8??$//8 :#8##%009 V}.X__[5%534040CH4$l X__)WY@ Y @0    *V *
;*EX11A
/C%3B3< 	1 	1cHJ<?
>
?D71)r$   rl   c                      e Zd Zd Zd Zd Zd Zd Zd Z e	j                  ej                  j                  d      d        Z e	j                  ej                  j                  d      d	        Z e	j                  ej                  j                  d      d
        Zd Z e	j                  ej                  j                  d      d        Zd Zd Zy)TestBreakpointc                 F   t               | _        | j                  | j                  j                         | j                  j	                  t                     | _        | j                  d= | j                  j	                  t        t        dt        j                               y )NPYTHONBREAKPOINTbreakpointhook)
r   	resourcesr.  ri  enter_contextr   envr   r|   __breakpointhook__r(   s    r!   setUpzTestBreakpoint.setUpB  sp     #,,->>//0C0EFHH'($$c+S-C-CD	Fr$   c                 x    t        d      5 }t                d d d        j                          y # 1 sw Y   xY wNpdb.set_trace)r   
breakpointassert_called_oncer    mocks     r!   test_breakpointzTestBreakpoint.test_breakpointP  s2    ?# 	tL	!	 	s   09c                 b    t               }|t        _        t                |j	                          y r   r   r|   r  r  assert_called_once_withr    my_breakpointhooks     r!   'test_breakpoint_with_breakpointhook_setz6TestBreakpoint.test_breakpoint_with_breakpointhook_setU  s#    %K.113r$   c                 (   t               }|t        _        t                |j	                          t        j
                  t        _        t        d      5 }t                |j	                          d d d        |j	                          y # 1 sw Y   xY wr  )r   r|   r  r  r  r  r   )r    r  r  s      r!   )test_breakpoint_with_breakpointhook_resetz8TestBreakpoint.test_breakpoint_with_breakpointhook_reset[  so    %K.113 33?# 	+tL((*	+ 	113	+ 	+s   BBc                 z    t               }|t        _        t        ddddd       |j	                  ddddd       y )Nr,   r   r   r   r  fourfiver  r  s     r!   &test_breakpoint_with_args_and_keywordsz5TestBreakpoint.test_breakpoint_with_args_and_keywordsg  s;    %K.1a+11!Q1Jr$   c           	      `    d }|t         _        | j                  t        t        ddddd       y )Nc                       y r   r7   r7   r$   r!   r  zMTestBreakpoint.test_breakpoint_with_passthru_error.<locals>.my_breakpointhookn  r`  r$   r,   r   r   r   r  r  )r|   r  r   r   r  r  s     r!   #test_breakpoint_with_passthru_errorz2TestBreakpoint.test_breakpoint_with_passthru_errorm  s,    	.)ZAqqqIr$   z-E was givenc                     d| j                   d<   t        d      5 }t        d       |j                  d       d d d        y # 1 sw Y   y xY w)Nr   r  zbuiltins.int7r  r   r  r  r  s     r!   test_envar_good_path_builtinz+TestBreakpoint.test_envar_good_path_builtins  sE    ',#$>" 	.dsO((-	. 	. 	.s   AA
c                     d| j                   d<   t        d      5 }t                |j                          d d d        y # 1 sw Y   y xY wNzsys.exitr  r  r  s     r!   test_envar_good_path_otherz)TestBreakpoint.test_envar_good_path_otherz  sA    '1#$: 	+$L((*	+ 	+ 	+	   ?Ac                     d| j                   d<   t        d      5 }t                |j                          d d d        y # 1 sw Y   y xY w)NrC   r  r  )r  r   r  assert_not_calledr  s     r!   test_envar_good_path_noop_0z*TestBreakpoint.test_envar_good_path_noop_0  sA    '*#$?# 	%tL""$	% 	% 	%r  c                     d| j                   d<   t        d      5 }t                |j                          d d d        y # 1 sw Y   y xY w)NrR   r  r  r  r  s     r!   !test_envar_good_path_empty_stringz0TestBreakpoint.test_envar_good_path_empty_string  sA    ')#$?# 	+tL((*	+ 	+ 	+r  c                    dD ]  }| j                  |      5  || j                  d<   | j                  j                  t	        d            }| j                  j                  t        d            }t                | j                  t        |j                        d| d       | j                  |j                  t               |j                          d d d         y # 1 sw Y   xY w)	N).z..z.foozfoo.z.intzint.z.foo.barz	..foo.barz/./nosuchbuiltinznosuchmodule.nosuchcallable)envarr  r  T)quietz*Ignoring unimportable $PYTHONBREAKPOINT: "r   )r  r  r  r  r   r   r  rq   r=   messagecategoryRuntimeWarningr  )r    r  r  r&  s       r!   test_envar_unimportablez&TestBreakpoint.test_envar_unimportable  s     	)E E* 	)/4+,~~33E/4JKNN00d1KL  		N@qIK   ^<&&(	) 	)	)	) 	)s   B<CC(	c                     d| j                   d<   t        d      5 }t        t        _        t                |j                          d d d        y # 1 sw Y   y xY wr  )r  r   r   r|   r  r  r  r  s     r!   #test_envar_ignored_when_hook_is_setz2TestBreakpoint.test_envar_ignored_when_hook_is_set  sI    '1#$: 	%$!$CL""$	% 	% 	%s   *AAc                 x    t         `| j                  t              5  t	                d d d        y # 1 sw Y   y xY wr   )r|   r  r   rX   r  r(   s    r!   $test_runtime_error_when_hook_is_lostz3TestBreakpoint.test_runtime_error_when_hook_is_lost  s0    |, 	L	 	 	s   09N)r4   r5   r6   r  r  r  r  r  r  r  r  r|   rC  ignore_environmentr  r  r  r  r  r  r  r7   r$   r!   r  r  A  s    F"
4
4KJ X__SYY11>B. C. X__SYY11>B+ C+ X__SYY11>B% C%+ X__SYY11>B) C)$%r$   r  z,the pty and signal modules must be availablec                   R    e Zd ZdZed        Zd Zd ZddZd Z	d Z
d	 Zd
 Zd Zy)PtyTestszhTests that use a pseudo terminal to guarantee stdin and stdout are
    terminals in the test environmentc                      y r   r7   )signumframes     r!   handle_sighupzPtyTests.handle_sighup  s    
 	r$   c                    t        j                   t         j                  | j                        }	 | j                  ||      t        j                   t         j                  |       S # t        j                   t         j                  |       w xY wr   )signalSIGHUPr  
_run_child)r    childterminal_input
old_sighups       r!   	run_childzPtyTests.run_child  sT    ]]6==$2D2DE
	5??5.9MM&--4FMM&--4s   A& &&Bc                    t        j                         \  }}	 t        j                         \  }}|dk(  rH	 t        j                  |       t        |d      5 } ||       d d d        t        j                  d       t        j                  |       t        j                  ||       t        |d      5 }	g }
	 |	j                         j                         }|dk(  rn|
j!                  |       6	 d d d        t#        
      dk7  r}t%               }	 	 t        j&                  |d      }|sn|j)                  |       ,t        j                  |       |j+                  d	d
      }| j-                  dt#        |
      |fz         t        j                  |       t/        j0                  |d       |
S # t        t
        f$ rP}t        j                  |       t        j                  |       | j                  dj                  |              d }~ww xY w# 1 sw Y   xY w#  t        j                          Y xY w# t        j                  d       w xY w# 1 sw Y   hxY w# t        $ r Y 2w xY w)Nzpty.fork() raised {}r   r&  r'  r(  rR   r   i  r   r  z9got %d lines in pipe but expected 2, child output was:
%s)exitcode)r<  pipeptyforkOSErrorr/  ri  skipTestrH  r-  	traceback	print_exc_exitrB   r5  ru  r.   r'   r  r6  ro  decoder
  r   wait_process)r    r  r  rr&  pidfdr  wpiperpipelinesrA   child_outputchunks                 r!   r  zPtyTests._run_child  s   wwy1	hhjGC !8!S\ !U%L!  	
^$ !g& 	#%E~~'--/2:T"  	# u:? %;LGGB-E ##E*  HHRL'..wALIIRU\23 4
 	S1-q ( 	HHQKHHQKMM077:;		! !&##% 	# 	#"  se   F1 !H  	H H  5:II# 1H AHHHH   H96H< <II #	I0/I0Nc                    t         j                  j                         rt         j                  j                         s| j	                  d       fd}| j                  ||dz         }| j                  |d   ddh       |d   dk7  r| j	                  d       t        |d         }r|j                  d	      }n)|j                  t         j                  j                        }| j                  ||       y )
Nzstdin and stdout must be ttysc                    rzt        j                  t        j                  j	                         d      t        _        t        j                  t        j
                  j	                         d      t        _        t        dt        j                  j                         xr t        j
                  j                         |        t        t        t                    |        y )Nsurrogateescape)r)  errorsreplaceztty =file)
rj  TextIOWrapperr|   rg  detachr2  printisattyr   rh  )r  rf  stdio_encodings    r!   r  z'PtyTests.check_input_tty.<locals>.child	  s    ,,SYY-=-=-?6D4EG	  --cjj.?.?.A7E5>@
 '399++-E#**2C2C2EER%f&U3r$   s   
r   z
tty = Trueztty = Falsez%standard IO in should have been a ttyr,   r  )r|   rg  r  r2  r  r  r  r%  r  r)  rq   )r    rf  r  r  r  r  input_resultr9  s    ` `    r!   check_input_ttyzPtyTests.check_input_tty 	  s    yy!):):)<MM9:
	4 unw&>?eAh} =>8|#MMABE!H~%,,^=NOH%,,SYY-?-?@Hx0r$   c                 (    | j                  dd       y )Nrf  s   quux)r  r(   s    r!   test_input_ttyzPtyTests.test_input_tty	  s     	Xw/r$   c                 L    dt         j                  v r| j                  d       y y )Nr5  zthe readline module is loaded)r|   modulesr  r(   s    r!   skip_if_readlinezPtyTests.skip_if_readline	  s"     $MM9: %r$   c                 J    | j                          | j                  ddd       y )N   prompté   quuxr'  r  r  r(   s    r!   test_input_tty_non_asciiz!PtyTests.test_input_tty_non_ascii)	       Zg>r$   c                 J    | j                          | j                  ddd       y )Nr  r  r   r  r(   s    r!   'test_input_tty_non_ascii_unicode_errorsz0PtyTests.test_input_tty_non_ascii_unicode_errors.	  r  r$   c                 V    d }| j                  |d      }d}| j                  ||       y )Nc                    t        dt        j                  j                         |        t	        j
                         t        _        t        d       t        dt        t        j                  j                               |        y )Nzstdin.isatty():r  rf  z	captured:)
r  r|   rg  r  rj  rk  r2  rh  r   getvalue)r  s    r!   r  z3PtyTests.test_input_no_stdout_fileno.<locals>.child6	  sN    #SYY%5%5%7eDCJ(O+uSZZ%8%8%:;%Hr$   s   quux)zstdin.isatty(): Truezcaptured: 'prompt')r  assertSequenceEqual)r    r  r  r9  s       r!   test_input_no_stdout_filenoz$PtyTests.test_input_no_stdout_fileno3	  s3    	I
 ui0
 	  1r$   r   )r4   r5   r6   r1  r  r  r  r  r  r  r  r  r  r  r7   r$   r!   r  r    sD    )  5<|140
;?
?
2r$   r  c                   $    e Zd Zd Zd Zd Zd Zy)
TestSortedc                    t        t        d            }|d d  }t        j                  |       | j	                  |t        |             | j                  ||       |j                          t        j                  |       | j	                  |t        |d              | j                  ||       t        j                  |       | j	                  |t        |d             | j                  ||       y )NrL   c                     |  S r   r7   rL  s    r!   r   z'TestSorted.test_basic.<locals>.<lambda>M	  s    1" r$   r  T)reverse)rs   rS  r  shufflerq   r  rI  r  )r    r  copys      r!   
test_basiczTestSorted.test_basicD	  s    E#JAwtvd|,D$'tvd=>D$'tvdD9:D$'r$   c                    t        g        | j                  t              5  t        g        d d d        t        g d        | j                  t              5  t        g d        d d d        y # 1 sw Y   AxY w# 1 sw Y   y xY w)N)r  r  )r  r   r   r(   s    r!   test_bad_argumentszTestSorted.test_bad_argumentsS	  sr    r
y) 	 B	  	rty) 	2t	 			  	 	 	s   A.A:.A7:Bc           	      v   d}t         t        t        g}|D ],  }| j                  t	        |      t	         ||                   . dj                  t        |            }t        t        t        t         t        t        j                  g}|D ],  }| j                  t	        |      t	         ||                   . y )NabracadabrarR   )
rs   r4  r=   rq   r  rz  r  	frozensetr  fromkeys)r    r   r  Ts       r!   test_inputtypeszTestSorted.test_inputtypes]	  s    uc" 	6AVAYqt5	6 GGCFOc9dE4==A 	6AVAYqt5	6r$   c                 `    dj                         }| j                  t        t        |d d        y )Nz,The quick Brown fox Jumped over The lazy Dogc                      yr   r7   r   s     r!   r   z.TestSorted.test_baddecorator.<locals>.<lambda>j	  r   r$   )splitr   r   r  )r    r  s     r!   test_baddecoratorzTestSorted.test_baddecoratorh	  s&    =CCE)VT4Gr$   N)r4   r5   r6   r   r"  r(  r,  r7   r$   r!   r  r  B	  s    (	6Hr$   r  c                       e Zd Zd Zy)ShutdownTestc                     d}t        d|d      \  }}}| j                  ddg|j                         j                                y )Naf  if 1:
            import builtins
            import sys

            class C:
                def __del__(self):
                    print("before")
                    # Check that builtins still exist
                    len(())
                    print("after")

            c = C()
            # Make this module survive until builtins and sys are cleaned
            builtins.here = sys.modules[__name__]
            sys.here = sys.modules[__name__]
            # Create a reference loop so that this module needs to go
            # through a GC phase.
            here = sys.modules[__name__]
            z-cr   )PYTHONIOENCODINGbeforeafter)r   rq   r  
splitlines)r    r<  rcouterrs        r!   test_cleanupzShutdownTest.test_cleanupo	  sG    2 (d9@BC(G,cjjl.E.E.GHr$   N)r4   r5   r6   r7  r7   r$   r!   r.  r.  m	  s    Ir$   r.  c                   n    e Zd Zej                  dk  rdZndZdddeeg edd      Z	d	 Z
d
 Zd Zd Zy)ImmortalTestsr  i?l    NTFr   i  c                     | j                  |      5  | j                  t        j                  |      | j                         d d d        y # 1 sw Y   y xY wr   )r  rq   r|   getrefcountIMMORTAL_REFCOUNTr    immortals     r!   assert_immortalzImmortalTests.assert_immortal	  sF    \\(# 	PS__X68N8NO	P 	P 	Ps   0AAc                 H    | j                   D ]  }| j                  |        y r   )	IMMORTALSr?  r=  s     r!   test_immortalszImmortalTests.test_immortals	  s#     	+H  *	+r$   c                 x    t        | j                        dz  }| j                  D ]  }| j                  |        y Nr   )rs   rA  r?  r    refsr>  s      r!   $test_list_repeat_respect_immortalityz2ImmortalTests.test_list_repeat_respect_immortality	  s6    DNN#b( 	+H  *	+r$   c                 x    t        | j                        dz  }| j                  D ]  }| j                  |        y rD  )r4  rA  r?  rE  s      r!   %test_tuple_repeat_respect_immortalityz3ImmortalTests.test_tuple_repeat_respect_immortality	  s6    T^^$r) 	+H  *	+r$   )r4   r5   r6   r|   r   r<  r  r  rS  rA  r?  rB  rG  rI  r7   r$   r!   r9  r9  	  sL     {{g))tUHnNuR~NIP++
+r$   r9  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestTypec                    t        ddi       }| j                  |j                  d       | j                  |j                  d       | j                  |j                  t               | j                  |j
                  t        f       | j                  |j                  t                |       }| j                  t        |      |       | j                  |j                  |        G d d      }t        d|t        fdd i      }| j                  |j                  d       | j                  |j                  d       | j                  |j                  t               | j                  |j
                  |t        f       | j                  |j                  t               | j                  d|j                         | j                  d|j                          |d	      }| j                  |d	       | j                  t        |      |       | j                  |j                  |       | j                  |j                         d
       | j                  |j                         d       | j                  |j!                  dd      d       y )Nr   r7   c                       e Zd Zd Zy)!TestType.test_new_type.<locals>.Bc                     d| z  S )Nzham%dr7   r(   s    r!   r  z%TestType.test_new_type.<locals>.B.ham	  s    ~%r$   N)r4   r5   r6   r  r7   r$   r!   r  rN  	  s    &r$   r  r  rg  c                     d| z  S )Nzspam%sr7   r(   s    r!   r   z(TestType.test_new_type.<locals>.<lambda>	  s
    ho r$   r  r   ham42spam42r   littles   * )rr   rq   r4   r6   r5   	__bases__r   r  __base__r  r   r  rs  r  r  rg  to_bytes)r    r   r   r  r  s        r!   test_new_typezTestType.test_new_type	  s   b"S)-x0vi0ajj&)Cd1gq!akk1%	& 	& q#h)E FGS)-x0q#h/ajj#&fajj)

+bEBd1gq!akk1%'*8,Ax0+>r$   c                     | j                  t              5  t        ddi d       d d d        | j                  t              5  t        ddi        d d d        y # 1 sw Y   6xY w# 1 sw Y   y xY w)Nr   r7   r  rL  r  )r   r   rr   r(   s    r!   test_type_nokwargszTestType.test_type_nokwargs	  sg    y) 	#b""	#y) 	#br"	# 	#	# 	#	# 	#s   AA'A$'A0c                    dD ]  }| j                  |      5  t        |di       }| j                  |j                  |       | j                  |j                  |       | j                  |j
                  t               d d d         | j                  t              5  t        ddi        d d d        | j                  t              5  t        ddi        d d d        | j                  t              5  t        ddi        d d d        t        ddi       }dD ]|  }| j                  |      5  ||_        | j                  |j                  |       | j                  |j                  d       | j                  |j
                  t               d d d        ~ t        ddi       }| j                  t              5  d|_        d d d        | j                  |j                  d       | j                  t              5  d|_        d d d        | j                  |j                  d       | j                  t              5  d|_        d d d        | j                  |j                  d       y # 1 sw Y   ox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   xY w# 1 sw Y   xY w)N)r      Ä   🐍zB.A42rR   r   r7   zA Bu   ABrR  r  )
r  rr   rq   r4   r6   r5   r   r   UnicodeEncodeErrorr   )r    r   r   r  s       r!   test_type_namezTestType.test_type_name	  sh   > 	9D4( 9r2&  T2  6  x8	9 9	9 z* 	#2r"	#12 	%R$	%y) 	r2	 b"> 	9D4( 9!
  T2  5  x8	9 9	9 b"z* 	"!AJ	"S)12 	$#AJ	$S)y) 	AJ	S);9 9
	# 	#	% 	%	 	
9 9	" 	"	$ 	$	 	sa   A&I(I5J3J-A J9J):J5;K(I2	5I?JJJ&	)J25J>K
c                    t        ddddi      }| j                  |j                  d       | j                  |j                  d       | j                  |j                  t               | j                  t              5  t        ddddi       d d d        | j                  |j                  d       d|_        | j                  |j                  d       | j                  |j                  d       | j                  t              5  d|_        d d d        | j                  |j                  d       y # 1 sw Y   xY w# 1 sw Y   2xY w)Nr   r7   r6   zB.Crw  zD.E)rr   rq   r4   r6   r5   r   r   )r    r   s     r!   test_type_qualnamezTestType.test_type_qualname	  s   b>512S)/x0y) 	2b>401	2/S)/y) 	"!AN	"/	2 	2	" 	"s   =D2D>2D;>Ec                 F    d        }|j                   \  }| j                  |t        j                         d|_         | j	                  |j                   d       | j                  t              5  |` d d d        | j	                  |j                   d       y # 1 sw Y   &xY w)Nc                  0    d x} f G fdd
}|      S )r'  c                       e Zd ZW  Zy)(TestType.test_type_typeparams.<locals>.AN)r4   r5   r6   __type_params__).type_paramss   r!   r   rf  
  s    r$   r   r7   )r'  .generic_baserh  s     @r!   z<generic parameters of A>z@TestType.test_type_typeparams.<locals>.<generic parameters of A>
  s     	 	 	r$   whatever)rg  r  typingTypeVarrq   r   r   )r    r   r'  s      r!   test_type_typeparamszTestType.test_type_typeparams
  s    	a0&**J7y) 	"!	"**J7	" 	"s   /BB c                    dD ]-  }t        ddd|i      }| j                  |j                  |       / | j                  t              5  t        ddddi       d d d        t        ddi       }| j                  |j                  d        dD ]%  }||_        | j                  |j                  |       ' y # 1 sw Y   ]xY w)N)r   r\  r]  x y   xr   Nr   r7   r1     xy)r   r\  r]  ro  rq  rp  r   N)rr   rq   r1  r   r_  )r    r,  r   s      r!   test_type_doczTestType.test_type_doc
  s    F 	-CS"y#./AQYY,	- 12 	3b9j12	3 b"D)R 	-CAIQYY,	-	3 	3s   B44B=c                 ,   | j                  t              5  t                d d d        | j                  t              5  t        dd       d d d        | j                  t              5  t        ddi d       d d d        | j                  t              5  t        ddi        d d d        | j                  t              5  t        dg i        d d d        | j                  t              5  t        ddt        j                  i              d d d        | j                  t              5  t        ddi        d d d        | j                  t              5  t        dt
        fi        d d d        | j                  t              5  t        dt        t        fi        d d d        y # 1 sw Y   xY w# 1 sw Y   ix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)Nr   r7   rY  r   )r   r   rr   r  r%  rn  r   r=   r(   s    r!   test_bad_argszTestType.test_bad_args
  s   y) 	F	y) 	bM	y) 	"b"b!	"y) 	#br"	#y) 	b"	y) 	6b%0045	6y) 	#gr"	#y) 	#tgr"	#y) 	&sCj"%	& 	&!	 		 		" 	"	# 	#	 		6 	6	# 	#	# 	#	& 	&sj   F%F2(F?G G+!G&)G2G>H
%F/2F<?G	GG#&G/2G;>H
Hc                    | j                  t              5  t        ddddi       d d d        | j                  t              5  t        dt        fddi       d d d        | j                  t              5  t        ddddi       d d d        | j                  t              5  t        ddddi       d d d        | j                  t              5  t        ddddi       d d d        | j                  t              5  t        dddd	d
       d d d        | j                  t              5  t        ddddi       d d d        | j                  t              5  t        ddddi       d d d         G d d      }| j                  t              5  t        d|fddi       d d d        | j                  t              5  t        d|fddi       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   mxY w# 1 sw Y   Mx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)Nr   r7   r|  rp  r   rR   r^  ro  r   )r|  r   )rs  rs  )__weakref__rv  c                       e Zd Zy)"TestType.test_bad_slots.<locals>.BNr   r7   r$   r!   r  rx  @
  r  r$   r  rs  rv  )r   r   rr   r   r   )r    r  s     r!   test_bad_slotszTestType.test_bad_slots.
  s)   y) 	/b;-.	/y) 	2sf{C01	2y) 	-b;+,	-y) 	/b;-.	/y) 	3b;12	3z* 	6b!45	6y) 	Cb;(@AB	Cy) 	Ib;(FGH	I	 	y) 	7qd[*56	7y) 	:qd[-89	: 	:+	/ 	/	2 	2	- 	-	/ 	/	3 	3	6 	6	C 	C	I 	I
	7 	7	: 	:sw   GG#5G0"G=H
<H*H$H0H<<IG #G-0G:=H
HH!$H-0H9<IIc                    t        j                  ddg      }|j                  d       t        |j	                               }t        dd|      }| j                  t        |j                  j	                               d d ddg       y )N)r   r,   )r  r   r   r  r7   r   )r  OrderedDictmove_to_endrs   r  rr   rq   rs  )r    odr9  r  s       r!   test_namespace_orderzTestType.test_namespace_orderG
  so    $$h%9:
s
#b"ajj..01"15(7KLr$   N)r4   r5   r6   rW  rZ  r`  rb  rm  rr  rt  ry  r~  r7   r$   r!   rK  rK  	  s1    ?<#*B0 	8-&(:2Mr$   rK  c                 H    ddl m} |j                   |t                     |S )Nr   )DocTestSuite)doctestr  addTestr  )loadertestspatternr  s       r!   
load_testsr  Q
  s    $	MM,x()Lr$   r   )Vr2  rX  r  r  r  r  ro  rj  r>  r  r<  rn   r  r  r^  r|   r  r  rk  r  r  
contextlibr   	functoolsr   inspectr   	itertoolsr   textwrapr   r   r	   r
   operatorr   r  r   test.supportr   r   r   test.support.os_helperr   r   r   test.support.script_helperr   test.support.warnings_helperr   r   unittest.mockr   r   r  r  r   r   r   r  r   r9   r?   r   r   r   r=   ri   test_conv_no_signtest_conv_signrU   r]   rf   rj   TestCaserl   r  
skipUnlessr  r  r.  r9  rK  r  r4   mainr7   r$   r!   <module>r     s         	 	   	    	 
             < <   O O H H 7 7 * * 1A)    $ 
 	$	ckk	CKK(		Z 	Z	j	Z 	$%9	:C@	UZ ' . 			
+	ckk	CKK(		*	Z 	Z	j	Z 	$%9	:C@	UZ ',  l)(## l)^=kX&& k\ SHIP2x   P2 JP2d(H"" (HVI8$$ ID +H%% + +8bMx   bMJ
 zHMMO ]Q  C&s   8I, ,	I98I9