o
    _~#gX                     @   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	m
Z
 d dlmZ d dl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)NAIndex
RangeIndexSeries	Timestamp)ArrowExtensionArrayFloatingArrayc                  C   s   g d} t | tjdS )N)            l   
        l           l           l           dtype)r   npuint64)large r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/indexes/numeric/test_indexing.pyindex_large   s   r   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	
ddgdgedgdggdd Zej	
dg ddd Zdd ZdS )
TestGetLocc                 C   s"   t g d}|ddksJ d S )Nr         r   )r   get_locselfindexr   r   r   test_get_loc   s   zTestGetLoc.test_get_locc                 C   sN   t g d}tjtdd |ddg W d    d S 1 s w   Y  d S )Nr   z\[1, 2\]matchr   r   )r   pytestraisesr   r   r   r   r   r   test_get_loc_raises_bad_label    s   "z(TestGetLoc.test_get_loc_raises_bad_labelc                 C   s   t g dtjd}tjtdd |d W d    n1 s w   Y  tjtdd |d W d    n1 s<w   Y  tjtdd |d	 W d    n1 sXw   Y  tjtd
d |d W d    d S 1 suw   Y  d S )Ng              ?       @r   z^'foo'$r   fooz^1\.5$      ?z^True$Tz^False$F)r   r   float64r   r   KeyErrorr   r   idxr   r   r   test_get_loc_float64%   s   "zTestGetLoc.test_get_loc_float64c                 C   s  t tjddgtjd}|ddksJ |tjdksJ t tjdtjgtjd}|ddks3J d}tjt|d |tj W d    n1 sMw   Y  t tjdtjtjgtjd}|ddksiJ d}tjt|d |tj W d    d S 1 sw   Y  d S )Nr   r   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   r   nanr&   r   r   r   r'   
slice_locs)r   r)   msgr   r   r   test_get_loc_na1   s   "zTestGetLoc.test_get_loc_nac                 C   s   t ddgtjd}|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 sFw   Y  tjtd	d |tjg W d    d S 1 sew   Y  d S )
Nr   r   r   r   z^3$r      z^nan$z\[nan\])	r   r   r&   r   r   r   r'   r+   r   r(   r   r   r   test_get_loc_missing_nanD   s   "z#TestGetLoc.test_get_loc_missing_nanvalsr   r"   z
2019-12-31testc                 C   sH   t |}tjtdd |tj W d    d S 1 sw   Y  d S )Nr+   r   )r   r   r   r'   r   r   r+   )r   r1   r)   r   r   r   (test_get_loc_float_index_nan_with_methodP   s   "z3TestGetLoc.test_get_loc_float_index_nan_with_methodr   )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 r   Noner   )r   aranger   r   r   r'   r   )r   r   arrr)   r   r   r   %test_get_loc_numericindex_none_raisesW   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   r   iinfoint64maxr   r   r'   strr   _engine)r   r)   valr   r   r   test_get_loc_overflows_   s   "z!TestGetLoc.test_get_loc_overflowsN)__name__
__module____qualname__r   r    r*   r.   r0   r   markparametrizer   r3   r:   rA   r   r   r   r   r      s     

r   c                   @   s8  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d2g d3ejd4d5d6gd7d8 Zejd4g d9d:d; Zd<d= Zd>d? Zd@dA ZdBdC ZdDdE ZejdFdGdHdIefeefgdJdK ZdLdM ZdNdO ZejdPdIdQgdRdS ZejdTdUdVgdWdX Z dYdZ Z!dS )[TestGetIndexerc                 C   sF   t g d}t g d}||}tjg dtjd}t|| d S )Nr   r   r/         r   rI      )r   r/   r   )r   get_indexerr   arrayintptmassert_almost_equal)r   index1index2r1e1r   r   r   test_get_indexerl   s
   
