o
    Û­jÙ¶  ã                   @   sj  d dl m Z  d dlZd dlZd dlZd dlm  mZ d dl	Z
d dl	mZmZ d dlmZmZ dd„ Zdd„ Zd	d
„ Zej dde
jfddddeje
jfg¡ej dddg¡dd„ ƒƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej d¡ej d d!d"g¡ej d#d$d%g¡ej d&deje
jg¡ej d'ddg¡d(d)„ ƒƒƒƒƒZej d'g d*¢¡d+d,„ ƒZ ej d¡ej d d!d"g¡ej d#d$d%g¡ej d&deje
jg¡ej d'ddg¡d-d.„ ƒƒƒƒƒZ!ej d'g d*¢¡d/d0„ ƒZ"d1d2„ Z#d3d4„ Z$d5d6„ Z%d7d8„ Z&ej d9dd:d;d<ig¡ej d=g d>¢g d?¢g¡d@dA„ ƒƒZ'dBdC„ Z(ej d9dDdE„ dFdE„ dºdGdE„g¡dHdI„ ƒZ)ejjdJdKdLdMgfdNdLdMgfdOdPdQgfdRdSdTgfgg dU¢dV�ej dWddg¡dXdY„ ƒƒZ*ej d9dZd[g¡ej dWddg¡d\d]„ ƒƒZ+d^d_„ Z,d`da„ Z-dbdc„ Z.ddde„ Z/dfdg„ Z0dhdi„ Z1ej djddkdkejgfddkd!ejgfg¡dldm„ ƒZ2dndo„ Z3dpdq„ Z4drds„ Z5dtdu„ Z6dvdw„ Z7ej dddg¡dxdy„ ƒZ8dzd{„ Z9d|d}„ Z:d~d„ Z;d€d�„ Z<d‚dƒ„ Z=ej d„d…dddggd†dddggd‡dddggdˆdddggd‰dddggdŠdddggd‹dddggg¡dŒd�„ ƒZ>dŽd�„ Z?d�d‘„ Z@d’d“„ ZAd”d•„ ZBd–d—„ ZCej d˜d™ddg dš¢gd›ddg dœ¢gd‡ddg dœ¢gd…ddg dœ¢gd�ddg dš¢gd‰ddg dœ¢gdžddg dš¢gdŸddg d ¢gd¡ddg dœ¢gd¢ddg dœ¢gd£ddg dš¢gd¤ddg dš¢gg¡d¥d¦„ ƒZDd§d¨„ ZEd©dª„ ZFd«d¬„ ZGd­d®„ ZHd¯d°„ ZIej d±dejJde Kd²¡d³�g¡d´dµ„ ƒZLd¶d·„ ZMd¸d¹„ ZNdS )»é    )ÚdatetimeN)ÚSeriesÚ_testing)Ú_convert_na_valueÚis_object_or_nan_string_dtypec                 C   sè  t jdt jdddgt jd�}t|| d�}d}|j |¡}| dkr)tg d¢td�}nt| ƒr/d	nd
}tt jdt jdddgt jd�|d�}t	 
||¡ |jj|dd�}| dkr^tg d¢td�}ntt jdt jdddgt jd�|d�}t	 
||¡ tt jg d¢td�| d�}|j |¡}t| ƒr�t jnd
}tt  g d¢¡|d�}t	 
||¡ tt jg d¢td�| d�}|jjddd�}tt  g d¢¡|d�}t	 
||¡ |jjdddd�}tt  g d¢¡|d�}t	 
||¡ tt jdt jddgt jd�| d�}d}|j |¡}| dk�r
tg d¢td�}nt| ƒ�rd	nd
}tt jdt jddgt jd�|d�}t	 
||¡ |jj|dd�}t| ƒ�r:t jnd
}tt  g d¢¡|d�}t	 
||¡ tt jg d¢t jd�| d�}|j |¡}tt  g d¢¡|d�}t	 
||¡ d S )NÚfooÚfooommm__fooÚmmm_zfoommm[_]+bar©Údtypezmmm[_]+Ústr)FFTTFÚobjectÚbooleanFT©Úregex)FFFFT)r   Úxyzr   r	   )FFTT)ÚFooÚxYzÚfOOomMm__fOoÚMMM_zFOO|mmm©Úcase)TFTT)r   r   ©TFTF©Úna)ÚnpÚarrayÚnanÚobject_r   r   ÚcontainsÚboolr   ÚtmÚassert_series_equalr   Úbool_)Úany_string_dtypeÚvaluesÚpatÚresultÚexpectedÚexpected_dtype© r*   úc/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/strings/test_find_replace.pyÚtest_contains   sŠ   ÿÿþþþÿþþ
ÿþÿþr,   c                  C   sv   t tjdtjddt ¡ dd ddg	td�ƒ} | j d¡}t tjd	tjd	tjtjdd tjtjg	tj	d�ƒ}t
 ||¡ d S )
