o
    °ó®g! ã                   @   s°   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	Z	G dd„ dƒZ
G dd„ de
ƒZG d	d
„ d
e
ƒZG dd„ dƒZG dd„ deƒZG dd„ dƒZG dd„ dƒZdS )zF
Common tests shared by test_unicode, test_userstring and test_bytes.
é    N)Úsupport)ÚUserListc                   @   s&   e Zd Zd	dd„Zdd„ Zdd„ ZdS )
ÚSequenceÚwxyzc                 C   s
   || _ d S ©N©Úseq)Úselfr   © r
   úG/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/test/string_tests.pyÚ__init__   ó   
 zSequence.__init__c                 C   s
   t | jƒS r   )Úlenr   ©r	   r
   r
   r   Ú__len__   r   zSequence.__len__c                 C   s
   | j | S r   r   )r	   Úir
   r
   r   Ú__getitem__   r   zSequence.__getitem__N)r   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r
   r
   r
   r   r   
   s    
r   c                   @   ó   e Zd Zdd„ Zdd„ ZdS )ÚBadSeq1c                 C   ó   g d¢| _ d S )N)é   Úhelloé{   r   r   r
   r
   r   r      ó    zBadSeq1.__init__c                 C   s   dj | jŽ S )Nz{0} {1} {2})Úformatr   r   r
   r
   r   Ú__str__   ó    zBadSeq1.__str__N)r   r   r   r   r   r
   r
   r
   r   r      ó    r   c                   @   r   )ÚBadSeq2c                 C   r   )N©ÚaÚbÚcr   r   r
   r
   r   r      r   zBadSeq2.__init__c                 C   s   dS )Né   r
   r   r
   r
   r   r      s    zBadSeq2.__len__N)r   r   r   r   r   r
   r
   r
   r   r!      r    r!   c                   @   s|  e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Ze ejd'kp]e d(¡d)kd*¡d+d,„ ƒZd-d.„ Zd/d0„ Zd1d2„ Z d3d4„ Z!d5d6„ Z"d7d8„ Z#d9d:„ Z$d;d<„ Z%d=d>„ Z&d?d@„ Z'dAdB„ Z(dCdD„ Z)dEdF„ Z*dGdH„ Z+dIdJ„ Z,dKdL„ Z-dMdN„ Z.dOdP„ Z/dQdR„ Z0dSdT„ Z1dUdV„ Z2dWdX„ Z3dS )YÚBaseTestNFc                    sz   t |tƒrˆ j |¡S t |tƒr‡ fdd„|D ƒS t |tƒr)t‡ fdd„|D ƒƒS t |tƒr;t‡ fdd„| ¡ D ƒƒS |S )Nc                    ó   g | ]}ˆ   |¡‘qS r
   ©Úfixtype©Ú.0Úxr   r
   r   Ú
<listcomp>,   ó    z$BaseTest.fixtype.<locals>.<listcomp>c                    r(   r
   r)   r+   r   r
   r   r.   .   r/   c                    s$   g | ]\}}ˆ   |¡ˆ   |¡f‘qS r
   r)   )r,   ÚkeyÚvaluer   r
   r   r.   0   s    ÿÿ)Ú
isinstanceÚstrÚ	__class__Ú	type2testÚlistÚtupleÚdictÚitems)r	   Úobjr
   r   r   r*   (   s   



þzBaseTest.fixtypec                 C   s   |   t|  d¡ƒ| j¡ d S )NÚ123)ÚassertIsÚtyper*   r5   r   r
   r
   r   Útest_fixtype7   s   zBaseTest.test_fixtypec                    s´   ˆ   |¡}ˆ   |¡}ˆ   |¡}‡ fdd„| ¡ D ƒ}t||ƒ|i |¤Ž}ˆ  ||¡ ||u rXzG dd„ dˆ jjƒ}W n
 tyD   Y d S w ||ƒ}t||ƒ|Ž }ˆ  ||¡ d S d S )Nc                    s   i | ]
\}}|ˆ   |¡“qS r
   r)   )r,   ÚkÚvr   r
   r   Ú
<dictcomp>?   s    z'BaseTest.checkequal.<locals>.<dictcomp>c                   @   ó   e Zd ZdS )z$BaseTest.checkequal.<locals>.subtypeN©r   r   r   r
   r
   r
   r   ÚsubtypeI   ó    rD   )r*   r9   ÚgetattrÚassertEqualr4   r5   Ú	TypeErrorÚassertIsNot)r	   Úresultr:   Ú
methodnameÚargsÚkwargsZ
realresultrD   r
   r   r   Ú
checkequal;   s&   


þÿ÷zBaseTest.checkequalc                 G   sb   |   |¡}|   |¡}|  |¡}t||ƒ|Ž  W d   ƒ n1 s!w   Y  |  t|jƒd¡ d S )NÚ )r*   ÚassertRaisesrF   ZassertNotEqualr3   Ú	exception)r	   Úexcr:   rK   rL   Úcmr
   r
   r   ÚcheckraisesS   s   

