o
    5cN                     @   sx   d dl Zd dlZd dlm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 eZeZeZeZG dd deZdS )    N)ensure_platform_int)Float64IndexIndex
Int64Index
RangeIndex)NumericBasec                   @   s  e Zd ZeZejdd Zejg dddd Zejde	fdd	Z
ejed
ddddedddddgddgd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ejd$g d%d&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Zd@dA ZdBdC Z dDdE Z!dFdG Z"dHdI Z#dJdK Z$dLdM Z%dNdO Z&ejdPdQdRgdSdT Z'dUdV Z(dWdX Z)dYdZ Z*d[d\ Z+d]d^ Z,d_d` Z-dadb Z.dcdd Z/dedf Z0ejdge1e2dhdid
h djdk Z3eje4d dldge4d dldfe4d
didmge4d
didmfe4d dne4dndoge4d dofe4d dde4ddige4d didfe4d dnde4dmdodnge4d dodnfe4dpdnde4dmdodge4dpdodfe4dpdqe4dqdrge4d
d
fe4dpdqe4dndpge4d
d
fe4dpdqe4dndge4dndfe4dpde4dndge5g dsfe4de4dndge4dndfe4de4dge5g dtfe4de4dde4ddudmge4d
dife4de4dnde4ddudmge5g dvfe4dde4dde4ddudmge4ddife4dne5g dwge5g dxfe4dne6g dyge6g dzfe4dne7g d{ge7g d|fe4dnd e7g d{ge7g d{fgdd}d~ Z8dd Z9dd Z:dd Z;ejded
dded
d d ed dnded
ddeddhdgdd Z<ejded
de	d
d ggdd Z=dd Z>dS )TestRangeIndexc                 C   s   t jS N)npint64self r   \/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/indexes/ranges/test_range.pydtype   s   zTestRangeIndex.dtype)uint64float64category
datetime64object)paramsc                 C      |j S r	   paramr   requestr   r   r   invalid_dtype   s   zTestRangeIndex.invalid_dtypereturnc                 C   s   | j ddddS )Nr         startstopstep)
_index_clsr   r   r   r   simple_index$   s   zTestRangeIndex.simple_indexr   r   r   foo)r!   r"   r#   name   bar	index_inc	index_dec)r   idsc                 C   r   r	   r   r   r   r   r   index(   s   zTestRangeIndex.indexc                 C   s0   |  dd}tjddg|d}t|j| d S )N      r   r   )r$   r
   arraytmassert_numpy_array_equal_data)r   r   resultexpectedr   r   r   test_constructor_unwraps_index2   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_identifiers7   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%   r/   r   r   r   test_too_many_names<   s   "z"TestRangeIndex.test_too_many_nameszindex, start, stop, step   r0   )r#   c                 C   s.   |j |ksJ |j|ksJ |j|ksJ d S r	   r    )r   r/   r!   r"   r#   r   r   r   test_start_stop_step_attrsA   s   z)TestRangeIndex.test_start_stop_step_attrs	attr_name)_start_stop_stepc                 C   s>   |}t t t|| W d    d S 1 sw   Y  d S r	   )r4   assert_produces_warningFutureWarninggetattr)r   rJ   r%   r;   r   r   r   %test_deprecated_start_stop_step_attrsP   s   "z4TestRangeIndex.test_deprecated_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 )NrH   Foor'   r   r0   )r   copy	identical_rangeranger'   )r   ii_copyr   r   r   	test_copyW   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 )
