U
    ¾mœdö…  ã                
   @   sH  d dl m Z  d dlZd dlZd dlZd dlmZ d dl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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dddg¡d"d#„ ƒZ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dddg¡d&d'„ ƒZd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zej d0dd1d2d3ig¡ej d4d2d3dgd2d3d5d6gg¡d7d8„ ƒƒZd9d:„ Zej d0d;d<„ d=d<„ d{d>d<„g¡d?d@„ ƒZ dAdB„ Z!dCdD„ Z"dEdF„ Z#dGdH„ Z$dIdJ„ Z%dKdL„ Z&ej dMddNdNejgfddNdejgfg¡dOdP„ ƒZ'dQdR„ Z(dSdT„ Z)dUdV„ Z*dWdX„ Z+dYdZ„ Z,ej dddg¡d[d\„ ƒZ-d]d^„ Z.d_d`„ Z/dadb„ Z0dcdd„ Z1dedf„ Z2dgdh„ Z3didj„ Z4dkdl„ Z5dmdn„ Z6dodp„ Z7dqdr„ Z8dsdt„ Z9dudv„ Z:dwdx„ Z;dydz„ Z<dS )|é    )ÚdatetimeN)ÚPerformanceWarning)ÚSeriesÚ_testingc              	   C   sÔ  t jdt jdddgt jd�}t|| d�}d}|j |¡}| dkrDdnd}tt jd	t jd
d
d	gt jd�|d�}t ||¡ |jj|d	d�}tt jd	t jd	d	d
gt jd�|d�}t ||¡ tt jddddgt	d�| d�}|j |¡}| dkrðt j
nd}tt  d	d	d
d
g¡|d�}t ||¡ tt jddddgt	d�| d�}t t| dk¡� |jjdd	d�}W 5 Q R X tt  d
d	d
d
g¡|d�}t ||¡ |jjdd	d	d�}tt  d
d	d
d	g¡|d�}t ||¡ tt jdt jddgt jd�| d�}d}|j |¡}| dk�rdnd}tt jd	t jd
d
gt jd�|d�}t ||¡ |jj|d	d�}| dk�rTt j
nd}tt  d	d	d
d
g¡|d�}t ||¡ tt jddddgt jd�| d�}|j |¡}tt  d	d	d
d
g¡|d�}t ||¡ d S )NÚfooZfooommm__fooZmmm_zfoommm[_]+bar©Údtypezmmm[_]+ÚobjectÚbooleanFT©ÚregexZxyzZFooZxYzZfOOomMm__fOoZMMM_ústring[pyarrow]zFOO|mmm©Úcase)r   r   ©Úna)ÚnpÚarrayÚnanÚobject_r   ÚstrÚcontainsÚtmÚassert_series_equalr	   Úbool_Úmaybe_produces_warningr   )Úany_string_dtypeÚvaluesÚpatÚresultÚexpected_dtypeÚexpected© r"   ú_/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/strings/test_find_replace.pyÚtest_contains   s€     ÿþþþþ ÿþ ÿþr$   c                  C   sx   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tj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_mixed`   s    þÿ þÿr-   c                  C   sè   t ddddtjgdd�} | jjddd�}t dddddgƒ}t ||¡ | jjddd�}t dddddgƒ}t ||¡ t ddddtjgƒ} | jjddd�}t dddddgƒ}t ||¡ | jjddd�}t dddddgƒ}t ||¡ d S )	Nr%   r&   ÚcÚcategoryr   Tr   F©r   r   r   r   r   r   r   )r   r   r!   r"   r"   r#   Ú*test_contains_na_kwarg_for_object_categoryq   s    r1   zna, expected)TT)FF)r   F)é   Tr   TFc                 C   sP   t ddddtjg| d�}|jjd||d�}t dddd|gdd�}t ||¡ d S )	Nr%   r&   r.   r   )r   r   TFr
   r0   )Únullable_string_dtyper   r!   r   r   r   r"   r"   r#   Ú0test_contains_na_kwarg_for_nullable_string_dtype‰   s    r4   c                 C   s˜  t ddddddtjddd	g
