o
    թZhc                     @   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dd$d4ejdd4ejdd4gfd0d4ejd4d4ejdd4gfgd5d6 Zd7d8 Zd9d: Z d;d< Z!d=d> Z"ejd?d@dAddg dBfdCdAddg dDfd@dAdEdg dFfdCdAdEdg dDfd@dGddHg dDfdCdGd dIg dJfgdKdL Z#dMdN Z$ejdOd@dCgdPdQ Z%ejdRd@g dSgdCg dTggdUdV Z&dWdX Z'ejdYdZdIddd	ejd[gfd dEd\d]d]ejd]gfddd\d^d_ejd`gfdEdadZdbdcejddgfdEd d\dedfejdfgfgdgdh Z(ejdYdZdIddejd	ejejdejejgfddid\djejdkejejdejejgfgdldm Z)ejdndZdEddodpdqd]ejgfdZdEdrdsdtdudrejgfdZdZdrdvdwdxdrejgfdZdidrdvdwdxdrejgfd\ddrdydzd{drejgfdd|drd}d~ddrejgfddHdrddddrejgfddEdrd}dtddrejgfgdd Z*ejdRdddejdggdddejdggdddejdgggdd Z+ejdRddejdggddejdggddejdgggdd Z,ejdRdg 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 Z/dd Z0dd Z1dd Z2dd Z3dd Z4dd Z5ejdddddejdgfddddejdgfgdd Z6ddĄ Z7ddƄ Z8ejdddgdfg dɢdfg dˢdfg d͢dfde ddidigdfgddЄ Z9ejddiejgdfe ddidigdfedigdfgddՄ Z:ddׄ Z;ddل Z<ddۄ Z=dd݄ Z>dd߄ Z?dd Z@dd ZAdd ZBdd ZCdS )    )datetime	timedeltaN)	DataFrameIndex
MultiIndexSeries)StringMethods)object_pyarrow_numpy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   X/var/www/html/lang_env/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v rtjnd}t ddtjd	g|d}t|| d S )
Nr   ZfoofooZ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
   r/   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,   r.   r   r   r   test_count_mixed_object1   s   &r6   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 )Nr0   r1   cdr      aaabbbcccZddd)r!   r"   r9   r#         bbZccccZdddddd)r   r$   r%   r   repeatr(   r)   r+   r   r,   r.   r   r   r   test_repeat;   s   rB   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 )Nr0   r1   Tr   r!   r2   r9   r:   r;   Z	foofoofoor   )
r   r$   r%   r   r3   r   r@   r4   r(   r)   r5   r   r   r   test_repeat_mixed_objectK   s    rC   zarg, repeatr#   r1   c                 C   s@   t d|g| d}|jd|g}t dd g| d}t|| d S )Nr0   r   r9   r:   )r   r   r@   r(   r)   )r+   argr@   r   r,   r.   r   r   r   test_repeat_with_nullU   s   rE   c           	      C   s  t | d }}| tv 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s@J 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   int64r    boolean r0   r1   r9   z^ar   )columnsr   z()T)expandr!   z()()FZaxis*   stop)stepasciiNFC)8r   r	   boolr4   r   r(   r)   r   cattitler&   containsr   r   lowerupperreplacer@   r   Zassert_frame_equalextractZset_axisZ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+   Z	empty_stremptyZ	empty_intZ
empty_boolZempty_objectZempty_bytesZempty_dftabler   r   r   test_empty_str_methods^   s   




