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

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

O1fJJc!A#h'FA 1f zz!}r$   Nr3   r7   r$   r!   r9   r9   B   s    r$   r9   c                       e Zd Zd Zy)	BitBucketc                      y r   r7   )r    lines     r!   writezBitBucket.writeU   s    r$   N)r4   r5   r6   rB   r7   r$   r!   r?   r?   T   s    r$   r?   )0r   )1r,   )9	   )10
   )99c   )100d   )314:  ) 314rN   )z314 rN   )  		  314  		  rN   z  1x)  1  r,   z  1    z  		  s   \u0663\u0661\u0664 zraw-unicode-escaperN   i   rO   rP   rQ   c                       e Zd Zd Zy)TestFailingBoolc                     t         r   RuntimeErrorr(   s    r!   __bool__zTestFailingBool.__bool__       r$   N)r4   r5   r6   rY   r7   r$   r!   rU   rU          r$   rU   c                       e Zd Zd Zy)TestFailingIterc                     t         r   rW   r(   s    r!   __iter__zTestFailingIter.__iter__   rZ   r$   Nr4   r5   r6   r_   r7   r$   r!   r]   r]      r[   r$   r]   c                 0    t        |       t        d      kD  S )Nd)ordargs    r!   filter_charrf      s    s8c#hr$   c                 0    t        t        |       dz         S Nr,   )chrrc   rd   s    r!   map_charrj      s    s3xz?r$   c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Z ej                   ej$                  xs ej&                  d      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d  Z&d! Z'd" Z( ejR                  d#      d$        Z*d% Z+d& Z,d' Z-d( Z.d) Z/d* Z0d+ Z1d, Z2d- Z3d. Z4d/ Z5d0 Z6d1 Z7d2 Z8d3 Z9d4 Z:d5 Z; ej                   e<jz                  j|                  d6      d7        Z? ej                         d8        ZAd9 ZBd: ZCd; ZDd< ZEd= ZFd> ZG eHj                         j                  d?      xr   eHj                         j                  d@      ZL eMdA      dAk7  ZN ej                   eLxr eNdB      dC        ZOdD ZPdE ZQdF ZReS ej                   eTdG      ej                  dH                      ZVdI ZWeXdJ        ZYeXdK        ZZ G dL dMe[      Z\dN Z]dO Z^dP Z_dQ Z`dR ZadS ZbdT ZcdU ZddV ZedW ZfdX Zgej                  dY        ZhdZ Zid[ Zjd\ Zkd] Zld^ Zmd_ Znd` Zoda Zpdb Zqyc)dBuiltinTestc                    |}t        j                  ||      }t        j                  |      }| j                  t	        |      t	        |             | j                  t        |      |       t        j                  |      }	 t        |       t        j                  ||      }t        j                  |      }| j                  t        |      |dd         y # t        $ r Y y w xY wrh   )pickledumpsloadsassertEqualtypelistnextStopIteration)r    itseqprotoitorgrb   s         r!   check_iter_picklezBuiltinTest.check_iter_pickle   s    LLU#\\!_ed2h/b3' \\!_	H LLU#\\!_b3qr7+	  		s   C 	C$#C$c           
      ,   t        d       t        d       t        d       t        d       t        dd       | j                  t        t         d       | j                  t        t         dd	d
d       | j                  t        t         d       | j                  t        t         dd       | j                  t              5  | j                  t        t         dd d ddi dd       d d d        | j                  t        t         d       y # 1 sw Y   %xY w)Nsystimestringnamer   )r   levelspamspamr,            rR   __main__)__package____spec__r4   )foo)localsfromlistr   zstring )
__import__assertRaisesModuleNotFoundError	TypeError
ValueErrorassertWarnsImportWarningImportErrorr(   s    r!   test_importzBuiltinTest.test_import   s    568a(-z:F)ZAq!<*j"5)ZUCm,k:r.2R\]%'(!  E -
 	-z<H -,s   %D

Dc                    | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        t        j                   dz
        dkD         | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        t        d       | j                  t        d	      d       | j                  t        d
      d       | j                  t        t               | j                  t        t        d         G d dt              }| j                  t         |             d       y )Nr     i.r,           gQ	@gQ	aTFc                       e Zd Zd Zy)&BuiltinTest.test_abs.<locals>.AbsClassc                      y)Nr7   r(   s    r!   __abs__z.BuiltinTest.test_abs.<locals>.AbsClass.__abs__       r$   N)r4   r5   r6   r   r7   r$   r!   AbsClassr          r$   r   r   )rq   abs