| d
�}|j d¡}| dkr:dnd}t ddddddtjdddg
|d
�}t ||¡ t t| dk¡� |jjddd�}W 5 Q R X t ddddddtjdddg
|d
�}t ||¡ |j d¡}t ddddddtjdddg
|d
�}t ||¡ |j d¡}t ddddddtjdddg
|d
�}t ||¡ t t| dk¡� |jjddd�}W 5 Q R X t ddddddtjdddg
|d
�}t ||¡ d S )NÚAÚBÚCÚAabaÚBacaÚ ÚCABAÚdogÚcatr   r%   r	   r
   FTr   r   ZAaÚba)	r   r   r   r   r   r   r   r   r   ©r   Úsr   r    r!   r"   r"   r#   Útest_contains_moar    sV    þþ ÿþþþ ÿþrA   c                 C   s  t tjtjtjg| d�}|jjddd�}| dkr6tjnd}t dddg|d�}t ||¡ |jjddd�}t dddg|d�}t ||¡ |jjddd�}| dkr´t dddgtjd�}nt dddgdd�}t ||¡ |j d¡}| dkrêdnd}t tjtjtjg|d�}t ||¡ d S )Nr   r   Fr   r	   r
   T)	r   r   r   r   r   r   r   r   r   r?   r"   r"   r#   Útest_contains_nanÒ   s"    rB   r   r   )r   Zbazr   r/   Ú
null_valuer   c           
   
   C   sì   t d|ddd|dg|d�}|j | ¡}t dtjdddtjdgƒ}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tjtjtjg	ƒ}	t ||	¡ d S ©NÚomÚfoo_nomÚnomÚbar_foor   r   FTr   r%   r&   r'   r(   Úf)r   r   Ú
startswithr   r   r   r   r   r   r*   r   ©
r   r   rC   r   r   r   Úexpr,   ÚrsZxpr"   r"   r#   Útest_startswithñ   s"    þþ&rN   c              
   C   s–   t dd dddd dddg	| d�}|jjd|d	�}t d
|dd
d
|dd
d
g	dd�}t ||¡ |jjd|d	�}t d
|d
d
d
|d
d
dg	dd�}t ||¡ d S ©NrE   rF   rG   rH   r   r   zrege.r   r   FTr
   )r   r   rJ   r   r   ©r3   r   r   r   rL   r"   r"   r#   Ú%test_startswith_nullable_string_dtype  s     þ ÿ ÿrQ   c           
   
   C   sê   t d|ddd|dg|d�}|j | ¡}t dtjdddtjdgƒ}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tjtjtjg	ƒ}	t ||	¡ d S rD   )r   r   Úendswithr   r   r   r   r   r   r*   r	   rK   r"   r"   r#   Útest_endswith&  s"    þþ&rS   c              
   C   s–   t dd dddd dddg	| d�}|jjd|d	�}t d
|d
d
d|dd
d
g	dd�}t ||¡ |jjd|d	�}t d
|d
d
d
|d
d
dg	dd�}t ||¡ d S rO   )r   r   rR   r   r   rP   r"   r"   r#   Ú#test_endswith_nullable_string_dtypeC  s     þ ÿ ÿrT   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[_]*r:   Tr   Úfoobar©r   r   r   r   Úreplacer   r   ©r   Úserr   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 )NrU   r   Ú	foobarBADrV   r:   r'   T©Únr   Zfoo__barBADÚBADFrX   ©r   r[   r!   r   r"   r"   r#   Útest_replace_max_replacementsc  s    rb   c               
   C   sl   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tjtjtjg	ƒ}t ||¡ d S )NÚaBADÚbBADTÚfooBADr'   r(   rV   r:   r   r%   r&   r   )	r   r   r   r   r*   r   rY   r   r   ©r[   r   r!   r"   r"   r#   Útest_replace_mixed_objecto  s    ÿ&rg   c              	   C   sj   t d d¡g| d�}t d d¡g| d�}t t| dk¡� |jjddtjdd	�}W 5 Q R X t 	||¡ d S )