ÿzBaseTest.checkraisesc                 G   s&   |   |¡}|   |¡}t||ƒ|Ž  d S r   )r*   rF   )r	   r:   rK   rL   r
   r
   r   Ú	checkcall[   s   

zBaseTest.checkcallc                    s:  ˆ   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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tjd¡ ˆ  tdd¡ ˆ jrþˆ   dddd¡ nˆ  tddd¡ g d¢}d}t|ƒ}tƒ }t|| ƒD ]#}g }t|ƒD ]}t	||ƒ\}}| 
|| ¡ q!| d |¡¡ q‡ fdd„|D ƒ}|D ]R}t|ƒ}	|D ]H}| |¡}
|rot	|	t| |ˆ  d¡¡ƒ t|ƒƒ\}}n	t|ƒd d}}|s€|
|kr—ˆ  |dd||f ¡ ˆ  |
|d|
||f ¡ qPqHd S )Né   ÚaaaÚcountr#   r   r$   é   é   é
   éÿÿÿÿéöÿÿÿrO   é   Úxxr   é*   )rO   r#   r$   r   c                    r(   r
   r)   ©r,   Ztsr   r
   r   r.   ’   r/   z'BaseTest.test_count.<locals>.<listcomp>z%s != 0 for %sz%s != %s for %s)rN   ÚsysÚmaxsizerT   rH   Úcontains_bytesr   ÚsetÚrangeÚdivmodÚappendÚaddÚjoinrX   Úreplacer*   rG   )r	   ÚcharsetÚdigitsÚbaseÚteststringsr   ÚentryÚjÚmÚnÚr1Úr2Úremr
   r   r   Ú
test_count`   sp   

ÿ€÷þzBaseTest.test_countc              	      sp  ˆ   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¡ ˆ  tdd¡ ˆ jrwˆ   dddd¡ nˆ  t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tjd¡ ˆ   ddddtjd d¡ g d¢}d}t|ƒ}tƒ }t|| ƒD ]!}g }t|ƒD ]}t	||ƒ\}}| 
|| ¡ qá| d
 |¡¡ qÙ‡ fdd„|D ƒ}|D ]/}|D ])}| |¡}	|	dk}
||v }ˆ  |
|¡ |	dkr2ˆ  ||	|	t|ƒ … |¡ q
qd S )Nr   ÚabcdefghiabcÚfindÚabcé	   rZ   r\   Údefr^   rO   rV   rY   Úrrarrrrrrrrrar#   é   é   r   r`   r_   ÚabÚxxx©rO   r#   r$   r%   é   c                    r(   r
   r)   ra   r   r
   r   r.   Ï   r/   z&BaseTest.test_find.<locals>.<listcomp>)rN   rT   rH   rd   rb   rc   r   re   rf   rg   rh   ri   rj   ry   rG   ©r	   rl   rm   rn   ro   r   rp   rq   rr   Zlocrt   ru   r
   r   r   Ú	test_find    sX   

€úÿzBaseTest.test_findc              	      s  ˆ   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¡ ˆ  tdd¡ ˆ jr}ˆ   d	ddd¡ nˆ  tddd¡ g d¢}d}t|ƒ}tƒ }t|| ƒD ]!}g }t|ƒD ]}t||ƒ\}}| || ¡ q | 	d 
|¡¡ q˜‡ fdd„|D ƒ}|D ],}|D ]'}| |¡}	|	d	k}
||v }ˆ  |
|¡ |	d	krðˆ  ||	|	t|ƒ … |¡ qÉqÅˆ   d	dddtjd d¡ ˆ   dddd¡ d S )Nr{   rx   Úrfindrz   r~   rO   r   Úabcdr\   ZabczrV   r^   r}   r#   r   rY   r   r`   r‚   rƒ   c                    r(   r
   r)   ra   r   r
   r   r.   þ   r/   z'BaseTest.test_rfind.<locals>.<listcomp>r€   r   rZ   u   <......Ð¼...ú<)rN   rT   rH   rd   r   re   rf   rg   rh   ri   rj   r†   rG   rb   rc   r„   r
   r   r   Ú
test_rfindÙ   sN   
€ú	zBaseTest.test_rfindc                 C   s"  |   dddd¡ |   dddd¡ |   dddd¡ |   ddddd	¡ |  tddd
¡ |  tdddd	¡ |  tdddd¡ |  tdddd¡ |   dddd¡ |   ddddd¡ |  tddddd¡ |   dddddd ¡ |   ddddd d¡ |  tdd¡ | jr‡|  tddd¡ d S |  tddd¡ d S )Nr   rx   ÚindexrO   rV   r|   rz   r{   rZ   ÚhibZabcdefghiabÚ	abcdefghiÚghir&   r\   rY   r}   r#   r~   r^   r   r   r`   ©rN   rT   Ú
ValueErrorrH   rd   r   r
   r
   r   Ú
test_index  s"   zBaseTest.test_indexc                 C   s<  |   dddd¡ |   dddd¡ |   dddd¡ |   d	dddd	d
¡ |  tddd¡ |  tdddd¡ |  tdddd	d
¡ |  tdddd	d¡ |  tdddd	d
¡ |   dddd¡ |   ddddd¡ |  tddddd¡ |   dddddd ¡ |   ddddd d¡ |  tdd¡ | jr”|  tddd¡ d S |  tddd¡ d S )Nr~   rx   ÚrindexrO   rV   r|   r{   rz   r   r\   r‹   Z	defghiabcrZ   rŒ   r   r&   r}   r#   r^   r   rY   r   r`   rŽ   r   r
   r
   r   Útest_rindex'  s$   zBaseTest.test_rindexc           
   	   C   sÚ   dd„ }t j}t j}tdƒD ]\}d |d|dƒd¡|ddƒ }|d	t|ƒ|dƒ … }d |d