assertTruer|   maxsizer   r   object)r    r   s     r!   test_abszBuiltinTest.test_abs   s   Q#TD)UT*S[[LN+a/0S3'TD)UT*)S#.TA&UQ')S))S$/	v 	 	XZ"-r$   c                    | j                  t        g d      d       | j                  t        g d      d       | j                  t        t        dt	               dg       | j                  t        t        t                      | j                  t        t        d       | j                  t        t               | j                  t        t        g dg        | j                  t        g       d       | j                  t        dt	               g      d       d	d
g}| j                  t        d |D              d       g d}| j                  t        d |D              d       y )Nr   r      T)r   Nr   Fr   r   rH   r   2   <   c              3   &   K   | ]	  }|d kD    yw*   Nr7   .0xs     r!   	<genexpr>z'BuiltinTest.test_all.<locals>.<genexpr>        /QQVQ   )r   (   r   c              3   &   K   | ]	  }|d kD    ywr   r7   r   s     r!   r   z'BuiltinTest.test_all.<locals>.<genexpr>   r   r   )rq   allr   rX   rU   r]   r   r    Ss     r!   test_allzBuiltinTest.test_all   s   Y.\*E2,a1BA-FG,_->?)S"-)S))S)R8R$'a!234e<H/Q//6/Q//7r$   c                    | j                  t        g d      d       | j                  t        g d      d       | j                  t        t        d t	               dg       | j                  t        t        t                      | j                  t        t        d       | j                  t        t               | j                  t        t        g dg        | j                  t        g       d       | j                  t        dt	               g      d       g d	}| j                  t        d
 |D              d       g d}| j                  t        d |D              d       y )N)NNNF)Nr   NTr   rH   r   r,   )r   r      c              3   &   K   | ]	  }|d kD    ywr   r7   r   s     r!   r   z'BuiltinTest.test_any.<locals>.<genexpr>   r   r   )rH      r   c              3   &   K   | ]	  }|d kD    ywr   r7   r   s     r!   r   z'BuiltinTest.test_any.<locals>.<genexpr>   r   r   )rq   anyr   rX   rU   r]   r   r   s     r!   test_anyzBuiltinTest.test_any   s   /0%8_-t4,dO4Eq-IJ,_->?)S"-)S))S)R8R%(a!234d;/Q//6/Q//7r$   c                      j                  t        d      d        j                  t        d      d        j                  t        d      d        j                  t        g       d        j                  t        i       d       g }|j                  |        j                  t        |      d	       i }||d<    j                  t        |      d
        fd} |d        |d        |d        |d        |d        |d        |d        |d        |d        |d        j                  t        d      d       d} j                  t        |      d       y )NrR   ''r   rC   r7   ()[]{}[[...]]
{0: {...}}c                 N    j                  t        |       t        |              y r   )rq   asciirepr)sr    s    r!   
_check_uniz*BuiltinTest.test_ascii.<locals>._check_uni   s    U1XtAw/r$   '"z"' z
	 .   u   ῿u   𒿿u   u   u   𝄡z'\U0001d121'u   ' "
	 abcdé𒿿𝄡xxx.z:'\'\x00"\n\r\t abcd\x85\xe9\U00012fff\ud800\U0001d121xxx.')rq   r   r.   )r    r   r   r   s   `   r!   
test_asciizBuiltinTest.test_ascii   s4   rF+q3'rD)rD)rD)	q9-!q<0	03354:68< 88 	|,o>BqM	Or$   c                     t         j                   dz
  }| j                  t        |t                     | j                  | t         j                  dz          y rh   )r|   r   r   
isinstanceintrq   r    r   s     r!   test_negzBuiltinTest.test_neg  s>    [[LN
1c*+!S[[]+r$   c                    | j                  t        t                     | j                  t        d             | j                  t        t                     | j                  t        d              | j                  t        t                     d }| j                  t        |              G d d      }| j                  t        |              |       }| j                  t        |j
                               | j                  t        |             d |_        | j                  t        |             d |_        | j                  t        |             |`| j                  t        |              G d dt              } |       }| j                  t        |             d |_        | j                  t        |              G d	 d
