o
    5cAY                     @   s   d dl Zd dlZd dlmZ d dlmZmZmZm	Z	 d dl
mZ d dlmZmZmZ ejdd ZG dd dZG d	d
 d
ZG dd dZG dd dZG dd dZG dd dZG dd dZdS )    N)InvalidIndexError)Index
RangeIndexSeries	Timestamp)Float64Index
Int64IndexUInt64Indexc                  C   s   g d} t | S )N)            l   
        l           l           l           )r	   )large r   `/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/indexes/numeric/test_indexing.pyindex_large   s   r   c                   @   s&  e Zd Zejdg ddd Zejdg dejddd Zejdg d	ejdd
d Z	ejdg ddd Z
dd Zdd Zdd Zejddd Zdd Zdd Zejddgdgedgdggejdg d d!d" Zejd#g d$d%d& Zd'd( Zd)S )*
TestGetLocmethodNpadbackfillnearestc                 C   s   t g d}|d u rd nt}tj|dd |jd|ddks!J W d    n1 s+w   Y  |rXtj|dd |jd|dddksFJ W d    d S 1 sQw   Y  d S d S )Nr         
deprecatedmatchr   r   r   r   	tolerance)r   FutureWarningtmassert_produces_warningget_loc)selfr   indexwarnr   r   r   test_get_loc   s   "zTestGetLoc.test_get_locz#ignore:Passing method:FutureWarningc                 C   sh   t g d}|rd}t}nd}t}tj||d |jddg|d W d    d S 1 s-w   Y  d S )Nr   znot supported betweenz\[1, 2\]r   r   r   r   )r   	TypeErrorr   pytestraisesr!   )r"   r   r#   msgerrr   r   r   test_get_loc_raises_bad_label(   s   "z(TestGetLoc.test_get_loc_raises_bad_labelz
method,loc)r   r   )r   r   )r   r   c                 C   s<   t g d}|d||ksJ |jd|dd|ksJ d S )Nr   皙?r   r   )r   r!   )r"   r   locr#   r   r   r   test_get_loc_tolerance6   s   z!TestGetLoc.test_get_loc_tolerancer   r   r   c              	   C   s   t g d}tjtdd0 tjtdd |jd|dd W d    n1 s(w   Y  W d    d S W d    d S 1 s@w   Y  d S )Nr   z1.1r   r   r-   g?r.   )r   r'   r(   KeyErrorr   r    r   r!   )r"   r   r#   r   r   r   %test_get_loc_outside_tolerance_raises?   s   "z0TestGetLoc.test_get_loc_outside_tolerance_raisesc              	   C   s   t g d}tjtdd0 tjtdd |jdddd W d    n1 s(w   Y  W d    d S W d    d S 1 s@w   Y  d S )	Nr   must be numericr   r   r-   r   invalidr.   r   r'   r(   
ValueErrorr   r    r   r!   r"   r#   r   r   r   !test_get_loc_bad_tolerance_raisesF   s   "z,TestGetLoc.test_get_loc_bad_tolerance_raisesc                 C   sN   t g d}tjtdd |jddd W d    d S 1 s w   Y  d S )Nr   ztolerance .* valid ifr   r-   r   r.   )r   r'   r(   r7   r!   r8   r   r   r   'test_get_loc_tolerance_no_method_raisesL   s   "z2TestGetLoc.test_get_loc_tolerance_no_method_raisesc              	   C   s   t g d}tjtdd2 tjtdd |jddddgd W d    n1 s*w   Y  W d    d S W d    d S 1 sBw   Y  d S )	Nr   tolerance size must matchr   r   r-   r   r   r.   r6   r8   r   r   r   &test_get_loc_raises_missized_toleranceQ   s   "z1TestGetLoc.test_get_loc_raises_missized_tolerancec                 C   sx  t g d}dD ]}|d|dksJ |d ur$|jd|dddks$J qdD ]\}}|d||ks5J |jd|dd|ksAJ q'tjtd	d
 |d W d    n1 sYw   Y  tjtdd
 |d W d    n1 suw   Y  tjtdd
 |jdddd W d    n1 sw   Y  tjtdd
 |d W d    n1 sw   Y  tjtdd
 |d W d    n1 sw   Y  tjtdd
 |jdddd W d    n1 sw   Y  tjtdd
 |jddtdgd W d    n	1 sw   Y  tjtdd
 |jddtddgd W d    d S 1 s5w   Y  d S )Ng              ?       @r   r   r   r.   r,   r-   g?z^'foo'$r   fooz^1\.5$      ?r   皙?r   z^True$Tz^False$Fr4   gffffff?r   zmust contain numeric elementsz+tolerance size must match target index sizer   )r   r!   r'   r(   r2   r7   nparray)r"   idxr   r/   r   r   r   test_get_loc_float64W   sF   $zTestGetLoc.test_get_loc_float64c                 C   s  t tjddg}|ddksJ |tjdksJ t tjdtjg}|ddks-J d}tjt|d |tj W d    n1 sGw   Y  t tjdtjtjg}|ddks`J d}tjt|d |tj W d    d S 1 s{w   Y  d S )Nr   r   r   z7'Cannot get left slice bound for non-unique label: nan'r   z6'Cannot get left slice bound for non-unique label: nan)r   rC   nanr!   r'   r(   r2   
slice_locs)r"   rE   r)   r   r   r   test_get_loc_nay   s   "zTestGetLoc.test_get_loc_nac                 C   s   t ddg}|ddksJ tjtdd |d W d    n1 s&w   Y  tjtdd |tj W d    n1 sCw   Y  tjtdd |tjg W d    d S 1 sbw   Y  d S )	Nr   r   r   z^3$r      z^nan$z\[nan\])r   r!   r'   r(   r2   rC   rG   r   )r"   rE   r   r   r   test_get_loc_missing_nan   s   "z#TestGetLoc.test_get_loc_missing_nanvalsr   r>   z
2019-12-31test)r   r   r   c              	   C   s   t |}tjtdd0 tjtdd |jtj	|d W d    n1 s&w   Y  W d    d S W d    d S 1 s>w   Y  d S )NrG   r   r   r   )
r   r'   r(   r2   r   r    r   r!   rC   rG   )r"   rL   r   rE   r   r   r   (test_get_loc_float_index_nan_with_method   s   "z3TestGetLoc.test_get_loc_float_index_nan_with_methoddtype)f8i8u8c                 C   sT   t jd|d}t|}tjtdd |d  W d    d S 1 s#w   Y  d S )Ni rO   Noner   )rC   aranger   r'   r(   r2   r!   )r"   rO   arrrE   r   r   r   %test_get_loc_numericindex_none_raises   s
   "z0TestGetLoc.test_get_loc_numericindex_none_raisesc                 C   s   t g d}ttjjd }tjtt|d |	| W d    n1 s(w   Y  tjtt|d |j
	| W d    d S 1 sHw   Y  d S )N)r   r   r   r   r   )r   rC   iinfoint64maxr'   r(   r2   strr!   _engine)r"   rE   valr   r   r   test_get_loc_overflows   s   "z!TestGetLoc.test_get_loc_overflowsN)__name__
