o
    _~#gȈ                  
   @   s  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  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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#g d&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#g d&d+d, Z!d-d. Z"d/d0 Z#d1d2 Z$d3d4 Z%ejd5dd6d7d8igejd9g d:g d;gd<d= Z&d>d? Z'ejd5d@dA dBdA ddCdAgdDdE Z(dFdG Z)dHdI Z*dJdK Z+dLdM Z,dNdO Z-dPdQ Z.ejdRddSdSejgfddSdejgfgdTdU Z/dVdW Z0dXdY Z1dZd[ Z2d\d] Z3d^d_ Z4ejdddgd`da Z5dbdc Z6ddde Z7dfdg Z8dhdi Z9djdk Z:dldm Z;dndo Z<dpdq Z=drds Z>dtdu Z?dvdw Z@dxdy ZAdzd{ ZBejd|dejCde
Dd}d~gdd ZEdd ZFdd ZGdS )    )datetimeN)PerformanceWarning)Series_testing)_convert_na_valueobject_pyarrow_numpyc                 C   s   | dv S )N)zstring[pyarrow]string[pyarrow_numpy] dtyper	   r	   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/strings/test_find_replace.pyusing_pyarrow   s   r   c                 C   s  t jdt jdddgt jd}t|| d}d}|j|}| tv r"d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g dt
d| d}|j|}| tv rvt 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|}| tv rdnd}tt jd	t jd
d
gt jd|d}t	|| |jj|d	d}| tv 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[_]+barr
   zmmm[_]+objectbooleanFTregex)r   xyzr   r   )FFTT)FooxYzfOOomMm__fOoMMM_zFOO|mmmcase)TFTT)r   r   )TFTFna)nparraynanobject_r   strcontainsr   tmassert_series_equalr   bool_)any_string_dtypevaluespatresultexpected_dtypeexpectedr	   r	   r   test_contains   st   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_mixedg   s   r6   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_categoryx   s   r:   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/   r7   r
   )r   r   TFr   r9   )nullable_string_dtyper   r,   r   r(   r*   r	   r	   r   0test_contains_na_kwarg_for_nullable_string_dtype   s   r=   c                 C   s`  t ddddddtjddd	g
| d
}|jd}| tv rdnd}t ddddddtjdddg
|d
}t|| |jjdd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|| |jd}t ddddddtjdddg
|d
}t|| |jjddd}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   Aaba)r   r   r    r"   r#   r   r$   r%   r'   sr*   r+   r,   r	   r	   r   test_contains_moar   sF   rK   c                 C   s*  t tjtjtjg| d}|jjddd}| tv rtjnd}t g d|d}t|| |jjddd}t g d|d}t|| |jjddd}| d	krWt g d
tj	d}n| dkret g dtjd}nt g ddd}t|| |jd}| tv rd	nd}t tjtjtjg|d}t|| d S )Nr
   r   Fr   r   )FFFT)TTTr   )r   r   r   r   )
r   r   r    r"   r#   r   r&   r$   r%   r!   rI   r	   r	   r   test_contains_nan   s&   rL   r)   r   )r   bazr   r   r8   
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}|d	kr/|tju r/||}n|d	kr=|d u r=d || < 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 Nomfoo_nomnombar_foor   r
   FTr   r   r.   r/   r0   r1   f)r   r"   
startswithr   r    pdNAfillnaisnar$   r%   r   r   r3   r!   
r)   r   rN   r   r(   r*   expr5   rsxpr	   r	   r   test_startswith   s*   $r^   )NTFc              
   C   s   t g d| 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 	N)	rP   NrQ   rR   rS   Nr   r   rege.r
   r   r   FTr   r`   )r   r"   rU   r$   r%   r<   r   r(   r*   r[   r	   r	   r   %test_startswith_nullable_string_dtype     rb   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 || < 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 rO   )r   r"   endswithr   r    rV   rW   rX   rY   r$   r%   r   r   r3   r   rZ   r	   r	   r   test_endswith.  s*   $re   c              
   C   s   t g d| 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 r_   )r   r"   rd   r$   r%   ra   r	   r	   r   #test_endswith_nullable_string_dtypeP  rc   rf   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[_]*rC   Tr   foobarr   r   r    r"   replacer$   r%   r'   serr*   r,   r	   r	   r   test_replaceh  s   rn   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 )Nrg   r
   	foobarBADrh   rC   r0   Tnr   foo__barBADBADFrj   r'   rm   r,   r*   r	   r	   r   test_replace_max_replacementsp  s   ru   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fooBADr0   r1   rh   rC   r   r.   r/   r   r
   )