|      } |       }| j                  t        |             y )Nr   c                     | |z   S r   r7   r   ys     r!   <lambda>z+BuiltinTest.test_callable.<locals>.<lambda>  s    a!er$   c                       y r   r7   r7   r$   r!   fz$BuiltinTest.test_callable.<locals>.f      r$   c                       e Zd Zd Zy)%BuiltinTest.test_callable.<locals>.C1c                      y r   r7   r(   s    r!   methz*BuiltinTest.test_callable.<locals>.C1.meth  s    Dr$   N)r4   r5   r6   r   r7   r$   r!   C1r     s     r$   r   c                      yNr   r7   r(   s    r!   r   z+BuiltinTest.test_callable.<locals>.<lambda>'  s    !r$   c                       e Zd Zd Zy)%BuiltinTest.test_callable.<locals>.C2c                      y r   r7   r(   s    r!   __call__z.BuiltinTest.test_callable.<locals>.C2.__call__-  s    r$   N)r4   r5   r6   r   r7   r$   r!   C2r   ,  s    $r$   r   c                       e Zd Zy)%BuiltinTest.test_callable.<locals>.C3Nr4   r5   r6   r7   r$   r!   C3r   2      r$   r   )r   callabler'   assertFalse__builtins__r   r   r   )r    r   r   cr   c2r   c3s           r!   test_callablezBuiltinTest.test_callable  sY   &#'*+!345,/0$	! 	!%D()!% 
!%#
!%J!%	% 	%T%%T%r$   c                 ^   | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        t        d	       | j                  t        t        j
                        t        d
j                  d      d             | j                  t        t               | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        t        d       | j                  t        t        d        | j                  t        t        ft        d!       y )"N    rS   A   Aa   r         ÿi   z
\U0010ffffr   zunicode-escape     ￿      𐀀     𐀁    󿿾    󿿿      􀀀     􀀁    􏿾    􏿿i           )
rq   ri   r   r   r|   
maxunicoder=   encoder   OverflowErrorr(   s    r!   test_chrzBuiltinTest.test_chr6  s   R#&R#&R#&TF+*c51S^^,]11':<LM	O)S)Z,7Z,7Z,7Z,7Z,7Z,7Z,7Z,7Z,7*c2.*c:6=*5sEBr$   c                 D    | j                  t        t        d              y )Ncmp)r   hasattrbuiltinsr(   s    r!   test_cmpzBuiltinTest.test_cmpL  s    GHe445r$   c           
         t        ddd       d}t        |dz   dd       t        ddd       t        d	d
dd       t        dddd       t        t        d      dd       | j                  t        t                | j                  t        t         ddd       | j                  t        t         dddd       | j                  t        t         dddddd
       t        ddd       | j                  t
        t         t        d      dd       | j                  t        t         t        d      dd       d}d }dd	|j                  d	d	fd d!d"g}|D ]  ^}}g }|j                  t        |d#d|$             t        j                  |      }|j                  t        |d#d|$             |D ]5  }	i }
t        |	|
        |
d          }| j                  |t        |             7  y )%Nz	print(1)
rR   exec   ﻿s	   print(1)
pass?)sourcefilenamemodeFtmprC   eval)dont_inheritr!  r   r"  T)r%  r"  s   textr   z
print(42)
<string>badmodesingler   )r"  r   r!  u   print("å")
r   r   za = 1badaJ  def f():
        """doc"""
        debug_enabled = False
        if __debug__:
            debug_enabled = True
        try:
            assert False
        except AssertionError:
            return (True, f.__doc__, debug_enabled, __debug__)
        else:
            return (False, f.__doc__, debug_enabled, __debug__)
        c                       y r   r7   r7   r$   r!   r   z#BuiltinTest.test_compile.<locals>.fn  s    r$   r  )r   TdocTT)r,   Fr+  FF)r   FNFFz<test>)optimize)compile
