
    ;ej                       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& d dl'm(Z(m)Z)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0m1Z1 	 d dl2Z2d dl3Z3n# e4$ r dxZ2Z3Y nw xY w G d d          Z5 G d d          Z6 G d d          Z7dddddddddd e8ej9                  ej9        fde:fd d!e:fd"e:fd#e:fd$e:f e;d%d&          d'f e<d(          e:fgZ=dddddddd)e:fdd*e:f e8ej9                  ej9        fde:fd+e:fd!e:fd"e:fd#e:fd$e:f e;d%d&          d'f e<d(          e:fgZ> G d, d-          Z? G d. d/          Z@d0 ZAd1 ZB G d2 d3ejC                  ZD G d4 d5ejC                  ZE ejF        e2d6           G d7 d8ejC                              ZG G d9 d:ejC                  ZH G d; d<ejC                  ZI G d= d>ejC                  ZJd? ZKeLd@k    r ejM                     dS dS )A    N)	ExitStack)partial)CO_COROUTINE)product)dedent)AsyncGeneratorTypeFunctionTypeCellType)neg)support)	swap_attrmaybe_get_event_loop_policy)EnvironmentVarGuardTESTFNunlink)assert_python_ok)check_warnings)	MagicMockpatchc                        e Zd Zd Zd Zd ZdS )Squaresc                 "    || _         g | _        d S Nmaxsofarselfr   s     (/usr/lib/python3.11/test/test_builtin.py__init__zSquares.__init__+       


    c                 *    t          | j                  S r   lenr   r   s    r   __len__zSquares.__len__/   s    c$*oo-r"   c                     d|cxk    r| j         k     s	n t          t          | j                  }||k    r(| j                            ||z             |dz  }||k    (| j        |         S Nr      )r   
IndexErrorr%   r   appendr   ins      r   __getitem__zSquares.__getitem__1   sz    A        
"2
OO1ffJac"""FA 1ff z!}r"   N__name__
__module____qualname__r    r'   r0    r"   r   r   r   )   s=           .--    r"   r   c                        e Zd Zd Zd Zd ZdS )
StrSquaresc                 "    || _         g | _        d S r   r   r   s     r   r    zStrSquares.__init__;   r!   r"   c                 *    t          | j                  S r   r$   r&   s    r   r'   zStrSquares.__len__?   s    4:r"   c                     d|cxk    r| j         k     s	n t          t          | j                  }||k    r5| j                            t          ||z                       |dz  }||k    5| j        |         S r)   )r   r+   r%   r   r,   strr-   s      r   r0   zStrSquares.__getitem__B   s    A        
OO1ffJc!A#hh'''FA 1ff z!}r"   Nr1   r5   r"   r   r7   r7   9   sA                r"   r7   c                       e Zd Zd ZdS )	BitBucketc                     d S r   r5   )r   lines     r   writezBitBucket.writeL   s    r"   N)r2   r3   r4   r@   r5   r"   r   r=   r=   K   s#            r"   r=   )0r   )1r*   )9	   )10
   )99c   )100d   )314:  ) 314rL   )z314 rL   )  		  314  		  rL   z  1x)  1  r*   z  1    z  		  s   \u0663\u0661\u0664 zraw-unicode-escaperL   i   rM   rN   rO   c                       e Zd Zd ZdS )TestFailingBoolc                     t           r   RuntimeErrorr&   s    r   __bool__zTestFailingBool.__bool__|       r"   N)r2   r3   r4   rW   r5   r"   r   rS   rS   {   #            r"   rS   c                       e Zd Zd ZdS )TestFailingIterc                     t           r   rU   r&   s    r   __iter__zTestFailingIter.__iter__   rX   r"   Nr2   r3   r4   r]   r5   r"   r   r[   r[      rY   r"   r[   c                 B    t          |           t          d          k    S )Nd)ordargs    r   filter_charrd      s    s88c#hhr"   c                 @    t          t          |           dz             S Nr*   )chrra   rb   s    r   map_charrh      s    s3xx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        p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(d# Z)d$ Z*d% Z+d& Z,d' Z-d( Z.d) Z/d* Z0d+ Z1d, Z2d- Z3d. Z4d/ Z5d0 Z6 ej        e7j8        j9        d1          d2             Z: ej;                    d3             Z<d4 Z=d5 Z>d6 Z?d7 Z@d8 ZA eBjC                    D                    d9          o! eBjE                    D                    d:          ZF eGd;          d;k    ZH ej        eFoeHd<          d=             ZId> ZJd? ZKd@ ZLdA ZMeNdB             ZOeNdC             ZP G dD dEeQ          ZRdF ZSdG ZTdH ZUdI ZVdJ ZWdK ZXdL ZYdM ZZdN Z[dO Z\dP Z]ej^        dQ             Z_dR Z`dS ZadT ZbdU ZcdV ZddW ZedXS )YBuiltinTestc                    |}t          j        ||          }t          j        |          }|                     t	          |          t	          |                     |                     t          |          |           t          j        |          }	 t          |           n# t          $ r Y d S w xY wt          j        ||          }t          j        |          }|                     t          |          |dd                     d S rf   )pickledumpsloadsassertEqualtypelistnextStopIteration)r   itseqprotoitorgr`   s         r   check_iter_picklezBuiltinTest.check_iter_pickle   s    LU##\!__ed2hh///b3''' \!__	HHHH 	 	 	FF	LU##\!__b3qrr7+++++s   B$ $
B21B2c           
         t          d           t          d           t          d           t          d           t          dd           |                     t          t           d           |                     t          t           dd	d
d           |                     t          t           d           |                     t          t           dd           |                     t                    5  |                     t          t           dd d ddi dd           d d d            n# 1 swxY w Y   |                     t          t           d           d S )Nsystimestringnamer   )r~   levelspamspamr*            rP   __main__)__package____spec__r2   )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FF)ZAq!<<<*j"555)ZUCCCm,, 	E 	Ek:r.2R\]]%'(!  E E E	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E
 	-z<HHHHHs   2+D))D-0D-c                    |                      t          d          d           |                      t          d          d           |                      t          d          d           |                     t          t          j         dz
            dk               |                      t          d          d           |                      t          d          d           |                      t          d          d           |                     t          t          d           |                      t          d	          d           |                      t          d
          d           |                     t          t                     |                     t          t          d             G d dt                    }|                      t           |                      d           d S )Nr     i.r*           gQ	@gQ	aTFc                       e Zd Zd ZdS )&BuiltinTest.test_abs.<locals>.AbsClassc                     dS )Nr5   r&   s    r   __abs__z.BuiltinTest.test_abs.<locals>.AbsClass.__abs__       rr"   N)r2   r3   r4   r   r5   r"   r   AbsClassr      #            r"   r   r   )ro   abs
assertTruerz   maxsizer   r   object)r   r   s     r   test_abszBuiltinTest.test_abs   s   Q###TD)))UT***S[LN++a/000S3'''TD)))UT***)S#...TA&&&UQ''')S))))S$///	 	 	 	 	v 	 	 	 	XXZZ"-----r"   c                    |                      t          g d          d           |                      t          g d          d           |                     t          t          dt	                      dg           |                     t          t          t                                 |                     t          t          d           |                     t          t                     |                     t          t          g dg            |                      t          g           d           |                      t          dt	                      g          d           d	d
g}|                      t          d |D                       d           g d}|                      t          d |D                       d           d S )Nr   r      T)r   Nr   Fr   r   rF   r   2   <   c              3   "   K   | ]
}|d k    V  dS *   Nr5   .0xs     r   	<genexpr>z'BuiltinTest.test_all.<locals>.<genexpr>   &      //QV//////r"   )r   (   r   c              3   "   K   | ]
}|d k    V  dS r   r5   r   s     r   r   z'BuiltinTest.test_all.<locals>.<genexpr>   r   r"   )ro   allr   rV   rS   r[   r   r   Ss     r   test_allzBuiltinTest.test_all   s   YYY...\\\**E222,a1B1BA-FGGG,_->->???)S"---)S))))S)))R888R$'''a!2!2344e<<<H//Q/////666LL//Q/////77777r"   c                    |                      t          g d          d           |                      t          g d          d           |                     t          t          d t	                      dg           |                     t          t          t                                 |                     t          t          d           |                     t          t                     |                     t          t          g dg            |                      t          g           d           |                      t          dt	                      g          d           g d	}|                      t          d
 |D                       d           g d}|                      t          d |D                       d           d S )N)NNNF)Nr   NTr   rF   r   r*   )r   r      c              3   "   K   | ]
}|d k    V  dS r   r5   r   s     r   r   z'BuiltinTest.test_any.<locals>.<genexpr>   r   r"   )rF      r   c              3   "   K   | ]
}|d k    V  dS r   r5   r   s     r   r   z'BuiltinTest.test_any.<locals>.<genexpr>   r   r"   )ro   anyr   rV   rS   r[   r   r   s     r   test_anyzBuiltinTest.test_any   s   ///00%888___--t444,dO4E4Eq-IJJJ,_->->???)S"---)S))))S)))R888R%(((a!2!2344d;;;LL//Q/////666LL//Q/////77777r"   c                                           t          d          d                                 t          d          d                                 t          d          d                                 t          g           d                                 t          i           d           g }|                    |                                 t          |          d	           i }||d<                         t          |          d
            fd} |d            |d            |d            |d            |d            |d            |d            |d            |d            |d                                 t          d          d           d}                      t          |          d           d S )NrP   ''r   rA   r5   ()[]{}[[...]]
{0: {...}}c                 h                         t          |           t          |                      d S r   )ro   asciirepr)sr   s    r   
_check_uniz*BuiltinTest.test_ascii.<locals>._check_uni   s+    U1XXtAww/////r"   '"z"' z
	 .   u   ῿u   𒿿u   u   u   𝄡z'\U0001d121'u   ' "
	 abcdé𒿿𝄡xxx.z:'\'\x00"\n\r\t abcd\x85\xe9\U00012fff\ud800\U0001d121xxx.')ro   r   r,   )r   r   r   r   s   `   r   
test_asciizBuiltinTest.test_ascii   s   rF+++q3'''rD)))rD)))rD)))	q9---!q<000	0 	0 	0 	0 	0
3
3
5
4
:
6
8
<   
8
8 	|,,o>>>BqM	O 	O 	O 	O 	Or"   c                     t           j         dz
  }|                     t          |t                               |                     | t           j        dz              d S rf   )rz   r   r   
isinstanceintro   r   r   s     r   test_negzBuiltinTest.test_neg  sO    [LN
1c**+++!S[]+++++r"   c                    |                      t          t                               |                     t          d                     |                      t          t                               |                      t          d                      |                     t          t                               d }|                      t          |                      G d d          }|                      t          |                      |            }|                      t          |j                             |                     t          |                     d |_        |                     t          |                     d |_        |                     t          |                     |`|                     t          |                      G d dt                    } |            }|                      t          |                     d |_        |                      t          |                      G d	 d
|          } |            }|                      t          |                     d S )Nr   c                     | |z   S r   r5   r   ys     r   <lambda>z+BuiltinTest.test_callable.<locals>.<lambda>  s
    a!e r"   c                      d S r   r5   r5   r"   r   fz$BuiltinTest.test_callable.<locals>.f        r"   c                       e Zd Zd ZdS )%BuiltinTest.test_callable.<locals>.C1c                     d S r   r5   r&   s    r   methz*BuiltinTest.test_callable.<locals>.C1.meth  r   r"   N)r2   r3   r4   r   r5   r"   r   C1r     s             r"   r   c                     dS Nr   r5   r&   s    r   r   z+BuiltinTest.test_callable.<locals>.<lambda>  s    ! r"   c                       e Zd Zd ZdS )%BuiltinTest.test_callable.<locals>.C2c                     d S r   r5   r&   s    r   __call__z.BuiltinTest.test_callable.<locals>.C2.__call__$  r   r"   N)r2   r3   r4   r   r5   r"   r   C2r   #  s        $$$$$r"   r   c                       e Zd ZdS )%BuiltinTest.test_callable.<locals>.C3Nr2   r3   r4   r5   r"   r   C3r   )            r"   r   )r   callabler%   assertFalse__builtins__r   r   r   )r   r   r   cr   c2r   c3s           r   test_callablezBuiltinTest.test_callable  s<   &&&#'''**+++!3!344555,//000$$$	! 	! 	! 	! 	! 	! 	! 	!%%%BDD(()))!%%% 
!%%%#^
!%%%J!%%%	% 	% 	% 	% 	% 	% 	% 	%RTT%%%%%%RTT%%%%%r"   c                    |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                     t          t          d	           |                      t          t          j                  t          d
                    d          d                     |                     t          t                     |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                     t          t          d           |                     t          t          d            |                     t          t          ft          d!           d S )"N    rQ   A   Aa   r         ÿi   z
\U0010ffffr   zunicode-escape     ￿      𐀀     𐀁    󿿾    󿿿      􀀀     􀀁    􏿾    􏿿i   l        )
ro   rg   r   r   rz   
maxunicoder;   encoder   OverflowErrorr&   s    r   test_chrzBuiltinTest.test_chr-  s2   R#&&&R#&&&R#&&&TF+++*c5111S^,,]11'::<LMM	O 	O 	O)S)))Z,777Z,777Z,777Z,777Z,777Z,777Z,777Z,777Z,777*c2...*c:666=*5sEBBBBBr"   c                 X    |                      t          t          d                      d S )Ncmp)r   hasattrbuiltinsr&   s    r   test_cmpzBuiltinTest.test_cmpC  s'    GHe4445555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           |                     t          t                      |                     t          t           ddd           |                     t          t           dddd           |                     t          t           dddddd
           t          ddd           |                     t
          t           t          d          dd           |                     t          t           t          d          dd           d}d }dd	|j        d	d	fd d!d"g}|D ]^}}g }|	                    t          |d#d|$                     t          j        |          }|	                    t          |d#d|$                     |D ]G}	i }
t          |	|
            |
d                     }|                     |t          |                     Hd S )%Nz	print(1)
rP   exec   ﻿s	   print(1)
pass?)sourcefilenamemodeFtmprA   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                      dS )docNr5   r5   r"   r   r   z#BuiltinTest.test_compile.<locals>.fe  r   r"   r  )r   Tr'  TT)r*   Fr'  FF)r   FNFFz<test>)optimize)compile
memoryviewr   r   r   SyntaxErrorrg   r;   __doc__r,   astparser  ro   tuple)r   bomcodestrr   valuesoptvalexpectedcodeobjstreecodensrvs               r   test_compilezBuiltinTest.test_compileF  sf   b&)))m#R000v&9999UU3VLLLL$V<<<<
7##VV444)W---*g}j)TTT*g}j(TXYYY)Wfc6%cE 	 	C 	C 	C!2v...+wAVDDD*gs7||S%HHH 	y!)Y	B.102 "( 
	6 
	6FXHOOGGXvOOOPPP9W%%DOOGD(FVLLLMMM  6 6T2RWYY  U8__5555	6
	6 
	6r"   c           	          d}g d}t          ||          D ]a\  }}t          |          }t          |d|t          j                  }|                     |j        t          z  t          d| d|            bdS )	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)  r-  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_corov  s    "
 
 
 ")!=!= 	D 	DD+K((F "%"@B B BB
 l :L$Bf$B$BD$B$B   D D D D	D 	Dr"   zsocket.accept is brokenc           	      H   d }d}g d}t                      }	 t          ||          D ]I\  }}t          |          }|                     t          d| d|           5  t          |d|           ddd           n# 1 swxY w Y   t          |d|t          j        	          }|                     |j	        t          z  t          d| d|            t          d
|d}	t          ||	          }
t          j         |
                       |                     |	d         d           t          d
|d}	t          j        t          ||	                     |                     |	d         d           K	 t          j        |           dS # 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                8   K   t          |           D ]}|W V  d S r   ranger/   r.   s     r   arangez8BuiltinTest.test_compile_top_level_await.<locals>.arange  2      1XX   r"   r<  )
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]r?  r@  rA  r  Nr=  r   )asyncior   rP  r   r*   )r   r   r   r   r+  r)  r-  rC  ro   rE  r   rR  r	   runr   set_event_loop_policy)r   rP  rF  rG  policyr  rH  r  rI  globals_async_fs              r   test_compile_top_level_awaitz(BuiltinTest.test_compile_top_level_await  s4   	 	 	 #
 
 
 -..	2%,UL%A%A 3 3!k,,&&#)G6)G)G)G)G ' I I / /FC.../ / / / / / / / / / / / / / / V !#&#AC C C
   |!;\%Cv%C%CT%C%C ! E E E (/Q&II&r844GGII&&&  #222 (/Q&IIDX..///  #2222/32 )&11111G)&1111s1   AF  A>2F >B	F B	C.F F!c                     d }d}g d}t                      }	 t          ||          D ]\  }}t          |          }|                     t          d| d|           5  t          |d|           d d d            n# 1 swxY w Y   |                     t          d| d|           5  t          |d|t          j                  }d d d            n# 1 swxY w Y   	 t          j	        |           d S # t          j	        |           w xY w)	Nc                8   K   t          |           D ]}|W V  d S r   rM  rO  s     r   rP  zFBuiltinTest.test_compile_top_level_await_invalid_cases.<locals>.arange  rQ  r"   r<  )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
            r?  r@  rA  r  r=  )
r   r   r   r   r+  r)  r-  rC  rR  rT  )	r   rP  rF  rG  rU  r  rH  r  rI  s	            r   *test_compile_top_level_await_invalid_casesz6BuiltinTest.test_compile_top_level_await_invalid_cases  s   	 	 	 #
 
 
 -..	2%,UL%A%A C C!k,,&&#)G6)G)G)G)G ' I I / /FC.../ / / / / / / / / / / / / / / &&#)G6)G)G)G)G ' I I C C  !#&#AC C CBC C C C C C C C C C C C C C CC )&11111G)&1111sT   AC7 A=1C7 =B	C7 B	%C7 *CC7 C	C7 C	C7 7Dc                     t          d          }t          |ddt          j                  }i }t	          ||           |                     t           |d                               t                     dS )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  r=  tickerN)r   r)  r-  rC  r  ro   rp   r   )r   r7  rI  globs       r   test_compile_async_generatorz(BuiltinTest.test_compile_async_generator  sv      . / /
 T3c.LMMMRnd8n..//1CDDDDDr"   c                 (   dt           _        t          t           d           |                     t          t                     |                     t          t          t                      d}|                     t          |t          t           d           d S )Nr*   spam*^attribute name must be string, not 'int'$)rz   ra  delattrr   r   assertRaisesRegexr   rB  s     r   test_delattrzBuiltinTest.test_delattr  sn    V)W---)Wc222;y#wQ?????r"   c                    |                      t          t          dd           d}|                     dt                                 |                     dt          t                                G d dt
          j                  } |d          }|                      t          t          |           |                     dt          t                               |                     d	t          t                                G d
 dt                    } |            }|                     dt          |                      G d dt                    } |            }|                     dt          |                      G d dt                    } |            }|                     dt          |                     |                     dt          |                      G d dt                    } |            }| 
                    t          |          g dk                G d dt                    }t           |                      }|                     |t                     | 
                    |g dk                G d dt                    } |            }|                      t          t          |           	 t          # t          $ r?}|                     t          t          |j                            d           Y d }~nd }~ww xY w|                     t#          g                                           t          g                      d S )Nr   r*   	local_varexitc                       e Zd ZdZdS )!BuiltinTest.test_dir.<locals>.Foo   N)r2   r3   r4   __dict__r5   r"   r   Foork    s        HHHr"   rn  r   strip__mro__c                       e Zd Zd ZdS )rk  c                 0    d| _         d| _        d| _        d S )N   rl  rD   )r   r   zr&   s    r   r    z*BuiltinTest.test_dir.<locals>.Foo.__init__  s    r"   N)r2   r3   r4   r    r5   r"   r   rn  z!BuiltinTest.test_dir.<locals>.Foo  s#            r"   r   c                       e Zd Zg ZdS )rk  N)r2   r3   r4   	__slots__r5   r"   r   rn  z!BuiltinTest.test_dir.<locals>.Foo&  s        IIIr"   __repr__c                       e Zd ZddgZd ZdS )rk  	__class__rm  c                     d| _         d S )Nwow)barr&   s    r   r    z*BuiltinTest.test_dir.<locals>.Foo.__init__/  s     r"   N)r2   r3   r4   rv  r    r5   r"   r   rn  z!BuiltinTest.test_dir.<locals>.Foo-  s-        $j1I! ! ! ! !r"   r|  c                       e Zd Zd ZdS )rk  c                 
    g dS )N)kangaroor5   r&   s    r   __dir__z)BuiltinTest.test_dir.<locals>.Foo.__dir__7  s    ++++r"   Nr2   r3   r4   r  r5   r"   r   rn  z!BuiltinTest.test_dir.<locals>.Foo6  s#        , , , , ,r"   )r  r  r  c                       e Zd Zd ZdS )rk  c                     dS )N)br   r   r5   r&   s    r   r  z)BuiltinTest.test_dir.<locals>.Foo.__dir__>  s    &r"   Nr  r5   r"   r   rn  z!BuiltinTest.test_dir.<locals>.Foo=  #        ' ' ' ' 'r"   r   r  r   c                       e Zd Zd ZdS )rk  c                     dS )Nrs  r5   r&   s    r   r  z)BuiltinTest.test_dir.<locals>.Foo.__dir__F      qr"   Nr  r5   r"   r   rn  z!BuiltinTest.test_dir.<locals>.FooE  s#            r"   r   )r   r   dirassertInrz   types
ModuleTyper;   assertNotInr   r   assertIsInstancerq   r+   ro   r%   __traceback__sortedr  )r   rh  rn  r   reses         r   test_dirzBuiltinTest.test_dir  s   )S"b111 	k355))) 	fc#hh'''	 	 	 	 	%" 	 	 	CJJ)S!,,, 	gs3xx(((CHH---	 	 	 	 	& 	 	 	
 CEEc3q66"""	 	 	 	 	& 	 	 	CEEj#a&&)))	! 	! 	! 	! 	!& 	! 	! 	! CEESVV,,,eSVV$$$	, 	, 	, 	, 	,& 	, 	, 	, CEEA"6"6"66777	' 	' 	' 	' 	'& 	' 	' 	' ##%%jjc4(((.///	 	 	 	 	& 	 	 	 CEE)S!,,,	; 	; 	; 	;SQ_!5!566::::::::	; 	

--s2ww77777s   
K 
L5LLc                    |                      t          dd          d           |                      t          dd          d           |                      t          dd          d           |                      t          dd          d           |                      t          t          j         d	z
  d
          t          j        d	z   df           dD ]Z\  }}}t          ||          }|                     |d         |d                    |                     |d	         |d	                    [|                     t          t                     d S )N   rs  )r*      i)r   i)r  r  )r*   r   r*   r  r   ))      