NÚaÚbTr   é   ç       @r
   ÚoF)r   r   r   r   r   Útodayr   r   r   r   r!   r"   ©Úmixedr'   r(   r*   r*   r+   Útest_contains_object_mixedv   s   þÿþÿr5   c                  C   sÐ   t ddddtjgdd�} | jjddd�}t g d¢ƒ}t ||¡ | jjdd	d�}t g d
¢ƒ}t ||¡ t ddddtjgƒ} | jjddd�}t g d¢ƒ}t ||¡ | jjdd	d�}t g d
¢ƒ}t ||¡ d S )Nr-   r.   ÚcÚcategoryr
   Tr   )TFFTTF)TFFTF)r   r   r   r   r   r!   r"   )r%   r'   r(   r*   r*   r+   Ú*test_contains_na_kwarg_for_object_category‡   s   r8   zna, expected)TT)FF)r   F)é   Tr   TFc                 C   sž   t ddddtjg| d�}d}d }t |¡st|tƒst}tj	||d�� |j
jd||d�}W d   ƒ n1 s7w   Y  t dd	d	d|gd
d�}t ||¡ d S )Nr-   r.   r6   r
   ú]Allowing a non-bool 'na' in obj.str.contains is deprecated and will raise in a future version©Úmatch)r   r   TFr   )r   r   r   ÚpdÚisnaÚ
isinstancer    ÚFutureWarningr!   Úassert_produces_warningr   r   r"   )Únullable_string_dtyper   r(   r   r%   ÚmsgÚwarnr'   r*   r*   r+   Ú0test_contains_na_kwarg_for_nullable_string_dtypeŸ   s   ÿÿrE   c                 C   sn  t ddddddtjddd	g
| d
�}|j d¡}| dkr t}d}nt| ƒr&dnd}tj}t dddddd|dddg
|d
�}t ||¡ |jjddd�}t dddddd|dddg
|d
�}t ||¡ |j d¡}t dddddd|dddg
|d
�}t ||¡ |j d¡}t dddddd|dddg
|d
�}t ||¡ |jjddd�}t dddddd|dddg
|d
�}t ||¡ d S )NÚAÚBÚCÚAabaÚBacaÚ ÚCABAÚdogÚcatr
   r-   r   Fr   r   Tr   ÚAaÚba)	r   r   r   r   r   r    r   r!   r"   )r$   Úsr'   r)   Úna_valuer(   r*   r*   r+   Útest_contains_moar¿   sP   þÿþþþþþrS   c                 C   sš  t tjtjtjg| d�}|jjddd�}t| ƒrtjnd}t g d¢|d�}t ||¡ |jjddd�}t g d¢|d�}t ||¡ t	| d	ƒrQ| j
d
krQ| jtju sžd}tjt|d�� |jjddd�}W d   ƒ n1 smw   Y  | dkr€t g d¢tjd�}n| jtju r�t g d¢tjd�}nt g d¢dd�}t ||¡ |j d¡}| dkr±t g d¢td�}nt| ƒr·dnd}t tjtjtjg|d�}t ||¡ d S )Nr
   r   Fr   r   ©FFFT)TTTÚstorageÚpythonr:   r;   r   )r   r   r   r   )r   r   r   r   r   r   r#   r!   r"   ÚhasattrrU   rR   rA   r@   r   r    )r$   rQ   r'   r)   r(   rC   r*   r*   r+   Útest_contains_nanó   s>   ÿÿ
ÿÿÿrX   c                 C   sP  t | ƒrtjnd}tg d¢| d�}t d¡}|j |¡}tg d¢|d�}t 	||¡ | dkrJ| j
dkrJ|jj|dd	�}tg d
¢|d�}t 	||¡ ntjtdd�� |jj|dd	� W d   ƒ n1 sdw   Y  tjdtjd�}|j |¡}tg d
¢|d�}t 	||¡ tjtdd�� |jj|tjd� W d   ƒ d S 1 s¡w   Y  d S )Nr   )r   ÚbarÚBazr
   zba.©FTFÚstringÚpyarrowFr   ©FTTú5cannot process flags argument with a compiled patternr;   ©Úflags)r   r   r#   r   ÚreÚcompiler   r   r!   r"   rU   ÚpytestÚraisesÚ
