
    daf                        d 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Z G d d      Z G d d	e      Z G d
 de      Z G d d      Z G d de      Z G d d      Z G d d      Zy)zF
Common tests shared by test_unicode, test_userstring and test_bytes.
    N)support)import_helper)UserListc                        e Zd ZddZd Zd Zy)Sequencec                     || _         y Nseq)selfr   s     ,/root/Python-3.12.4/Lib/test/string_tests.py__init__zSequence.__init__   s    sDH    c                 ,    t        | j                        S r	   )lenr   r   s    r   __len__zSequence.__len__   s    c$((m+r   c                      | j                   |   S r	   r
   )r   is     r   __getitem__zSequence.__getitem__   s    TXXa[0r   N)wxyz)__name__
__module____qualname__r   r   r    r   r   r   r      s    2+0r   r   c                       e Zd Zd Zd Zy)BadSeq1c                     g d| _         y )N)   hello{   r
   r   s    r   r   zBadSeq1.__init__   s	    #4r   c                 4     dj                   | j                   S )Nz{0} {1} {2})formatr   r   s    r   __str__zBadSeq1.__str__   s    2m22DHH==r   N)r   r   r   r   r$   r   r   r   r   r      s    4=r   r   c                       e Zd Zd Zd Zy)BadSeq2c                     g d| _         y )Nabcr
   r   s    r   r   zBadSeq2.__init__   s    ?r   c                      y)N   r   r   s    r   r   zBadSeq2.__len__   s    ar   N)r   r   r   r   r   r   r   r   r&   r&      s    2r   r&   c                      e Zd ZdZdZd Zd Zd Zd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 ej8                  ej<                  dkD  xs  ej@                  d      dk7  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- Z0d. Z1d/ Z2d0 Z3d1 Z4d2 Z5d3 Z6d4 Z7y)5BaseTestNFc           
         t        |t              r| j                  j                  |      S t        |t              r|D cg c]  }| j                  |       c}S t        |t              r(t        |D cg c]  }| j                  |       c}      S t        |t              rLt        |j                         D cg c]'  \  }}| j                  |      | j                  |      f) c}}      S |S c c}w c c}w c c}}w r	   )	
isinstancestr	__class__	type2testlistfixtypetupledictitems)r   objxkeyvalues        r   r6   zBaseTest.fixtype)   s    c3>>++C00T"-01DLLO11U#37a$,,q/788T"#&99;C S!4<<#67  
 J 27s    C14C6;,C;
c                 l    | j                  t        | j                  d            | j                         y )N123)assertIstyper6   r4   r   s    r   test_fixtypezBaseTest.test_fixtype8   s"    d4<<./@r   c                    | j                  |      }| j                  |      }| j                  |      }|j                         D ci c]  \  }}|| j                  |       }}} t        ||      |i |}| j                  ||       ||u rJ	  G d d| j                  j
                        }	 |	|      } t        ||      | }| j                  ||       y y c c}}w # t        $ r Y y w xY w)Nc                       e Zd Zy)$BaseTest.checkequal.<locals>.subtypeNr   r   r   r   r   r   subtyperE   J   s    r   rG   )r6   r9   getattrassertEqualr3   r4   assertIsNot	TypeError)
r   resultr:   
methodnameargskwargskv
realresultrG   s
             r   
checkequalzBaseTest.checkequal<   s    f%ll3||D!06?1!T\\!_$??-WS*-t>v>
	
 *2dnn66 
 cl5WS*5t<
  j1  @  s   CC 	C+*C+expected_msgc                L   | j                  |      }| j                  |      }| j                  |      5 } t        ||      |  d d d        | j                  t	        j
                        d       |&| j                  t	        |j
                        |       y y # 1 sw Y   WxY w)N )r6   assertRaisesrH   assertNotEqualr2   	exceptionrI   )r   excr:   rM   rU   rN   cms          r   checkraiseszBaseTest.checkraisesT   s    ll3||D!s# 	,r$GC$d+	,C-r2#S.= $	, 	,s   BB#c                 f    | j                  |      }| j                  |      } t        ||      |  y r	   )r6   rH   )r   r:   rM   rN   s       r   	checkcallzBaseTest.checkcall^   s/    ll3||D! Z $'r   c                    | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  ddddd       | j                  ddddd	       | j                  ddddd
       | j                  ddddd       | j                  dddddd       | j                  dddddd	       | j                  dddddd
       | j                  dddddd       | j                  ddddd       | j                  ddddd       | j                  ddddd	       | j                  ddddd
       | j                  ddddd       | j                  dddd       | j                  dddddd       | j                  ddddt        j                  d       | j                  dddd       | j                  dddddd       | j                  ddddt        j                  d       | j                  t        dd       | j
                  r| j                  dddd       n| j                  t        ddd       g d}d}t        |      }t               }t        ||z        D ]W  }g }t        |      D ]%  }t        ||      \  }}|j                  ||          ' |j                  dj                  |             Y |D 	cg c]  }	| j                  |	       }}	|D ]  }t        |      }
|D ]  }|j                  |      }|rDt        |
t        |j                  || j                  d                  z
  t        |            \  }}nt        |      dz   d}}|s||k7  sr| j!                  |d|d|       | j!                  |||d|d|         y c c}	w )N   aaacountr)   r   r*         
   rW      xxr    *   )rW   r)   r*   r   z
 != 0 for z != z for )rS   sysmaxsizer]   rK   contains_bytesr   setrangedivmodappendaddjoinr6   rc   replacerI   )r   charsetdigitsbaseteststringsr   entryjmtsnr1r2rems                 r   
test_countzBaseTest.test_countc   s   5'3/5'3/5'3/5'3/5'3/5'3/5'3/5'325'335'335'345'3155'3265'3265'3375'2q15'2q15'2r25'2r25'2s32w+2wAq12wCKK;2w-2wa32wckk1=GW5OOAw4Y"=
 !7|etv~& 	,AE6] )a1WQZ() OOBGGEN+	, 3>>Bt||B'>> 	NAAA  	NWWQZ$QQYYq$,,r:J-K)L%L%(V-GB "!fQhB"($$S!a-HI$$R"b!-LM	N	N ?s   O+c           
         | j                  dddd       | j                  ddddd       | j                  ddddd	       | j                  dddd
d       | j                  dddd
d       | j                  dddd
d	       | j                  dddd       | j                  ddddd	       | j                  ddddd	d       | j                  ddddd	d        | j                  ddddd d       | j                  t        dd       | j                  r| j                  dddd       n| j                  t        ddd       | j                  dd
dd
       | j                  dd
dd
dd       | j                  dd
dd
t        j
                  d       | j                  dd
dd       | j                  dd
dddd       | j                  dd
ddt        j
                  d       | j                  ddddt        j
                  dz   d       g d}d}t        |      }t               }t        ||z        D ]W  }g }t        |      D ]%  }t        ||      \  }}|j                  ||          ' |j                  d