__module____qualname__r'   markparametrizer%   filterwarningsr+   r0   r3   r9   r:   r<   rF   rI   rK   r   rN   rW   r^   r   r   r   r   r      s4    





! 
r   c                   @   s  e Zd Zdd Zejdddgejdejg dej	dd	fejg dej	dd
fejg dej	ddfejg dej	ddfgdd Z
dd Zejdd	dg dg dfddg dg dfddg dg dfd	dg dg dfddg dg dfddg dg dfd	dg dg dfddg dg dfddg dg dfd	dg dg dfddg dg dfddg dg dfd	dg dg dfddg dg dfddg dg dfgd d! Zejd"eeeejgejd#eeg d$g d%g d&gg dg dg d'gd(d) Zd*d+ Zejd,d	g d-fdg d.fdg d/fgd0d1 Zejd2eeeegejd3d4d5gd6d7 Zejd3g d8d9d: Zd;d< Zd=d> Zd?d@ ZdAdB ZdCdD ZdS )ETestGetIndexerc                 C   sF   t g d}t g d}||}tjg dtjd}t|| d S )Nr   r   rJ         r   rg      )r   rJ   rS   )r   get_indexerrC   rD   intpr   assert_almost_equal)r"   index1index2r1e1r   r   r   test_get_indexer   s
   