|dƒd¡}d |d
|dƒd¡}|| | }	| j||	d |  |||	ƒ|	d|¡ W d	  ƒ q1 sew   Y  qd	S )z-Cover the special path for periodic patterns.c                 S   s*   t t|ƒƒD ]}| | |¡r|  S qdS )Nr\   )rf   r   Ú
startswith)ÚpÚsr   r
   r
   r   Úreference_findC  s
   ÿz;BaseTest.test_find_periodic_pattern.<locals>.reference_findéè  rO   Úabcder[   )r?   é   NZabcdeféÐ  )r”   Útextry   )ÚrandomÚ	randrangeÚchoicesrf   rj   r   ZsubTestrN   )
r	   r–   Zrrrž   Ú_Zp0r”   ÚleftÚrightr›   r
   r
   r   Útest_find_periodic_patternA  s    ÿÿúz#BaseTest.test_find_periodic_patternc                 C   sœ   d}d| d d|  }d| | }|   t|ƒt|ƒ |d|¡ dd|  d }|d	d
… d|  | d|  }|   t|ƒ|tdƒ  t|ƒ |d|¡ d	S )z)When the table of 8-bit shifts overflows.id  r#   r$   Zbabbaary   Zdddrz   ZeeeNr\   ZddeededdeedeZde)rN   r   )r	   ÚNZpattern1Ztext1Zpattern2Ztext2r
   r
   r   Útest_find_shift_table_overflowU  s   ÿ ÿz'BaseTest.test_find_shift_table_overflowc                 C   s0   |   ddd¡ |   ddd¡ |  tddd¡ d S )Nr   ÚHeLLoÚlowerr`   ©rN   rT   rH   r   r
   r
   r   Ú
test_lowerg  ó   zBaseTest.test_lowerc                 C   s0   |   ddd¡ |   ddd¡ |  tddd¡ d S )NZHELLOr¥   Úupperr   r`   r§   r   r
   r
   r   Ú
test_upperl  r©   zBaseTest.test_upperc                 C   sè   |   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¡ | j ddddd | j ddddd |   dddd¡ |  tdddd¡ tjdk rpt d¡dkrr|  tddtj¡ d S d S d S )Nzabcab      def
g       hizabcab	def
g	hiÚ
expandtabsr&   zabcab  def
g   hir^   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
	brZ   r   r`   ì        ÚPz	a
	b)rN   rT   rH   rb   rc   ÚstructÚcalcsizeÚOverflowErrorr   r
   r
   r   Útest_expandtabsq  sD   ÿÿÿÿÿÿÿÿÿÿÿzBaseTest.test_expandtabsc                 C   s.  |   g d¢ddd¡ |   dgdddd¡ |   ddgdddd¡ |   g d	¢dddd
¡ |   g d¢dddd¡ |   g d¢dddd¡ |   g d¢dddtjd
 ¡ |   dgdddd¡ |   g d¢dddd
¡ |   dgddd¡ |   dgddd¡ |   ddgddd¡ |   ddgddd¡ |   g d¢ddd¡ |   g d¢dddd
¡ |   dgd dd d… dd¡ |   dgd dg dd d… ddd¡ |   g d¢ddd ¡ |   dd!gddd d¡ |   g d"¢ddd d
¡ |   g d¢ddd d¡ |   g d¢ddd d¡ |   g d¢ddd tjd# ¡ |   dgddd d¡ |   g d$¢d%dd d
¡ |   ddgd&dd'¡ |   dd(gd)dd'¡ |   g d*¢d+dd'¡ |   dd,gd-dd.¡ |   ddgd/dd/¡ |   d/gd/dd/d¡ |   d0d0gd1dd2¡ |   d3gd3dd4¡ |   dgddd/¡ |   d5gd5dd/¡ |   d6d7gd8dd9¡ |   g d:¢d;dd9¡ |   dgd d<d d=… dd>¡ |   dgd d<d d=… dd>d?¡ |   dgd@ dAg d<d d=… dd>d@¡ | j g d¢ddddB | j ddgdddddC | j ddgdddddD | j ddgdddddE | j ddFgdGdddC |  tdHddIdIdI¡ |  tdHdd¡ |  tdHddd¡ d S )JN©r#   r$   r%   Údúa|b|c|dÚsplitú|r   r#   zb|c|drZ   )r#   r$   zc|drY   rV   r^   )r#   rO   zb||c||dú
a||b||c||dr‡   rO   úendcase ú	endcase |z
 startcasez| startcase©rO   ZbothcaserO   ú
|bothcase|)r#   rO   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|r\   é   ú	a|a|a|a|aú
a//b//c//dú//zb//c//d)r#   r$   zc//dr[   )r#   rO   zb////c////dúa////b////c////dúendcase testÚtestú
 begincaseútest begincase©rO   z
 bothcase rO   útest bothcase testÚbcÚabbbcÚbbrW   r€   ÚabbaabÚbaÚaaaaÚaabÚaaÚAZbobbZ
