a
    é´«jÉQ  ã                   @   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¡d€d�„ ƒZ2d‚dƒ„ Z3d„d…„ Z4d†S )‡ÚTestRangeIndexc                 C   s   t dddd�S )Nr   é   é   ©ÚstartÚstopÚstep)r   )Úself© r   úe/var/www/html/laksyashrimp/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 s²0    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sŠJ ‚| ¡  |ji ks J ‚| ¡  |ji ks¶J ‚|D ]}qº|ji ksÎJ ‚d}tjt	|d�� | 
¡  W d   ƒ n1 sþ0    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 �s�0    Y  |ji k�sªJ ‚|jdd…  |ji k�sÈJ ‚|jdd…  |ji k�sæJ ‚| 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   Ú51é3   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 sˆJ ‚|jdu s–J ‚t 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ƒ}|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ƒ}|jdu �sXJ ‚|jdu �shJ ‚|jdu �sxJ ‚|jdu �sˆJ ‚|jdu �s˜J ‚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=   i÷ÿÿÿrT   iöÿÿÿc                 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 ‚| |¡rŒJ ‚t |dtd� |¡s¤J ‚|jtd� |jdd�¡rÂJ ‚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)Ú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s€J ‚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sœJ ‚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   iØÿÿÿr   é(   )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sˆJ ‚tj	t
dd	�� | d¡ W d   ƒ n1 s¶0    Y  d
|jvsÎJ ‚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 s„0    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   