U
    sVÞccq  ã                   @   s|  d dl m Z mZ d dlZd dlZd dlmZmZ d dlm	Z	 d dl
mZmZmZmZmZ d dlmZ ej dd dedd	gƒg¡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j dddgd dgg¡d!d"„ ƒZd#d$„ Z ej d%d&dddddd'ddd'd'g
fd(dddd'd'd'dd'd'd'g
fd)d'd'd'dd'd'd'dd'd'g
fd*d'd'd'dd'd'd'dd'd'g
fd+d'd'd'd'd'd'd'd'd'dg
fd,d'dd'd'd'd'd'd'd'd'g
fd-dd'd'd'dd'dd'd'd'g
fd.dd'dd'dd'd'd'd'd'g
fg¡d/d0„ ƒZ!ej d%d*d'ddd'ddd'gfd1d'dd'd'd'dd'gfg¡d2d3„ ƒZ"ej d%d*d'ej#dd'ej#dd'gfd1d'ej#d'd'ej#dd'gfg¡d4d5„ ƒZ$d6d7„ Z%d8d9„ Z&d:d;„ Z'd<d=„ Z(ej d>d?d@ddddAdBd gfdCd@ddddDdEdgfd?d@dAdddAdEdgfdCd@dAdddDdEdgfd?dFddGddDdEdgfdCdFd dDddAdBdgfg¡dHdI„ ƒZ)dJdK„ Z*ej dLd?dCg¡dMdN„ ƒZ+ej dOd?dBdBd ggdCdAdBdPggg¡dQdR„ ƒZ,dSdT„ Z-ej dUdPdDddd	ej#dVgfd dAdWdXdXej#dXgfdddWdYdZej#d[gfdAd\dPd]d^ej#d_gfdAd dWd`daej#dagfg¡dbdc„ ƒZ.ej dUdPdDddej#d	ej#ej#ej#ej#ej#gfddBdWddej#deej#ej#ej#ej#ej#gfg¡dfdg„ ƒZ/ej dhdPdAddidjdkdXej#gfdPdAdldmdndodlej#gfdPdPdldpdqdrdlej#gfdPdBdldpdqdrdlej#gfdWddldsdtdudlej#gfddvdldwdxdydlej#gfdzdGdld{d|d}dlej#gfd~dAdldwdnddlej#gfg¡d€d„ ƒZ0ej dOd‚dƒd„ej#d…ggd†d‡dˆej#d‰ggdŠd‹dŒej#d…ggg¡ddŽ„ ƒZ1ej dOd‚dƒej#d„ggd†dej#dggdŠd‹ej#dŒggg¡d‘d’„ ƒZ2ej dOd‚d“d”d•ggd†d–d”d—ggdŠd˜d™d•ggg¡dšd›„ ƒZ3ej dœdd dždŸgfd dXd¡dŸgfg¡d¢d£„ ƒZ4ej d¤d¥d d¦d gfdŸd d¡dXgfg¡d§d¨„ ƒZ5d©dª„ Z6d«d¬„ Z7d­d®„ Z8d¯d°„ Z9d±d²„ Z:d³d´„ Z;ej dµd¶d“d“d·ej#d¸gfd¹d“dºd»ej#d¼gfg¡d½d¾„ ƒZ<d¿dÀ„ Z=dÁdÂ„ Z>ej dÃdd gdÄfdd dBgdÅfdd dÆgdÇfdd dÆdBgdÅfdƒe dÈdBdBƒgdÇfg¡dÉdÊ„ ƒZ?ej dÃdBej#gdËfe dÈdBdBƒgdÌfedBƒgdÍfg¡dÎdÏ„ ƒZ@dÐdÑ„ ZAdÒdÓ„ ZBdÔdÕ„ ZCdÖd×„ ZDdØdÙ„ ZEdÚdÛ„ ZFdÜdÝ„ ZGdÞdß„ ZHdS )àé    )ÚdatetimeÚ	timedeltaN)Úpa_version_under2p0Úpa_version_under4p0)ÚPerformanceWarning)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚisnaÚpatternTÚfooÚbarc              	   C   sl   t ddgƒ}dt| ƒj› }tjt|d |j | ¡ W 5 Q R X tjt|d |j | ¡ W 5 Q R X d S )Nr   r   z expected a string or tuple, not ©Úmatch)	r
   ÚtypeÚ__name__ÚpytestÚraisesÚ	TypeErrorÚstrÚ
