
    bMhQ                        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                            d	
          d             Zd Zej                            d
          d             Z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                   Z    e Zd Zej                            dddg          d             ZdS )TestDataFrameSetitemCoercionconsolidateTFc                     t          t          j        dt          j                            }t	          j        ||gdddg          }|r|                                }t          j        dt          j                  |j        dddt          dd          ff<   |j
        t          j        k                                    sJ t          j        dt          j                  |j        d	d
dt          dd          ff<   |j
        t          j        k                                    sJ t          j        dt          j                  |j        d d dt          dd          ff<   |j
        t          j        k                                    sJ 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   As      i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/frame/indexing/test_coercion.py#test_loc_setitem_multiindex_columnsz@TestDataFrameSetitemCoercion.test_loc_setitem_multiindex_columns   sY    bhvRZ88899Iq!f1Aq6222 	!  A')wvRZ'H'H'HacAuQ{{##$BJ&++-----')wvRZ'H'H'HacAuQ{{##$BJ&++-----%'WV2:%F%F%Faaa!U1a[[!!"BJ&++-------    N)__name__
__module____qualname__pytestmarkparametrizer$    r%   r#   r
   r
      sD        []T5M::. . ;:. . .r%   r
   c                     t          g dg dd          } t          g dg dd          }|                                 }t          j        t          d          5  d|j        d<   d d d            n# 1 swxY w Y   t          j        ||           |                                 }t          j        t          d          5  d|j        d<   d d d            n# 1 swxY w Y   t          j        ||           |                                 }t          j        t          d          5  d|j        d	<   d d d            n# 1 swxY w Y   t          j        ||           |                                 }t          j        t          d          5  d|j	        d	<   d d d            n# 1 swxY w Y   t          j        ||           d S )
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   s   9999995566Dyyy{{{;;<<H	B		#D
 
 
   f               "h'''	B		#D
 
 
   v               "h'''	B		#D
 
 
   t               "h'''	B		#D
 
 
                  "h'''''sH   A33A7:A7CC C(D??EEF%%F),F)c                 8   t          d          }t          d          }t          d          }t          |d          }t          |ddg          }|                                }| | |          |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   r4   r8   r;   )
indexer_alstartt1t2dtir<   r>   s          r#   	test_6942rL   R   s    l##E	/	0	0B	/	0	0B
UA
&
&
&C3F(;<<<D	B')JJrNN5)#$BvJ BE%
74=Br%   c                 6   t          g d          }d|d<   d | |          d<   t          dg dig dt          j        dgt                    t          j        	          }t          j        ||           t          j        t          d
          5  d | |          d<   d d d            n# 1 swxY w Y   t          dg dig dt          j        dgt                    t          j
        	          }t          j        ||           t          j        t          d
          5  d | |          d<   d d d            n# 1 swxY w Y   t          dg dig dt          j        dgt                    t          	          }t          j        ||           d S )N)r"   r/   CrE   r   Dr   )rN   rP   )r   r   r   r   )rE   rF   r   r1   r2        @F@)r   r   rQ   hello)r   r   rR   )r   r   Indexobjectr   int64r5   r9   r6   r7   float64)rG   r>   r=   s      r#   
test_26395rW   d   sF   		)	)	)BBsG JJrNN8	iiioo#f---h	  H "h'''		#D
 
 
 ( ( $(

2x ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 	llloo#f---j	  H "h'''		#D
 
 
 + + $+

2x + + + + + + + + + + + + + + + 	ooooo#f---	  H "h'''''s$   B..B25B2&EEE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                                    sJ t          ddi          | j        d<   t          t          j        t          j        gt          ddg          }t          j
        | j        |           d S )Nr   r   r   r.   ab)rF   r   r   )rZ   r[      )r   rE   )r   r   r   r   r   rU   r    rV   rT   r5   assert_series_equal)r>   
exp_dtypess     r#   
test_15231r_      s    	QFQF#c3Z	8	8	8BQQ''((BF1II!&&(((((Qx  BF1I 2:.fS#JOOOJ29j11111r%   c                  d   t          t          j        ddgt          j                  t          j        ddgt          j                  ddgd          } |                                 }| d	         j                            dd          }|| j        d d d	df<   t          j	        | |           d S )
Nr   r   r   r   r.   rZ   r[   )r   r   r   r   )
r   r   arrayr   r4   valuesreshaper;   r5   r9   )r>   r<   rb   s      r#   .test_iloc_setitem_unnecesssary_float_upcastingrd      s    	xAbj111xAbj111Sz	
 	

 
B 7799DU\!!!Q''FBGAAAqsFO"d#####r%   zunwanted casting to dt64c                     t          dd          } d| dg}t          |          }|                                }t          j        t
          g|j        d<   t          dt          j        gt          | t
          gd          d          }t          j	        ||           d| dg}|                                }t          j        t
          g|j        dd d f<   t          j	        ||           d S )	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_12499rm      s     
.5	9	9	9Bb!!"DT??D	BBF1IBFFB9<Q$R$R$RSS H "h'''b!!"D	BFC=BF1aaa4L"h'''''r%   c            	      >   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        |           d S )Nr"   r/   )rZ   r[   cr   rD   )r   r         @)r   r   r   )r   r   r   )rq   rq   rq   )rp   rp   rp   )r   r   r   r   r.   r   r   rO   )r   from_productr   rangerF   r   r   r   rU   rV   r5   r]   r   )mir>   fillerr=   r^   s        r#   
test_20476rv      s1   		 3*ooo!>	?	?B	2U1XXr	2	2	2B}q(a///RRRFBsGyyyy||||||	
 	
	 	H H	"(		q BHRZ$8$8#99RXbh=O=O<PST<TT  J 29j11111r%   )__doc__numpyr   r)   pandasr   r   r   r   r   r   r   pandas._testing_testingr5   r
   r?   rL   rW   r*   xfailr_   rd   rm   rv   r,   r%   r#   <module>r}      su                                 . . . . . . . .4( ( (D  $$( $( $(N +,,	2 	2 -,	2$ $ $" 455( ( 65(.2 2 2 2 2r%   