
    Owgg                        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      `/var/www/horilla/myenv/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                  v   t        g dg dd      } t        g dg dd      }| j                         }t        j                  t        d      5  d|j
                  d<   d d d        t        j                  ||       | j                         }t        j                  t        d      5  d|j                  d<   d d d        t        j                  ||       | j                         }t        j                  t        d      5  d|j                  d	<   d d d        t        j                  ||       | j                         }t        j                  t        d      5  d|j                  d	<   d d d        t        j                  ||       y # 1 sw Y   ,xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ExY w)
N)r   r   r   )r      r   )r"   B)r   333333?r   %Setting an item of incompatible dtypematchr0   )r   r/   )r   r   )
r   copytmassert_produces_warningFutureWarningatassert_frame_equalr   iatiloc)origexpecteddfs      r#   
test_37477r?   0   st   9956Dy{;<H	B		#	#D
  f "h'	B		#	#D
  v "h'	B		#	#D
  t "h'	B		#	#D
   "h'3    s0   F
)FF#F/
FF #F,/F8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   r4   r8   r;   )
indexer_alstartt1t2dtir<   r>   s          r#   	test_6942rL   R   s    l#E	/	0B	/	0B
UA
&C3F(;<D	B')JrN5)#$BvJ BEE%
774=Br%   c                 h   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        dg dig dt        j                        }t        j                  ||       t        j
                  t        d	
      5  d | |      d<   d d d        t        dg dig dt              }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   DxY w)N)r"   r/   CrE   r   Dr   )rN   rP   )r   r   r   )rE   r   r1   r2        @F@)r   r   rQ   hello)r   r   rR   )	r   r   int64r5   r9   r6   r7   float64object)rG   r>   r=   s      r#   
test_26395rV   d   s
   		)BBsG JrN8#y)QH"h'		#	#D
 ( $(
2x ( #|,O2::VH"h'		#	#D
 + $+
2x + #/fUH"h'( (+ +s   2DD(D%(D1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)rF   r   r   )rY   rZ      )r   rE   )r   r   r   r   r   rS   r    rT   rU   r5   assert_series_equal)r>   
exp_dtypess     r#   
test_15231r^   |   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.   rY   rZ   )r   r   r   r   )
r   r   arrayr   r4   valuesreshaper;   r5   r9   )r>   r<   ra   s      r#   .test_iloc_setitem_unnecesssary_float_upcastingrc      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   r4   r   nanr   r   r   r5   r9   )tsdatar<   r>   r=   s        r#   
test_12499rl      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/   )rY   rZ   cr   rD   )r   r         @)r   r   r   )r   r   r   )rp   rp   rp   )ro   ro   ro   )r   r   r   r   r.   r   r   rO   )r   from_productr   rangerF   r   r   r   rS   rT   r5   r\   r   )mir>   fillerr=   r]   s        r#   
test_20476ru      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_testingr5   r
   r?   rL   rV   r*   xfailr^   rc   rl   ru   r,   r%   r#   <module>r|      s        . .4(D$(0 +,	2 -	2$" 45( 6(.2r%   