j                  |             Y |D 	cg c]  }	| j                  |	       }}	|D ]\  }|D ]U  }|j                  |      }
|
dk7  }||v }| j                  ||       |
dk7  s5| j                  ||
|
t        |      z    |       W ^ y c c}	w )Nr   abcdefghiabcfindabc	   re   rg   defri   rW   ra   rd   rrarrrrrrrrrar)         r    rk   rj   abxxxrW   r)   r*   r+      )rS   r]   rK   rn   rl   rm   r   ro   rp   rq   rr   rs   rt   r6   r   rI   r   rv   rw   rx   ry   r   rz   r{   r|   r}   locr   r   s                r   	test_findzBaseTest.test_find   s   >659>65!<NFE1=5&"a05&"a0E62q1 	OVS9OVS!<OVS!Q?OVS!TBOVS$BGV4OOB4Y<2vr*BAq1BCKK;B-Ba3Bckk1= 	D&%q!D
 &7|etv~& 	,AE6] )a1WQZ() OOBGGEN+	, 3>>Bt||B'>> 	;A  ;ffQiRi!V  R("9$$Qs3s1v:%6:;	; ?s   K?c           
         | j                  dddd       | j                  dddd       | j                  dddd       | j                  d	ddd
       | j                  ddddd       | j                  ddddd       | j                  d	dddd       | j                  dddd       | j                  ddddd       | j                  d	ddddd       | j                  dddddd        | j                  ddddd d       | j                  t        dd       | j                  r| j                  d	ddd       n| j                  t        ddd       g d}d}t	        |      }t               }t        ||z        D ]W  }g }t        |      D ]%  }t        ||      \  }}|j                  ||          ' |j                  dj                  |             Y |D 	cg c]  }	| j                  |	       }}	|D ]\  }|D ]U  }|j                  |      }
|
d	k7  }||v }| j                  ||       |
d	k7  s5| j                  ||
|
t	        |      z    |       W ^ | j                  d	dddt        j                  dz   d       | j                  dddd       y c c}	w )Nr   r   rfindr   r   rW   r   abcdrg   abczra   ri   r   r)   r   rd   r    rk   r   r   r   r   re   u   <......м...<)rS   r]   rK   rn   r   ro   rp   rq   rr   rs   rt   r6   r   rI   rl   rm   r   s                r   
test_rfindzBaseTest.test_rfind   s}   NGU;NGR8>7F;NGV<5'2q15'2q1E7B2 	OWc:OWc1=OWc1a@OWc1dCOWc4CGW5OOB"5Y"=
 &7|etv~& 	,AE6] )a1WQZ() OOBGGEN+	, 3>>Bt||B'>> 	;A  ;ggajRi!V  R("9$$Qs3s1v:%6:;	; 	D'5#++/1E 	-w< ?s   J	c                    | j                  dddd       | j                  dddd       | j                  dddd       | j                  ddddd	       | j                  t        ddd
       | j                  t        dddd	       | j                  t        dddd       | j                  t        dddd       | j                  dddd       | j                  ddddd       | j                  t        ddddd       | j                  dddddd        | j                  ddddd d       | j                  t        dd       | j                  r| j                  t        ddd       y | j                  t        ddd       y )Nr   r   indexrW   ra   r   r   r   re   hibabcdefghiab	abcdefghighir-   rg   rd   r   r)   r   ri   r   r    rk   rS   r]   
ValueErrorrK   rn   r   s    r   
test_indexzBaseTest.test_index  sQ   >7B7>7E:>7E:>7E1=^WeD]GUAF['5!D['5"E 	OWc:OWc1=_gsAqIOWc1dCOWc4CGW5Z'2>Y"=r   c                 ,   | j                  dddd       | j                  dddd       | j                  dddd       | j                  d	dddd	d
       | j                  t        ddd       | j                  t        dddd       | j                  t        dddd	d
       | j                  t        dddd	d       | j                  t        dddd	d
       | j                  dddd       | j                  ddddd       | j                  t        ddddd       | j                  dddddd        | j                  ddddd d       | j                  t        dd       | j                  r| j                  t        ddd       y | j                  t        ddd       y )Nr   r   rindexrW   ra   r   r   r   r   rg   r   	defghiabcre   r   r   r-   r   r)   ri   r   rd   r    rk   r   r   s    r   test_rindexzBaseTest.test_rindex*  so   NHb9NHe<NHe<NHeQC^XuE[(E1E[(E1bI[(E1aH[(E1bI 	OXs;OXsA>_hQJOXsAtDOXsD!DGX6Z(B?Y2>r   c                 |     d  fd}t         j                  }t        d      D ]
  } ||         |d        y)z-Cover the special path for periodic patterns.c                 x    t        t        |            D ]  }|j                  | |      s|c S  | dk(  r|dk(  ryy)NrW   r   rg   )rp   r   
startswith)psr   s      r   reference_findz;BaseTest.test_find_periodic_pattern.<locals>.reference_findF  sA    3q6] <<1%H Bw17r   c                    t         j                  }dj                   |d | d                   | dd      z  }|d t        |       | d      z
   }dj                   |d | d                  }dj                   |d | d                  }||z   |z   }j	                  ||      5  j                   ||      |d	|       d d d        y # 1 sw Y   y xY w)
NrW   abcderf   )rP      abcdef  )r   textr   )randomchoicesrt   r   subTestrS   )	rrr   p0r   leftrightr   r   r   s	          r   check_patternz:BaseTest.test_find_periodic_pattern.<locals>.check_patternN  s    nnGBrF34r"bzAB$CGbf$%A7778r$x89DGGGH49:E!8e#D- 1q$ 7 $fa11 1 1s   +CC  c                       y)Nr   r   )rN   s    r   <lambda>z5BaseTest.test_find_periodic_pattern.<locals>.<lambda>^  s    r   N)r   	randrangerp   )r   r   r   _r   s   `   @r   test_find_periodic_patternz#BaseTest.test_find_periodic_patternD  s?    			1 t 	A"	 	o&r   c                 H   t        d      D cg c]  }dD ]
  }|d|z  z    }}}|D cg c]  }|| j                  d|z  dz         f }}t        d      D cg c]  }dD ]
  }|d|z  z    }}}|D cg c]  }|| j                  d|z  dz         f }}|D ]m  \  }}	|	d d }
|D ]^  \  }}||k  rd||z
  z  nd}| j                  |	j                  |      |||f	       | j                  |
j                  |      d||f	       ` o y c c}}w c c}w c c}}w c c}w )
Nr   )re   rd   r   rf   abcabda)re   ra   rg   r   )msg)rp   r6   rI   r   )r   er)   haystack_repeatsr~   	haystacksneedle_repeatsr|   needles	haystack1	haystack2needleanswer1s                r   test_find_many_lengthszBaseTest.test_find_many_lengths`  sJ   /4QxI!IAAAIIIIIBRSQagai$&678S	S-21XFvF!!b!e)F)FF@NO1At||GAI$456OO% 	HLAy!#2I$ H	6)*a!q1u+R  !7qe L  !7!A GH	H JSFOs   D DD9 Dc                    dD ]  }d|z  d|z  }}||z   |z   |z   |z   }||z   |z   |z   }| j                  d|d|       | j                  d|d|       | j                  t        |      ||z   d|       | j                  d||z   d|        y )	N)r   '  i i@B r)   r*   rg   r   r   rc   re   rS   r   )r   NABhaystackr   s         r   test_adaptive_findzBaseTest.test_adaptive_findn  s     2 	CA7C!GqA1uqy1}q(HUQY]FOOB&&9OOAx&9OOCM8f+<ffMOOAx&0'6B	Cr   c                     dD ]t  }d|z  }d|dz
  z  dz   dz  }| j                  d|d|       | j                  d|d	|       | j                  t        |      ||z   d|       | j                  d||z   d	|       v y )