memoryviewr   r   r   SyntaxErrorri   r=   __doc__r.   astparser  rq   tuple)r    bomcodestrr   valuesoptvalexpectedcodeobjstreecodensrvs               r!   test_compilezBuiltinTest.test_compileO  s   b&)m#R0v&9UU3VL$V<
7#VV4)W-*g}j)T*g}j(TXY)Wfc6%cE 	 	C!2v.+wAVD*gs7|S%H 	y!))Y	B.102 "(FXHOOGGXvOP99W%DOOGD(FVLM T2RWY  U8_5	 ! "(r$   c           	          	 d}g d}t        ||      D ]\  \  }}t        |      }t        |d|t        j                        }| j                  |j                  t        z  t        d| d|        ^ y )N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=msg)r   r   r-  r1  PyCF_ALLOW_TOP_LEVEL_AWAITassertNotEqualco_flagsr   )r    modescode_samplesr"  code_sampler   cos          r!   $test_compile_top_level_await_no_coroz0BuiltinTest.test_compile_top_level_await_no_coro  s    Q"
 ")!=D+K(F "%"@"@BB
 l :L&-fXVD6$B   D ">r$   zsocket.accept is brokenc           	         	 d }d}g d}t               }	 t        ||      D ]  \  }}t        |      }| j                  t        d| d|       5  t        |d|       d d d        t        |d|t        j                        }| j                  |j                  t        z  t        d| d|        t        d	|d
}	t        ||	      }
t        j                   |
              | j                  |	d   d       t        d	|d
}	t        j                  t        ||	             | j                  |	d   d        	 t        j                  |       y # 1 sw Y   xY w# t        j                  |       w xY w)Nc                6   K   t        |       D ]  }| 	 y wr   ranger1   r0   s     r!   arangez8BuiltinTest.test_compile_top_level_await.<locals>.arange       1X    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]rC  rD  rE  r  rA  r   )asyncior   rT  r   r,   )r   r   r   r   r/  r-  r1  rG  rq   rI  r   rW  r	   runr$  set_event_loop_policy)r    rT  rJ  rK  policyr"  rL  r   rM  globals_async_fs              r!   test_compile_top_level_awaitz(BuiltinTest.test_compile_top_level_await  sr   
		 #
 -.	2%,UL%A!k,&&#76(&)G ' IFC.I V !#&#A#AC
   |!;\'.vhfTF%C ! E (/Q&I&r84GI&  #2 (/Q&IDX./  #2/ &B2 ))&1/I I. ))&1s$   ;E ECE E	E E3c                    d }d}g d}t               }	 t        ||      D ]  \  }}t        |      }| j                  t        d| d|       5  t        |d|       d d d        | j                  t        d| d|       5  t        |d|t        j                        }d d d         	 t        j                  |       y # 1 sw Y   exY w# 1 sw Y   xY w# t        j                  |       w xY w)	Nc                6   K   t        |       D ]  }| 	 y wr   rQ  rS  s     r!   rT  zFBuiltinTest.test_compile_top_level_await_invalid_cases.<locals>.arange  rU  rV  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
            rC  rD  rE  r  rA  )
r   r   r   r   r/  r-  r1  rG  rW  rY  )	r    rT  rJ  rK  rZ  r"  rL  r   rM  s	            r!   *test_compile_top_level_await_invalid_casesz6BuiltinTest.test_compile_top_level_await_invalid_cases  s   	 #
 -.	2%,UL%A!k,&&#76(&)G ' IFC.I &&#76(&)G ' I  !#&#A#ACBI I &B ))&1I II I ))&1s;   :C C%C C 
