U
    `»{j?œ  ã                
   @   sV  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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/d0„ Zej d1dd2d3d4ig¡ej d5d3d4dgd3d4d6d7gg¡d8d9„ ƒƒZ d:d;„ Z!ej d1d<d=„ d>d=„ d|d?d=„g¡d@dA„ ƒZ"dBdC„ Z#dDdE„ Z$dFdG„ Z%dHdI„ Z&dJdK„ Z'dLdM„ Z(ej dNddOdOejgfddOdejgfg¡dPdQ„ ƒZ)dRdS„ Z*dTdU„ Z+dVdW„ Z,dXdY„ Z-dZd[„ Z.ej ddddg¡d\d]„ ƒZ/d^d_„ Z0d`da„ Z1dbdc„ Z2ddde„ Z3dfdg„ Z4dhdi„ Z5djdk„ Z6dldm„ Z7dndo„ Z8dpdq„ Z9drds„ Z:dtdu„ Z;dvdw„ Z<dxdy„ Z=dzd{„ Z>dS )}é    )ÚdatetimeN)Úpa_version_under4p0)ÚPerformanceWarning)ÚSeriesÚ_testingc              	   C   s~  t jdt jdddgt jd�}t|| d�}d}t t| dko<t¡� |j	 
|¡}W 5 Q R X | 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�}t t| dk�ot¡� |j	 
|¡}W 5 Q R X | dk�r4t 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}t t| dk�o>t¡� |j	 
|¡}W 5 Q R X | dk�rhdnd	}tt jd
t jddgt jd�|d�}t ||¡ t t| dk�o¬t¡� |j	j
|d
d�}W 5 Q R X | 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 jd�| d�}t t| dk�o8t¡� |j	 
|¡}W 5 Q R X tt  d
d
ddg¡|d�}t ||¡ d S )NÚfooZfooommm__fooZmmm_zfoommm[_]+bar©Údtypezmmm[_]+ústring[pyarrow]ÚobjectÚbooleanFT©ÚregexZxyzZFooZxYzZfOOomMm__fOoZMMM_zFOO|mmm©Úcase)r   r   ©Úna)ÚnpÚarrayÚnanÚobject_r   ÚtmÚmaybe_produces_warningr   r   ÚstrÚcontainsÚassert_series_equalr   Úbool_)Úany_string_dtypeÚvaluesÚpatÚresultÚexpected_dtypeÚexpected© r#   úe/var/www/html/bwave/python/venv/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_mixedu   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_category†   s    r1   zna, expected)TT)FF)r   F)é   Tr   TFc              	   C   st   t ddddtjg| d�}t t| dko,to,|¡� |jjd||d�}W 5 Q R X t dddd|gd	d�}t 	||¡ d S )
Nr&   r'   r/   r   r
   )r   r   TFr   ©
r   r   r   r   r   r   r   r   r   r   )Únullable_string_dtyper   r"   r   r   r    r#   r#   r$   Ú0test_contains_na_kwarg_for_nullable_string_dtypež   s    þr5   c                 C   sú  t ddddddtjddd	g
| d
�}t t| dko2t¡� |j d¡}W 5 Q R X | dkrZd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 	||¡ t t| dkoöt¡� |j 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�oRt¡� |j 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�}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   r   FTr   ZAaÚbar3   ©r   Úsr    r!   r"   r#   r#   r$   Útest_contains_moar¹   sn    þ
þþ ÿþ
þþþþ ÿþrB   c              	   C   sœ  t tjtjtjg| d�}t t| dko(t¡� |jjddd�}W 5 Q R X | dkrVtj	nd}t dddg|d�}t 
||¡ t t| dkoˆt¡� |jjddd�}W 5 Q R X t dddg|d�}t 
||¡ t t| dkoÖt¡� |jjddd�}W 5 Q R X | dk�rt dddgtjd�}nt dddgdd�}t 
||¡ t t| dk�oFt¡� |j d¡}W 5 Q R X | dk�rpdnd}t tjtjtjg|d�}t 
||¡ d S )	Nr   r
   r   Fr   r   r   T)r   r   r   r   r   r   r   r   r   r   r   r   r@   r#   r#   r$   Útest_contains_nan÷   sB    