startswithÚendswith)r   ÚserÚmsg© r   úE/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/strings/test_strings.pyÚ)test_startswith_endswith_non_str_patterns   s    r   c                 C   s(   t | tƒrt | |¡ nt | |¡ d S )N)Ú
isinstancer
   ÚtmÚassert_series_equalÚassert_index_equal)ÚleftÚrightr   r   r   Úassert_series_or_index_equal$   s    
r$   c               	   C   s†   d} t | ƒ}t t¡P |jD ]B}t|t ƒs0t‚t |j|j¡ |D ]}t|tƒsDt	|ƒsDt‚qDqW 5 Q R X | 
¡ j ¡ dks‚t‚d S )N)ZgoogleZ	wikimediaZ	wikipediaZ
wikitravelÚl)r
   r   Úassert_produces_warningÚFutureWarningr   r   ÚAssertionErrorr!   Úindexr   ZdropnaÚvaluesÚitem)Ústrsr   ÚsÚelr   r   r   Ú	test_iter+   s    
$r/   c              	   C   sZ   t g | d}d\}}t t¡ t|jƒD ]\}}q*W 5 Q R X |dksJt‚|dksVt‚d S )N©Údtype)éd   é   r2   r3   )r
   r   r&   r'   Ú	enumerater   r(   ©Úany_string_dtyper   Úir-   r   r   r   Útest_iter_emptyC   s    r8   c              	   C   sP   t dg| d}t t¡ t|jƒD ]\}}q$W 5 Q R X |r@t‚t ||¡ d S )NÚar0   )r
   r   r&   r'   r4   r   r(   r    r5   r   r   r   Útest_iter_single_elementR   s    r:   c               	   C   sd   t dd„ tdƒD ƒƒ} d\}}t t¡ t| jƒD ]\}}q4W 5 Q R X |dksTt‚|dks`t‚d S )Nc              	   S   s*   g | ]"}t d tj d¡tj dd¡ƒ‘qS )Né
   é   )ÚsliceÚnpÚrandomÚrandint)Ú.0Ú_r   r   r   Ú
<listcomp>_   s   ÿz/test_iter_object_try_string.<locals>.<listcomp>é   )r2   Úhr2   rE   )r
   Úranger   r&   r'   r4   r   r(   )r   r7   r-   r   r   r   Útest_iter_object_try_string]   s    þÿrG   c                 C   sZ   t ddtjdg| d}|j d¡}| dkr0tjnd}t dd	tjd
g|d}t ||¡ d S )Nr   ZfoofooZfoooofooofommmfoor0   zf[o]+ÚobjectÚInt64r3   é   rD   )r
   r>   Únanr   ÚcountÚfloat64r   r    ©r6   r   ÚresultÚexpected_dtypeÚexpectedr   r   r   Ú
test_countr   s
    rR   c               
   C   sf   t dtjddt ¡ dd ddg	td} | j d¡}t dtjdtjtjdtjtjtjg	ƒ}t 	||¡ d S )	Nr9   ÚbTr   r3   ç       @r0   r   )
r
   r>   rK   r   ÚtodayrH   r   rL   r   r    ©r   rO   rQ   r   r   r   Útest_count_mixed_objectz   s    þ&rW   c                 C   s”   t ddtjdtjdg| d}|j d¡}t ddtjd	tjd