Nó   abcd,Ã úutf-8r   ó   abcd, Ã r   ú(?<=\w),(?=\w)ú, T©Úflagsr   )
r   Údecoder   r   r   r   rY   ÚreÚUNICODEr   ra   r"   r"   r#   Útest_replace_unicodex  s     ÿ rr   Úreplr2   r%   r&   Údatar.   Úadc              	   C   s<   d}||| d�}t jt|d�� |j d|¡ W 5 Q R X d S )Nz!repl must be a string or callabler   ©Úmatchr%   )ÚpytestÚraisesÚ	TypeErrorr   rY   )r   Úindex_or_seriesrs   rt   ÚmsgÚobjr"   r"   r#   Ú#test_replace_wrong_repl_type_raises‚  s    r~   c              	   C   sl   t dtjg| d�}dd„ }t t| dk¡� |jjd|ddd	�}W 5 Q R X t d
tjg| d�}t ||¡ d S )NrU   r   c                 S   s   |   d¡ ¡ S ©Nr   ©ÚgroupÚswapcase©Úmr"   r"   r#   Ú<lambda>‘  ó    z'test_replace_callable.<locals>.<lambda>r   ú[a-z][A-Z]{2}é   Tr^   ÚfoObaD__baRbaD©	r   r   r   r   r   r   r   rY   r   )r   r[   rs   r   r!   r"   r"   r#   Útest_replace_callableŒ  s     ÿr‹   c                   C   s   d S ©Nr"   r"   r"   r"   r#   r…   ›  r†   r…   c                 C   s   d S rŒ   r"   )r„   Úxr"   r"   r#   r…   ›  r†   c                 C   s   d S rŒ   r"   )r„   r�   Úyr"   r"   r#   r…   ›  r†   c              
   C   sb   t dtjg| d�}d}tjt|d��4 t t| dk¡� |j	j
d|dd� W 5 Q R X W 5 Q R X d S )	NrU   r   zO((takes)|(missing)) (?(2)from \d+ to )?\d+ (?(3)required )positional arguments?rv   r   r%   Tr   )r   r   r   rx   ry   rz   r   r   r   r   rY   )r   rs   r   r|   r"   r"   r#   Útest_replace_callable_raisesš  s    ÿ ÿr�   c              	   C   sn   t dtjg| d�}d}dd„ }t t| dk¡� |jj||dd�}W 5 Q R X t d	tjg| d�}t ||¡ d S )
NzFoo Bar Bazr   z,(?P<first>\w+) (?P<middle>\w+) (?P<last>\w+)c                 S   s   |   d¡ ¡ S )NÚmiddler€   rƒ   r"   r"   r#   r…   ±  r†   z4test_replace_callable_named_groups.<locals>.<lambda>r   Tr   ZbARrŠ   )r   r[   r   rs   r   r!   r"   r"   r#   Ú"test_replace_callable_named_groups­  s     ÿr‘   c              	   C   sº   t dtjg| d�}t d¡}t t| dk¡� |jj	|ddd�}W 5 Q R X t dtjg| d�}t 
||¡ t t| dk¡� |jj	|dd	dd
�}W 5 Q R X t dtjg| d�}t 
||¡ d S )NrU   r   úBAD_*r   r:   Tr   rW   r'   r^   r]   ©r   r   r   rp   Úcompiler   r   r   r   rY   r   )r   r[   r   r   r!   r"   r"   r#   Útest_replace_compiled_regexº  s     
 ÿ ÿr•   c               
   C   sv   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tjtjtjg	ƒ}t	 
||¡ d S )Nr’   rc   rd   Tre   r'   r(   r:   r   r%   r&   r   )rp   r”   r   r   r   r   r*   r   rY   r   r   )r   r[   r   r!   r"   r"   r#   Ú(test_replace_compiled_regex_mixed_objectÏ  s    
ÿ&r–   c              	   C   sv   t d d¡g| d�}t d d¡g| d�}tjdtjd�}t t| dk¡� |jj	|dd	d
�}W 5 Q R X t 
||¡ d S )Nrh   ri   r   rj   rk   ©rn   r   rl   Tr   )r   ro   rp   r”   rq   r   r   r   r   rY   r   )r   r[   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 5 Q R X tjt|d�� |jj	|dd	dd
� W 5 Q R X tjt|d�� |jj	|dddd
� W 5 Q R X d S )NZfooBAD__barBAD__badr   r’   z9case and flags cannot be set when pat is a compiled regexrv   r:   Trm   F©r   r   )r   r   r   rp   r”   rx   ry   Ú
ValueErrorr   rY   Ú
IGNORECASE©r   r[   r   r|   r"   r"   r#   Ú"test_replace_compiled_regex_raisesä  s    
 r�   c              	   C   sv   t dtjg| d�}dd„ }t d¡}t t| dk¡� |jj	||ddd	�}W 5 Q R X t d