þ
þ
þ
þrC   r   r   )r   Zbazr	   r0   Ú
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	   rD   r   r   r    Úexpr-   ÚrsZxpr#   r#   r$   Útest_startswith&  s"    þþ&rO   c              
   C   sÖ   t dd dddd dddg	| d�}t t| d	ko.t¡� |jjd|d
�}W 5 Q R X t d|ddd|dddg	dd�}t ||¡ t t| d	koˆt¡� |jjd|d
�}W 5 Q R X t d|ddd|dddg	dd�}t ||¡ d S ©NrF   rG   rH   rI   r   r   zrege.r   r
   r   FTr   )r   r   r   r   r   r   rK   r   ©r4   r   r   r    rM   r#   r#   r$   Ú%test_startswith_nullable_string_dtypeC  s0    þ
þ ÿ
þ ÿrR   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 rE   )r   r   Úendswithr   r   r   r   r   r   r+   r   rL   r#   r#   r$   Útest_endswithc  s"    þþ&rT   c              
   C   sÖ   t dd dddd dddg	| d�}t t| d	ko.t¡� |jjd|d
�}W 5 Q R X t d|ddd|dddg	dd�}t ||¡ t t| d	koˆt¡� |jjd|d
�}W 5 Q R X t d|ddd|dddg	dd�}t ||¡ d S rP   )r   r   r   r   r   r   rS   r   rQ   r#   r#   r$   Ú#test_endswith_nullable_string_dtype€  s0    þ
þ ÿ
þ ÿrU   c              	   C   sf   t dtjg| d�}t t| dko"t¡� |jjdddd�}W 5 Q R X t dtjg| d�}t 	||¡ d S )	NÚfooBAD__barBADr   r
   úBAD[_]*r;   Tr   Úfoobar©
r   r   r   r   r   r   r   r   Úreplacer   ©r   Úserr    r"   r#   r#   r$   Útest_replace   s    
þr]   c              	   C   sº   t dtjg| d�}t dtjg| d�}t t| dko4t¡� |jjddddd	�}W 5 Q R X t 	||¡ t d
tjg| d�}t t| dko†t¡� |jjddddd	�}W 5 Q R X t 	||¡ d S )NrV   r   Ú	foobarBADr
   rW   r;   r(   T©Únr   Zfoo__barBADÚBADFrY   ©r   r\   r"   r    r#   r#   r$   Útest_replace_max_replacements¬  s    
þ
þrc   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)   rW   r;   r   r&   r'   r   )	r   r   r   r   r+   r   rZ   r   r   ©r\   r    r"   r#   r#   r$   Útest_replace_mixed_objectÀ  s    ÿ&rh   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   rZ   ÚreÚUNICODEr   rb   r#   r#   r$   Útest_replace_unicodeÉ  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   rZ   )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 )NrV   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   rZ   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   s^   t dtjg| d�}d}tjt|d��0 t t| dk¡� |j	 
d|¡ W 5 Q R X W 5 Q R X d S )NrV   r   zO((takes)|(missing)) (?(2)from \d+ to )?\d+ (?(3)required )positional arguments?rv   r
   r&   )r   r   r   rx   ry   rz   r   r   r   r   rZ   )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 )NrV   r   úBAD_*r
   r;   Tr   rX   r(   r_   r^   ©r   r   r   rp   Úcompiler   r   r   r   rZ   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’   rd   re   Trf   r(   r)   r;   r   r&   r'   r   )rp   r”   r   r   r   r   r+   r   rZ   r   r   )r   r\   r    r"   r#   r#   r$   Ú(test_replace_compiled_regex_mixed_object   s    
ÿ&r–   c              	   C   sr   t d d¡g| d�}t d d¡g| d�}tjdtjd�}t t| dk¡� |j 	|d¡}W 5 Q R X t 
||¡ d S )	Nri   rj   r   rk   rl   ©rn   r
   rm   )r   ro   rp   r”   rq   r   r   r   r   rZ   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� W 5 Q R X tjt|d�� |jj	|ddd	� W 5 Q R X tjt|d�� |jj	|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;   r—   Fr   T)r   r   r   rp   r”   rx   ry   Ú