N)r   i  r   i0u  r   re   r*   rd   rg   r   r   rc   r   )r   r   r   r   s       r   test_find_with_memoryzBaseTest.test_find_with_memoryz  s    + 	CAAXFac
S(A-HOOB&&9OOAx&9OOCM8f+<ffMOOAx&0'6B	Cr   c                 4   d}d|z  dz   d|z  z   }d|z  |z   }| j                  t        |      t        |      z
  |d|       dd|z  z   dz   }|d	d
 d|z  z   |z   d|z  z   }| j                  t        |      |t        d      z  z
  t        |      z
  |d|       y	)z)When the table of 8-bit shifts overflows.id  r)   r*   babbaar   dddr   eeeNrg   ddeededdeededer   )r   r   pattern1text1pattern2text2s         r   test_find_shift_table_overflowz'BaseTest.test_find_shift_table_overflow  s     7S=37*1x'E
3x=0vx	1
 519$u,"q 008;dQhFE
Qs4y[03x=@vx	1r   c                     | j                  ddd       | j                  ddd       | j                  t        ddd       y )Nr    HeLLolowerrk   rS   r]   rK   r   s    r   
test_lowerzBaseTest.test_lower  6    '2'2GWb9r   c                     | j                  ddd       | j                  ddd       | j                  t        ddd       y )NHELLOr   upperr    rk   r   r   s    r   
test_upperzBaseTest.test_upper  r   r   c                 l   | j                  ddd       | j                  dddd       | j                  dddd       | j                  ddd       | j                  dddd       | j                  d	ddd       | j                  d
d
dd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  t        dddd       t        j                  dk  r@t        j                  d      dk(  r'| j                  t        ddt        j                         y y y )Nzabcab      def
g       hizabcab	def
g	hi
expandtabsr-   zabcab  def
g   hiri   zabc
ab      def
g       hizabc
ab	def
g	hizabc
ab  def
g   hizabc
ab
def
g
hi)tabsizez  a
 bz 	a
	bre   r    rk           Pz	a
	b)rS   r]   rK   rl   rm   structcalcsizeOverflowErrorr   s    r   test_expandtabszBaseTest.test_expandtabs  sD   68M$	&68M$a	).0E$a	)8:Q$	&8:Q$a	)02I$a	)35P$a	) 	68M$a 	 	1.0E$a 	 	1 		;a@G\2rB;;'"vs';q'@]'s{{D (A"r   c                 	   | j                  g dddd       | j                  dgdddd       | j                  ddgdddd       | j                  g d	dddd
       | j                  g ddddd       | j                  g ddddd       | j                  g ddddt        j                  d
z
         | j                  dgdddd       | j                  g ddddd
       | j                  dgddd       | j                  dgddd       | j                  ddgddd       | j                  ddgddd       | j                  g dddd       | j                  g ddddd
       | j                  dgdz  dd d dd       | j                  dgdz  dgz   dd d ddd       | j                  g dddd        | j                  dd!gddd d       | j                  g d"ddd d
       | j                  g dddd d       | j                  g dddd d       | j                  g dddd t        j                  d#z
         | j                  dgddd d       | j                  g d$d%dd d
       | j                  ddgd&dd'       | j                  dd(gd)dd'       | j                  g d*d+dd'       | j                  dd,gd-dd.       | j                  ddgd/dd/       | j                  d/gd/dd/d       | j                  d0d0gd1dd2       | j                  d3gd3dd4       | j                  dgddd/       | j                  d5gd5dd/       | j                  d6d7gd8dd9       | j                  g d:d;dd9       | j                  dgdz  d<d d= dd>       | j                  dgdz  d<d d= dd>d?       | j                  dgd@z  dAgz   d<d d= dd>d@       | j                  g ddddB       | j                  ddgddddC       | j                  ddgddddD       | j                  ddgddddE       | j                  ddFgdGddC       | j                  t        dHddIdIdI       | j                  t
        dHdd       | j                  t
        dHddd       y )JNr)   r*   r+   da|b|c|dsplit|r   r)   zb|c|dre   )r)   r*   zc|drd   ra   ri   )r)   rW   zb||c||d
a||b||c||dr   rW   endcase 	endcase |z
 startcasez| startcaserW   bothcaserW   
|bothcase|)r)   rW   zb c da  b c d r   (a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|rg      	a|a|a|a|a
a//b//c//d//zb//c//d)r)   r*   zc//drf   )r)   rW   zb////c////da////b////c////dendcase testtest
 begincasetest begincaserW   z
 bothcase rW   test bothcase testbcabbbcbbrb   r   abbaabbaaaaaaabaar   bobb
Abbobbbobbbbobb)r   r   rW   AbbobbBbbobbdaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHBLAH      aBLAHasepmaxsplitr#  r%  r%  r#  b c da b c dr    rk   rS   rl   rm   r]   rK   r   r   s    r   
test_splitzBaseTest.test_split  s   ,i#FYa@g	7CC)9gsAF,i#qI,i#qI,i#A	'Ya@,lGS!L&'37b'3/R(+wD\*M7CH,lGSI02H'SY[\]b7CR.'3?b;-/$+Sb>7C	E 	,lGTJi(,qI*L'4K,lGT1M,lGT1M,lGTB	(gtQG02DgtUVWR(.'6J\*,<gvN.0D	)dWgt<R%%8:th>&'59b'51gu5f|WgFIb:s"3WfEb:s"3WfbIbH:-
CR/@	- 	,icJg!7C! 	 	=g!7a 	 	Ag!7QC 	 	Ag!7Q 	 	8 	GWb"bA 	Wgr:Wgr1=r   c                 	   | j                  g ddd       | j                  g ddd       | j                  g dd       | j                  g dddd       | j                  dd	gdddd
       | j                  g ddddd       | j                  g ddddd       | j                  g ddddd       | j                  g ddddt        j                  dz
         | j                  dgdddd       | j                  g ddddd       | j                  dgddd       | j                  dgddd       | j                  ddgddd       | j                  ddgddd       | j                  g dddd       | j                  g ddddd       | j                  dgdz  dd d  dd       | j                  d!gdgd"z  z   dd d  ddd"       | j                  g dd#dd$       | j                  d%d	gd#dd$d
       | j                  g d&d#dd$d       | j                  g dd#dd$d       | j                  g dd#dd$d       | j                  g dd#dd$t        j                  d'z
         | j                  d#gd#dd$d       | j                  g d(d)dd$d       | j                  ddgd*dd+       | j                  ddgd,dd+       | j                  g d-d.dd+       | j                  d/d0gd1dd2       | j                  ddgd3dd3       | j                  d3gd3dd3d       | j                  d/d/gd4dd5       | j                  d6gd6dd7       | j                  dgddd3       | j                  d8gd8dd3       | j                  d9d:gd;dd<       | j                  g d=d>dd<       | j                  dgdz  d?d d@ ddA       | j                  dgdz  d?d d@ ddAdB       | j                  dCgdgdDz  z   d?d d@ ddAdD       | j                  g ddddE       | j                  g dddd E       | j                  dFd	gddd d
G       | j                  dd	gdddd
H       | j                  dd	gdddd
G       | j                  dd	gddd
dI       | j                  dFd	gddd
H       | j                  t        dJddKdKdK       | j                  t
        dJdd       | j                  t
        dJddd       y )LNr   r)  rsplitz	a  b  c drW   r   r   za|b|cr   re   )za|br+   r   rd   ra   ri   d   r   )za||b||crW   r   r   r   r  z| begincaser   r   r   r  )za  br+   r   r  r  r)   r   r  rg   r  r  r  r  za//b//c)za//br+   r   r   )za////b////crW   r   r	  r  r  r
  r  r  r   r+   r  r  rb   r  r  r  r  r  bbobr   