C C
	C C	C C0c                     	 t        d      }t        |ddt        j                        }i }t	        ||       | j                  t         |d                t               y )Nz~async def ticker():
                for i in range(10):
                    yield i
                    await asyncio.sleep(0)r  r  rA  ticker)r   r-  r1  rG  r  rq   rr   r   )r    r;  rM  globs       r!   test_compile_async_generatorz(BuiltinTest.test_compile_async_generator  s]    	
  . /
 T3c.L.LMRnd8n./1CDr$   c                     dt         _        t        t         d       | j                  t        t               | j                  t        t        t                d}| j                  t        |t        t         d       y )Nr,   spam*^attribute name must be string, not 'int'$)r|   rf  delattrr   r   assertRaisesRegexr    rF  s     r!   test_delattrzBuiltinTest.test_delattr  sP    V)W-)Wc2;y#wQ?r$   c                    | j                  t        t        dd       d}| j                  dt                      | j                  dt        t                      G d dt
        j                        } |d      }| j                  t        t        |       | j                  dt        t                     | j                  d	t        t                      G d
 dt              } |       }| j                  dt        |              G d dt              } |       }| j                  dt        |              G d dt              } |       }| j                  dt        |             | j                  dt        |              G d dt              } |       }| j                  t        |      g dk(          G d dt              }t         |             }| j                  |t               | j                  |g dk(          G d dt              }t         |             }| j                  |t               | j                  t        |      g d        G d dt              } |       }| j                  t        t        |       	 t        # t        $ r8}| j                  t!        t        |j"                              d       Y d }~nd }~ww xY w| j                  t        g j%                               t        g              y )Nr   r,   	local_varexitc                       e Zd ZdZy)!BuiltinTest.test_dir.<locals>.Foo   N)r4   r5   r6   __dict__r7   r$   r!   Foorp    s    Hr$   rs  r   strip__mro__c                       e Zd Zd Zy)rp  c                 .    d| _         d| _        d| _        y )N   rq  rF   )r   r   zr(   s    r!   r"   z*BuiltinTest.test_dir.<locals>.Foo.__init__'  s    r$   N)r4   r5   r6   r"   r7   r$   r!   rs  z!BuiltinTest.test_dir.<locals>.Foo&  s    r$   r   c                       e Zd Zg Zy)rp  N)r4   r5   r6   	__slots__r7   r$   r!   rs  z!BuiltinTest.test_dir.<locals>.Foo/  s    Ir$   __repr__c                       e Zd ZddgZd Zy)rp  	__class__rr  c                     d| _         y )Nwow)barr(   s    r!   r"   z*BuiltinTest.test_dir.<locals>.Foo.__init__8  s	     r$   N)r4   r5   r6   r{  r"   r7   r$   r!   rs  z!BuiltinTest.test_dir.<locals>.Foo6  s    $j1I!r$   r  c                       e Zd Zd Zy)rp  c                 
    g dS )N)kangaroor7   r(   s    r!   __dir__z)BuiltinTest.test_dir.<locals>.Foo.__dir__@  s    ++r$   Nr4   r5   r6   r  r7   r$   r!   rs  z!BuiltinTest.test_dir.<locals>.Foo?  s    ,r$   )r  r  r  c                       e Zd Zd Zy)rp  c                      y)N)br   r   r7   r(   s    r!   r  z)BuiltinTest.test_dir.<locals>.Foo.__dir__G  s    &r$   Nr  r7   r$   r!   rs  z!BuiltinTest.test_dir.<locals>.FooF      'r$   r   r  r   c                       e Zd Zd Zy)rp  c                 
    h dS )N>   r   r  r   r7   r(   s    r!   r  z)BuiltinTest.test_dir.<locals>.Foo.__dir__O  s    &&r$   Nr  r7   r$   r!   rs  z!BuiltinTest.test_dir.<locals>.FooN  r  r$   c                       e Zd Zd Zy)rp  c                      y)Nrx  r7   r(   s    r!   r  z)BuiltinTest.test_dir.<locals>.Foo.__dir__W      r$   Nr  r7   r$   r!   rs  z!BuiltinTest.test_dir.<locals>.FooV  s    r$   r   )r   r   dirassertInr|   types