ValueErrorÚ
IGNORECASE©r$   r)   Úserr&   r'   r(   r*   r*   r+   Útest_contains_compiled_regex%  s2   ÿ
ÿýÿ"ýrj   c                 C   sÎ   t | ƒrtjnd}tg d¢| d�}t d¡}|j |¡}tg d¢|d�}t 	||¡ tjdtj
d�}|j |¡}tg d¢|d�}t 	||¡ tjdtj
tjB d�}|j |¡}tg d¢|d�}t 	||¡ d S )	Nr   )Úfoobarzfoo
barrZ   r
   z^barT   r`   r[   r^   )r   r   r#   r   rb   rc   r   r   r!   r"   Ú	MULTILINErg   rh   r*   r*   r+   Ú"test_contains_compiled_regex_flagsI  s   ÿ
rm   c                 C   sÚ   |dkr|j tju r|jdkr|  tjjdd�¡ tdtjdddtjd	g|d
�}d}t	j
t|d�� |jjddd� W d   ƒ n1 sDw   Y  d}t	j
t|d�� |jjddd� W d   ƒ d S 1 sfw   Y  d S )Nr\   rV   zTODO(infer_string))ÚreasonÚomÚfoo_nomÚnomÚbar_foor   r
   z<Allowing a non-bool 'na' in obj.str.startswith is deprecatedr;   ÚkapowÚbazr   z:Allowing a non-bool 'na' in obj.str.endswith is deprecatedrY   )rR   r   r   rU   Úapplymarkerrd   ÚmarkÚxfailr   r!   rA   r@   r   Ú
startswithÚendswith)Úrequestr$   ri   rC   r*   r*   r+   Ú$test_startswith_endswith_validate_naf  s    
þÿ"ÿr{   z4ignore:Downcasting object dtype arrays:FutureWarningr&   r   )r   rt   r   r   r7   Ú
null_valuer   c              
   C   sB  t d|ddd|dg|d�}|j | ¡}t dtjdddtjdgƒ}|d	kr/|tju r/| |¡}n|d	kr>|d u r>d || ¡ < n|rL|d
krL| d¡ 	t
¡}t ||¡ |jj| |d�}t d|ddd|dgƒ}t ||¡ tjdtjddt ¡ dd ddg	tjd�}t |ƒj d¡}	t dtjdtjtjdd tjtjg	ƒ}
t |	|
¡ d S ©Nro   rp   rq   rr   r   r
   FTr   r7   r   r-   r.   r/   r0   Úf)r   r   rx   r   r   r=   ÚNAÚfillnar>   Úastyper    r!   r"   r   r   r2   r   ©r&   r   r|   r   Úusing_infer_stringr%   r'   Úexpr4   ÚrsÚxpr*   r*   r+   Útest_startswith{  s.   þþ$r‡   )NTFc              
   C   s¼   t g d¢| d�}|jjd|d�}t| ƒr|d u rtntnd}| dkr*t}|d u r*d}t d|ddd|dddg	|d�}t ||¡ |jjd	|d�}t d|ddd|dddg	|d�}t ||¡ d S ©
N)	ro   Nrp   rq   rr   Nr   r   úrege.r
   r   r   r   r   FTr‰   )r   r   rx   r   r   r    r!   r"   ©r$   r   r%   r'   r)   r„   r*   r*   r+   Útest_startswith_string_dtype   s,   þÿýÿÿr‹   c              
   C   s@  t d|ddd|dg|d�}|j | ¡}t dtjdddtjdgƒ}|d	kr/|tju r/| |¡}n|d	kr>|d u r>d || ¡ < n|rL|d
krL| d¡ 	t
¡}t ||¡ |jj| |d�}t d|ddd|dgƒ}t ||¡ tjdtjddt ¡ dd ddg	td�}t |ƒj d¡}	t dtjdtjtjdd tjtjg	ƒ}
t |	|
¡ d S r}   )r   r   ry   r   r   r=   r   r€   r>   r�   r    r!   r"   r   r   r2   r   r‚   r*   r*   r+   Útest_endswithÃ  s.   þþ$rŒ   c              
   C   s¼   t g d¢| d�}|jjd|d�}t| ƒr|d u rtntnd}| dkr*t}|d u r*d}t d|ddd|dddg	|d�}t ||¡ |jjd	|d�}t d|ddd|dddg	|d�}t ||¡ d S rˆ   )r   r   ry   r   r   r    r!   r"   rŠ   r*   r*   r+   Útest_endswith_string_dtypeè  s,   þÿýÿÿr�   c                 C   sF   t dtjg| d�}|jjdddd�}t dtjg| d�}t ||¡ d S )NÚfooBAD__barBADr
   úBAD[_]*rK   Tr   rk   ©r   r   r   r   Úreplacer!   r"   ©r$   ri   r'   r(   r*   r*   r+   Útest_replace
  s   r“   c                 C   sz   t dtjg| d�}t dtjg| d�}|jjddddd�}t ||¡ t d	tjg| d�}|jjd
dddd�}t ||¡ d S )NrŽ   r
   Ú	foobarBADr�   rK   r/   T©Únr   Úfoo__barBADÚBADFr�   ©r$   ri   r(   r'   r*   r*   r+   Útest_replace_max_replacements  s   rš   c               
   C   sn   t dtjddt ¡ dd ddg	ƒ} t | ƒjjdddd	�}t d
tjdtjtjdd tjtjg	td�}t 	||¡ d S )NÚaBADÚbBADTÚfooBADr/   r0   r�   rK   r   r-   r.   r   r
   )
r   r   r   r   r2   r   r‘   r   r!   r"   ©ri   r'   r(   r*   r*   r+   Útest_replace_mixed_object  s   ÿ ÿrŸ   c                 C   sN   t d d¡g| d�}t d d¡g| d�}|jjddtjdd�}t ||¡ d S )	Nó   abcd,Ã úutf-8r
   ó   abcd, Ã ú(?<=\w),(?=\w)ú, T©ra   r   )r   Údecoder   r‘   rb   ÚUNICODEr!   r"   r™   r*   r*   r+   Útest_replace_unicode)  s   r¨   Úreplr9   r-   r.   Údata)r-   r.   N)r-   r.   r6   Úadc                 C   sR   d}||| d�}t jt|d�� |j d|¡ W d   ƒ d S 1 s"w   Y  d S )Nz!repl must be a string or callabler
   r;   r-   )rd   re   Ú	TypeErrorr   r‘   )r$   Úindex_or_seriesr©   rª   rC   Úobjr*   r*   r+   Ú#test_replace_wrong_repl_type_raises0  s
   "ÿr¯   c                 C   sP   t dtjg| d�}dd„ }|jjd|ddd�}t d	tjg| d�}t ||¡ d S )
NrŽ   r
   c                 S   ó   |   d¡ ¡ S ©Nr   ©ÚgroupÚswapcase©Úmr*   r*   r+   Ú<lambda>?  ó    z'test_replace_callable.<locals>.<lambda>ú[a-z][A-Z]{2}é   Tr•   ÚfoObaD__baRbaDr�   )r$   ri   r©   r'   r(   r*   r*   r+   Útest_replace_callable:  s
   r¼   c                   C   ó   d S ©Nr*   r*   r*   r*   r+   r·   F  ó    r·   c                 C   r½   r¾   r*   )r¶   Úxr*   r*   r+   r·   F  r¿   c                 C   r½   r¾   r*   )r¶   rÀ   Úyr*   r*   r+   r·   F  r¿   c                 C   s\   t dtjg| d�}d}tjt|d�� |jjd|dd� W d   ƒ d S 1 s'w   Y  d S )NrŽ   r
   zO((takes)|(missing)) (?(2)from \d+ to )?\d+ (?(3)required )positional arguments?r;   r-   Tr   )r   r   r   rd   re   r¬   r   r‘   )r$   r©   r%   rC   r*   r*   r+   Útest_replace_callable_raisesE  s   ÿ"ÿrÂ   zrepl, expected_listz\g<three> \g<two> \g<one>zThree Two OnezBaz Bar Fooz\g<3> \g<2> \g<1>z\g<2>0ÚTwo0ÚBar0z	\g<2>0 \1zTwo0 OnezBar0 Foo)Únamed_groups_full_swapÚnumbered_groups_full_swapÚsingle_group_with_literalÚ"mixed_group_reference_with_literal)ÚidsÚuse_compilec                 C   sP   t ddg| d�}d}|rt |¡}|jj||dd�}t || d�}t ||¡ d S )NúOne Two ThreeúFoo Bar Bazr
   ú((?P<one>\w+) (?P<two>\w+) (?P<three>\w+)Tr   )r   rb   rc   r   r‘   r!   r"   )r$   rÊ   r©   Úexpected_listri   Úpatternr'   r(   r*   r*   r+   Ú$test_replace_named_groups_regex_swapU  s    
rÐ   z\g<20>z\20c                 C   sj   d}|r	t  |¡}tddg| d�}tjt jdd�� |jj||dd� W d   ƒ d S 1 s.w   Y  d S )	NrÍ   rË   rÌ   r
   zinvalid group referencer;   Tr   )rb   rc   r   rd   re   Úerrorr   r‘   )r$   r©   rÊ   rÏ   ri   r*   r*   r+   Ú2test_replace_named_groups_regex_swap_expected_fail~  s   
"ÿrÒ   c                 C   sR   t dtjg| d�}d}dd„ }|jj||dd�}t dtjg| d�}t ||¡ d S )	NrÌ   r
   z,(?P<first>\w+) (?P<middle>\w+) (?P<last>\w+)c                 S   r°   )NÚmiddler²   rµ   r*   r*   r+   r·   —  r¸   z4test_replace_callable_named_groups.<locals>.<lambda>Tr   ÚbARr�   )r$   ri   r&   r©   r'   r(   r*   r*   r+   Ú"test_replace_callable_named_groups“  s   rÕ   c                 C   s‚   t dtjg| d�}t d¡}|jj|ddd�}t dtjg| d�}t ||¡ |jj|dddd	�}t d
tjg| d�}t ||¡ d S )NrŽ   r
   úBAD_*rK   Tr   rk   r/   r•   r”   ©	r   r   r   rb   rc   r   r‘   r!   r"   )r$   ri   r&   r'   r(   r*   r*   r+   Útest_replace_compiled_regex�  s   
rØ   c               
   C   sx   t  d¡} tdtjddt ¡ dd ddg	ƒ}t|ƒjj| ddd	�}td
tjdtjtjdd tjtjg	t	d�}t
 ||¡ d S )NrÖ   r›   rœ   Tr�   r/   r0   rK   r   r-   r.   r   r
   )rb   rc   r   r   r   r   r2   r   r‘   r   r!   r"   )r&   ri   r'   r(   r*   r*   r+   Ú(test_replace_compiled_regex_mixed_object¬  s   
ÿ ÿrÙ   c                 C   sZ   t d d¡g| d�}t d d¡g| d�}tjdtjd�}|jj|ddd	�}t ||¡ d S )
Nr    r¡   r
   r¢   r£   r`   r¤   Tr   )	r   r¦   rb   rc   r§   r   r‘   r!   r"   )r$   ri   r(   r&   r'   r*   r*   r+   Ú#test_replace_compiled_regex_unicode¸  s
   rÚ   c                 C   sî   t dtjg| d�}t d¡}d}tjt|d�� |jj	|dtj