@      ?)      @g      ?)      
r  )      g      ?)r        )r  g      )r  r  )r  g      п)ro   divmodrz   r   assertAlmostEqualr   r   )r   numdenom
exp_resultresults        r   test_divmodzBuiltinTest.test_divmodT  s2   A///Q111B222R'222Q33ck!mQ5GHHH'E 	= 	="C
 C''F""6!9jm<<<""6!9jm<<<<)V,,,,,r"   c                    |                      t          d          d           |                      t          d          d           ddd}ddd}|                      t          d	|          d           |                      t          d	||          d           |                      t          d
||          d           |                      t          d||          d           ddd}ddd}d}|                      t          |dz   ||          d           |                      t          d|          d           |                     t          t                     |                     t          t          d           |                     t          t          |d d         dz               G d d          }|                     t
          t          di  |                       d S )N1+1r   z 1+1
r*   r   r     ,  )r  r   r   r  r   r     au   "å"   år5   c                       e Zd Zd ZdS ) BuiltinTest.test_eval.<locals>.Xc                     t           r   r   r   keys     r   r0   z,BuiltinTest.test_eval.<locals>.X.__getitem__y        r"   Nr2   r3   r4   r0   r5   r"   r   Xr  x  #        ! ! ! ! !r"   r  r   )ro   r   r   r   r+  r   )r   globalsr   r0  r  s        r   	test_evalzBuiltinTest.test_evalf  s   ea(((h+++""%%c7++a000c7F33Q777c7F33S999c7F33S999""%%cDj'6::A>>>h00&999)T***)T2...+tS!Wt^<<<	! 	! 	! 	! 	! 	! 	! 	! 	*dE2qqss;;;;;r"   c                     G d d          } |            }t                      }|                     t          d||          d           |                     t          t          d||           |                     t          d||          t          d                     |                     t          d||          |           |                     t          d	||          |           |                     t          t          d|            G d
 d          } |            }|                     t          t          d||            G d dt                    } |            }|                     t          d||          d           |                     t          t          d||           |                     t          d||          t          d                     |                     t          d||          |           |                     t          d	||          |           t          d||           t          d|t          j	                                G d d          } |            }d|d<   d|d<   d|d<   |                     |d         d            G d d          }	|                     t          t          dt                       |	                       d S )Nc                       e Zd ZdZd Zd ZdS )(BuiltinTest.test_general_eval.<locals>.Mz9Test mapping interface versus possible calls from eval().c                      |dk    rdS t           Nr   r  KeyErrorr  s     r   r0   z4BuiltinTest.test_general_eval.<locals>.M.__getitem__  s    #::2r"   c                      t          d          S Nxyzrq   r&   s    r   keysz-BuiltinTest.test_general_eval.<locals>.M.keys      E{{"r"   N)r2   r3   r4   r,  r0   r  r5   r"   r   Mr    s8        GG  # # # # #r"   r  r   r  r  zdir()r  z	globals()zlocals()c                       e Zd ZdZdS )(BuiltinTest.test_general_eval.<locals>.AzNon-mappingN)r2   r3   r4   r,  r5   r"   r   r   r    s        MDr"   r   c                       e Zd Zd Zd ZdS )(BuiltinTest.test_general_eval.<locals>.Dc                 H    |dk    rdS t                               | |          S r  )dictr0   r  s     r   r0   z4BuiltinTest.test_general_eval.<locals>.D.__getitem__  s&    #::2''c222r"   c                      t          d          S r  r  r&   s    r   r  z-BuiltinTest.test_general_eval.<locals>.D.keys  r  r"   Nr2   r3   r4   r0   r  r5   r"   r   Dr    s2        3 3 3# # # # #r"   r  z[locals() for i in (2,3)]c                   "    e Zd ZdZi Zd Zd ZdS )2BuiltinTest.test_general_eval.<locals>.SpreadSheetz6Sample application showing nested, calculated lookups.c                     || j         |<   d S r   )_cells)r   r  formulas      r   __setitem__z>BuiltinTest.test_general_eval.<locals>.SpreadSheet.__setitem__  s    #*C   r"   c                 R    t          | j        |         t                      |           S r   )r   r  r  r  s     r   r0   z>BuiltinTest.test_general_eval.<locals>.SpreadSheet.__getitem__  s    DK,gii>>>r"   N)r2   r3   r4   r,  r  r  r0   r5   r"   r   SpreadSheetr    s=        DDF+ + +? ? ? ? ?r"   r  5a1za1*6a2za2*7a3   c                       e Zd Zd Zd ZdS )(BuiltinTest.test_general_eval.<locals>.Cc                      t          |          r   r  )r   items     r   r0   z4BuiltinTest.test_general_eval.<locals>.C.__getitem__  s    tnn$r"   c                     dS rf   r5   r&   s    r   r  z-BuiltinTest.test_general_eval.<locals>.C.keys  r  r"   Nr  r5   r"   r   Cr    s2        % % %    r"   r  )
r  ro   r   r   	NameErrorrq   r   r  collectionsUserDict)
r   r  mgr   r  r`   r  ssr  s
             r   test_general_evalzBuiltinTest.test_general_eval}  s#   	# 	# 	# 	# 	# 	# 	# 	# ACCIIc1a"---)T31555gq!,,d5kk:::k1a00!444j!Q//333)T3222	 	 	 	 	 	 	 	 ACC)T31555	# 	# 	# 	# 	# 	# 	# 	# ACCc1a"---)T31555gq!,,d5kk:::k1a00!444j!Q//333 	(!Q///(![-A-C-CDDD	? 	? 	? 	? 	? 	? 	? 	? []]444D3'''	 	 	 	 	 	 	 	
 	)T7GIIqqssCCCCCr"   c                    i }t          d|           d|v r|d= |                     |ddi           t          d|           d|v r|d= |                     |ddi           i }i }t                      5  t          j        ddd	
           t          d||           d d d            n# 1 swxY w Y   d|v r|d= d|v r|d= |                     ||fddiddif           d S )Nzz = 1r   rt  r*   zz = 1+1r   ignorezglobal statementr"  )modulezglobal a; a = 1; b = 2r   r  )r  ro   r   warningsfilterwarnings)r   r  ls      r   	test_execzBuiltinTest.test_exec  sv   WaQ.!S!H%%%YQ.!S!H%%% 	1 	1#H.@%' ' ' ')1a000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 Q.!Q.!!Q3(S!H!566666s   3)B((B,/B,c                     t          ddd          }|                     t          dt          |di i           |                     t
          t          |ddi           d S )Nzprint('Hello World!')rP   r  zname 'print' is not definedr   {   )r)  rd  r  r  r   r   )r   r7  s     r   test_exec_globalszBuiltinTest.test_exec_globals  sr    .F;;y*G#TNB+?	A 	A 	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          }|                     t          |d|i           t          d	d
d          }| 
                    t          dt          |di i           t          |d|i           | 
                    t          dt          |d |            i            |i           }t          ddd          }|                     t          ||           d S )Nc                       e Zd ZdS )>BuiltinTest.test_exec_globals_frozen.<locals>.frozendict_errorNr   r5   r"   r   frozendict_errorr            Dr"   r  c                       e Zd Z fdZdS )8BuiltinTest.test_exec_globals_frozen.<locals>.frozendictc                      d          )Nzfrozendict is readonlyr5   )r   r  valuer  s      r   r  zDBuiltinTest.test_exec_globals_frozen.<locals>.frozendict.__setitem__  s    &&'?@@@r"   N)r2   r3   r4   r  )r  s   r   
frozendictr    s5        A A A A A A Ar"   r  z1__builtins__['superglobal']=2; print(superglobal)testr  r   zclass A: passrP   z__build_class__ not foundzx=1)	Exceptionr  r   r   r  r  rm  r)  r   r  rd  r  )r   r  frozen_builtinsr7  	namespacer  s        @r   test_exec_globals_frozenz$BuiltinTest.test_exec_globals_frozen  s   	 	 	 	 	y 	 	 		A 	A 	A 	A 	A 	A 	A 	A 	A 	A
 lE$455 	7(j)>??OO(j66OJFTZ[[*~&G	I 	I 	I F33y*E#TNB+?	A 	A 	A 	TNO4555y*E#TNJJLL+I	K 	K 	K JrNN	uff--*i	1 	1 	1 	1 	1r"   c           
      @    G d dt                      G fddt                    }t          ddd          }|                     t          | |ddi                     t          d	dd          }|                     t          |d
 |d	di          i           d S )Nc                       e Zd ZdS )@BuiltinTest.test_exec_globals_error_on_get.<locals>.setonlyerrorNr   r5   r"   r   setonlyerrorr    r  r"   r  c                       e Zd Z fdZdS )?BuiltinTest.test_exec_globals_error_on_get.<locals>.setonlydictc                     r   r5   )r   r  r  s     r   r0   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  r7  r  s      @r   test_exec_globals_error_on_getz*BuiltinTest.test_exec_globals_error_on_get  s    	 	 	 	 	9 	 	 		# 	# 	# 	# 	# 	# 	#$ 	# 	# 	#
 |VV44,kk<2C&D&D	F 	F 	F }ff55,d);;q7I+J+JK	M 	M 	M 	M 	Mr"   c           	           G d dt                     }t          ddd          }t          |d |ddi          i           |                     t          dt          |d |            i           d S )	Nc                       e Zd ZdS )?BuiltinTest.test_exec_globals_dict_subclass.<locals>.customdictNr   r5   r"   r   
customdictr    r  r"   r  r  r   r  r   r*   z!name 'superglobal' is not defined)r  r)  r  rd  r  )r   r  r7  s      r   test_exec_globals_dict_subclassz+BuiltinTest.test_exec_globals_dict_subclass  s    	 	 	 	 	 	 	 	 }ff55TNJJq/A$B$BCDDDy*M#TNJJLL+I	K 	K 	K 	K 	Kr"   c                     t           j        }d t           _        	 t          d           n# t          $ r Y nw xY w|t           _        d S # |t           _        w xY w)Nr   )rz   stdoutr  r  )r   
savestdouts     r   test_exec_redirectedz BuiltinTest.test_exec_redirected!  sb    Z

	$IIII 	 	 	D	 $CJJJCJ####s!   * A 
7A 7A Ac                    d }dfd} |            \  }}dt          |j        |j        |j                   |                     d           dt          d          t          d          |j        d         f}t          |j        |j        |           |                     d	           |                     t          t           |j        |j        |           |                     t          t           |j        |j        d            |                     t          t           |j        |j        |j                   t          |          }|                     t          t           |j        |j        |           t          |d<   t          |          }|                     t          t           |j        |j        |           d S )
Nc                      dS )N   r5   r5   r"   r   function_without_closuresz@BuiltinTest.test_exec_closure.<locals>.function_without_closures-  s    5r"   r   c                  <    dddfd} fd}| |fS )Nr   r   r  c                       z  d S r   r5   )r   r  r  s   r   three_freevarszUBuiltinTest.test_exec_closure.<locals>.make_closure_functions.<locals>.three_freevars5  s     1r"   c                       z  z  d S r   r5   )r   r  r   r  s   r   four_freevarszTBuiltinTest.test_exec_closure.<locals>.make_closure_functions.<locals>.four_freevars:  s    
 1Qr"   r5   )r  r!  r   r  r   r  s     @@@r   make_closure_functionsz=BuiltinTest.test_exec_closure.<locals>.make_closure_functions1  sm    AAA      
        "=00r"   )closurer   #   H   r   i	  )r  __code____globals____closure__ro   r
   r   r   rq   r   r/  )r   r  r"  r  r!  
my_closurer  s         @r   test_exec_closurezBuiltinTest.test_exec_closure,  s!   	 	 	 	1 	1 	1 	1 	1  )?(>(@(@% ^$&".	0 	0 	0 	0 	### rllHRLL.2LQ2OP
^$&	  	  	  	  	&&& 	)%.%1	 	 	  	  	  	)#&	 	 	 	 	 	)#&!-	 	 	/ 	/ 	/ *%%
)#&	 	 	  	  	  
1:&&
)#&	 	 	  	  	  	  	 r"   c                 0   |                      t          t          d d                    t          d                     |                      t          t          d ddg dgdd dd	g                    dddgdg           |                      t          t          d
 g d                    g d           |                      t          t          d t          d                              g d           |                      t          t          d t          d                              g d           d }t          |t          d                     |                     t
          t                      G d dt                    }|                     t          t          t          d  |                                 d }|                     t
          t          t          |t          d                               |                      t          t          d d                    ddg           |                      t          t          d d                    ddg           |                     t
          t          t          dd                     d S )Nc                 "    d| cxk    odk    nc S )Nr   rt  r5   )r   s    r   r   z)BuiltinTest.test_filter.<locals>.<lambda>{  s    sa3 r"   zHello Worldelloorldr*   hellor   rP   rD   r   c                     | dk    S r   r5   r   s    r   r   z)BuiltinTest.test_filter.<locals>.<lambda>}  s
    q1u r"   )r*   rD   r   r   )r*   rD   r   rF   )	r*   r   rD         $   1   @   Q   c                     | dz  S )Nr   r5   r0  s    r   r   z)BuiltinTest.test_filter.<locals>.<lambda>  s
    qs r"   )r*   rD   r3  r5  r7  c                     dS rf   r5   )r  s    r   identityz)BuiltinTest.test_filter.<locals>.identity  s    1r"   r  c                       e Zd Zd ZdS )'BuiltinTest.test_filter.<locals>.BadSeqc                      |dk     rdS t           )Nr   r   r  r   indexs     r   r0   z3BuiltinTest.test_filter.<locals>.BadSeq.__getitem__  s    772  r"   Nr  r5   r"   r   BadSeqr<    s#        ! ! ! ! !r"   r@  c                     | S r   r5   r0  s    r   r   z)BuiltinTest.test_filter.<locals>.<lambda>  s    Q r"   c                      d S r   r5   r5   r"   r   badfuncz(BuiltinTest.test_filter.<locals>.badfunc      Dr"   r*   r   r   c                     | dk    S )Nr   r5   r0  s    r   r   z)BuiltinTest.test_filter.<locals>.<lambda>  s
    q!t r"   r*   r   r   r   r   r   )	ro   rq   filterr   r   r   r   r   rN  )r   r:  r@  rC  s       r   test_filterzBuiltinTest.test_filterz  sp   f%>%>NNOOQUV`QaQabbbfTAwQCT1a+PQQRRUVX_bcadfgThiiif__6F6F6FGGHH)))TTTfT72;;7788:[:[:[\\\f]]GBKK@@AACUCUCUVVV	 	 	x$$$)V,,,	! 	! 	! 	! 	!V 	! 	! 	!
 	*dF;;,I,IJJJ	 	 	)T6'588+D+DEEE 	fT62233aV<<<f^^\BBCCaVLLL)T6"f+=+=>>>>>r"   c                     t          t          j        dz             D ]P}t          t          d          }t          t          d          }|                     |t          |          |           Qd S )Nr*   
