o
    _~#gQ                     @   sR   d dl Zd dlZd dlmZ d dlZd dlmZmZ d dl	m
Z G dd dZdS )    N)ensure_platform_int)Index
RangeIndexc                   @   s$  e Zd Zejdd Zdd Zdd Zdd Zej	
d	ed
dd
dfedd
dd
dfed
dddd
dfedd
ddd
dfgdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zej	
d1edd2dedd3dfededd4d5feddd5edd5d6fedd7d8edd9d8fgd:d; Zd<d= Zd>d? Zd@dA Z ej	
dBdCdDgdEdF Z!dGdH Z"dIdJ Z#dKdL Z$dMdN Z%ej	j
dOeddPddQdRedSd4d8dTdRgdUdVgdWdXdY Z&dZd[ Z'd\d] Z(d^d_ Z)ej	
d`e*e+dadbdh dcdd Z,ej	
deeddfd
geddfd
feddbd6geddbd6fedd5ed5dggeddgfedd
ded
dbgeddbdfedd5ded6dgd5geddgd5fedhd5ded6dgdgedhdgdfedhdiedidjgeddfedhdied5dhgeddfedhdied5d
ged5d
fedhd8ed5d
ge-g dkfed8ed5d
ged5d
fededge-g dlfededd
ed
dmd6geddbfeded5d
ed
dmd6ge-g dnfed8dedd
ed
dmd6ged8dbfed5e-g doge-g dpfed5e-g dqge-g drfed5e-g dsge-g dtfed5de-g dsge-g dsfgdudv Z.dwdx Z/dydz Z0ej	
d{edd4d4edddedd5dedd4d8ed|dad8gd}d~ Z1ej	
dedde-ddggdd Z2dd Z3dd Z4dS )TestRangeIndexc                 C   s   t ddddS )Nr         startstopstep)r   )self r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/indexes/ranges/test_range.pysimple_index   s   zTestRangeIndex.simple_indexc                 C   s0   t dd}tjddgtjd}t|j| d S )N      r   dtype)r   nparrayint64tmassert_numpy_array_equal_datar   resultexpectedr   r   r   test_constructor_unwraps_index   s   
z-TestRangeIndex.test_constructor_unwraps_indexc                 C   s"   |}|d }| |du sJ d S )Nr   F)$_can_hold_identifiers_and_holds_name)r   r   idxkeyr   r   r   test_can_hold_identifiers   s   z(TestRangeIndex.test_can_hold_identifiersc                 C   sB   |}t jtdd ddg|_W d    d S 1 sw   Y  d S )Nz^Lengthmatchrogerharold)pytestraises
ValueErrornamesr   r   indexr   r   r   test_too_many_names   s   "z"TestRangeIndex.test_too_many_nameszindex, start, stop, step   r   r   r   )r   c                 C   s.   |j |ksJ |j|ksJ |j|ksJ d S Nr   )r   r+   r	   r
   r   r   r   r   test_start_stop_step_attrs"   s   z)TestRangeIndex.test_start_stop_step_attrsc                 C   sV   t ddd}| }||usJ ||sJ |jtdddks"J |jdks)J d S )Nr-   Foonamer   r   )r   copy	identical_rangeranger2   )r   ii_copyr   r   r   	test_copy1   s   zTestRangeIndex.test_copyc                 C   s|   t ddd}t|}d}||ksJ t|}tj||dd t ddd}t|}d	}||ks0J t|}tj||dd d S )
Nr-   r0   r1   z/RangeIndex(start=0, stop=5, step=1, name='Foo')Texactr   z$RangeIndex(start=5, stop=0, step=-1))r   reprevalr   assert_index_equal)r   r7   r   r   r   r   r   	test_repr9   s   zTestRangeIndex.test_reprc                 C   s   t ddd}|dd }tj|dd |d|d dd tdtjdd	d
dgtjd}tjd tj	fD ]}t dd|}t|| q3t ddtj
}tdtj
dd	d
dgtd}t|| d S )Nr-   r0   r1   r      r   equivr:   r   r   r   )r   r   r?   insertr   r   nanfloat64pdNANaTobject)r   r   r   r   nar   r   r   test_insertJ   s   $zTestRangeIndex.test_insertc                 C   sl   t tddd}|dd}t tddd}tj||dd |dd}t tdd	d}tj||dd d S )
NrA   	   r   r   Tr:   r   
      r   r6   rC   r   r?   r   r   r   r   r   r   r   &test_insert_edges_preserves_rangeindex[   s   z5TestRangeIndex.test_insert_edges_preserves_rangeindexc                 C   sh   t tddd}|dd}t td}tj||dd |d }|dd}|d }tj||dd d S )Nr   r   r   r   Tr:   rO   rP   r   r   r   'test_insert_middle_preserves_rangeindexf   s   z6TestRangeIndex.test_insert_middle_preserves_rangeindexc                 C   s   t ddd}|dd  }|d}tj||dd |j|jks!J |d d }|d}tj||dd |j|jks<J d	}tjttf|d
 |t	|}W d    d S 1 sZw   Y  d S )Nr-   r0   r1   r   r   Tr:   r<   z/index 5 is out of bounds for axis 0 with size 5r"   )
r   deleter   r?   r2   r&   r'   
IndexErrorr(   len)r   r   r   r   msgr   r   r   test_deleter   s   

"zTestRangeIndex.test_deletec                 C   sZ   t tddd}|dg}t tddd}tj||dd |d}tj||dd d S )Nr   foor1   r   Tr:   r   r6   rS   r   r?   rP   r   r   r    test_delete_preserves_rangeindex   s   
z/TestRangeIndex.test_delete_preserves_rangeindexc                 C   sV   t tddd}|d}|d d d }tj||dd |d}tj||dd d S )	Nr   rX   r1   r   r   Tr:   rY   rP   r   r   r   'test_delete_preserves_rangeindex_middle   s   

z6TestRangeIndex.test_delete_preserves_rangeindex_middlec                 C   sb   t ddd}g d}||}|d d }tj||dd ||d d d }tj||dd d S )	Nr      r   )r   r   rA   r-   r   Tr:   r<   r   rS   r   r?   r   r   locr   r   r   r   r   ,test_delete_preserves_rangeindex_list_at_end      
z;TestRangeIndex.test_delete_preserves_rangeindex_list_at_endc                 C   sb   t ddd}g d}||}t ddd}tj||dd ||d d d }tj||dd d S )	Nr   r]   r   )r   r   r   rA   r-   Tr:   r<   r^   r_   r   r   r   ,test_delete_preserves_rangeindex_list_middle   rb   z;TestRangeIndex.test_delete_preserves_rangeindex_list_middlec                 C   sb   t ddd}g d}||}|d d }tj||dd ||d d d }tj||dd d S )Nr   r]   r   )r   r   r   r   rA   r-   Tr:   r<   r^   r_   r   r   r   $test_delete_all_preserves_rangeindex   rb   z3TestRangeIndex.test_delete_all_preserves_rangeindexc                 C   sb   t ddd}g d}||}tg d}tj||dd ||d d d }tj||dd d S )	Nr   r]   r   )r   r   r-   )r   r   rA   Tr:   r<   )r   rS   r   r   r?   r_   r   r   r   %test_delete_not_preserving_rangeindex   rb   z4TestRangeIndex.test_delete_not_preserving_rangeindexc                 C   s   t ddd}| }|jdksJ |d}t|j| d}tjt|d |t }W d    n1 s6w   Y  t|| d S )Nr   r0   r1   i8/Passing a type in RangeIndex.view is deprecatedr"   )	r   viewr2   r   r   valuesassert_produces_warningFutureWarningr?   )r   r7   i_viewrV   r   r   r   	test_view   s   
zTestRangeIndex.test_viewc                 C   s   |}|j tjks
J d S r.   )r   r   r   r*   r   r   r   
test_dtype   s   zTestRangeIndex.test_dtypec                 C   s  t ddd}|ji ksJ t| |ji ksJ t| |ji ks#J |d |ji ks/J d|v  |ji ks:J d|v  |ji ksEJ |  |ji ksPJ |  |ji ks[J |D ]}q]|ji ksgJ d}tjt	|d |
  W d    n1 sw   Y  |ji ksJ tjd	tdi|d
}t| |ji ksJ |jd  |ji ksJ tjtdd |jd  W d    n1 sw   Y  |ji ksJ |jdd  |ji ksJ |jdd  |ji ksJ |g d d|jvsJ |jdg  d|jvsJ |jg d  d|jvsJ |j t|jtjs$J |j|ju s-J d|jv s5J tjddddd}t|jd | d S )Nr   d   rM   r   Z   [   zRangeIndex.format is deprecatedr"   a)r+   2   513   r-   )r   r   r   r   )r-   r]         rL   r   r   )r   _cacher=   strget_locallanyr   rj   rk   formatrF   	DataFramer6   r`   r&   r'   KeyErroriloctaker   
isinstancer   ndarrayaranger   )r   r   _rV   dfr   r   r   r   
test_cache   sb   


