o
    5c                     @   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}|r| }tjdtjd|jdddt	ddff< |j
tjk s:J d}tjt|d	 tjd
tjd|jdddt	ddff< W d    n1 sbw   Y  |j
tjk sqJ tjd
tjd|jd d dt	ddff< |j
tjk sJ d S )N)      dtype      )axiskeys)r   r      .will attempt to set the values inplace insteadmatch)r   r   r   r   )r   npzerosfloat32pdconcat_consolidateoneslocslicedtypesalltmassert_produces_warningFutureWarning)selfr   Amsg r)   _/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/frame/indexing/test_coercion.py#test_loc_setitem_multiindex_columns   s   (*(z@TestDataFrameSetitemCoercion.test_loc_setitem_multiindex_columnsN)__name__
__module____qualname__pytestmarkxfailparametrizer+   r)   r)   r)   r*   r      s    r   c                  C   s   t g dg dd} t g dg dd}|  }d|jd< t|| |  }d|jd< t|| |  }d|jd< t|| |  }d|jd< t|| d S )N)r   r   r   )r      r   )r'   B)r   333333?r   r5   )r   r4   )r   r   )r   copyatr#   assert_frame_equalr   iatiloc)origexpecteddfr)   r)   r*   
test_374773   s   



r>   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s:J d S )Nz
2014-04-01z2014-04-23 12:42:38.883082z2014-04-24 01:33:30.040039r   )periodstimenowLiveindexcolumnsT)r   r   )r   r   r   r6   r7   r:   )
indexer_alstartt1t2dtir;   r=   r)   r)   r*   	test_6942I   s   rJ   c                 C   s   t g dd}d|d< d| |d< t dg dig dtjd}t|| d	| |d< t dg d
ig dtjd}t|| d| |d< t dg dig dtd}t|| d S )N)r'   r4   CrC   r   Dr   )rK   rM   )r   r   r   )rC   r        @F@)r   r   rN   hello)r   r   rO   )r   r   int64r#   r8   float64object)rE   r=   r<   r)   r)   r*   
test_26395[   s   rS   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 s"J tddi| jd< ttjtjgtddgd}t	
| j| d S )Nr   r   r   r3   ab)rD   r   r   )rT   rU      )r   rC   )r   r   r   r!   r   rP   r"   rQ   rR   r#   assert_series_equal)r=   
exp_dtypesr)   r)   r*   
test_15231m   s   rY   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 d    n1 sFw   Y  t| | d S )Nr   r   r   r   r3   rT   rU   )r   r   r   r   r   r   )r   r   arrayr   r6   valuesreshaper#   r$   r%   r:   r8   )r=   r;   r[   r(   r)   r)   r*   .test_iloc_setitem_unnecesssary_float_upcastingz   s   r]   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   r6   r   nanr   r   r   r#   r8   )tsdatar;   r=   r<   r)   r)   r*   
test_12499   s   re   c                  C   s   t ddgg dg} tdtd| d}tg dgd tdg dd}||d< tg dg d	g d
g dg dg dd}| |_tttjgd ttj	g ttjgd  | d}t
|j| d S )Nr'   r4   )rT   rU   cr   rB   )r   r         @)r   r   r   )r   r   r   )rh   rh   rh   )rg   rg   rg   )r   r   r   r   r3   r   r   rL   )r   from_productr   rangerD   r   r   r   rP   rQ   r#   rW   r!   )mir=   fillerr<   rX   r)   r)   r*   
test_20476   s&    
0rm   )__doc__numpyr   r/   pandasr   r   r   r   r   r   r   pandas._testing_testingr#   r   r>   rJ   rS   r0   r1   rY   r]   re   rm   r)   r)   r)   r*   <module>   s"     