dd� W d   ƒ n1 s-w   Y  tjt|d�� |jj	|dd	dd
� W d   ƒ n1 sNw   Y  tjt|d�� |jj	|dddd
� W d   ƒ d S 1 spw   Y  d S )NÚfooBAD__barBAD__badr
   rÖ   z9case and flags cannot be set when pat is a compiled regexr;   rK   Tr¥   F©r   r   )r   r   r   rb   rc   rd   re   rf   r   r‘   rg   ©r$   ri   r&   rC   r*   r*   r+   Ú"test_replace_compiled_regex_raisesÀ  s   
ÿÿ"ÿrÞ   c                 C   sZ   t dtjg| d�}dd„ }t d¡}|jj||ddd�}t d	tjg| d�}t ||¡ d S )
NrŽ   r
   c                 S   r°   r±   r²   rµ   r*   r*   r+   r·   Õ  r¸   z6test_replace_compiled_regex_callable.<locals>.<lambda>r¹   rº   Tr•   r»   r×   )r$   ri   r©   r&   r'   r(   r*   r*   r+   Ú$test_replace_compiled_regex_callableÒ  s   
rß   zregex,expectedÚbaoc                 C   sB   t ddtjg|d�}t ||d�}|jjdd| d�}t ||¡ d S )Nzf.or   r
   zf.rP   r   r�   )r   r(   r$   ri   r'   r*   r*   r+   Útest_replace_literalÜ  s   rá   c                 C   s^   t g | d�}dd„ }d}tjt|d�� |jjd|dd� W d   ƒ d S 1 s(w   Y  d S )	Nr
   c                 S   r°   r±   r²   rµ   r*   r*   r+   r·   é  r¸   z6test_replace_literal_callable_raises.<locals>.<lambda>z2Cannot use a callable replacement when regex=Falser;   ÚabcFr   )r   rd   re   rf   r   r‘   )r$   ri   r©   rC   r*   r*   r+   Ú$test_replace_literal_callable_raisesç  s   "ÿrã   c                 C   s`   t g | d�}t d¡}d}tjt|d�� |jj|ddd� W d   ƒ d S 1 s)w   Y  d S )Nr
   r¹   zCCannot use a compiled regex as replacement pattern with regex=Falser;   rK   Fr   )r   rb   rc   rd   re   rf   r   r‘   rÝ   r*   r*   r+   Ú$test_replace_literal_compiled_raisesð  s   
