o
    vhj                     @   s  d dl m Z mZ d dlZd dlZd dlmZmZmZm	Z	 d dl
mZ d dlmZ d dlmZ ejdd de	dd	ggd
d Zdd Zdd Zdd Zdd Zdd Zejdddgddggdd Zdd Zejddg dfd g d!fd"g d#fd$g d#fd%g d&fd'g d(fd)g d*fd+g d,fgd-d. Zejdd$g d/fd0g d1fgd2d3 Zejd4ejdd$d5ejdd5ejdd5gfd0d5ejd5d5ejdd5gfgd6d7 Zd8d9 Z d:d; Z!d<d= Z"d>d? Z#ejd@dAdBddg dCfdDdBddg dEfdAdBdFdg dGfdDdBdFdg dEfdAdHddIg dEfdDdHd dJg dKfgdLdM Z$dNdO Z%ejdPdAdDgdQdR Z&ejdSdAg dTgdDg dUggdVdW Z'dXdY Z(ejdZd[dJddd	ejd\gfd dFd]d^d^ejd^gfddd]d_d`ejdagfdd[d]dbdcejddgfdFded[dfdgejdhgfdFd d]didjejdjgfgdkdl Z)ejdZd[dJddejd	ejejdejejgfddmd]dnejdoejejdejejgfgdpdq Z*ejdrd[dFddsdtdud^ejgfd[dFdvdwdxdydvejgfd[d[dvdzd{d|dvejgfd[dmdvdzd{d|dvejgfd]ddvd}d~ddvejgfdddvddddvejgfddIdvddddvejgfddFdvddxddvejgfgdd Z+ejdSdddejdggdddejdggdddejdgggdd Z,ejdSddejdggddejdggddejdgggdd Z-ejdSdg dgdg dgdg dggdd Z.ejddg dfdg dfgdd Z/ejddg dfdg dfgdd Z0dd Z1dd Z2dd Z3dd Z4dd Z5dd Z6dd Z7dd Z8dd Z9ejdddddejdgfddddejdgfgdd̄ Z:dd΄ Z;ddЄ Z<ejdddgdfg dӢdfg dբdfg dעdfde ddmdmgdfgddڄ Z=ejddmejgdfe ddmdmgdfedmgdfgdd߄ Z>dd Z?dd Z@dd ZAdd ZBdd ZCdd ZDdd ZEdd ZFdd ZGdS )    )datetime	timedeltaN)	DataFrameIndex
MultiIndexSeries)StringMethods)is_object_or_nan_string_dtypepatternTfoobarc                 C   s   t ddg}dt| j }tjt|d |j|  W d    n1 s&w   Y  tjt|d |j|  W d    d S 1 sDw   Y  d S )Nr   r   z expected a string or tuple, not match)	r   type__name__pytestraises	TypeErrorstr
startswithendswith)r
   sermsg r   _/var/www/html/hyperkenya/venv/lib/python3.10/site-packages/pandas/tests/strings/test_strings.py)test_startswith_endswith_non_str_patterns   s   "r   c                  C   sJ   t ddg} tjtdd t| j W d    d S 1 sw   Y  d S )Nr   r   z&'StringMethods' object is not iterabler   )r   r   r   r   iterr   )r   r   r   r   test_iter_raises   s   "r   c                 C   sZ   t ddtjdg| d}|jd}t| rtjnd}t ddtjd	g|d}t|| d S )
Nr   foofoofoooofooofommmfoodtypezf[o]+Int64         )	r   npnanr   countr	   float64tmassert_series_equalany_string_dtyper   resultexpected_dtypeexpectedr   r   r   
test_count)   s   r1   c               
   C   sf   t dtjddt dd ddg	td} | jd}t dtjdtjtjdtjtjtjg	}t	|| d S )	NabTr   r#          @r    r   )
r   r&   r'   r   todayobjectr   r(   r*   r+   r   r.   r0   r   r   r   test_count_mixed_object3   s   &r8   c                 C   s   t ddtjdtjdg| d}|jd}t ddtjd	tjd
g| d}t|| |jg d}t ddtjdtjdg| d}t|| d S )Nr2   r3   cdr       aaabbbcccddd)r#   r$   r;   r%         bbccccdddddd)r   r&   r'   r   repeatr*   r+   r-   r   r.   r0   r   r   r   test_repeat=   s   rG   c               
   C   sd   t dtjddt dd ddg	} | jd}t dtjd	tjtjd