zTestRangeIndex.test_cachec                 C   s  t ddd}|jdu sJ |jdu sJ |jdu sJ |jdu s"J |jdu s)J t ddd}|jdu s6J |jdu s=J |jdu sDJ |jdu sKJ t dd}|jdu sWJ |jdu s^J |jdu seJ |jdu slJ |jdu ssJ t dd}|jdu sJ |jdu sJ |jdu sJ |jdu sJ |jdu sJ t dd}|jdu sJ |jdu sJ |jdu sJ |jdu sJ |jdu sJ d S )	Nr   r   r   TFrA   r<   r   )r   is_monotonic_increasingis_monotonic_decreasing!_is_strictly_monotonic_increasing!_is_strictly_monotonic_decreasingr   r+   r   r   r   test_is_monotonic  s:   


z TestRangeIndex.test_is_monotonicz
left,rightrL   rM   r<   r   rA   ir[   ic                 C   s    | |sJ | |sJ d S r.   )equals)r   leftrightr   r   r   test_equals_rangeB  s   
z TestRangeIndex.test_equals_rangec                 C   s4   |}|  |j  ksJ | |j ksJ d S r.   )r{   ri   r|   )r   r   r   r   r   r   test_logical_compatO  s   z"TestRangeIndex.test_logical_compatc                 C   s   |}t | }||sJ t|trd S t |td}||r#J |jtd}|d}t |td}||jtds?J ||rFJ t |dtd|sRJ |jtd|jddraJ d S )Nr   rX   )r2   r   r   )r   r3   r4   r   r   rI   rename)r   r   r+   r7   same_values_different_typesame_valuesr   r   r   test_identicalT  s   

