3
Udr@                 @   sv   d dl Zd dlZd dlmZ d dlZd dlmZmZm	Z	m
Z
 d dlj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   )Numericc               @   sv  e Zd ZeZdddgZejeddddded	dpdqddgddgddd ZedddZ	dd Z
dd Zej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jdddd 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ejjd;drdsgd@dA ZdBdC ZdDdE ZdFdG ZdHdI Z dJdK Z!dLdM Z"dNdO Z#dPdQ Z$dRdS Z%dTdU Z&dVdW Z'ejjdXe(e)dtdYdh dZd[ Z*eje+d
d\dge+d
d\dfe+ddYd]ge+ddYd]fe+d
d^e+d^d_ge+d
d_fe+d
dde+ddYge+d
dYdfe+d
d^de+d]d_d^ge+d
d_d^fe+dud^de+d]d_dge+dvd_dfe+dwdxe+dydzge+ddfe+d{d|e+d^d}ge+ddfe+d~de+d^dge+d^dfe+dde+d^dge,ddd^d]gfe+de+d^dge+d^dfe+de+dge,dd
dd
gfe+de+dde+dd`d]ge+ddYfe+de+d^de+dd`d]ge,dd
d^d]dgfe+dde+dde+dd`d]ge+ddYfe+d^e,dd^dagge,dd
ddd^dagfe+d^e-ddbdcgge-dd
dddbdcgfe+d^e.dddedfgge.dd
ddddedfgfe+d^d
e.dddedfgge.dddedfgfgdgdhdi Z/djdk Z0dldm Z1dndo Z2deS )TestRangeIndexshapendimsizer      r   foo)startstopstepname      barZ	index_incZ	index_dec)paramsidsc             C   s   |j S )N)param)selfrequest r   Z/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/indexes/ranges/test_range.pyindex   s    zTestRangeIndex.index)returnc             C   s   t ddddS )Nr   r   r   )r   r   r   )r   )r   r   r   r   create_index!   s    zTestRangeIndex.create_indexc             C   s&   | j  }|d }|j|dks"td S )Nr   F)r   Z$_can_hold_identifiers_and_holds_nameAssertionError)r   idxkeyr   r   r   test_can_hold_identifiers$   s    z(TestRangeIndex.test_can_hold_identifiersc          	   C   s0   | j  }tjtdd ddg|_W d Q R X d S )Nz^Length)matchZrogerZharold)r   pytestraises
ValueErrornames)r   r   r   r   r   test_too_many_names)   s    z"TestRangeIndex.test_too_many_nameszindex, start, stop, step   )r   c             C   s.   |j |kst|j|kst|j|ks*td S )N)r   r    r   r   )r   r   r   r   r   r   r   r   test_start_stop_step_attrs.   s    z)TestRangeIndex.test_start_stop_step_attrs	attr_name_start_stop_stepc          
   C   s,   | j  }tjt t|| W d Q R X d S )N)r   tmZassert_produces_warningFutureWarninggetattr)r   r,   r!   r   r   r   %test_deprecated_start_stop_step_attrs=   s    z4TestRangeIndex.test_deprecated_start_stop_step_attrsc             C   sV   t ddd}|j }||k	s t|j|s.t|jtdddksDt|jdksRtd S )Nr*   Foo)r   r   r   )r   copyr    	identicalZ_rangeranger   )r   iZi_copyr   r   r   	test_copyD   s    zTestRangeIndex.test_copyc             C   s|   t ddd}t|}d}||ks$tt|}tj||dd t ddd
}t|}d	}||ks`tt|}tj||dd d S )Nr*   r4   )r   z/RangeIndex(start=0, stop=5, step=1, name='Foo')T)exactr   r   z$RangeIndex(start=5, stop=0, step=-1))r   reprr    evalr0   assert_index_equal)r   r8   resultexpectedr   r   r   	test_reprL   s    zTestRangeIndex.test_reprc             C   s   t ddd}|dd }tj|dd |jd|d  tdtjddddg}x2tjtjd fD ] }t djd|}tj|| q^W d S )	Nr*   r4   )r   r      r   r      )	r   r0   r>   insertr   npnanpdZNaT)r   r!   r?   r@   nar   r   r   test_insert]   s     zTestRangeIndex.test_insertc          
   C   s   t ddd}|dd  jt}|jd}tj|| |j|jksDt|d d jt}|jd	}tj|| |j|jks|td}tj	t
tf|d |jt|}W d Q R X d S )
Nr*   r4   )r   r   r   z/index 5 is out of bounds for axis 0 with size 5)r$   r;   r;   )r   astypeintdeleter0   r>   r   r    r%   r&   
IndexErrorr'   len)r   r!   r@   r?   msgr   r   r   test_deletek   s    

