a
    oÝEb˜N  ã                   @   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e	dœ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€„ Z9d�d‚„ Z:dƒd„„ Z;ej d…ed
ddƒed
d d ƒed dndƒed
ddƒed†dhdƒg¡d‡dˆ„ ƒZ<ej d‰ed
dƒe	d
d gƒg¡dŠd‹„ ƒZ=dŒd�„ Z>dŽS )�ÚTestRangeIndexc                 C   s   t jS ©N)ÚnpÚint64©Úself© r   úf/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/indexes/ranges/test_range.pyÚdtype   s    zTestRangeIndex.dtype)Zuint64Zfloat64ÚcategoryZ
datetime64Úobject)Úparamsc                 C   s   |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é   éÿÿÿÿéþÿÿÿÚbarZ	index_incZ	index_dec)r   Úidsc                 C   s   |j S 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)Z$_can_hold_identifiers_and_holds_name)r   r!   ÚidxÚkeyr   r   r   Útest_can_hold_identifiers7   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!   r)   r   r   r   Útest_too_many_names<   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_attrsA   s    z)TestRangeIndex.test_start_stop_step_attrsÚ	attr_name)Ú_startÚ_stopZ_stepc                 C   s<   |}t  t¡� t||ƒ W d   ƒ n1 s.0    Y  d S r	   )r.   Zassert_produces_warningÚFutureWarningÚgetattr)r   rA   r!   r4   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sDJ ‚|jdksRJ ‚d S )Nr?   ÚFoo©r#   r   r*   )r   ÚcopyÚ	identicalÚ_rangeÚranger#   )r   ÚiZ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s`J ‚t|ƒ}tj||dd� d S )
Nr?   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Úevalr.   Úassert_index_equal)r   rM   r1   r2   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 ||¡ q`t dƒ dtj	¡}t
dtj	dd	d
dgtd�}t ||¡ d S )Nr?   rG   rH   r*   é   r   ÚequivrO   r   r+   r,   )r   r.   rS   Úinsertr   r
   ÚnanÚpdZNAZNaTr   r   )r   r4   r1   r2   Ú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 )
NrU   é	   r   r   TrO   r+   é
   é   ©r   rL   rW   r.   rS   ©r   r4   r1   r2   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*   TrO   r_   r`   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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?   rG   rH   r*   r   TrO   r%   z/index 5 is out of bounds for axis 0 with size 5r7   )
r   Údeleter.   rS   r#   r9   r:   Ú
IndexErrorr;   Úlen)r   r4   r2   r1   Ú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*   TrO   ©r   rL   rc   r.   rS   r`   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   TrO   r&   rh   r`   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+   rU   r?   r   TrO   r%   ©r   rc   r.   rS   ©r   r4   Úlocr1   r2   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   rk   r*   )r*   r   r+   rU   r?   TrO   r%   rl   rm   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   rk   r*   )r   r*   r   r+   rU   r?   TrO   r%   rl   rm   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   rk   r*   )r   r+   r?   )r*   r   rU   TrO   r%   )r   rc   r   r.   rS   rm   r   r   r   Ú%test_delete_not_preserving_rangeindexß   s    
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#   r.   r/   ÚvaluesrS   )r   rM   Z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   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 ‚| ¡  |ji ksäJ ‚tj	dt
dƒi|d�}t|ƒ |ji k�sJ ‚|jd	  |ji k�s,J ‚tjtd
d�� |jd  W d   ƒ n1 �s\0    Y  |ji k�svJ ‚|jdd	…  |ji k�s”J ‚|jdd…  |ji k�s²J ‚|j t|jtjƒ�sÌJ ‚|j|ju �sÞJ ‚t|jƒdk�sòJ ‚tjddddd�}t |jd |¡ d S )Nr   éd   r]   r   éZ   é[   Úa)r)   é2   Ú51r7   é3   r?   r*   r   r,   r0   )r   Ú_cacherQ   ÚstrÚget_locÚallÚanyÚformatrY   Z	DataFramerL   rn   r9   r:   ÚKeyErrorZilocr0   Ú
isinstancer
   Zndarrayre   Úaranger.   r/   )r   r4   Ú_Zdfr2   r   r   r   Ú
test_cacheù   sN    

*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   TFrU   r%   r*   )r   Zis_monotonicZis_monotonic_increasingZis_monotonic_decreasingZ!_is_strictly_monotonic_increasingZ!_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 ]$\}}| |¡srJ ‚| |¡s\J ‚q\d S )Nr   r\   r   r]   r*   r%   r+   rU   i÷ÿÿÿr&   iöÿÿÿ)r   Úequals)r   Zequiv_pairsÚleftÚrightr   r   r   Útest_equals_range[  s    üz TestRangeIndex.test_equals_rangec                 C   s4   |}|  ¡ |j  ¡ ksJ ‚| ¡ |j ¡ ks0J ‚d S r	   )r‚   ru   rƒ   )r   r!   r4   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�}| |¡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,   r"   )r#   r   r   )r   rI   rJ   r†   r   r   Úrename)r   r!   r)   rM   Zsame_values_different_typeZ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è  r]   )r   Únbytesr   Z_values)r   r4   Úi2r   r   r   Útest_nbytes�  s    