zTestGetIndexer.test_get_indexerreverseTFzexpected,method)rM   r   r   r   r   r   padffill)r   r   r   r   r   backfillbfillc                 C   sV   t g d}t g d}|r|d d d }|d d d }|j||d}t|| d S )NrH   rK   rM   method)r   rN   rQ   rR   )r   rX   expectedr^   rS   rT   resultr   r   r   test_get_indexer_methodst   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   )	tolerancelimit argument)limitr   r   r8   r   r   
ValueErrorrN   r   r   r   r   test_get_indexer_invalid   s   "z'TestGetIndexer.test_get_indexer_invalidz$method, tolerance, indexer, expectedNr   rJ   	   nearestr   皙?g?      !@)r   r      )r   r   rj   )r   r   rj   r   rm   )r   rM   rM   )rM   r   rM   r   r   rM   c                 C   s:   t td}|j|||d}t|tj|tjd d S )Nrb   r^   rc   r   r   r   r8   rN   rQ   assert_numpy_array_equalrO   rP   )r   r^   rc   indexerr_   r   actualr   r   r   test_get_indexer_nearest   s   z'TestGetIndexer.test_get_indexer_nearestlisttypeztolerance, expected)333333?rx   皙?)rm   ry   ry   )ry         ?rz   )rM   r   rj   c                 C   sB   t td}|jg dd||d}t|tj|tjd d S )Nrb   rl   rk   rq   r   rr   )r   rc   r_   rw   r   ru   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 )Nrb   rd   r   r   r   rk   )r^   re   ztolerance size must matchr   r   r/   rq   rf   r   r   r   r   test_get_indexer_nearest_error   s   "z-TestGetIndexer.test_get_indexer_nearest_errorzmethod,expected)ro      r   )rj   ro   r   )rj   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 )Nrb   rM   ri   r]   )rj   rI   r   r   rl   rr   )r   r^   r_   r   ru   r   r   r   #test_get_indexer_nearest_decreasing   s
   z2TestGetIndexer.test_get_indexer_nearest_decreasing	idx_dtype)r<   r&   r   ranger^   rN   get_indexer_non_uniquec                 C   s   |dkr	t d}n	ttjd|d}tg d}t|||}tjg dtjd}|dkr5t|| d S tjdtjd}t|d | t|d	 | d S )
Nr   rI   r   )TFT)rM   rM   rM   rN   r/   r   r   )	r   r   r   r8   getattrrO   rP   rQ   rs   )r   r^   r   numeric_indexotherr`   r_   missingr   r   r   -test_get_indexer_numeric_index_boolean_target   s   
z<TestGetIndexer.test_get_indexer_numeric_index_boolean_target)rY   r[   rk   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   	TypeErrorrN   )r   r^   leftrightr   r   r   ,test_get_indexer_with_method_numeric_vs_bool   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|   TFrM   r   r   )	r   rN   r   oneslenrP   rQ   rs   r   )r   r   r   resr_   r   r   r    test_get_indexer_numeric_vs_bool   s   

z/TestGetIndexer.test_get_indexer_numeric_vs_boolc                 C   s   t g dtj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   r   )grz   g?rY   )rM   r   r   r[   rk   )r   r   r   )r   r   r&   rQ   rs   rN   rO   rP   )r   r)   targetr   r   r   test_get_indexer_float64
  s   z'TestGetIndexer.test_get_indexer_float64c                 C   sB   t ddtjgtjdtjg}tjdgtjd}t|| d S )Nr   r   r   )	r   r   r+   r&   rN   rO   rP   rQ   rs   )r   r`   r_   r   r   r   test_get_indexer_nan  s    z#TestGetIndexer.test_get_indexer_nanc                 C   s   t tdddtjd}t tdtjd}||}tjg dtjd}t	|| t tdtjd}|j|dd}tjg d	tjd}t	|| t tdtjd}|j|d
d}tjg dtjd}t	|| d S )Nr      r   r   rb   )
r   rM   r   rM   r   rM   r/   rM   rI   rM   rY   r]   )
r   r   r   r   r   r   r/   r/   rI   rI   r[   )
r   r   r   r   r   r/   r/   rI   rI   rJ   )
r   r   r   r<   r8   rN   rO   rP   rQ   rs   )r   r   r   rt   r_   r   r   r   test_get_indexer_int64!  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 )Nrb   r   rJ   r
   )