zTestRangeIndex.test_deletec             C   sT   t ddd}|j }|jdks"t|jd}tj|j| |jt }tj|| d S )Nr   r4   )r   i8)r   viewr   r    r0   assert_numpy_array_equalvaluesr>   )r   r8   Zi_viewr   r   r   	test_view}   s    

zTestRangeIndex.test_viewc             C   s   | j  }|jtjkstd S )N)r   dtyperE   int64r    )r   r   r   r   r   
test_dtype   s    zTestRangeIndex.test_dtypec          
   C   s  t ddd}|jd kstt| |jd ks0tt| |jd ksFt|jd |jd ks^td|k |jd ksttd|k |jd kst|j  |jd kst|j  |jd kst|j  |j	i kstt
jdtdi|d}t| |j	i kst|jd	  |jd ksttjtd
d |jd  W d Q R X |jd ksFt|jdd	  |jd ksdt|jdd  |jd kstt|jtjstt|jtjstd S )Nr   d   
   r   Z   [   a)r   2   Z51)r$   3   r*   )r   Z_cached_datar    r<   strget_locallanyformat_cacherG   Z	DataFramer7   locr%   r&   KeyErrorZiloc
isinstance_datarE   Zndarray)r   r!   dfr   r   r   test_cached_data   s@    

zTestRangeIndex.test_cached_datac             C   s  t ddd}|jdkst|jdks(t|jdks6t|jdksDt|jdksRtt ddd}|jdkslt|jdkszt|jdkst|jdkstt dd}|jdkst|jdkst|jdkst|jdkst|jdkstt dd}|jdks t|jdkst|jdks t|jdks0t|jdks@tt dd}|jdksZt|jdksjt|jdkszt|jdkst|jdkstd S )	Nr   r   r   TFrB   r   r;   )r   Zis_monotonicr    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_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}x,|D ]$\}}|j|stt|j|s^tq^W d S )Nr   	   r   rZ   r   rC   rB   r;   iirn   )r   equalsr    )r   Zequiv_pairsleftrightr   r   r   test_equals_range   s    z TestRangeIndex.test_equals_rangec             C   s8   | j  }|j |jj kst|j |jj ks4td S )N)r   rb   rT   r    rc   )r   r!   r   r   r   test_logical_compat   s    z"TestRangeIndex.test_logical_compatc             C   s   | j  }t|j }|j|s"tt|tr0d S t|td}|j| sLt|jtd}|jd}t|td}|j|jtdst|j| stt|dtdj|st|jtdj|jdd std S )N)rV   r   )r   rV   rW   )	r   r   r5   r6   r    rh   r   objectrename)r   r   r8   Zsame_values_different_typeZsame_valuesr   r   r   test_identical   s    

zTestRangeIndex.test_identicalc             C   s>   t dd}|j|jjd k s tt dd}|j|jks:td S )Nr   i  rZ   )r   nbytesZ_int64indexr    )r   r8   i2r   r   r   test_nbytes  s    