zTestGetIndexer.test_get_indexerreverseTFzexpected,method)rk   r   r   r   r   rS   r   ffill)r   r   r   r   r   r   bfillc                 C   sV   t g d}t g d}|r|d d d }|d d d }|j||d}t|| d S )Nrf   ri   rk   r   )r   rl   r   rn   )r"   rt   expectedr   ro   rp   resultr   r   r   test_get_indexer_methods   s   z'TestGetIndexer.test_get_indexer_methodsc                 C   s   t td}tjtdd |jddgdd W d    n1 s"w   Y  tjtdd |jddgdd W d    d S 1 sCw   Y  d S )	N
   ztolerance argumentr   r   r   r.   limit argument)limitr   rC   rU   r'   r(   r7   rl   r8   r   r   r   test_get_indexer_invalid   s   "z'TestGetIndexer.test_get_indexer_invalidz$method, tolerance, indexer, expectedNr   rh   	   r   r   皙?g?      !@)r   r      )r   r   r   )r   r   r   r   r   )r   rk   rk   )rk   r   rk   )r   r   rk   c                 C   s:   t td}|j|||d}t|tj|tjd d S )Nrz   r   rS   r   rC   rU   rl   r   assert_numpy_array_equalrD   rm   )r"   r   r   indexerrw   r#   actualr   r   r   test_get_indexer_nearest   s   z'TestGetIndexer.test_get_indexer_nearestlisttypeztolerance, expected)333333?r   rB   )r   rB   rB   )rB         ?r   )rk   r   r   c                 C   sB   t td}|jg dd||d}t|tj|tjd d S )Nrz   r   r   r   rS   r   )r"   r   rw   r   r#   r   r   r   r   +test_get_indexer_nearest_listlike_tolerance   s
   z:TestGetIndexer.test_get_indexer_nearest_listlike_tolerancec                 C   s   t td}tjtdd |jddgddd W d    n1 s#w   Y  tjtdd |jddgdg d	d
 W d    d S 1 sGw   Y  d S )Nrz   r{   r   r   r   r   )r   r|   r;   r   r   rJ   r   r}   r8   r   r   r   test_get_indexer_nearest_error  s   "z-TestGetIndexer.test_get_indexer_nearest_errorzmethod,expected)r      r   )r   r   r   )r   r   r   c                 C   st   t tdd d d }|jg d|d}t|tjg dtjd |jg d|d}t|tj|tjd d S )Nrz   rk   r   r   )r   rg   r   rS   r   r   )r"   r   rw   r#   r   r   r   r   #test_get_indexer_nearest_decreasing  s
   z2TestGetIndexer.test_get_indexer_nearest_decreasing	idx_classr   rl   get_indexer_non_uniquec                 C   s   |t d}tg d}t|||}tjg dtjd}|dkr)t|| d S tjdtjd}t|d | t|d | d S )	Nrg   )TFT)rk   rk   rk   rS   rl   rJ   r   r   )	r   r   getattrrC   rD   rm   r   r   rU   )r"   r   r   numeric_indexotherrx   rw   missingr   r   r   -test_get_indexer_numeric_index_boolean_target   s   z<TestGetIndexer.test_get_indexer_numeric_index_boolean_targetr1   c                 C   s   t g d}t ddg}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 sDw   Y  d S )Nr   TFzCannot comparer   r   )r   r'   r(   r&   rl   )r"   r   leftrightr   r   r   ,test_get_indexer_with_method_numeric_vs_bool3  s   "z;TestGetIndexer.test_get_indexer_with_method_numeric_vs_boolc                 C   s   t g d}t ddg}||}dtjt|tjd }t|| ||}dtjt|tjd }t|| ||d }dtjt|tjd }t|| ||d }dtjt|tjd }t|| d S )Nr   TFrk   rS   r   )	r   rl   rC   oneslenrm   r   r   r   )r"   r   r   resrw   r   r   r    test_get_indexer_numeric_vs_bool>  s   

z/TestGetIndexer.test_get_indexer_numeric_vs_boolc                 C   s   t g d}t||tjg dtjd g d}t||dtjg dtjd t||dtjg dtjd t||dtjg d	tjd d S )
Nr=   r   rS   )gr   r-   r   )rk   r   r   r   r   )r   r   r   )r   r   r   rl   rC   rD   rm   )r"   rE   targetr   r   r   test_get_indexer_float64R  s   z'TestGetIndexer.test_get_indexer_float64c                 C   s<   t ddtjgtjg}tjdgtjd}t|| d S )Nr   r   rS   )r   rC   rG   rl   rD   rm   r   r   )r"   rx   rw   r   r   r   test_get_indexer_nanc  s   z#TestGetIndexer.test_get_indexer_nanc                 C   s   t tddd}t td}||}tjg dtjd}t|| t td}|j|dd}tjg d	tjd}t|| t td}|j|d
d}tjg dtjd}t|| d S )Nr      r   rz   )
r   rk   r   rk   r   rk   rJ   rk   rg   rk   rS   r   r   )
r   r   r   r   r   r   rJ   rJ   rg   rg   r   )
r   r   r   r   r   rJ   rJ   rg   rg   rh   )	r   rangerC   rU   rl   rD   rm   r   r   )r"   r#   r   r   rw   r   r   r   test_get_indexer_int64i  s   
z%TestGetIndexer.test_get_indexer_int64c                 C   s   t tddd d }||}tjg dtjd}t|| t tddd d }|j|dd}tjg d	tjd}t|| t tddd d }|j|d
d}tjg dtjd}t|| d S )Nrz   uint64rh   r
   )