ModuleTyper=   assertNotInr   r   assertIsInstancers   rq   sortedr-   r'   __traceback__r  )r    rm  rs  r   reses         r!   test_dirzBuiltinTest.test_dir  sC   )S"b1 	k35) 	fc#h'	%"" 	J)S!, 	gs3x(CH-	& 	
 Ec3q6"	& 	Ej#a&)	!& 	! ESV,eSV$	,& 	, EA"667	'& 	' #%jc4(./	'& 	' #%jc4(o6	& 	 E)S!,	; 	;SQ__!56::	; 	

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


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

	 	T9%&	
 	T9i01	
 	T9i;<!	
 	S'"+&'0	
	 	S'!*gaj12F	
 	)S))S+r:	 	 	*dCVX,FG	,c'58.DEg  	##	#s   H2 2IIc                     t        t        j                  dz         D ]>  }t        t        d      }t        t        d      }| j                  |t        |      |       @ y )Nr,   zIs this the real life?)rR  rn   rg  r  rj   rz   rs   )r    rx   m1m2s       r!   test_map_picklezBuiltinTest.test_map_pickle  sL    622Q67EX78BX78B""2tBx7 8r$   c                    | j                  t        d      d       | j                  t        ddd      d       | j                  t        d      d       | j                  t        g d      d       | j                  t        ddd      d       | j                  t        ddd      d       | j                  t        d	dd      d       | j                  t        d
      5  t                d d d        | j	                  t        t        d       | j                  t
        d      5  t        d       d d d         G d d      }| j	                  t
        t         |              dD ](  }	 t        |t                      | j                  |       * | j                  t        dt              d       | j                  t        dt              d       | j                  t        ddt              d       | j                  t        dd       d        | j                  t        dd       d       | j                  t        dd       d       | j                  t        ddt              d       | j                  t        ddt              d       | j                  t        dd       d       t        d      D cg c]  }t        j                  d       }}t        d |D              }|j                  }| j                  t        ||      t        t!        |      |      d          y # 1 sw Y   @xY w# 1 sw Y   xY w# t        $ r Y w xY wc c}w )N1231233r,   r   r   r,   r   r   r,   r   r   r  r  r  z'max expected at least 1 argument, got 0r   z"max\(\) iterable argument is emptyr7   c                       e Zd Zd Zy)$BuiltinTest.test_max.<locals>.BadSeqc                     t         r   r  rY  s     r!   r2   z0BuiltinTest.test_max.<locals>.BadSeq.__getitem__  r  r$   Nr  r7   r$   r!   r[  r    r  r$   r[  )zmax(key=int)zmax(default=None)zmax(1, 2, default=None)zmax(default=None, key=int)zmax(1, key=int)zmax(1, 2, keystone=int)zmax(1, 2, key=int, abc=int)zmax(1, 2, key=1)r,   r  r`  defaultr  r  rL   r  c              3   J   K   | ]  }|t        j                  d       f  ywr   Nrandom	randranger   elems     r!   r   z'BuiltinTest.test_max.<locals>.<genexpr>  !     BTTT6++B/0T   !#r  )rq   r   ri  r   r   r   r  r  failr   rR  r  r  r  r2   r  reversedr    r[  stmtr0   datar  r   s          r!   test_maxzBuiltinTest.test_max  s   X,Q1q)/0!4/0!4Q3-QQ+S!Q+##5
 E	
 	)S"-##1
 G	

	! 	! 	*c684	D T79% 		$	" 	Ts+Q/U,a0Qs+Q/R.5T40!4UD115R4a8VQC8!<V.2/4Sz:z!  %z:BTBBTq)A6r:	<e
 

 
,  $ ;s0   L'"L4&M6M'L14L>	MMc                    | j                  t        d      d       | j                  t        ddd      d       | j                  t        d      d       | j                  t        g d      d       | j                  t        ddd      d       | j                  t        ddd      d       | j                  t        d	dd      d	       | j                  t        d
      5  t                d d d        | j	                  t        t        d       | j                  t
        d      5  t        d       d d d         G d d      }| j	                  t
        t         |              dD ](  }	 t        |t                      | j                  |       * | j                  t        dt              d       | j                  t        dt              d       | j                  t        ddt              d       | j                  t        dd       d        | j                  t        dd       d       | j                  t        dd       d       | j                  t        ddt              d       | j                  t        ddt              d       | j                  t        dd       d       t        d      D cg c]  }t        j                  d       }}t        d |D              }|j                  }| j                  t        ||      t        ||      d          y # 1 sw Y   7xY w# 1 sw Y   xY w# t        $ r Y w xY wc c}w )Nr  rD   r,   r   r   r  r  r  r  z'min expected at least 1 argument, got 0r   z"min\(\) iterable argument is emptyr7   c                       e Zd Zd Zy)$BuiltinTest.test_min.<locals>.BadSeqc                     t         r   r  rY  s     r!   r2   z0BuiltinTest.test_min.<locals>.BadSeq.__getitem__  r  r$   Nr  r7   r$   r!   r[  r    r  r$   r[  )zmin(key=int)zmin(default=None)zmin(1, 2, default=None)zmin(default=None, key=int)zmin(1, key=int)zmin(1, 2, keystone=int)zmin(1, 2, key=int, abc=int)zmin(1, 2, key=1)r  r  r`  r  r  rL   r  c              3   J   K   | ]  }|t        j                  d       f  ywr  r  r  s     r!   r   z'BuiltinTest.test_min.<locals>.<genexpr>!  r  r  r   )rq   minri  r   r   r   r  r  r	  r   rR  r  r  r  r2   r  r  s          r!   test_minzBuiltinTest.test_min  s   X,Q1q)/0!4/0!4Q3+QQ+S!Q-##5
 E	
 	)S"-##1
 G	

	! 	! 	*c684	D T79% 		$	" 	Ts+Q/U,a0Qs+Q/R.5T40!4UD115R4a8VQC8!<V.2/4Sz:z!  %z:BTBBTq)!,Q/	1e
 

 