g| d}t ||¡ |j ddddddg¡}t ddtjdtjdg| d}t ||¡ d S )Nr9   rS   ÚcÚdr0   é   ÚaaaÚbbbÚcccZdddr3   rJ   rD   é   é   ÚbbZccccZdddddd)r
   r>   rK   r   Úrepeatr   r    ©r6   r   rO   rQ   r   r   r   Útest_repeat„   s     ÿ ÿrc   c               
   C   sb   t dtjddt ¡ dd ddg	ƒ} | j d¡}t dtjd	tjtjd
tjtjtjg	ƒ}t ||¡ d S )Nr9   rS   Tr   r3   rT   rZ   r[   r\   Z	foofoofoo)	r
   r>   rK   r   rU   r   ra   r   r    rV   r   r   r   Útest_repeat_mixed_object”   s      ÿrd   zarg, repeatrD   rS   c                 C   sB   t d|g| d}|j d|g¡}t dtjg| d}t ||¡ d S )Nr9   r0   rZ   r[   )r
   r   ra   r>   rK   r   r    )r6   Úargra   r   rO   rQ   r   r   r   Útest_repeat_with_null   s    rf   c           	   	   C   sâ  t | d }}| dkr,t dd}t td}nt dd}t dd}t td}t td}tƒ }t ||j |¡¡ d|j ¡ ks€t‚t ||j 	¡ ¡ t ||j 
d¡¡ t t| dko¶t¡ t ||j d¡¡ W 5 Q R X t t| dkoêt¡ t ||j d¡¡ W 5 Q R X t t| dko t¡ t ||j d¡¡ W 5 Q R X t ||j ¡ ¡ t ||j ¡ ¡ t t| dkozt¡ t ||j dd	¡¡ W 5 Q R X t ||j d
¡¡ t t| dkoÆt¡ t ||j d¡¡ W 5 Q R X t tdg| d|jjddd¡ t tddg| d|jjddd¡ t ||jjddd¡ t tddg| d|jjddd¡ t ||j ¡ ¡ t ||j d¡¡ t t| dko¤t¡ t ||j ¡ ¡ W 5 Q R X t ||j d¡¡ t ||j d¡¡ t ||j d¡¡ t ||j d¡¡ t ||j d¡¡ t ||j  d¡¡ t ||j !d¡¡ t ||jj"ddd¡ t ||j "d¡¡ t ||jj#ddd¡ t ||j #d¡¡ t ||jj$dd¡ t ||jj$dd¡ t t| dkoèt¡ t ||j %¡ ¡ W 5 Q R X t t| dkot¡ t ||j &¡ ¡ W 5 Q R X t t| dkoPt¡ t ||j '¡ ¡ W 5 Q R X t ||j (d¡¡ t ||j )d¡¡ t ||j *d¡¡ t ||j +d¡¡ t ||j ,¡ ¡ t ||j -¡ ¡ t ||j .¡ ¡ t t| dko
t/¡ t ||j 0¡ ¡ W 5 Q R X t ||j 1¡ ¡ t ||j 2¡ ¡ t ||j 3¡ ¡ t ||j 4¡ ¡ t ||j 5¡ ¡ t ||j 6¡ ¡ t ||j 7¡ ¡ t ||j 8d¡¡ t 9dd	¡}t ||j :|¡¡ d S )Nr0   rH   Úint64rI   ÚbooleanÚ r9   ústring[pyarrow]rS   rZ   z^ar   )Úcolumnsr1   z()T)Úexpandr3   z()()Fé*   ©Ústop)ÚstepÚasciiÚNFC);r
   ÚboolrH   r   r   r    r   Úcatr(   ÚtitlerL   Úmaybe_produces_warningr   r   Úcontainsr   r   ÚlowerÚupperÚreplacera   r   Zassert_frame_equalÚextractZget_dummiesÚjoinÚlenÚfindallÚfindÚrfindÚpadÚcenterÚsplitÚrsplitÚ	partitionÚ
rpartitionr=   ÚstripÚlstripÚrstripÚwrapÚgetÚdecodeÚencodeÚisalnumÚisalphaÚisdigitr   ÚisspaceÚislowerÚisupperÚistitleÚ	isnumericÚ	isdecimalÚ
capitalizeÚswapcaseÚ	normalizeÚ	maketransÚ	translate)	r6   Z	empty_strÚemptyZ	empty_intZ
empty_boolZempty_objectZempty_bytesZempty_dfÚtabler   r   r   Útest_empty_str_methods¦   sÞ    