r   r   r    r   r3   r"   rk   r   r$   r%   rm   r*   r,   r	   r	   r   test_replace_mixed_object|  s    rz   c                 C   s~   t ddg| d}t ddg| d}ttt|  |jjddtj	dd}W d    n1 s2w   Y  t
|| d S )	N   abcd,àutf-8r
      abcd, à(?<=\w),(?=\w), Tflagsr   )r   decoder$   maybe_produces_warningr   r   r"   rk   reUNICODEr%   rt   r	   r	   r   test_replace_unicode  s   r   replr;   r.   r/   data)r.   r/   N)r.   r/   r7   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
   matchr.   )pytestraises	TypeErrorr"   rk   )r'   index_or_seriesr   r   msgobjr	   r	   r   #test_replace_wrong_repl_type_raises  s
   "r   c                 C   s   t dtjg| d}dd }ttt|  |jjd|ddd}W d    n1 s*w   Y  t d	tjg| d}t	|| d S )
Nrg   r
   c                 S      |  d S Nr   groupswapcasemr	   r	   r   <lambda>      z'test_replace_callable.<locals>.<lambda>[a-z][A-Z]{2}   Trp   foObaD__baRbaD
r   r   r    r$   r   r   r   r"   rk   r%   )r'   rm   r   r*   r,   r	   r	   r   test_replace_callable  s   r   c                   C      d S Nr	   r	   r	   r	   r   r         r   c                 C   r   r   r	   )r   xr	   r	   r   r     r   c                 C   r   r   r	   )r   r   yr	   r	   r   r     r   c              	   C   s   t dtjg| d}d}tjt|d2 ttt	|  |j
jd|dd W d    n1 s/w   Y  W d    d S W d    d S 1 sGw   Y  d S )Nrg   r
   zO((takes)|(missing)) (?(2)from \d+ to )?\d+ (?(3)required )positional arguments?r   r.   Tr   )r   r   r    r   r   r   r$   r   r   r   r"   rk   )r'   r   r(   r   r	   r	   r   test_replace_callable_raises  s   "r   c                 C   s   t dtjg| d}d}dd }ttt|  |jj||dd}W d    n1 s+w   Y  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   r   )Nmiddler   r   r	   r	   r   r     r   z4test_replace_callable_named_groups.<locals>.<lambda>Tr   bARr   )r'   rm   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}ttt|  |j	j
|ddd}W d    n1 s*w   Y  t dtjg| d}t|| ttt|  |j	j
|dddd	}W d    n1 s[w   Y  t d
tjg| d}t|| d S )Nrg   r
   BAD_*rC   Tr   ri   r0   rp   ro   r   r   r    r   compiler$   r   r   r   r"   rk   r%   )r'   rm   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   rv   rw   Trx   r0   r1   rC   r   r.   r/   r   r
   )r   r   r   r   r    r   r3   r"   rk   r   r$   r%   )r)   rm   r*   r,   r	   r	   r   (test_replace_compiled_regex_mixed_object  s   
 r   c                 C   s   t ddg| d}t ddg| d}tjdtjd}ttt|  |j	j
|ddd	}W d    n1 s8w   Y  t|| d S )
Nr{   r|   r
   r}   r~   r   r   Tr   )r   r   r   r   r   r$   r   r   r   r"   rk   r%   )r'   rm   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   rC   Tr   Fr   r   )r   r   r    r   r   r   r   
ValueErrorr"   rk   
IGNORECASEr'   rm   r)   r   r	   r	   r   "test_replace_compiled_regex_raises  s   
"r   c                 C   s   t dtjg| d}dd }td}ttt|  |j	j
||ddd}W d    n1 s/w   Y  t d	tjg| d}t|| d S )
Nrg   r
   c                 S   r   r   r   r   r	   r	   r   r     r   z6test_replace_compiled_regex_callable.<locals>.<lambda>r   r   Trp   r   r   )r'   rm   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.rH   r   rj   )r   r,   r'   rm   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   r   r   r   r"   rk   )r'   rm   r   r   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   rC   Fr   )r   r   r   r   r   r   r"   rk   r   r	   r	   r   $test_replace_literal_compiled_raises  s   
"r   c                 C   sD  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t	|  |jjdddd}W d    n1 sKw   Y  t ddddddtjdddg
| d
}t|| ttt	|  |jjddddd}W d    n1 sw   Y  t ddddddtjdddg
| d
}t|| d S )Nr>   r?   r@   rA   rB   rC   rD   rE   rF   r
   YYYYYYabaCYYYBYYYFr   
