U
    sVc                     @   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 st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   npzerosfloat32pdconcatZ_consolidateZoneslocslicedtypesallAssertionErrortmassert_produces_warningFutureWarning)selfr   Amsg r'   M/tmp/pip-unpacked-wheel-xj8nt62q/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   r1   )r   r   )r   copyatr!   assert_frame_equalr   Ziatiloc)origexpecteddfr'   r'   r(   
test_374773   s    



r9   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timenowZLiveindexcolumnsT)r   r   )r   r   r   r2   r3   r5   r    )
indexer_alstartt1t2Zdtir6   r8   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%   r1   Cr;   r   Dr   )rB   rD   )r;   r   g     @F@Zhello)r   r   int64r!   r4   float64object)r=   r8   r7   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   r0   ab)r<   r   r   )rI   rJ      )r   r;   )r   r   r   r   r   rE   r   r    rF   rG   r!   assert_series_equal)r8   
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   r0   rI   rJ   )r   r   r   r   r   r   )r   r   arrayr   r2   valuesZreshaper!   r"   r#   r5   r4   )r8   r6   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   )ZoneZtwor   zdatetime64[ns, UTC]r   )
r   r   r2   r   nanr   r   r   r!   r4   )tsdatar6   r8   r7   r'   r'   r(   
test_12499   s    rW   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%   r1   rI   rJ   cr   r:   r   r   g      @)r   r   r   r   r0   r   rC   )r   Zfrom_productr   ranger<   r   r   r   rE   rF   r!   rL   r   )mir8   Zfillerr7   rM   r'   r'   r(   
test_20476   s&    $
0r\   )__doc__Znumpyr   r-   Zpandasr   r   r   r   r   r   r   Zpandas._testingZ_testingr!   r   r9   rA   rH   r.   r/   rN   rQ   rW   r\   r'   r'   r'   r(   <module>   s     


