o
    Û­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   úc/var/www/html/CropPilot/venv/lib/python3.10/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)Ú$_can_hold_identifiers_and_holds_name)r   r   ÚidxÚkeyr   r   r   Útest_can_hold_identifiers   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   Ú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s"J ‚|jdks)J ‚d S )Nr-   ÚFoo©Únamer   r   )r   ÚcopyÚ	identicalÚ_rangeÚranger2   )r   ÚiÚ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s0J ‚t|ƒ}tj||dd� d S )
Nr-   r0   r1   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   r7   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 ||¡ q3t dƒ dtj
¡}tdtj
dd	d
dgtd�}t ||¡ d S )Nr-   r0   r1   r   é   r   Úequivr:   r   r   r   )r   r   r?   Úinsertr   r   ÚnanÚfloat64ÚpdÚNAÚ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 )
NrA   é	   r   r   Tr:   r   é
   é   ©r   r6   rC   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   Tr:   rO   rP   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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 )Nr-   r0   r1   r   r   Tr:   r<   z/index 5 is out of bounds for axis 0 with size 5r"   )
r   Údeleter   r?   r2   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   Úfoor1   r   Tr:   ©r   r6   rS   r   r?   rP   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   rX   r1   r   r   Tr:   éþÿÿÿrY   rP   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   rA   r-   r   Tr:   r<   ©r   rS   r   r?   ©r   r   Úlocr   r   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   r]   r   )r   r   r   rA   r-   Tr:   r<   r^   r_   r   r   r   Ú,test_delete_preserves_rangeindex_list_middle¡   rb   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   r]   r   )r   r   r   r   rA   r-   Tr:   r<   r^   r_   r   r   r   Ú$test_delete_all_preserves_rangeindex¬   rb   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   r]   r   )r   r   r-   )r   r   rA   Tr:   r<   )r   rS   r   r   r?   r_   r   r   r   Ú%test_delete_not_preserving_rangeindex·   rb   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 s6w   Y  t ||¡ d S )Nr   r0   r1   Úi8ú/Passing a type in RangeIndex.view is deprecatedr"   )	r   Úviewr2   r   r   ÚvaluesÚassert_produces_warningÚFutureWarningr?   )r   r7   Úi_viewrV   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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 ‚d}tjt	|d�� | 
¡  W d   ƒ n1 sw   Y  |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Äw   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ƒ�s$J ‚|j|ju �s-J ‚d|jv �s5J ‚tjddddd�}t |jd |¡ d S )Nr   éd   rM   r   éZ   é[   zRangeIndex.format is deprecatedr"   Úa)r+   é2   Ú51é3   r-   )r   r   r   r   )r-   r]   é   é   rL   r   r   )r   Ú_cacher=   ÚstrÚget_locÚallÚanyr   rj   rk   ÚformatrF   Ú	DataFramer6   r`   r&   r'   ÚKeyErrorÚilocÚtaker   Ú
isinstancer   ÚndarrayÚaranger   )r   r   Ú_rV   Údfr   r   r   r   Ú
test_cacheÓ   sb   

ÿ
ÿ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 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 ‚d S )	Nr   r   r   TFrA   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_monotonicz
left,rightrL   rM   r<   r   rA   i÷ÿÿÿr[   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sJ ‚d S r.   )r{   ri   r|   )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�}| |¡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   rX   )r2   r   r   )r   r3   r4   r‚   r   rI   Úrename)r   r   r+   r7   Úsame_values_different_typeÚ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è  rM   )r   Únbytesr   Ú_values)r   r   Úi2r   r   r   Útest_nbytesj  s   