AbbobbbobbÚbbobb)rÔ   ÚBrO   ZAbbobbBbbobbÚdaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHaBLAHéüÿÿÿÚBLAHé   é   ÚaBLAHa©Úsep©Úmaxsplit©rÞ   rà   ©rà   rÞ   úb c dúa b c dr   r`   ©rN   rb   rc   rT   rH   r   r   r
   r
   r   Ú
test_splitŽ  s„   ÿÿÿÿ ÿ
ÿ
ÿ
ÿ
ÿzBaseTest.test_splitc                 C   s  |   g d¢ddd¡ |   ddgdddd¡ |   g d¢dddd	¡ |   g d¢dddd
¡ |   g d¢dddd¡ |   g d¢dddtjd ¡ |   dgdddd¡ |   g d¢dddd	¡ |   dgddd¡ |   dgddd¡ |   ddgddd¡ |   ddgddd¡ |   g d¢ddd¡ |   g d¢dddd	¡ |   dgd dd d… dd¡ |   dgdgd   dd d… ddd ¡ |   g d¢d!dd"¡ |   d#dgd!dd"d¡ |   g d$¢d!dd"d	¡ |   g d¢d!dd"d
¡ |   g d¢d!dd"d¡ |   g d¢d!dd"tjd% ¡ |   d!gd!dd"d¡ |   g d&¢d'dd"d	¡ |   ddgd(dd)¡ |   ddgd*dd)¡ |   g d+¢d,dd)¡ |   d-d.gd/dd0¡ |   ddgd1dd1¡ |   d1gd1dd1d¡ |   d-d-gd2dd3¡ |   d4gd4dd5¡ |   dgddd1¡ |   d6gd6dd1¡ |   d7d8gd9dd:¡ |   g d;¢d<dd:¡ |   dgd d=d d>… dd?¡ |   dgd d=d d>… dd?d@¡ |   dAgdgdB  d=d d>… dd?dB¡ | j g d¢ddddC | j ddgdddddD | j ddgdddddE | j ddgdddddF | j dGdgdHdddD |  tdIddJdJdJ¡ |  tdIdd¡ |  tdIddd¡ d S )KNr´   r¶   Úrsplitr¸   za|b|crµ   rZ   )za|br%   rµ   rY   rV   r^   éd   r   )za||b||crO   rµ   r¹   r‡   rO   rÈ   z| begincaserº   r»   r¼   r½   )za  br%   rµ   r¾   r¿   r#   r™   rÀ   r\   rÂ   rÁ   rÃ   rÄ   za//b//c)za//br%   rµ   rƒ   )za////b////crO   rµ   rÅ   rÉ   rÇ   rÆ   rÊ   rË   r€   r%   rÍ   rÎ   rW   rÏ   rÐ   rÑ   rÒ   rÓ   ZbbobrÔ   Z
bbobbbobbArÕ   )rO   rÖ   rÔ   ZbbobbBbbobbAr×   rØ   rÙ   rÚ   rÜ   rÛ   rÝ   rß   rá   râ   úa b crä   r   r`   rå   r   r
   r
   r   Útest_rsplitÔ  s‚   ÿÿÿÿ ÿ
ÿ
ÿ
ÿ
ÿzBaseTest.test_rsplitc                 C   sö  | 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ƒ |   dodpddHdqd¡ |   drdpddHd¡ |   dsdpddHdqd¡ |   dtdpddHdqd¡ |   dtdpddHdqd¡ |   dpdpddHdqd¡ |   dtdpddHdq¡ |   dpdpddudq¡ |   dpdpddudqd¡ |   dvd2dddw¡ |   dxd2dddwd¡ |   d2d2dddwd¡ |   ddddd¡ |   d2d2ddydzd¡ |   d2d2dd{dz¡ |   dd|dd|d¡ |   dd}dd|d¡ |   dud~dd|d¡ |  tdd¡ |  tddd€¡ |  tddd€d¡ |  tdddd€¡ d S )‚NrO   rk   rÔ   rè   z*A*Ú*z*1A*1z*1z*-#A*-#z*-#z*-A*-A*-ÚAAz*-r\   r^   rV   z*-A*-ArY   z*-AArZ   r   ZAAAZ
AAAAAAAAAAZBCDZABACADArƒ   ZBCDAZBCADAZBACADAZABCADZABCADAAz*************z^A^aê  ^AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA^iç  ÚtheZaterZtheaterZthetheZthethethetherÑ   ZtheatheatheatheaÚthatZthaetzhere and rezhere and therezhere and re and rezhere and there and therezhere and re and thererz   ZabcdefgZbobZbbobobZbobXbobZbbobobXbbobobZaaaaaaaZ
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 tissueZcobobZbobobZcobZcobobXcobocobZbobobXbobobobZbotZReyKKjaviKKZ	Reykjavikr?   ZKKZ
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ÚspamZhamzham, ham, eggs and spamzham, spam, eggs and spamZbobobobZbobobXbobobZbobobobXbobobobZBOBOBOBZbobbyzone@two!three!zone!two!three!ú@Zonetwothreezone@two@three!zone@two@three@r-   z-a-b-c-ú-z-a-b-cr€   z--Zxyr;   Z123123Z123x123r   r`   Úh)rN   rb   rc   rT   rH   )r	   ZEQr
   r
   r   Útest_replace  s@  
ÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿzBaseTest.test_replacer®   r¯   r^   z only applies to 32-bit platformsc                 C   sF   dd }|   t|dd|¡ |   t|dd|¡ |   t|dd|| ¡ d S )NrÔ   i   rk   rO   rì   )rT   r²   )r	   ZA2_16r
   r
   r   Útest_replace_overflowË  s   zBaseTest.test_replace_overflowc                 C   óæ   |   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dd¡ |  tddd¡ |  tdddd¡ |  tdddd¡ |  tddd¡ d S )NÚamrù   ÚremoveprefixÚspÚspamspamÚspamspamspamÚpythonZspiderzspam and eggsrO   r˜   r   r`   rü   )ÚheÚlr§   r   r
   r
   r   Útest_removeprefixÔ  ó   zBaseTest.test_removeprefixc                 C   rÿ   )Nr  rù   Úremovesuffixr   r  r  r  Zblamzeggs and spamrO   r˜   r   r`   rü   )Úlor  r§   r   r
   r
   r   Útest_removesuffixæ  r	  zBaseTest.test_removesuffixc                 C   sZ   |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |  tddd	¡ d S )
Nú hello Ú
capitalizeúHello úhello ZAaaarÑ   ZAaAar   r`   r§   r   r
   r
   r   Útest_capitalizeø  ó   zBaseTest.test_capitalizec                 C   s&  |   g d¢dd¡ |   g d¢dd¡ |   ddgddd d	¡ |   g d