þ
þþþ þþþþþþþþþrž   zmethod, expectedrŽ   Fr   r   r•   r‘   r’   r“   r”   c                    s¤   t ddddddddd	d
g
|d}|dkr,dnd}t ||d}t t|dkoTtoTˆ dk¡ t|jˆ ƒƒ }W 5 Q R X t ||¡ ‡ fdd„|D ƒ}t|ƒ|ks t	‚d S )NÚArS   ZXyÚ4Z3Ari   ZTTZ55ú-z  r0   rH   rs   rh   rj   r‘   c                    s   g | ]}t |ˆ ƒƒ ‘qS r   ©Úgetattr©rA   r+   ©Úmethodr   r   rC   N  s     z"test_ismethods.<locals>.<listcomp>)
r
   r   rv   r   r   r£   r   r    Úlistr(   ©r¦   rQ   r6   r   rP   rO   r   r¥   r   Útest_ismethods  s"      ÿÿür©   r–   c                    sv   t dddddddg|d}|d	kr&d
nd}t ||d}t|jˆ ƒƒ }t ||¡ ‡ fdd„|D ƒ}t|ƒ|ksrt‚d S )NrŸ   Ú3õ   Â¼õ   â˜…u   á¸õ   ï¼“Úfourr0   rH   rs   rh   c                    s   g | ]}t |ˆ ƒƒ ‘qS r   r¢   r¤   r¥   r   r   rC   e  s     z*test_isnumeric_unicode.<locals>.<listcomp>)r
   r£   r   r   r    r§   r(   r¨   r   r¥   r   Útest_isnumeric_unicodeR  s    r¯   c                 C   s\   dt jddt jddg}t||d}|dkr.dnd}t||d}t|j| ƒƒ }t ||¡ d S )	NrŸ   r«   r¬   r­   r®   r0   rH   rh   )r>   rK   r
   r£   r   r   r    )r¦   rQ   r6   r*   r   rP   rO   r   r   r   Útest_isnumeric_unicode_missingi  s    r°   c                 C   sD   t ddtjdg| d}|j d¡j d¡}| t¡}t 	||¡ d S )NZa_b_cZc_d_eZf_g_hr0   rB   )
r
   r>   rK   r   rƒ   r|   ÚastyperH   r   r    rb   r   r   r   Útest_spilt_join_roundtripy  s    
r²   c               
   C   sj   t dtjddt ¡ dd ddg	ƒ} | j d¡j d¡}t dtjdtjtjdtjtjtjg	ƒ}t 	||¡ d S )NÚa_bÚasdf_cas_asdfTr   r3   rT   rB   )
r
   r>   rK   r   rU   r   rƒ   r|   r   r    rV   r   r   r   Ú&test_spilt_join_roundtrip_mixed_object€  s    ÿ ÿrµ   c              	   C   s‚   t dddtjdddg| d}t t| dko,t¡ |j ¡ }W 5 Q R X | d	krRd
nd}t dddtjdddg|d}t 	||¡ d S )Nr   ZfoooZfoooooZfooooooozfoo
u   ã‚r0   rj   rH   rM   rI   rZ   rD   r_   é   r3   )
r
   r>   rK   r   rv   r   r   r   r}   r    rN   r   r   r   Útest_len‹  s    þ