"zTestRangeIndex.test_identicalc                 C   sB   t dd}|jt|jjd k sJ t dd}|j|jksJ d S )Nr   i  rM   )r   nbytesr   _values)r   r   i2r   r   r   test_nbytesj  s   

zTestRangeIndex.test_nbyteszstart,stop,step)rX   barbaz)012c                 C   sT   dt | d| }tjt|d t||| W d    d S 1 s#w   Y  d S )NzWrong type z for value r"   )typer&   r'   	TypeErrorr   )r   r	   r
   r   rV   r   r   r   test_cant_or_shouldnt_casts  s   
"z)TestRangeIndex.test_cant_or_shouldnt_castc                 C   sF   |}d}t jt|d |t W d    d S 1 sw   Y  d S )Nrg   r"   )r   rj   rk   rh   r   )r   r   r+   rV   r   r   r   test_view_index  s
   "zTestRangeIndex.test_view_indexc                 C   s"   |}| d}|jtjksJ d S )NO)astyper   r   object_r   r   r+   r   r   r   r   test_prevent_casting  s   
z#TestRangeIndex.test_prevent_castingc                 C   s   |}t tt|| d S r.   )r   r?   r>   r=   r*   r   r   r   test_repr_roundtrip  s   z"TestRangeIndex.test_repr_roundtripc                 C   s*   t dddd}|j|dd  jksJ d S )Nr   r   asdfr1   )r   r2   r   r   r   r   r   test_slice_keep_name  s   z#TestRangeIndex.test_slice_keep_namer+   r   rX   )r	   r
   r   r2      r   	index_inc	index_dec)idsc                 C   s   |j sJ |jr
