
    /hh                        S r SSKrSSKrSSKrSSKrSSKJr  SSKJr  SSK	J
r
  SSKr " S S5      r " S S	5      r " S
 S\5      r " S S5      rg)zF
Common tests shared by test_unicode, test_userstring and test_bytes.
    N)support)import_helper)UserListc                   *    \ rS rSrSS jrS rS rSrg)Sequence   c                     Xl         g Nseq)selfr   s     :/opt/python-3.13.8/usr/lib/python3.13/test/string_tests.py__init__Sequence.__init__   s    sH    c                 ,    [        U R                  5      $ r
   )lenr   r   s    r   __len__Sequence.__len__   s    c$((m+r   c                      U R                   U   $ r
   r   )r   is     r   __getitem__Sequence.__getitem__   s    TXXa[0r   r   N)wxyz)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__ r   r   r   r      s    2+0r   r   c                      \ rS rSrSrSrS rS rS rSS.S jr	S	 r
S
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r\R>                  " \ RB                  S:  =(       d    \"RF                  " S5      S:g  S 5      S! 5       r$S" r%S# r&S$ r'S% r(S& r)S' r*S( r+S) r,S* r-S+ r.S, r/S- r0S. r1S/ r2S0 r3S1 r4S2 r5S3 r6S4 r7S5 r8S6 r9S7 r:S8r;g)9BaseTest   NFc           
      6   [        U[        5      (       a  U R                  R                  U5      $ [        U[        5      (       a!  U Vs/ s H  o R                  U5      PM     sn$ [        U[        5      (       a*  [        U Vs/ s H  o R                  U5      PM     sn5      $ [        U[        5      (       aN  [        UR                  5        VVs/ s H'  u  p4U R                  U5      U R                  U5      4PM)     snn5      $ U$ s  snf s  snf s  snnf r
   )	
isinstancestr	__class__	type2testlistfixtypetupledictitems)r   objxkeyvalues        r   r+   BaseTest.fixtype#   s    c3>>++C00T""-01SLLOS11U##373a,,q/3788T""#&99;#.<C S!4<<#67#.  
 J 27s   
DD.D
c                 l    U R                  [        U R                  S5      5      U R                  5        g )N123)assertIstyper+   r)   r   s    r   test_fixtypeBaseTest.test_fixtype2   s"    d4<<./@r   c                    U R                  U5      nU R                  U5      nU R                  U5      nUR                  5        VVs0 s H  u  pgX`R                  U5      _M     nnn[        X#5      " U0 UD6nU R                  UU5        X(L aH    " S SU R                  R
                  5      n	U	" U5      n[        X#5      " U6 nU R                  X(5        g g s  snnf ! [         a     g f = f)Nc                       \ rS rSrSrg)$BaseTest.checkequal.<locals>.subtypeD   r!   Nr   r   r   r   r    r!   r   r   subtyper<   D   s    r   r?   )r+   r.   getattrassertEqualr(   r)   assertIsNot	TypeError)
r   resultr/   
methodnameargskwargskv
realresultr?   s
             r   
checkequalBaseTest.checkequal6   s    f%ll3||D!06?!\\!_$?S-t>v>
	
 2dnn66 
 cl$S5t<
  1  @  s   CC 
C*)C*expected_msgc                V   U R                  U5      nU R                  U5      nU R                  U5       n[        X#5      " U6   S S S 5        U R                  [	        WR
                  5      S5        Ub&  U R                  [	        UR
                  5      U5        g g ! , (       d  f       N]= f)N )r+   assertRaisesr@   assertNotEqualr'   	exceptionrA   )r   excr/   rE   rN   rF   cms          r   checkraisesBaseTest.checkraisesN   s    ll3||D!s#rC$d+ $C-r2#S.= $ $#s   B
B(c                 d    U R                  U5      nU R                  U5      n[        X5      " U6   g r
   )r+   r@   )r   r/   rE   rF   s       r   	checkcallBaseTest.checkcallX   s+    ll3||D! $'r   c                    U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSSS5        U R                  SSSSS	5        U R                  SSSSS
5        U R                  SSSSS5        U R                  SSSSSS5        U R                  SSSSSS	5        U R                  SSSSSS
5        U R                  SSSSSS5        U R                  SSSSS5        U R                  SSSSS5        U R                  SSSSS	5        U R                  SSSSS
5        U R                  SSSSS5        U R                  SSSS5        U R                  SSSSSS5        U R                  SSSS[        R                  S5        U R                  SSSS5        U R                  SSSSSS5        U R                  SSSS[        R                  S5        U R                  [        SS5        U R
                  (       a  U R                  SSSS5        OU R                  [        SSS5        / SQnSn[        U5      n[        5       n[        X2-  5       HW  n/ n[        U5       H#  n[        XS5      u  pXUR                  X   5        M%     UR                  SR                  U5      5        MY     U V	s/ s H  oR                  U	5      PM     nn	U H  n[        U5      n
U H  nUR                  U5      nU(       aB  [        U
[        UR                  XpR                  S5      5      5      -
  [        U5      5      u  pO[        U5      S-   SpU(       d  X:w  d  Mz  U R!                  USU< SU< 35        U R!                  XU< SU< SU< 35        M     M     g s  sn	f )N   aaacountar   b      
   rP      xxhello*   )rP   r_   r`      z
 != 0 for z != z for )rK   sysmaxsizerV   rC   contains_bytesr   setrangedivmodappendaddjoinr+   r^   replacerA   )r   charsetdigitsbaseteststringsr   entryjmtsnr1r2rems                 r   
test_countBaseTest.test_count]   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t~&AE6]aWZ( # OOBGGEN+ ' 3>>+B||B'+>AAA WWQZ$QQYYq,,r:J-K)L%L%(V-GB "!fQh"($$S!a-HI$$R"b!-LM !  ?s   Pc           	         U R                  SR                  SSS5      SR                  SSSS95        U R                  SR                  SSS5      SR                  SSSS95        U R                  SR                  SSS5      SR                  SSSS95        U R                  SR                  SSS5      SR                  SSSS95        g )	Naar_   r`   r   )r^   rb   ra   r\   )rA   rt   r   s    r   test_count_keywordBaseTest.test_count_keyword   s    c32DLLcQRL4STc32DLLcQRL4STc32DLLcQRL4STc32DLLcQRL4STr   c           
         U R                  SSSS5        U R                  SSSSS5        U R                  SSSSS	5        U R                  SSSS
S5        U R                  SSSS
S5        U R                  SSSS
S	5        U R                  SSSS5        U R                  SSSSS	5        U R                  SSSSS	S5        U R                  SSSSS	S 5        U R                  SSSSS S5        U R                  [        SS5        U R                  (       a  U R                  SSSS5        OU R                  [        SSS5        U R                  SS
SS
5        U R                  SS
SS
SS5        U R                  SS
SS
[        R
                  S5        U R                  SS
SS5        U R                  SS
SSSS5        U R                  SS
SS[        R
                  S5        U R                  SSSS[        R
                  S-   S5        / SQnSn[        U5      n[        5       n[        X2-  5       HW  n/ n[        U5       H#  n[        XS5      u  pXUR                  X   5        M%     UR                  S
R                  U5      5        MY     U V	s/ s H  oR                  U	5      PM     nn	U H_  nU HV  nUR                  U5      n
U
S:g  nXu;   nU R                  X5        U
S:w  d  M6  U R                  XZU
[        U5      -    U5        MX     Ma     g s  sn	f )Nr   abcdefghiabcfindabc	   rb   rd   defrf   rP   r\   ra   rrarrrrrrrrrar_   r      rh   ri   rg   abxxxrP   r_   r`   c   )rK   rV   rC   rm   rk   rl   r   rn   ro   rp   rq   rr   rs   r+   r   rA   r   ru   rv   rw   rx   r   ry   rz   r{   r|   locr~   r   s                r   	test_find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t~&AE6]aWZ( # OOBGGEN+ ' 3>>+B||B'+>A ffQiRiV  ("9$$Q3s1v:%6: !  ?s   L
c           
      2   U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  S	SSS
5        U R                  SSSSS5        U R                  SSSSS5        U R                  S	SSSS5        U R                  SSSS5        U R                  SSSSS5        U R                  S	SSSSS5        U R                  SSSSSS 5        U R                  SSSSS S5        U R                  [        SS5        U R                  (       a  U R                  S	SSS5        OU R                  [        SSS5        / SQnSn[	        U5      n[        5       n[        X2-  5       HW  n/ n[        U5       H#  n[        XS5      u  pXUR                  X   5        M%     UR                  SR                  U5      5        MY     U V	s/ s H  oR                  U	5      PM     nn	U H_  nU HV  nUR                  U5      n
U
S	:g  nXu;   nU R                  X5        U
S	:w  d  M6  U R                  XZU
[	        U5      -    U5        MX     Ma     U R                  S	SSS[        R                  S-   S5        U R                  SSSS5        g s  sn	f )Nr   r   rfindr   r   rP   r   abcdrd   abczr\   rf   r   r_   r   ra   rh   ri   r   r   r   r   rb   u   <......м...<)rK   rV   rC   rm   r   rn   ro   rp   rq   rr   rs   r+   r   rA   rk   rl   r   s                r   
test_rfindBaseTest.test_rfind   sZ   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t~&AE6]aWZ( # OOBGGEN+ ' 3>>+B||B'+>A ggajRiV  ("9$$Q3s1v:%6: !  	D'5#++/1E 	-w< ?s   Jc                    U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSSS	5        U R                  [        SSS
5        U R                  [        SSSS	5        U R                  [        SSSS5        U R                  [        SSSS5        U R                  SSSS5        U R                  SSSSS5        U R                  [        SSSSS5        U R                  SSSSSS 5        U R                  SSSSS S5        U R                  [        SS5        U R                  (       a  U R                  [        SSS5        g U R                  [        SSS5        g )Nr   r   indexrP   r\   r   r   r   rb   hibabcdefghiab	abcdefghighi   rd   ra   r   r_   r   rf   r   rh   ri   rK   rV   
ValueErrorrC   rm   r   s    r   
test_index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                 6   U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  S	SSSS	S
5        U R                  [        SSS5        U R                  [        SSSS5        U R                  [        SSSS	S
5        U R                  [        SSSS	S5        U R                  [        SSSS	S
5        U R                  SSSS5        U R                  SSSSS5        U R                  [        SSSSS5        U R                  SSSSSS 5        U R                  SSSSS S5        U R                  [        SS5        U R                  (       a  U R                  [        SSS5        g U R                  [        SSS5        g )Nr   r   rindexrP   r\   r   r   r   r   rd   r   	defghiabcrb   r   r   r   r   r_   rf   r   ra   rh   ri   r   r   s    r   test_rindex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                    ^ ^ S mUU 4S jn[         R                  n[        S5       H  nU" U5        M     U" S 5        g)z-Cover the special path for periodic patterns.c                     [        [        U5      5       H  nUR                  X5      (       d  M  Us  $    U S:X  a  US:X  a  gg)NrP   r   rd   )ro   r   
startswith)psr   s      r   reference_find;BaseTest.test_find_periodic_pattern.<locals>.reference_findF  s=    3q6]<<%%H # Bw17r   c                   > [         R                  nSR                  U" SU " S5      S95      U " SS5      -  nUS [        U5      U " S5      -
   nSR                  U" SU " S5      S95      nSR                  U" SU " S5      S95      nXC-   U-   nTR	                  X6S9   TR                  T" X65      US	U5        S S S 5        g ! , (       d  f       g = f)
NrP   abcderc   )rH      abcdef  )r   textr   )randomchoicesrs   r   subTestrK   )	rrr   p0r   leftrightr   r   r   s	          r   check_pattern: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-q 7 $fa1 .--s   C
C  c                      g)Nr   r!   )rF   s    r   <lambda>5BaseTest.test_find_periodic_pattern.<locals>.<lambda>^  s    Ar   N)r   	randrangero   )r   r   r   _r   s   `   @r   test_find_periodic_pattern#BaseTest.test_find_periodic_patternD  s:    			1 tA"  	o&r   c                 V   [        S5       VVs/ s H  nS  H
  o"SU-  -  PM     M     nnnU Vs/ s H  oDU R                  SU-  S-   5      4PM     nn[        S5       VVs/ s H  nS  H
  o"SU-  -  PM     M     nnnU Vs/ s H  owU R                  SU-  S-   5      4PM     nnU He  u  pIU	S S n
U HU  u  p{Xt::  a  SXG-
  -  OSnU R                  U	R                  U5      XU4S	9  U R                  U
R                  U5      SXG4S	9  MW     Mg     g s  snnf s  snf s  snnf s  snf )
Nr   )rb   ra   r   rc   abcabda)rb   r\   rd   r   )msg)ro   r+   rA   r   )r   er_   haystack_repeatsr}   	haystacksneedle_repeatsr{   needles	haystack1	haystack2needleanswer1s                r   test_find_many_lengthsBaseTest.test_find_many_lengths`  s&   /4QxIx!AAIIxIBRSBRQgai$&678BR	S-21XFXv!b!e)v)XF@NO1t||GAI$456O%LA!#2I$	)*!qu+R  !7e L  !7! G % & JSFOs   D"D#D "D&c                    S H  nSU-  SU-  p2X"-   U-   U-   U-   nX#-   U-   U-   nU R                  SUSU5        U R                  SUSU5        U R                  [        U5      XE-   SU5        U R                  SXE-   SU5        M     g )	N)r   '  i i@B r_   r`   rd   r   r   r^   rb   rK   r   )r   NABhaystackr   s         r   test_adaptive_findBaseTest.test_adaptive_findn  s     2A7C!Gquqy1}q(HUQY]FOOB&&9OOAx&9OOCM8+<ffMOOAx0'6B 2r   c                     S Hs  nSU-  nSUS-
  -  S-   S-  nU R                  SUSU5        U R                  SUS	U5        U R                  [        U5      X2-   SU5        U R                  SX2-   S	U5        Mu     g )
N)r   i  r   i0u  r   rb   r`   ra   rd   r   r   r^   r   )r   r   r   r   s       r   test_find_with_memoryBaseTest.test_find_with_memoryz  s~    +AAXFac
S(A-HOOB&&9OOAx&9OOCM8+<ffMOOAx0'6B ,r   c                 4   SnSU-  S-   SU-  -   nSU-  U-   nU R                  [        U5      [        U5      -
  USU5        SSU-  -   S-   nUS	S
 SU-  -   U-   SU-  -   nU R                  [        U5      U[        S5      -  -
  [        U5      -
  USU5        g	)z)When the table of 8-bit shifts overflows.id  r_   r`   babbaar   dddr   eeeNrd   ddeededdeededer   )r   r   pattern1text1pattern2text2s         r   test_find_shift_table_overflow'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                     U R                  SSS5        U R                  SSS5        U R                  [        SSS5        g )Nrh   HeLLolowerri   rK   rV   rC   r   s    r   
test_lowerBaseTest.test_lower  6    '2'2GWb9r   c                     U R                  SSS5        U R                  SSS5        U R                  [        SSS5        g )NHELLOr   upperrh   ri   r   r   s    r   
test_upperBaseTest.test_upper  r   r   c                 f   U R                  SSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSS5        U R                  SSSS5        U R                  S	SSS5        U R                  S
S
SS5        U R                  SSSSS9  U R                  SSSSS9  U R                  SSSS5        U R                  [        SSSS5        [        R                  S:  aB  [
        R                  " S5      S:X  a'  U R                  [        SS[        R                  5        g g g )Nzabcab      def
g       hizabcab	def
g	hi
expandtabsr   zabcab  def
g   hirf   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
	brb   rh   ri           Pz	a
	b)rK   rV   rC   rk   rl   structcalcsizeOverflowErrorr   s    r   test_expandtabs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                    U R                  / SQSSS5        U R                  S/SSSS5        U R                  SS/SSSS5        U R                  / S	QSSSS
5        U R                  / SQSSSS5        U R                  / SQSSSS5        U R                  / SQSSS[        R                  S
-
  5        U R                  S/SSSS5        U R                  / SQSSSS
5        U R                  S/SSS5        U R                  S/SSS5        U R                  SS/SSS5        U R                  SS/SSS5        U R                  / SQSSS5        U R                  / SQSSSS
5        U R                  S/S-  SS S SS5        U R                  S/S-  S/-   SS S SSS5        U R                  / SQSSS 5        U R                  SS!/SSS S5        U R                  / S"QSSS S
5        U R                  / SQSSS S5        U R                  / SQSSS S5        U R                  / SQSSS [        R                  S#-
  5        U R                  S/SSS S5        U R                  / S$QS%SS S
5        U R                  SS/S&SS'5        U R                  SS(/S)SS'5        U R                  / S*QS+SS'5        U R                  SS,/S-SS.5        U R                  SS/S/SS/5        U R                  S//S/SS/S5        U R                  S0S0/S1SS25        U R                  S3/S3SS45        U R                  S/SSS/5        U R                  S5/S5SS/5        U R                  S6S7/S8SS95        U R                  / S:QS;SS95        U R                  S/S-  S<S S= SS>5        U R                  S/S-  S<S S= SS>S?5        U R                  S/S@-  SA/-   S<S S= SS>S@5        U R                  / SQSSSSB9  U R                  SS/SSSSSC9  U R                  SS/SSSSSD9  U R                  SS/SSSSSE9  U R                  SSF/SGSSSC9  U R                  [        SHSSISISI5        U R                  [
        SHSS5        U R                  [
        SHSSS5        g )JNr_   r`   r   da|b|c|dsplit|r   r_   zb|c|drb   )r_   r`   zc|dra   r\   rf   )r_   rP   zb||c||d
a||b||c||dr   rP   endcase 	endcase |z
 startcasez| startcaserP   bothcaserP   
|bothcase|)r_   rP   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|rd      	a|a|a|a|a
a//b//c//d//zb//c//d)r_   r`   zc//drc   )r_   rP   zb////c////da////b////c////dendcase testtest
 begincasetest begincaserP   z
 bothcase rP   test bothcase testbcabbbcbbr]   r   abbaabbaaaaaaabr   r   bobb
Abbobbbobbbbobb)r   r   rP   AbbobbBbbobbdaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHBLAH   r$   aBLAHasepmaxsplitr5  r7  r7  r5  b c da b c drh   ri   rK   rk   rl   rV   rC   r   r   s    r   
test_split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                 	   U R                  / SQSS5        U R                  / SQSS5        U R                  / SS5        U R                  / SQSSS5        U R                  SS	/SSSS
5        U R                  / SQSSSS5        U R                  / SQSSSS5        U R                  / SQSSSS5        U R                  / SQSSS[        R                  S-
  5        U R                  S/SSSS5        U R                  / SQSSSS5        U R                  S/SSS5        U R                  S/SSS5        U R                  SS/SSS5        U R                  SS/SSS5        U R                  / SQSSS5        U R                  / SQSSSS5        U R                  S/S-  SS S  SS5        U R                  S!/S/S"-  -   SS S  SSS"5        U R                  / SQS#SS$5        U R                  S%S	/S#SS$S
5        U R                  / S&QS#SS$S5        U R                  / SQS#SS$S5        U R                  / SQS#SS$S5        U R                  / SQS#SS$[        R                  S'-
  5        U R                  S#/S#SS$S5        U R                  / S(QS)SS$S5        U R                  SS/S*SS+5        U R                  SS/S,SS+5        U R                  / S-QS.SS+5        U R                  S/S0/S1SS25        U R                  SS/S3SS35        U R                  S3/S3SS3S5        U R                  S/S//S4SS55        U R                  S6/S6SS75        U R                  S/SSS35        U R                  S8/S8SS35        U R                  S9S:/S;SS<5        U R                  / S=QS>SS<5        U R                  S/S-  S?S S@ SSA5        U R                  S/S-  S?S S@ SSASB5        U R                  SC/S/SD-  -   S?S S@ SSASD5        U R                  / SQSSSSE9  U R                  / SQSSS SE9  U R                  SFS	/SSS S
SG9  U R                  SS	/SSSS
SH9  U R                  SS	/SSSS
SG9  U R                  SS	/SSS
SSI9  U R                  SFS	/SSS
SH9  U R                  [        SJSSKSKSK5        U R                  [
        SJSS5        U R                  [
        SJSSS5        g )LNr  r;  rsplitz	a  b  c drP   r  r  za|b|cr  rb   )za|br   r  ra   r\   rf   d   r   )za||b||crP   r  r  r   r   z| begincaser  r  r  r  )za  br   r  r  r  r_   r   r  rd   r  r  r  r  za//b//c)za//br   r  r   )za////b////crP   r  r  r!  r  r  r"  r#  r   r   r%  r&  r]   r'  r(  r)  r*  r   bbobr   
bbobbbobbAr-  )rP   r   r   bbobbBbbobbAr/  r0  r1  r2  r3  r$   r4  a b cr8  r6  r9  rh   ri   r<  r   s    r   test_rsplit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                    U R                   nU" SSSSS5        U" SSSSS5        U" SSSSS5        U" SSSSS5        U" SSSSSS5        U" SSSSSS5        U" SSSSS[        R                  5        U" SSSSS5        U" SSSSS5        U" SSSSS5        U" S	SSSS
5        U" SSSSS5        U" SSSSSS5        U" SSSSS[        R                  5        U" SSSSSS5        U" SSSSSS5        U" SSSSSS5        U" SSSSSS5        U" SSSSSS5        U" SSSSS5        U" SSSSS5        U" SSSSSS5        U" SSSSS[        R                  5        U" SSSSSS5        U" SSSSSS5        U" SSSSSS5        U" SSSSSS5        U" SSSSSS5        U" SSSSS5        U" SSSSS5        U" SSSSSS5        U" SSSSS[        R                  5        U" SSSSSS5        U" SSSSSS5        U" SSSSSS5        U" SSSSSS5        U" SSSSSS5        U" SSSSSS5        U" SSSSS5        U" SSSSS5        U" SSSSS5        U" S S SSS5        U" S!S"SSSS#5        U" SS$SS$S5        U" S%S&SS$S5        U" SS'SS$S5        U" SS(SS$S5        U" S)S*SS$S5        U" S+S+SS$S5        U" S,S,SS$S5        U" S-S.SS$S5        U" S/S0SS$S[        R                  5        U" S/S0SS$SS5        U" S/S0SS$SS5        U" S/S0SS$SS5        U" S1S0SS$SS5        U" S0S0SS$SS5        U" S/S0SS$S5        U" S2S2SS$S5        U" S3S3SS$S5        U" S4S5SS4S5        U" S6S7SS4S5        U" S8S9SS4S5        U" S8S8SS4S5        U" S:S:SS;S;5        U" S<S:SS;S=5        U" S<S:SS;S=[        R                  5        U" S<S:SS;S=S5        U" S<S:SS;S=S5        U" S<S:SS;S=S5        U" S>S:SS;S=S5        U" S:S:SS;S=S5        U" S:S:SS?S@5        U" SAS:SSBSC5        U" SDSESSBSC5        U" SFS:SSGSH5        U" SISJSSGSH5        U" S:S:SSKSH5        U" SLSMSSNSO5        U" SLSMSSNSO[        R                  5        U" SLSMSSNSOS5        U" SLSMSSNSOS5        U" SLSMSSNSOS5        U" SPSMSSNSOS5        U" SQSMSSNSOS5        U" SMSMSSNSOS5        U" SRSSSS4ST5        U" SUSVSS4ST5        U" SSSSSSWSW5        U" SXSYSSZS[5        U" SXSYSSZS[S5        U" SXSYSSZS[[        R                  5        U" SXSYSSZS[S5        U" S\SYSSZS[S5        U" SYSYSSZS[S5        U" S]S^SSKS_5        U" S`SaSSbSc5        U" SYSYSS@S[5        U" SdSeSSfSg5        U" SdSeSSfSg[        R                  5        U" SdSeSSfSgS5        U" SdSeSSfSgS5        U" SdSeSSfSgS5        U" ShSeSSfSgS5        U" SiSeSSfSgS5        U" SeSeSSfSgS5        U" SSSjSSSS45        U" SkSlSSSS45        U" SmSmSS4Sn5        U R                  SoSpSSHSqS5        U R                  SrSpSSHS5        U R                  SsSpSSHSqS5        U R                  StSpSSHSqS5        U R                  StSpSSHSqS5        U R                  SpSpSSHSqS5        U R                  StSpSSHSq5        U R                  SpSpSSuSq5        U R                  SpSpSSuSqS5        U R                  SvS2SSSw5        U R                  SxS2SSSwS5        U R                  S2S2SSSwS5        U R                  SSSSS5        U R                  S2S2SSySzS5        U R                  S2S2SS{Sz5        U R                  SS|SS|S5        U R                  SS}SS|S5        U R                  SuS~SS|S5        U R                  [        SS5        U R                  [        SSS5        U R                  [        SSSS5        U R                  [        SSSS5        g )NrP   rt   r   rA  z*A**z*1A*1z*1z*-#A*-#z*-#z*-A*-A*-AAz*-rd   rf   r\   z*-A*-Ara   z*-AArb   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	ReykjavikrH   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@r0   z-a-b-c--z-a-b-cr   z--xyr5   123123123x123rh   ri   h)rK   rk   rl   rV   rC   )r   EQs     r   test_replace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                 f    SnUS-   U-   nSU-   S-   nS[        S5      -   nUR                  X$5        g )Nz!!! z                                                                                                                                                                                                                                                   z       z         )chrrt   )r   any_3_nonblank_codepointsseven_codepointsr_   r`   s        r   #test_replacement_on_buffer_boundary,BaseTest.test_replacement_on_buffer_boundary  sF     %*!4s:=VV**g6c#h			"&r   c                     Su  pX-   U-   U-   U-   nX-   U-   U-   nU R                  X4-   X4-   SUSS5        U R                  US-   X4-   SUSS5        U R                  US-   X4-   SUSS5        g )N)  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA  BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBrt   cccr   rb   ra   rK   )r   r   r   AABAAABBAs        r   "test_replace_uses_two_way_maxcount+BaseTest.test_replace_uses_two_way_maxcount  s    !	A!uqy1}iua	Aiua	Aiua	Ar   r  r  rf   z only applies to 32-bit platformsc                     SS-  nU R                  [        USSU5        U R                  [        USSU5        U R                  [        USSX-   5        g )Nr   i   rt   rP   rJ  )rV   r  )r   A2_16s     r   test_replace_overflowBaseTest.test_replace_overflow  sQ     uy"eDy#uEy$Lr   c                 ^   U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS	5        U R                  S
S
SS
5        U R                  S
S
SS5        U R                  SSSS
5        U R                  S
SSS5        U R                  [        SS5        U R                  [        SSS5        U R                  [        SSSS5        U R                  [        SSSS5        U R                  [        SSS5        g )Namrw  removeprefixspspamspamspamspamspampythonspiderzspam and eggsrP   r   rh   ri   r  )helr   r   s    r   test_removeprefix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                 ^   U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS	5        U R                  S
S
SS
5        U R                  S
S
SS5        U R                  SSSS
5        U R                  S
SSS5        U R                  [        SS5        U R                  [        SSS5        U R                  [        SSSS5        U R                  [        SSSS5        U R                  [        SSS5        g )Nr  rw  removesuffixr  r  r  r  blamzeggs and spamrP   r   rh   ri   r  )lor  r   r   s    r   test_removesuffixBaseTest.test_removesuffix2  s
   fnd;
NNFKA?HB3B8."=G^W=G^<G^R@G^REG^S"EG^[Ir   c                     U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  [        SSS	5        g )
N hello 
capitalizeHello hello Aaaar)  AaAarh   ri   r   r   s    r   test_capitalizeBaseTest.test_capitalizeD  sf    	9l;(<8(<855G\2>r   c                    U R                  / SQSS5        U R                  / SQSS5        U R                  SS/SSS S	5        U R                  / S
QSSS S5        U R                  / SQSSS S5        U R                  / SQSSS S5        U R                  / SQSSS [        R                  S	-
  5        U R                  S/SSS S5        U R                  S/SSS S5        U R                  / SQSSS S5        U R                  / SS5        U R                  S/SS5        U R                  SS/SS5        U R                  SS/SSS S	5        U R                  S/SSS S5        U R                  SS/SSS S	5        U R                  / SQSSS S5        U R                  / SQSSS S5        U R                  SS/SS5        SnU R                  S/S-  US5        U R                  S/USS  /-   USS S	5        U R                  S/S-  S /-   USS S5        S! HE  nU R                  S"S#/US5        U R                  S"S#/USS 5        U R                  S"S#/USS S5        MG     g )$N)thisrk  rT  r  functionzthis is the split functionr  r  a b c d r_   r:  r;  rb   )r_   r`   zc dra   r\   rf   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_   r`   r   
	a 	 b  < a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a r   r2  za zarf	barfzarf
barfzarfbarfzarfbarfzarfbarfarfbarfrK   rk   rl   r   r]   r`   s      r   test_additional_splitBaseTest.test_additional_splitM  sN   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,AOOUFOQ8OOUFOQ>OOUFOQqA	,r   c                    U R                  / SQSS5        U R                  / SQSS5        U R                  SS/SSS S	5        U R                  / S
QSSS S5        U R                  / SQSSS S5        U R                  / SQSSS S5        U R                  / SQSSS [        R                  S-
  5        U R                  S/SSS S5        U R                  S/SSS S5        U R                  / SQSSS S5        U R                  / SS5        U R                  S/SS5        U R                  SS/SS5        U R                  SS/SSS S	5        U R                  S/SSS S5        U R                  SS/SSS S	5        U R                  / SQSSS S5        U R                  / SQSSS S5        U R                  SS/SSS S 5        S!nU R                  S/S-  US5        U R                  US S" /S/-   USS S	5        U R                  S#/S/S$-  -   USS S$5        S% HE  nU R                  S&S'/US5        U R                  S&S'/USS 5        U R                  S&S'/USS S5        MG     g )(N)r  rk  rT  r@  r  zthis is the rsplit functionr@  r  r  rE  r  r;  rb   )za br   r  ra   r\   rf   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  r0  z a  ar$   r  r  r  r  r  s      r   test_additional_rsplitBaseTest.test_additional_rsplitq  s_   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,AOOUFOQ9OOUFOQ$?OOUFOQ$B	,r   c                    U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        SnU R                  S	US5        U R                  S
US5        U R                  SUS5        U R                  SSSS 5        U R                  SSSS 5        U R                  SSSS 5        U R                  SSSS 5        g )Nrh   z   hello   stripzhello   lstripz   hellorstripz 	
abc 	
r   z	abc 	
z	 	
abcr  )r   r`   s     r   test_strip_whitespaceBaseTest.test_strip_whitespace  s    8
M8<
M8<'2'q'*(!X6(!X6 	>
M8TB
M8TB'48r   c                    U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  S	S
SS
5        U R                  SS
SS5        U R                  [        SSSS5        U R                  [        SSSS5        U R                  [        SSSS5        g )Nrh   xyzzyhelloxyzzyr  xyz
helloxyzzyr  
xyzzyhellor  rP   mississippi
mississippr   ri   r   r   s    r   
test_stripBaseTest.test_strip  s    !2GUC&75I&75I'59M7MB 	mWcBGWb"=GXr2>GXr2>r   c                     U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  S	SSSS
5        U R                  [        SS5        g )Nz
abc       r   ljustrc   zabc   r   r\   ra   z
abc*******rI  r   r   s    r   
test_ljustBaseTest.test_ljust  p    eWb9%!4ugq1ugq1eWb#>E73r   c                     U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  S	SSSS
5        U R                  [        SS5        g )Nz
       abcr   rjustrc   z   abcr   r\   ra   z
*******abcrI  r   r   s    r   
test_rjustBaseTest.test_rjust  r  r   c                     U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  S	SSSS
5        U R                  [        SS5        g )Nz
   abc    r   centerrc   z abc  r   r\   ra   z
***abc****rI  r   r   s    r   test_centerBaseTest.test_center  sp    eXr:%15uh2uh2eXr3?E84r   c                 Z    U R                  SSS5        U R                  [        SSS5        g )NzhEllO CoMPuTErSzHeLLo cOmpUteRsswapcaserh   ri   r   r   s    r   test_swapcaseBaseTest.test_swapcase  s(    )+<jIGZ<r   c                    U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS	5        U R                  S
S
SS5        U R                  S
S
SS5        U R                  SS
SS	5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  [        SS5        g )Nr5   zfillra   r\   0123rf   z+123z+0123r   z-123z-0123000rP   34rb   0034r   r   s    r   
test_zfillBaseTest.test_zfill  s    ugq1ugq1w233!433!4r7A.dGQ/gq1E73r   c                 >   U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS	S5        U R                  SS
S5        U R                  [        SSS5        g )NFrP   islowerTr_   r   
r   aBcabc
ri   r   r   s    r   test_islowerBaseTest.test_islower  s    r9-c9-sI.tY/eY/ui0gy1E9b9r   c                 >   U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS	S5        U R                  SS
S5        U R                  [        SSS5        g )NFrP   isupperr_   Tr   r  ABCAbCzABC
r   ri   r   r   s    r   test_isupperBaseTest.test_isupper  s    r9-sI.c9-tY/eY/ui0gy1E9b9r   c                    U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS	S5        U R                  SS
S5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  [        SSS5        g )NFrP   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   ri   r   r   s    r   test_istitleBaseTest.test_istitle  s    r9-sI.c9-tY/19=2I>2I>99E8)D8)Dui0E9b9r   c                 d   U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS	S5        U R                  SS
S5        U R                  SSS5        U R                  [        SSS5        g )NFrP   isspacer_   Tr  	r  z 	
z 	
ar   ri   r   r   s    r   test_isspaceBaseTest.test_isspace  s    r9-sI.c9-dI.dI.dI.i3z95E9b9r   c                 >   U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS	S5        U R                  SS
S5        U R                  [        SSS5        g )NFrP   isalphaTr_   r   r  r   aBc123r  ri   r   r   s    r   test_isalphaBaseTest.test_isalpha  s    r9-c9-c9-tY/eY/x3w	2E9b9r   c                 d   U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS	S5        U R                  SS
S5        U R                  SSS5        U R                  [        SSS5        g )NFrP   isalnumTr_   r   r  	123abc456a1b3czaBc000 r  r   ri   r   r   s    r   test_isalnumBaseTest.test_isalnum  s    r9-c9-c9-tY/k95gy1y)4w	2E9b9r   c                    U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS	S5        [        S
5       Hm  nU R                  SSU-  S-   S5        U R                  SSU-  S-   S5        U R                  SSU-  S-   S-   S5        U R                  SSU-  S-   S-   S5        Mo     g )NTrP   isasciir  z F      ér   r  z        )rK   ro   )r   r   s     r   test_isasciiBaseTest.test_isascii(  s    b),fi0fi0j)4vy1vy1 qAOOD#a%&.)<OOE3q56>9=OOD#a%&.5"8)DOOE3q56>E#99E	 r   c                     U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  [        S	SS
5        g )NFrP   isdigitr_   T0
01234567890123456789ar   ri   r   r   s    r   test_isdigitBaseTest.test_isdigit7  sf    r9-sI.c9-lI6}i8E9b9r   c                    U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS	S5        U R                  S
SS5        U R                  [        SSS5        g )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getIntrh   ri   r   r   s    r   
test_titleBaseTest.test_title@  s|    	9g6(G4(G457TV]^57TV]`(G4GWb9r   c                    U R                  / SQSS5        U R                  / SQSS5        U R                  / SQSS5        U R                  / SQSS5        U R                  / SQS	S5        U R                  / S
QSS5        U R                  / S
QSSS5        U R                  / SQSSS5        U R                  / S
QSSSS9  U R                  / SQSSSS9  U R                  [        SSSS5        g )N)r   r   rP   r   zabc
def
ghi
splitlineszabc
def

ghi)r   r   r   zabc
def
ghizabc
def
ghi
)r   r   r   rP   zabc
def
ghi
)rP   r   r   r   rP   z
abc
def
ghi
F)r  r  zdef
zghi
r  T)keependsr   ri   r   r   s    r   test_splitlinesBaseTest.test_splitlinesI  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   r!   )<r   r   r   r   r)   rm   r+   r8   rK   rV   rY   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r=  rF  r  r  r  unittestskipIfrk   rl   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r'  r-  r2  r    r!   r   r   r#   r#      sW    I
 N
A20 EI >(
>N@U7;r3=j>2?4'8H
CC1$:
:
D:D>LL?\oAb'
A __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                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS r\R                   S 5       rS rS rS rS rS rS rSrg)StringLikeTesti\  c                     U R                  S5      nU R                  S5      nU H  nX#-  n[        U5        M     U R                  [        U5      [        U5      5        g )NDNSSECrP   )r)   hashrA   )r   r_   r`   r   s       r   	test_hashStringLikeTest.test_hash`  sP    NN8$NN2AFAG  	a$q'*r   c                     U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS	S5        U R                  S
S
S5        g )Nu   ῼῳῳῳu   ῳῳῼῼr  u   Ⓟⓨⓣⓗⓞⓝu   ⓅⓎⓉⒽⓄⓃu   ⓟⓨⓣⓗⓞⓝu	   Ⅰⅱⅲu	   ⅠⅡⅢu	   ⅰⅱⅲu   ƛᴀᶆȡᾷr  r   s    r   test_capitalize_nonascii'StringLikeTest.test_capitalize_nonasciii  s     	22L	B 	>>	N>>	N,,l	<,,l	< 	88,	Hr   c                 X   U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSSS	5        U R                  SSSS
S5        U R                  SSSS
S5        U R                  SSSSS5        U R                  SSSSS5        U R                  SSSSS5        U R                  SSSSSS5        U R                  SSSSSS5        U R                  SSSSSS	5        U R                  SSSSSS5        U R                  SSSSS	S5        U R                  SSSSSS5        U R                  SSSSSS5        U R                  SSSSSS5        U R                  SSSSSS5        U R                  SSSSS5        U R                  SSSSS5        U R                  SSSS
S5        U R                  SSSS
S5        U R                  SSSSSS5        U R                  SSSSS5        U R                  [        SS5        U R                  [        SSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS 5        U R                  SSSS!S5        U R                  SSSS"S5        U R                  SSSS#SS5        U R                  SSSS$SS	5        U R                  SSSS$SS%5        U R                  [        SSS&5        g )'NTrh   r   r  Fhello worldrP   ellorb   rc  rf   r   r  r   
helloworldlowor\   rj   r   rd   ire   r0  iri   r  har  llohelloxrh   r!   helloworldrD  rO  rB  rP  )r  r  r  helra   ri   r   r   s    r   test_startswithStringLikeTest.test_startswith{  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                    U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SS	SS
5        U R                  SS	SS
SS5        U R                  SS	SSSS5        U R                  SS	SSSS5        U R                  SS	SSSS5        U R                  SS	SSSS5        U R                  SS	SSSS5        U R                  SS	SSSS5        U R                  SSSSSS5        U R                  SSSSSS5        U R                  SSSSSS5        U R                  SSSSSS5        U R                  SSSSSS5        U R                  SSSSS5        U R                  SSSSS5        U R                  SSSSSS5        U R                  SSSSSS5        U R                  SS	SS
S5        U R                  SS	SS
SS5        U R                  SS	SS
SS5        U R                  SS	SSSS5        U R                  SS	SSSS5        U R                  SS	SSSS5        U R                  SS	SSSS5        U R                  SS	SSSS 5        U R                  SS	SSSS5        U R                  [        SS5        U R                  [        SSS!5        U R                  SSSS"5        U R                  SSSS#5        U R                  SSSS$5        U R                  SSSS%5        U R                  SS	SS&S5        U R                  SS	SS'SS5        U R                  SSSS(SS5        U R                  SSSS)SS5        U R                  SSSS*SS5        U R                  [        SSS+5        g ),NTrh   endswithr  Fr  rP   rA  rC  worlr\   r   worldr   rD  rb   rj   ra   rf   r   r   r   rF  rG  re   irE  rd   iiir0  ri   rH  rJ  rL  r!   rN  rQ  )hellellrR  )r  r[  rT  r   r   s    r   test_endswithStringLikeTest.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   U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS	5        U R                  SS
SS
5        U R                  SSSS
5        U R                  SSSS
5        g )NTrP   __contains__r   Fr  z abczabc r_   asdfasdr  r   s    r   test___contains__ StringLikeTest.test___contains__  s    b."5e^R8und;g~t<g~t<g~s;fnf=unf=r>6:r   c           	      6   U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSS[        SS5      5        U R                  SSS[        SS5      5        U R                  SSS[        SS	5      5        U R                  S
SS[        SS5      5        U R                  [        SSS5        S[	        5       4 H=  nSR                  [        U5      R                  5      nU R                  [        SSXS9  M?     g )Nr_   r   r   r   r   rd   r\   r   rb   rP   r   z)string indices must be integers, not '{}'rM   )rK   slicerV   rC   objectformatr7   r   )r   idx_typerN   s      r   test_subscriptStringLikeTest.test_subscript  s    UM15UM26UM15umU1a[AumU1d^DUM5A;?E=%1+>E=%@)HFMMdS[nNeNefLY}hb *r   c           	      P   U R                  SSS[        SS5      5        U R                  SSS[        SS5      5        U R                  SSS[        SS5      5        U R                  SSS[        S	S5      5        U R                  S
SS[        S	S5      5        U R                  SSS[        SS5      5        U R                  SSS[        SS5      5        U R                  SSS[        SS5      5        U R                  SSS[        SS	5      5        U R                  [        SSS5        g )Nr   r   r   r   r\   r   ra   r$  rb   r`   rP   r   r   )rK   rf  rV   rC   r   s    r   
test_sliceStringLikeTest.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                 .   [         R                  [         R                  -   nSS SSS[        R                  SSS4	nU HU  nU HL  nUSS   H@  n[        U5      X4U2   nU R                  SR                  U5      US	[        X4U5      5        MB     MN     MW     g )
Nr   rb   r\   )   rd   rF  irP   r   )	stringascii_lettersrv   rk   rl   r*   rK   rs   rf  )r   r   indicesstartstopstepLs          r   test_extended_getslice%StringLikeTest.test_extended_getslice  s      6==0dAq"ckk2r3?E#ABKDQ40AOOBGGAJ=$)%t$<> (   r   c                    U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  [        SS5        U R                  [        SSS5        g )	NrP   r   __mul__rd   r   rb   	abcabcabcr\   r   r   s    r   test_mulStringLikeTest.test_mul  sp    E9b1E9a0ui3UIq9E95E9b9r   c           	      t   U R                  SSS/ SQ5        U R                  SSSS5        U R                  SSSS5        U R                  S	SSS
5        U R                  SSS[        5       5        U R                  SSSS5        U R                  SSS[        S/5      5        U R                  SSS/ SQ5        U R                  [        SR
                  / SQ5        S HQ  nU R                  SU-  S-   U-  S S SSSU-  /U-  5        U R                  SU-  S-   U-  S S SSSU-  4U-  5        MS      " S S[        5      nU R                  SSSU" 5       5        U R                  [        SS5        U R                  [        SSS 5        U R                  [        SSS5        U R                  [        SSSS[        5       /5         S nU R                  S5      R                  U" 5       5        U R                  S5        g ! [         a/  nS[        U5      ;  a  U R                  S 5         S nAg  S nAg S nAff = f)!Nr;  r  rs   r  r   rP   bd)rP   r`   rP   r  ac)r_   rP   r   rP   zw x y zr   r_   )r   zza.b.crj  r  )r_   r`   r\   )r      }   r  rd   c                        \ rS rSrS rS rSrg)4StringLikeTest.test_join.<locals>.LiesAboutLengthSeqi0  c                     / SQU l         g )Nr  r   r   s    r   r   =StringLikeTest.test_join.<locals>.LiesAboutLengthSeq.__init__1  s    ?r   c                     g)Nr   r!   r   s    r   r   <StringLikeTest.test_join.<locals>.LiesAboutLengthSeq.__len__2  s    ar   r   N)r   r   r   r   r   r   r    r!   r   r   LiesAboutLengthSeqr  0  s    :'r   r  rE  rj   rb   ra   c               3      #    SS-   v   g 7f)Nrf   rP   r!   r!   r   r   f#StringLikeTest.test_join.<locals>.f;  s     "fs   	zexception not raised+zjoin() ate exception message)rK   r   r   rQ   rC   rs   rV   bytesr+   failr'   )r   r   r  r  r   s        r   	test_joinStringLikeTest.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! 	( 	( 	f.@.BCC0C6C3C!QA	.LL""13'
 II,-	  	:#a& 		899 !	:s   (G> >
H7 H22H7c                    U R                  SSSS5        U R                  SSSS5        U R                  SS	SS5        U R                  SS	SS5        U R                  S
S	SS5        U R                  SS	SS5        U R                  SSSS5        U R                  SS	SS5        S H!  nU R                  [        [        4S	SU5        M#     [        R
                  S-   n[        U5      nU R                  SSSS5        U R                  SSSS5        U R                  USSU5        U R                  SS[        U5      5        U R                  SSSS5        U R                  SSSS5        U R                  [        SS5        U R                  [        SSS5        U R                  [        SSS5        U R                  [        S	SS5        U R                  [        S S0 5        U R                  [        S!SS"5        U R                  [        SSS5        U R                  [        SSS#5        U R                  S$S%SS&S$05        U R                  S'S(SS)5        U R                  [        S*SS+5        U R                  [        S,SS-5        U R                  [        S.SS5        U R                  [        S/S0-  SS15        U R                  [        S2S0-  SS15        U R                  [        S*S[        R
                  S3-   S445        U R                  [        S5S[        R
                  S3-   S645         " S7 S8[        5      nU R                  [        SSU" 5       5        g )9Nz+hello+z+%s+__mod__rh   z+10+z+%d+rc   r_   z%c""   $$   10z%dr     )ii    z 42z%3ldri   42      E@z0042.00z%07.2fz%07.2Fr   z%(foo)sz%s%srT  r
   z%(fooz%(foo)s %(bar)s)foori   y      E@        barz	%((foo))sz(foo)haaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxz%sxgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%*s)r  r  z%10.*f)r  r  z%10z%%%dfl            g	@z%%.%dfrb   rP   %.*f$I$I?c                       \ rS rSrSrg))StringLikeTest.test_formatting.<locals>.Xiv  r!   Nr>   r!   r   r   Xr  v  s    r   r  )rK   rV   r   r  rk   rl   r'   rY   floatrC   rg  )r   ordinal	longvalue
slongvaluer  s        r   test_formattingStringLikeTest.test_formattingD  s   	69g>	26T9c2T9c2T9b1T9b1dIr2i6'Gj-8$	7S ( 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                    [         R                  " S5      nSUR                  R                  5       S-   -  S-
  nU R	                  [
        SSUR                  S-   S45        U R	                  [
        SSUR                  S-   S45        U R	                  [
        SSUS-   S45        U R	                  [
        SSUR                  S-   S45        g )N	_testcapirb   r  r  rP   r  r  )r   import_modulePY_SSIZE_T_MAX
bit_lengthrV   r  INT_MAXUINT_MAX)r   r  SIZE_MAXs      r   test_formatting_c_limits'StringLikeTest.test_formatting_c_limitsy  s    !//<	)22==?!CDIy#22Q6;	=	#++a/8	: 	y"Q,+	-	#,,q0&9	;r   c                     [        S5       H:  nSU-  nSn[        S5       H!  nUS-  S-  S-  nU R                  USU5        M#     M<     g )	NrA  z%%.%ifg{Gz?<   g.DT!	@g      @g      $@r  )ro   rY   )r   precrh  r2   r0   s        r   test_floatformatting#StringLikeTest.test_floatformatting  sP    #JD_FE2Y-3d:vy%8  r   c                    U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSSSS5        U R                  SSS5        U R                  SSS	5        U R                  SSS5        U R                  SSS
5        U R                  SSS5        U R                  SSS5        U R                  SSS5        g )Nr_   r   r   Tr   r   r  rt   r  r  r*  r  r   s    r   test_inplace_rewrites$StringLikeTest.test_inplace_rewrites  s    S'*c9-S'*c9-S)S#6c9-S,/c9-S*-c9-S'*c9-r   c                 0   U R                  SSSS5        SnU R                  SUSS5        U R                  SUSS	5        U R                  S
USS5        U R                  SUSS5        U R                  [        USS5        U R                  [        USS 5        g )N)zthis is the partiztion methodzthis is the partition method	partitionr  http://www.python.orghttp://www.python.orgr  )r  rP   rP   rh  rP   http://r  r  zhttp://www.python.orgrP   r  rP   rK   rV   r   rC   r   Ss     r   test_partitionStringLikeTest.test_partition  s    @*K	? $91k5Q91k3O91k9U91k5QQR8A{D9r   c                 0   U R                  SSSS5        SnU R                  SUSS5        U R                  SUSS	5        U R                  S
USS5        U R                  SUSS5        U R                  [        USS5        U R                  [        USS 5        g )N)zthis is the rpartir  z	on methodzthis is the rpartition method
rpartitionr  r  r  r  )rP   rP   r  rh  r  r  r  r  rP   r  r  s     r   test_rpartitionStringLikeTest.test_rpartition  s    A+\4	A $91lER91lCP91lIV91lERQb9A|T:r   c                    SnU R                  SUSSS 5        U R                  SUSSSS 5        U R                  SUSSS S5        U R                  SUSSS S 5        U R                  SUS	SS 5        U R                  SUS	SSS 5        U R                  SUS	SS S5        U R                  SUS	SS S 5        U R                  SUS
SS 5        U R                  SUS
SSS 5        U R                  SUS
SS S5        U R                  SUS
SS S 5        U R                  SUSSS 5        U R                  SUSSSS 5        U R                  SUSSS S5        U R                  SUSSS S 5        U R                  SUSSS 5        U R                  SUSSSS 5        U R                  SUSSS S5        U R                  SUSSS S 5        U R                  SUSSS 5        U R                  SUSSSS 5        U R                  SUSSS S5        U R                  SUSSS S 5        U R                  SUSSS 5        U R                  SUSSSS 5        U R                  SUSSS S5        U R                  SUSSS S 5        g )Nrh   ra   r   r  r\   rF  r   r  r   r   r   r^   rb   r0   TrX  rc  r  Fr   r  )r   r   s     r   test_none_arguments"StringLikeTest.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           	      :   SnSnU R                  [        SUR                  US S S 5        U R                  [        SUR                  US S S 5        U R                  [        SUR                  US S S 5        U R                  [        SUR
                  US S S 5        U R                  [        SUR                  US S S 5        U R                  [        SUR                  US S S 5        U R                  [        S	UR                  US S S 5        U R                  S
SSS5        g )Nrh   r0   z^find\bz^rfind\bz^index\bz	^rindex\bz^count\bz^startswith\bz^endswith\brc   rv  r   r   )
assertRaisesRegexrC   r   r   r   r   r^   r   rX  rK   )r   r   r0   s      r   *test_find_etc_raise_correct_error_messages9StringLikeTest.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   r!   N)r   r   r   r   r;  r>  rU  r]  rc  rj  rm  rx  r}  r  r  r   cpython_onlyr  r  r  r  r  r  r  r    r!   r   r   r7  r7  \  s|    +H$.B`2@h	;cA
>:%.N3;j ; ;9.&:;$AL=r   r7  c                       \ rS rSrS rSrg)MixinStrUnicodeTesti  c                 (   U R                   n " S SU5      nU" S5      nU" 5       R                  U/5      nU R                  X45        U R                  [	        U5      U5        U" S5      nU" 5       R                  U/5      nU R                  X45        g )Nc                       \ rS rSrSrg)5MixinStrUnicodeTest.test_bug1001011.<locals>.subclassi  r!   Nr>   r!   r   r   subclassr    s    r   r  r   )r)   rs   rB   r6   r7   )r   tr  s1s2s        r   test_bug1001011#MixinStrUnicodeTest.test_bug1001011  sz    
 NN	q 	fSXXrd^ d2h"vYSXXrd^br   r!   N)r   r   r   r   r  r    r!   r   r   r  r    s    r   r  )__doc__r4  rq  rk   r  r  r   test.supportr   collectionsr   r   r   r#   r7  r  r!   r   r   <module>r     sP    % $  &   1 1GA GAT"_=X _=D r   