abcdeabcde)rN  rl   HIGHEST_PROTOCOLrH  rd   rx   rq   )r   rv   f1f2s       r   test_filter_picklezBuiltinTest.test_filter_pickle  sj    62Q677 	8 	8E\22B\22B""2tBxx7777	8 	8r"   c                     d}t          t          t          |                    }t          |          D ]}t          t          |          }~t          j                     d S )Ni@B )rH  boolrN  gccollect)r   	max_itersr.   _s       r   test_filter_dealloczBuiltinTest.test_filter_dealloc  sX     	4y))**y!! 	  	 AtQAA

r"   c                 `   |                      t          t          d          t          j        u            |                     t
          t                     |                     t
          t          t                     d}|                     t
          |t          t          d           |                     t
          |t          t          dd           |                     t          t          t          t          t          j	                             |                     t          t          dd           d S )Nr  rb  r*   ra  u   픞)
r   getattrrz   r  r   r   rd  AttributeErrorrg   r  re  s     r   test_getattrzBuiltinTest.test_getattr  s    X..#*<===)W---)Wc222;y#wQ???y#wQGGG.'3CN8K8KLLL.'1nEEEEEr"   c           	         |                      t          t          d                     |                     t          t                     |                     t          t          t                     d}|                     t          |t          t          d           |                     dt          t          t          t          j                                        G d d          }|                     t          t           |            d            G d d	          }|                     t          t           |            d           d S )
Nr  rb  r*   Fc                       e Zd Zd ZdS )#BuiltinTest.test_hasattr.<locals>.Ac                     t           r   )
SystemExitr   whats     r   __getattr__z/BuiltinTest.test_hasattr.<locals>.A.__getattr__  r  r"   Nr2   r3   r4   rb  r5   r"   r   r   r]    r  r"   r   r  c                       e Zd Zd ZdS )#BuiltinTest.test_hasattr.<locals>.Bc                     t           r   r  r`  s     r   rb  z/BuiltinTest.test_hasattr.<locals>.B.__getattr__  r  r"   Nrc  r5   r"   r   Bre    r  r"   rg  )r   r  rz   r   r   rd  ro   rg   r  r_  r   )r   rB  r   rg  s       r   test_hasattrzBuiltinTest.test_hasattr  s1   X..///)W---)Wc222;y#wQ???S-@-@ A ABBB	! 	! 	! 	! 	! 	! 	! 	! 	*gqqssC888	! 	! 	! 	! 	! 	! 	! 	! 	*gqqssC88888r"   c                 T   t          d            |                     t          d          t          d                     |                     t          d          t          d                     t          d           |                     t          d          t          d                     t          d           d }t          |           |                     t          t           g            |                     t          t           i             G d d          }|                     t	          t           |                                t
                      G d	 d
t
                    }|                     t           |d                    t          d                     d S )Nr*   r  ra  s   spamr   r*   r   r   c                      d S r   r5   r5   r"   r   r   z BuiltinTest.test_hash.<locals>.f  r   r"   c                       e Zd Zd ZdS ) BuiltinTest.test_hash.<locals>.Xc                     ddz  S )Nr   rJ   r5   r&   s    r   __hash__z)BuiltinTest.test_hash.<locals>.X.__hash__  s    #vr"   Nr2   r3   r4   ro  r5   r"   r   r  rm    s#            r"   r  c                       e Zd Zd ZdS ) BuiltinTest.test_hash.<locals>.Zc                     | S r   r5   r&   s    r   ro  z)BuiltinTest.test_hash.<locals>.Z.__hash__      r"   Nrp  r5   r"   r   Zrr    #            r"   ru  r   )hashro   r   r   rp   r   )r   r   r  ru  s       r   	test_hashzBuiltinTest.test_hash  sy   T


a$q''***a$s)),,,VftG}}555YQ)T2...)T2...	 	 	 	 	 	 	 	 	d1133ii#...	 	 	 	 	 	 	 	 	aaeed2hh/////r"   c                     |                      t          d          d           |                      t          d          d           |                     t          t          i            d S )Nr2  0x10iz-0x10)ro   hexr   r   r&   s    r   test_hexzBuiltinTest.test_hex  sX    R&)))S7+++)S"-----r"   c                     t          d            t          d           t          d           t          d           t          d           t          g d           t          dddd           d S )Nr*   r  ra  rj  r   r   )ra  eggsham)idr&   s    r   test_idzBuiltinTest.test_id  sf    
4
1
3
6



9
999
Aq++,,,,,r"   c                    |                      t          t                     |                      t          t          dd           dddgdg}|D ]x}t          |          }|                     t	          |          d           |                     t	          |          d           |                      t
          t          |           yd S )Nr   )rB   2rB   r  12)r   r   iterro   rr   rs   )r   listsr  r.   s       r   	test_iterzBuiltinTest.test_iter  s    )T***)T2r222c3Z. 	6 	6AQAT!WWc***T!WWc***mT15555		6 	6r"   c                 z    G d d          } G d d|          } G d d          } |            } |            } |            }|                      t          ||                     |                      t          ||                     |                      t          ||                      |                      t          ||                      |                      t          d|                      |                     t          t          |d           |                     t          t                     d S )Nc                       e Zd ZdS )&BuiltinTest.test_isinstance.<locals>.CNr   r5   r"   r   r  r    r  r"   r  c                       e Zd ZdS )&BuiltinTest.test_isinstance.<locals>.DNr   r5   r"   r   r  r    r  r"   r  c                       e Zd ZdS )&BuiltinTest.test_isinstance.<locals>.ENr   r5   r"   r   Er    r  r"   r  r   )r   r   r   r   r   r  r  r  r   r`   r  s          r   test_isinstancezBuiltinTest.test_isinstance  sh   	 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	ACCACCACC