J d S r.   )	is_uniquehas_duplicatesr   r   r   r   test_has_duplicates  s   
	z"TestRangeIndex.test_has_duplicatesc                 C   s   |}| dd}|d |d d |d d  ksJ d|d ks"J | dd}d|d d |d d  ks8J d|d ks@J d S )Nr]   rM   r   r   r   )_extended_gcdr   r   r   r   test_extended_gcd  s   $ z TestRangeIndex.test_extended_gcdc                 C   s   t dddd}d|ksJ t ddd}d|ksJ t dddd}d|ks,J t ddd	d}d|ks;J d
}t d|d d|}||ksNJ d S )Nr   r   r   r   r]   r   r[   r-   r<   l      !;o )r   _min_fitting_element)r   r   big_numr   r   r   test_min_fitting_element  s   z'TestRangeIndex.test_min_fitting_elementc                 C   s  |}d|_ |d }d}||ksJ |d }d}||ksJ |d d  }|}t|| |ddd }tddgdd	}tj||d
d |ddd }tddgdd	}tj||d
d |ddd }tddgdd	}tj||d
d |d d d }t|jd d d dd	}tj||d
d |dd d }tg ddd	}tj||d
d |dd d }ttjg tjddd	}tj||d
d |dd d }t|jdd d dd	}tj||d
d |dd d }t|jd d d dd	}tj||d
d d S )NrX   r   r   r<   r   rv   rM      r1   rB   r:   r[   ro   rA      )rA   r   r   ir   (   )r2   r   r?   r   ri   r   r   r   )r   r   r+   resr   index_slicer   r   r   test_slice_specialised  sF   z%TestRangeIndex.test_slice_specialisedr   r   r]   c                 C   sb   |dkrdnd\}}t |||}t|||}t|t|ks!J t|||}t|dks/J d S )Nr   )r   r-   )r-   r   )r   r   r   rU   )r   r   r	   r
   arrr+   r   r   r   test_len_specialised  s   z#TestRangeIndex.test_len_specialisedzindices, expectedr   rv   r   i)r   r   rA   )r   r   r   r   rw   )r   r   r   rA   r-   )r<   r      )r   r   r   r<   r   r   )r<   @      .@)r   r   r   r<   r   r   )rr   Nr   )r   r   r   rr   Nr   c                 C   s\   |d  |dd  }tj||dd t|dkr,|d  |d }tj||dd d S d S )Nr   r   Tr:   r   )appendr   r?   rU   )r   indicesr   r   result2r   r   r   test_append  s    zTestRangeIndex.test_appendc                 C   s   t ddd}|ddksJ t|ddgttddg tj	t
dd	 |d W d    n1 s8w   Y  d
|jvsDJ tj	t
dd	 |d W d    n1 s[w   Y  d
|jvsgJ d S )Nr   rM   r   r-   r   rw   r   3r"   _enginez'a'rr   )r   rz   r   r   get_indexerr   r   r   r&   r'   r   rx   r   r   r   r   test_engineless_lookup'  s   z%TestRangeIndex.test_engineless_lookupc                 C   s   t d}d}tjt|d | g ksJ W d    n1 s w   Y  tjt|d |jdddgks8J W d    d S 1 sCw   Y  d S )Nr   z RangeIndex\.format is deprecatedr"   Tr1    )r   r   rj   rk   r}   )r   	empty_idxrV   r   r   r   test_format_empty=  s   "z TestRangeIndex.test_format_emptyrir   c                 C   s   | g }tj||dd d S )NTr:   )r   r   r?   )r   r   r   r   r   r   test_append_len_oneF  s   
z"TestRangeIndex.test_append_len_onebasec                 C   s2   t dd}||}tddg}t|| d S )Nr   r   TF)r   isinr   r   r   r   )r   r   ri   r   r   r   r   r   test_isin_rangeU  s   

zTestRangeIndex.test_isin_rangec                    s   dddddd t ddd}|j fddd	}tg d
dd}tj||dd | }|j fddd	}tj|| dd d S )Nr   r   rw   rM   r   )rw   r]   rA   r   r   c                    
   |   S r.   mapx
sort_orderr   r   <lambda>a     
 z5TestRangeIndex.test_sort_values_key.<locals>.<lambda>)r    )r]   rw   rA   r   r   r   r   T)check_exactc                    r   r.   r   r   r   r   r   r   g  r   )r   sort_valuesr   r   r?   	to_seriesassert_series_equal)r   ri   r   r   serr   r   r   r   test_sort_values_key]  s   z#TestRangeIndex.test_sort_values_keyc                 C   s,   dt ddd }t ddd}t|| d S )Nr   r   rA   r   r<   )r   r   r?   r   r   r   r   test_range_index_rsub_by_constj  s   z-TestRangeIndex.test_range_index_rsub_by_constN)5__name__
__module____qualname__r&   fixturer   r   r!   r,   markparametrizer   r/   r9   r@   rK   rQ   rR   rW   rZ   r\   ra   rc   rd   re   rm   rn   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   setr6   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s    

	
	L#
		
	

7
 ""$
 

	







r   )numpyr   r&   pandas.core.dtypes.commonr   pandasrF   r   r   pandas._testing_testingr   r   r   r   r   r   <module>   s    