r}   zmethod, expectedrm   )
TTTTTFTTFFrn   )
TTTFFFTFFFro   )
FFFTFFFTFFrt   rp   )
FFFFFFFFFTrq   )
FTFFFFFFFFrr   )
TFFFTFTFFFrs   )
TFTFTFFFFFc                    l   t g d|d}|tv rdnd}t ||d}t|j  }t||  fdd|D }t||ks4J d S )N)
Ar1   ZXy4Z3ArH   ZTTZ55-z  r   rR   rG   c                       g | ]}t |  qS r   getattr.0itemmethodr   r   
<listcomp>       z"test_ismethods.<locals>.<listcomp>r   r	   r   r   r(   r)   listr   r.   r+   r   r-   r,   r   r   r   test_ismethods   s    r   )FTTFTTFru   )FTFFFTFc                    r~   )N)r   3   ¼   ★u   ፸   ３fourr   rR   rG   c                    r   r   r   r   r   r   r   r      r   z*test_isnumeric_unicode.<locals>.<listcomp>r   r   r   r   r   test_isnumeric_unicode   s   r   Fc                 C   s\   dt jddt jddg}t||d}|tv rdnd}t||d}t|j|  }t|| d S )	Nr   r   r   r   r   r   r4   rG   )r$   r%   r   r	   r   r   r(   r)   )r   r.   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 )NZa_b_cZc_d_eZf_g_hr   _)
r   r$   r%   r   ra   rZ   astyper4   r(   r)   rA   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!   r2   r   r   )r   r$   r%   r   r3   r   ra   rZ   r4   r(   r)   r5   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v rdnd	}t d
ddtjdddg|d}t|| d S )Nr   ZfoooZfoooooZfooooooozfoo
u   あr   r'   r    r9   r#   r>      r!   )r   r$   r%   r   r[   r	   r(   r)   r*   r   r   r   test_len  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!   r2   r9      )	r   r$   r%   r   r3   r   r[   r(   r)   r5   r   r   r   test_len_mixed#  s   
&r   zmethod,sub,start,end,expectedindexZEF)r#   r9   r!   r   rindex)r#   r=      r#   r9   )r#   r9   r   r#   Er   r=   )r#   r9   r!   r#   c           
         s   |g d|d}|t v rtjnd}|||d}t|j }	|tu r,t|	| nt|	|  fdd|D }t	|	|ksFJ d S )NZABCDEFGZBCDEFEFZ	DEFGHIJEFZEFGHEFr   r    c                    s   g | ]}t | qS r   r   r   endr   startsubr   r   r   F  s    ztest_index.<locals>.<listcomp>)
r	   r$   rF   r   r   r   r(   r)   assert_index_equalr   )
r   r   r   r   index_or_seriesr+   r.   objr-   r,   r   r   r   
test_index,  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   ZDE)r   r   
ValueErrorr   r   )r   r+   r   r   r   r   test_index_not_found_raisesJ  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_raisesR  s
   "r   zmethod, exp)r!   r!   r   )r9   r!   r"   c                 C   s\   t dddtjg| d}| tv rtjnd}t|j|d}t |tjg |d}t|| d S )NZabcbabZbcber   r    r1   )	r   r$   r%   r	   r'   r   r   r(   r)   )r+   r   expr   r-   r,   r.   r   r   r   test_index_missing[  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   ra   r4   r(   r)   rX   rA   r   r   r   test_pipe_failuresk  s   r   zstart, stop, step, expectedr"   ZbazrH   ZowtoofaaZowtrabaaZxuqzabaa
   ZotoZatoZaqxZofaZabac                 C   sB   t ddtjdg|d}|j| ||}t ||d}t|| d S )NaafootwoaabartwoZaabazquxr   )r   r$   r%   r   re   r(   r)   )r   rN   rO   r.   r+   r   r,   r   r   r   
test_slicex  s   r   r!   ZoofZrabc              	   C   sJ   t dtjddt d ddg}|j| ||}t |td}t	|| d S )Nr   r   Tr!   r2   r   )
r   r$   r%   r   r3   r   re   r4   r(   r)   )r   rN   rO   r.   r   r,   r   r   r   test_slice_mixed_object  s   r   zstart,stop,repl,expectedZshrtza it longerZevnlongerthanthatzZshzrtza zit longerZevznlongerthanthatZshzortza zbit longerZevzenlongerthanthatZshorzza bit longezZevenlongerthanthazZzrtZzerZzatr>   Zshortzza bit zngerZevenlozerthanthatiZevenlongzerthanthatc                 C   sD   t ddddtjg|d}t ||d}|j| ||}t|| d S )NZshortza bit longerZevenlongerthanthatrH   r   )r   r$   r%   r   Zslice_replacer(   r)   )r   rN   replr.   r+   r   r,   r   r   r   test_slice_replace  s   r   rf   Zaar?   ccrg   zaa   zbb 
cc  rh   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,   r.   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!   r2   r   )
r   r$   r%   r   r3   r   r   r4   r(   r)   )r   r   r   r,   r.   r   r   r   %test_strip_lstrip_rstrip_mixed_object  s   	"r   )ABC BNSDLDFJH )ZABCxxr   LDFJH xx)ZxxABCxx BNSDr   c                 C   s<   t g d| d}t|j|d}t || d}t|| d S )N)ZxxABCxxr   r   r   x)r   r   r   r(   r)   r   r   r   r   test_strip_lstrip_rstrip_args  s   	r   zprefix, expectedr0   )r1   z b cbcr   )rH   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+   prefixr.   r   r,   ser_expectedr   r   r   test_removeprefix     r   zsuffix, expectedr7   )r   za b r1   r   )r   r   rH   c                 C   r   r   )r   r   removesuffixr(   r)   )r+   suffixr.   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 )NZYYYr   r   Z
YYYYYYbYYYZBYYYcYYYZCYYYBYYYdogZcYYYtr   r   r9   rM   r"   r   )r   rO   )r   r$   r%   r   rj   r(   r)   re   rA   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!   )r9   r#   r=   r!   r"   r#   r   r   r$   r%   r(   r)   r5   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   r1   bar   r!   or0   r   rA   r   r   r   test_string_slice_out_of_bounds  s   
r   c                 C   sH   t g d| djd}|jd}|dd t}t|| d S )N)r0   r1   u   aär   utf-8c                 S   s
   |  dS )Nr   rk   r   r   r   r   <lambda>  s   
 z$test_encode_decode.<locals>.<lambda>)	r   r   rl   rk   mapr   r4   r(   r)   rA   r   r   r   test_encode_decode  s   r   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)r0   r1   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 Nr   r   )rl   r   r   r   r   r   %      z*test_encode_errors_kwarg.<locals>.<lambda>)	r   r   r   UnicodeEncodeErrorr   rl   r   r(   r)   )r+   r   r   r,   r.   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 t}t	