tjg| d�}t 
||¡ d S )NrU   r   c                 S   s   |   d¡ ¡ S r   r€   rƒ   r"   r"   r#   r…   ù  r†   z6test_replace_compiled_regex_callable.<locals>.<lambda>r‡   r   rˆ   Tr^   r‰   r“   )r   r[   rs   r   r   r!   r"   r"   r#   Ú$test_replace_compiled_regex_callableö  s    
 ÿrž   zregex,expectedZ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.r>   r   rX   )r   r!   r   r[   r   r"   r"   r#   Útest_replace_literal  s    rŸ   c              	   C   sH   t g | d�}dd„ }d}tjt|d�� |jjd|dd� W 5 Q R X d S )	Nr   c                 S   s   |   d¡ ¡ S r   r€   rƒ   r"   r"   r#   r…     r†   z6test_replace_literal_callable_raises.<locals>.<lambda>z2Cannot use a callable replacement when regex=Falserv   ÚabcFr   )r   rx   ry   rš   r   rY   )r   r[   rs   r|   r"   r"   r#   Ú$test_replace_literal_callable_raises  s
    r¡   c              	   C   sJ   t g | d�}t d¡}d}tjt|d�� |jj|ddd� W 5 Q R X d S )Nr   r‡   zCCannot use a compiled regex as replacement pattern with regex=Falserv   r:   Fr   )r   rp   r”   rx   ry   rš   r   rY   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 ||¡ t t| dk¡� |jjdddd�}W 5 Q R X t ddddddtjdddg
| d
�}t ||¡ t t| dk¡� |jjddddd�}W 5 Q R X t ddddddtjdddg
| d
�}t ||¡ d S )Nr5   r6   r7   r8   r9   r:   r;   r<   r=   r   ZYYYZYYYabaZCYYYBYYYr   Fr   Z
YYYYYYbYYYZBYYYcYYYZcYYYtz^.a|dogzXX-XX Tr™   zXX-XX bazXX-XX cazXX-XX BAzXX-XX t)	r   r   r   r   rY   r   r   r   r   rZ   r"   r"   r#   Útest_replace_moar   sd    þþ ÿöó ÿöór£   c              	   C   sÄ   t ddddtjg| d�}t t| dk¡� |jjddd	d	d
�}W 5 Q R X t ddddtjg| d�}t ||¡ t t| dk¡� |jjddd	d	d
�}W 5 Q R X t ddddtjg| d�}t ||¡ d S )NzA.za.ZAbÚabr   r   r%   r.   Fr™   zc.ÚcbrŠ   rZ   r"   r"   r#   Ú)test_replace_not_case_sensitive_not_regexY  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&   Úacr:   r   z^.$Tr   rX   )r   r@   r   r!   r"   r"   r#   Útest_replace_regexl  s    r¨   c                 C   sp   t dddtjdg|d�}|jjdd| d�}| rHt 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&   r:   r   r%   r   ZaaaZaabrX   )r   r   r@   r   r!   r"   r"   r#   Ú#test_replace_regex_single_charactert  s    rª   c                 C   s8  | dkrdnd}t dtjdg| d�}|j d¡}t dtjdg|d�}t ||¡ t dd	tjdg| d�}|j d
¡}t ddtjdg|d�}t ||¡ |j d¡}t ddtjdg|d�}t ||¡ t ddtjdg| d�}|j d¡}t ddtjdg|d�}t ||¡ |j d¡}t ddtjdg|d�}t ||¡ d S )Nr	   r
   rU   r   r   ú.*(BAD[_]+).*(BAD)TFÚBAD_BADleroybrownú.*BAD[_]+.*BADzBAD[_]+.*BADz^BAD_BADleroybrownz^BAD[_]+.*BADz\^BAD[_]+.*BAD)r   r   r   r   rw   r   r   )r   r    r   r   r!   r"   r"   r#   Ú
test_match‡  s2     ÿ ÿr®   c               
   C   st   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tjtjtjg	ƒ}t|t ƒsdt‚t	 