bbobbbobbAr  )rW   r   r   bbobbBbbobbAr  r  r  r  r!  r   r"  a b cr&  r$  r'  r    rk   r*  r   s    r   test_rsplitzBaseTest.test_rsplit  s   ,iB,k8DB) 	,i3G#	8S!D)9hQG,i3J,i3J,i3C	)Y#qA,lHc1M&(C8b(C0\*M8SIR(+xE,lHcJ02H(TZ\]^b7CR.(C@seBh. #2#r	; 	,lHdKC(,$J*L(D!L,lHdAN,lHdAN,lHdA	'haH02DhPTVWX\*,<hOR(.(FK.0D &	*sWh=R%59%;th$?&(E:b(E2h6|XwG'Jb:s"3XvFb:s"3XvrJ
cU2X-
CR/@ &"	. 	,isK,itL#!8 	 	C#!8S1 	 	>#!8q 	 	B#!8aS 	 	B#!8a 	 	9 	GXr2rB 	Wh;WhA>r   c                    | j                   } |ddddd        |ddddd        |ddddd        |ddddd        |dddddd        |dddddd        |dddddt        j                          |ddddd        |ddddd        |ddddd        |d	dddd
        |ddddd        |dddddd        |dddddt        j                          |dddddd        |dddddd        |dddddd        |dddddd        |dddddd        |ddddd        |ddddd        |dddddd        |dddddt        j                          |dddddd        |dddddd        |dddddd        |dddddd        |dddddd        |ddddd        |ddddd        |dddddd        |dddddt        j                          |dddddd        |dddddd        |dddddd        |dddddd        |dddddd        |dddddd        |ddddd        |ddddd        |ddddd        |d d ddd        |d!d"dddd#        |dd$dd$d        |d%d&dd$d        |dd'dd$d        |dd(dd$d        |d)d*dd$d        |d+d+dd$d        |d,d,dd$d        |d-d.dd$d        |d/d0dd$dt        j                          |d/d0dd$dd        |d/d0dd$dd        |d/d0dd$dd        |d1d0dd$dd        |d0d0dd$dd        |d/d0dd$d        |d2d2dd$d        |d3d3dd$d        |d4d5dd4d        |d6d7dd4d        |d8d9dd4d        |d8d8dd4d        |d:d:dd;d;        |d<d:dd;d=        |d<d:dd;d=t        j                          |d<d:dd;d=d        |d<d:dd;d=d        |d<d:dd;d=d        |d>d:dd;d=d        |d:d:dd;d=d        |d:d:dd?d@        |dAd:ddBdC        |dDdEddBdC        |dFd:ddGdH        |dIdJddGdH        |d:d:ddKdH        |dLdMddNdO        |dLdMddNdOt        j                          |dLdMddNdOd        |dLdMddNdOd        |dLdMddNdOd        |dPdMddNdOd        |dQdMddNdOd        |dMdMddNdOd        |dRdSdd4dT        |dUdVdd4dT        |dSdSddWdW        |dXdYddZd[        |dXdYddZd[d        |dXdYddZd[t        j                          |dXdYddZd[d        |d\dYddZd[d        |dYdYddZd[d        |d]d^ddKd_        |d`daddbdc        |dYdYdd@d[        |dddeddfdg        |dddeddfdgt        j                          |dddeddfdgd        |dddeddfdgd        |dddeddfdgd        |dhdeddfdgd        |dideddfdgd        |dededdfdgd        |dSdjddSd4        |dkdlddSd4        |dmdmdd4dn       | j                  dodpddHdqd       | j                  drdpddHd       | j                  dsdpddHdqd       | j                  dtdpddHdqd       | j                  dtdpddHdqd       | j                  dpdpddHdqd       | j                  dtdpddHdq       | j                  dpdpddudq       | j                  dpdpddudqd       | j                  dvd2dddw       | j                  dxd2dddwd       | j                  d2d2dddwd       | j                  ddddd       | j                  d2d2ddydzd       | j                  d2d2dd{dz       | j                  dd|dd|d       | j                  dd}dd|d       | j                  dud~dd|d       | j                  t        dd       | j                  t        ddd       | j                  t        dddd       | j                  t        dddd       y )NrW   ru   r   r.  z*A**z*1A*1z*1z*-#A*-#z*-#z*-A*-A*-AAz*-rg   ri   ra   z*-A*-Ard   z*-AAre   r   AAA