d tjtjg	td}t	|| d S )Nr2   r3   Tr   r#   r4   r;   r<   r=   	foofoofoor    )
r   r&   r'   r   r5   r   rE   r6   r*   r+   r7   r   r   r   test_repeat_mixed_objectM   s    rI   zarg, repeatr%   r3   c                 C   s@   t d|g| d}|jd|g}t dd g| d}t|| d S )Nr2   r    r;   r<   )r   r   rE   r*   r+   )r-   argrE   r   r.   r0   r   r   r   test_repeat_with_nullW   s   rK   c           
      C   s  t | d }}t dd}t| rt dd}t td}n
t dd}t dd}t td}t td}t }t||j| d|j ksEJ t||j	  t||j
d t||jd t||jd t||jd t||j  t||j  t||jdd t||jd	 t||jd
 ttdg| d|jjddd ttddg| d|jjddd t||jjddd ttddg| d|jjddd t|jg dd|j  t||jd t||j  t||jd t||jd t||jd t||jd t||jd t||jd t||jd t||jj ddd t||j d t||jj!ddd t||j!d t||jj"dd t||jj"dd t||j#  t||j$  t||j%  t||j&d t||j'd t||j(d t||j)d t||j*  t||j+  t||j,  t||j-  t||j.  t||j/  t||j0  t||j1  t||j2  t||j3  t||j4  t||j5d t6dd}	t||j7|	 d S )Nr    r   int64r"   boolean r2   r3   r;   z^ar   )columnsr!   z()T)expandr#   z()()Faxis*   stop)stepasciiNFC)8r   r	   boolr6   r   r*   r+   r   cattitler(   containsr   r   lowerupperreplacerE   r   assert_frame_equalextractset_axisget_dummiesjoinlenfindallfindrfindpadcentersplitrsplit	partition
rpartitionslicestriplstriprstripwrapgetdecodeencodeisalnumisalphaisdigitisspaceislowerisupperistitle	isnumeric	isdecimal
capitalizeswapcase	normalize	maketrans	translate)
r-   	empty_stremptyempty_inferred_str	empty_int
empty_boolempty_objectempty_bytesempty_dftabler   r   r   test_empty_str_methods`   s   





r   zmethod, expectedrw   )
TTTTTFTTFFrx   )
TTTFFFTFFFry   )
FFFTFFFTFFr~   rz   )
FFFFFFFFFTr{   )
FTFFFFFFFFr|   )
TFFFTFTFFFr}   )
TFTFTFFFFFc                    s   t g d|d}t|rdnd}t ||d}t|j  }t||  fdd|D }t||ks4J tj|j	g d< t|j  }|j
dkrW|t}tj|j	g d< d S |j
d	kred
|j	g d< d S tj|j	g d< d S )N)
Ar3   Xy43ArN   TT55-z  r    rY   rM   c                       g | ]}t |  qS r   getattr.0itemmethodr   r   
<listcomp>       z"test_ismethods.<locals>.<listcomp>)r#   r$   r;   r%   r6   r   F)r   r	   r   r   r*   r+   listr&   r'   ilocr!   astyper6   )r   r0   r-   r   r/   r.   expected_stdlibr   r   r   test_ismethods   s$    


r   )FTTFTTFr   )FTFFFTFc                    sl   t g d|d}t|rdnd}t ||d}t|j  }t||  fdd|D }t||ks4J d S )N)r   3   ¼   ★u   ፸   ３fourr    rY   rM   c                    r   r   r   r   r   r   r   r     r   z*test_isnumeric_unicode.<locals>.<listcomp>)r   r	   r   r   r*   r+   r   )r   r0   r-   r   r/   r.   r   r   r   test_isnumeric_unicode   s   r   z4ignore:Downcasting object dtype arrays:FutureWarningFc                 C   s~   dt jddt jddg}t||d}|dkr"t|tddt}nt|r(d	nd
}t||d}t|j	|  }t
|| d S )Nr   r   r   r   r   r    r   Fr6   rM   )r&   r'   r   r6   fillnar   rY   r	   r   r   r*   r+   )r   r0   r-   valuesr   r/   r.   r   r   r   test_isnumeric_unicode_missing	  s   	r   c                 C   sD   t ddtjdg| d}|jdjd}|t}t	|| d S )Na_b_cc_d_ef_g_hr    _)
r   r&   r'   r   rk   rd   r   r6   r*   r+   rF   r   r   r   test_spilt_join_roundtrip   s   
r   c               
   C   sl   t dtjddt dd ddg	} | jdjd}t dtjdtjtjdd tjtjg	td}t	
|| d S )	Na_basdf_cas_asdfTr   r#   r4   r   r    )r   r&   r'   r   r5   r   rk   rd   r6   r*   r+   r7   r   r   r   &test_spilt_join_roundtrip_mixed_object'  s   r   c                 C   sb   t dddtjdddg| d}|j }t| rdnd	}t d
ddtjdddg|d}t|| d S )Nr   fooofooooofooooooozfoo
u   あr    r)   r"   r;   r%   rA      r#   )r   r&   r'   r   re   r	   r*   r+   r,   r   r   r   test_len3  s   
r   c               
   C   s`   t dtjddt dd ddg	} | j }t dtjdtjtjdtjtjtjg	}t|| d S )	Nr   r   Tr   r#   r4   r;      )	r   r&   r'   r   r5   r   re   r*   r+   r7   r   r   r   test_len_mixed@  s   