r   rk   r   r   rJ   rg   rk   rk   rk   rk   rS   r   r   )
r   r   r   r   rJ   rg   rg   rg   rg   rg   r   )
r   r   r   r   rJ   rg   rk   rk   rk   rk   )	r	   rC   rU   astyperl   rD   rm   r   r   )r"   r   r   r   rw   r   r   r   test_get_indexer_uint64z  s   
z&TestGetIndexer.test_get_indexer_uint64)r_   r`   ra   rs   r'   rb   rc   rC   rD   rm   ry   r~   r   listtupler   zipr   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   re      s|    	

	
 
	

re   c                
   @   s`   e Zd Zejdeejddde	e
dddeejdddgd	d
 Zdd Zdd ZdS )	TestWherer#   rh   float64rS   r   r   r   r   c                 C   sr   dgt | }|}|||}dgdgt |d   }t|jg|dd    }|||}t|| d S )NTFr   )r   wherer   	_na_valuetolistr   assert_index_equal)r"   listlike_boxr#   condrw   rx   r   r   r   
test_where  s   	zTestWhere.test_wherec                 C   sn   t g d}tg d}tjdgtjd}t g d}|||}t|| || |}t|| d S )N)r   rj   r   )FTFr   rS   )r   rj   r   )r	   rC   rD   rY   r   r   r   putmask)r"   rE   maskr   rw   rx   r   r   r   test_where_uint64  s   zTestWhere.test_where_uint64c                 C   sN   t dtjg}| }t ddgdd}t ddg}|||}t|| d S )Nr   abstringrS   r>   )r   rC   rG   notnar   r   r   )r"   r#   r   r   rw   rx   r   r   r   Ctest_where_infers_type_instead_of_trying_to_convert_string_to_float  s   zMTestWhere.test_where_infers_type_instead_of_trying_to_convert_string_to_floatN)r_   r`   ra   r'   rb   rc   r   rC   rU   r   r   r	   r   r   r   r   r   r   r   r     s    

r   c                   @   sJ   e Zd Zejdeeegdd Z	dd Z
ejdeegdd ZdS )	TestTakeklassc                 C   s2   |g ddd}| g d}|j|jksJ d S )N)r   r   rJ   rg   r@   name)rJ   r   r   )taker   )r"   r   r#   takenr   r   r   test_take_preserve_name  s   z TestTake.test_take_preserve_namec                 C   s  t g ddd}|tg d}t g ddd}t|| |jtg ddd}t dd	tjgdd}t|| |jtg dd
dd}t g ddd}t|| d}tjt	|d |jtg ddd W d    n1 sww   Y  tjt	|d |jtg ddd W d    n1 sw   Y  d}tjt
|d |tddg W d    d S 1 sw   Y  d S )N)r>   r?         @xxxr   r   r   rk   )r?   r>   r   T
fill_valuer?   r>   F
allow_fillr   zJWhen allow_fill=True and fill_value is not None, all indices must be >= -1r   r   r   r   r   3index -5 is out of bounds for (axis 0 with )?size 3r   r   )r   r   rC   rD   r   r   rG   r'   r(   r7   
IndexError)r"   rE   rx   rw   r)   r   r   r   test_take_fill_value_float64  s,   "z%TestTake.test_take_fill_value_float64c                 C   s  |g ddd}| tg d}|g ddd}t|| |j}d| d}tjt|d |j tg dd	d
 W d    n1 sGw   Y  |j tg ddd	d}|g ddd}t|| tjt|d |j tg dd	d
 W d    n1 sw   Y  tjt|d |j tg dd	d
 W d    n1 sw   Y  d}tjt	|d | tddg W d    d S 1 sw   Y  d S )Nr   r   r   r   )r   r   rJ   zUnable to fill values because z cannot contain NAr   Tr   Fr   r   r   r   r   r   )