¢ddd d¡ |   g d¢ddd d¡ |   g d¢ddd d¡ |   g d¢ddd tjd	 ¡ |   dgddd d¡ |   dgddd d¡ |   g d¢ddd d¡ |   g dd¡ |   dgdd¡ |   ddgdd¡ |   ddgddd d	¡ |   dgddd d¡ |   ddgddd d	¡ |   g d¢ddd d¡ |   g d¢ddd d¡ |   ddgdd¡ d}|   dgd |d¡ |   dg|dd … g |dd d	¡ |   dgd d g |dd d¡ d!D ] }|   d"d#g|d¡ |   d"d#g|dd ¡ |   d"d#g|dd d¡ qðd S )$N)Úthisr÷   rí   r·   Úfunctionzthis is the split functionr·   r´   úa b c d r#   rã   rä   rZ   )r#   r$   zc drY   rV   r^   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©rN   rb   rc   ©r	   rW   r$   r
   r
   r   Útest_additional_split  s@   
ÿÿ"üzBaseTest.test_additional_splitc                 C   s*  |   g d¢dd¡ |   g d¢dd¡ |   ddgddd d	¡ |   g d
¢ddd d¡ |   g d¢ddd d¡ |   g d¢ddd d¡ |   g d¢ddd tjd ¡ |   dgddd d¡ |   dgddd d¡ |   g d¢ddd d¡ |   g dd¡ |   dgdd¡ |   ddgdd¡ |   ddgddd d	¡ |   dgddd d¡ |   ddgddd d	¡ |   g d¢ddd d¡ |   g d¢ddd d¡ |   ddgddd d ¡ d!}|   dgd |d¡ |   |d d"… gdg |dd d	¡ |   d#gdgd$  |dd d$¡ d%D ] }|   d&d'g|d¡ |   d&d'g|dd ¡ |   d&d'g|dd d¡ qòd S )(N)r  r÷   rí   rç   r  zthis is the rsplit functionrç   r´   r  ré   rµ   rä   rZ   )za br%   rµ   rY   rV   r^   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!  r
   r
   r   Útest_additional_rsplit%  sP   
ÿÿÿÿÿÿ"üzBaseTest.test_additional_rsplitc                 C   sª   |   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 S )Nr   z   hello   Ústripzhello   Úlstripz   helloÚrstripz 	
abc 	
rz   z	abc 	
z	 	
abc©rN   )r	   r$   r
   r
   r   Útest_strip_whitespaceM  s   zBaseTest.test_strip_whitespacec                 C   sš   |   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dddd¡ |  tdddd¡ |  tdddd¡ d S )Nr   Zxyzzyhelloxyzzyr&  ZxyzZ
helloxyzzyr'  Z
xyzzyhellor(  rO   ZmississippiZ
mississippr   r`   r§   r   r
   r
   r   Ú
test_strip^  s   zBaseTest.test_stripc                 C   ód   |   dddd¡ |   dddd¡ |   dddd¡ |   dddd¡ |   d	dddd
¡ |  tdd¡ d S )Nz
abc       rz   Úljustr[   zabc   r   rV   rY   z
abc*******rë   r§   r   r
   r
   r   Ú
test_ljustm  ó   zBaseTest.test_ljustc                 C   r,  )Nz
       abcrz   Úrjustr[   z   abcr   rV   rY   z
*******abcrë   r§   r   r
   r
   r   Ú
test_rjustu  r/  zBaseTest.test_rjustc                 C   r,  )Nz
   abc    rz   Úcenterr[   z abc  r   rV   rY   z
***abc****rë   r§   r   r
   r
   r   Útest_center}  r/  zBaseTest.test_centerc                 C   s"   |   ddd¡ |  tddd¡ d S )NzhEllO CoMPuTErSzHeLLo cOmpUteRsÚswapcaser   r`   r§   r   r
   r
   r   Útest_swapcase…  s   zBaseTest.test_swapcasec                 C   sÒ   |   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dd¡ d S )Nr;   ÚzfillrY   rV   Z0123r^   z+123z+0123rƒ   z-123z-0123Z000rO   Z34rZ   Z0034r§   r   r
   r
   r   Ú
test_zfillŠ  s   zBaseTest.test_zfillc                 C   sv   |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |   dd	d¡ |   dd
d¡ |  tddd¡ d S )NFrO   ÚislowerTr#   rÔ   Ú
rz   ZaBcúabc
r`   r§   r   r
   r
   r   Útest_islowerš  ó   zBaseTest.test_islowerc                 C   sv   |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |   dd	d¡ |   dd
d¡ |  tddd¡ d S )NFrO   Úisupperr#   TrÔ   r9  ÚABCZAbCzABC
rz   r`   r§   r   r
   r
   r   Útest_isupper¤  r<  zBaseTest.test_isupperc                 C   s®   |   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ddd¡ d S )NFrO   Úistitler#   TrÔ   r9  zA Titlecased LinezA