1a(()))
1a(()))Jq!,,,---Jq!,,,---Jua000111)ZE:::)Z00000r"   c                 .    G d d          } G d d|          } G d d          } |            } |            } |            }|                      t          ||                     |                      t          ||                     |                      t          ||                      |                     t          t          d|           |                     t          t          |d           |                     t          t                     d S )Nc                       e Zd ZdS )&BuiltinTest.test_issubclass.<locals>.CNr   r5   r"   r   r  r    r  r"   r  c                       e Zd ZdS )&BuiltinTest.test_issubclass.<locals>.DNr   r5   r"   r   r  r    r  r"   r  c                       e Zd ZdS )&BuiltinTest.test_issubclass.<locals>.ENr   r5   r"   r   r  r    r  r"   r  r   )r   
issubclassr   r   r  s          r   test_issubclasszBuiltinTest.test_issubclass  sD   	 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	ACCACCACC
1a(()))
1a(()))Jq!,,,---)Z:::)ZE:::)Z00000r"   c                    |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          g d          d           |                      t          i           d           |                      t          ddd	          d            G d
 d          }|                     t          t           |                        G d d          }|                     t          t           |                        G d d          }|                     t          t           |                        G d d          }|                     t          t           |                        G d d          }|                     t
          t           |                        G d d          }|                     t          t           |                        G d dt                    }|                     t          t           |                       d S )N123r   r5   r   rG  r   r*   r   r  c                       e Zd Zd ZdS )$BuiltinTest.test_len.<locals>.BadSeqc                     t           r   r  r&   s    r   r'   z,BuiltinTest.test_len.<locals>.BadSeq.__len__  r  r"   Nr2   r3   r4   r'   r5   r"   r   r@  r    r  r"   r@  c                       e Zd Zd ZdS )(BuiltinTest.test_len.<locals>.InvalidLenc                     d S r   r5   r&   s    r   r'   z0BuiltinTest.test_len.<locals>.InvalidLen.__len__  s    tr"   Nr  r5   r"   r   
InvalidLenr    rv  r"   r  c                       e Zd Zd ZdS )&BuiltinTest.test_len.<locals>.FloatLenc                     dS )Ng      @r5   r&   s    r   r'   z.BuiltinTest.test_len.<locals>.FloatLen.__len__#      sr"   Nr  r5   r"   r   FloatLenr  "  #            r"   r  c                       e Zd Zd ZdS ))BuiltinTest.test_len.<locals>.NegativeLenc                     dS )Nir5   r&   s    r   r'   z1BuiltinTest.test_len.<locals>.NegativeLen.__len__'  r  r"   Nr  r5   r"   r   NegativeLenr  &  r  r"   r  c                       e Zd Zd ZdS )%BuiltinTest.test_len.<locals>.HugeLenc                      t           j        dz   S rf   rz   r   r&   s    r   r'   z-BuiltinTest.test_len.<locals>.HugeLen.__len__+  s    {Q&r"   Nr  r5   r"   r   HugeLenr  *  r  r"   r  c                       e Zd Zd ZdS )-BuiltinTest.test_len.<locals>.HugeNegativeLenc                 "    t           j         dz
  S )NrF   r  r&   s    r   r'   z5BuiltinTest.test_len.<locals>.HugeNegativeLen.__len__/  s    |B&r"   Nr  r5   r"   r   HugeNegativeLenr  .  r  r"   r  c                       e Zd ZdS ))BuiltinTest.test_len.<locals>.NoLenMethodNr   r5   r"   r   NoLenMethodr  2  r   r"   r  )ro   r%   r   r   r   r  r   )r   r@  r  r  r  r  r  r  s           r   test_lenzBuiltinTest.test_len  s   UQ'''R!$$$\**A...\\\**A...R!$$$!!__--q111	! 	! 	! 	! 	! 	! 	! 	! 	*c6688444	 	 	 	 	 	 	 	 	)S**,,777	 	 	 	 	 	 	 	 	)S((**555	 	 	 	 	 	 	 	 	*c;;==999	' 	' 	' 	' 	' 	' 	' 	' 	-ggii888	' 	' 	' 	' 	' 	' 	' 	' 	*c??+<+<==='''''&''')S++--88888r"   c                    |                      t          t          d t          dd                              g d           	 ddlm n# t          $ r d Y nw xY w|                      t          t          fdd	dgd
dgg                    ddgddgg           |                      t          t          d g dg d                    g d           d }|                      t          t          |g d                    g d           |                      t          t          |g dg d                    g d           |                      t          t          |g dg dg d                    g d           |                      t          t          t          t          d                              g d           d }|                      t          t          |t          d          t          d                              ddg           | 	                    t          t                     | 	                    t          t          d d             G d! d"          }| 	                    t          t          t          d#  |                                 d$ }| 	                    t          t          t          |t          d%                               d S )&Nc                     | | z  S r   r5   r0  s    r   r   z&BuiltinTest.test_map.<locals>.<lambda>7  s
    qs r"   r*   r   )r*   r   rD   r   )sqrtc                 "    t          | d          S )N      ?)powr0  s    r   r  z"BuiltinTest.test_map.<locals>.sqrt=  s    1c{{"r"   c                 >    t          t          |                     S r   )rq   map)r   r  s    r   r   z&BuiltinTest.test_map.<locals>.<lambda>@  s    tCaLL11 r"   r2  r7  rD         @       @g      "@r  c                     | |z   S r   r5   r   s     r   r   z&BuiltinTest.test_map.<locals>.<lambda>D  s
    !A# r"   )r*   r   r   )rD   r*   r   )rF   r   r   c                      d}| D ]}||z   }|S r   r5   )vaccur.   s      r   plusz"BuiltinTest.test_map.<locals>.plusH  s!    D''taxKr"   )r*   r   rs  )r   rD   r   )r  r  rD   )r*   r*   r   )r      rD   rF   )
r   r*   r   rD   r2  r3  r4  r5  r6  r7  c                 2    | |S || S t          | |          S r   )r   r  s     r   Maxz!BuiltinTest.test_map.<locals>.Max\  s$    yyq!99r"   r   r   c                     | S r   r5   r0  s    r   r   z&BuiltinTest.test_map.<locals>.<lambda>g  s    A r"   r   c                       e Zd Zd ZdS )$BuiltinTest.test_map.<locals>.BadSeqc              3      K   t           r   r  r&   s    r   r]   z-BuiltinTest.test_map.<locals>.BadSeq.__iter__i  s        r"   Nr^   r5   r"   r   r@  r  h  s#            r"   r@  c                     | S r   r5   r0  s    r   r   z&BuiltinTest.test_map.<locals>.<lambda>l  s    ! r"   c                     t           r   rU   r0  s    r   rC  z%BuiltinTest.test_map.<locals>.badfuncm  s    r"   r  )ro   rq   r  rN  mathr  r   r   r   r   r   r   rV   )r   r  r  r@  rC  r  s        @r   test_mapzBuiltinTest.test_map5  sP   ]]E!AJJ//00II	
 	
 	
	#!!!!!!! 	# 	# 	## # # # #	# 	1111RGb!W3EFFGG3Z#s$	
 	
 	
 	%%www8899JJ	
 	
 	

	 	 	 	T999%%&&II	
 	
 	
 	T999iii0011OO	
 	
 	
 	T999iii;;<<!!!	
 	
 	
 	S'"++&&''000	
 	
 	
	 	 	 	S'!**gajj1122F	
 	
 	
 	)S))))S++r:::	 	 	 	 	 	 	 	 	*dCVVXX,F,FGGG	 	 	,c'588.D.DEEEEEs   A AAc                     t          t          j        dz             D ]P}t          t          d          }t          t          d          }|                     |t          |          |           Qd S )Nr*   zIs this the real life?)rN  rl   rL  r  rh   rx   rq   )r   rv   m1m2s       r   test_map_picklezBuiltinTest.test_map_pickleq  sl    62Q677 	8 	8EX788BX788B""2tBxx7777	8 	8r"   c                    |                      t          d          d           |                      t          ddd          d           |                      t          d          d           |                      t          g d          d           |                      t          ddd          d           |                      t          ddd          d           |                      t          d	dd          d           |                     t          d
          5  t                       d d d            n# 1 swxY w Y   |                     t          t          d           |                     t
          t          d            G d d          }|                     t
          t           |                       dD ]D}	 t          |t                                 |                     |           5# t          $ r Y Aw xY w|                      t          dt                    d           |                      t          dt                    d           |                      t          ddt                    d           |                      t          dd           d            |                      t          dd           d           |                      t          dd           d           |                      t          ddt                    d           |                      t          ddt                    d           |                      t          dd           d           d t          d          D             }t          d |D                       }|j        }|                      t          ||          t          t          |          |          d                    d S )N1231233r*   r   r   r*   r   r   r*   r   r   r  r  r  z'max expected at least 1 argument, got 0r   r5   c                       e Zd Zd ZdS )$BuiltinTest.test_max.<locals>.BadSeqc                     t           r   r  r>  s     r   r0   z0BuiltinTest.test_max.<locals>.BadSeq.__getitem__  r  r"   Nr  r5   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  rE  defaultr  r  c                 6    g | ]}t          j        d           S r  random	randranger   r.   s     r   
<listcomp>z(BuiltinTest.test_max.<locals>.<listcomp>  #    :::! %%:::r"   rJ   c              3   B   K   | ]}|t          j        d           fV  dS r   Nr  r   elems     r   r   z'BuiltinTest.test_max.<locals>.<genexpr>  2      BBTT6+B//0BBBBBBr"   r  )ro   r   rd  r   r   r   r  r  failr   rN  r  r0   r  reversedr   r@  stmtdatar  r   s         r   test_maxzBuiltinTest.test_maxw  s   X,,,Q1q)))/00!444///00!444Q3---QQ+++S!Q+++##5
 
 	 	 EEE		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	)S"---*c2...	! 	! 	! 	! 	! 	! 	! 	! 	*c6688444	 	  	 D T799%%% 		$    
 	Ts+++Q///U,,,a000Qs+++Q///R...555T4000!444UD1111555R444a888VQC888!<<<V...222::uSzz:::BBTBBBBBTq)))A666r:	< 	< 	< 	< 	<$   D66D:=D:>G00
G=<G=c                    |                      t          d          d           |                      t          ddd          d           |                      t          d          d           |                      t          g d          d           |                      t          ddd          d           |                      t          ddd          d           |                      t          d	dd          d	           |                     t          d
          5  t                       d d d            n# 1 swxY w Y   |                     t          t          d           |                     t
          t          d            G d d          }|                     t
          t           |                       dD ]D}	 t          |t                                 |                     |           5# t          $ r Y Aw xY w|                      t          dt                    d           |                      t          dt                    d           |                      t          ddt                    d           |                      t          dd           d            |                      t          dd           d           |                      t          dd           d           |                      t          ddt                    d           |                      t          ddt                    d           |                      t          dd           d           d t          d          D             }t          d |D                       }|j        }|                      t          ||          t          ||          d                    d S )Nr  rB   r*   r   r   r  r  r  r  z'min expected at least 1 argument, got 0r   r5   c                       e Zd Zd ZdS )$BuiltinTest.test_min.<locals>.BadSeqc                     t           r   r  r>  s     r   r0   z0BuiltinTest.test_min.<locals>.BadSeq.__getitem__  r  r"   Nr  r5   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  rE  r  r  c                 6    g | ]}t          j        d           S r  r  r  s     r   r  z(BuiltinTest.test_min.<locals>.<listcomp>  r  r"   rJ   c              3   B   K   | ]}|t          j        d           fV  dS r  r  r  s     r   r   z'BuiltinTest.test_min.<locals>.<genexpr>  r  r"   r   )ro   minrd  r   r   r   r  r  r  r   rN  r  r0   r  r  s         r   test_minzBuiltinTest.test_min  s   X,,,Q1q)))/00!444///00!444Q3+++QQ+++S!Q---##5
 
 	 	 EEE		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	)S"---*c2...	! 	! 	! 	! 	! 	! 	! 	! 	*c6688444	 	  	 D T799%%% 		$    
 	Ts+++Q///U,,,a000Qs+++Q///R...555T4000!444UD1111555R444a888VQC888!<<<V...222::uSzz:::BBTBBBBBTq)))!,,,Q/	1 	1 	1 	1 	1r  c                 ^   t          t          d                    }|                     t          |          d           |                     t          |          d           |                     t
          t          |           |                     t
          t          |           |                     t          |d          d            G d dt                    }t           |                      }|                     t          |d          d           |                     t
          t          |           d } |            }|                     t          |          d           |                     t
          t          |           |                     t          |d          d           d S )Nr   r   r*   r   c                       e Zd Zd Zd ZdS )#BuiltinTest.test_next.<locals>.Iterc                     | S r   r5   r&   s    r   r]   z,BuiltinTest.test_next.<locals>.Iter.__iter__  rt  r"   c                     t           r   )rs   r&   s    r   __next__z,BuiltinTest.test_next.<locals>.Iter.__next__  s    ##r"   N)r2   r3   r4   r]   r  r5   r"   r   Iterr    s2          $ $ $ $ $r"   r  c               3      K   dV  d S rf   r5   r5   r"   r   genz"BuiltinTest.test_next.<locals>.gen  s      GGGFr"   )r  rN  ro   rr   r   rs   r   )r   rt   r  r
  s       r   	test_nextzBuiltinTest.test_next  s   %((^^b1%%%b1%%%-r222-r222b"r***	$ 	$ 	$ 	$ 	$6 	$ 	$ 	$ $$&&\\b"r***-r222	 	 	 SUUb1%%%-r222b"r*****r"   c                     |                      t          d          d           |                      t          d          d           |                     t          t          d           d S )NrJ   0o144iz-0o144r5   )ro   octr   r   r&   s    r   test_octzBuiltinTest.test_oct  sX    S7+++TH---)S"-----r"   c                    t          t          dd          }|                     t          t                     |5  |                    d           |                    d           |                    d           |                    d           |                    d           |                    d	           d d d            d S # 1 swxY w Y   d S )