þr·   c               
   C   s`   t dtjddt ¡ dd ddg	ƒ} | j ¡ }t dtjdtjtjdtjtjtjg	ƒ}t ||¡ d S )	Nr³   r´   Tr   r3   rT   rZ   é   )	r
   r>   rK   r   rU   r   r}   r   r    rV   r   r   r   Útest_len_mixedš  s    ÿ
&r¹   zmethod,sub,start,end,expectedr)   ZEFrZ   r3   Úrindexr^   é   ÚEr¶   c           
         s”   |ddddg|d}|dkr"t jnd}|||d}t|jˆƒˆˆˆ ƒ}	|tkr\t |	|¡ nt |	|¡ ‡ ‡‡‡fdd	„|D ƒ}t|	ƒ|kst	‚d S )
NÚABCDEFGÚBCDEFEFÚ	DEFGHIJEFÚEFGHEFr0   rH   rI   c                    s   g | ]}t |ˆƒˆˆˆ ƒ‘qS r   r¢   r¤   ©Úendr¦   ÚstartÚsubr   r   rC   ¾  s     ztest_index.<locals>.<listcomp>)
r>   rg   r£   r   r
   r   r    r!   r§   r(   )
r¦   rÄ   rÃ   rÂ   Úindex_or_seriesr6   rQ   ÚobjrP   rO   r   rÁ   r   Ú
test_index£  s    
 ÿrÇ   c              	   C   s>   | ddddg|d}t jtdd |j d¡ W 5 Q R X d S )	Nr½   r¾   r¿   rÀ   r0   zsubstring not foundr   ZDE)r   r   Ú
ValueErrorr   r)   )rÅ   r6   rÆ   r   r   r   Útest_index_not_found_raisesÂ  s    
 ÿrÉ   r¦   c              	   C   s>   | g |d}d}t jt|d t|j|ƒdƒ W 5 Q R X d S )Nr0   z!expected a string object, not intr   r   )r   r   r   r£   r   )rÅ   r6   r¦   rÆ   r   r   r   r   Útest_index_wrong_type_raisesÊ  s    rÊ   zmethod, exprJ   c                 C   s\   t dddtjg| d}| dkr$tjnd}t|j|ƒdƒ}t |tjg |d}t ||¡ d S )NZabcbÚabZbcber0   rH   rI   rS   )r
   r>   rK   rM   r£   r   r   r    )r6   r¦   Úexpr   rP   rO   rQ   r   r   r   Útest_index_missingÓ  s
    rÍ   c              	   C   sŠ   t dg| d}|j d¡}t dddggtd}t ||¡ t t| dkoJt¡ |jj	ddd	d
}W 5 Q R X t dg| d}t ||¡ d S )NzA|B|Cr0   ú|rŸ   ÚBÚCrj   ú F)ÚregexzA B C)
r
   r   rƒ   rH   r   r    rv   r   r   rz   rb   r   r   r   Útest_pipe_failuresã  s    
þrÓ   zstart, stop, step, expectedZbazéÿÿÿÿri   ZowtoofaaZowtrabaaZxuqzabaar;   ZotoZatoZaqxZofaZabac                 C   sB   t ddtjdg|d}|j | ||¡}t ||d}t ||¡ d S )NÚaafootwoÚaabartwoZaabazquxr0   )r
   r>   rK   r   r=   r   r    )rÃ   ro   rp   rQ   r6   r   rO   r   r   r   Ú
test_sliceô  s    r×   ZoofZrabc              	   C   sF   t dtjddt ¡ d ddgƒ}|j | ||¡}t |ƒ}t ||¡ d S )NrÕ   rÖ   Tr3   rT   )	r
   r>   rK   r   rU   r   r=   r   r    )rÃ   ro   rp   rQ   r   rO   r   r   r   Útest_slice_mixed_object  s    rØ   zstart,stop,repl,expectedZshrtza it longerZevnlongerthanthatÚzZshzrtza zit longerZevznlongerthanthatZshzortza zbit longerZevzenlongerthanthatZshorzza bit longezZevenlongerthanthazéþÿÿÿZzrtZzerZzatr_   Zshortzza bit zngerZevenlozerthanthatiöÿÿÿZevenlongzerthanthatc                 C   sD   t ddddtjg|d}t ||d}|j | ||¡}t ||¡ d S )NÚshortza bit longerZevenlongerthanthatri   r0   )r
   r>   rK   r   Zslice_replacer   r    )rÃ   ro   ÚreplrQ   r6   r   rO   r   r   r   Útest_slice_replace  s    þrÝ   r‡   Zaar`   Úccrˆ   zaa   zbb 