"ÿrä   c                 C   sä   t ddddddtjddd	g
| d
�}|j dd¡}t ddddddtjddd	g
| d
�}t ||¡ |jjdddd�}t ddddddtjdddg
| d
�}t ||¡ |jjddddd�}t ddddddtjdddg
| d
�}t ||¡ d S )NrF   rG   rH   rI   rJ   rK   rL   rM   rN   r
   ÚYYYÚYYYabaÚCYYYBYYYFr   Ú
YYYYYYbYYYÚBYYYcYYYÚcYYYtz^.a|dogzXX-XX TrÜ   zXX-XX bazXX-XX cazXX-XX BAzXX-XX tr�   r’   r*   r*   r+   Útest_replace_moarù  sT   þþöóöórë   c                 C   sŒ   t ddddtjg| d�}|jjddddd	�}t d
d
ddtjg| d�}t ||¡ |jjdd
ddd	�}t d
d
ddtjg| d�}t ||¡ d S )NzA.za.ÚAbÚabr
   r-   r6   FrÜ   zc.Úcbr�   r’   r*   r*   r+   Ú)test_replace_not_case_sensitive_not_regex,  s   rï   c                 C   sR   t dddtjdg| d�}|jjdddd�}t dddtjdg| d�}t ||¡ d S )	Nr-   r.   ÚacrK   r
   z^.$Tr   r�   )r$   rQ   r'   r(   r*   r*   r+   Útest_replace_regex9  s   rñ   c                 C   sp   t dddtjdg|d�}|jjdd| d�}| r$t dddtjdg|d�}nt d	ddtjdg|d�}t ||¡ d S )