ValueErrorr   rZ   Ú
IGNORECASE©r   r\   r   r|   r#   r#   r$   Ú"test_replace_compiled_regex_raises5  s    
rœ   c              	   C   st   t dtjg| d�}dd„ }t d¡}t t| dk¡� |jj	||dd�}W 5 Q R X t d	tjg| d�}t 
||¡ d S )
NrV   r   c                 S   s   |   d¡ ¡ S r   r€   rƒ   r#   r#   r$   r…   J  r†   z6test_replace_compiled_regex_callable.<locals>.<lambda>r‡   r
   rˆ   )r`   r‰   r“   )r   r\   rs   r   r    r"   r#   r#   r$   Ú$test_replace_compiled_regex_callableG  s    
 ÿr�   zregex,expectedZbaoc              	   C   sb   t ddtjg|d�}t ||d�}t t|dko0t¡� |jjdd| d�}W 5 Q R X t 	||¡ d S )Nzf.or   r   r
   zf.r?   r   rY   )r   r"   r   r\   r    r#   r#   r$   Útest_replace_literalT  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…   e  r†   z6test_replace_literal_callable_raises.<locals>.<lambda>z2Cannot use a callable replacement when regex=Falserv   ÚabcFr   )r   rx   ry   r™   r   rZ   )r   r\   rs   r|   r#   r#   r$   Ú$test_replace_literal_callable_raisesc  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   rZ   r›   r#   r#   r$   Ú$test_replace_literal_compiled_raisesl  s
    
r¡   c                 C   s<  t ddddddtjddd	g
| d
�}t t| dko2t¡� |j 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�}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 )Nr6   r7   r8   r9   r:   r;   r<   r=   r>   r   r
   ZYYYZYYYabaZCYYYBYYYFr   Z
YYYYYYbYYYZBYYYcYYYZcYYYtz^.a|dogzXX-XX T©r   r   zXX-XX bazXX-XX cazXX-XX BAzXX-XX trY   r[   r#   r#   r$   Útest_replace_moaru  sl    þ
þþ ÿöó ÿöó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Š   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�}d}tjt|| dkd�� |j d	d¡}W 5 Q R X t dddtjdg| d�}t ||¡ d S )
Nr&   r'   Úacr;   r   zPThe default value of regex will change from True to False in a future version\.$r
   ©rw   Zraise_on_extra_warningsz^.$)	r   r   r   r   Úassert_produces_warningÚFutureWarningr   rZ   r   )r   rA   r|   r    r"   r#   r#   r$   Ú"test_replace_regex_default_warningÅ  s    ÿýr«   c              	   C   sÂ   t dddtjdg|d�}| d krht d¡}|dko4t}tjt|| d�� |j	j
dd	| d
�}W 5 Q R X n2t t|dkoxt¡� |j	j
dd	| d
�}W 5 Q R X t dd	dtjdg|d�}t ||¡ d S )Nza.bÚ.r'   r;   r   zºThe default value of regex will change from True to False in a future version. In addition, single character regular expressions will *not* be treated as literal strings when regex=True.r
   r¨   r&   r   Zaab)r   r   r   rp   Úescaper   r   r©   rª   r   rZ   r   r   r   )r   r   rA   r|   Zpyarrow_warnr    r"   r#   r#   r$   Ú#test_replace_regex_single_character×  s&    ÿ  ÿ
þr®   c              	   C   sÜ  | dkrdnd}t dtjdg| d�}t t| dko4t¡� |j d¡}W 5 Q R X t dtjd	g|d�}t 	||¡ t dd
tjdg| d�}t t| dko–t¡� |j d¡}W 5 Q R X t ddtjd	g|d�}t 	||¡ t t| dkoät¡� |j d¡}W 5 Q R X t d	dtjd	g|d�}t 	||¡ t ddtjdg| d�}t t| dk�oJt¡� |j d¡}W 5 Q R X t d	d	tjd	g|d�}t 	||¡ t t| dk�ošt¡� |j d¡}W 5 Q R X t d	dtjd	g|d�}t 	||¡ d S )Nr   r   rV   r   r   r
   ú.*(BAD[_]+).*(BAD)TFÚBAD_BADleroybrownú.*BAD[_]+.*BADzBAD[_]+.*BADz^BAD_BADleroybrownz^BAD[_]+.*BADz\^BAD[_]+.*BAD)
r   r   r   r   r   r   r   r   rw   r   )r   r!   r   r    r"   r#   r#   r$   Ú
test_matchû  sZ    
þ ÿ
þ
þ ÿþþ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�}t t| dko$t¡� |jjddd�}W 5 Q R X | dkrRtj	nd}t d	ddg|d�}t 
||¡ t t| dko„t¡� |j d¡}W 5 Q R X | dkr¬dnd}t d	dtjg|d�}t 
||¡ d S )
Nr&   r'   r   r
   Fr   r   r   T)r   r   r   r   r   r   r   r   rw   r   r   r@   r#   r#   r$   Útest_match_na_kwargE  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�}t t| dko&t¡� |j d¡}W 5 Q R X | dkrNdnd}t d	d
tjd
g|d�}t 	||¡ d S )NrV   r°   r   r   r
   r±   r   r   TF)
r   r   r   r   r   r   r   r   Ú	fullmatchr   ©r   r\   r    r!   r"   r#   r#   r$   Útest_fullmatchl  s     ÿ
þr¼   c              	   C   s|   t ddtjdg| d�}t t| dko&t¡� |jjddd�}W 5 Q R X | d	krTtj	nd
}t ddddg|d�}t 
||¡ d S )NrV   r°   r   r   r
   r±   Fr   r   r   T)r   r   r   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�}t t| d
koJt¡� |jjddd�}W 5 Q R X 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º   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 )NrV   r   ra   r   rW   ÚBAD__)r   r   r   r   Úfindallr   r   r[   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 )	NrV   r   Tra   r(   r)   rW   r¿   )	r   r   r   r   r+   r   rÀ   r   r   rg   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>à  s     ztest_find.<locals>.<listcomp>é   é   c                 S   s   g | ]}|  d ¡‘qS rÊ   ©ÚrfindrÍ   r#   r#   r$   rÐ   æ  s     c                 S   s   g | ]}|  d d¡‘qS ©rÇ   r2   rË   rÍ   r#   r#   r$   rÐ   ì  s     c                 S   s   g | ]}|  d d¡‘qS rÕ   rÓ   rÍ   r#   r#   r$   rÐ   ò  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Ð   þ  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_raises  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_nan  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   )rA   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 groupsr¨   )r   r   r   r   Úextractrp   rš   ZilocÚtolistr´   r   r   r   rw   rº   rÀ   Úcountr©   ÚUserWarningr   )r   rt   r   Zusing_pyarrowr    r|   r#   r#   r$   Útest_flags_kwargG  s8    ü  ÿrì   )N)?r   rp   Únumpyr   rx   Zpandas.compatr   Zpandas.errorsr   ZpandasÚpdr   r   r   r%   r.   r1   ÚmarkZparametrizeZNAr   r5   rB   rC   rO   rR   rT   rU   r]   rc   rh   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¨   
`
úþ>/

	
 ÿ

 ÿ
		=
#4!&+	$