U
    sVc                     @   s2   d dl Z d dlmZ d dlmZ G dd dZdS )    N)	DataFramec                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )
TestAssignc                 C   s:  t dddgdddgd}| }|j|j|j d}| }dd	dg|d
< t|| |jdd d}t|| t|| |jdd	dgd}t|| t|| |j|j|j d}|jdddjd
did}t|| |j|j|j d}| }dddg|d< t|| |jdd d}t|| d S )N                  AB)Cg      @r   c                 S   s   | j | j S N)r   r   x r   J/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/frame/methods/test_assign.py<lambda>       z(TestAssign.test_assign.<locals>.<lambda>r   r   )Zaxiscolumnsr      	   r   c                 S   s   | j | j S r   r
   r   r   r   r   r   (   r   )	r   copyassignr   r   tmassert_frame_equalZdroprename)selfdforiginalresultexpectedr   r   r   test_assign   s*    zTestAssign.test_assignc                 C   s   t ddgddgddggddgd	}|jd
ddg|jdd d}t ddd
ddgdddddgdddddggtdd	}t|| d S )Nr   r   r   r   r   r	   r   r   r   r      r   c                 S   s   | j S r   r   r   r   r   r   r   -   r   z1TestAssign.test_assign_multiple.<locals>.<lambda>)r   DEZABCDEr   r   r   listr   r   r    r!   r#   r$   r   r   r   test_assign_multiple+   s    "& zTestAssign.test_assign_multiplec                 C   s   t ddgddggddgd}|j|j|j |j|j d}t dddd	gddd
d	ggtdd}t|| |j|j|j |j|j d}t ddd	dgddd	d
ggtdd}t|| d S )Nr   r   r   r   r   r   r   )r'   r   r   ZABDCr   r'   ABCD)r   r   r   r   r*   r   r   r+   r   r   r   test_assign_order3   s    $$zTestAssign.test_assign_orderc              	   C   s   t dddgdddgd}d}tjt|d	 |d
d  W 5 Q R X d}tjt|d	 |j|j|j|j d W 5 Q R X d S )Nr   r   r   r   r   r	   r
   z7assign\(\) takes 1 positional argument but 2 were given)matchc                 S   s   | j S r   r   r   r   r   r   r   F   r   z,TestAssign.test_assign_bad.<locals>.<lambda>z''DataFrame' object has no attribute 'C'r.   )r   pytestZraises	TypeErrorr   AttributeErrorr   r   )r    r!   msgr   r   r   test_assign_bad@   s    zTestAssign.test_assign_badc                 C   s   t ddgddgd}|j|jdd d}t ddddgddddggtd	d
}t|| |jdd dd d}t ddddgddddggtd	d
}t|| d S )Nr   r   r   r   r
   c                 S   s   | d | d  S Nr   r   r   r   r   r   r   r   N   r   z2TestAssign.test_assign_dependent.<locals>.<lambda>r.   r/   r   c                 S   s   | j S r   r   r!   r   r   r   r   R   r   c                 S   s   | d | d  S r7   r   r8   r   r   r   r   R   r   r)   r+   r   r   r   test_assign_dependentK   s    $$z TestAssign.test_assign_dependentN)__name__
__module____qualname__r%   r,   r0   r6   r9   r   r   r   r   r      s
   #r   )r2   Zpandasr   Zpandas._testingZ_testingr   r   r   r   r   r   <module>   s   