o
    dM                     @   sd   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 d dlmZ eZG dd deZdS )    N)ensure_platform_int)Index
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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d#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZdAdB Z dCdD Z!dEdF Z"dGdH Z#dIdJ Z$ejdKdLdMgdNdO Z%dPdQ Z&dRdS Z'dTdU Z(dVdW Z)dXdY Z*dZd[ Z+d\d] Z,d^d_ Z-d`da Z.ejdbe/e0dcddd	h dedf Z1eje2ddgdge2ddgdfe2d	dddhge2d	dddhfe2ddie2didjge2ddjfe2ddde2dddge2ddddfe2ddide2dhdjdige2ddjdife2dkdide2dhdjdge2dkdjdfe2dkdle2dldmge2d	d	fe2dkdle2didkge2d	d	fe2dkdle2didge2didfe2dkde2didge3g dnfe2de2didge2didfe2de2dge3g dofe2de2dde2ddpdhge2d	ddfe2de2dide2ddpdhge3g dqfe2dde2dde2ddpdhge2dddfe2die3g drge3g dsfe2die3g dtge3g dufe2die3g dvge3g dwfe2dide3g dvge3g dvfgddxdy Z4dzd{ Z5d|d} Z6d~d Z7ejded	dded	ddeddided	ddeddcdgdd Z8ejded	de3d	dggdd Z9dd Z:dd Z;dS )TestRangeIndexc                 C   s   t jS N)npint64self r   k/var/www/html/visualizacion-main/env/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_dtypec                 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_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_identifiers2   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_names7   s   "z"TestRangeIndex.test_too_many_nameszindex, start, stop, step   r-   )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_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 )NrE   Foor$   r   r-   )r   copy	identical_rangeranger$   )r   ii_copyr   r   r   	test_copyK   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 )
NrE   rG   rH   z/RangeIndex(start=0, stop=5, step=1, name='Foo')Texactr   r&   z$RangeIndex(start=5, stop=0, step=-1))r   reprevalr1   assert_index_equal)r   rM   r4   r5   r   r   r   	test_reprS   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 )NrE   rG   rH   r-      r   equivrP   r   r.   r/   )r   r1   rT   insertr   r   nanr   pdNANaTr   )r   r8   r4   r5   nar   r   r   test_insertd   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 )
NrV   	   r   r   TrP   r.   
      r   rL   rX   r1   rT   r   r8   r4   r5   r   r   r   &test_insert_edges_preserves_rangeindexu   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-   TrP   rb   rc   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 )NrE   rG   rH   r-   r   TrP   r&   z/index 5 is out of bounds for axis 0 with size 5r;   )
