U
    `»{j  ã                   @   s¼   d 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dd„ Zdd	„ Zd
d„ Zejjdd�dd„ ƒZejjdd�dd„ ƒZejjdd�dd„ ƒZdd„ ZdS )z±
Tests for values coercion in setitem-like operations on DataFrame.

For the most part, these should be multi-column DataFrames, otherwise
we would share the tests with Series.
é    N)Ú	DataFrameÚ
MultiIndexÚNaTÚSeriesÚ	TimestampÚ
date_rangec                   @   s4   e Zd Zejjdd�ej dddg¡dd„ ƒƒZdS )	ÚTestDataFrameSetitemCoercionzUnnecessary cast.©ÚreasonÚconsolidateTFc              	   C   s  t tjdtjd�ƒ}tj||gdddgd�}|r8| ¡ }tjdtjd�|jdd…dt	ddƒff< |j
tjk ¡ stt‚d}tjt|d	��. tjd
tjd�|jdd…dt	ddƒff< W 5 Q R X |j
tjk ¡ sÎt‚tjd
tjd�|jd d …dt	ddƒff< |j
tjk ¡ �st‚d S )N)é   é   ©Údtypeé   é   )ZaxisÚkeys)r   r   é   ú.will attempt to set the values inplace instead©Úmatch)r   r   r   r   )r   ÚnpZzerosÚfloat32ÚpdÚconcatZ_consolidateZonesÚlocÚsliceÚdtypesÚallÚAssertionErrorÚtmÚassert_produces_warningÚFutureWarning)Úselfr   ÚAÚmsg© r&   úh/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/frame/indexing/test_coercion.pyÚ#test_loc_setitem_multiindex_columns   s    (2(z@TestDataFrameSetitemCoercion.test_loc_setitem_multiindex_columnsN)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚxfailZparametrizer(   r&   r&   r&   r'   r      s   r   c                  C   s°   t dddgdddgdœƒ} t dddgdddgdœƒ}|  ¡ }d|jd< t ||¡ |  ¡ }d|jd< t ||¡ |  ¡ }d|jd	< t ||¡ |  ¡ }d|jd	< t ||¡ d S )
Nr   r   r   é   r   )r$   ÚBg333333ó?)r   r0   )r   r   )r   ÚcopyÚatr    Úassert_frame_equalr   ZiatÚiloc)ÚorigÚexpectedÚdfr&   r&   r'   Ú
test_374773   s    



r8   c                 C   sx   t dƒ}t dƒ}t dƒ}t|dd�}t|ddgd�}| ¡ }|| |ƒ|df< d	|d< ||j|df< |jd
 |kstt‚d S )Nz
2014-04-01z2014-04-23 12:42:38.883082z2014-04-24 01:33:30.040039r   )ZperiodsZtimenowÚLive©ÚindexÚcolumnsT)r   r   )r   r   r   r1   r2   r4   r   )Ú
indexer_alÚstartÚt1Út2Zdtir5   r7   r&   r&   r'   Ú	test_6942I   s    rA   c                 C   sÂ   t dddgd�}d|d< d| |ƒd< t ddddgidddgtjd	�}t ||¡ d
| |ƒd< t dddd
gidddgtjd	�}t ||¡ d| |ƒd< t ddddgidddgtd	�}t ||¡ d S )Nr$   r0   ÚC©r;   r   ÚDr   )rB   rD   )r;   r   g     @F@Zhello)r   r   Úint64r    r3   Úfloat64Úobject)r=   r7   r6   r&   r&   r'   Ú
test_26395[   s      rH   zunwanted upcastr	   c                  C   s‚   t ddgddggddgd�} tdd	d
œƒ| jd< | jtjk ¡ sDt‚tddiƒ| jd< ttjtjgt	ddgd�}t
 | j|¡ d S )Nr   r   r   r/   ÚaÚb)r<   r   r   )rI   rJ   é   )r   r;   )r   r   r   r   r   rE   r   r   rF   rG   r    Úassert_series_equal)r7   Ú
exp_dtypesr&   r&   r'   Ú
test_15231m   s    rN   z Unnecessarily upcasts to float64c               	   C   s’   t tjddgtjd�tjddgtjd�ddgdœƒ} |  ¡ }| d	 j dd¡}d
}tjt	|d�� || j
d d …d	d…f< W 5 Q R X t | |¡ d S )Nr   r   r   r   r/   rI   rJ   )r   r   r   r   r   r   )r   r   Úarrayr   r1   ÚvaluesZreshaper    r!   r"   r4   r3   )r7   r5   rP   r%   r&   r&   r'   Ú.test_iloc_setitem_unnecesssary_float_upcastingz   s    ýÿ rQ   zunwanted casting to dt64c                  C   s    t ddd�} d| dœg}t|ƒ}| ¡ }tjtg|jd< tdtjgt| tgdd�dœƒ}t 	||¡ d| dœg}| ¡ }tjtg|jdd d …f< t 	||¡ d S )	Nz2016-03-01 03:13:22.98986ÚUTC)Útzr   )ÚoneÚtwor   zdatetime64[ns, UTC]r   )
r   r   r1   r   Únanr   r   r   r    r3   )ÚtsÚdatar5   r7   r6   r&   r&   r'   Ú
test_12499�   s    ÿrY   c               	   C   sâ   t  ddgdddgg¡} tdtdƒ| d�}td	d
dggd tdƒdddgd�}||d< td	d	d	gd
d
d
gdddgdddgdddgdddgdœƒ}| |_tt tj¡gd
 t tj	¡g t tj¡gd  | d�}t
 |j|¡ d S )Nr$   r0   rI   rJ   Úcéÿÿÿÿr   r:   r   r   g      @)r   r   r   r   r/   r   rC   )r   Zfrom_productr   Úranger<   r   r   r   rE   rF   r    rL   r   )Úmir7   Zfillerr6   rM   r&   r&   r'   Ú
test_20476§   s&    $úÿ
0þr^   )Ú__doc__Únumpyr   r,   Zpandasr   r   r   r   r   r   r   Zpandas._testingZ_testingr    r   r8   rA   rH   r-   r.   rN   rQ   rY   r^   r&   r&   r&   r'   Ú<module>   s     