NrH   rR   rS   z/RangeIndex(start=0, stop=5, step=1, name='Foo')Texactr   r)   z$RangeIndex(start=5, stop=0, step=-1))r   reprevalr4   assert_index_equal)r   rX   r7   r8   r   r   r   	test_repr_   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fD ]}t dd|}t|| q0t ddtj	}t
dtj	dd	d
dgtd}t|| d S )NrH   rR   rS   r0      r   equivr[   r   r1   r2   )r   r4   r_   insertr   r
   nanpdNANaTr   r   )r   r;   r7   r8   nar   r   r   test_insertp   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[   r1   
      r   rW   rc   r4   r_   r   r;   r7   r8   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   r1   r   r0   Tr[   rm   rn   r   r   r   'test_insert_middle_preserves_rangeindex   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 )NrH   rR   rS   r0   r   Tr[   r)   z/index 5 is out of bounds for axis 0 with size 5r>   )
r   deleter4   r_   r'   rB   rC   
IndexErrorrD   len)r   r;   r8   r7   msgr   r   r   test_delete   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   r&   rS   r0   Tr[   r   rW   rq   r4   r_   rn   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 )	Nr1   r&   rS   r0   r   Tr[   r*   rv   rn   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      r0   )r   r1   ra   rH   r   Tr[   r)   r   rq   r4   r_   r   r;   locr7   r8   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   ry   r0   )r0   r   r1   ra   rH   Tr[   r)   rz   r{   r   r   r   ,test_delete_preserves_rangeindex_list_middle   r~   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   ry   r0   )r   r0   r   r1   ra   rH   Tr[   r)   rz   r{   r   r   r   $test_delete_all_preserves_rangeindex   r~   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   ry   r0   )r   r1   rH   )r0   r   ra   Tr[   r)   )r   rq   r   r4   r_   r{   r   r   r   %test_delete_not_preserving_rangeindex   r~   z4TestRangeIndex.test_delete_not_preserving_rangeindexc                 C   sT   t ddd}| }|jdksJ |d}t|j| |t }t|| d S )Nr   rR   rS   i8)r   viewr'   r4   r5   valuesr_   )r   rX   i_viewr   r   r   	test_view   s   

zTestRangeIndex.test_viewc                 C   s   |}|j tjks
J d S r	   )r   r
   r   rF   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 |  |ji ksrJ 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 |j t|jtjsJ |j|ju sJ t|jdksJ tjddddd}t|jd | d S )Nr   d   rk   r   Z   [   a)r/   2   51r>   3   rH   r0   r   r2   r6   )r   _cacher]   strget_locallanyformatre   	DataFramerW   r|   rB   rC   KeyErrorilocr6   
isinstancer
   ndarrayrs   aranger4   r5   )r   r;   _dfr8   r   r   r   
test_cache   sP   

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)   r0   )r   is_monotonic_increasingis_monotonic_decreasing!_is_strictly_monotonic_increasing!_is_strictly_monotonic_decreasingr   r/   r   r   r   test_is_monotonic8  s:   


z TestRangeIndex.test_is_monotonicc                 C   s   t dddt dddft dt dddft dddt dddft dd	d
t ddd
fg}|D ]\}}||s9J ||s@J q.d S )Nr   rj   r   rk   r0   r)   r1   ra   ir*   i)r   equals)r   equiv_pairsleftrightr   r   r   test_equals_range[  s   z TestRangeIndex.test_equals_rangec                 C   s4   |}|  |j  ksJ | |j ksJ d S r	   )r   r   r   )r   r%   r;   r   r   r   test_logical_compatf  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 )Nr2   r&   )r'   r   r   )r   rT   rU   r   r   r   rename)r   r%   r/   rX   same_values_different_typesame_valuesr   r   r   test_identicalk  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  rk   )r   nbytesr   _values)r   r;   i2r   r   r   test_nbytes  s   

