
    .i                        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      Zd Zd Zd Zej&                  j)                  d	
      d        Zd Zej&                  j)                  d
      d        Zd Zy)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                   T    e Zd Zej                  j                  dddg      d        Zy)TestDataFrameSetitemCoercionconsolidateTFc                 V   t        t        j                  dt        j                              }t	        j
                  ||gdddg      }|r|j                         }t        j                  dt        j                        |j                  dddt        dd      ff<   |j                  t        j                  k(  j                         sJ t        j                  dt        j                        |j                  d	d
dt        dd      ff<   |j                  t        j                  k(  j                         sJ t        j                  dt        j                        |j                  d d dt        dd      ff<   |j                  t        j                  k(  j                         sJ y )N)      dtype      )axiskeys)r   r      )r   r   r   r   )r   npzerosfloat32pdconcat_consolidateoneslocslicedtypesall)selfr   As      g/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/frame/indexing/test_coercion.py#test_loc_setitem_multiindex_columnsz@TestDataFrameSetitemCoercion.test_loc_setitem_multiindex_columns   s2    bhhvRZZ89IIq!f1Aq62 A')wwvRZZ'HacAuQ{##$BJJ&++---')wwvRZZ'HacAuQ{##$BJJ&++---%'WWV2::%Fa!U1a[!!"BJJ&++---    N)__name__
__module____qualname__pytestmarkparametrizer$    r%   r#   r
   r
      s)    [[]T5M:. ;.r%   r
   c                  @   t        g dg dd      } | j                         }t        j                  t        d      5  d|j
                  d<   d d d        t        j                  t        d      5  d|j                  d<   d d d        t        j                  t        d      5  d|j                  d<   d d d        t        j                  t        d      5  d|j                  d<   d d d        y # 1 sw Y   xY w# 1 sw Y   |xY w# 1 sw Y   UxY w# 1 sw Y   y xY w)	N)r   r   r   )r      r   )r"   BInvalid valuematchg333333?)r   r/   )r   r   )	r   copyr)   raises	TypeErroratr   iatiloc)origdfs     r#   
test_37477r;   1   s    9956D	B	y	8 f 
y	8 v 
y	8 t 
y	8      s/   C01C<$DD0C9<DDDc                    t        d      }t        d      }t        d      }t        |d      }t        |ddg      }|j                         }| | |      |df<   d	|d<   ||j                  |df<   |j
                  d
   |k(  sJ y )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   r3   r6   r8   )
indexer_alstartt1t2dtir9   r:   s          r#   	test_6942rH   C   s    l#E	/	0B	/	0B
UA
&C3F(;<D	B')JrN5)#$BvJ BEE%
774=Br%   c                    t        g d      }d|d<   d | |      d<   t        dg dig dt        j                        }t        j                  ||       t        j                  t        d	
      5  d | |      d<   d d d        t        j                  t        d	
      5  d | |      d<   d d d        y # 1 sw Y   9xY w# 1 sw Y   y xY w)N)r"   r/   CrA   r   Dr   )rJ   rL   )r   r   r   )rA   r   r0   r1   g     @F@hello)r   r   int64tmassert_frame_equalr)   r4   r5   )rC   r:   expecteds      r#   
test_26395rR   U   s    		)BBsG JrN8#y)QH"h'	y	8 (#'
2x ( 
y	8 +#*
2x + +( (+ +s   2B6!C6B?Czunwanted upcast)reasonc                     t        ddgddggddg      } t        dd	d
      | j                  d<   | j                  t        j
                  k(  j                         sJ t        ddi      | j                  d<   t        t        j
                  t        j                  gt        ddg      }t        j                  | j                  |       y )Nr   r   r   r.   ab)rB   r   r   )rU   rV      )r   rA   )r   r   r   r   r   rN   r    float64objectrO   assert_series_equal)r:   
exp_dtypess     r#   
test_15231r\   e   s    	QFQF#c3Z	8BQQ'(BFF1III!&&(((Qx BFF1I 2::.fS#JOJ299j1r%   c                  n   t        t        j                  ddgt        j                        t        j                  ddgt        j                        ddgd      } | j	                         }| d	   j
                  j                  dd      }|| j                  d d d	df<   t        j                  | |       y )
Nr   r   r   r   r.   rU   rV   )r   r   r   r   )
r   r   arrayr   r3   valuesreshaper8   rO   rP   )r:   r9   r_   s      r#   .test_iloc_setitem_unnecesssary_float_upcastingra   r   s    	xxAbjj1xxAbjj1Sz	

B 779DU\\!!!Q'FBGGAqsFO"d#r%   zunwanted casting to dt64c                     t        dd      } d| dg}t        |      }|j                         }t        j                  t
        g|j                  d<   t        dt        j                  gt        | t
        gd      d      }t        j                  ||       d| dg}|j                         }t        j                  t
        g|j                  dd d f<   t        j                  ||       y )	Nz2016-03-01 03:13:22.98986UTC)tzr   )onetwor   zdatetime64[ns, UTC]r   )
r   r   r3   r   nanr   r   r   rO   rP   )tsdatar9   r:   rQ   s        r#   
test_12499rj      s     
.5	9Bb!"DT?D	BBFF1IBFFFB9<Q$RSH "h'b!"D	BFFC=BFF1a4L"h'r%   c            	      8   t        j                  ddgg dg      } t        dt        d      |       }t        g dgdz  t        d      g d      }||d<   t        g dg d	g d
g dg dg dd      }| |_        t        t        j                  t        j                        gdz  t        j                  t        j                        gz   t        j                  t        j                        gdz  z   |       }t        j                  |j                  |       y )Nr"   r/   )rU   rV   cr   r@   )r   r         @)r   r   r   )r   r   r   )rn   rn   rn   )rm   rm   rm   )r   r   r   r   r.   r   r   rK   )r   from_productr   rangerB   r   r   r   rN   rX   rO   rZ   r   )mir:   fillerrQ   r[   s        r#   
test_20476rs      s    		 	 3*o!>	?B	2U1Xr	2B}q(a/RFBsG	
	H H	"((	q BHHRZZ$8#99RXXbhh=O<PST<TTJ 299j1r%   )__doc__numpyr   r)   pandasr   r   r   r   r   r   r   pandas._testing_testingrO   r
   r;   rH   rR   r*   xfailr\   ra   rj   rs   r,   r%   r#   <module>rz      s        . .4$$+  +,	2 -	2$" 45( 6(.2r%   