||¡ d S )	NZaBAD_BADZ	BAD_b_BADTr   r'   r(   r«   F)r   r   r   r   r*   r   rw   Ú
isinstanceÚAssertionErrorr   r   r+   r"   r"   r#   Útest_match_mixed_object§  s$    ÷ÿ ÿr±   c                 C   s”   t ddtjg| d�}|jjddd�}| dkr2tjnd}t dddg|d�}t ||¡ |j d¡}| dkrldnd}t ddtjg|d�}t ||¡ d S )	Nr%   r&   r   Fr   r	   r
   T)r   r   r   r   rw   r   r   r   r?   r"   r"   r#   Útest_match_na_kwarg½  s    r²   c              	   C   sv   t ddddg| d�}t t| dk¡� |jjddd�}W 5 Q R X | d	krNtjnd
}t ddddg|d�}t ||¡ d S )Nr¤   ÚABr    ÚABCr   r   Fr   r	   r
   T)	r   r   r   r   r   rw   r   r   r   )r   r   r   r    r!   r"   r"   r#   Útest_match_case_kwargÌ  s     ÿrµ   c                 C   sX   t ddtjdg| d�}|j d¡}| dkr.dnd}t dd	tjd	g|d�}t ||¡ d S )
NrU   r¬   r   r   r­   r	   r
   TF)r   r   r   r   Ú	fullmatchr   r   ©r   r[   r   r    r!   r"   r"   r#   Útest_fullmatchÜ  s     ÿr¸   c                 C   s\   t ddtjdg| d�}|jjddd�}| dkr4tjnd	}t d
dddg|d�}t ||¡ d S )NrU   r¬   r   r   r­   Fr   r	   r
   T)r   r   r   r   r¶   r   r   r   r·   r"   r"   r#   Útest_fullmatch_na_kwargç  s     ÿr¹   c              	   C   sà   t ddddg| d�}| dkr"tjnd}t dd	d	d	g|d�}|jjddd