,  $ ;s0   L"L+&L86ML(+L58	MMc                    t        t        d            }| j                  t        |      d       | j                  t        |      d       | j	                  t
        t        |       | j	                  t
        t        |       | j                  t        |d      d        G d dt              }t         |             }| j                  t        |d      d       | j	                  t
        t        |       d } |       }| j                  t        |      d       | j	                  t
        t        |       | j                  t        |d      d       y )Nr   r   r,   r   c                       e Zd Zd Zd Zy)#BuiltinTest.test_next.<locals>.Iterc                     | S r   r7   r(   s    r!   r_   z,BuiltinTest.test_next.<locals>.Iter.__iter__/  r  r$   c                     t         r   )ru   r(   s    r!   __next__z,BuiltinTest.test_next.<locals>.Iter.__next__1  s    ##r$   N)r4   r5   r6   r_   r  r7   r$   r!   Iterr  .  s    $r$   r  c               3      K   d y wrh   r7   r7   r$   r!   genz"BuiltinTest.test_next.<locals>.gen8  s     Gs   )r-  rR  rq   rt   r   ru   r   )r    rv   r  r  s       r!   	test_nextzBuiltinTest.test_next&  s    %(^b1%b1%-r2-r2b"r*	$6 	$ $&\b"r*-r2	 Ub1%-r2b"r*r$   c                     | j                  t        d      d       | j                  t        d      d       | j                  t        t        d       y )NrL   0o144iz-0o144r7   )rq   octr   r   r(   s    r!   test_octzBuiltinTest.test_octA  s<    S7+TH-)S"-r$   c                 V   t        t        dd      }| j                  t        t               |5  |j	                  d       |j	                  d       |j	                  d       |j	                  d       |j	                  d       |j	                  d	       d d d        y # 1 sw Y   y xY w)
Nwutf-8encoding1+1
z+The quick brown fox jumps over the lazy dogz.
z
Dear John
,  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,  YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY)openr   
addCleanupr   rB   r    fps     r!   write_testfilezBuiltinTest.write_testfileF  ss    &#0'HHWHHBCHHUOHH]#HHYHHY RRs   A'BB(c                 j   | j                          t        t        d      }|5  | j                  |j	                  d      d       | j                  |j	                         d       | j                  |j	                  d      d       | j                  |j	                  d      d       | j                  |j                  d	      d
       | j                  |j                  d      d       d d d        | j                  t        t        d       | j                  t        t        d       y # 1 sw Y   @xY w)Nr&  r'  r   r)  z-The quick brown fox jumps over the lazy dog.
DearrL   z John
r  r*    r+  za bs   a b)r0  r,  r   rq   readlinereadr   r   r.  s     r!   	test_openzBuiltinTest.test_openR  s    &7+R[[^W5R[[],\]R[[^V4R[[-y9RWWS\95RWWT]I6  	*dH5*dI6 Rs   CD))D2zutf-8 mode is enabledc                    t        t        j                        }	 dD ]&  }|t        j                  v st        j                  |= ( | j                          t	        j
                         }t        j                         5  t        j                  dt               t        t        d      }d d d        5  | j                  |j                  |       d d d        t        j                  j                          t        j                  j                  |       y # 1 sw Y   nxY w# 1 sw Y   SxY w# t        j                  j                          t        j                  j                  |       w xY w)N)LC_ALLLANGLC_CTYPEr  r%  )r  osenvironr0  localegetencodingr  catch_warningssimplefilterEncodingWarningr,  r   rq   r(  clearupdate)r    old_environr  current_locale_encodingr/  s        r!   test_open_default_encodingz&BuiltinTest.test_open_default_encodinga  s    2::&	+ 6"**$

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

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

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

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


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

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

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

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

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