&r   zmethod,sub,start,end,expectedindexEF)r%   r;   r#   r   rindex)r%   r@      r%   r;   )r%   r;   r   r%   Er   r@   )r%   r;   r#   r%   c           
         s   |g d|d}t |rtjnd}|||d}t|j }	|tu r,t|	| nt|	|  fdd|D }t	|	|ksFJ d S )NABCDEFGBCDEFEF	DEFGHIJEFEFGHEFr    r"   c                    s   g | ]}t | qS r   r   r   endr   startsubr   r   r   e  s    ztest_index.<locals>.<listcomp>)
r	   r&   rL   r   r   r   r*   r+   assert_index_equalr   )
r   r   r   r   index_or_seriesr-   r0   objr/   r.   r   r   r   
test_indexI  s   r   c                 C   sP   | g d|d}t jtdd |jd W d    d S 1 s!w   Y  d S )Nr   r    zsubstring not foundr   DE)r   r   
ValueErrorr   r   )r   r-   r   r   r   r   test_index_not_found_raisesi  s   "r   r   c                 C   sT   | g |d}d}t jt|d t|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   r   r   r   r   r   test_index_wrong_type_raisesq  s
   "r   zmethod, exp)r#   r#   r   )r;   r#   r$   c                 C   s\   t dddtjg| d}t| rtjnd}t|j|d}t |tjg |d}t|| d S )Nabcbabbcber    r"   r3   )	r   r&   r'   r	   r)   r   r   r*   r+   )r-   r   expr   r/   r.   r0   r   r   r   test_index_missingz  s   r   c                 C   sh   t dg| d}|jd}t g dgtd}t|| |jjdddd}t dg| d}t|| d S )	NzA|B|Cr    |)r   BC F)regexzA B C)r   r   rk   r6   r*   r+   r_   rF   r   r   r   test_pipe_failures  s   r   zstart, stop, step, expectedr$   bazrN   owtoofaaowtrabaaxuqzabaaowtooowtraxuqza
   otoatoaqxofaabac                 C   sB   t ddtjdg|d}|j| ||}t ||d}t|| d S )Naafootwoaabartwoaabazquxr    )r   r&   r'   r   ro   r*   r+   )r   rU   rV   r0   r-   r   r.   r   r   r   
test_slice  s   r   r#   oofrabc              	   C   sJ   t dtjddt d ddg}|j| ||}t |td}t	|| d S )Nr   r   Tr#   r4   r    )
r   r&   r'   r   r5   r   ro   r6   r*   r+   )r   rU   rV   r0   r   r.   r   r   r   test_slice_mixed_object  s   r   zstart,stop,repl,expectedshrtza it longerevnlongerthanthatzshzrtza zit longerevznlongerthanthatshzortza zbit longerevzenlongerthanthatshorzza bit longezevenlongerthanthazzrtzerzatrA   shortzza bit zngerevenlozerthanthatievenlongzerthanthatc                 C   sD   t ddddtjg|d}t ||d}|j| ||}t|| d S )Nshortza bit longerevenlongerthanthatrN   r    )r   r&   r'   r   slice_replacer*   r+   )r   rU   replr0   r-   r   r.   r   r   r   test_slice_replace  s   r  rp   aarB   ccrq   zaa   zbb 
cc  rr   z  aaz bbc                 C   s@   t ddtjdg| d}t|j| }t || d}t|| d S )Nz  aa   z bb 
r
  r    )r   r&   r'   r   r   r*   r+   r-   r   r   r   r.   r0   r   r   r   test_strip_lstrip_rstrip  s   	r  zaa  zbb 	