Nwutf-8encoding1+1
z+The quick brown fox jumps over the lazy dogz.
z
Dear John
,  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,  YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY)openr   
addCleanupr   r@   r   fps     r   write_testfilezBuiltinTest.write_testfile  s    &#000''' 	  	 HHWHHBCCCHHUOOOHH]###HHYHHY	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   A?CC
C
c                    |                                   t          t          d          }|5  |                     |                    d          d           |                     |                                d           |                     |                    d          d           |                     |                    d          d           |                     |                    d	          d
           |                     |                    d          d           d d d            n# 1 swxY w Y   |                     t          t          d           |                     t          t          d           d S )Nr  r  r   r  z-The quick brown fox jumps over the lazy dog.
DearrJ   z John
r  r    r  za bs   a b)r  r  r   ro   readlinereadr   r   r  s     r   	test_openzBuiltinTest.test_open  sz   &7+++ 	7 	7R[[^^W555R[[]],\]]]R[[^^V444R[[--y999RWWS\\9555RWWT]]I666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	*dH555*dI66666s   C6D//D36D3zutf-8 mode is enabledc                    t          t          j                  }	 dD ]}|t          j        v rt          j        |= |                                  t	          j                    }t          j                    5  t          j        dt                     t          t          d          }d d d            n# 1 swxY w Y   |5  |                     |j        |           d d d            n# 1 swxY w Y   t          j                                         t          j                            |           d S # t          j                                         t          j                            |           w xY w)N)LC_ALLLANGLC_CTYPEr  r  )r  osenvironr  localegetencodingr  catch_warningssimplefilterEncodingWarningr  r   ro   r  clearupdate)r   old_environr  current_locale_encodingr  s        r   test_open_default_encodingz&BuiltinTest.test_open_default_encoding(  s   2:&&	+ 6 ( ("*$$
3!!!&,&8&:&:#(** ' '%h@@@&#&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '  G G  .EFFFG G G G G G G G G G G G G G G JJk***** JJk****sT   AD0 50B1%D0 1B55D0 8B59D0 >C&D0 &C**D0 -C*.D0 0?E/c                     t          t          d          }|5  |                     t          j        |                                                     d d d            d S # 1 swxY w Y   d S )Nr  r  )r  __file__r   r'  get_inheritablefileno)r   fileobjs     r   test_open_non_inheritablez%BuiltinTest.test_open_non_inheritable>  s    x'222 	C 	CR/0@0@AABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs   :A  A$'A$c                 b   |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d	          d
           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d
           |                      t          t          t          j                            t          j                   |                     t          t          d           |                      t          t          d                    d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d           d!           |                      t          d"          d           d S )#NrQ   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  )ro   ra   rg   rz   r  r   r   r&   s    r   test_ordzBuiltinTest.test_ordD  s   S2&&&S2&&&S2&&&Vc***Vc***TB'''TB'''TB'''Ws+++Ws+++S00113>BBB)S"---S]]++X666\**J777\**J777\**J777\**J777\**J777\**J777\**J777\**J777\**J77777r"   c           
         |                      t          dd          d           |                      t          dd          d           |                      t          dd          d           |                      t          dd          d           |                      t          dd          d           |                      t          dd          d           |                      t          dd          d           |                      t          dd          d	           |                      t          d
d          d           |                      t          d
d          d
           |                      t          d
d          d           |                      t          d
d          d           |                     t          dd          d           |                     t          dd          d           |                     t          dd          d           |                     t          dd          d           |                     t          dd          d           |                     t          dd          d           |                     t          dd          d           |                     t          dd          d           |                     t          dd          d           |                     t          dd          d           |                     t          dd          d           |                     t          dd          d           dD ]}dD ]}dD ]}t          |t                    s*t          |t                    st          |t                    r$|                     t          t          |||           e|                     t          |||          d           |                     t          dd          d           |                     t          dd          d           |                      t          dd
d          d           |                     t          t          ddd           |                     t          t                     |                      t          dd           d           |                      t          dd!          d"           |                      t          d#dd$%          d&           t          t          d'          }|                       |d#           d(           t          t          d#           }|                       |d          d(           t          t          d)          }|                       |dd*          d           |                       |d*d+          d           d S ),Nr   r*   r   rF   i   r   r  r      @r  r   r   r   r  r  g      @g      0Ag      Ag       r         )r   r  )rF         $@)r  g     @@g      8@r  r  y              ?gUUUUUU?y      ?LXz?)exp)baserF  r2  r     )rG  rF  mod   )rG  r   )rI  r   )rF  rG  )	ro   r  r  r   floatr   r   r   r   )r   r   r   rt  twopowfifth_powermod10s          r   test_powzBuiltinTest.test_pow_  sK   Qq1%%%Qq1%%%Qq1%%%Qq1%%%Qq1%%%QrD)))QrI...QrN333RA&&&RB'''RA&&&RB'''s2ayy"---s2ayy"---s2ayy"---s2ayy"---s2ayy"---s2bzz5111s2bzz;777s2bzz+<===s3qzz2...s3qzz3///s3qzz2...s3qzz3/// 	C 	CA C C% C CA!!U++ C!!U++C!!U++C )))S!QBBBB..s1a||TBBBBCC 	s2s||R000s2s||-FGGG 	RQ+++*c1a333)S))) 	QA***!+++R000!333R8881%%%A+++cq)))Q,,,$$$q!a(((11---q11111r"   c                 :   |                                   t          t          d          }t          j        }t          j        }	 |t          _        t                      t          _        |                     t                      d           |                     t                      d           |                     t          d          d           |t          _        t          j        	                                 | 
                    t          t                     t                      t          _        t          j        d          t          _        | 
                    t          t          dd           t          j        d	          t          _        |                     t                      d	           t          j                    t          _        | 
                    t          t                     t          `| 
                    t           t          d
           t          `| 
                    t           t          d
           |t          _        |t          _        |	                                 d S # |t          _        |t          _        |	                                 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)r  r  r   rz   stdinr  r=   ro   inputcloser   r   ioStringIOr   EOFErrorrV   )r   r  	savestdinr  s       r   
test_inputzBuiltinTest.test_input  s   &7+++I	Z
	CI"CJUWWe,,,UWW&TUUUU;//=== $CJIOOj%000"CJH--CIiB777$677CIUWW&8999CIh...
lE8<<<	lE8<<<!CI#CJHHJJJJJ "CI#CJHHJJJJs   G:I, ,.Jc                 ,   |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          g           d           |                      t          i           d           g }|                    |           |                      t          |          d	           i }||d<   |                      t          |          d
           d S )NrP   r   r   rA   r5   r   r   r   r   r   )ro   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                    |                      t          d          d           |                      t          t          d                    t                     |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d	          d	           |                      t          d
          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          dd          d           |                      t          t          dd                    t                     |                      t          t          dd                    t                     |                      t          t          dd                    t                     |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d           d           |                      t          d          d           |                      t          d!          d!           |                      t          d"          d"           |                      t          t          d                    t                     |                      t          t          d"d                    t                     |                      t          t          d"d                    t                     |                      t          t          d"d                    t                     |                      t          dd#          d           |                     t          t                      G d$ d%          } G d& d'          }|                      t           |                      d(           |                     t          t          dd)d*           |                     t          t           |                        |            }d+ |_        |                     t          t          |           |                     t          t          |d           d S ),Nr   r  rE  g    eAg@xDr  g      $g    eg@xg?g?g333333$@g eAgg333333$g eg?g#@g33dAgg#g33drD  r  r   r*   g      @r   g      @g      ig      rl  rC  )numberndigitsc                       e Zd Zd ZdS ))BuiltinTest.test_round.<locals>.TestRoundc                     dS )N   r5   r&   s    r   	__round__z3BuiltinTest.test_round.<locals>.TestRound.__round__	  r   r"   N)r2   r3   r4   rc  r5   r"   r   	TestRoundr`    r   r"   rd  c                       e Zd ZdS )+BuiltinTest.test_round.<locals>.TestNoRoundNr   r5   r"   r   TestNoRoundrf    r  r"   rg  rb  r   r   c                      | S r   r5   )argss    r   r   z(BuiltinTest.test_round.<locals>.<lambda>  s    D r"   )ro   roundrp   r   rK  r   r   rc  )r   rd  rg  ts       r   
test_roundzBuiltinTest.test_round  s   sS)))eCjj))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00eD"oo..666eD!nn--u555eD!nn--u555 	sQ'''sQ'''tb)))tb))) 	q1%%%q1%%%rB'''eAhh---eBmm,,c222eBll++S111eBll++S111 	dB777???)U+++	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	yy{{++R000)UAq!444)UKKMM:::KMM(()UA...)UAq11111r"   Linuxalpha7y1CzItest will fail;  failure is probably due to a buggy system round functionc                 d   |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           d S )Ng7y1Cg 7y1Cro  g7y1Cg7y1C)ro   rj  r&   s    r   test_round_largezBuiltinTest.test_round_large#  s    
 	v///td+++v///v///v/////r"   c           	      Z   ddt          j        d          t          j        dd          fD ]~}|                     t          |d           t          |                     |                     t          t          |d                     t          t          |                               d S )Nr   g
ףp=J@z1234.56i@ rJ   )decimalDecimal	fractionsFractionro   rj  rp   r   s     r   test_bug_27936zBuiltinTest.test_bug_27936.  s    /),,$VS113 	C 	CA U1d^^U1XX666T%4..114a>>BBBB	C 	Cr"   c                    t          t          dd           |                     t          j        d           |                     t
          t                      |                     t
          t           t                     |                     t
          t           t          d           d}|                     t
          |t           t          dd           d S )Nra  r*   rb  )setattrrz   ro   ra  r   r   rd  re  s     r   test_setattrzBuiltinTest.test_setattr7  s    VQ1%%%)W---)Wc222)Wc6:::;y#wQGGGGGr"   c                    |                      t          g           d           |                      t          t          t          dd                              d           |                      t          t	          t          t          dd                                        d           |                      t          t          d                    d           |                      t          t	          t          d                              d           |                      t          dgdgdggg           g d	           |                      t          t          d          d
          d           |                      t          t          d          d
          d           |                      t          t          d          d          d           |                      t          t          d          d          d           |                      t          d t          d          D                       d           |                      t          d t          d          D             d          d           |                      t          d t          d          D             d          d           |                     t          g d          d           |                      t          d t          d          D                       d           |                      t          d t          d          D             d
          d           |                      t          d t          d          D             d          d            |                      t          d!dg          d"           |                      t          dd!g          d"           |                      t          t          d#g                    d$           |                      t          t          d#gd#                    d%           |                      t          t          g d#                    d%           |                     t          t                     |                     t          t          d&           |                     t          t          g d'           |                     t          t          g d'd(           |                     t          t          d)d*gd+           t          d)          t          d,          g}|                     t          t          |t          d+                     |                     t          t          dgdgdgg           |                     t          t          ddig           |                     t          t          ddigdz  ddi           |                     t          t          g d(           |                     t          t          g d+           |                     t          t          g t                                  G d- d.          }|                     t          t           |                       g }t          d/ t          d          D             |           |                      |g            d S )0Nr   r   rl     rF   i  r*   r   r*   r   r   r  i  )startil   (    l    l   (        c              3   (   K   | ]}|d z  dk    V  dS r   r   Nr5   r  s     r   r   z'BuiltinTest.test_sum.<locals>.<genexpr>O  s*      ;;AQUaZ;;;;;;r"   r  c              3   (   K   | ]}|d z  dk    V  dS r  r5   r  s     r   r   z'BuiltinTest.test_sum.<locals>.<genexpr>P  *      <<Qa!eqj<<<<<<r"   il       c              3   (   K   | ]}|d z  dk    V  dS r  r5   r  s     r   r   z'BuiltinTest.test_sum.<locals>.<genexpr>R  r  r"   l    l           Fc              3       K   | ]	}|d z  V  
dS r   Nr5   r  s     r   r   z'BuiltinTest.test_sum.<locals>.<genexpr>V  s&      66qQU666666r"   g     6@c              3       K   | ]	}|d z  V  
dS r  r5   r  s     r   r   z'BuiltinTest.test_sum.<locals>.<genexpr>W  &      77a!e777777r"   g     @c              3       K   | ]	}|d z  V  
dS r  r5   r  s     r   r   z'BuiltinTest.test_sum.<locals>.<genexpr>X  r  r"   g     B@g     @r  g      ?g       z0.0z-0.0r   r  rP   r     cr"      bc                       e Zd Zd ZdS )$BuiltinTest.test_sum.<locals>.BadSeqc                     t           r   r  r>  s     r   r0   z0BuiltinTest.test_sum.<locals>.BadSeq.__getitem__n  r  r"   Nr  r5   r"   r   r@  r  m  r  r"   r@  c              3      K   | ]}|gV  d S r   r5   r   s     r   r   z'BuiltinTest.test_sum.<locals>.<genexpr>s  s$      $$QaS$$$$$$r"   )ro   sumrq   rN  r  r   assertIsr   r   r   	bytearrayr   )r   r2  r@  emptys       r   test_sumzBuiltinTest.test_sumB  s   R!$$$T%!**--..333T$uQqzz"2"23344b999WR[[))3///T'"++..//555qcA3_b11999===U2YY--t444U2YYd333T:::U2YY00(;;;U2YY00(;;;;;r;;;;;Q???<<%))<<<gFF 	" 	" 	"<<%))<<<gFF 	" 	" 	"c"enne,,,66E"II66666===77U2YY777>>GGG77U2YY777AA7KKKc1X,,,aX,,,c4&kk**E222c4&$//00&999c"dmm,,f555)S))))S"---)S///:::)S///2>>>)S4,<<<D//9T??3)S&)C..AAA)SA3aS/:::)SAa5'222)SAa5'!)aU;;;)S"b111)S"c222)S"ikk:::	! 	! 	! 	! 	! 	! 	! 	! 	*c6688444$$%))$$$e,,,#####r"   c                     |                      t          d          t          d                     |                     t          d          t          d                     d S )NrP   r  r5   )ro   rp   rD  r&   s    r   	test_typezBuiltinTest.test_typev  sL    bDKK000DHHd2hh/////r"   c                      t                      S r   )varsr5   r"   r   get_vars_f0zBuiltinTest.get_vars_f0|  s    vvr"   c                  X    t                                            d} d}t                      S )Nr*   r   )rj   r  r  r  s     r   get_vars_f2zBuiltinTest.get_vars_f2  s'    !!!vvr"   c                   ,    e Zd Zd Z ee          ZdS )BuiltinTest.C_get_varsc                 
    ddiS )Nr   r   r5   r&   s    r   getDictzBuiltinTest.C_get_vars.getDict  s    7Nr"   )fgetN)r2   r3   r4   r  propertyrm  r5   r"   r   
