a
    PfQ                     @   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/ai-form-bot/venv/lib/python3.9/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)Z$_can_hold_identifiers_and_holds_name)r   r   idxkeyr   r   r   test_can_hold_identifiers   s    z(TestRangeIndex.test_can_hold_identifiersc                 C   s@   |}t jtdd ddg|_W d    n1 s20    Y  d S )Nz^LengthmatchZrogerZ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sDJ |jdksRJ d S )Nr*   Foonamer   r   )r   copy	identical_rangeranger/   )r   iZ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s`J t|}tj||dd d S )
Nr*   r-   r.   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   r4   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|| qft ddtj
}tdtj
dd	d
dgtd}t|| d S )Nr*   r-   r.   r      r   equivr6   r   r   r   )r   r   r;   insertr   r   nanZfloat64pdZNAZ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 )
Nr=   	   r   r   Tr6   r   
      r   r3   r?   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   Tr6   rH   rI   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sBJ |d d }|d}tj||dd |j|jksxJ d	}tjttf|d
 |t	|}W d    n1 s0    Y  d S )Nr*   r-   r.   r   r   Tr6   r8   z/index 5 is out of bounds for axis 0 with size 5r!   )
r   deleter   r;   r/   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   foor.   r   Tr6   r   r3   rL   r   r;   rI   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   rQ   r.   r   r   Tr6   rR   rI   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   r=   r*   r   Tr6   r8   r   rL   r   r;   r   r   locr   r   r   r   r   ,test_delete_preserves_rangeindex_list_at_end   s    
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   rV   r   )r   r   r   r=   r*   Tr6   r8   rW   rX   r   r   r   ,test_delete_preserves_rangeindex_list_middle   s    
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   rV   r   )r   r   r   r   r=   r*   Tr6   r8   rW   rX   r   r   r   $test_delete_all_preserves_rangeindex   s    
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   rV   r   )r   r   r*   )r   r   r=   Tr6   r8   )r   rL   r   r   r;   rX   r   r   r   %test_delete_not_preserving_rangeindex   s    
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 sl0    Y  t|| d S )Nr   r-   r.   i8/Passing a type in RangeIndex.view is deprecatedr!   )	r   viewr/   r   r   valuesassert_produces_warningFutureWarningr;   )r   r4   Zi_viewrO   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s0J t| |ji ksFJ |d |ji ks^J d|v  |ji kstJ d|v  |ji ksJ |  |ji ksJ |  |ji ksJ |D ]}q|ji ksJ d}tjt	|d |
  W d    n1 s0    Y  |ji ksJ tjd	tdi|d
}t| |ji ksFJ |jd  |ji ks`J tjtdd |jd  W d    n1 s0    Y  |ji ksJ |jdd  |ji ksJ |jdd  |ji ksJ |g d d|jvsJ |jdg  d|jvs J |jg d  d|jvs>J |j t|jtjsXJ |j|ju sjJ d|jv szJ tjddddd}t|jd | d S )Nr   d   rF   r   Z   [   zRangeIndex.format is deprecatedr!   a)r(   2   513   r*   )r   r   r   r   )r*   rV         rE   r   r   )r   _cacher9   strget_locallanyr   rb   rc   formatrA   Z	DataFramer3   rY   r#   r$   KeyErrorZilocZtaker   
isinstancer   Zndarrayaranger   )r   r   _rO   Zdfr   r   r   r   
test_cache   s^    
&
*zTestRangeIndex.test_cachec                 C   s  t ddd}|jdu sJ |jdu s(J |jdu s6J |jdu sDJ |jdu sRJ t ddd}|jdu slJ |jdu szJ |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 t dd}|jdu sJ |jdu sJ |jdu sJ |jdu s.J |jdu s>J t dd}|jdu sXJ |jdu shJ |jdu sxJ |jdu sJ |jdu sJ d S )	Nr   r   r   TFr=   r8   r   )r   Zis_monotonic_increasingZis_monotonic_decreasingZ!_is_strictly_monotonic_increasingZ!_is_strictly_monotonic_decreasingr   r(   r   r   r   test_is_monotonic  s:    


z TestRangeIndex.test_is_monotonicz
left,rightrE   rF   r8   r   r=   irT   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s0J d S r+   )rr   ra   rs   )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}||rFJ |jtd}|d}t |td}||jtds~J ||rJ t |dtd|sJ |jtd|jddrJ d S )Nr   rQ   )r/   r   r   )r   r0   r1   rv   r   rB   rename)r   r   r(   r4   Zsame_values_different_typeZ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  rF   )r   nbytesr   Z_values)r   r   i2r   r   r   test_nbytesj  s    

