o
    5c*                     @   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                   @   sv   e Zd Zejdd Zdd Zdd Zej	dg d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)NzImplemented by subclasses)NotImplementedError)self r   ^/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/frame/methods/test_set_axis.pyobj   s   zSharedSetAxisTests.objc                 C   st   t dd t| }| }||_d}tjt|d |j|ddd}W d    n1 s-w   Y  t|| d S )Nabcdz(set_axis 'inplace' keyword is deprecatedmatchr   Faxisinplace	listlencopyindextmassert_produces_warningFutureWarningset_axisassert_equal)r   r	   	new_indexexpectedmsgresultr   r   r   test_set_axis   s   z SharedSetAxisTests.test_set_axisc              	      sz  t dd t  } jd d    }||_tjtdd& t	t
  j|dddd W d    n1 s9w   Y  W d    n1 sHw   Y   j|dddt|  usaJ  jdkrot rnJ nt fd	d
t jd D rJ  j|dddt|  usJ  jdkrt sJ nt fdd
t jd D sJ  j|ddt|  usJ  jdkrt rJ nt fdd
t jd D rJ t	t
  j|ddd}W d    n	1 sw   Y  |d u sJ t|   jdkr't s%J d S t fdd
t jd D s;J d S )Nr
   z.Cannot specify both inplace=True and copy=Truer   r   T)r   r   r   )r   r      c                 3   8    | ]}t jd d |f  jd d |f V  qd S Nr   shares_memoryiloc.0ir	   r   r   r   	<genexpr>2   
    &
z8SharedSetAxisTests.test_set_axis_copy.<locals>.<genexpr>Fc                 3   r    r!   r"   r%   r(   r   r   r)   >   r*   r   c                 3   r    r!   r"   r%   r(   r   r   r)   K   r*   )r   r   c                 3   s8    | ]}t  jd d |f jd d |f V  qd S r!   r"   r%   )r	   origr   r   r)   Y   r*   )r   r   r$   r   r   pytestraises
ValueErrorr   r   r   r   r   ndimr#   anyrangeshapeall)r   r	   r   r   resr   )r	   r,   r   r   test_set_axis_copy   s\   


z%SharedSetAxisTests.test_set_axis_copyr   )r   r   r   columnsc                 C   s   |j dkr|dv rd S tdd t| }| }|dv r!||_n||_| }tt |j	||dd W d    n1 s@w   Y  t
|| d S )Nr   )r   r7   r
   )r   r   Tr   )r0   r   r   r   r   r7   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   sn   t dd t| }| }||_tjtdd |j|dd}W d    n1 s*w   Y  t|| d S )Nr
   zset_axis 'inplace' keywordr   F)r   r   )r   r	   r   r   r   r   r   r   !test_set_axis_unnamed_kwarg_warnsr   s   z4SharedSetAxisTests.test_set_axis_unnamed_kwarg_warns   fooc                 C   sF   t jtdd |jtd|d W d    d S 1 sw   Y  d S )NzNo axis namedr   abcr+   )r-   r.   r/   r   r   )r   r   r	   r   r   r   test_set_axis_invalid_axis_name   s   "z2SharedSetAxisTests.test_set_axis_invalid_axis_namec                 C   s>   d}t jt|d d |_W d    d S 1 sw   Y  d S )NzNIndex\(\.\.\.\) must be called with a collection of some kind, None was passedr   )r-   r.   	TypeErrorr   r   r	   r   r   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 d    n1 s+w   Y  |jdkrXtjtdd |jd d d |_W d    d S 1 sQw   Y  d S 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   r0   r7   r?   r   r   r   (test_set_axis_setattr_index_wrong_length   s   

"z;SharedSetAxisTests.test_set_axis_setattr_index_wrong_lengthN)__name__
__module____qualname__r-   fixturer	   r   r6   markparametrizer8   r9   r=   r@   rD   r   r   r   r   r      s    
A

	r   c                   @      e Zd Zejdd ZdS )TestDataFrameSetAxisc                 C   s(   t g dg dg ddg dd}|S )N)g?g@gffffff
@)g      @gffffff@g@)g@g      @gffffff@)ABC)i  i  i  r   )r   )r   dfr   r   r   r	      s
   zTestDataFrameSetAxis.objNrE   rF   rG   r-   rH   r	   r   r   r   r   rL          rL   c                   @   rK   )TestSeriesSetAxisc                 C   s   t tdg ddd}|S )N   )r   r:         int64)r   dtype)r   rB   rC   )r   serr   r   r   r	      s   zTestSeriesSetAxis.objNrR   r   r   r   r   rT      rS   rT   c                  C   s   t dg di} d}tjt|d | g dd}W d    n1 s$w   Y  t dg dig dd}t|| tg d}d}tjt|d |g dd}W d    n1 s]w   Y  tg dg dd}t|| d S )	Na)r   rA   r:   zxIn a future version of pandas all arguments of DataFrame\.set_axis except for the argument 'labels' will be keyword-onlyr   )r   rA   rU   r   rP   zuIn a future version of pandas all arguments of Series\.set_axis except for the argument 'labels' will be keyword-only)r   r   r   r   r   assert_frame_equalr   assert_series_equal)rQ   r   r   r   rZ   r   r   r   -test_nonkeyword_arguments_deprecation_warning   s    r^   )numpyrB   r-   pandasr   r   pandas._testing_testingr   r   rL   rT   r^   r   r   r   r   <module>   s     
