o
    Û­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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                   @   s&   e Zd Zej dddg¡dd„ ƒZdS )ÚTestDataFrameSetitemCoercionÚ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 ‚tjdtjd�|jd	d
…dt	ddƒff< |j
tjk ¡ sXJ ‚tjdtjd�|jd d …dt	ddƒff< |j
tjk ¡ svJ ‚d S )N)é   é   ©Údtypeé   é   )ÚaxisÚkeys)r   r   é   )r
   r   r   r   )r   ÚnpÚzerosÚfloat32ÚpdÚconcatÚ_consolidateÚonesÚlocÚsliceÚdtypesÚall)Úselfr	   ÚA© r    úf/var/www/html/CropPilot/venv/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Úparametrizer"   r    r    r    r!   r      s    r   c                  C   s`  t g d¢g d¢dœƒ} t g d¢g d¢dœƒ}|  ¡ }tjtdd�� d|jd< W d   ƒ n1 s1w   Y  t ||¡ |  ¡ }tjtdd�� d|jd< W d   ƒ n1 sWw   Y  t ||¡ |  ¡ }tjtdd�� d|jd	< W d   ƒ n1 s}w   Y  t ||¡ |  ¡ }tjtdd�� d|j	d	< W d   ƒ n1 s£w   Y  t ||¡ d S )
N)r   r   r   )r   é   r   )r   ÚB)r   ç333333ó?r   ú%Setting an item of incompatible dtype©Úmatchr+   )r   r*   )r   r   )
r   ÚcopyÚtmÚassert_produces_warningÚFutureWarningÚatÚassert_frame_equalr   ÚiatÚiloc)ÚorigÚexpectedÚdfr    r    r!   Ú
test_374770   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   r/   r3   r6   )Ú
indexer_alÚstartÚt1Út2Údtir7   r9   r    r    r!   Ú	test_6942R   s   rF   c                 C   s  t g d¢d�}d|d< d| |ƒd< t dg d¢ig d¢tjd�}t ||¡ tjtd	d
�� d| |ƒd< W d   ƒ n1 s=w   Y  t dg d¢ig d¢dgtjd�}t ||¡ tjtd	d
�� d| |ƒd< W d   ƒ n1 spw   Y  t dg d¢ig d¢dgtd�}t ||¡ d S )N)r   r*   ÚC©r?   r   ÚDr   )rG   rI   )r   r   r   )r?   r   r,   r-   ç     @F@)r   r   rJ   )r?   r@   r   Úhello)r   r   rK   )	r   r   Úint64r0   r4   r1   r2   Úfloat64Úobject)rA   r9   r8   r    r    r!   Ú
test_26395d   s:   ÿý
üÿý
ürO   zunwanted upcast)Úreasonc                  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   r)   ÚaÚb)r@   r   r
   )rQ   rR   é   )r   r?   )r   r   r   r   r   rL   r   rM   rN   r0   Úassert_series_equal)r9   Ú
exp_dtypesr    r    r!   Ú
test_15231†   s   rV   c                  C   st   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¡}|| jd d …d	d…f< t 	| |¡ d S )
Nr   r   r   r   r)   rQ   rR   )r   r   r   r   )
r   r   Úarrayr   r/   ÚvaluesÚreshaper6   r0   r4   )r9   r7   rX   r    r    r!   Ú.test_iloc_setitem_unnecesssary_float_upcasting“   s   ýÿrZ   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   r/   r   Únanr   r   r   r0   r4   )ÚtsÚdatar7   r9   r8   r    r    r!   Ú
test_12499¤   s   ÿrb   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   r*   )rQ   rR   Úcéÿÿÿÿr   r>   )r   r   ç      @)r   r   r   )r   r   r   )re   re   re   )rd   rd   rd   )r   r   r   r   r)   r   r   rH   )r   Úfrom_productr   Úranger@   r   r   r   rL   rM   r0   rT   r   )Úmir9   Úfillerr8   rU   r    r    r!   Ú
test_20476¼   s&    úÿ
0þrj   )Ú__doc__Únumpyr   r&   Úpandasr   r   r   r   r   r   r   Úpandas._testingÚ_testingr0   r   r:   rF   rO   r'   ÚxfailrV   rZ   rb   rj   r    r    r    r!   Ú<module>   s      ""