AAAAAAAAAABCDABACADAr   BCDABCADABACADAABCADABCADAAz*************z^A^a  ^AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA^i  theatertheaterthethethethethether  theatheatheatheathatthaetzhere and rezhere and therezhere and re and rezhere and there and therezhere and re and therer   abcdefgbobbbobobbobXbobbbobobXbbobobaaaaaaa
aaaaaaabobzWho goes there?ozWhO gOes there?OzWhO goes there?r)   qzwho goes there?Wwzwwho goes there?wwzWWho goes there?WWzWho goes there!?!zWho goes there!!zWho goes there??.zTh** ** a t**suezThis is a tissueisz**zTh** ** a tissuezTh** is a tissuecobobbobobcobcobobXcobocobbobobXbobobobbotReyKKjaviKK	ReykjavikrP   KK
ReyKKjavikzA----B----C----zA.B.C.z----u   ...м......&lt;   ...м......<r   z&lt;zham, ham, eggs and hamzspam, spam, eggs and spamspamhamzham, ham, eggs and spamzham, spam, eggs and spambobobobbobobXbobobbobobobXbobobobBOBOBOBbobbyzone@two!three!zone!two!three!@onetwothreezone@two@three!zone@two@three@r;   z-a-b-c--z-a-b-cr   z--xyr?   123123123x123r    rk   h)rS   rl   rm   r]   rK   )r   EQs     r   test_replacezBaseTest.test_replaceQ  s	   __ 	2r9b"%
3Ir3'
2r9c2&
2r9c3'
2r9b"c*
3Ir3,
2r9b"ckk2 	3YB'
5#y"c*
7CB-
9c9b%0
:tYD1
:tYD"5
:tYD#++>
:tYD!4
:tYD!4
8T9b$2
64Ba0
4y"dA. 	2sIsB'
2uib)
2uib"-
2uib#++6
2uib!,
2uib!,
3y#r1-
4	3A.
5%CQ/
2|YR0
5)YR0
5)YR4
5)YR=
5)YR3
5)YR3
69ib!4
7Iy#r15
8Y	3A6
9iCQ7
5'9c2.
5)YR0
5%C,
?OYR@
5"IsB< 	2ui+
69i3
2xE2.
2~y%4
6%y%<
669eR0
7GYr2
=*IubA
!;eR	.
!;eR	%
!;eR	$
!;eR	$
"$>eR	$
%'AeR	$
!;YrR
5%E2.
9iE26 	5(Iub1
9oy%<
9lIub9
9iE26 	/CE
/CE
/CckkR
/CbI
/CaH
/CaH
/CaH
/CaH
/CE
/CE
!5y#sK
/CE
19c3G
/CE 	19dDI
19dD#++V
19dD"M
19dD!L
19dD!L
19dD!L
19dD!L
19dD!L
7GYu5
?OYuE
7GYu5 	=+y#t<
=+y#tR@
=+y#tS[[I
=+y#tQ?
<idA>
;YT1=
h	3?
 "4ifM
;YT: 	#%@fe	%
#%@feS[[	2
#%@feR	)
#%@feQ	(
#%@feQ	(
$&AfeQ	(
%'BfeQ	(
&(CfeQ	( 	7Iy'59
=+YG
9iE7;(*:IsCQRS'7CL(*:IsCQRS(*:IsCQRS(*:IsCQRS(*:IsCQRS(*:IsCP(*:IsCP(*:IsCQRS	5)R=%BQ?uiS!<B	2r2uitQ?uit< 	E9eR8Hi;Y	5"=GY7GY;GYC@GYR@r   c                     d\  }}||z   |z   |z   |z   }||z   |z   |z   }| j                  ||z   ||z   d|dd       | j                  |dz   ||z   d|dd       | j                  |dz   ||z   d|dd       y )N)  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA  BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBru   cccr   re   rd   rS   )r   r   r   AABAAABBAs        r   "test_replace_uses_two_way_maxcountz+BaseTest.test_replace_uses_two_way_maxcount  s    !1A	A!1uqy1}iua	Aiua	Aiua	Ar   r   r   ri   z only applies to 32-bit platformsc                     ddz  }| j                  t        |dd|       | j                  t        |dd|       | j                  t        |dd||z          y )Nr   i   ru   rW   r6  )r]   r   )r   A2_16s     r   test_replace_overflowzBaseTest.test_replace_overflow  sS     uy"eDy#uEy$eLr   c                 ^   | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd	       | j                  d
d
dd
       | j                  d
d
dd       | j                  dddd
       | j                  d
ddd       | j                  t        dd       | j                  t        ddd       | j                  t        dddd       | j                  t        dddd       | j                  t        ddd       y )Namrc  removeprefixspspamspamspamspamspampythonspiderzspam and eggsrW   r   r    rk   rp  )helr   r   s    r   test_removeprefixzBaseTest.test_removeprefix  s
   fnd;
NNFKAAHB3B8."=G^W=G^<G^R@G^REG^S"EG^[Ir   c                 ^   | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd	       | j                  d
d
dd
       | j                  d
d
dd       | j                  dddd
       | j                  d
ddd       | j                  t        dd       | j                  t        ddd       | j                  t        dddd       | j                  t        dddd       | j                  t        ddd       y )Nr  rc  removesuffixr  r  r  r  blamzeggs and spamrW   r   r    rk   rp  )lor  r   r   s    r   test_removesuffixzBaseTest.test_removesuffix)  s
   fnd;
NNFKA?HB3B8."=G^W=G^<G^R@G^REG^S"EG^[Ir   c                     | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  t        ddd	       y )
N hello 
capitalizeHello hello Aaaar  AaAar    rk   r   r   s    r   test_capitalizezBaseTest.test_capitalize;  sf    	9l;(<8(<855G\2>r   c                    | j                  g ddd       | j                  g ddd       | j                  ddgddd d	       | j                  g d
ddd d       | j                  g dddd d       | j                  g dddd d       | j                  g dddd t        j                  d	z
         | j                  dgddd d       | j                  dgddd d       | j                  g dddd d       | j                  g dd       | j                  dgdd       | j                  ddgdd       | j                  ddgddd d	       | j                  dgddd d       | j                  ddgddd d	       | j                  g dddd d       | j                  g dddd d       | j                  ddgdd       d}| j                  dgdz  |d       | j                  dg|dd  gz   |dd d	       | j                  dgdz  d gz   |dd d       d!D ]D  }| j                  d"d#g|d       | j                  d"d#g|dd        | j                  d"d#g|dd d       F y )$N)thisrW  r@  r   functionzthis is the split functionr   r   a b c d r)   r(  r)  re   )r)   r*   zc drd   ra   ri   r   z	  a b c d)r)   r*   zc  d
a  b  c  d	           a    r*     a    b   zb   za    b   c     a    b   c   zb   c   )r)   r*   zc   r(   
	a 	 b  < a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a r   r  za zarf	barfzarf
barfzarfbarfzarfbarfzarfbarfarfbarfrS   rl   rm   r   rb   r*   s      r   test_additional_splitzBaseTest.test_additional_splitD  sU   B('	3 	,j'Bg	7D!D)9gtQG,i$J,i$J,i$A	'YqA['4C*L'4KK1y'2c
M7;f}gtQG)+<gtQOj)+<gtQO*,=waP):GT1Mc
$6@b#w/QR	)3qAbD6)3rB, 	BAOOUFOQ8OOUFOQ>OOUFOQqA		Br   c                    | j                  g ddd       | j                  g ddd       | j                  ddgddd d	       | j                  g d
ddd d       | j                  g dddd d       | j                  g dddd d       | j                  g dddd t        j                  dz
         | j                  dgddd d       | j                  dgddd d       | j                  g dddd d       | j                  g dd       | j                  dgdd       | j                  ddgdd       | j                  ddgddd d	       | j                  dgddd d       | j                  ddgddd d	       | j                  g dddd d       | j                  g dddd d       | j                  ddgddd d        d!}| j                  dgdz  |d       | j                  |d d" gdgz   |dd d	       | j                  d#gdgd$z  z   |dd d$       d%D ]D  }| j                  d&d'g|d       | j                  d&d'g|dd        | j                  d&d'g|dd d       F y )(N)r  rW  r@  r-  r  zthis is the rsplit functionr-  r   r  r2  r   r)  re   )za br+   r   rd   ra   ri   r   r   z	a b c d  )za  br+   r   r  r  r)   r  r*   r    az  a    b   cr  z  a    br+   )r  r*   r+   r(   r  X   r  r  z a  ar   r  r  r  r  r  s      r   test_additional_rsplitzBaseTest.test_additional_rsplith  sf   C6	B 	,j(C#	8T1E)9haH,i4K,i4K,i4B	(Y$B[(D!D*L(D!LK2y(3c
M8<mXtQG(*;Xa	!C(*;Xa	!)+<ha	!):Ha	!c
$6$Kb#x0Sb
cU*C4C	SE"H,c8T2F, 	CAOOUFOQ9OOUFOQ$?OOUFOQ$B		Cr   c                    | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       d}| j                  d	|d       | j                  d
|d       | j                  d|d       | j                  dddd        | j                  dddd        | j                  dddd        | j                  dddd        y )Nr    z   hello   stripzhello   lstripz   hellorstripz 	
abc 	
r   z	abc 	
z	 	
abcrw  )r   r*   s     r   test_strip_whitespacezBaseTest.test_strip_whitespace  s    8
M8<
M8<'2'q'*(!X6(!X6 	>
M8TB
M8TB'48r   c                    | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  d	d
dd
       | j                  dd
dd       | j                  t        dddd       | j                  t        dddd       | j                  t        dddd       y )Nr    xyzzyhelloxyzzyr  xyz
helloxyzzyr  
xyzzyhellor  rW   mississippi
mississippr   rk   r   r   s    r   
test_stripzBaseTest.test_strip  s    !2GUC&75I&75I'59M7MB 	mWcBGWb"=GXr2>GXr2>r   c                     | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  d	dddd
       | j                  t        dd       y )Nz
abc       r   ljustrf   zabc   r   ra   rd   z
abc*******r5  r   r   s    r   
test_ljustzBaseTest.test_ljust  p    eWb9%!4ugq1ugq1eWb#>E73r   c                     | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  d	dddd
       | j                  t        dd       y )Nz
       abcr   rjustrf   z   abcr   ra   rd   z
*******abcr5  r   r   s    r   
test_rjustzBaseTest.test_rjust  r  r   c                     | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  d	dddd
       | j                  t        dd       y )Nz
   abc    r   centerrf   z abc  r   ra   rd   z