�}t ||¡ t ddd	d	g|d�}t t| dk¡� |jjdd	d
�}W 5 Q R X t ||¡ t t| dk¡� |jjdt	j
d�}W 5 Q R X t ||¡ d S )Nr¤   r³   r    r´   r   r	   r
   TFr   r   r—   )r   r   r   r   r¶   r   r   r   r   rp   r›   )r   r[   r    r!   r   r"   r"   r#   Útest_fullmatch_case_kwargñ  s$     ÿ ÿrº   c                 C   sJ   t dtjddg| d�}|j d¡}t ddgtjg dggƒ}t ||¡ d S )NrU   r   r`   r   rV   ÚBAD__)r   r   r   r   Úfindallr   r   rZ   r"   r"   r#   Útest_findall  s    r½   c               
   C   sh   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tjtjtjg	ƒ}t ||¡ d S )	NrU   r   Tr`   r'   r(   rV   r»   )	r   r   r   r   r*   r   r¼   r   r   rf   r"   r"   r#   Útest_findall_mixed_object  s4    ÷ÿ÷ÿr¾   c                 C   sœ  t dddddg| d�}| dkr$tjnd}|j d	¡}t d
ddddg|d�}t ||¡ tjdd„ t |¡D ƒtjd�}t tj|tjd�|¡ |j 	d	¡}t d
ddd
dg|d�}t ||¡ tjdd„ t |¡D ƒtjd�}t tj|tjd�|¡ |j d	d¡}t d
ddd
dg|d�}t ||¡ tjdd„ t |¡D ƒtjd�}t tj|tjd�|¡ |j 	d	d¡}t d
ddd
dg|d�}t ||¡ tjdd„ t |¡D ƒtjd�}t tj|tjd�|¡ |j d	dd¡}t d
ddd
dg|d�}t ||¡ tjdd„ t |¡D ƒtjd�}t tj|tjd�|¡ |j 	d	dd¡}t d
ddd
dg|d�}t ||¡ tjdd„ t |¡D ƒtjd�}t tj|tjd�|¡ d S )NÚABCDEFGZBCDEFEFÚ	DEFGHIJEFZEFGHEFÚXXXXr   r	   ÚInt64ÚEFé   r2   r'   r   éÿÿÿÿc                 S   s   g | ]}|  d ¡‘qS ©rÃ   ©Úfind©Ú.0Úvr"   r"   r#   Ú
<listcomp>D  s     ztest_find.<locals>.<listcomp>é   é   c                 S   s   g | ]}|  d ¡‘qS rÆ   ©ÚrfindrÉ   r"   r"   r#   rÌ   J  s     c                 S   s   g | ]}|  d d¡‘qS ©rÃ   r2   rÇ   rÉ   r"   r"   r#   rÌ   P  s     c                 S   s   g | ]}|  d d¡‘qS rÑ   rÏ   rÉ   r"   r"   r#   rÌ   V  s     é   c                 S   s   g | ]}|  d dd¡‘qS ©rÃ   r2   rÒ   rÇ   rÉ   r"   r"   r#   rÌ   \  s     c                 S   s   g | ]}|  d dd¡‘qS rÓ   rÏ   rÉ   r"   r"   r#   rÌ   b  s     )
r   r   Zint64r   rÈ   r   r   r   Zassert_numpy_array_equalrÐ   ©r   r[   r    r   r!   r"   r"   r#   Ú	test_find;  sF     ÿ      rÕ   c              	   C   s\   t g | d�}tjtdd�� |j d¡ W 5 Q R X tjtdd�� |j d¡ W 5 Q R X d S )Nr   z!expected a string object, not intrv   r   )r   rx   ry   rz   r   rÈ   rÐ   )r   r[   r"   r"   r#   Útest_find_bad_arg_raisesf  s
    rÖ   c                 C   sh  t dtjdtjdg| d�}| dk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Å   rÎ   r2   rÒ   )	r   r   r   Zfloat64r   rÈ   r   r   rÐ   rÔ   r"   r"   r#   Útest_find_nano  s.     ÿr×   c                 C   sP   | ddddg|d�}t  dd¡}|j  |¡}| dd	d
dg|d�}t ||¡ d S )NZabcdefgZabccZcdddfgZcdefgggr   r    ÚcdeZcdedefgZcdeeZedddfgZedefggg)r   Ú	maketransÚ	translater   Zassert_equal)r{   r   r}   Útabler   r!   r"   r"   r#   Útest_translate“  s    
 ÿ
 ÿrÜ   c                  C   sJ   t ddddgƒ} t dd¡}t dddtjgƒ}| j |¡}t ||¡ d S )	Nr%   r&   r.   g333333ó?r    rØ   ÚdÚe)r   r   rÙ   r   r   rÚ   r   r   )r@   rÛ   r!   r   r"   r"   r#   Útest_translate_mixed_objectŸ  s
    rß   c              	   C   sT  dddt jdœ}t|| d�}d}| dk}|jj|tjdd	�}|jd
  ¡ dddgksXt	‚t
 t|¡� |jj|tjd�}W 5 Q R X |d
 sŽt	‚t
 t|¡� |jj|tjd�}W 5 Q R X |d
 sÄt	‚|jj|tjd�}|d
 d
 dksêt	‚|jj|tjd�}|d
 dk�st	‚d}t
jt|| d�� |jj|tjd�}W 5 Q R X |d
 �sPt	‚d S )Nzdave@google.comzsteve@gmail.comzrob@gmail.com)ZDaveZSteveZRobZWesr   z,([A-Z0-9._%+-]+)@([A-Z0-9.-]+)\.([A-Z]{2,4})r   T)rn   Úexpandr   ÚdaveÚgoogleÚcomr—   )rá   râ   rã   r'   zhas match groups)rw   Zraise_on_extra_warnings)r   r   r   r   Úextractrp   r›   ZilocÚtolistr°   r   r   r   rw   r¶   r¼   ÚcountZassert_produces_warningÚUserWarningr   )r   rt   r   Zusing_pyarrowr   r|   r"   r"   r#   Útest_flags_kwarg«  s8    ü  ÿrè   )N)=r   rp   Únumpyr   rx   Zpandas.errorsr   ZpandasÚpdr   r   r   r$   r-   r1   ÚmarkZparametrizeZNAr   r4   rA   rB   rN   rQ   rS   rT   r\   rb   rg   rr   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#   Ú<module>   s¦   
L
úþ2

	
 ÿ

 ÿ
		9
 
&+	$