Titlecased LinezA Titlecased, LinezNot a capitalized StringzNot	a Titlecase StringzNot--a Titlecase StringZNOTrz   r`   r§   r   r
   r
   r   Útest_istitle®  s   zBaseTest.test_istitlec                 C   s„   |   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ddd¡ d S )NFrO   Úisspacer#   Tú ú	úr9  z 	
z 	
arz   r`   r§   r   r
   r
   r   Útest_isspace¼  ó   zBaseTest.test_isspacec                 C   sv   |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |   dd	d¡ |   dd
d¡ |  tddd¡ d S )NFrO   ÚisalphaTr#   rÔ   r9  rz   ZaBc123r:  r`   r§   r   r
   r
   r   Útest_isalphaÇ  r<  zBaseTest.test_isalphac                 C   s„   |   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ddd¡ d S )NFrO   ÚisalnumTr#   rÔ   r9  Z	123abc456Za1b3czaBc000 r:  rz   r`   r§   r   r
   r
   r   Útest_isalnumÑ  rG  zBaseTest.test_isalnumc                 C   sÆ   |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |   dd	d¡ td
ƒD ]2}|   dd| d d¡ |   dd| d d¡ |   dd| d d d¡ |   dd| d d d¡ q.d S )NTrO   Úisasciir¿   úz Fõ   Â€õ   Ã©r&   rC  z        )rN   rf   )r	   r”   r
   r
   r   Útest_isasciiÜ  s   üzBaseTest.test_isasciic                 C   sZ   |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |  td	dd
¡ d S )NFrO   Úisdigitr#   TÚ0Ú
0123456789Z0123456789arz   r`   r§   r   r
   r
   r   Útest_isdigitë  r  zBaseTest.test_isdigitc                 C   sh   |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |   dd	d¡ |   d
dd¡ |  tddd¡ d S )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;StringZGetintZgetIntr   r`   r§   r   r
   r
   r   Ú
test_titleô  s   zBaseTest.test_titlec                 C   sÖ   |   g d¢dd¡ |   g d¢dd¡ |   g d¢dd¡ |   g d¢dd¡ |   g d¢d	d¡ |   g d
¢dd¡ |   g d
¢ddd¡ |   g d¢ddd¡ | j g d
¢dddd | j g d¢dddd |  tdddd¡ d S )N)rz   r|   rO   r   zabc
def
ghiÚ
splitlineszabc
def

ghi)rz   r|   r   zabc
def
ghizabc
def
ghi
)rz   r|   r   rO   zabc
def
ghi
)rO   rz   r|   r   rO   z
abc
def
ghi
F)r9  r:  zdef
zghi
rE  T)Úkeependsrz   r`   r§   r   r
   r
   r   Útest_splitlinesý  s&   
ÿ
ÿÿ
ÿzBaseTest.test_splitlines)4r   r   r   r5   rd   r*   r>   rN   rT   rU   rw   r…   r‰   r   r’   r¢   r¤   r¨   r«   r³   ræ   rê   rý   ÚunittestZskipIfrb   rc   r°   r±   rþ   r  r  r  r"  r%  r*  r+  r.  r1  r3  r5  r7  r;  r?  rA  rF  rI  rK  rP  rT  rV  rY  r
   r
   r
   r   r'      s`    @95FF 2ÿ
	$(


		r'   c                   @   r   )Ú
CommonTestc                 C   sF   |   d¡}|   d¡}|D ]
}||7 }t|ƒ q|  t|ƒt|ƒ¡ d S )NZDNSSECrO   )r5   ÚhashrG   )r	   r#   r$   r%   r
   r
   r   Ú	test_hash  s   


zCommonTest.test_hashc                 C   sX   |   ddd¡ |   ddd¡ |   ddd¡ |   ddd¡ |   dd	d¡ |   d
d
d¡ d S )Nu   á¿¼á¿³á¿³á¿³u   á¿³á¿³á¿¼á¿¼r  u   â“…â“¨â“£â“—â“žâ“u   â“…â“Žâ“‰â’½â“„â“ƒu   â“Ÿâ“¨â“£â“—â“žâ“u	   â… â…±â…²u	   â… â…¡â…¢u	   â…°â…±â…²u   Æ›á´€á¶†È¡á¾·r)  r   r
   r
   r   Útest_capitalize_nonascii  s$   ÿÿÿÿÿÿz#CommonTest.test_capitalize_nonasciiN)r   r   r   r]  r^  r
   r
   r
   r   r[    s    	r[  c                   @   s’   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zejdd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!S )"ÚMixinStrUnicodeUserStringTestc                 C   s°  |   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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dd¡ |  t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ddd&¡ d S )'NTr   r“   r  Fúhello worldrO   ÚellorZ   rï   r^   rƒ   r  r   Ú
helloworldÚloworV   r   r   r\   iËÿÿÿr]   éûÿÿÿrØ   éþÿÿÿéýÿÿÿi÷ÿÿÿr`   ©r  Zha©r  Zllo©Zhelloxr   r
   ©ÚhellowoÚrldrc  ©rk  ra  rl  )r  r  ©r  ZhelrY   ©r`   r§   r   r
   r
   r   Útest_startswith4  sT   ÿÿz-MixinStrUnicodeUserStringTest.test_startswithc                 C   s  |   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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¡ |  tdd¡ |  t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ddd+¡ d S ),NTr   Úendswithr  Fr  rO   r`  rb  ZworlrV   r{   Zworldr~   rc  rZ   r   rY   r^   r&   r€   r   re  rf  r]   iúÿÿÿrd  r\   iùÿÿÿiÿÿÿiøÿÿÿrØ   r`   rg  rh  ri  r
   rj  rm  )ÚhellZellrn  )r  rr  ro  r§   r   r
   r
   r   Útest_endswithd  s\   ÿÿz+MixinStrUnicodeUserStringTest.test_endswithc                 C   s”   |   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 S )NTrO   Ú__contains__rz   Fr¿   z abczabc r#   ZasdfZasdr)  r   r
   r
   r   Útest___contains__˜  s   z/MixinStrUnicodeUserStringTest.test___contains__c                 C   sœ   |   dddd¡ |   dddd¡ |   dddd¡ |   dddtddƒ¡ |   dddtddƒ¡ |   dddtdd	ƒ¡ |   d