***abc****r5  r   r   s    r   test_centerzBaseTest.test_center  sp    eXr:%15uh2uh2eXr3?E84r   c                 Z    | j                  ddd       | j                  t        ddd       y )NzhEllO CoMPuTErSzHeLLo cOmpUteRsswapcaser    rk   r   r   s    r   test_swapcasezBaseTest.test_swapcase  s(    )+<jIGZ<r   c                    | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd	       | j                  d
d
dd       | j                  d
d
dd       | j                  dd
dd	       | j                  dddd       | j                  dddd       | j                  dddd       | j                  t        dd       y )Nr?   zfillrd   ra   0123ri   z+123z+0123r   z-123z-0123000rW   34re   0034r   r   s    r   
test_zfillzBaseTest.test_zfill  s    ugq1ugq1w233!433!4r7A.dGQ/gq1E73r   c                 >   | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  dd	d       | j                  dd
d       | j                  t        ddd       y )NFrW   islowerTr)   r   
r   aBcabc
rk   r   r   s    r   test_islowerzBaseTest.test_islower  s    r9-c9-sI.tY/eY/ui0gy1E9b9r   c                 >   | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  dd	d       | j                  dd
d       | j                  t        ddd       y )NFrW   isupperr)   Tr   r  ABCAbCzABC
r   rk   r   r   s    r   test_isupperzBaseTest.test_isupper  s    r9-sI.c9-tY/eY/ui0gy1E9b9r   c                    | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  dd	d       | j                  dd
d       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  t        ddd       y )NFrW   istitler)   Tr   r  zA Titlecased LinezA
Titlecased LinezA Titlecased, LinezNot a capitalized StringzNot	a Titlecase StringzNot--a Titlecase StringNOTr   rk   r   r   s    r   test_istitlezBaseTest.test_istitle  s    r9-sI.c9-tY/19=2I>2I>99E8)D8)Dui0E9b9r   c                 d   | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  dd	d       | j                  dd
d       | j                  ddd       | j                  t        ddd       y )NFrW   isspacer)   T 	r  z 	
z 	
ar   rk   r   r   s    r   test_isspacezBaseTest.test_isspace  s    r9-sI.c9-dI.dI.dI.i3z95E9b9r   c                 >   | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  dd	d       | j                  dd
d       | j                  t        ddd       y )NFrW   isalphaTr)   r   r  r   aBc123r  rk   r   r   s    r   test_isalphazBaseTest.test_isalpha
  s    r9-c9-c9-tY/eY/x3w	2E9b9r   c                 d   | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  dd	d       | j                  dd
d       | j                  ddd       | j                  t        ddd       y )NFrW   isalnumTr)   r   r  	123abc456a1b3czaBc000 r  r   rk   r   r   s    r   test_isalnumzBaseTest.test_isalnum  s    r9-c9-c9-tY/k95gy1y)4w	2E9b9r   c                    | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  dd	d       t        d
      D ]l  }| j                  dd|z  dz   d       | j                  dd|z  dz   d       | j                  dd|z  dz   dz   d       | j                  dd|z  dz   dz   d       n y )NTrW   isasciir  z F      ér-   r  z        )rS   rp   )r   r   s     r   test_isasciizBaseTest.test_isascii  s    b),fi0fi0j)4vy1vy1 q 	FAOOD#a%&.)<OOE3q56>9=OOD#a%&.5"8)DOOE3q56>E#99E		Fr   c                     | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  t        d	dd
       y )NFrW   isdigitr)   T0
01234567890123456789ar   rk   r   r   s    r   test_isdigitzBaseTest.test_isdigit.  sf    r9-sI.c9-lI6}i8E9b9r   c                    | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  dd	d       | j                  d
dd       | j                  t        ddd       y )Nz Hello r  titler  r  zFormat This As Title StringzfOrMaT thIs aS titLe StringzFormat,This-As*Title;StringzfOrMaT,thIs-aS*titLe;StringGetintgetIntr    rk   r   r   s    r   
test_titlezBaseTest.test_title7  s|    	9g6(G4(G457TV]^57TV]`(G4GWb9r   c                    | j                  g ddd       | j                  g ddd       | j                  g ddd       | j                  g ddd       | j                  g dd	d       | j                  g d
dd       | j                  g d
ddd       | j                  g dddd       | j                  g d
ddd       | j                  g dddd       | j                  t        dddd       y )N)r   r   rW   r   zabc
def
ghi
splitlineszabc
def

ghi)r   r   r   zabc
def
ghizabc
def
ghi
)r   r   r   rW   zabc
def
ghi
)rW   r   r   r   rW   z
abc
def
ghi
F)r  r  zdef
zghi
r  T)keependsr   rk   r   r   s    r   test_splitlineszBaseTest.test_splitlines@  s    13DlS13FU-/@,O-/BLQ13H,W57NP\]5/u	FA/t	E57N$u 	 	6A/ 	 	N 	E<R@r   )8r   r   r   r4   rn   r6   rB   rS   r]   r_   r   r   r   r   r   r   r   r   r   r   r   r   r   r+  r3  rr  rz  unittestskipIfrl   rm   r   r   r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r/   r/      sP    I
 N
A20 EI >(
>N@7;r3=j>2?4'8H
CC1$:
:
D:D>LL?\oAb
A X__S[[G,I0D0I79M9MJ$J$?"BH&CP9"?445=
4 :::	::	:F::Ar   r/   c                       e Zd Zd Zd Zy)
CommonTestc                     | j                  d      }| j                  d      }|D ]  }||z  }t        |        | j                  t        |      t        |             y )NDNSSECrW   )r4   hashrI   )r   r)   r*   r+   s       r   	test_hashzCommonTest.test_hashW  sW    NN8$NN2 	AFAG	 	a$q'*r   c                     | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  dd	d       | j                  d
d
d       y )Nu   ῼῳῳῳu   ῳῳῼῼr  u   Ⓟⓨⓣⓗⓞⓝu   ⓅⓎⓉⒽⓄⓃu   ⓟⓨⓣⓗⓞⓝu	   Ⅰⅱⅲu	   ⅠⅡⅢu	   ⅰⅱⅲu   ƛᴀᶆȡᾷrw  r   s    r   test_capitalize_nonasciiz#CommonTest.test_capitalize_nonascii`  s     	22L	B 	>>	N>>	N,,l	<,,l	< 	88,	Hr   N)r   r   r   r  r  r   r   r   r  r  S  s    +Hr   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  d
        Zd Zd Zd Zd Zd Zd Zy)MixinStrUnicodeUserStringTestc                 X   | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  ddddd	       | j                  dddd
d       | j                  dddd
d       | j                  ddddd       | j                  ddddd       | j                  ddddd       | j                  dddddd       | j                  dddddd       | j                  dddddd	       | j                  dddddd       | j                  ddddd	d       | j                  dddddd       | j                  dddddd       | j                  dddddd       | j                  dddddd       | j                  ddddd       | j                  ddddd       | j                  dddd
d       | j                  dddd
d       | j                  dddddd       | j                  ddddd       | j                  t        dd       | j                  t        ddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd        | j                  dddd!d       | j                  dddd"d       | j                  dddd#dd       | j                  dddd$dd	       | j                  dddd$dd%       | j                  t        ddd&       y )'NTr    r   r  Fhello worldrW   ellore   rO  ri   r   r  r   
helloworldlowora   r   r   rg   irh   r  irk   r  har  llohelloxr    r   helloworldr  r  r  r  )r  r  r  helrd   rk   r   r   s    r   test_startswithz-MixinStrUnicodeUserStringTest.test_startswithw  s   g|T:g|W=wmDg|R8wf=g|VQ?g|S!<wc1=g|R;wdA>lL&!DlL&!QG|\61aHb,Aq9b,Aq9r<Q: 	g|T1bAg|T3Cwgq"EwmRMwfbAg|VR@wc2>g|S"=g|RR@wdB?G\:G\2> 	g|\BwmDg|5HIwb9lL ;JKL	N|\ <CDE	Gg|\1bIwmQJg|]AqIG\5Ar   c                    | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dd	dd
       | j                  dd	dd