zTestRangeIndex.test_nbyteszstart,stop,step)r&   r+   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>   )typerB   rC   	TypeErrorr   )r   r!   r"   r#   rt   r   r   r   test_cant_or_shouldnt_cast  s   
"z)TestRangeIndex.test_cant_or_shouldnt_castc                 C   s   |}| t d S r	   )r   r   rF   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/   r7   r   r   r   test_prevent_casting  s   
z#TestRangeIndex.test_prevent_castingc                 C   s   |}t tt|| d S r	   )r4   r_   r^   r]   rF   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 )Nr0   r   asdfrS   )r   r'   r   r;   r   r   r   test_slice_keep_name  s   z#TestRangeIndex.test_slice_keep_namec                 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 )Nry   rk   r   r0   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   r0   ry   r(   r*   rH   r)   l      !;o )r   _min_fitting_element)r   r7   big_numr   r   r   test_min_fitting_element  s   z'TestRangeIndex.test_min_fitting_elementc                 C   s   d S r	   r   r   r   r   r   test_pickle_compat_construction  s   z.TestRangeIndex.test_pickle_compat_constructionc                 C   s  |}d|_ |d }d}||ksJ |d }d}||ksJ |d d  }|}t|| |ddd }ttddgdd	}tj||d
d |ddd }ttddgdd	}tj||d
d |ddd }t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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 )Nr&   r0   r   r)   r(      rk      rS   rb   r[   r*   r   ra      )ra   r   r   ir2   (   )r'   r4   r_   r   r
   r3   r   r   )r   r%   r/   resr8   index_slicer   r   r   test_slice_specialised  sF   z%TestRangeIndex.test_slice_specialisedr#   r   ry   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   rH   )rH   r   )r
   r   r   rs   )r   r#   r!   r"   arrr/   r   r   r   test_len_specialised  s   z#TestRangeIndex.test_len_specialisedr   ra   r1   r   r   i)r   r1   ra   )r   r0   r   r0      )r   r0   r1   ra   rH   )r)   r1      )r   r0   r   r)   r1   r   )r)   @      .@)r   r0   r   r)   r   r   )r   Nr   )r   r0   r   r   Nr   c                 C   r   )z6Inputs and expected outputs for RangeIndex.append testr   r   r   r   r   appends  s   zTestRangeIndex.appendsc                 C   sd   |\}}|d  |dd  }tj||dd t|dkr0|d  |d }tj||dd d S d S )Nr   r0   Tr[   r   )appendr4   r_   rs   )r   r   indicesr8   r7   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   rk   r1   rH   r0   r   r   3r>   _enginez'a'r   )r   r   r4   r5   get_indexerr   r
   r3   rB   rC   r   r   r   r   r   r   test_engineless_lookup9  s   z%TestRangeIndex.test_engineless_lookupc                 C   s4   |  d}| g ksJ |jdddgksJ d S )Nr   TrS    )r$   r   )r   	empty_idxr   r   r   test_format_emptyO  s   
z TestRangeIndex.test_format_emptyRIr   c                 C   s   | g }tj||dd d S )NTr[   )r   r4   r_   )r   r   r7   r   r   r   test_append_len_oneU  s   
z"TestRangeIndex.test_append_len_onebasec                 C   s2   t dd}||}tddg}t|| d S )Nr   r0   TF)r   isinr
   r3   r4   r5   )r   r   r   r7   r8   r   r   r   test_isin_ranged  s   

zTestRangeIndex.test_isin_rangec                    sT   dddddd t ddd}|j fddd	}tg d
dd}tj||dd d S )Nr   r   r   rk   r   )r   ry   ra   r   r   c                    s
   |   S r	   )map)x
sort_orderr   r   <lambda>p  s   
 z5TestRangeIndex.test_sort_values_key.<locals>.<lambda>)r<   )ra   r   ry   r   r   r   r2   T)check_exact)r   sort_valuesr   r4   r_   )r   r   r7   r8   r   r   r   test_sort_values_keyl  s
   z#TestRangeIndex.test_sort_values_keyN)?__name__
__module____qualname__r   r$   rB   fixturer   r   r   r%   r/   r9   r=   rG   markparametrizerI   rQ   rZ   r`   ri   ro   rp   ru   rw   rx   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   setrW   r   r   I64F64OIr   r   r   r   r   r   r   r   r   r   r   r      s    



	

	?#

	
7
 ""$&& 








r   )numpyr
   rB   pandas.core.dtypes.commonr   pandasre   pandas._testing_testingr4   pandas.core.indexes.apir   r   r   r   pandas.tests.indexes.commonr   r   r   r   r   r   r   r   r   r   <module>   s    