Nza.bÚ.r.   rK   r
   r-   r   ÚaaaÚaabr�   )r   r$   rQ   r'   r(   r*   r*   r+   Ú#test_replace_regex_single_characterA  s   rõ   c                 C   sF  | dkr	t }d}nt| ƒrdnd}tj}tdtjdg| d�}|j d¡}td	|dg|d�}t ||¡ tdd
tjdg| d�}|j d¡}td	d	|dg|d�}t ||¡ |j d¡}tdd	|dg|d�}t ||¡ tddtjdg| d�}|j d¡}tdd|dg|d�}t ||¡ |j d¡}tdd	|dg|d�}t ||¡ d S )Nr   Fr   r   rŽ   r   r
   ú.*(BAD[_]+).*(BAD)TÚBAD_BADleroybrownú.*BAD[_]+.*BADzBAD[_]+.*BADz^BAD_BADleroybrownz^BAD[_]+.*BADz\^BAD[_]+.*BAD)	r    r   r   r   r   r   r<   r!   r"   )r$   r)   rR   r%   r'   r(   r*   r*   r+   Ú
test_matchT  s8   ÿÿÿrù   c               
   C   sr   t dtjddt ¡ dd ddg	ƒ} t | ƒj d¡}t dtjdtjtjdd tjtjg	ƒ}t|t ƒs1J ‚t 	||¡ d S )	NÚaBAD_BADÚ	BAD_b_BADTr   r/   r0   rö   F)
r   r   r   r   r2   r   r<   r?   r!   r"   r3   r*   r*   r+   Útest_match_mixed_object{  s    ÷ÿ$rü   c                 C   s¨   t ddtjg| d�}|jjddd�}t| ƒrtjnd}t g d¢|d�}t ||¡ |j d¡}| dkr8t	}d}nt| ƒr>d	nd}tj}t d
d|g|d�}t ||¡ d S )Nr-   r.   r
   Fr   r   )TFFr   r   T)
r   r   r   r   r<   r   r#   r!   r"   r    )r$   rQ   r'   r)   r(   rR   r*   r*   r+   Útest_match_na_kwarg�  s   ÿÿrý   c                 C   sR   t g d¢| d�}|jjddd�}t| ƒrtjnd}t g d¢|d�}t ||¡ d S )N©rí   ÚABrâ   ÚABCr
   rí   Fr   r   ©TTTT©r   r   r<   r   r   r#   r!   r"   )r$   r%   r'   r)   r(   r*   r*   r+   Útest_match_case_kwarg©  s   ÿr  c                 C   óZ  t | ƒrtjnd}tg d¢| d�}|j t d¡¡}tg d¢|d�}t 	||¡ | dkrK| j