ddtddƒ¡ |  tddd¡ d S )Nr#   rz   r   r   r%   r\   rV   r—   rZ   rO   r|   ©rN   ÚslicerT   rH   r   r
   r
   r   Útest_subscript£  s   z,MixinStrUnicodeUserStringTest.test_subscriptc                 C   sÚ   |   dddtddƒ¡ |   dddtddƒ¡ |   dddtddƒ¡ |   dddtd	dƒ¡ |   d
ddtd	dƒ¡ |   dddtddƒ¡ |   dddtddƒ¡ |   dddtddƒ¡ |   dddtdd	ƒ¡ |  tddd¡ d S )Nrz   r   r   r—   rV   r€   rY   rÌ   rZ   r$   rO   rš   r|   rv  r   r
   r
   r   Ú
test_slice®  s   z(MixinStrUnicodeUserStringTest.test_slicec                 C   s~   t jt j }dd dddtjdddf	}|D ](}|D ]#}|dd … D ]}t|ƒ|||… }|  d |¡|d	t|||ƒ¡ q qqd S )
Nr   rZ   rV   é)   r\   re  iÛÿÿÿrO   r   )	ÚstringÚascii_lettersrm   rb   rc   r6   rN   rj   rw  )r	   r•   ÚindicesÚstartÚstopÚstepÚLr
   r
   r   Útest_extended_getslice»  s   
ÿþþÿz4MixinStrUnicodeUserStringTest.test_extended_getslicec                 C   sb   |   dddd¡ |   dddd¡ |   dddd¡ |   dddd¡ |  tdd¡ |  tddd¡ d S )	NrO   rz   Ú__mul__r\   r   rZ   Z	abcabcabcrV   r§   r   r
   r
   r   Útest_mulÇ  s   z&MixinStrUnicodeUserStringTest.test_mulc              
   C   sÚ  |   dddg d¢¡ |   dddd¡ |   dddd¡ |   d	ddd
¡ |   dddtƒ ¡ |   dddd¡ |   dddtdgƒ¡ |   dddg d¢¡ |  tdjg d¢¡ dD ]0}|   d| d | d d… ddd| g| ¡ |   d| d | d d… ddd| f| ¡ qT|   dddtƒ ¡ |  tdd¡ |  tddd ¡ |  tddd¡ |  tddddtƒ g¡ zdd„ }|  	d¡ |ƒ ¡ W n% tyå } zdt
|ƒvrÚ|  d¡ W Y d }~d S W Y d }~d S d }~ww |  d¡ d S ) Nrä   rC  rj   r´   r‡   rO   Zbd)rO   r$   rO   rµ   Zac)r#   rO   r%   rO   zw x y zrz   r#   )rz   Úzza.b.crö   r"   )r#   r$   rV   )rƒ   é   é}   rû   r\   ré   r   rZ   rY   c                   s   s    dd V  d S )Nr^   rO   r
   r
   r
   r
   r   Úfí  s   €z2MixinStrUnicodeUserStringTest.test_join.<locals>.fú+zjoin() ate exception messagezexception not raised)rN   r   r   rP   rH   rj   r!   rT   Úbytesr*   r3   Zfail)r	   r   rˆ  Úer
   r
   r   Ú	test_joinÒ  s>   ÿÿÿ€ÿz'MixinStrUnicodeUserStringTest.test_joinc                 C   sf  |   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tfd	d|¡ qBtjd }t|ƒ}|   dddd¡ |   dddd¡ |   |dd|¡ |  ddt|ƒ¡ |   dddd¡ |   dddd¡ |  t	dd¡ |  t	ddd¡ |  t	ddd¡ |  t	d	dd¡ |  td di ¡ |  t	d!dd"¡ |  t	ddd¡ |  t	ddd#¡ |   d$d%dd&d$i¡ |   d'd(dd)¡ |  t	d*dd+¡ |  t	d,dd-¡ |  td.dd¡ |  td/d0 dd1¡ |  td2d0 dd1¡ |  td*dtjd3 d4f¡ |  td5dtjd3 d6f¡ G d7d8„ d8t