r   rC   rD   r   r   r_   r'   r(   r7   r   )r"   r   rE   rx   rw   r   r)   r   r   r   test_take_fill_value_ints  s,   "z"TestTake.test_take_fill_value_intsN)r_   r`   ra   r'   rb   rc   r   r   r	   r   r   r   r   r   r   r   r     s    
r   c                   @   s8   e Zd Zejdeeegdd Z	dd Z
dd ZdS )	TestContainsr   c                 C   s   |g d}d |vsJ d S )N)r   r   r   rJ   rg   r   )r"   r   r#   r   r   r   test_contains_none  s   zTestContains.test_contains_nonec                 C   s"   t ddtjg}tj|v sJ d S Nr>   r?   r   rC   rG   r8   r   r   r   test_contains_float64_nans  s   z'TestContains.test_contains_float64_nansc                 C   s    t ddtjg}d|v sJ d S r   r   r8   r   r   r   test_contains_float64_not_nans  s   z+TestContains.test_contains_float64_not_nansN)r_   r`   ra   r'   rb   rc   r   r   r	   r   r   r   r   r   r   r   r     s
    
r   c                   @   sj   e Zd Zejdeegdd Zejdeegdd Z	ejdeegdd Z
dd	 Zd
d ZdS )TestSliceLocsrO   c                 C   s   t tjg d|d}t|}|jddd|fksJ |jddd|fks'J |dddks1J |dd	d|fks=J |jdd
dksGJ |jdd
dksQJ |d d d }|dddksbJ |dddkslJ d S )Nr   r   r   rh   rj   r   r   rz   rS   r   startrJ   r   )rJ   rj   rh   rz   end)r   rj   r   )r   r   rk   r   rj   r   )r   rh   r   rC   rD   r   rH   r"   rO   r#   nrp   r   r   r   test_slice_locs  s   zTestSliceLocs.test_slice_locsc                 C   s   t tjg d|d}t|}|ddd|fksJ |dddks%J |d d d	 }|d
ddks6J |dd	d|fksBJ d S )Nr   rS   g      @g      $@rJ   g      @g      %@)rJ   r   rk   r   rA   r   r   r   r   r   r   r   test_slice_locs_float_locs  s   z(TestSliceLocs.test_slice_locs_float_locsc                 C   sx   t tjg d|d}|dddksJ |dddksJ |d d d }|dddks0J |dddks:J d S )N)rz      r      rS   r   r   rJ         rk   )r   rC   rD   rH   )r"   rO   r#   rp   r   r   r   test_slice_locs_dup_numeric'  s   z)TestSliceLocs.test_slice_locs_dup_numericc                 C   sd   t tjddg}|ddksJ |tjdksJ t dtjtjddg}|tjdks0J d S )Nr   r   r   )r   rJ   r   )r   rh   )r   rC   rG   rH   r8   r   r   r   test_slice_locs_na1  s
   z TestSliceLocs.test_slice_locs_nac                 C   s   t tjddg}tjtdd |jdd W d    n1 s w   Y  tjtdd |jdd W d    d S 1 s>w   Y  d S )Nr   r    r   rA   r   r   )r   rC   rG   r'   r(   r2   rH   r8   r   r   r   test_slice_locs_na_raises9  s   "z'TestSliceLocs.test_slice_locs_na_raisesN)r_   r`   ra   r'   rb   rc   intfloatr   r   r   r   r   r   r   r   r   r   
  s    



	r   c                   @   sv   e Zd Zejdg dejdddgdd Zejdg dejdd	d
gejdddgdd ZdS )TestGetSliceBoundskind)getitemr/   Nzside, expected)r   rg   )r   rh   c                 C   sZ   t td}tjtdd |jd||d}W d    n1 s w   Y  ||ks+J d S )Nrj   'kind' argumentr   rg   r   sider   r   r   r    r   get_slice_bound)r"   r   r   rw   r#   rx   r   r   r   test_get_slice_bounds_withinC  s
   z/TestGetSliceBounds.test_get_slice_bounds_withinr   r   r   zbound, expected)rk   r   )rz   rj   c                 C   sZ   t td}tjtdd |j|||d}W d    n1 s w   Y  ||ks+J d S )Nrj   r   r   r   r   )r"   r   r   rw   boundr#   rx   r   r   r   test_get_slice_bounds_outsideL  s
   z0TestGetSliceBounds.test_get_slice_bounds_outsideN)r_   r`   ra   r'   rb   rc   r   r   r   r   r   r   r   B  s    r   )numpyrC   r'   pandas.errorsr   pandasr   r   r   r   pandas._testing_testingr   pandas.core.indexes.apir   r   r	   fixturer   r   re   r   r   r   r   r   r   r   r   r   <module>   s"    
  W,C8