YYYYYYbYYYBYYYcYYYcYYYtz^.a|dogzXX-XX Tr   zXX-XX bazXX-XX cazXX-XX BAzXX-XX t)
r   r   r    r"   rk   r$   r%   r   r   r   rl   r	   r	   r   test_replace_moar#  s\   r   c                 C   s   t ddddtjg| d}ttt|  |jjddddd	}W d    n1 s)w   Y  t d
d
ddtjg| d}t	|| ttt|  |jjdd
ddd	}W d    n1 s]w   Y  t d
d
ddtjg| d}t	|| d S )NzA.za.Ababr
   r.   r7   Fr   zc.cbr   rl   r	   r	   r   )test_replace_not_case_sensitive_not_regexX  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/   acrC   r
   z^.$Tr   rj   )r'   rJ   r*   r,   r	   r	   r   test_replace_regexg  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/   rC   r
   r.   r   aaaaabrj   )r   r'   rJ   r*   r,   r	   r	   r   #test_replace_regex_single_charactero  s   r   c                 C   s8  | t v 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   rg   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%   )r'   r+   r(   r*   r,   r	   r	   r   
test_match  s.   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   r0   r1   r   F)
r   r   r    r   r3   r"   r   
isinstancer$   r%   r4   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v rtjnd}t g d|d}t|| |jd}| tv r5dnd}t d	dtjg|d}t|| d S )
Nr.   r/   r
   Fr   r   )TFFr   T)	r   r   r    r"   r   r   r&   r$   r%   rI   r	   r	   r   test_match_na_kwarg  s   r   c                 C   sR   t g d| d}|jjddd}| tv 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   sX   t ddtjdg| d}|jd}| tv rdnd}t dd	tjd	g|d}t|| d S )
Nrg   r   r   r
   r   r   r   TFr   r   r    r"   	fullmatchr   r$   r%   r'   rm   r*   r+   r,   r	   r	   r   test_fullmatch  s   r   c                 C   sX   t ddtjdg| d}|jd}| tv rdnd}t ddtjd	g|d}t|| d S )
Nr   zfoo$foozfoo$r
   zfoo\$r   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v rtjnd}t g d	|d}t|| d S )
Nrg   r   r   r
   r   Fr   r   TFFF)	r   r   r    r"   r   r   r&   r$   r%   r   r	   r	   r   test_fullmatch_na_kwarg  s   r   c                 C   s   t g d| d}| tv 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|| tt	t
|  |jjdtjd
}W d    n1 sYw   Y  t|| d S )Nr   r
   r   r   r   Tr   )TTFFFr   )r   r   r   r&   r"   r   r$   r%   r   r   r   r   r   )r'   rm   r+   r,   r*   r	   r	   r   test_fullmatch_case_kwarg  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 )Nrg   r   rs   r
   rh   BAD__)r   r   r    r"   findallr   r$   r%   rl   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 )	Nrg   r   Trs   r0   r1   rh   r   )	r   r   r    r   r3   r"   r   r$   r%   ry   r	   r	   r   test_findall_mixed_object  s4   r   c                 C   sr  t g d| d}| tv 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)   r;   r0   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   E  r   r;   )r   r;   r   r   r   c                 S      g | ]}| d dqS r   r;   r   r   r	   r	   r   r   K      c                 S   r   r   r   r   r	   r	   r   r   Q  r      )r   r;   r   r   r   c                 S      g | ]	}| d ddqS r   r;   r   r   r   r	   r	   r   r   W      c                 S   r  r  r   r   r	   r	   r   r   ]  r  )r   r   r   int64r"   r   r$   r%   r   assert_numpy_array_equalr   r'   rm   r+   r*   r,   r	   r	   r   	test_find6  sD         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   r   r   r   r"   r   r   )r'   rm   r	   r	   r   test_find_bad_arg_raisesa  s   "r  c                 C   sh  t dtjdtjdg| d}| tv 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   r0   r   r   r;   r   )
r   r   r    r   float64r"   r   r$   r%   r   r  r	   r	   r   test_find_nanj  s,   r
  infer_stringpyarrow)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   r  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/   r7   g333333?r   r  r7   der
   )	r   r"   r  r   r    r   r  r$   r%   )rJ   r  r,   r*   r	   r	   r   test_translate_mixed_object  s
   r  c                 C   s  dddt jd}t|| d}d}t| }|jj|tjdd}|jd	 	 g d
ks+J t
t| |jj|tjd}W d    n1 sEw   Y  |jd	 sQJ t
t| |jj|tjd}W d    n1 skw   Y  |jd	 swJ |jj|tjd}|jd	 d	 d
ksJ |jj|tjd}|jd	 dksJ d}t
jt|| d |jj|tjd}W d    n1 sw   Y  |jd	 sJ 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)r   expandr   )davegooglecomr   r0   zhas match groups)r   raise_on_extra_warnings)r   r    r   r   r"   extractr   r   iloctolistr$   r   r   r   r   r   countassert_produces_warningUserWarningr#   )r'   r   r)   use_pyarrowr*   r   r	   r	   r   test_flags_kwarg  s:   r/  r   )Hr   r   numpyr   r   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasrV   r   r   r$   pandas.tests.stringsr   r   r   r-   r6   r:   markparametrizerW   r    r=   rK   rL   r^   rb   re   rf   rn   ru   rz   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_nor  r  r/  r	   r	   r	   r   <module>   s    
J
,!


	 
		5
 	
&+	$