úcc  r‰   z  aaz bbc              	   C   s`   t ddtjdg| d}t t| dko&t¡ t|j|ƒƒ }W 5 Q R X t || d}t 	||¡ d S )Nz  aa   z bb 
rß   r0   rj   )
r
   r>   rK   r   rv   r   r   r£   r   r    ©r6   r¦   rÌ   r   rO   rQ   r   r   r   Útest_strip_lstrip_rstrip*  s    	
þrá   zaa  zbb 	
c              	   C   s\   t dtjddt ¡ d ddgƒ}t|j| ƒƒ }t |tjtjtjtjtjg ƒ}t ||¡ d S )Nz  aa  z bb 	
Tr3   rT   )	r
   r>   rK   r   rU   r£   r   r   r    )r¦   rÌ   r   rO   rQ   r   r   r   Ú%test_strip_lstrip_rstrip_mixed_object>  s    	 râ   ÚABCz BNSDzLDFJH ZABCxxúLDFJH xxZxxABCúxx BNSDc              	   C   s^   t dddg| d}t t| dko"t¡ t|j|ƒdƒ}W 5 Q R X t || d}t ||¡ d S )NZxxABCxxrå   rä   r0   rj   Úx)r
   r   rv   r   r   r£   r   r    rà   r   r   r   Útest_strip_lstrip_rstrip_argsN  s    	
þrç   zprefix, expectedr9   z b cÚbcrË   úa b cc                 C   s:   t dddg| d}|j |¡}t || d}t ||¡ d S ©NrË   ré   rè   r0   )r
   r   Zremoveprefixr   r    )r6   ÚprefixrQ   r   rO   Úser_expectedr   r   r   Útest_removeprefixb  s    rí   zsuffix, expectedrX   za b c                 C   s:   t dddg| d}|j |¡}t || d}t ||¡ d S rê   )r
   r   Zremovesuffixr   r    )r6   ÚsuffixrQ   r   rO   rì   r   r   r   Útest_removesuffixl  s    rï   c              
   C   sš   t dddddtjdddg	| d	}|jd
 }|j d
¡}t ||¡ |jd d… }|jjdd}t ||¡ |jdd d… }|jjddd}t ||¡ d S )NZYYYrÏ   rÐ   Z
YYYYYYbYYYZBYYYcYYYZCYYYBYYYZdogZcYYYtr0   r   rZ   rn   rJ   rÔ   )rÃ   rp   )r
   r>   rK   r   r‹   r   r    r=   rb   r   r   r   Útest_string_slice_get_syntaxv  s    þ
rð   c                  C   s8   t dddgƒ} | jd }t dtjdgƒ}t ||¡ d S )N)r3   rJ   )r3   )rZ   rD   r^   r3   rJ   rD   ©r
   r   r>   rK   r   r    rV   r   r   r   Ú&test_string_slice_out_of_bounds_nested‰  s    
rò   c                 C   s@   t dddg| d}|jd }t dtjdg| d}t ||¡ d S )Nr   rS   Úbar0   r3   Úor9   rñ   rb   r   r   r   Útest_string_slice_out_of_bounds  s    
rõ   c                 C   sD   t dddg| dj d¡}|j d¡}| dd„ ¡}t ||¡ d S )Nr9   rS   u   aÃ¤r0   úutf-8c                 S   s
   |   d¡S )Nrö   ©rŒ   ©ræ   r   r   r   Ú<lambda>š  ó    z$test_encode_decode.<locals>.<lambda>)r
   r   r   rŒ   Úmapr   r    rb   r   r   r   Útest_encode_decode—  s    rü   c              	   C   sh   t dddg| d}d}tjt|d |j d¡ W 5 Q R X |j dd¡}| d	d
„ ¡}t ||¡ d S )Nr9   rS   u   aÂr0   z['charmap' codec can't encode character '\\x9d' in position 1: character maps to <undefined>r   Úcp1252Úignorec                 S   s   |   dd¡S ©Nrý   rþ   )r   rø   r   r   r   rù   ©  rú   z*test_encode_errors_kwarg.<locals>.<lambda>)	r
   r   r   ÚUnicodeEncodeErrorr   r   rû   r   r    )r6   r   r   rO   rQ   r   r   r   Útest_encode_errors_kwargž  s    ÿr  c               	   C   sd   t dddgƒ} d}tjt|d | j d¡ W 5 Q R X | j dd¡}|  dd	„ ¡}t ||¡ d S )
Nó   aó   bs   azS'charmap' codec can't decode byte 0x9d in position 1: character maps to <undefined>r   rý   rþ   c                 S   s   |   dd¡S rÿ   r÷   rø   r   r   r   rù   ¸  rú   z*test_decode_errors_kwarg.<locals>.<lambda>)	r
   r   r   ÚUnicodeDecodeErrorr   rŒ   rû   r   r    )r   r   rO   rQ   r   r   r   Útest_decode_errors_kwarg­  s    ÿr  zform, expectedÚNFKCÚ123õ	   ã‚¢ã‚¤ã‚¨rr   õ	   ï¼¡ï¼¢ï¼£õ	   ï¼‘ï¼’ï¼“õ	   ï½±ï½²ï½´c                 C   sX   t dddtjdgddddd	g|d
}t |ddddd	g|d
}|j | ¡}t ||¡ d S )Nrã   r	  r
  r  r9   rS   rX   rY   Úe©r)   r1   )r
   r>   rK   r   r™   r   r    )ÚformrQ   r6   r   rO   r   r   r   Útest_normalize¼  s    ýr  c              	   C   sN   t dddtjdgddddd	g| d
}tjtdd |j d¡ W 5 Q R X d S )Nrã   r	  r
  r  r9   rS   rX   rY   r  r  zinvalid normalization formr   Zxxx)r
   r>   rK   r   r   rÈ   r   r™   ©r6   r   r   r   r   Útest_normalize_bad_arg_raisesÎ  s    ýr  c                  C   s8   t dddgƒ} t dddgƒ}| j d¡}t ||¡ d S )Nr	  r
  r  rã   r  r  r  )r   r   r™   r   r!   )ÚidxrQ   rO   r   r   r   Útest_normalize_indexØ  s    r  zvalues,inferred_typeÚstringzmixed-integergÍÌÌÌÌÌô?ÚmixediÛ  c                 C   s>   ddl m} || ƒ}|tkr*|j|ks*t‚t|j|ƒs:t‚d S )Nr   )ÚStringMethods)Zpandas.core.stringsr  r   Úinferred_typer(   r   r   )r*   r  rÅ   r  rÆ   r   r   r   Ú"test_index_str_accessor_visibilityß  s
    r  ZfloatingZ
datetime64Ztimedelta64c              	   C   sF   || ƒ}|t kr|j|kst‚d}tjt|d |j W 5 Q R X d S )Nz-Can only use .str accessor with string valuesr   )r   r  r(   r   r   ÚAttributeErrorr   )r*   r  rÅ   rÆ   r   r   r   r   Ú0test_index_str_accessor_non_string_values_raisesó  s    r  c               	   C   sD   t  ddg¡} | jdkst‚d}tjt|d | j W 5 Q R X d S )N)r9   rS   r  z5Can only use .str accessor with Index, not MultiIndexr   )r	   Úfrom_tuplesr  r(   r   r   r  r   )r  r   r   r   r   Ú)test_index_str_accessor_multiindex_raises  s
    r  c              	   C   s6   t tdƒ| d}tjtdd d|j_W 5 Q R X d S )NZaabbcder0   z You cannot add any new attributer   r9   )r
   r§   r   r   r  r   Zxlabelr  r   r   r   Ú#test_str_accessor_no_new_attributes  s    r  c               	   C   sb   t t tdƒd¡ t¡ƒ} t t tdƒd¡ t¡ƒ}d}tjt|d | j	 
|¡ W 5 Q R X d S )NÚabcZS1Údefz9Cannot use .str.cat with values of inferred dtype 'bytes'r   )r
   r>   Úarrayr§   r±   rH   r   r   r   r   rt   )ÚlhsÚrhsr   r   r   r   Útest_cat_on_bytes_raises  s
    r#  c                  C   s>   t tddƒƒ} tdddgƒ}| jdd„ dd	}t ||¡ d S )
Nr  r  zA/DzB/EzC/Fc                 S   s   d  | j ¡ ¡S )Nú/)r|   r   ry   )Úfr   r   r   rù   $  rú   z1test_str_accessor_in_apply_func.<locals>.<lambda>r3   )Zaxis)r   Úzipr
   Úapplyr   r    )ZdfrQ   rO   r   r   r   Útest_str_accessor_in_apply_func   s    r(  c                  C   sn   t ddddtjgƒ} t dddtjtjgƒ}t | j d¡|¡ t dd	gƒ} t d
dgƒ}t | j d¡|¡ d S )Nú-1Ú1Z1000r;   z-01Z001rZ   ú-2ú+5z-0002z+0005r^   )r
   r>   rK   r   r    r   Úzfill©ÚvaluerQ   r   r   r   Ú
test_zfill(  s    r0  c               	   C   sJ   t ddgƒ} d}dt|ƒj› }tjt|d | j |¡ W 5 Q R X d S )Nr+  r,  r9   z#width must be of integer type, not r   )r
   r   r   r   r   r   r   r-  )r/  Zwidr   r   r   r   Ú$test_zfill_with_non_integer_argument3  s
    r1  c                  C   s4   t dddgƒ} t dddgƒ}t | j d¡|¡ d S )Nz-catr)  z+dogz-0catz-0001z+0dogr^   )r
   r   r    r   r-  r.  r   r   r   Útest_zfill_with_leading_sign;  s    r2  c                  C   sn   t dddœdddœddigƒ} | j d¡}t ddd gƒ}t ||¡ | j d¡}t dddgƒ}t ||¡ d S )	NZHelloZWorld)Únamer/  ZGoodbyeZPlanetr/  ZSear3  )r
   r   r‹   r   r    )r-   rO   rQ   r   r   r   Útest_get_with_dict_labelA  s    ýÿr4  )Ir   r   Znumpyr>   r   Zpandas.compatr   r   Zpandas.errorsr   Zpandasr   r   r	   r
   r   Zpandas._testingZ_testingr   ÚmarkZparametrizer   r$   r/   r8   r:   rG   rR   rW   rc   rd   rf   rž   r©   r¯   rK   r°   r²   rµ   r·   r¹   rÇ   rÉ   rÊ   rÍ   rÓ   r×   rØ   rÝ   rá   râ   rç   rí   rï   rð   rò   rõ   rü   r  r  r  r  r  r  r  r  r  r#  r(  r0  r1  r2  r4  r   r   r   r   Ú<module>   s|  


	
yþþþþþþéþ
þþ
þþ
		úþ

þþ
	ûþ

&&þþ
øþ

ýþ
ýþ
ýþ
 ÿ
 ÿ
þþ


ûþ


ýþ