r   rM   r   r   r/   rI   rM   rM   rM   rM   r   rY   r]   )
r   r   r   r   r/   rI   rI   rI   rI   rI   r[   )
r   r   r   r   r/   rI   rM   rM   rM   rM   )	r   r   r8   astyperN   rO   rP   rQ   rs   )r   r   r   rt   r_   r   r   r   test_get_indexer_uint642  s   
z&TestGetIndexer.test_get_indexer_uint64z	val, val2)rI   rJ   )rI   rI   rI   c                 C   sj   t ddd||g|d}|d}|dksJ tjtdd |d W d    d S 1 s.w   Y  d S )Nr   r   r/   r   9r   rj   )r   r   r   r   r'   )r   r@   val2any_numeric_ea_and_arrow_dtyper)   r`   r   r   r   test_get_loc_maskedB  s   
"z"TestGetIndexer.test_get_loc_maskedc                 C   s   t ddtg|d}|t}|dksJ t ddttg|d}|t}t|tg d t g d|d}tjt	dd |t W d    d S 1 sNw   Y  d S )Nr   r   r   )FFTTr|   r   r   )
r   r   r   rQ   rs   r   rO   r   r   r'   )r   r   r)   r`   r   r   r   test_get_loc_masked_naL  s   

"z%TestGetIndexer.test_get_loc_masked_nac                 C   sJ  t ttdddtjgtg dd}|t}|dks J |tj}|dks,J t ttg dtg dd}|t}|dksIJ tjt	dd	 |tj W d    n1 saw   Y  t ttddtjgtg d
d}|tj}|dksJ tjt	dd	 |t W d    d S 1 sw   Y  d S )Nr   r   )FFTF)maskr/   )r   r   r"   )FFTr+   r   )FFFr   )
r   r	   r   rO   r+   r   r   r   r   r'   )r   r)   r`   r   r   r   test_get_loc_masked_na_and_nanZ  s6   

"z-TestGetIndexer.test_get_loc_masked_na_and_nanr@   r   c                 C   sH   t ddtd|g|d}|dtdg}tg d}tj||dd d S )	Nr   r   r/   r   rJ   rp   F)check_dtype)r   r   get_indexer_forr   rO   rQ   rs   )r   r   r@   r)   r`   r_   r   r   r   test_get_indexer_masked_nax  s   z)TestGetIndexer.test_get_indexer_masked_nar   booleanbool[pyarrow]c                 C   sT   |dkr	t d tddtg|d}|d}|dksJ |t}|dks(J d S )Nr   pyarrowTFr   r   r   )r   importorskipr   r   r   )r   r   r)   r`   r   r   r   "test_get_indexer_masked_na_boolean  s   


z1TestGetIndexer.test_get_indexer_masked_na_booleanc           
   	   C   s   t d}tt|jddg|| | d}tdg}||}tjddgtj	d}t
|| ||\}}tjddgtj	dtjdgtj	d}}	t
|| t
||	 d S )Nr   r   r   )typer   rM   r   )r   r   r   r   rO   
dictionaryint8rN   r   r<   rQ   rs   r   )
r   par   r)   r`   r_   result_1result_2
expected_1
expected_2r   r   r   (test_get_indexer_arrow_dictionary_target  s    
 


z7TestGetIndexer.test_get_indexer_arrow_dictionary_target)"rB   rC   rD   rW   r   rE   rF   r   rO   rP   ra   rh   rv   listtupler   zipr{   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rG   k   s    	

	
 
	


	


rG   c                
   @   sf   e Zd Zejdeejdddee	dddej
deejdddgd	d
 Zdd Zdd ZdS )	TestWherer   rJ   r&   r   r   r   r   r   c                 C   sx   dgt | }|}|||}dgdgt |d   }t|jg|dd    tjd}|||}t|| d S )NTFr   r   )	r   wherer   	_na_valuetolistr   r&   rQ   assert_index_equal)r   listlike_boxr   condr_   r`   r   r   r   