zTestRangeIndex.test_nbyteszstart,stop,step)rQ   barZbaz)012c                 C   sR   dt | d| }tjt|d t||| W d    n1 sD0    Y  d S )NzWrong type z for value r!   )typer#   r$   	TypeErrorr   )r   r	   r
   r   rO   r   r   r   test_cant_or_shouldnt_casts  s    
z)TestRangeIndex.test_cant_or_shouldnt_castc                 C   sD   |}d}t jt|d |t W d    n1 s60    Y  d S )Nr_   r!   )r   rb   rc   r`   r   )r   r   r(   rO   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)Zastyper   r   Z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:   r9   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   Zasdfr.   )r   r/   r   r   r   r   r   test_slice_keep_name  s    z#TestRangeIndex.test_slice_keep_namer(   r   rQ   )r	   r
   r   r/      r   Z	index_incZ	index_dec)Zidsc                 C   s   |j s
J |jrJ d S r+   )Z	is_uniqueZhas_duplicatesrz   r   r   r   test_has_duplicates  s    	
z"TestRangeIndex.test_has_duplicatesc                 C   s   |}| dd}|d |d d |d d  ks4J d|d ksDJ | dd}d|d d |d d  kspJ d|d ksJ d S )NrV   rF   r   r   r   )Z_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sXJ t ddd	d}d|ksvJ d
}t d|d d|}||ksJ d S )Nr   r   r   r   rV   r   rT   r*   r8   l      !;o )r   Z_min_fitting_element)r   r   Z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 )NrQ   r   r   r8   r   rm   rF      r.   r>   r6   rT   rf   r=      )r=   r   r   ir   (   )r/   r   r;   r   ra   r   r   r   )r   r   r(   resr   Zindex_slicer   r   r   test_slice_specialised  sF    z%TestRangeIndex.test_slice_specialisedr   r   rV   c                 C   sb   |dkrdnd\}}t |||}t|||}t|t|ksBJ t|||}t|dks^J d S )Nr   )r   r*   )r*   r   )r   rw   r   rN   )r   r   r	   r
   Zarrr(   r   r   r   test_len_specialised  s    z#TestRangeIndex.test_len_specialisedzindices, expectedr   rm   r   i)r   r   r=   )r   r   r   r   rn   )r   r   r   r=   r*   )r8   r      )r   r   r   r8   r   r   )r8   @      .@)r   r   r   r8   r   r   )ri   Nr   )r   r   r   ri   Nr   c                 C   sX   |d  |dd  }tj||dd t|dkrT|d  |d }tj||dd d S )Nr   r   Tr6   r   )appendr   r;   rN   )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 sp0    Y  d
|jvsJ tj	t
dd	 |d W d    n1 s0    Y  d
|jvsJ d S )Nr   rF   r   r*   r   rn   r   3r!   Z_enginez'a'ri   )r   rq   r   r   Zget_indexerr   r   r   r#   r$   ru   ro   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@0    Y  tjt|d& |jdddgkspJ W d    n1 s0    Y  d S )Nr   z RangeIndex\.format is deprecatedr!   Tr.    )r   r   rb   rc   rt   )r   Z	empty_idxrO   r   r   r   test_format_empty=  s    .z TestRangeIndex.test_format_emptyrir   c                 C   s   | g }tj||dd d S )NTr6   )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   ra   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   rn   rF   r   )rn   rV   r=   r   r   c                    s
   |   S r+   mapxZ
sort_orderr   r   <lambda>a      z5TestRangeIndex.test_sort_values_key.<locals>.<lambda>)r   )rV   rn   r=   r   r   r   r   T)Zcheck_exactc                    s
   |   S r+   r   r   r   r   r   r   g  r   )r   Zsort_valuesr   r   r;   Z	to_seriesZassert_series_equal)r   ra   r   r   Z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   r=   r   r8   )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#   Zfixturer   r   r    r)   markZparametrizer   r,   r5   r<   rD   rJ   rK   rP   rS   rU   rZ   r[   r\   r]   rd   re   ry   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   setr3   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s   
	

	L#	
		


7
 ""$
 

	







r   )numpyr   r#   Zpandas.core.dtypes.commonr   ZpandasrA   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   <module>   s   