ƒ}|  t	dd|ƒ ¡ d S )9Nz+hello+z+%s+Ú__mod__r   z+10+z+%d+r[   r#   z%cú"é"   ú$é$   Z10z%drM  é   )iœÿÿÿi    z 42z%3ldr`   Z42ç      E@z0042.00z%07.2fz%07.2Frz   z%(foo)sz%s%sro  r   z%(fooz%(foo)s %(bar)s)Úfoor`   y      E@        Úbarz	%((foo))sz(foo)Zhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxz%sxZgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaú%*s)r”  r•  z%10.*f)r”  r“  z%10z%%%dfl            gš™™™™™	@z%%.%dfrZ   rO   ú%.*fç’$I’$IÂ?c                   @   rB   )z8MixinStrUnicodeUserStringTest.test_formatting.<locals>.XNrC   r
   r
   r
   r   ÚX(  r   r™  )rN   rT   r   r²   rb   rc   r3   rU   ÚfloatrH   Úobject)r	   ZordinalZ	longvalueZ
slongvaluer™  r
   r
   r   Útest_formattingö  sR   

ÿ
ÿz-MixinStrUnicodeUserStringTest.test_formattingc                 C   sŒ   ddl m}m}m} d| ¡ d > d }|  tdd|d df¡ |  tdd|d df¡ |  tdd|d df¡ |  tdd|d df¡ d S )	Nr   )ÚPY_SSIZE_T_MAXÚINT_MAXÚUINT_MAXrZ   r–  r  rO   r—  r˜  )Z	_testcapir  rž  rŸ  Ú
bit_lengthrT   r²   )r	   r  rž  rŸ  ZSIZE_MAXr
   r
   r   Útest_formatting_c_limits+  s   

ÿ

ÿ

ÿ

ÿz6MixinStrUnicodeUserStringTest.test_formatting_c_limitsc                 C   sJ   t dƒD ]}d| }d}t dƒD ]}|d d d }|  |d|¡ qqd S )	Nrè   z%%.%ifg{®Gáz„?é<   gê.DTû!	@g      @g      $@r  )rf   rU   )r	   Zprecr   r1   r-   r
   r
   r   Útest_floatformatting9  s   þýz2MixinStrUnicodeUserStringTest.test_floatformattingc                 C   s°   |   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 S )Nr#   rÔ   r¦   Tr=  rª   r8  rk   r  r4  rU  r)  r   r
   r
   r   Útest_inplace_rewritesB  s   z3MixinStrUnicodeUserStringTest.test_inplace_rewritesc                 C   óx   |   dddd¡ d}|   d|dd¡ |   d|dd	¡ |   d
|dd¡ |   d|dd¡ |  t|dd¡ |  t|dd ¡ d S )N)zthis is the parÚtiztion methodzthis is the partition methodÚ	partitionr¦  úhttp://www.python.org©Úhttpú://úwww.python.orgr«  )r¨  rO   rO   rô   ©rO   úhttp://r¬  r®  ©zhttp://www.python.ÚorgrO   r°  rO   ©rN   rT   r   rH   ©r	   ÚSr
   r
   r   Útest_partitionU  ó   ÿz,MixinStrUnicodeUserStringTest.test_partitionc                 C   r¥  )N)zthis is the rpartir¦  z	on methodzthis is the rpartition methodÚ
rpartitionr¦  r¨  r©  r«  )rO   rO   r¨  rô   r­  r®  r¯  r°  rO   r±  r²  r
   r
   r   Útest_rpartitiond  rµ  z-MixinStrUnicodeUserStringTest.test_rpartitionc                 C   s*  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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 S )Nr   rY   ry   r  rV   re  r   rü   r†   rŠ   r‘   rX   rZ   r-   Trq  rï   r  Fr“   r)  )r	   r•   r
   r
   r   Útest_none_argumentss  s:   z1MixinStrUnicodeUserStringTest.test_none_argumentsc              	   C   sÄ   d}d}|   td|j|d d d ¡ |   td|j|d d d ¡ |   td|j|d d d ¡ |   td|j|d d d ¡ |   td|j|d d d ¡ |   td|j|d d d ¡ |   td	|j|d d d ¡ |  	d
ddd¡ d S )Nr   r-   z^find\(z^rfind\(z^index\(z	^rindex\(z^count\(z^startswith\(z^endswith\(r[   rø   ry   rˆ   )
ZassertRaisesRegexrH   ry   r†   rŠ   r‘   rX   r“   rq  rN   )r	   r•   r-   r
   r
   r   Ú*test_find_etc_raise_correct_error_messages™  s0   ÿÿÿÿÿÿÿzHMixinStrUnicodeUserStringTest.test_find_etc_raise_correct_error_messagesN)r   r   r   rp  rs  ru  rx  ry  r‚  r„  rŒ  rœ  r   Zcpython_onlyr¡  r£  r¤  r´  r·  r¸  r¹  r
   r
   r
   r   r_  0  s$    04$5
	&r_  c                   @   s   e Zd Zdd„ ZdS )ÚMixinStrUnicodeTestc                 C   sn   | j }G dd„ d|ƒ}|dƒ}|ƒ  |g¡}|  ||¡ |  t|ƒ|¡ |dƒ}|ƒ  |g¡}|  ||¡ d S )Nc                   @   rB   )z5MixinStrUnicodeTest.test_bug1001011.<locals>.subclassNrC   r
   r
   r
   r   Úsubclass¹  rE   r»  r‡   )r5   rj   rI   r<   r=   )r	   Útr»  Ús1Ús2r
   r
   r   Útest_bug1001011³  s   z#MixinStrUnicodeTest.test_bug1001011N)r   r   r   r¿  r
   r
   r
   r   rº  °  s    rº  )Ú__doc__rZ  r{  rb   r°   rÇ   r   Úcollectionsr   rœ   r   r   r!   r'   r[  r_  rº  r
   r
   r
   r   Ú<module>   s.                 