test_where  s   	"zTestWhere.test_wherec                 C   sz   t g dtjd}tg d}tjdgtjd}t g dtjd}|||}t|| || |}t|| d S )N)r   rL   r   r   )FTFr   )r   rL   r   )	r   r   r   rO   r<   r   rQ   r   putmask)r   r)   r   r   r_   r`   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stringr   r"   )r   r   r+   notnar   rQ   r   )r   r   r   r   r_   r`   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)rB   rC   rD   r   rE   rF   r   r   r8   r   r<   r   r   r   r   r   r   r   r     s    

r   c                   @   sT   e Zd Zejdejejej	gdd Z
dd Zejdejej	gdd Zd	S )
TestTaker   c                 C   s4   t g d|dd}|g d}|j|jksJ d S )N)r   r   r/   rI   r$   r   name)r/   r   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tjd}|tg d}t g dtjdd}t|| |jtg ddd}t d	d
tjgtjdd}t|| |jtg dddd}t g dtjdd}t|| d}tj	t
|d |jtg ddd W d    n1 sw   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#         @xxx)r   r   r   r   rM   )r#   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   r&   r   rO   rQ   r   r+   r   r   rg   
IndexError)r   r)   r`   r_   r-   r   r   r   test_take_fill_value_float64  s,   "z%TestTake.test_take_fill_value_float64r   c                 C   s  t g d|dd}|tg d}t g d|dd}t|| t|j}d| d}tj	t
|d |jtg dd	d
 W d    n1 sKw   Y  |jtg ddd	d}t 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   r/   zUnable to fill values because z cannot contain NAr   Tr   Fr   r   r   r   r   r   )r   r   r   rO   rQ   r   r   rB   r   r   rg   r   )r   r   r)   r`   r_   r   r-   r   r   r   test_take_fill_value_ints  s,   
"z"TestTake.test_take_fill_value_intsN)rB   rC   rD   r   rE   rF   r   r&   r<   r   r   r   r   r   r   r   r   r     s    
r   c                   @   s>   e Zd Zejdejejej	gdd Z
dd Zdd ZdS )	TestContainsr   c                 C   s    t g d|d}d |vsJ d S )N)r   r   r   r/   rI   r   )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d}tj|v sJ d S Nr"   r#   r   r   r   r+   r&   r   r   r   r   test_contains_float64_nans  s   z'TestContains.test_contains_float64_nansc                 C   s&   t ddtjgtjd}d|v sJ d S r   r   r   r   r   r   test_contains_float64_not_nans  s   z+TestContains.test_contains_float64_not_nansN)rB   rC   rD   r   rE   rF   r   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 )TestSliceLocsr   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   rJ   rL   r~   rj   rb   r   r   startr/   ro   )r/   rL   rJ   rb   end)r   rL   rj   )r   r~   rM   r   rL   r~   )r   rJ   r   r   rO   r   r,   r   r   r   nrT   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   r   g      @g      $@r/   g      @g      %@)r/   ro   rM   rn   r%   r   r   r   r   r   r   r   test_slice_locs_float_locs1  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)rb      r      r   r   r   r/         rM   )r   r   rO   r,   )r   r   r   rT   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   r/   r   )r   rJ   )r   r   r+   r,   r   r   r   r   test_slice_locs_naF  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   r%   r   r   )r   r   r+   r   r   r'   r,   r   r   r   r   test_slice_locs_na_raisesN  s   "z'TestSliceLocs.test_slice_locs_na_raisesN)rB   rC   rD   r   rE   rF   intfloatr   r   r   r   r   r   r   r   r   r     s    



	r   c                   @   sR   e Zd Zejdddgdd Zejdddgejd	d
dgdd ZdS )TestGetSliceBoundszside, expected)r   rI   )r   rJ   c                 C   s*   t td}|jd|d}||ksJ d S )NrL   rI   sider   r   get_slice_bound)r   r   r_   r   r`   r   r   r   test_get_slice_bounds_withinX  s   z/TestGetSliceBounds.test_get_slice_bounds_withinr   r   r   zbound, expected)rM   r   )rb   rL   c                 C   s*   t td}|j||d}||ksJ d S )NrL   r   r   )r   r   r_   boundr   r`   r   r   r   test_get_slice_bounds_outside^  s   z0TestGetSliceBounds.test_get_slice_bounds_outsideN)rB   rC   rD   r   rE   rF   r   r   r   r   r   r   r   W  s    
r   )numpyr   r   pandas.errorsr   pandasr   r   r   r   r   pandas._testing_testingrQ   pandas.core.arraysr   r	   fixturer   r   rG   r   r   r   r   r   r   r   r   r   <module>   s"    
P  7,C8