U
    *ifX                     @   sf   d dl Zd dlZd dlmZmZ d dlmZ G dd dZ	G dd de	Z
G dd de	Zd	d
 ZdS )    N)	DataFrameSeriesc                   @   sr   e Zd Zejdd Zdd Zejddddd	gd
d Z	dd Z
ejdddgdd Zdd Zdd ZdS )SharedSetAxisTestsc                 C   s   t dd S )NzImplemented by subclasses)NotImplementedError)self r   [/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/frame/methods/test_set_axis.pyobj   s    zSharedSetAxisTests.objc                 C   sB   t dd t| }| }||_|j|ddd}t|| d S )Nabcdr   Faxisinplace)listlencopyindexset_axistmassert_equalr   r	   	new_indexexpectedresultr   r   r   test_set_axis   s
    z SharedSetAxisTests.test_set_axisr   r   r      columnsc                 C   sp   |j dkr|dkrd S tdd t| }| }|dkrB||_n||_| }|j||dd t|| d S )Nr   )r   r   r
   )r   r   Tr   )	ndimr   r   r   r   r   r   r   r   )r   r   r	   r   r   r   r   r   r   test_set_axis_inplace_axis   s    z-SharedSetAxisTests.test_set_axis_inplace_axisc              	   C   sV   t dd t| }| }||_td  |j|dd}W 5 Q R X t|| d S )Nr
   F)r   )r   r   r   r   r   assert_produces_warningr   r   r   r   r   r   !test_set_axis_unnamed_kwarg_warns.   s    z4SharedSetAxisTests.test_set_axis_unnamed_kwarg_warns   Zfooc              	   C   s0   t jtdd |jtd|d W 5 Q R X d S )NzNo axis namedmatchabc)r   )pytestraises
ValueErrorr   r   )r   r   r	   r   r   r   test_set_axis_invalid_axis_name9   s    z2SharedSetAxisTests.test_set_axis_invalid_axis_namec              	   C   s(   d}t jt|d d |_W 5 Q R X d S )NzNIndex\(\.\.\.\) must be called with a collection of some kind, None was passedr!   )r$   r%   	TypeErrorr   r   r	   msgr   r   r   *test_set_axis_setattr_index_not_collection?   s    z=SharedSetAxisTests.test_set_axis_setattr_index_not_collectionc              	   C   s   dt | dt |d  d}tjt|d tt |d |_W 5 Q R X |jdkrtjtdd |jd d d |_W 5 Q R X d S )Nz#Length mismatch: Expected axis has z elements, new values have r   z	 elementsr!      zLength mismatch)	r   r$   r%   r&   nparanger   r   r   r)   r   r   r   (test_set_axis_setattr_index_wrong_lengthH   s    
z;SharedSetAxisTests.test_set_axis_setattr_index_wrong_lengthN)__name__
__module____qualname__r$   fixturer	   r   markZparametrizer   r   r'   r+   r/   r   r   r   r   r      s   


	r   c                   @   s   e Zd Zejdd ZdS )TestDataFrameSetAxisc                 C   s0   t dddgdddgddd	gd
dddgd}|S )Ng?g@gffffff
@g      @gffffff@g@g@g      @gffffff@)ABCi  i  i  r   )r   )r   dfr   r   r   r	   W   s
    zTestDataFrameSetAxis.objNr0   r1   r2   r$   r3   r	   r   r   r   r   r5   V   s   r5   c                   @   s   e Zd Zejdd ZdS )TestSeriesSetAxisc                 C   s    t tdddddgdd}|S )N   r   r          Zint64)r   Zdtype)r   r-   r.   )r   serr   r   r   r	   a   s    zTestSeriesSetAxis.objNr;   r   r   r   r   r<   `   s   r<   c               	   C   s   t ddddgi} d}tjt|d | dddgd}W 5 Q R X t ddddgidddgd	}t|| tdddg}d
}tjt|d |dddgd}W 5 Q R X tdddgdddgd	}t|| d S )Nar   r,   r    zxIn a future version of pandas all arguments of DataFrame\.set_axis except for the argument 'labels' will be keyword-onlyr!   r=   r   r9   zuIn a future version of pandas all arguments of Series\.set_axis except for the argument 'labels' will be keyword-only)r   r   r   FutureWarningr   Zassert_frame_equalr   Zassert_series_equal)r:   r*   r   r   r@   r   r   r   -test_nonkeyword_arguments_deprecation_warningg   s    rC   )numpyr-   r$   Zpandasr   r   Zpandas._testingZ_testingr   r   r5   r<   rC   r   r   r   r   <module>   s   K