C_get_varsr    s/        	 	 	8)))r"   r  c                    |                      t          t                                t          t                                           |                      t          t          t                              t          t          t                                         |                      |                                 i            |                      |                                 ddd           |                     t          t          dd           |                     t          t          d           |                      t          | 	                                          ddi           d S )Nr*   r   r  r   r   )
ro   setr  r  rz   r  r  r   r   r  r&   s    r   	test_varszBuiltinTest.test_vars  s
   TVVc#%%jj111T#YYSXX777))++R000))++11-=-=>>>)T2r222)T2...doo//003q':::::r"   c                     g }|                      |          5  |D ]}|                    |           	 ddd           n# 1 swxY w Y   |S )z=Collect `iterable` into a list, catching an expected `error`.N)r   r,   )r   iterableerroritemsr  s        r   
iter_errorzBuiltinTest.iter_error  s    u%% 	# 	#  # #T""""#	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# s   A  AAc           
         d}d}g d}|                      t          t          ||                    |           g d}|                      t          t          ||                    |           d}|                      t          t          ||                    |            G d d          }|                      t          t          | |                                |           |                      t          t                                g            |                      t          t          g            g            |                     t          t          d             G d d          }|                     t          t          | |                       |                     t
          t          |t                                  G d	 d
          }|                      t          t           |            t          d                              t          t          t          d                                          G d d          }|                     t          t          t           |             |                                 d S )Nr}  r   r  r   )r*   r   )r   r  )r   r   r   r  r   rs  c                       e Zd Zd ZdS )BuiltinTest.test_zip.<locals>.Ic                 2    |dk     s|dk    rt           |dz   S )Nr   r   r   r+   r   r.   s     r   r0   z+BuiltinTest.test_zip.<locals>.I.__getitem__  s!    q55AEE#31ur"   Nr  r5   r"   r   Ir    s#            r"   r  c                       e Zd ZdS )BuiltinTest.test_zip.<locals>.GNr   r5   r"   r   Gr    r  r"   r  c                       e Zd Zd ZdS )4BuiltinTest.test_zip.<locals>.SequenceWithoutALengthc                      |dk    rt           |S Nr  r  r  s     r   r0   z@BuiltinTest.test_zip.<locals>.SequenceWithoutALength.__getitem__      66$$Hr"   Nr  r5   r"   r   SequenceWithoutALengthr    #            r"   r  rB  r  c                       e Zd Zd ZdS )$BuiltinTest.test_zip.<locals>.BadSeqc                      |dk    rt           |S r  r  r  s     r   r0   z0BuiltinTest.test_zip.<locals>.BadSeq.__getitem__  r  r"   Nr  r5   r"   r   r@  r    r  r"   r@  )
ro   rq   zipr   r   rV   r[   rN  	enumerater   )r   r   r  rk  r  r  r  r@  s           r   test_zipzBuiltinTest.test_zip  s   $$$c!Qii!,,,IIc!Qii!,,,c!Qii!,,,	 	 	 	 	 	 	 	 	c!QQSSkk**A...ceeb)))c2h,,,)S$///	 	 	 	 	 	 	 	)S!QQSS111,Q0A0ABBB
	 	 	 	 	 	 	 	 	++--uU||<<==588$$%%	
 	
 	

	 	 	 	 	 	 	 	 	*dC&&((,C,CDDDDDr"   c                     d}d}g d}t          t          j        dz             D ])}t          ||          }|                     |||           *d S )Nr}  r  r  r*   rN  rl   rL  r  rx   r   r   r  rk  rv   z1s         r   test_zip_picklezBuiltinTest.test_zip_pickle  sh    $$$62Q677 	1 	1EQB""2q%0000	1 	1r"   c                     d}d}g d}t          t          j        dz             D ]+}t          ||d          }|                     |||           ,d S )Nr}  r  r  r*   Tstrictr  r  s         r   test_zip_pickle_strictz"BuiltinTest.test_zip_pickle_strict  so    $$$62Q677 	1 	1EQ$'''B""2q%0000	1 	1r"   c                    d}d}g d}t          t          j        dz             D ]}t          ||d          }t          j        t          j        ||                    }|                     |                     |t                    |           |                     |                     |t                    |           d S )Nr}  r  r  r*   Tr  )	rN  rl   rL  r  rn   rm   ro   r  r   )r   r   r  rk  rv   r  z2s          r   test_zip_pickle_strict_failz'BuiltinTest.test_zip_pickle_strict_fail  s    $$$62Q677 	A 	AEQ$'''Bfl2u5566BT__R<<a@@@T__R<<a@@@@		A 	Ar"   c                 
   t                       G fdd          }|                     t                     5 }t           |                       d d d            n# 1 swxY w Y   |                     |j                   d S )Nc                       e Zd Z fdZdS )6BuiltinTest.test_zip_bad_iterable.<locals>.BadIterablec                     r   r5   )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  s    KK		  	  	  	  	  	  	  	  	  	  y)) 	R	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	blI.....s   AA!$A!c           
         |                      t          t          ddd                    d           |                     t          t          t          ddd                     |                     t          t          t          ddd                     |                     t          t          t          dddd                     d S )Nr}  abcTr  ))r*   r   )r   r  )r   r   rG  rE  )ro   r/  r  r   r   r&   s    r   test_zip_strictzBuiltinTest.test_zip_strict  s    s9eDAAABB7	9 	9 	9*elE$???	A 	A 	A*efeD999	; 	; 	;*effeDAAA	C 	C 	C 	C 	Cr"   c           
      l   t          t          d                    }dg}t          t          d                    }|                     t          t          t          |||d                     |                     t          |          d           |                     t          |          d           d S )Nr  r   Tr  r   r*   )r  rN  r   r   rq   r  ro   rr   )r   r   r   rt  s       r   test_zip_strict_iteratorsz%BuiltinTest.test_zip_strict_iterators  s    qNNCqNN*dq!Qt444	7 	7 	7a!$$$a!$$$$$r"   c                   
  G d dt                     
 G 
fdd          }|                     t          d |d          d          
          }|                     |d	g           |                     t          d |d
          dd          t                    }|                     |dg           |                     t          d |d
          dd          
          }|                     |ddg           |                     t          d |d          d          t                    }|                     |ddg           |                     t           |d          dd          
          }|                     |dg           |                     t           |d
          dd          t                    }|                     |dg           |                     t           |d
          dd          
          }|                     |ddg           |                     t           |d          dd          t                    }	|                     |	ddg           d S )Nc                       e Zd ZdS )9BuiltinTest.test_zip_strict_error_handling.<locals>.ErrorNr   r5   r"   r   Errorr    r  r"   r  c                   &    e Zd Zd Zd Z fdZdS )8BuiltinTest.test_zip_strict_error_handling.<locals>.Iterc                     || _         d S r   sizer   r  s     r   r    zABuiltinTest.test_zip_strict_error_handling.<locals>.Iter.__init__       			r"   c                     | S r   r5   r&   s    r   r]   zABuiltinTest.test_zip_strict_error_handling.<locals>.Iter.__iter__
  rt  r"   c                 L    | 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__  s*    		Q		9q==Ky r"   Nr2   r3   r4   r    r]   r  )r  s   r   r  r    sL        ! ! !  ! ! ! ! ! ! !r"   r  ABr*   Tr  r   r   r   r   r   r*   r   ABCrg  r   rg  r   r   r   rg  r*   r   r   r*   r   r   rg  r   r   r*   rg  )r  r  r  ro   r   )r   r  l1l2l3l4l5l6l7l8r  s             @r   test_zip_strict_error_handlingz*BuiltinTest.test_zip_strict_error_handling  s   	 	 	 	 	I 	 	 			! 		! 		! 		! 		! 		! 		! 		! 		! 		! __SttAwwt<<<eDDhZ(((__SttAwwDAAA:NNm_---__SttAwwdCCCUKKm];<<<__SttAwwt<<<jIIh1222__Sa$t<<<eDDhZ(((__Sa#d;;;ZHHhZ(((__Sa%===uEEh1222__Sa$t<<<jIIh122222r"   c                     G d d          }|                      t          d |d          d          t                    }|                     |dg           |                      t          d |d          d	d          t                    }|                     |d
g           |                      t          d |d          dd          t                    }|                     |d
dg           |                      t          d |d          d          t                    }|                     |ddg           |                      t           |d          dd          t                    }|                     |dg           |                      t           |d          d	d          t                    }|                     |dg           |                      t           |d          dd          t                    }|                     |ddg           |                      t           |d          dd          t                    }	|                     |	ddg           d S )Nc                        e Zd Zd Zd Zd ZdS )FBuiltinTest.test_zip_strict_error_handling_stopiteration.<locals>.Iterc                     || _         d S r   r  r  s     r   r    zOBuiltinTest.test_zip_strict_error_handling_stopiteration.<locals>.Iter.__init__&  r  r"   c                     | S r   r5   r&   s    r   r]   zOBuiltinTest.test_zip_strict_error_handling_stopiteration.<locals>.Iter.__iter__(  rt  r"   c                 T    | xj         dz  c_         | j         dk     rt          | j         S r  )r  rs   r&   s    r   r  zOBuiltinTest.test_zip_strict_error_handling_stopiteration.<locals>.Iter.__next__*  s*    		Q		9q==''y r"   Nr  r5   r"   r   r  r  %  sA        ! ! !  ! ! ! ! !r"   r  r  r*   Tr  r  r   r   r  r  r  r   r  r  r  r  r  r  r  )r  r  r   ro   )
r   r  r  r  r  r  r  r  r  r  s
             r   ,test_zip_strict_error_handling_stopiterationz8BuiltinTest.test_zip_strict_error_handling_stopiteration#  sR   		! 		! 		! 		! 		! 		! 		! 		! __SttAwwt<<<jIIhZ(((__SttAwwDAAA:NNm_---__SttAwwdCCCZPPm];<<<__SttAwwt<<<jIIh1222__Sa$t<<<jIIhZ(((__Sa#d;;;ZHHhZ(((__Sa%===zJJh1222__Sa$t<<<jIIh122222r"   c                     t          g g          }t          j                     |                     t          j        t          |                               d S r   )r  rR  rS  r   
is_trackedrr   )r   rt   s     r   test_zip_result_gczBuiltinTest.test_zip_result_gcA  sF    
 "YY

 	d2hh//00000r"   c                                           t          dd          d           d } fd} | |               fd} |d            |d            |d	            |d
            |d            |d            |t                      |d             G d d          }                     t          t           |            d                                t          t          t                      d                                t          t          t                      t                                 t                                          d          }                     |                    d                                          t          t                      j        d                                t          t                      j        t                                                      t          t                      j        d             G d d          }                      t           |                      d                                 t           |            d          d                                 t           |            d          d            G d d          } G d dt                    }t          ||fD ]}	 |	            }
                      t          |
          t          |
                                           t          |
d          t          |
                      	                    t          dt          j        |	j                  z            5  t          |
d           d d d            n# 1 swxY w Y    G d dt                    }                      t          d |d                    d           d S )Nr   rP   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dS )7BuiltinTest.test_format.<locals>.classes_new.<locals>.Ac                     || _         d S r   r0  r   s     r   r    z@BuiltinTest.test_format.<locals>.classes_new.<locals>.A.__init__V      DFFFr"   c                 0    t          | j                  |z   S r   r;   r   r   format_specs     r   
__format__zBBuiltinTest.test_format.<locals>.classes_new.<locals>.A.__format__X      tv;;44r"   Nr2   r3   r4   r    r  r5   r"   r   r   r  U  2          5 5 5 5 5r"   r   c                       e Zd ZdS )BBuiltinTest.test_format.<locals>.classes_new.<locals>.DerivedFromANr   r5   r"   r   DerivedFromAr  Z  s        r"   r  c                       e Zd ZdS )<BuiltinTest.test_format.<locals>.classes_new.<locals>.SimpleNr   r5   r"   r   Simpler  ]  r   r"   r  c                       e Zd Zd Zd ZdS )GBuiltinTest.test_format.<locals>.classes_new.<locals>.DerivedFromSimplec                     || _         d S r   r0  r   s     r   r    zPBuiltinTest.test_format.<locals>.classes_new.<locals>.DerivedFromSimple.__init___  r  r"   c                 0    t          | j                  |z   S r   r  r  s     r   r  zRBuiltinTest.test_format.<locals>.classes_new.<locals>.DerivedFromSimple.__format__a  r  r"   Nr  r5   r"   r   DerivedFromSimpler   ^  r  r"   r#  c                       e Zd ZdS )HBuiltinTest.test_format.<locals>.classes_new.<locals>.DerivedFromSimple2Nr   r5   r"   r   DerivedFromSimple2r%  c  r   r"   r&  )r   )r   r  r  r#  r&  s        r   classes_newz,BuiltinTest.test_format.<locals>.classes_newT  s    5 5 5 5 5F 5 5 5
    q    '&&&&&&&5 5 5 5 5F 5 5 5
 >====%6===l$57IIIr"   c                 p                        t           | d          d          d                                t           |d          d          d                                t           |d          d          d                                t           |d	          d
          d           d S )Nr   spec3specr   4specr  r  5abcrF   abcdef10abcdef)ro   format)r   r  r#  r&  r   s       r   
class_testz+BuiltinTest.test_format.<locals>.class_testf  s    VAAaDD&117;;;VLLOOV<<gFFFV$5$5a$8$8%@@&IIIV$6$6r$:$:HEE') ) ) ) )r"   c                                          t          | d          t          |                                           t          |           t          |                      d S NrP   )ro   r/  r;   )r  r   s    r   empty_format_specz2BuiltinTest.test_format.<locals>.empty_format_speco  sS     VE2..E

;;;VE]]CJJ77777r"   l   .@r  g]]^Ug]]^g;q7r*g;q7rc                       e Zd Zd ZdS )0BuiltinTest.test_format.<locals>.BadFormatResultc                     dS )Nr  r5   r  s     r   r  z;BuiltinTest.test_format.<locals>.BadFormatResult.__format__  r  r"   Nr2   r3   r4   r  r5   r"   r   BadFormatResultr5    r  r"   r8  r   z<object object atc                       e Zd Zd ZdS )"BuiltinTest.test_format.<locals>.Ac                 "    t          d|          S r2  )r/  )r   fmt_strs     r   r  z-BuiltinTest.test_format.<locals>.A.__format__  s    b'***r"   Nr7  r5   r"   r   r   r:    s#        + + + + +r"   r   r   c                       e Zd ZdS )"BuiltinTest.test_format.<locals>.BNr   r5   r"   r   rg  r>    r  r"   rg  c                       e Zd ZdS )"BuiltinTest.test_format.<locals>.CNr   r5   r"   r   r  r@    r  r"   r  z\b%s\bc                       e Zd ZdS )/BuiltinTest.test_format.<locals>.DerivedFromStrNr   r5   r"   r   DerivedFromStrrB    r   r"   rC  r   rE   z
         0)ro   r/  r   r   r   r  r   