dkrK|jjt d¡dd	�}tg d
¢|d�}t 	||¡ n"tjtdd�� |jjt d¡dd	� W d   ƒ n1 shw   Y  |j tjdtjd�¡}tg d
¢|d�}t 	||¡ tjtdd�� |jjt d¡tjd� W d   ƒ d S 1 s¦w   Y  d S )Nr   rþ   r
   rí   r   r\   r]   Fr   r  r_   r;   r`   )r   r   r#   r   r   r<   rb   rc   r!   r"   rU   rd   re   rf   rg   ©r$   r)   r%   r'   r(   r*   r*   r+   Útest_match_compiled_regex³  ó.   ÿÿýÿ"ýr  zpat, case, exprí   rì   Úbcz	a[a-z]{1}z	A[a-z]{1}z	(bc)|(ab)z((bc)|(ab))c                 C   sN   t ddg| d�}|jj||d�}t| ƒrtjnd}t ||d�}t ||¡ d S )Nrâ   ÚXabr
   r   r   r  )r$   r&   r   r„   ri   r'   r)   r(   r*   r*   r+   Útest_str_match_extra_casesÔ  s   ÿr
  c                 C   sr   t ddtjdg| d�}|j d¡}| dkrt g d¢td�}nt| ƒr$dnd	}t d
dtjdg|d�}t ||¡ d S )NrŽ   r÷   r   r
   rø   r   ©TFFFr   r   TF©	r   r   r   r   Ú	fullmatchr    r   r!   r"   ©r$   ri   r'   r(   r)   r*   r*   r+   Útest_fullmatchñ  s   ÿÿr  c                 C   sr   t ddtjdg| d�}|j d¡}| dkrt g d¢td�}nt| ƒr$dnd	}t d
d
tjdg|d�}t ||¡ d S )Nr   zfoo$foozfoo$r
   zfoo\$r   )FFFTr   r   FTr  r  r*   r*   r+   Útest_fullmatch_dollar_literal  s   ÿr  c                 C   sX   t ddtjdg| d�}|jjddd�}t| ƒrtjnd}t g d	¢|d�}t ||¡ d S )
NrŽ   r÷   r   r
   rø   Fr   r   r  )	r   r   r   r   r  r   r#   r!   r"   )r$   ri   r'   r)   r(   r*   r*   r+   Útest_fullmatch_na_kwarg  s   ÿÿr  c                 C   sœ   t g d¢| d�}t| ƒrtjnd}t g d¢|d�}|jjddd�}t ||¡ t g d¢|d�}|jjdd	d�}t ||¡ |jjdtj	d
�}t ||¡ d S )Nrþ   r
   r   r  rí   Tr   ©TTFFFr`   )
