U
    c                  	   @   s   d dl m Z  d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZ d dlmZ G dd dZejdddgefejd	d
ddejddfgdd Zejdddgddgfddgddgfgejdddgdd ZdS )    )datetimeN)	DataFrameIndex
MultiIndex
RangeIndexSeries
date_rangec                   @   sT   e Z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S )TestResetIndexc                 C   s   t ddddd }tdtjt|i|d}| }|jd t	dksPt
|d	}tj||d
d tddd}t|dggddgd}|d}|jd |kst
| d d |kst
d S )Nz1/1/2001z6/1/2001D)startendfreqvindexr   zM8[ns]r   F)Zcheck_namesi        g333333(@DateValuecolumns)r   Z
_with_freqr   nprandomZrandlenreset_indexdtypesdtypeAssertionError	set_indextmassert_frame_equalr   r   )selfZdtid1Zd2Zd3Zstampdf r$   P/tmp/pip-unpacked-wheel-g7fro6k3/pandas/tests/series/methods/test_reset_index.pytest_reset_index_dti_round_trip   s    

z.TestResetIndex.test_reset_index_dti_round_tripc              
   C   sF  t  d d }| }ddg|j_d|_| }d|ks>t|jdd}d|ksVt|jdd}|}|jddd	}|d kstt || t	d
gdddgddggddddddgddddddgddddddggd}t
tjd|d}|jdd}t|jdkst|jddgdd}t |jt|d t|t
sBtd S )N   hashcategoryvalueZvalue2nameTdrop)r.   inplacebarZoneZtwoZthreer         )levelscodes   r   levelr7   r.   )r   ZmakeDataFramestackr   namesr,   r   r   assert_series_equalr   r   r   r   Zrandnr   r   Zassert_index_equalr   Zget_level_values
isinstance)r!   r#   serss2Zreturn_valuer   rsr$   r$   r%   test_reset_index#   s.    ,zTestResetIndex.test_reset_indexc                 C   sN   t dddgttdddd}| jjd ks2t|jddjjd ksJtd S )	Nr1   r2      xr+   r   Tr-   )r   r   ranger   r   r,   r   r!   r>   r$   r$   r%   test_reset_index_nameC   s    z$TestResetIndex.test_reset_index_namec              
   C   s  t dddgdddggddd	gd
}ddgddgfD ]r}|ddgd	 }|j|d d}t||d |j|d d d}t||d |j|d}t|| |ddgj|dd}t||d	g  tjtdd |jddgd W 5 Q R X |dd }|j|d d}t||ddg  |j|d d d}t||ddg  |j|d dd}t||d  tjt	dd |jdddgd W 5 Q R X q2t
tdjg dd}t
td}t|| d S )Nr1   r2   rB      r'   r5   ABCr   r   r6   Tr8   zLevel E matchEzToo many levelsr-   )r   r   r   r   r    pytestraisesKeyErrorr;   
IndexErrorr   rD   )r!   r#   r3   r>   resultexpectedr$   r$   r%   test_reset_index_levelH   s2    "z%TestResetIndex.test_reset_index_levelc                 C   s^   t tdddd}| }t|jts*ttddgddggddgtddd	}t	|| d S )
Nr2   rH   int64)r,   r   r   r1   r   )stop)r   r   )
r   rD   r   r<   r   r   r   r   r   r    )r!   r>   Zseries_resultZseries_expectedr$   r$   r%   test_reset_index_ranger   s      z%TestResetIndex.test_reset_index_rangec              	   C   s   t td}tjtdd |jddd W 5 Q R X tjtdd |d W 5 Q R X t tdtddggd d	}tjtd
d |jddd W 5 Q R X d S )NrG   zdoes not match index namerK   ZwrongTr-   r1   r2   r   z	not found)r   rD   rN   rO   rP   r   r   from_productrE   r$   r$   r%   test_reset_index_drop_errors|   s     z+TestResetIndex.test_reset_index_drop_errorsc                 C   s~   |}|  }t|tstt|jt|jjd ks8t|jj|jjksLt|j dd}t|t	sft|jj|jjksztd S )Nr1   Tr-   )
r   r<   r   r   r   r   r   r3   r,   r   )r!   Zseries_with_multilevel_indexr=   Z	deleveledr$   r$   r%   test_reset_index_with_drop   s    z)TestResetIndex.test_reset_index_with_dropc              	   C   st   t dddgtdddgddd}d}tjt|d |dd	}W 5 Q R X tdddgdddgd
}t|| d S )Nr1   r2   rB   ar+   r   zwIn a future version of pandas all arguments of Series\.reset_index except for the argument 'level' will be keyword-onlyrK   F)r[   r   )r   r   r   Zassert_produces_warningFutureWarningr   r   r    )r!   r=   msgrR   rS   r$   r$   r%   test_drop_pos_args_deprecation   s     z-TestResetIndex.test_drop_pos_args_deprecationc                 C   s@   t tddd}|jdddd t tddd}t|| d S )Nr2   oldr+   newT)r,   r.   r/   )r   rD   r   r   r;   )r!   r=   rS   r$   r$   r%   -test_reset_index_inplace_and_drop_ignore_name   s    z<TestResetIndex.test_reset_index_inplace_and_drop_ignore_nameN)__name__
__module____qualname__r&   rA   rF   rT   rW   rY   rZ   r^   ra   r$   r$   r$   r%   r	      s    *
r	   zarray, dtyper[   bz	12-1-2000r2   zQ-DEC)Zperiodsr   )r   c                 C   sX   t ddgddg| g}tt|dd d  j}ttjtj|td}t	
|| d S )Nr   r1   g      ?g      ?)r   r   )Zlevel_0level_1Zlevel_2r   )r   rX   r   objectr   r   r   rU   Zfloat64r   r;   )arrayr   idxrR   rS   r$   r$   r%   7test_reset_index_dtypes_on_empty_series_with_multiindex   s    rj   znames, expected_namesrH   rf   allow_duplicatesFTc              	   C   s~   t dgtjdgdgg| dd}|rX|jdd}tdddgg|dg d}t|| n"tjt	dd	 |  W 5 Q R X d S )
Nr1   )r:   r   T)rk   r   r   zcannot insertrK   )
r   r   Zfrom_arraysr   r   r   r    rN   rO   
ValueError)r:   Zexpected_namesrk   r>   rR   rS   r$   r$   r%   test_column_name_duplicates   s    
 rm   )r   Znumpyr   rN   Zpandaspdr   r   r   r   r   r   Zpandas._testingZ_testingr   r	   markZparametrizerg   Zperiod_rangeZPeriodDtyperj   rm   r$   r$   r$   r%   <module>   s0     