c              	   C   s^   t dtjddt d ddg}t|j|  }t |tjtjd tjtjg td}t	|| d S )Nz  aa  z bb 	
Tr#   r4   r    )
r   r&   r'   r   r5   r   r   r6   r*   r+   )r   r   r   r.   r0   r   r   r   %test_strip_lstrip_rstrip_mixed_object  s   	"r  )ABC BNSDLDFJH )ABCxxr  LDFJH xx)xxABCxx BNSDr  c                 C   s<   t g d| d}t|j|d}t || d}t|| d S )N)xxABCxxr  r  r    x)r   r   r   r*   r+   r  r   r   r   test_strip_lstrip_rstrip_args  s   	r  zprefix, expectedr2   )r3   z b cbcr   )rN   a b cr  c                 C   8   t g d| d}|j|}t || d}t|| d S N)r   r  r  r    )r   r   removeprefixr*   r+   )r-   prefixr0   r   r.   ser_expectedr   r   r   test_removeprefix      r  zsuffix, expectedr9   )r   za b r3   r  )r   r  rN   c                 C   r  r  )r   r   removesuffixr*   r+   )r-   suffixr0   r   r.   r  r   r   r   test_removesuffix
  r   r#  c              
   C   s   t dddddtjdddg	| d	}|jd
 }|jd
}t|| |jd d }|jjdd}t|| |jdd d }|jjddd}t|| d S )NYYYr   r   
YYYYYYbYYYBYYYcYYYCYYYBYYYdogcYYYtr    r   r;   rT   r$   r   )r   rV   )r   r&   r'   r   rt   r*   r+   ro   rF   r   r   r   test_string_slice_get_syntax  s   
r*  c                  C   s6   t g d} | jd }t dtjdg}t|| d S )N))r#   r$   )r#   )r;   r%   r@   r#   r$   r%   r   r   r&   r'   r*   r+   r7   r   r   r   &test_string_slice_out_of_bounds_nested'  s   
r,  c                 C   s>   t g d| d}|jd }t dtjdg| d}t|| d S )N)r   r3   bar    r#   or2   r+  rF   r   r   r   test_string_slice_out_of_bounds.  s   
r/  c                 C   sD   t g d| djd}|jd}t g ddd}t|| d S )N)r2   r3   u   aär    utf-8r   )r   r   rv   ru   r*   r+   rF   r   r   r   test_encode_decode5  s   r1  c                 C   sz   t g d| d}d}tjt|d |jd W d    n1 s"w   Y  |jdd}|dd }t|| d S )	N)r2   r3   u   ar    z['charmap' codec can't encode character '\\x9d' in position 1: character maps to <undefined>r   cp1252ignorec                 S      |  ddS Nr2  r3  )rv   r  r   r   r   <lambda>G      z*test_encode_errors_kwarg.<locals>.<lambda>)	r   r   r   UnicodeEncodeErrorr   rv   mapr*   r+   )r-   r   r   r.   r0   r   r   r   test_encode_errors_kwarg<  s   r;  c                  C   s|   t g d} d}tjt|d | jd W d    n1 s w   Y  | jdd}| dd d}t	|| d S )	N)   a   bs   azS'charmap' codec can't decode byte 0x9d in position 1: character maps to <undefined>r   r2  r3  c                 S   r4  r5  )ru   r6  r   r   r   r7  V  r8  z*test_decode_errors_kwarg.<locals>.<lambda>r   )
r   r   r   UnicodeDecodeErrorr   ru   r:  r   r*   r+   )r   r   r.   r0   r   r   r   test_decode_errors_kwargK  s   r?  c                 C   <   t ddg}|jjd| d}t ddg| d}t|| d S )Nr<  r=  r0  r    r2   r3   r   r   ru   r*   r+   )string_dtyper   r.   r0   r   r   r   test_decode_string_dtypeZ     rC  c                 C   r@  )Nr<  s   \ud800r0  r    r2   z\ud800rA  )object_dtyper   r.   r0   r   r   r   test_decode_object_dtypeb  rD  rF  c                  C   sT   t ddg} d}tjt|d | jjddd W d    d S 1 s#w   Y  d S )Nr<  r=  z1dtype must be string or object, got dtype='int64'r   r0  rL   r    )r   r   r   r   r   ru   )r   r   r   r   r   test_decode_bad_dtypej  s
   "rG  zform, expectedNFKCr  123	   アイエrX   	   ＡＢＣ	   １２３	   ｱｲｴc                 C   sL   t dddtjdgg d|d}t |g d|d}|j| }t|| d S )Nr  rK  rL  rM  r2   r3   r9   r:   er   r!   )r   r&   r'   r   r   r*   r+   )formr0   r-   r   r.   r   r   r   test_normalizer  s   rR  c                 C   s^   t dddtjdgg d| d}tjtdd |jd	 W d    d S 1 s(w   Y  d S )