|| d S )N)   a   bs   azS'charmap' codec can't decode byte 0x9d in position 1: character maps to <undefined>r   r   r   c                 S   r   r   r   r   r   r   r   r   4  r   z*test_decode_errors_kwarg.<locals>.<lambda>)r   r   r   UnicodeDecodeErrorr   rk   r   r   r4   r(   r)   )r   r   r,   r.   r   r   r   test_decode_errors_kwarg)  s   r   zform, expectedNFKCr   123	   アイエrQ   	   ＡＢＣ	   １２３	   ｱｲｴc                 C   sL   t dddtjdgg d|d}t |g d|d}|j| }t|| d S )Nr   r   r   r   r0   r1   r7   r8   er   r   )r   r$   r%   r   rx   r(   r)   )formr.   r+   r   r,   r   r   r   test_normalize8  s   r   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   r   r   r   r   r   zinvalid normalization formr   Zxxx)r   r$   r%   r   r   r   r   rx   r+   r   r   r   r   test_normalize_bad_arg_raisesJ  s   "r  c                  C   s4   t g d} t g d}| jd}t|| d S )N)r   r   r   )r   r   r   r   )r   r   rx   r(   r   )idxr.   r,   r   r   r   test_normalize_indexT  s   r  zvalues,inferred_typestring)r0   r1   r!   zmixed-integer)r0   r1   ?mixed)r0   r1   r  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	  ZfloatingZ
datetime64Z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_raisesm  s   "r  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)r0   r1   r  z5Can only use .str accessor with Index, not MultiIndexr   )r   from_tuplesr  r   r   r
  r   )r  r   r   r   r   )test_index_str_accessor_multiindex_raises  s   "r  c                 C   sL   t td| d}tjtdd d|j_W d    d S 1 sw   Y  d S )NZaabbcder   z You cannot add any new attributer   r0   )r   r   r   r   r
  r   Zxlabelr   r   r   r   #test_str_accessor_no_new_attributes  s   
"r  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abcZS1defz9Cannot use .str.cat with values of inferred dtype 'bytes'r   )r   r$   arrayr   r   r4   r   r   r   r   rS   )lhsrhsr   r   r   r   test_cat_on_bytes_raises  s   "r  c                  C   s<   t tdd} tg d}| jdd dd}t|| d S )Nr  r  )zA/DzB/EzC/Fc                 S   s   d | j S )N/)rZ   r   rW   )fr   r   r   r     s    z1test_str_accessor_in_apply_func.<locals>.<lambda>r!   rK   )r   zipr   applyr(   r)   )dfr.   r,   r   r   r   test_str_accessor_in_apply_func  s   r  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1Z1000r   z-01Z001r   r9   -2+5z-0002z+0005r=   )r   r$   r%   r4   r(   r)   r   zfillvaluer.   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 )Nr  r  r0   z#width must be of integer type, not r   )r   r   r   r   r   r   r   r  )r!  Z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-catr  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   rj   r4   r(   r)   )sr,   r.   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   yr4   r   )r   r   rk   r(   r)   )r,   r.   r   r   r   test_series_str_decode  s   r3  )Dr   r   numpyr$   r   Zpandasr   r   r   r   Zpandas._testingZ_testingr(   Zpandas.core.strings.accessorr   Zpandas.tests.stringsr	   markZparametrizer   r   r/   r6   rB   rC   rE   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,  r3  r   r   r   r   <module>   st   





Q






		




	

$$


















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