zTestRangeIndex.test_nbyteszstart,stop,step)r"   r'   Z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 r7   )Útyper9   r:   Ú	TypeErrorr   )r   r   r   r   rf   r   r   r   Útest_cant_or_shouldnt_cast‹  s    
z)TestRangeIndex.test_cant_or_shouldnt_castc                 C   s   |}|  t¡ d S r	   )rt   r   r=   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)   r1   r   r   r   Útest_prevent_casting�  s    
z#TestRangeIndex.test_prevent_castingc                 C   s   |}t  tt|ƒƒ|¡ d S r	   )r.   rS   rR   rQ   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asdfrH   )r   r#   ©r   r4   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	   )Z	is_uniqueZhas_duplicatesrŠ   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 )Nrk   r]   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*   rk   r$   r&   r?   r%   l      !Û;o )r   Z_min_fitting_element)r   r1   Z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"   r*   r   r%   r$   é   r]   é   rH   rV   rO   éûÿÿÿr&   rx   rU   é   éøÿÿÿ)rU   r   r   iØÿÿÿr,   é(   )r#   r.   rS   r   r
   r-   ru   r   )r   r!   r)   Úresr2   Zindex_slicer   r   r   Útest_slice_specialisedÎ  sF    z%TestRangeIndex.test_slice_specialisedr   r©   rk   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
   r‡   r   re   )r   r   r   r   Zarrr)   r   r   r   Útest_len_specialised  s    z#TestRangeIndex.test_len_specialisedrª   rU   r+   r§   éüÿÿÿr«   iôÿÿÿ)r°   éýÿÿÿr+   rU   )r   r*   r   r*   é   )r   r*   r+   rU   r?   )r%   r+   é   )r   r*   r   r%   r+   r³   )r%   çÍÌÌÌÌÌ@ç      .@)r   r*   r   r%   r´   rµ   )r{   Nr¨   )r   r*   r   r{   Nr¨   c                 C   s   |j S )z6Inputs and expected outputs for RangeIndex.append testr   r   r   r   r   Úappends  s    zTestRangeIndex.appendsc                 C   s`   |\}}|d   |dd … ¡}tj||dd� t|ƒdkr\|d   |d ¡}tj||dd� d S )Nr   r*   TrO   r   )Úappendr.   rS   re   )r   r¶   Úindicesr2   r1   Z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   r]   r+   r?   r*   r²   r   Ú3r7   Z_enginez'a'r{   )r   r�   r.   r/   Zget_indexerr   r
   r-   r9   r:   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s0J ‚d S )Nr   TrH   Ú )r    r„   )r   Z	empty_idxr   r   r   Útest_format_emptyO  s    
z TestRangeIndex.test_format_emptyÚRIr±   c                 C   s   |  g ¡}tj||dd� d S )NTrO   )r·   r.   rS   )r   r¾   r1   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   r*   TF)r   Úisinr
   r-   r.   r/   )r   rÀ   ru   r1   r2   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²   r]   rª   )r²   rk   rU   r   r   c                    s
   |   ˆ ¡S r	   )Úmap)Úx©Z
sort_orderr   r   Ú<lambda>p  ó    z5TestRangeIndex.test_sort_values_key.<locals>.<lambda>)r5   )rU   r²   rk   r   r   r   r,   T)Zcheck_exact)r   Zsort_valuesr   r.   rS   )r   ru   r1   r2   r   rÅ   r   Útest_sort_values_keyl  s
    z#TestRangeIndex.test_sort_values_keyN)?Ú__name__Ú
__module__Ú__qualname__r   r    r9   Zfixturer   r   r   r!   r)   r3   r6   r>   ÚmarkZparametrizer@   rF   rN   rT   r[   ra   rb   rg   ri   rj   ro   rp   rq   rr   rv   rw   r‰   r‹   r�   r�   r’   r•   r›   rœ   rŸ   r    r¢   r£   r¤   r¥   r¦   r®   ÚsetrL   r¯   r¾   ÚI64ÚF64ÚOIr¶   r¹   r»   r½   r¿   rÂ   rÈ   r   r   r   r   r      sÖ   
ÿ
þû
üþ	


	?#
üþ	

7
 ""$&& íÿ





ûþ


r   )Únumpyr
   r9   Zpandas.core.dtypes.commonr   ZpandasrY   Zpandas._testingZ_testingr.   Zpandas.core.indexes.apir   r   r   r   Zpandas.tests.indexes.commonr   r¾   rÎ   rÏ   rÐ   r   r   r   r   r   Ú<module>   s   