zTestRangeIndex.test_nbyteszstart,stop,step)rX   ÚbarÚ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   rV   r   r   r   Útest_cant_or_shouldnt_casts  s   
"ÿz)TestRangeIndex.test_cant_or_shouldnt_castc                 C   sF   |}d}t jt|d�� | t¡ W d   ƒ d S 1 sw   Y  d S )Nrg   r"   )r   rj   rk   rh   r   )r   r   r+   rV   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+   r   r   r   r   Útest_prevent_casting‡  s   
z#TestRangeIndex.test_prevent_castingc                 C   s   |}t  tt|ƒƒ|¡ d S r.   )r   r?   r>   r=   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   Úasdfr1   )r   r2   ©r   r   r   r   r   Útest_slice_keep_name�  s   z#TestRangeIndex.test_slice_keep_namer+   r   rX   )r	   r
   r   r2   é   r›   Ú	index_incÚ	index_dec)Úidsc                 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 )Nr]   rM   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   r]   r­   r[   r-   r<   l      !Û;o )r   Ú_min_fitting_element)r   r   Ú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 )NrX   r   r   r<   r­   rv   rM   é   r1   rB   r:   éûÿÿÿr[   ro   rA   é   éøÿÿÿ)rA   r   r   iØÿÿÿr   é(   )r2   r   r?   r   ri   r   r   r   )r   r   r+   Úresr   Úindex_slicer   r   r   Útest_slice_specialised¼  sF   z%TestRangeIndex.test_slice_specialisedr   rº   r]   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   r-   )r-   r   )r   r„   r   rU   )r   r   r	   r
   Úarrr+   r   r   r   Útest_len_specialisedó  s   z#TestRangeIndex.test_len_specialisedzindices, expectedr»   rv   éüÿÿÿr¼   iôÿÿÿ)rÃ   éýÿÿÿr   rA   )r   r   r   r   rw   )r   r   r   rA   r-   )r<   r   é   )r   r   r   r<   r   rÅ   )r<   çÍÌÌÌÌÌ@ç      .@)r   r   r   r<   rÆ   rÇ   )rr   Nr¹   )r   r   r   rr   Nr¹   c                 C   s\   |d   |dd … ¡}tj||dd� t|ƒdkr,|d   |d ¡}tj||dd� d S d S )Nr   r   Tr:   r   )Úappendr   r?   rU   )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 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   rM   r   r-   r   rw   r   Ú3r"   Ú_enginez'a'rr   )r   rz   r   r   Úget_indexerr   r   r   r&   r'   r   rx   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 w   Y  tjt|d�� |jdd�dgks8J ‚W d   ƒ d S 1 sCw   Y  d S )Nr   z RangeIndex\.format is deprecatedr"   Tr1   Ú )r   r   rj   rk   r}   )r   Ú	empty_idxrV   r   r   r   Útest_format_empty=  s   ÿ"ÿz TestRangeIndex.test_format_emptyÚrirÄ   c                 C   s   |  g ¡}tj||dd� d S )NTr:   )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Õ   ri   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   rw   rM   r»   )rw   r]   rA   r   r   c                    ó
   |   ˆ ¡S r.   ©Úmap©Úx©Ú
sort_orderr   r   Ú<lambda>a  ó   
 z5TestRangeIndex.test_sort_values_key.<locals>.<lambda>)r    )r]   rw   rA   r   r   r   r   T)Úcheck_exactc                    rØ   r.   rÙ   rÛ   rÝ   r   r   rß   g  rà   )r   Úsort_valuesr   r   r?   Ú	to_seriesÚassert_series_equal)r   ri   r   r   Ú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   rA   r   r<   )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&   Úfixturer   r   r!   r,   ÚmarkÚparametrizer   r/   r9   r@   rK   rQ   rR   rW   rZ   r\   ra   rc   rd   re   rm   rn   r‡   r�   r‘   r’   r–   rš   r¢   r£   r¨   r©   r¬   r³   rµ   r¸   rÀ   Úsetr6   rÂ   r   rË   rÏ   rÒ   rÔ   r×   ræ   rç   r   r   r   r   r      sÞ    
üþ
	
	L#üþ
		üþ
	þú

7
 ""$
þþ çþ

	




ûþ


r   )Únumpyr   r&   Úpandas.core.dtypes.commonr   ÚpandasrF   r   r   Úpandas._testingÚ_testingr   r   r   r   r   r   Ú<module>   s    