dd       | j                  dd	dddd       | j                  dd	dddd       | j                  dd	dddd       | j                  dd	dddd       | j                  dd	dddd       | j                  dd	dddd       | j                  dddddd       | j                  dddddd       | j                  dddddd       | j                  dddddd       | j                  dddddd       | j                  ddddd       | j                  ddddd       | j                  dddddd       | j                  dddddd       | j                  dd	dd
d       | j                  dd	dd
dd       | j                  dd	dd
dd       | j                  dd	dddd       | j                  dd	dddd       | j                  dd	dddd       | j                  dd	dddd       | j                  dd	dddd        | j                  dd	dddd       | j                  t        dd       | j                  t        ddd!       | j                  dddd"       | j                  dddd#       | j                  dddd$       | j                  dddd%       | j                  dd	dd&d       | j                  dd	dd'dd       | j                  dddd(dd       | j                  dddd)dd       | j                  dddd*dd       | j                  t        ddd+       y ),NTr    endswithr  Fr  rW   r  r  worlra   r   worldr   r  re   r   rd   ri   r-   r   r   r  r  rh   ir  rg   iiir  rk   r  r  r  r   r  r  )hellellr  )r  r%  r  r   r   s    r   test_endswithz+MixinStrUnicodeUserStringTest.test_endswith  s   gz48w
D9gz26w
MB|Z@lJ1ElJBGlJ1ElJ1ElJ1E|ZAF|ZAFtZq!<tZq!<b*b!Q7b*b!Q7r:r1a8 	gz4<w
D"=gz2r2>w
M3K|ZDlJBGlJAFlJRHlJRHlJBGlJBG|ZBG|ZRHGZ8GZ< 	w
LAgz=Agz3FGw
B7lJ 9JKL	N|Z :CDEr	Kgz?ArJw
M1aHgz>1aHGZ?r   c                 l   | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd	       | j                  dd
dd
       | j                  dddd
       | j                  dddd
       y )NTrW   __contains__r   Fr  z abczabc r)   asdfasdrw  r   s    r   test___contains__z/MixinStrUnicodeUserStringTest.test___contains__  s    b."5e^R8und;g~t<g~t<g~s;fnf=unf=r>6:r   c           	      :   | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddt        dd             | j                  dddt        dd             | j                  dddt        dd	             | j                  d
ddt        dd             | j                  t        ddd       dt	               fD ]@  }dj                  t        |      j                        }| j                  t        dd||       B y )Nr)   r   r   r   r+   rg   ra   r   re   rW   r   z)string indices must be integers, not '{}'rT   )rS   slicer]   rK   objectr#   rA   r   )r   idx_typerU   s      r   test_subscriptz,MixinStrUnicodeUserStringTest.test_subscript  s    UM15UM26UM15umU1a[AumU1d^DUM5A;?E=%1+>E=%@) 	cHFMMdS[nNeNefLY}hUab	cr   c           	      P   | j                  dddt        dd             | j                  dddt        dd             | j                  dddt        dd             | j                  dddt        d	d             | j                  d
ddt        d	d             | j                  dddt        dd             | j                  dddt        dd             | j                  dddt        dd             | j                  dddt        dd	             | j                  t        ddd       y )Nr   r   r   r   ra   r   rd   r  re   r*   rW   r   r   )rS   r.  r]   rK   r   s    r   
test_slicez(MixinStrUnicodeUserStringTest.test_slice  s    umU1d^DumU1a[Ae]E!QK@e]E!QK@UM5A;?E=%1+>E=%d2CDE=%d2CDE=%1+>E=%@r   c                 &   t         j                  t         j                  z   }dd dddt        j                  dddf	}|D ]R  }|D ]K  }|dd  D ]A  }t        |      |||   }| j                  dj                  |      |d	t        |||             C M T y )
Nr   re   ra   )   rg   r  irW   r   )	stringascii_lettersrw   rl   rm   r5   rS   rt   r.  )r   r   indicesstartstopstepLs          r   test_extended_getslicez4MixinStrUnicodeUserStringTest.test_extended_getslice  s      6==0dAq"ckk2r3? 	>E >#ABK >DQd40AOOBGGAJ=$)%t$<>>>	>r   c                    | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  t        dd       | j                  t        ddd       y )	NrW   r   __mul__rg   r   re   	abcabcabcra   r   r   s    r   test_mulz&MixinStrUnicodeUserStringTest.test_mul  sp    E9b1E9a0ui3UIq9E95E9b9r   c           	      R   | j                  dddg d       | j                  dddd       | j                  dddd       | j                  d	ddd
       | j                  dddt                      | j                  dddd       | j                  dddt        dg             | j                  dddg d       | j                  t        dj
                  g d       dD ]P  }| j                  d|z  dz   |z  d d ddd|z  g|z         | j                  d|z  dz   |z  d d ddd|z  f|z         R | j                  dddt                      | j                  t        dd       | j                  t        ddd        | j                  t        ddd       | j                  t        ddddt               g       	 d }| j                  d      j                   |              | j                  d       y # t        $ r-}dt        |      vr| j                  d       Y d }~y Y d }~y d }~ww xY w)Nr)  r  rt   r   r   rW   bd)rW   r*   rW   r   ac)r)   rW   r+   rW   zw x y zr   r)   )r   zza.b.crV  r(   )r)   r*   ra   )r      }   rl  rg   r2  r   re   rd   c               3      K   ddz    y w)Nri   rW   r   r   r   r   fz2MixinStrUnicodeUserStringTest.test_join.<locals>.f4  s     "fs   	zexception not raised+zjoin() ate exception message)rS   r   r   rX   rK   rt   r&   r]   bytesr6   failr2   )r   r   rI  r   s       r   	test_joinz'MixinStrUnicodeUserStringTest.test_join  s    		30DEF,@Ab&*<=b&*<=	3
;sFH5S&(C5/:fo>)SXX}= 	!AOOsQw#o2CR8#v'Q OOsQw#o2CR8#v'a!	! 	fgi8C0C6C3C!QA	.LL""13'
 II,-	  	:#a& 		899 !	:s   6(G0 0	H&9H!!H&c                    | j                  dddd       | j                  dddd       | j                  dd	dd       | j                  dd	dd       | j                  d
