
    dafo                        d 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 Z G d	 d
ej$                        Zd Z G d dej$                        Z G d d      Z G d d      Z G d d      Z G d de      Z G d d      Z G d dej$                        Zedk(  r ej:                          yy)z3
  Test cases for the repr module
  Nick Mathewson
    N)verbose)create_empty_file)repr)Repr)recursive_reprc                 0    d}t        |       D ]  }|f} |S )N )range)nestingtis      ,/root/Python-3.12.4/Lib/test/test_reprlib.pynestedTupler      s&    
A7^ DH    c                   r    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zy)	ReprTestsc                     ddddddddd	d
dddd}t               }|j                         D ]  \  }}t        |||        t        di |}|D ]*  }| j                  t	        ||      t	        ||      |       , y )Ne   f   g   h   i   j   k   l   m   n   o   pxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)maxlevelmaxtuplemaxlistmaxarraymaxdictmaxsetmaxfrozensetmaxdeque	maxstringmaxlongmaxother	fillvalueindent)msgr	   )r   itemssetattrassertEqualgetattr)selfexample_kwargsr1attrvalr2s         r   test_init_kwargszReprTests.test_init_kwargs   s    "
 V'--/ 	#ID#Bc"	##N#" 	MDWR.D0AtL	Mr   c                 j   | j                   } |t        d      d        |t        d      d       d}t        |      d d dz   t        |      dd  z   } |t        |      |        |t        d	      t        d	             d
}t        |      d d dz   t        |      dd  z   } |t        |      |       y )Nabcz'abc'abcdefghijklmnopz'abcdefghijklmnop'<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbb   ...z"'z""""""""""""""""""""""""""""""''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r1   rr   )r3   eqsexpecteds       r   test_stringzReprTests.test_string4   s    
1U8W
1 !5673B<%'$q'#$-7
1Q4
1U8T%[!73B<%'$q'#$-7
1Q4r   c                 ^   | j                   } |t        d      d       d} |t        |      d       t               }d|_        t	        |      d d dz   } ||j	                  |      |       t               }d|_        d|_        t	        |      d d d	z   } ||j	                  |      |       y )
N   (1,)rI         	(1, 2, 3)rL   z...)+++z+++))r1   rB   r   r"   r   r,   )r3   rC   t3r8   rE   r3s         r   
test_tuplezReprTests.test_tupleB   s    
1T7F
1R5+V8CR=6)
2772;! V8CR=6)
2772;!r   c           	         ddl m } ddlm} | j                  } |t	        d      d        |t	        d      d        |t	        d      d	        |t	        d
      d        |t	        d      d        |t	        g       d        |t	        dg      d        |t	        g d      d        |t	        g d
      d        |t	        g d      d        |t	        t        g             d        |t	        t        dg            d        |t	        t        g d            d        |t	        t        g d
            d        |t	        t        g d            d        |t	        t        g             d        |t	        t        dg            d        |t	        t        g d            d        |t	        t        g d
            d        |t	        t        g d            d        |t	         |g d            d        |t	        i       d       dd d!d"d#} |t	        |      d$       d|d%<    |t	        |      d&        |t	         |d'            d(        |t	         |d'dg            d)        |t	         |d'dd g            d*        |t	         |d'g d            d+        |t	         |d'g d,            d-        |t	         |d'g d.            d/        |t	         |d'g d
            d0       y )1Nr   )array)dequer	   ()rH   rJ   rK   rN   )rI   rL   rM            z(1, 2, 3, 4, 5, 6))rI   rL   rM   rX   rY   rZ      z(1, 2, 3, 4, 5, 6, ...)z[]rI   z[1]z	[1, 2, 3]z[1, 2, 3, 4, 5, 6]z[1, 2, 3, 4, 5, 6, ...]zset(){1}	{1, 2, 3}{1, 2, 3, 4, 5, 6}{1, 2, 3, 4, 5, 6, ...}zfrozenset()frozenset({1})frozenset({1, 2, 3})frozenset({1, 2, 3, 4, 5, 6})"frozenset({1, 2, 3, 4, 5, 6, ...})zdeque([1, 2, 3, 4, 5, 6, ...])z{}rL   rM   rX   )alicebobcharlesdavez/{'alice': 1, 'bob': 2, 'charles': 3, 'dave': 4}arthurz6{'alice': 1, 'arthur': 1, 'bob': 2, 'charles': 3, ...}r   z
array('i')zarray('i', [1])zarray('i', [1, 2])zarray('i', [1, 2, 3]))rI   rL   rM   rX   zarray('i', [1, 2, 3, 4]))rI   rL   rM   rX   rY   zarray('i', [1, 2, 3, 4, 5])z array('i', [1, 2, 3, 4, 5, ...]))rU   collectionsrV   r1   rB   set	frozenset)r3   rU   rV   rC   ds        r   test_containerzReprTests.test_containerU   s   %
1R5$
1T7F
1Y<%
1 "67
1"#%>? 	1R5$
1aS65
1Y<%
1 "67
1"#%>? 	1SW:w
1S!X;
1S^k*
1S#$%';<
1S&'(*CD 	1Yr]]+
1Ys^./
1Yy!"$:;
1Y)*+-LM
1Y,-.0TU 	1U()*,LM 	1R5$a;
1Q4BC(
1Q4IJ 	1U3Z=,'
1U3_01
1U3A "67
1U3	"#%<=
1U3%&(BC
1U3()+HI
1U3*+,5	7r   c                     | j                   } |t        dh      d        |t        h d      d        |t        h d      d        |t        h d      d       y )	NrI   r\      rI   rL   rM   r]      rI   rL   rM   rX   rY   rZ   r^      rI   rL   rM   rX   rY   rZ   r[   r_   )r1   rB   r3   rC   s     r   test_set_literalzReprTests.test_set_literal   sM    
1aS65
1Y<%
1 "67
1"#%>?r   c                    | j                   } |t        t        dh            d        |t        t        h d            d        |t        t        h d            d        |t        t        h d            d       y )	NrI   r`   ro   ra   rp   rb   rq   rc   )r1   rB   rk   rr   s     r   test_frozensetzReprTests.test_frozenset   sd    
1Ys^./
1Yy!"$:;
1Y)*+-LM
1Y,-.0TUr   c                 ,   | j                   } |t        d      t        d              |t        d      t        d              |t        d      t        d             ddz  }t        |      d d dz   t        |      dd  z   } |t        |      |       y )N{   gUUUUUU?
   d      r?   irA   )r3   rC   nrE   s       r   test_numberszReprTests.test_numbers   s}    
1S649
1S649
1U8T%[!G73B<%'$q'#$-7
1Q4r   c                    | j                   }t        d      } |t        |      t        |             t        d      }t        |      d d dz   t        |      dd  z   } |t        |      |       t	               } |t        |      dt        |      z         t        t              }| j                  |j                  d             | j                  |j                  d             | j                  |j                  d      d	dg       y )
Na  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr>   r?   r@   z&<ClassWithFailingRepr instance at %#x>z<class >   )r1   ClassWithReprrB   r   ClassWithFailingReprid
assertTrue
startswithendswithassertInfind)r3   rC   i1i2rE   i3rD   s          r   test_instancezReprTests.test_instance   s    3
1R5$r(8$8CR=5(48CD>9
1R5(!#
1R5;BrFBD"#Y/0

3(affUmb"X.r   c                 `    t        d       }| j                   |j                  d      |       y )Nc                     | S Nr	   xs    r   <lambda>z'ReprTests.test_lambda.<locals>.<lambda>   s    1 r   z0<function ReprTests.test_lambda.<locals>.<lambda)r   r   r   )r3   rB   s     r   test_lambdazReprTests.test_lambda   s'    %WXZ[\r   c                     | j                   } |t        t              d       | j                  t        dj                        j                  d             y )Nz<built-in function hash> z*<built-in method split of str object at 0x)r1   r   hashr   splitr   rr   s     r   test_builtin_functionzReprTests.test_builtin_function   s@    
4:12RXX118: 	;r   c           	          | j                   } |t        t        d            d        |t        t        dd            d        |t        t        ddd            d       y )NrI   zrange(0, 1)rL   zrange(1, 2)rX   rM   zrange(1, 4, 3))r1   r   r
   rr   s     r   
test_rangezReprTests.test_range   sL    
4a>=)
4am,
4aA!12r   c                    | j                   } |t        g gggggg      d        |t        g ggggggg      d        |t        t        d            d        |t        t        d            d        |t        t        d      t        d      i      d        |t        t        d      t        d      i      d	        |t        i gggggg      d
        |t        i ggggggg      d       y )Nz[[[[[[[]]]]]]]z[[[[[[[...]]]]]]]rZ   z(((((((),),),),),),)r[   z(((((((...),),),),),),)rY   z&{((((((),),),),),): ((((((),),),),),)}z,{((((((...),),),),),): ((((((...),),),),),)}z[[[[[[{}]]]]]])r1   rB   r   rr   s     r   test_nestingzReprTests.test_nesting   s    
12$zl^./
1B4&
|n 34
1[^45
1[^78
1{1~A013	5
1{1~A019	; 	12$zl^./
1B4&
|n 34r   c                     d } |       j                   d   }| j                  t        |      d       | j                  t        |      d       y )Nc                      dfd} | S )N*   c                       S r   r	   r   s   r   innerz4ReprTests.test_cell.<locals>.get_cell.<locals>.inner   s    r   r	   )r   r   s    @r   get_cellz%ReprTests.test_cell.<locals>.get_cell   s    ALr   r   z6<cell at 0x[0-9A-Fa-f]+: int object at 0x[0-9A-Fa-f]+>z<cell at 0x.*\.\.\..*>)__closure__assertRegexr   rB   )r3   r   r   s      r   	test_cellzReprTests.test_cell   sK    	
 J""1%a #C 	D189r   c                 h   | j                   } |t        t        j                        d        G d d      }t	        |j
                        }| j                  t        |      d|j
                  d       t        |j
                        }| j                  t        |      d|j
                  d       y )Nz"<method 'items' of 'dict' objects>c                       e Zd Zd Zy)%ReprTests.test_descriptors.<locals>.Cc                      y r   r	   )clss    r   fooz)ReprTests.test_descriptors.<locals>.C.foo   s    $r   N)__name__
__module____qualname__r   r	   r   r   Cr      s    r   r   z<staticmethod(z)>z<classmethod()r1   r   dictr/   staticmethodr   classmethod)r3   rC   r   r   s       r   test_descriptorszReprTests.test_descriptors   s    
4

AB
	 	aN155)2">?aM!%%""=>r   c                     t        g d      }t        |      }ddd}t        |       t        |       t        |       y )N)              ?               @y              @rI   rL   )r   r   )rj   rk   rB   )r3   r   yzs       r   test_unsortablezReprTests.test_unsortable   s5     aLN	!	!	!r   c                     dt        d       dft        d      dft        d      dft        d      dft        d      dft        d      dft        dd	
      dft        d      dft        d      dft        d      dff
ddt        d       dft        d      dft        d      dft        d      dft        d      dft        d      dft        dd	
      dft        d      dft        d      dft        d      dff
ddddg dgt        d       dft        d      dft        d      dft        d      dft        d      dft        d      dft        dd	
      dft        d      dft        d      dft        d      dff
dddt        d      t        d      ggdt        d       dft        d      dft        d      dft        d      dft        d      dft        d      d ft        dd	
      d!ft        d      dft        d      d"ft        d      d#ff
dg}|D ]  }| j                  |d$   %      5  |d&   D ]  \  }}| j                  |'      5  t	               }|j                         D ]  \  }}t        |||         |j                  |d$         }t        j                  |      }| j                  ||       d d d         	 d d d         y # 1 sw Y   xY w# 1 sw Y   xY w)(Nr	   r-   rW   FTr   rI   rX   rL   )r-   r!   r   z-->z....)objecttestsz''spameggshamz>                        [1, 'spam', {'eggs': True, 'ham': []}]z                        [
                        1,
                        'spam',
                        {
                        'eggs': True,
                        'ham': [],
                        },
                        ]z                        [
                         1,
                         'spam',
                         {
                          'eggs': True,
                          'ham': [],
                         },
                        ]a                          [
                            1,
                            'spam',
                            {
                                'eggs': True,
                                'ham': [],
                            },
                        ]a                          [
                        -->1,
                        -->'spam',
                        -->{
                        -->-->'eggs': True,
                        -->-->'ham': [],
                        -->},
                        ]a                          [
                        ....1,
                        ....'spam',
                        ....{
                        ........'eggs': True,
                        ........'ham': [],
                        ....},
                        ]two)g      @g@)   	   )rx      )rI   s   threezY                        {1: 'two', b'three': [(4.5, 6.7), [{8, 9}, frozenset({10, 11})]]}a                          {
                        1: 'two',
                        b'three': [
                        (
                        4.5,
                        6.7,
                        ),
                        [
                        {
                        8,
                        9,
                        },
                        frozenset({
                        10,
                        11,
                        }),
                        ],
                        ],
                        }aH                          {
                         1: 'two',
                         b'three': [
                          (
                           4.5,
                           6.7,
                          ),
                          [
                           {
                            8,
                            9,
                           },
                           frozenset({
                            10,
                            11,
                           }),
                          ],
                         ],
                        }a                          {
                            1: 'two',
                            b'three': [
                                (
                                    4.5,
                                    6.7,
                                ),
                                [
                                    {
                                        8,
                                        9,
                                    },
                                    frozenset({
                                        10,
                                        11,
                                    }),
                                ],
                            ],
                        }z                        {
                            1: 'two',
                            b'three': [
                                (...),
                                [...],
                            ],
                        }a                          {
                        -->1: 'two',
                        -->b'three': [
                        -->-->(
                        -->-->-->4.5,
                        -->-->-->6.7,
                        -->-->),
                        -->-->[
                        -->-->-->{
                        -->-->-->-->8,
                        -->-->-->-->9,
                        -->-->-->},
                        -->-->-->frozenset({
                        -->-->-->-->10,
                        -->-->-->-->11,
                        -->-->-->}),
                        -->-->],
                        -->],
                        }a                          {
                        ....1: 'two',
                        ....b'three': [
                        ........(
                        ............4.5,
                        ............6.7,
                        ........),
                        ........[
                        ............{
                        ................8,
                        ................9,
                        ............},
                        ............frozenset({
                        ................10,
                        ................11,
                        ............}),
                        ........],
                        ....],
                        }r   )test_objectr   )repr_settings)r   rj   rk   subTestr   r/   r0   r   textwrapdedentr1   )	r3   
test_cases	test_caser   expected_reprrB   	attributevalueresulting_reprs	            r   test_valid_indentzReprTests.test_valid_indent   s    &-'.&-^T*^T*^T*Q/6_d+'.($/  &-'.&-^T*^T*^T*Q/6_d+'.($/  ftB&?@& )B C' *  & )  ^ &  ^ &  ^ &  Q/ 2  _ '  ' *  ( + WTWt "Vi&9: & )] ^' * ( & ) ( ^ & ( ^ & ( ^ & ( Q/ 2  _ ' ( ' * ( ( + oktol

Z	 $ 		HI)H*=> H4=g4F H0M=MB H F0=0C0C0E 9,Iu#Ay%89)/	(0C)D(0(F((GH HHH H		HH HH Hs%   L6A,K8	"
L8L=LL	c           	         dddg dg}dt         dffdt         dffdt        d ffg t        d ffd	t        d ffd
gt        d fft               t        d ffg}|D ]q  \  }\  }}| j                  |      5  t	               }||_        |xs t        |       }| j                  ||      5   |j                  |       d d d        d d d        s y # 1 sw Y   xY w# 1 sw Y   xY w)NrI   r   Tr   z[Nn]egative|[Pp]ositiver	   )rX   rX   r   )	
ValueError	TypeErrorr   r   r   r-   typeassertRaisesRegexr   )r3   r   r   r-   expected_errorexpected_msgrB   s          r   test_invalid_indentzReprTests.test_invalid_indent4  s   &4";<*789*789)T"#)T"#It$%TIt$%X	4()

 7A 	(2F2^\V, (F!+@$v,++NLI (AFF;'(	( (	(
( (	( (s$   04C$C
7C
CCC	N)r   r   r   r9   rF   rS   rm   rs   ru   r|   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r      s_    M."&37j@V/"]
;35"	:?wHr	(r   r   c                 l    t        | dd      5 }|j                  |       d d d        y # 1 sw Y   y xY w)NwASCII)encoding)openwrite)pathtextfps      r   
write_filer   G  s0    	dC'	* b
  s   *3c                       e Zd ZdZd Zd Zd Zd Zd Z e	j                  d      d        Zd	 Zd
 Zd Z e	j                  d      d        Zy)LongReprTest3areallylongpackageandmodulenametotestreprtruncationc                 L   t         j                  j                  | j                        | _        t         j                  j                  | j                  | j                        | _        t        j                  | j                  d       t        j                  | j                         t        t         j                  j                  | j                  d             t        j                  | j
                  d       t        j                  | j
                         t        t         j                  j                  | j
                  d             t        j                         | _        t        j                  j                  d| j                         t        j                          y )NT)ignore_errorsz__init__.pyr   )osr   joinlongnamepkgname
subpkgnameshutilrmtreemkdirr   getcwdheresysinsert	importlibinvalidate_cachesr3   s    r   setUpzLongReprTest.setUpN  s    ww||DMM2'',,t}}dmmDdll$7
"'',,t||]CDdooT:
!"'',,tFGIIK	499% 	##%r   c                    g }t        j                  | j                        D ]?  \  }}}||z   D ]1  }|j                  t         j                  j                  ||             3 A |j                  | j                         |j                          |j                          |D ]L  }t         j                  j                  |      rt        j                  |       8t        j                  |       N t        j                  d= y )Nr   )r   walkr   appendr   r   sortreverseisdirrmdirremover   )r3   actionsdirpathdirnames	filenamesnameps          r   tearDownzLongReprTest.tearDown_  s    ,.GGDLL,A 	<(GXy 9, <rww||GT:;<	< 	t||$ 	Aww}}Q		!		
 HHQKr   c                    t        | j                        }|dt        | j                        dz   z  z  }|t        |      dz   t        d      z   z  }|t        t        j                  j                  d            z   t        d      z
  }t        j                  dk(  r|dk\  r| j                  d|z         y t        j                  dk(  rt        rt        d|       y y y )	NrL   rI   .pyzx.pynti  zDtest paths too long (%d characters) for Windows' 260 character limitzcached_path_len =)lenr   r   r   utilcache_from_sourcer   r  skipTestr   print)r3   module_namesource_path_lencached_path_lens       r   _check_path_limitationsz$LongReprTest._check_path_limitationsn  s    dii.1DMM 2Q 6773{+a/#e*<<*	0089:<?KH77d?#5 MM`+, -WW_%7 ")_r   c                    d | _         | j                  | j                         t        t        j
                  j                  | j                  | j                  dz                t        j                          ddl
m} |}| j                  t        |      d|j                  d|j                  d       | j                  t        t               d       y )Nr  r   )r   z<module z from r   z<module 'sys' (built-in)>)maxDiffr  r   r   r   r   r   r   r   r   gareallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncationr   r1   r   r   __file__r   )r3   r   modules      r   test_modulezLongReprTest.test_module  s    $$T\\2"'',,tu8LMN##% 	pDfQWQ`Q`'abc$?@r   c                 ,   | j                  d       | j                  }t        t        j                  j                  | j                  d      d       t        j                          ddl	m
}  |t        |j                        d|j                  z         y )Nr   zfoo.pyzclass foo(object):
    pass
r   )r   z<class '%s.foo'>)r  r1   r   r   r   r   r   r   r   r  r   r   r   )r3   rC   r   s      r   	test_typezLongReprTest.test_type  sl    $$U+277<<: = 	 	##%
4=!CLL0	2r   zneed a suitable objectc                      y r   r	   r   s    r   r   zLongReprTest.test_object  s     	r   c                 &   | j                  d       t        t        j                  j	                  | j
                  d      d       t        j                          ddlm	} | j                  t        |j                        d|j                  z         y )Nbarzbar.pyzclass bar:
    pass
r   )r!  z<class '%s.bar'>)r  r   r   r   r   r   r   r   r  r!  r1   r   r   )r3   r!  s     r   
test_classzLongReprTest.test_class  se    $$U+277<<: = 	 	##%cgg(:S\\(IJr   c                 N   | j                  d       t        t        j                  j	                  | j
                  d      d       t        j                          ddlm	} |j                         }| j                  t        |      j                  d|j                  z               y )Nbazzbaz.pyzclass baz:
    pass
r   )r$  z<%s.baz object at 0x)r  r   r   r   r   r   r   r   r  r$  r   r   r   r   )r3   r$  ibazs      r   r   zLongReprTest.test_instance  sw    $$U+277<<: = 	 	##%wwyT
--"S\\13 	4r   c                    | j                  d       | j                  }t        t        j                  j                  | j                  d      d       t        j                          ddl	m
} t        |j                  j                        }| j                   |j                  d      |       |j                         }t        |j                        }| j                   |j                  d|j                   d      |       y )	Nquxzqux.pyzclass aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:
    def amethod(self): pass
r   )r'  z<function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.amethodz<bound method aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.amethod of <z.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa object at 0x)r  r1   r   r   r   r   r   r   r   r  r'  r   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamethodr   r   r   )r3   rC   r'  rB   iquxs        r   test_methodzLongReprTest.test_method  s    $$U+277<<: = 	 	##%  ^  ^  f  f  g  &B  C  EF  	G  \  \  ^|| !"	$r   z1needs a built-in function with a really long namec                      y r   r	   r   s    r   r   z"LongReprTest.test_builtin_function  s     	r   N)r   r   r   r   r   r
  r  r  r  unittestskipr   r"  r   r+  r   r	   r   r   r   r   K  sr    DH&"8$A
2 X]]+, -
	K
4$& X]]FG Hr   r   c                       e Zd Zd Zd Zy)r   c                     || _         y r   rD   )r3   rD   s     r   __init__zClassWithRepr.__init__  s	    r   c                      d| j                   z  S )NzClassWithRepr(%r)r1  r   s    r   __repr__zClassWithRepr.__repr__  s    "TVV++r   N)r   r   r   r2  r4  r	   r   r   r   r     s    ,r   r   c                       e Zd Zd Zy)r   c                     t        d      )Nz+This should be caught by Repr.repr_instance)	Exceptionr   s    r   r4  zClassWithFailingRepr.__repr__  s    EFFr   N)r   r   r   r4  r	   r   r   r   r     s    Gr   r   c                   6    e Zd ZdZd Zd Z e       d        Zy)MyContainerz"Helper class for TestRecursiveReprc                 $    t        |      | _        y r   )listvalues)r3   r<  s     r   r2  zMyContainer.__init__  s    6lr   c                 :    | j                   j                  |       y r   )r<  r   )r3   r   s     r   r   zMyContainer.append  s    5!r   c                 `    ddj                  t        t        | j                              z   dz   S N<z, r   r   mapstrr<  r   s    r   r4  zMyContainer.__repr__  &    TYYs3455;;r   N)r   r   r   __doc__r2  r   r   r4  r	   r   r   r9  r9    s$    (#"< <r   r9  c                   (    e Zd Z ed      d        Zy)MyContainer2rP   c                 `    ddj                  t        t        | j                              z   dz   S r?  rA  r   s    r   r4  zMyContainer2.__repr__  rD  r   N)r   r   r   r   r4  r	   r   r   rG  rG    s    E< <r   rG  c                   0    e Zd Zd ZeZ  e       e      Zy)MyContainer3c                      y)zTest document contentNr	   r   s    r   r4  zMyContainer3.__repr__  s    r   N)r   r   r   r4  wrappedr   wrapperr	   r   r   rJ  rJ    s     Gnw'Gr   rJ  c                       e Zd Zd Zd Zd Zy)TestRecursiveReprc                    t        t        d            }|j                  |       |j                  d       |j                  |       | j                  t	        |      d       t        t        d            }|j                  |       |j                  d       |j                  |       | j                  t	        |      d       y )Nabcder   z<a, b, c, d, e, ..., x, ...>z<a, b, c, d, e, +++, x, +++>)r9  r;  r   r1   r   rG  )r3   ms     r   test_recursive_reprz%TestRecursiveRepr.test_recursive_repr  s    W&			a"@Ag'			a"@Ar   c                     ddl m} t        j                  }t        j                  }|D ](  }| j                  t        ||      t        ||             * y )Nr   )WRAPPER_ASSIGNMENTS)	functoolsrU  rJ  rL  rM  assertIsr2   )r3   assignedrL  rM  r  s        r   test_assigned_attributesz*TestRecursiveRepr.test_assigned_attributes  sH    =&&&& 	JDMM''40''42HI	Jr   c                     G d d      } |       j                   j                  }| j                  t        |      d       | j                  |d   j                  d       | j                  |d   j
                  t               y )Nc                   B     e Zd ZW   e        d fdc             Z Zy)1TestRecursiveRepr.test__type_params__.<locals>.Myc                 .    d fdx}f| d|d fdcS )Tc                  
      S r   rC  __classdict__s   r   r^  z3TestRecursiveRepr.test__type_params__.<locals>.My.T  s    Cr   defaultreturnc                     |S r   r	   )r3   rc  s     r   r4  z:TestRecursiveRepr.test__type_params__.<locals>.My.__repr__  s    r   r`  )	.defaultsr^  rb  s     r   z <generic parameters of __repr__>zRTestRecursiveRepr.test__type_params__.<locals>.My.<generic parameters of __repr__>  s      3 r   N)r   )r   r   r   r   r4  __classdictcell__ra  s   @r   Myr\    s      r   rh  rI   r   r^  )r4  __type_params__r1   r  r   	__bound__rC  )r3   rh  type_paramss      r   test__type_params__z%TestRecursiveRepr.test__type_params__   sh    	 	
 dmm33[)1-Q00#6Q1137r   N)r   r   r   rS  rY  rl  r	   r   r   rO  rO    s    
BJ	8r   rO  __main__)rE  r   r   r   r   importlib.utilr-  r   test.supportr   test.support.os_helperr   reprlibr   rB   r   r   r   TestCaser   r   r   r   r   r9  rG  rJ  rO  r   mainr	   r   r   <module>rt     s   
  	        4   "j(!! j(X~8$$ ~@, ,G G< <<; <
( (8)) 8> zHMMO r   