U
    b&                     @   sN   d dl m Z  d dlZd dlZd dlmZmZmZ d dlm	Z
 G dd dZdS )    )datetimeN)Index
RangeIndexSeriesc                   @   s6  e Zd Zejdddgejddi dddfd	i dddfd
i dddfdi dddfdi dddfdddidddfdddidddfgdd Zdd Zejdeddge	ddge
ddgg e
dde
dgdggdd Zejddedddddgdd Zdd Zd d! Zd"d# Zd$d% Zd&d' ZdS )(TestRangeIndexConstructorsnameNZfoozargs, kwargs, start, stop, step)   r   r      )r	   r   )r	   r      r
   )r   )r   r    startstopc           	      C   st   t |d|i|}ttj|||tjd|d}t|t s<t|j|ksJt|jt	|||ks`tt
j||dd d S )Nr   dtyper   equivexact)r   r   nparangeint64
isinstanceAssertionErrorr   _rangerangetmassert_index_equal)	selfargskwargsr   r   stepr   resultexpectedr   r   Q/tmp/pip-unpacked-wheel-ck39h295/pandas/tests/indexes/ranges/test_constructors.pytest_constructor   s    z+TestRangeIndexConstructors.test_constructorc              	   C   sr   d}t jt|d t  W 5 Q R X t jt|d tdd W 5 Q R X d}t jt|d td W 5 Q R X d S )Nz1RangeIndex\(\.\.\.\) must be called with integersmatchZFoor   zKIndex\(\.\.\.\) must be called with a collection of some kind, 0 was passedr   )pytestraises	TypeErrorr   r   )r   msgr   r   r#   test_constructor_invalid_args$   s    z8TestRangeIndexConstructors.test_constructor_invalid_argsr   ab
   c              	   C   s6   dt |j }tjt|d t| W 5 Q R X d S )Nz+Value needs to be a scalar value, was type r%   )type__name__r'   r(   r)   r   r   r   r*   r   r   r#   (test_constructor_additional_invalid_args4   s    zCTestRangeIndexConstructors.test_constructor_additional_invalid_argsi  c              	   C   s:   dt | d| }tjt|d t| W 5 Q R X d S )NzWrong type z for value r%   )r/   r'   r(   r)   r   r1   r   r   r#   (test_constructor_invalid_args_wrong_typeE   s    zCTestRangeIndexConstructors.test_constructor_invalid_args_wrong_typec              	   C   s   t ddd}t |dd}||s&tt |dd}tj||dd t |}tj||dd tjtdd	 t |d
d W 5 Q R X d S )Nr	   r   r
   FcopyTr   CIncorrect `dtype` passed: expected signed integer, received float64r%   float64r   )r   Z	identicalr   r   r   r'   r(   
ValueError)r   indexr!   r   r   r#   test_constructor_sameK   s    z0TestRangeIndexConstructors.test_constructor_samec                 C   s0   t tddd}t ddd}tj||dd d S )Nr	   r   r
   Tr   )r   r   r   r   )r   r!   r"   r   r   r#   test_constructor_range_object^   s    z8TestRangeIndexConstructors.test_constructor_range_objectc              	   C   s  t tddd}t ddd}tj||dd t tdd}t ddd}tj||dd t tdd}t ddd}tj||dd t td}t ddd}tj||dd ttddd}t ddd}tj||dd d}tjt|d	 t jtd
dd W 5 Q R X d S )Nr	   r   r
   Tr      r   zI(RangeIndex.)?from_range\(\) got an unexpected keyword argument( 'copy')?r%   r.   r4   )	r   Z
from_ranger   r   r   r   r'   r(   r)   )r   r!   r"   r*   r   r   r#   test_constructor_rangec   s&    z1TestRangeIndexConstructors.test_constructor_rangec                 C   s   t d}d|_t |}d|_|jdks*t|jdks8tt|}|jdksNtd|_|jdksbt|jdkspt|jdks~td S )Nr.   originalr5   new)r   r   r   r   )r   origr5   r?   r   r   r#   test_constructor_name   s    z0TestRangeIndexConstructors.test_constructor_namec              	   C   s   t jddddgtd}tdd}|jjt jks2ttj	t
dd t|d	}W 5 Q R X tj||d
d tjtdd tddd W 5 Q R X tjtdd tddd W 5 Q R X tjtdd tdddd W 5 Q R X d S )Nr	   r
         r   r   zwill not inferr%   r   r   r   zWrong type \<class 'str'\>110zWrong type \<class 'float'\>g?gffffff$@g?r6   r7   )r   arrayobjectr   valuesr   r   r   r   Zassert_produces_warningFutureWarningr   Zastyper   r'   r(   r)   r8   )r   Zarrr9   r"   r   r   r#   test_constructor_corner   s    
z2TestRangeIndexConstructors.test_constructor_corner)r0   
__module____qualname__r'   markZparametrizer$   r+   r   r   r   rF   r   r2   r   r3   r:   r;   r=   rA   rJ   r   r   r   r#   r      sB   





r   )r   Znumpyr   r'   Zpandasr   r   r   Zpandas._testingZ_testingr   r   r   r   r   r#   <module>   s
   