zTestRangeIndex.test_nbyteszstart,stop,stepbaz012c             C   s>   dt | d| }tjt|d t||| W d Q R X d S )NzWrong type z for value )r$   )typer%   r&   	TypeErrorr   )r   r   r   r   rO   r   r   r   test_cant_or_shouldnt_cast  s    
z)TestRangeIndex.test_cant_or_shouldnt_castc             C   s   | j  }|jt d S )N)r   rR   r   )r   r   r   r   r   test_view_index#  s    zTestRangeIndex.test_view_indexc             C   s&   | j  }|jd}|jtjks"td S )NO)r   rJ   rV   rE   Zobject_r    )r   r   r?   r   r   r   test_prevent_casting'  s    
z#TestRangeIndex.test_prevent_castingc             C   s    | j  }tjtt|| d S )N)r   r0   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&td S )Nr   r   Zasdf)r   )r   r   r    )r   r!   r   r   r   test_slice_keep_name0  s    z#TestRangeIndex.test_slice_keep_namec             C   s   t d}tjdddd }t|}|d }tj|| d| }tj|| t|}tjddd}|| }tj|| t| }tjddd}|| }tj|| d S )Nr*   rW   )rV   g	@Zfloat64)r   rE   aranger   r0   r>   Zzeros)r   r!   arrr@   Zfidxr]   r?   r   r   r   test_explicit_conversions4  s    
z(TestRangeIndex.test_explicit_conversionsc             C   s   |j s
t|j std S )N)Z	is_uniquer    Zhas_duplicates)r   r   r   r   r   test_has_duplicatesM  s    
z"TestRangeIndex.test_has_duplicatesc             C   s   | j  }|jdd}|d |d d |d d  ks8td|d ksHt|jdd}d|d d |d d  ksttd|d kstd S )N   rZ   r   r   r   )r   Z_extended_gcdr    )r   r   r?   r   r   r   test_extended_gcdQ  s    $ z TestRangeIndex.test_extended_gcdc             C   s   t dddjd}d|kstt ddjd}d|ks:tt dd	d
jd}d|ksXtt dddjd}d|ksvtd}t d|d dj|}||kstd S )Nr   r   r   r   r   r   r*   l      !;o rn   rn   r;   )r   Z_min_fitting_elementr    )r   r?   big_numr   r   r   test_min_fitting_element[  s    z'TestRangeIndex.test_min_fitting_elementc             C   s   t dddjd}d|kstt ddjd}d|ks:tt d	ddjd}d|ksXtt d
ddjd}d|ksvtd}t d
|d dj|}||kstd S )Nr   r   r         r   r   rB   r   r*   l      !;o rn   rn   r;   )r   Z_max_fitting_elementr    )r   r?   r   r   r   r   test_max_fitting_elementm  s    z'TestRangeIndex.test_max_fitting_elementc             C   s   d S )Nr   )r   r   r   r   test_pickle_compat_construction  s    z.TestRangeIndex.test_pickle_compat_constructionc             C   s  | j  }d|_|d }d}||ks&t|d }d}||ks>t|d d  }|}tj|| |ddd }ttjddgdd}tj|| |ddd }ttjddgdd}tj|| |dd
d }ttjddgdd}tj|| |d d d }t|jd d d dd}tj|| |dd d }ttjdddgdd}tj|| |dd d }ttjg tj	ddd}tj|| |dd d }t|jdd d dd}tj|| |dd d }t|jd d d dd}tj|| d S )Nr   r   r   r      rZ      )r   r*   rY   rB         r   (   )rV   r;   r;   rn   r;   r;   ir;   ir;   r;   r;   r;   r;   )
r   r   r    r0   r>   r   rE   arrayrT   rW   )r   r   resr@   Zindex_slicer   r   r   test_slice_specialised  sF    z%TestRangeIndex.test_slice_specialisedr   r   c             C   sb   |dkrdnd\}}t j|||}t|||}t|t|ksBtt|||}t|dks^td S )Nr   r*   )r   r*   )r*   r   )rE   r   r   rN   r    )r   r   r   r   r   r   r   r   r   test_len_specialised  s    z#TestRangeIndex.test_len_specialisedr   rB   rC   r   r      g@g      .@r]   Nr   )r   c             C   s   |j S )z6Inputs and expected outputs for RangeIndex.append test)r   )r   r   r   r   r   appends  s    zTestRangeIndex.appendsc             C   s`   |\}}|d j |dd  }tj||dd t|dkr\|d j |d }tj||dd d S )Nr   r   T)r:   r   )appendr0   r>   rN   )r   r   indicesr@   r?   Zresult2r   r   r   test_append  s    zTestRangeIndex.test_appendc             C   s   t ddd}|jddksttj|jddgttjddg t	j
tdd	 |jd W d Q R X d
|jksttt	j
tdd	 |jd W d Q R X d
|jkstd S )Nr   rZ   rC   r*   r   r   r   3)r$   Z_enginez'a'r]   )r   ra   r    r0   rS   Zget_indexerr   rE   r   r%   r&   rg   re   )r   r!   r   r   r   test_engineless_lookup  s     z%TestRangeIndex.test_engineless_lookupc             C   s4   | j d}|j g kst|jdddgks0td S )Nr   T)r    )_holderrd   r    )r   Z	empty_idxr   r   r   test_format_empty  s    
z TestRangeIndex.test_format_emptyr;   rn   )r   r   rz   )r{   r|   r}   r   r   r   iiir   ir   r   ir   rn   r   rn   rn   rn   r;   r;   r;   r;   )3__name__
__module____qualname__r   r   Z_compat_propsr%   Zfixturer   r   r#   r)   markZparametrizer+   r3   r9   rA   rI   rP   rU   rX   rk   rl   rr   rs   rv   ry   r   r   r   r   r   r   r   r   r   r   r   r   setr7   r   RII64F64OIr   r   r   r   r   r   r   r   r	      s   
 	6#

7& """$,&(((4r	   )ZnumpyrE   r%   Zpandas.core.dtypes.commonr   ZpandasrG   r   r   r   r   Zpandas._testingZ_testingr0   Ztest_numericr   r   r   r   r   r	   r   r   r   r   <module>   s   