r   deleter1   rT   r$   r?   r@   
IndexErrorrA   len)r   r8   r5   r4   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#   rH   r-   TrP   r   rL   rf   r1   rT   rc   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.   r#   rH   r-   r   TrP   r'   rk   rc   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.   rV   rE   r   TrP   r&   r   rf   r1   rT   r   r8   locr4   r5   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   rn   r-   )r-   r   r.   rV   rE   TrP   r&   ro   rp   r   r   r   ,test_delete_preserves_rangeindex_list_middle   rs   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   rn   r-   )r   r-   r   r.   rV   rE   TrP   r&   ro   rp   r   r   r   $test_delete_all_preserves_rangeindex   rs   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   rn   r-   )r   r.   rE   )r-   r   rV   TrP   r&   )r   rf   r   r1   rT   rp   r   r   r   %test_delete_not_preserving_rangeindex   rs   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   rG   rH   i8)r   viewr$   r1   r2   valuesrT   )r   rM   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	   rC   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   r`   r   Z   [   a)r,   2   51r;   3   rE   r-   r	   r/   r3   )r   _cacherR   strget_locallanyformatrZ   	DataFramerL   rq   r?   r@   KeyErrorilocr3   
isinstancer   ndarrayrh   aranger1   r2   )r   r8   _dfr5   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   TFrV   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_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   r_   r   r`   r-   r&   r.   rV   ir'   i)r   equals)r   equiv_pairsleftrightr   r   r   test_equals_rangeM  s   z TestRangeIndex.test_equals_rangec                 C   s4   |}|  |j  ksJ | |j ksJ d S r   )r   ry   r   )r   r"   r8   r   r   r   test_logical_compatX  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/   r#   )r$   r   r	   )r   rI   rJ   r   r   r   rename)r   r"   r,   rM   same_values_different_typesame_valuesr   r   r   test_identical]  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  r`   )r   nbytesr   _values)r   r8   i2r   r   r   test_nbytess  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;   )typer?   r@   	TypeErrorr   )r   r   r   r    ri   r   r   r   test_cant_or_shouldnt_cast|  s   
"z)TestRangeIndex.test_cant_or_shouldnt_castc                 C   s   |}| t d S r   )rx   r   rC   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,   r4   r   r   r   test_prevent_casting  s   
z#TestRangeIndex.test_prevent_castingc                 C   s   |}t tt|| d S r   )r1   rT   rS   rR   rC   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   asdfrH   )r   r$   r   r8   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 )Nrn   r`   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-   rn   r%   r'   rE   r&   l      !;o )r   _min_fitting_element)r   r4   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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 )Nr#   r-   r   r&   r%      r`      rH   rW   rP   r'   r}   rV      )rV   r   r   ir/   (   )r$   r1   rT   r   ry   r   r0   r	   )r   r"   r,   resr5   index_slicer   r   r   test_slice_specialised  sF   z%TestRangeIndex.test_slice_specialisedr    r   rn   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   rE   )rE   r   )r   r   r   rh   )r   r    r   r   arrr,   r   r   r   test_len_specialised  s   z#TestRangeIndex.test_len_specialisedr   rV   r.   r   r   i)r   r.   rV   )r   r-   r   r-      )r   r-   r.   rV   rE   )r&   r.      )r   r-   r   r&   r.   r   )r&   @      .@)r   r-   r   r&   r   r   )r   Nr   )r   r-   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   r-   TrP   r   )appendr1   rT   rh   )r   r   indicesr5   r4   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   r`   r.   rE   r-   r   r   3r;   _enginez'a'r   )r   r   r1   r2   get_indexerr   r   r0   r?   r@   r   r   r   r   r   r   test_engineless_lookup*  s   z%TestRangeIndex.test_engineless_lookupc                 C   s4   |  d}| g ksJ |jdddgksJ d S )Nr   TrH    )r!   r   )r   	empty_idxr   r   r   test_format_empty@  s   
z TestRangeIndex.test_format_emptyRIr   c                 C   s   | g }tj||dd d S )NTrP   )r   r1   rT   )r   r   r4   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   r0   r1   r2   )r   r   ry   r4   r5   r   r   r   test_isin_rangeU  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   r`   r   )r   rn   rV   r   r   c                    s
   |   S r   )map)x
sort_orderr   r   <lambda>a  s   
 z5TestRangeIndex.test_sort_values_key.<locals>.<lambda>)r9   )rV   r   rn   r   r   r	   r/   T)check_exact)r   sort_valuesr   r1   rT   )r   ry   r4   r5   r   r   r   test_sort_values_key]  s
   z#TestRangeIndex.test_sort_values_keyc                 C   s   t d d S )Nz.casting of strings not relevant for RangeIndex)r?   skip)r   r   r   r   r   test_cast_stringe  s   zTestRangeIndex.test_cast_stringN)<__name__
__module____qualname__r   r!   r?   fixturer   r   r"   r,   r6   r:   rD   markparametrizerF   rO   rU   r^   rd   re   rj   rl   rm   rr   rt   ru   rv   r{   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   setrL   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s    




	
	?#	
	
7
 ""$&& 








r   )numpyr   r?   pandas.core.dtypes.commonr   pandasrZ   r   r   pandas._testing_testingr1   pandas.tests.indexes.commonr   r   r   r   r   r   r   <module>   s    