d	dd       | j                  dd	dd       | j                  dddd       | j                  dd	dd       dD ]   }| j                  t        t        fd	d|       " t        j
                  dz   }t        |      }| j                  dddd       | j                  dddd       | j                  |dd|       | j                  ddt        |             | j                  dddd       | j                  dddd       | j                  t        dd       | j                  t        ddd       | j                  t        ddd       | j                  t        d	dd       | j                  t        d di        | j                  t        d!dd"       | j                  t        ddd       | j                  t        ddd#       | j                  d$d%dd&d$i       | j                  d'd(dd)       | j                  t        d*dd+       | j                  t        d,dd-       | j                  t        d.dd       | j                  t        d/d0z  dd1       | j                  t        d2d0z  dd1       | j                  t        d*dt        j
                  d3z   d4f       | j                  t        d5dt        j
                  d3z   d6f        G d7 d8t              }| j                  t        dd |              y )9Nz+hello+z+%s+__mod__r    z+10+z+%d+rf   r)   z%c""   $$   10z%dr     )ii    z 42z%3ldrk   42      E@z0042.00z%07.2fz%07.2Fr   z%(foo)sz%s%sr  r	   z%(fooz%(foo)s %(bar)s)foork   y      E@        barz	%((foo))sz(foo)haaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxz%sxgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%*s)rX  rY  z%10.*f)rX  rW  z%10z%%%dfl            g	@z%%.%dfre   rW   %.*f$I$I?c                       e Zd Zy)8MixinStrUnicodeUserStringTest.test_formatting.<locals>.XNrF   r   r   r   Xr`  o  s    r   ra  )rS   r]   r   r   rl   rm   r2   r_   floatrK   r/  )r   ordinal	longvalue
slongvaluera  s        r   test_formattingz-MixinStrUnicodeUserStringTest.test_formatting=  s   	69g>	26T9c2T9c2T9b1T9b1dIr2i6' 	TGj-8$	7S	T KK"$	^
vy"5dIt4
D)Y?tYi(89	8Y;	8Y;E95Iy"=FIu=D)W=Wi<$5y+ND)T:D)e= 	{I7GH 	UIw?E9nEHiFUIu= 	W%6	CIX%7SJy++/2.	0	++/62	4 	E9ac:r   c                    t        j                  d      }d|j                  j                         dz   z  dz
  }| j	                  t
        dd|j                  dz   df       | j	                  t
        dd|j                  dz   df       | j	                  t
        dd|dz   df       | j	                  t
        dd|j                  dz   df       y )N	_testcapire   r\  rO  rW   r]  r^  )r   import_modulePY_SSIZE_T_MAX
bit_lengthr]   r   INT_MAXUINT_MAX)r   rh  SIZE_MAXs      r   test_formatting_c_limitsz6MixinStrUnicodeUserStringTest.test_formatting_c_limitsr  s    !//<	)22==?!CDIy#22Q6;	=	#++a/8	: 	y"Q,+	-	#,,q0&9	;r   c                     t        d      D ]7  }d|z  }d}t        d      D ]   }|dz  dz  dz  }| j                  |d|       " 9 y )	Nr.  z%%.%ifg{Gz?<   g.DT!	@g      @g      $@rO  )rp   r_   )r   precr#   r=   r;   s        r   test_floatformattingz2MixinStrUnicodeUserStringTest.test_floatformatting  sZ    #J 	9D_FE2Y 9-3d:vy%89	9r   c                    | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddddd       | j                  ddd       | j                  ddd	       | j                  ddd       | j                  ddd
       | j                  ddd       | j                  ddd       | j                  ddd       y )Nr)   r   r   Tr  r   r  ru   r  r  r  rw  r   s    r   test_inplace_rewritesz3MixinStrUnicodeUserStringTest.test_inplace_rewrites  s    S'*c9-S'*c9-S)S#6c9-S,/c9-S*-c9-S'*c9-r   c                 0   | j                  dddd       d}| j                  d|dd       | j                  d|dd	       | j                  d
|dd       | j                  d|dd       | j                  t        |dd       | j                  t        |dd        y )N)zthis is the partiztion methodzthis is the partition method	partitionrw  http://www.python.orghttp://www.python.orgr|  )ry  rW   rW   rT  rW   http://r}  r  zhttp://www.python.orgrW   r  rW   rS   r]   r   rK   r   Ss     r   test_partitionz,MixinStrUnicodeUserStringTest.test_partition  s    @*K	? $91k5Q91k3O91k9U91k5QQR8A{D9r   c                 0   | j                  dddd       d}| j                  d|dd       | j                  d|dd	       | j                  d
|dd       | j                  d|dd       | j                  t        |dd       | j                  t        |dd        y )N)zthis is the rpartirw  z	on methodzthis is the rpartition method
rpartitionrw  ry  rz  r|  )rW   rW   ry  rT  r~  r  r  r  rW   r  r  s     r   test_rpartitionz-MixinStrUnicodeUserStringTest.test_rpartition  s    A+\4	A $91lER91lCP91lIV91lERQb9A|T:r   c                    d}| j                  d|ddd        | j                  d|dddd        | j                  d|ddd d       | j                  d|ddd d        | j                  d|d	dd        | j                  d|d	ddd        | j                  d|d	dd d       | j                  d|d	dd d        | j                  d|d
dd        | j                  d|d
ddd        | j                  d|d
dd d       | j                  d|d
dd d        | j                  d|ddd        | j                  d|dddd        | j                  d|ddd d       | j                  d|ddd d        | j                  d|ddd        | j                  d|dddd        | j                  d|ddd d       | j                  d|ddd d        | j                  d|ddd        | j                  d|dddd        | j                  d|ddd d       | j                  d|ddd d        | j                  d|ddd        | j                  d|dddd        | j                  d|ddd d       | j                  d|ddd d        y )Nr    rd   r   r  ra   r  r   rp  r   r   r   rc   re   r;   Tr"  rO  r  Fr   rw  )r   r   s     r   test_none_argumentsz1MixinStrUnicodeUserStringTest.test_none_arguments  sa   1fc401fc2t41fc441fc461gsD11gsB51gsD"51gsD$71gsD11gsB51gsD"51gsD$71hT21hR61hT261hT481gsD11gsB51gsD"51gsD$7aS$7aT2t<aS$;q*c4>asD9asB=asD"=q,T4@r   c           	      :   d}d}| j                  t        d|j                  |d d d        | j                  t        d|j                  |d d d        | j                  t        d|j                  |d d d        | j                  t        d|j
                  |d d d        | j                  t        d|j                  |d d d        | j                  t        d|j                  |d d d        | j                  t        d	|j                  |d d d        | j                  d
ddd       y )Nr    r;   z^find\(z^rfind\(z^index\(z	^rindex\(z^count\(z^startswith\(z^endswith\(rf   rb  r   r   )
assertRaisesRegexrK   r   r   r   r   rc   r   r"  rS   )r   r   r;   s      r   *test_find_etc_raise_correct_error_messageszHMixinStrUnicodeUserStringTest.test_find_etc_raise_correct_error_messages  s	   y*aff !4t	5y+qww !4t	5y+qww !4t	5y, !4t	5y+qww !4t	5y*:ALL !4t	5y.!** !4t	5 	.<r   N)r   r   r   r   r'  r,  r1  r3  r=  rA  rM  rf  r   cpython_onlyro  rs  ru  r  r  r  r  r   r   r   r
  r
  s  sq    .B`2@h	;cA
>:".H3;j ; ;9.&:;$AL=r   r
  c                       e Zd Zd Zy)MixinStrUnicodeTestc                 ,   | j                   } G d d|      } |d      } |       j                  |g      }| j                  ||       | j                  t	        |      |        |d      } |       j                  |g      }| j                  ||       y )Nc                       e Zd Zy)5MixinStrUnicodeTest.test_bug1001011.<locals>.subclassNrF   r   r   r   subclassr     s    r   r  r   )r4   rt   rJ   r@   rA   )r   tr  s1s2s        r   test_bug1001011z#MixinStrUnicodeTest.test_bug1001011  s~    
 NN	q 	fSXXrd^R d2h"vYSXXrd^b"r   N)r   r   r   r  r   r   r   r  r    s    r   r  )__doc__r  r6  rl   r   r  r   test.supportr   collectionsr   r   r   r   r&   r/   r  r
  r  r   r   r   <module>r     su    % $  &   1 1
>h > h  xA xAv!H H@A= A=H r   