startswithr;   rd  reescaper2   )r   r'  r0  r3  r8  r   r   rg  r  clsobjrC  s   `           r   test_formatzBuiltinTest.test_formatM  s_    	2,,,	J 	J 	J$	) 	) 	) 	) 	) 	
KKMM""	8 	8 	8 	8 	8 	&!!!#*%%%+&&&+&&&,'''&!!!$	 	 	 	 	 	 	 	 	)V__->->CCC 	)VVXXq999)VVXXvxx@@@ HH##%899::: 	)VXX%8!<<<)VXX%8&((CCC)VXX%8$???
	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	b)))R"---S))2...	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 Aq> 	! 	!C#%%CVC[[#c((333VC__c#hh777''	(1BIcl4K4K(KM M ! !sC   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 	(''''S'''>>$#7#788,GGGGGs   4NN	N	c                    |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          ddz            d	           |                      t          ddz  dz
            d
           |                      t          ddz             d           |                      t          ddz  dz
             d           d S )Nr   0b0r*   0b1r  z-0b1r   r   D0b100000000000000000000000000000000000000000000000000000000000000000C0b11111111111111111111111111111111111111111111111111111111111111111zE-0b100000000000000000000000000000000000000000000000000000000000000000zD-0b11111111111111111111111111111111111111111111111111111111111111111)ro   binr&   s    r   test_binzBuiltinTest.test_bin  s    Q'''Q'''R&)))QU%5666QU1W777q"uX(9:::q"uQwZ*:;;;;;r"   c                     t          d          }|                     t          |j        dd           |                     t          |j        dd           d S )Ns   abc   1r*   s   1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111)r  r   r   	translater   r   s     r   test_bytearray_translatez$BuiltinTest.test_bytearray_translate  sM    f*ak4;;;)Q[(A>>>>>r"   c                     t                      }t          t          d          }|                     t          |j        |           d S )Nr  )r  r  r   r   r   extend)r   arraybad_iters      r   test_bytearray_extend_errorz'BuiltinTest.test_bytearray_extend_error  s8    sC==*elH=====r"   c                     d t           t          fD ]j}t          |          }|                      |            |           |                     t
          |dd           |                     t
          |dd           kd S )Nr*   r   r  )EllipsisNotImplementedrp   r  r   r   )r   consttps      r   test_construct_singletonsz%BuiltinTest.test_construct_singletons  s    8^3 	7 	7EeBMM""$$&&&iQ222iqA6666		7 	7r"   c                    |                      t          t          t                     |                      t                    5  |                     t                     d d d            n# 1 swxY w Y   |                      t                    5  |                     t                      d d d            d S # 1 swxY w Y   d S r   )r   DeprecationWarningrQ  r\  r   r   r&   s    r   test_warning_notimplementedz'BuiltinTest.test_warning_notimplemented  s)    	+T>BBB011 	, 	,OON+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,011 	1 	1/000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s$   A((A,/A,B66B:=B:N)fr2   r3   r4   rx   r   r   r   r   r   r   r   r  r  r:  rJ  unittestskipIfr   is_emscriptenis_wasirX  r[  r_  rf  r  r  r  r  r  r  r  r  r  r  r*  rI  rO  rV  rZ  rh  rx  r|  r  r  r  r  r  r  r  r  r  r  r  r  r"  rz   r>  	utf8_moder2  requires_subprocessr8  r@  rO  rY  r[  rl  platformsystemrD  machinelinux_alpharj  system_round_bugrq  rw  rz  r  r  staticmethodr  r  r   r  r  r  r  r  r  r  r  r  r  r   r  cpython_onlyr
  rI  rP  rT  rY  r_  rb  r5   r"   r   rj   rj      sE       , , ,"I I I$. . ..8 8 88 8 8!O !O !OF, , ,
 &  &  &DC C C,6 6 6.6 .6 .6`D D D* X_0! 82 82	 82t#2 #2 #2LE E E @ @ @K8 K8 K8Z- - -$< < <.CD CD CDJ7 7 70= = =1 1 1@M M M&	K 	K 	K	$ 	$ 	$K  K  K \? ? ?28 8 8  	F 	F 	F9 9 9&0 0 0*. . .
- - -6 6 61 1 1$1 1 1" 9  9  9D:F :F :Fx8 8 89< 9< 9<v91 91 91v+ + +6. . .

  
  
 7 7 7 X_SY(*ABB+ + CB+* !W ""C C #"C
8 8 86<2 <2 <2|! ! !J0 0 0H2 H2 H2b #8?$$//88 :#8#%%0099 uV}}.X_[5%534 40 04 40C C CH H H2$ 2$ 2$h0 0 0   \   \* * * * *V * * *
; ; ;  *E *E *EX1 1 11 1 1A A A
/ 
/ 
/C C C% % %3 3 3B3 3 3< 	1 	1 	1cH cH cHJ< < <? ? ?
> > >
7 7 71 1 1 1 1r"   rj   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S )TestBreakpointc                 @   t                      | _        |                     | j        j                   | j                            t                                | _        | j        d= | j                            t          t          dt          j	                             d S )NPYTHONBREAKPOINTbreakpointhook)
r   	resourcesr  rT  enter_contextr   envr   rz   __breakpointhook__r&   s    r   setUpzTestBreakpoint.setUp  s     #,--->//0C0E0EFFH'($$c+S-CDD	F 	F 	F 	F 	Fr"   c                     t          d          5 }t                       d d d            n# 1 swxY w Y   |                                 d S Npdb.set_trace)r   
breakpointassert_called_oncer   mocks     r   test_breakpointzTestBreakpoint.test_breakpoint  s    ?## 	tLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	!!!!!s   +//c                 ~    t                      }|t          _        t                       |                                 d S r   r   rz   rt  r}  assert_called_once_withr   my_breakpointhooks     r   'test_breakpoint_with_breakpointhook_setz6TestBreakpoint.test_breakpoint_with_breakpointhook_set  s5    %KK.1133333r"   c                 d   t                      }|t          _        t                       |                                 t          j        t          _        t          d          5 }t                       |                                 d d d            n# 1 swxY w Y   |                                 d S r{  )r   rz   rt  r}  r  rx  r   )r   r  r  s      r   )test_breakpoint_with_breakpointhook_resetz8TestBreakpoint.test_breakpoint_with_breakpointhook_reset  s    %KK.11333 3?## 	+tLLL((***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	1133333s   "#BBBc                     t                      }|t          _        t          ddddd           |                    ddddd           d S )Nr*   r   r   r   r  fourfiver  r  s     r   &test_breakpoint_with_args_and_keywordsz5TestBreakpoint.test_breakpoint_with_args_and_keywords  sR    %KK.1a++++11!Q1JJJJJr"   c           	      p    d }|t           _        |                     t          t          ddddd           d S )Nc                      d S r   r5   r5   r"   r   r  zMTestBreakpoint.test_breakpoint_with_passthru_error.<locals>.my_breakpointhook  rD  r"   r*   r   r   r   r  r  )rz   rt  r   r   r}  r  s     r   #test_breakpoint_with_passthru_errorz2TestBreakpoint.test_breakpoint_with_passthru_error  sB    	 	 	.)ZAqqqIIIIIr"   z-E was givenc                     d| j         d<   t          d          5 }t          d           |                    d           d d d            d S # 1 swxY w Y   d S )Nr   rs  zbuiltins.int7rw  r   r}  r  r  s     r   test_envar_good_path_builtinz+TestBreakpoint.test_envar_good_path_builtin  s    ',#$>"" 	.dsOOO((---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   %AAAc                     d| j         d<   t          d          5 }t                       |                                 d d d            d S # 1 swxY w Y   d S Nzsys.exitrs  r  r  s     r   test_envar_good_path_otherz)TestBreakpoint.test_envar_good_path_other  s    '1#$: 	+$LLL((***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+   #A

AAc                     d| j         d<   t          d          5 }t                       |                                 d d d            d S # 1 swxY w Y   d S )NrA   rs  r|  )rw  r   r}  assert_not_calledr  s     r   test_envar_good_path_noop_0z*TestBreakpoint.test_envar_good_path_noop_0  s    '*#$?## 	%tLLL""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%r  c                     d| j         d<   t          d          5 }t                       |                                 d d d            d S # 1 swxY w Y   d S )NrP   rs  r|  r  r  s     r   !test_envar_good_path_empty_stringz0TestBreakpoint.test_envar_good_path_empty_string"  s    ')#$?## 	+tLLL((***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+r  c                    dD ]}|                      |          5  || j        d<   | j                            t	          d                    }| j                            t          d                    }t                       |                     t          |j	                  d| d           |                     |j
        t                     |                                 d d d            n# 1 swxY w Y   d S )	N).z..z.foozfoo.z.intzint.z.foo.barz	..foo.barz/./nosuchbuiltinznosuchmodule.nosuchcallable)envarrs  r|  T)quietz*Ignoring unimportable $PYTHONBREAKPOINT: "r   )subTestrw  ru  rv  r   r   r}  ro   r;   messagecategoryRuntimeWarningr  )r   r  r  r  s       r   test_envar_unimportablez&TestBreakpoint.test_envar_unimportable)  s<    	) 	)E E** 	) 	)/4+,~33E/4J4JKKN00d1K1K1KLL  	NNIIIIK K K   ^<<<&&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)	) 	)s   CC//C3	6C3	c                     d| j         d<   t          d          5 }t          t          _        t                       |                                 d d d            d S # 1 swxY w Y   d S r  )rw  r   r   rz   rt  r}  r  r  s     r   #test_envar_ignored_when_hook_is_setz2TestBreakpoint.test_envar_ignored_when_hook_is_set<  s    '1#$: 	%$!$CLLL""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   4AA"AN)r2   r3   r4   ry  r  r  r  r  r  rc  rd  rz   r>  ignore_environmentr  r  r  r  r  r  r5   r"   r   rq  rq    sU       F F F" " "
4 4 4
4 
4 
4K K KJ J J X_SY1>BB. . CB. X_SY1>BB+ + CB+ X_SY1>BB% % CB%+ + + X_SY1>BB) ) CB)$% % % % %r"   rq  z,the pty and signal modules must be availablec                   Z    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dS )PtyTestszhTests that use a pseudo terminal to guarantee stdin and stdout are
    terminals in the test environmentc                     d S r   r5   )signumframes     r   handle_sighupzPtyTests.handle_sighupI  s	    
 	r"   c                     t          j         t           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_childP  s_    ]6=$2DEE
	5??5.99M&-4444FM&-4444s   A !A<c                 x   t          j                    \  }}	 t          j                    \  }}nj# t          t
          f$ rV}t          j        |           t          j        |           |                     d                    |                      d }~ww xY w|dk    r	 t          j
        d           t          j        |           t          |d          5 } ||           d d d            n# 1 swxY w Y   n#  t          j                     Y nxY wt          j        d           n# t          j        d           w xY wt          j        |           t          j        ||           t          |d          5 }	g }
	 |	                                                                }|dk    rn|
                    |           C	 d d d            n# 1 swxY w Y   t'          |
          dk    rt)                      }	 	 t          j        |d	          }n# t          $ r Y nw xY w|sn|                    |           @t          j        |           |                    d
d          }|                     dt'          |
          |fz             t          j        |           t3          j        |d           |
S )Nzpty.fork() raised {}r   r   r  r  r  TrP   i  r   r  z9got %d lines in pipe but expected 2, child output was:
%s)exitcode)r'  pipeptyforkOSErrorrY  rT  skipTestr/  r  alarmr  	traceback	print_exc_exitr@   r   ro  r,   r%   r  r!  rV  decoder  r   wait_process)r   r  r  rr  pidfdr  wpiperpipelinesr?   child_outputchunks                 r   r  zPtyTests._run_childW  s.   wyy1	hjjGC( 	 	 	HQKKKHQKKKMM077::;;;		 !88
Q!S\\ !UE%LLL! ! ! ! ! ! ! ! ! ! ! ! ! ! !&#%%%%%  	
^$$$ !g&&& 	#%E#~~''--//2::T"""# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# u::?? %;;L+GB--EE   E ##E***+ HRLLL'..wAALIIRU\23 4 4 4
 	S1----s}   / B ABB 8C< C0$C< 0C44C< 7C48C< ;D+ <DD+ +E>AGGG H 
H#"H#Nc                 8   t           j                                        rt           j                                        s|                     d           fd}|                     ||dz             }|                     |d         ddh           |d         dk    r|                     d           t          |d                   }r|                    d	          }n$|                    t           j        j	                  }| 
                    ||           d S )
Nzstdin and stdout must be ttysc                    rzt          j        t          j                                        d          t          _        t          j        t          j                                        d          t          _        t          dt          j                                        ot          j                                        |            t          t          t                              |            d S )Nsurrogateescape)r  errorsreplaceztty =file)
rU  TextIOWrapperrz   rR  detachr  printisattyr   rS  )r  rQ  stdio_encodings    r   r  z'PtyTests.check_input_tty.<locals>.child  s     @,SY-=-=-?-?6D4EG G G	  -cj.?.?.A.A7E5>@ @ @
 '39++--E#*2C2C2E2EERRRR%f&&U333333r"   s   
r   z
tty = Trueztty = Falsez%standard IO in should have been a ttyr*   r  )rz   rR  r  r  r  r  r  r   r  r  ro   )r   rQ  r  r  r  r  input_resultr4  s    ` `    r   check_input_ttyzPtyTests.check_input_tty  s   y!! 	;):):)<)< 	;MM9:::
	4 
	4 
	4 
	4 
	4 
	4 unw&>??eAh} =>>>8|##MMABBBE!H~~ 	A%,,^=NOOHH%,,SY-?@@Hx00000r"   c                 2    |                      dd           d S )NrQ  s   quux)r  r&   s    r   test_input_ttyzPtyTests.test_input_tty  s      	Xw/////r"   c                 P    dt           j        v r|                     d           d S d S )Nr   zthe readline module is loaded)rz   modulesr  r&   s    r   skip_if_readlinezPtyTests.skip_if_readline  s2     $$MM9::::: %$r"   c                 \    |                                   |                     ddd           d S )N   prompté   quuxr  r  r  r&   s    r   test_input_tty_non_asciiz!PtyTests.test_input_tty_non_ascii  2    Zg>>>>>r"   c                 \    |                                   |                     ddd           d S )Nr  r  r   r  r&   s    r   'test_input_tty_non_ascii_unicode_errorsz0PtyTests.test_input_tty_non_ascii_unicode_errors  r  r"   c                 h    d }|                      |d          }d}|                     ||           d S )Nc                 0   t          dt          j                                        |            t	          j                    t          _        t          d           t          dt          t          j        	                                          |            d S )Nzstdin.isatty():r  rQ  z	captured:)
r  rz   rR  r  rU  rV  r  rS  r   getvalue)r  s    r   r  z3PtyTests.test_input_no_stdout_fileno.<locals>.child  so    #SY%5%5%7%7eDDDDCJ(OOO+uSZ%8%8%:%:;;%HHHHHHr"   s   quux)zstdin.isatty(): Truezcaptured: 'prompt')r  assertSequenceEqual)r   r  r  r4  s       r   test_input_no_stdout_filenoz$PtyTests.test_input_no_stdout_fileno  sN    	I 	I 	I
 ui00
 	  11111r"   r   )r2   r3   r4   r,  rn  r  r  r  r  r  r  r  r  r  r5   r"   r   r  r  D  s        ) )   \5 5 5> > >@1 1 1 140 0 0
; ; ;? ? ?
? ? ?
2 2 2 2 2r"   r  c                   &    e Zd Zd Zd Zd Zd ZdS )
TestSortedc                 R   t          t          d                    }|d d          }t          j        |           |                     |t          |                     |                     ||           |                                 t          j        |           |                     |t          |d                      |                     ||           t          j        |           |                     |t          |d                     |                     ||           d S )NrJ   c                     |  S r   r5   r0  s    r   r   z'TestSorted.test_basic.<locals>.<lambda>  s    1" r"   r  T)reverse)rq   rN  r  shufflero   r  rD  r  )r   r  copys      r   
test_basiczTestSorted.test_basic  s   E#JJAAAwtvd||,,,D$'''tvd===>>>D$'''tvdD999:::D$'''''r"   c                 P   t          g            |                     t                    5  t          g            d d d            n# 1 swxY w Y   t          g d            |                     t                    5  t          g d            d d d            d S # 1 swxY w Y   d S )N)r  r  )r  r   r   r&   s    r   test_bad_argumentszTestSorted.test_bad_arguments  s$   r


y)) 	  	 B	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	rty)) 	 	2t	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AAA=BB"Bc           	         d}t           t          t          g}|D ];}|                     t	          |          t	           ||                               <d                    t          |                    }t          t          t          t           t          t          j	        g}|D ];}|                     t	          |          t	           ||                               <d S )NabracadabrarP   )
rq   r/  r;   ro   r  joinr  	frozensetr  fromkeys)r   r   r  Ts       r   test_inputtypeszTestSorted.test_inputtypes  s    uc" 	6 	6AVAYYqqtt5555GGCFFOOc9dE4=A 	6 	6AVAYYqqtt5555	6 	6r"   c                 v    d                                 }|                     t          t          |d d            d S )Nz,The quick Brown fox Jumped over The lazy Dogc                     dS r   r5   r   s     r   r   z.TestSorted.test_baddecorator.<locals>.<lambda>	  s    Q r"   )splitr   r   r  )r   r  s     r   test_baddecoratorzTestSorted.test_baddecorator  s7    =CCEE)VT4GGGGGr"   N)r2   r3   r4   r  r  r  r  r5   r"   r   r  r    sU        ( ( (  	6 	6 	6H H H H Hr"   r  c                       e Zd Zd ZdS )ShutdownTestc                     d}t          d|d          \  }}}|                     ddg|                                                                           d S )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   ro   r  
splitlines)r   r7  rcouterrs        r   test_cleanupzShutdownTest.test_cleanup	  sd    2 (d9@B B BC(G,cjjll.E.E.G.GHHHHHr"   N)r2   r3   r4   r  r5   r"   r   r  r  	  s(        I I I I Ir"   r  c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestTypec                    t          ddi           }|                     |j        d           |                     |j        d           |                     |j        t                     |                     |j        t          f           |                     |j        t                      |            }|                     t          |          |           |                     |j	        |            G d d          }t          d|t          fdd i          }|                     |j        d           |                     |j        d           |                     |j        t                     |                     |j        |t          f           |                     |j        t                     |                     d|j                   |                     d|j                    |d	          }|                     |d	           |                     t          |          |           |                     |j	        |           |                     |                                d
           |                     |                                d           |                     |                    dd          d           d S )Nr   r5   c                       e Zd Zd ZdS )!TestType.test_new_type.<locals>.Bc                     d| z  S )Nzham%dr5   r&   s    r   r  z%TestType.test_new_type.<locals>.B.ham3	  s    ~%r"   N)r2   r3   r4   r  r5   r"   r   rg  r  2	  s#        & & & & &r"   rg  r  ra  c                     d| z  S )Nzspam%sr5   r&   s    r   r   z(TestType.test_new_type.<locals>.<lambda>5	  s
    ho r"   r  r   ham42spam42r   littles   * )rp   ro   r2   r4   r3   	__bases__r   r  __base__ry  r   r  rm  r  r  ra  to_bytes)r   r   r   rg  r  s        r   test_new_typezTestType.test_new_type'	  so   b"S)))---x000vi000aj&)))ACCd1ggq!!!ak1%%%	& 	& 	& 	& 	& 	& 	& 	& q#h)E)E FGGS)))---x000q#h///aj#&&&faj)))
+++AbEEBd1ggq!!!ak1%%%'***8,,,Ax00+>>>>>r"   c                    |                      t                    5  t          ddi d           d d d            n# 1 swxY w Y   |                      t                    5  t          ddi            d d d            d S # 1 swxY w Y   d S )Nr   r5   r  r0  r  )r   r   rp   r&   s    r   test_type_nokwargszTestType.test_type_nokwargsE	  s   y)) 	# 	#b"""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#y)) 	# 	#br""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   ;?? B  BBc                 (   dD ]}|                      |          5  t          |di           }|                     |j        |           |                     |j        |           |                     |j        t                     d d d            n# 1 swxY w Y   |                     t                    5  t          ddi            d d d            n# 1 swxY w Y   |                     t                    5  t          ddi            d d d            n# 1 swxY w Y   |                     t                    5  t          ddi            d d d            n# 1 swxY w Y   t          ddi           }dD ]}|                      |          5  ||_        |                     |j        |           |                     |j        d           |                     |j        t                     d d d            n# 1 swxY w Y   t          ddi           }|                     t                    5  d|_        d d d            n# 1 swxY w Y   |                     |j        d           |                     t                    5  d|_        d d d            n# 1 swxY w Y   |                     |j        d           |                     t                    5  d|_        d d d            n# 1 swxY w Y   |                     |j        d           d S )N)r      Ä   🐍zB.A42rP   r}   r5   zA Bu   ABr=  r  )
r  rp   ro   r2   r4   r3   r   r   UnicodeEncodeErrorr   )r   r~   r   r  s       r   test_type_namezTestType.test_type_nameK	  s   > 	9 	9D4(( 9 9r2&&  T222  666  x888	9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
 z** 	# 	#2r"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#122 	% 	%R$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%y)) 	 	r2	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 b"> 	9 	9D4(( 9 9!
  T222  555  x888	9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 b"z** 	" 	"!AJ	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"S)))122 	$ 	$#AJ	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$S)))y)) 	 	AJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	S)))))s   A(BB	B	5CCC8DDD;EE EAG99G=	 G=	0IIIJJJK,,K03K0c                    t          ddddi          }|                     |j        d           |                     |j        d           |                     |j        t                     |                     t                    5  t          ddddi           d d d            n# 1 swxY w Y   |                     |j        d           d|_        |                     |j        d           |                     |j        d           |                     t                    5  d|_        d d d            n# 1 swxY w Y   |                     |j        d           d S )Nr   r5   r4   zB.C   BzD.E)rp   ro   r2   r4   r3   r   r   )r   r   s     r   test_type_qualnamezTestType.test_type_qualnamel	  s   b>5122S)))///x000y)) 	2 	2b>40111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2///S)))///y)) 	" 	"!AN	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"/////s$   B$$B(+B(!D55D9<D9c                    dD ]0}t          ddd|i          }|                     |j        |           1|                     t                    5  t          ddddi           d d d            n# 1 swxY w Y   t          ddi           }|                     |j        d            dD ]$}||_        |                     |j        |           %d S )N)r   r!  r"  x y   xr   Nr   r5   r,     xy)r   r!  r"  r*  r,  r+  r   N)rp   ro   r,  r   r$  )r   r'  r   s      r   test_type_doczTestType.test_type_doc|	  s)   F 	- 	-CS"y#.//AQY,,,,122 	3 	3b9j1222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 b"D)))R 	- 	-CAIQY,,,,	- 	-s   A..A25A2c                    |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5  t          dd           d d d            n# 1 swxY w Y   |                      t                    5  t          ddi d           d d d            n# 1 swxY w Y   |                      t                    5  t          ddi            d d d            n# 1 swxY w Y   |                      t                    5  t          dg i            d d d            n# 1 swxY w Y   |                      t                    5  t          ddt          j        i                      d d d            n# 1 swxY w Y   |                      t                    5  t          ddi            d d d            n# 1 swxY w Y   |                      t                    5  t          dt
          fi            d d d            n# 1 swxY w Y   |                      t                    5  t          dt          t          fi            d d d            d S # 1 swxY w Y   d S )Nr   r5   r  r   )r   r   rp   r  MappingProxyTyperQ  r   r;   r&   s    r   test_bad_argszTestType.test_bad_args	  sl   y)) 	 	FFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	bMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	" 	"b"b!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"y)) 	# 	#br""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#y)) 	 	b"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	6 	6b%044555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6y)) 	# 	#gr"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#y)) 	# 	#tgr"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#y)) 	& 	&sCj"%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   6::A88A<?A<B<<C C !D  DD%EE
E($FFF=GG"G H$$H(+H(	I44I8;I8c                    |                      t                    5  t          ddddi           d d d            n# 1 swxY w Y   |                      t                    5  t          dt          fddi           d d d            n# 1 swxY w Y   |                      t                    5  t          ddddi           d d d            n# 1 swxY w Y   |                      t                    5  t          ddddi           d d d            n# 1 swxY w Y   |                      t                    5  t          ddddi           d d d            n# 1 swxY w Y   |                      t                    5  t          dddd	d
           d d d            n# 1 swxY w Y   |                      t                    5  t          ddddi           d d d            n# 1 swxY w Y   |                      t                    5  t          ddddi           d d d            n# 1 swxY w Y    G d d          }|                      t                    5  t          d|fddi           d d d            n# 1 swxY w Y   |                      t                    5  t          d|fddi           d d d            d S # 1 swxY w Y   d S )Nr   r5   rv  r+  r   rP   r#  r*  r   )rv  r   )rm  rm  )__weakref__r2  c                       e Zd ZdS )"TestType.test_bad_slots.<locals>.BNr   r5   r"   r   rg  r4  	  r  r"   rg  rm  r2  )r   r   rp   r   r   )r   rg  s     r   test_bad_slotszTestType.test_bad_slots	  sf   y)) 	/ 	/b;-...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/y)) 	2 	2sf{C0111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2y)) 	- 	-b;+,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-y)) 	/ 	/b;-...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/y)) 	3 	3b;1222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3z** 	6 	6b!44555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6y)) 	C 	Cb;(@ABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cy)) 	I 	Ib;(FGHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I	 	 	 	 	 	 	 	y)) 	7 	7qd[*5666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7y)) 	: 	:qd[-8999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   ;?? BB
B
+CCC0DDD5EEE:FF"F G  G$'G$H%%H),H)I88I<?I<J??KKc                 H   t          j        ddg          }|                    d           t          |                                          }t          dd|          }|                     t          |j                                                  d d         ddg           d S )N)r   r*   )r  r   r   r  r5   r   )r  OrderedDictmove_to_endrq   r  rp   ro   rm  )r   odr4  r  s       r   test_namespace_orderzTestType.test_namespace_order	  s    $h%9::
s

##b"aj..0011"1"5(7KLLLLLr"   N)r2   r3   r4   r  r  r%  r(  r-  r0  r5  r:  r5   r"   r   r  r  &	  s        ? ? ?<# # #* * *B0 0 0 - - -& & &(: : :2M M M M Mr"   r  c                 X    ddl m} |                     |t                               |S )Nr   )DocTestSuite)doctestr<  addTestr  )loadertestspatternr<  s       r   
load_testsrB  	  s5    $$$$$$	MM,,x(()))Lr"   r   )Nr-  rR  r  r  rs  ru  rR  rU  r)  r'  rl   ri  r  rE  rz   r  r  rc  r  
contextlibr   	functoolsr   inspectr   	itertoolsr   textwrapr   r   r	   r
   operatorr   r   r   test.supportr   r   test.support.os_helperr   r   r   test.support.script_helperr   test.support.warnings_helperr   unittest.mockr   r   r  r  r   r   r7   r=   r   r   r   r;   rg   test_conv_no_signtest_conv_signrS   r[   rd   rh   TestCaserj   rq  
skipUnlessr  r  r  r  rB  r2   mainr5   r"   r   <module>rS     s   


            				 				  				    				 



                                                  < < < < < < < < < <             A A A A A A A A H H H H H H H H H H 7 7 7 7 7 7 7 7 7 7 7 7 * * * * * * * *   C&&&               $       
 	$	ck		CK(		Z 	Z	j	Z 	$%9	:	:C@	UZ ' . 			
+	ck		CK(		*	Z 	Z	j	Z 	$%9	:	:C@	UZ ',                  O1 O1 O1 O1 O1(# O1 O1 O1d:f% f% f% f% f%X& f% f% f%R SHIIR2 R2 R2 R2 R2x  R2 R2 JIR2h(H (H (H (H (H" (H (H (HVI I I I I8$ I I IDWM WM WM WM WMx  WM WM WMt  
 zHMOOOOO s   (B1 1	B=<B=