r   r   r   r#   r   r  r!   r"   rb   rg   )r$   ri   r)   r(   r'   r*   r*   r+   Útest_fullmatch_case_kwarg  s   ÿr  c                 C   r  )Nr   rþ   r
   rí   r  r\   r]   Fr   r  r_   r;   r`   )r   r   r#   r   r   r  rb   rc   r!   r"   rU   rd   re   rf   rg   r  r*   r*   r+   Útest_fullmatch_compiled_regex1  r  r  zpat, case, na, exprâ   )TFFNÚAbc)FFFNz	a[a-z]{2}úabc$zabc\$)FTFNzAbc$zAbc\$z(abc)|(abx)z((abc)|(abx))c           	      C   sd   t g d¢| d�}|jj|||d�}| dkrd|d< t}nt| ƒr"dnd}t ||d�}t ||¡ d S )	N)râ   r  z$abcNr
   )r   r   r   Féÿÿÿÿr   r   )r   r   r  r    r   r!   r"   )	r$   r&   r   r   r„   ri   r'   r)   r(   r*   r*   r+   Útest_str_fullmatch_extra_casesR  s   ÿr  c                 C   sT   t dtjddg| d�}|j d¡}t ddgtjg dggƒ}t||ƒ}t ||¡ d S )NrŽ   r   r˜   r
   r�   ÚBAD__)r   r   r   r   Úfindallr   r!   r"   r’   r*   r*   r+   Útest_findall|  s
   
r  c               
   C   sf   t dtjddt ¡ dd ddg	ƒ} | j d¡}t ddgtjg tjtjdgd tjtjg	ƒ}t ||¡ d S )	NrŽ   r   Tr˜   r/   r0   r�   r  )	r   r   r   r   r2   r   r  r!   r"   rž   r*   r*   r+   Útest_findall_mixed_object„  s4   ÷ÿ÷ÿr  c                 C   sr  t g d¢| d�}t| ƒrtjnd}|j d¡}t g d¢|d�}t ||¡ tjdd„ t |¡D ƒtjd�}t 	tj|tjd�|¡ |j 
d¡}t g d¢|d�}t ||¡ tjd	d„ t |¡D ƒtjd�}t 	tj|tjd�|¡ |j dd
¡}t g d¢|d�}t ||¡ tjdd„ t |¡D ƒtjd�}t 	tj|tjd�|¡ |j 
dd
¡}t g d¢|d�}t ||¡ tjdd„ t |¡D ƒtjd�}t 	tj|tjd�|¡ |j dd
d¡}t g d¢|d�}t ||¡ tjdd„ t |¡D ƒtjd�}t 	tj|tjd�|¡ |j 
dd
d¡}t g d¢|d�}t ||¡ tjdd„ t |¡D ƒtjd�}t 	tj|tjd�|¡ d S )N)ÚABCDEFGÚBCDEFEFÚ	DEFGHIJEFÚEFGHEFÚXXXXr
   ÚInt64ÚEF)é   r9   r/   r   r  c                 S   ó   g | ]}|  d ¡‘qS ©r#  ©Úfind©Ú.0Úvr*   r*   r+   Ú
<listcomp>µ  ó    ztest_find.<locals>.<listcomp>)r$  é   é   r$  r  c                 S   r%  r&  ©Úrfindr)  r*   r*   r+   r,  »  r-  r9   )r$  r9   r/  r$  r  c                 S   ó   g | ]}|  d d¡‘qS ©r#  r9   r'  r)  r*   r*   r+   r,  Á  ó    c                 S   r2  r3  r0  r)  r*   r*   r+   r,  Ç  r4  é   )r$  r9   r  r$  r  c                 S   ó   g | ]	}|  d dd¡‘qS ©r#  r9   r5  r'  r)  r*   r*   r+   r,  Í  ó    c                 S   r6  r7  r0  r)  r*   r*   r+   r,  Ó  r8  )r   r   r   Úint64r   r(  r!   r"   r   Úassert_numpy_array_equalr1  ©r$   ri   r)   r'   r(   r*   r*   r+   Ú	test_findª  sF   ÿÿ      r<  c                 C   s†   t g | d�}tjtdd�� |j d¡ W d   ƒ n1 sw   Y  tjtdd�� |j d¡ W d   ƒ d S 1 s<w   Y  d S )Nr
   z!expected a string object, not intr;   r   )r   rd   re   r¬   r   r(  r1  )r$   ri   r*   r*   r+   Útest_find_bad_arg_raises×  s   ÿ"ÿr=  c                 C   sh  t dtjdtjdg| d�}t| ƒrtjnd}|j d¡}t dtjdtjd	g|d�}t ||¡ |j 	d¡}t dtjd
tjd	g|d�}t ||¡ |j dd¡}t dtjd
tjd	g|d�}t ||¡ |j 	dd¡}t dtjd
tjd	g|d�}t ||¡ |j ddd¡}t dtjd	tjd	g|d�}t ||¡ |j 	ddd¡}t dtjd	tjd	g|d�}t ||¡ d S )Nr  r  r!  r
   r"  r#  r$  r/   r  r/  r9   r5  )
r   r   r   r   Úfloat64r   r(  r!   r"   r1  r;  r*   r*   r+   Útest_find_nanà  s.   ÿÿr?  Úinfer_stringr]   )Úmarksc                 C   sH   | g d¢|d�}t  dd¡}|j  |¡}| g d¢|d�}t ||¡ d S )N)ÚabcdefgÚabccÚcdddfgÚcdefgggr
   râ   Úcde)ÚcdedefgÚcdeeÚedddfgÚedefggg)r   Ú	maketransÚ	translater!   Úassert_equal)r­   r$   r@  r®   Útabler'   r(   r*   r*   r+   Útest_translate  s   ÿÿrO  c                  C   sJ   t g d¢ƒ} t dd¡}t dddtjgtd�}| j |¡}t ||¡ d S )N)r-   r.   r6   g333333ó?râ   rF  r6   ÚdÚer
   )	r   r   rK  r   r   r   rL  r!   r"   )rQ   rN  r(   r'   r*   r*   r+   Útest_translate_mixed_object  s
   rR  c                 C   s0  dddt jdœ}t|| d�}d}|jj|tjdd�}|jd	  ¡ g d
¢ks'J ‚|jj	|tjd�}|jd	 s7J ‚|jj
|tjd�}|jd	 sGJ ‚|jj|tjd�}|jd	 d	 d
ks[J ‚|jj|tjd�}|jd	 dksmJ ‚d}tjt|d�� |jj|tjd�}W d   ƒ n1 sŠw   Y  |jd	 s–J ‚d S )Nzdave@google.comzsteve@gmail.comzrob@gmail.com)ÚDaveÚSteveÚRobÚWesr
   z,([A-Z0-9._%+-]+)@([A-Z0-9.-]+)\.([A-Z]{2,4})T)ra   Úexpandr   )ÚdaveÚgoogleÚcomr`   r/   zhas match groupsr;   )r   r   r   r   Úextractrb   rg   ÚilocÚtolistr<   r  r  Úcountr!   rA   ÚUserWarningr   )r$   rª   r&   r'   rC   r*   r*   r+   Útest_flags_kwarg!  s,   üÿr`  r¾   )Or   rb   Únumpyr   rd   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr=   r   r   r!   Úpandas.tests.stringsr   r   r,   r5   r8   rv   Úparametrizer   r   rE   rS   rX   rj   rm   r{   Úfilterwarningsr‡   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  r  r  r  r  r  r  r<  r=  r?  ÚparamÚ
skip_if_norO  rR  r`  r*   r*   r*   r+   Ú<module>   s,   
^
úþ42$
 

" 
!ÿ
þþþþóìþþ

 ÿ
		3
'
!øþ
!òü
&-	&ÿ