Nr  rK  rL  rM  rN  rP  zinvalid normalization formr   xxx)r   r&   r'   r   r   r   r   r   r-   r   r   r   r   test_normalize_bad_arg_raises  s   "rU  c                  C   s4   t g d} t g d}| jd}t|| d S )N)rK  rL  rM  )r  rI  rJ  rH  )r   r   r   r*   r   )idxr0   r.   r   r   r   test_normalize_index  s   rW  zvalues,inferred_typestring)r2   r3   r#   zmixed-integer)r2   r3   ?mixed)r2   r3   rY  r#   i  c                 C   s2   || }|t u r|j|ksJ t|jtsJ d S )N)r   inferred_type
isinstancer   r   )r   r[  r   r   r   r   r   "test_index_str_accessor_visibility  s   r]  floating
datetime64timedelta64c                 C   s\   || }|t u r|j|ksJ d}tjt|d |j W d    d S 1 s'w   Y  d S )Nz-Can only use .str accessor with string valuesr   )r   r[  r   r   AttributeErrorr   )r   r[  r   r   r   r   r   r   0test_index_str_accessor_non_string_values_raises  s   "rb  c                  C   sZ   t ddg} | jdksJ d}tjt|d | j W d    d S 1 s&w   Y  d S )N)r2   r3   rZ  z5Can only use .str accessor with Index, not MultiIndexr   )r   from_tuplesr[  r   r   ra  r   )rV  r   r   r   r   )test_index_str_accessor_multiindex_raises  s   "rd  c                 C   sL   t td| d}tjtdd d|j_W d    d S 1 sw   Y  d S )Naabbcder    z You cannot add any new attributer   r2   )r   r   r   r   ra  r   xlabelrT  r   r   r   #test_str_accessor_no_new_attributes  s   
"rg  c                  C   sx   t ttddt} t ttddt}d}tjt|d | j	
| W d    d S 1 s5w   Y  d S )NabcS1defz9Cannot use .str.cat with values of inferred dtype 'bytes'r   )r   r&   arrayr   r   r6   r   r   r   r   rZ   )lhsrhsr   r   r   r   test_cat_on_bytes_raises  s   "rn  c                  C   s<   t tdd} tg d}| jdd dd}t|| d S )Nrh  rj  )zA/DzB/EzC/Fc                 S   s   d | j S )N/)rd   r   r^   )fr   r   r   r7    s    z1test_str_accessor_in_apply_func.<locals>.<lambda>r#   rQ   )r   zipr   applyr*   r+   )dfr0   r.   r   r   r   test_str_accessor_in_apply_func  s   rt  c                  C   sr   t ddddtjg} t dddtjtjgtd}t| jd| t d	d
g} t ddg}t| jd| d S )N-111000r   z-01001r    r;   -2+5z-0002z+0005r@   )r   r&   r'   r6   r*   r+   r   zfillvaluer0   r   r   r   
test_zfill  s   r~  c                  C   s`   t ddg} d}dt|j }tjt|d | j| W d    d S 1 s)w   Y  d S )Nry  rz  r2   z#width must be of integer type, not r   )r   r   r   r   r   r   r   r{  )r}  widr   r   r   r   $test_zfill_with_non_integer_argument  s   "r  c                  C   s0   t g d} t g d}t| jd| d S )N)z-catru  z+dog)z-0catz-0001z+0dogr@   )r   r*   r+   r   r{  r|  r   r   r   test_zfill_with_leading_sign  s   r  c                  C   sr   t ddddddddig} | jd}t g d	td
}t|| | jd}t g dtd
}t|| d S )NHelloWorld)namer}  GoodbyePlanetr}  Sear  )r  r  Nr    )r  r  r  )r   r   rt   r6   r*   r+   )sr.   r0   r   r   r   test_get_with_dict_label  s   r  c                  C   s8   t ddgjjddd} t ddgdd	}t| | d S )
N   x   yzUTF-8strict)encodingerrorsr  yr   r    rA  )r.   r0   r   r   r   test_series_str_decode  s   r  )Hr   r   numpyr&   r   pandasr   r   r   r   pandas._testing_testingr*   pandas.core.strings.accessorr   pandas.tests.stringsr	   markparametrizer   r   r1   r8   rG   rI   rK   r   r   r   filterwarningsr'   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r#  r*  r,  r/  r1  r;  r?  rC  rF  rG  rR  rU  rW  r]  rb  rd  rg  rn  rt  r~  r  r  r  r  r   r   r   r   <module>   s~   






R






	





$$




















