
    Owg                     
   d dl Zd dlZd dlmZ d dlmZ d dlZd dlm	Z	m
Z
 d dlmZ d dlmZ  ej                   ddg      d	        Zd
 Zd Zd Zej*                  j-                  dddgddg      d        Zej*                  j-                  dddgddg      ej*                  j-                  d edd       ej2                  g d       ej2                  ddg      gg d      ej*                  j-                  d edd       ej2                  g d      ddggg d      d                      Zej*                  j-                  dddgddg      ej*                  j-                  d edd       ej2                  g d       ej2                  ddg      gg d      ej*                  j-                  d edd       ej2                  g d      ddggg d      d                      Zej*                  j-                  d ed d       ej2                  g d        ej2                  d dg      gg d      d!        Zd" Zd# Zej*                  j-                  dddgddg      d$        Zd% Z ej*                  j-                  dddgddg      d&        Z!ej*                  j-                  d ed'd       ej2                  g d       d'dggg d      d(        Z"ej*                  j-                  d)d* d+ d, d- d. d/ gg d0      ej*                  j-                  dddgddg      d1               Z#ej*                  j-                  dddgddg      d2        Z$ej*                  j-                  d)d3 d4 d5 d6 gg d7      d8        Z%d9 Z&ej*                  j-                  d)d: d; d< d= d> gg d?      d@        Z'ej*                  j-                  d)dA dB dC gg dD      dE        Z(dF Z)dG Z*ej*                  j-                  d ed d       ej2                  g d        ej2                  d dg      gg d      dH        Z+dI Z,dJ Z-dK Z.dL Z/ej*                  j-                  d)dM dN dO gg dD      dP        Z0dQ Z1ej*                  j-                  dRdSd'g      ej*                  j-                  dTejd                  dUfejf                  dVfejd                  d gd'ffejf                  d gd ffejd                   ed      d'ffejf                   ed      d ffg      ej*                  j-                  dWg dXg dYgddg      dZ                      Z4d[ Z5d\ Z6d] Z7d^ Z8d_ Z9y)`    N)SettingWithCopyWarning)is_float_dtype)	DataFrameSeries)	get_arraynumpynullable)paramsc                 v    | j                   dk(  rd }d }n| j                   dk(  rd }d }| j                   fS )Nr   c                      t        | i |S N)r   argskwargss     [/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/copy_view/test_indexing.pymake_dataframezbackend.<locals>.make_dataframe   s    d-f--    c                      t        | i |S r   )r   r   s     r   make_serieszbackend.<locals>.make_series   s    4*6**r   r	   c                     t        | i |}|j                         }|j                  D ]K  }t        ||   j                        st        ||   j                        r5||   j                  d      ||<   M |j                         S )NFloat64)r   convert_dtypescolumnsr   dtypeastypecopy)r   r   dfdf_nullablecols        r   r   zbackend.<locals>.make_dataframe   s    D+F+B++-K zz J!"S'--0$**: (33'7'>'>y'IK$	J ##%%r   c                  T    t        | i |}|j                         j                         S r   )r   r   r   )r   r   sers      r   r   zbackend.<locals>.make_series*   s)    $)&)C%%',,..r   )param)requestr   r   s      r   backendr$      sC    }}	.	+ 
*	$	&	/ ==.+55r   c                 "   | \  }}} |g dg dg dd      }|j                         }|ddg   }|r<t        j                  t        |d      t        |d            sJ d|j                  d<   n;t        j                  t        |d      t        |d            rJ d|j                  d<   t        j                  t        |d      t        |d            rJ  |g d	g dd
      }t        j                  ||       t        j                  ||       y )N                  皙?皙?333333?abcr3   r5   r   r   r   r   r(   r)   r3   r5   )r   npshares_memoryr   iloctmassert_frame_equal)r$   using_copy_on_write_r   r   df_origsubsetexpecteds           r   test_subset_column_selectionrC   5   s     OAy!	I	JBggiGc
^F	&# 6	"c8JKKKD##Ifc$:Ib#<NOOO D	&# 6	"c8JKKKy?@H&(+"g&r   c                    | \  }}} |g dg dg dd      }|ddg   }|r,t        j                  t        |d      t        |d            sJ d|j                  d<   t        j                  t        |d      t        |d            rJ |r,t        j                  t        |d      t        |d            sJ  |g dg dd	      }t	        j
                  ||       y )
Nr&   r*   r.   r2   r3   r5   r   r6   r8   )r9   r:   r   r;   r<   r=   )r$   r>   r?   r   r   rA   rB   s          r   *test_subset_column_selection_modify_parentrE   Q   s     OAy!	I	JBc
^F	&# 6	"c8JKKKBGGDM	&# 6	"c8JKKK	&# 6	"c8JKKKy?@H&(+r   c                    | \  }}} |g dg dg dd      }|j                         }|dd }|j                  j                          t        j                  t        |d      t        |d            sJ |r;d|j                  d	<   t        j                  t        |d      t        |d            r/J t        j                  |      5  d|j                  d	<   d d d        |j                  j                           |ddgd
dgddgdt        dd            }t        j                  ||       |rt        j                  ||       y d|j                  d<   t        j                  ||       y # 1 sw Y   xY w)Nr&   r*   r.   r2   r'   r)   r3   r   r6   r,   r-   r0   r1   index)r'   r   )r   _mgr_verify_integrityr9   r:   r   r;   r<   assert_cow_warningranger=   )	r$   r>   warn_copy_on_writer?   r   r   r@   rA   rB   s	            r   test_subset_row_slicerN   h   sO    OAy!	I	JBggiG!WF
KK!!#Ifc2Ib#4FGGGD##Ifc$:Ib#<NOOO ""#56 	" !FKK	" KK!!#1vQF#sDERSUVKXH&(+
b'* T
b'*	" 	"s   E++E4r   int64float64zsingle-blockzmixed-block)idsc                    | \  }}}|dk(  xr |dk(  xr | } |g dg dt        j                  g d|      d      }	|	j                         }
|	j                  d d dd f   }|j                  j                          |rgt        j                  t        |d	      t        |	d	            sJ d
|j                  d<   t        j                  t        |d	      t        |	d	            rJ |r.t        j                  |      5  d
|j                  d<   d d d        nV|rt        nd }t        j                  dd      5  t        j                  |      5  d
|j                  d<   d d d        d d d         |g dt        j                  g d|      d      }t        j                  ||       |s*|s|r&d
|
j                  d<   t        j                  |	|
       y t        j                  |	|
       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)NrO   r   r&   r*         	   r   r2   r'   r4   r   r6   chained_assignmentwarn)r   r,   r-   r4   r5   r   r'   )r9   arrayr   r;   rI   rJ   r:   r   r<   rK   r   pdoption_contextassert_produces_warningr=   )r$   r>   rM   using_array_managerr   dtype_backendr   r?   single_blockr   r@   rA   rY   rB   s                 r   test_subset_column_slicerc      s    #*M9a5]g5"!
!  
ibhhy.NO
B ggiGWWQU^F
KK!!#	&# 6	"c8JKKKD##Ifc$:Ib#<NOOO	""<0 	" !FKK	" 	" *6%43V< 	&++D1 &$%D!&	& yrxx	/OPQH&(+ $7<T
b'*
b'*#	" 	"& &	& 	&s0   >G*7HG6H*G36G?	;HHrow_indexerr'   r(   )FTT)slicemaskr\   column_indexerr4   r5   c                 f   | \  }}}	 |g dg dt        j                  g d|      d      }
|
j                         }|
j                  ||f   }t	        |t
              xr' t	        |t
              xr |xs |dk(  xr
 |dk(  xr | }t        j                  |xr |      5  d|j                  d	<   d d d         |dd
gt        j                  ddg|      dt        dd            }t        j                  ||       |rd|j                  d<   t        j                  |
|       y # 1 sw Y   wxY wNr&   r*   rS   rW   r2   rO   r   r   r6   r-   rU   rV   rZ   r'   r)   rG   )r'   r'   )r9   r\   r   loc
isinstancere   r<   rK   r;   rL   r=   r$   r   rd   rg   r`   r>   rM   ra   r   r?   r   r@   rA   mutate_parentrB   s                  r   test_subset_loc_rows_columnsrn      s9   8 #*M9a	ibhhy.NO
B ggiGVVK/0F
 	;& 		
~u-		
     ,!W,,++  
		1Cm	D D !f288QF%89q!H &(+T"g&    !D''D0r)   c                 f   | \  }}}	 |g dg dt        j                  g d|      d      }
|
j                         }|
j                  ||f   }t	        |t
              xr' t	        |t
              xr |xs |dk(  xr
 |dk(  xr | }t        j                  |xr |      5  d|j                  d	<   d d d         |dd
gt        j                  ddg|      dt        dd            }t        j                  ||       |rd|j                  d<   t        j                  |
|       y # 1 sw Y   wxY wri   )
r9   r\   r   r;   rk   re   r<   rK   rL   r=   rl   s                  r   test_subset_iloc_rows_columnsrq      s9   8 #*M9a	ibhhy.NO
B ggiGWW[.01F
 	;& 		
~u-		
     ,!W,,++  
		1Cm	D D !f288QF%89q!H &(+T"g& ro   indexer)TTFc                 L   | \  }}} |g dg dg dd      }|j                         }|dd }	|t        j                  u r>t        |t        j
                        r$|j                  dk(  rt        j                  d       |rd	 ||	      |<   n|r)t        j                         5  d	 ||	      |<   d d d        nb|t        j                  u rt        nd }
t        j                  d
d      5  t        j                  |
      5  d	 ||	      |<   d d d        d d d         |g dg dg ddt        dd            }t        j                  |	|       |rt        j                  ||       y d	|dd t        j                  ||       y # 1 sw Y   rxY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr'   r(   r)   r+   r+   r,   r-   rT   r/   r0   r1   皙?r2   r'   r+   intz&setitem with labels selects on columnsr   rX   rY   )r   r   r+   )r   r   rT   )        ry   rw   rG   r)   )r   r<   setitemrk   r9   ndarrayr   pytestskiprK   r   r]   r^   r_   rL   r=   )r$   
indexer_sirr   r>   rM   r?   r   r   r@   rA   rY   rB   s               r    test_subset_set_with_row_indexerr   :  s    OAy!	L?ST	UBggiG!WF 	bjj w

+MMU"<=&'
67#	""$ 	,*+Jvw'	, 	, *4rzz)A%t3V< 	0++D1 0./
6"7+0	0 io>eAqkH &(+
b'* !
b'*'	, 	,0 0	0 	0s0   "F'F=F	FFF	FF#c                    | \  }}} |g dg dg dd      }|j                         }|dd }|dkD  }|rd||<   nk|r#t        j                         5  d||<   d d d        nFt        j                  d	d
      5  t        j
                  t              5  d||<   d d d        d d d         |g dg dg ddt        dd            }	t        j                  ||	       |rt        j                  ||       y d|j                  d<   d|j                  dddf<   t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nrt   ru   rv   r2   r'   r+   r)   r   rX   rY   )r(   r)   r   )r   r   r   )r0   r1   rw   rG   )r)   r3   r4   )
r   r<   rK   r]   r^   r_   r   rL   r=   rj   )
r$   r>   rM   r?   r   r   r@   rA   rf   rB   s
             r   test_subset_set_with_maskr   i  sL   OAy!	L?ST	UBggiG!WFA:Dt	""$ 	F4L	 	 3V< 	!++,BC ! t!	! i.>?uQPQ{H &(+
b'*  F !AaCH
b'*%	 	! !	! 	!s0   D,6ED8E,D58E	=EEc                 f   | \  }}} |g dg dg dd      }|j                         }|dd }|dk(  rt        j                  dd	gd
      }	nt        j                  dd	gd      }	|s|r|	|d<   nFt        j                  dd      5  t        j                  t              5  |	|d<   d d d        d d d        |j                  j                           |dd	gddgddgdt        dd            }
t        j                  ||
       t        j                  ||       y # 1 sw Y   vxY w# 1 sw Y   zxY w)Nr&   r*   r.   r2   r'   r)   r   
      rO   rW   Int64r3   rX   rY   r,   r-   r0   r1   rG   )r   r9   r\   r]   r^   r<   r_   r   rI   rJ   rL   r=   )r$   r>   rM   ra   r   r?   r   r@   rA   arrrB   s              r   test_subset_set_columnr     s#   ")M9a	I	JBggiG!WFhhBxw/hhBxw/0s3V< 	"++,BC "!s"	" KK!!#2haV3*5U1a[H &(+"g&" "	" 	"s$   D' D&D'D$	 D''D0c                 
   | \  }}} |g dg dt        j                  g d|      d      }|j                         }|dd }	|r+t        j                  dd	gd
      |	j                  d d df<   n|rHt	        j
                         5  t        j                  dd	gd
      |	j                  d d df<   d d d        njt        j                  dd      5  t	        j                  d |       5  t        j                  dd	gd
      |	j                  d d df<   d d d        d d d        |	j                  j                           |dd	gddgt        j                  ddg|      dt        dd            }
t	        j                  |	|
       |rt	        j                  ||       y t        j                  dd	gd
      |j                  dddf<   t	        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr&   r*   rS   rW   r2   r'   r)   r   r   rO   r3   rX   rY   raise_on_extra_warningsr,   r-   rU   rV   rG   )r9   r\   r   rj   r<   rK   r]   r^   r_   rI   rJ   rL   r=   )r$   r>   rM   r`   r   r?   r   r   r@   rA   rB   s              r   test_subset_set_column_with_locr     s    OAy!	ibhhy.NO
B ggiG!WFXXr2hg>

1c6	""$ 	C!#2r('!BFJJq#v	C 	C 3V< 	G++,?(? G &(XXr2hg%F

1c6"	G	G KK!!#2haV"((Aq6*GHAqkH &(+
b'* !#"b AAaCH
b'*-	C 	CG G	G 	Gs0   +G!G9)+G-G9!G*-G6	2G99Hc                    | \  }}} |dg di      }|j                         }|dd }|rd|j                  d d df<   n|r1t        j                         5  d|j                  d d df<   d d d        nSt	        j
                  dd      5  t        j                  d |       5  d|j                  d d df<   d d d        d d d        |j                  j                           |dddgit        dd      	      }	t        j                  ||	       |rt        j                  ||       y d|j                  dddf<   t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)
Nr3   r&   r'   r)   r   rX   rY   r   rG   )r   rj   r<   rK   r]   r^   r_   rI   rJ   rL   r=   )
r$   r>   rM   r`   r?   r   r   r@   rA   rB   s
             r    test_subset_set_column_with_loc2r     sc    OAy!	C#	$BggiG!WF

1c6	""$ 	#!"FJJq#v	# 	# 3V< 	'++,?(? ' &'

1c6"	'	' KK!!##1veAqk:H&(+
b'* !"AaCH
b'*'	# 	#' '	' 	's0   EE' E4E'EE$	 E''E0c                   
 | \  }}} |g dg dt        j                  g d|      d      }|j                         }|dd 
|s|rd
d	d
g<   nHt        j                  dd      5  t        j                  t              5  d
d	d
g<   d d d        d d d        
j                  j                          |rt        
fddD              sJ  |ddgddgddgdt        dd            }	|dk(  r.|	d	   j                  d      |	d	<   |	d
   j                  d      |	d
<   t        j                  
|	       t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w)Nr&   r*   rS   rW   r2   r'   r)   r   r3   r5   rX   rY   c              3   T   K   | ]  }j                   j                  |       ! y wr   )rI   _has_no_reference).0irA   s     r   	<genexpr>z*test_subset_set_columns.<locals>.<genexpr>  s      D6;;003Ds   %()r   r(   r,   r-   rG   r	   rO   )r9   r\   r   r]   r^   r<   r_   r   rI   rJ   allrL   r   r=   )r$   r>   rM   r   ra   r   r?   r   r@   rB   rA   s             @r   test_subset_set_columnsr     s]    #*M9a	ibhhy.NO
B ggiG!WF0Sz3V< 	'++,BC '%&Sz"'	' KK!!#DVDDDD1vQF!Q@aQRTH
" !,,W5 ,,W5&(+"g&' '	' 	's$   &E EEE	EEr3   c                    | \  }}} |g dg dg dd      }|j                         }|dd }|rd|j                  d d |f<   ne|r1t        j                         5  d|j                  d d |f<   d d d        n2t	        j
                  dd	      5  d|j                  d d |f<   d d d        |j                  j                           |ddgd
d
gddgdt        dd            }	t        j                  ||	       |rt        j                  ||       y d|j                  ddddgf<   t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w)Nr&   r.   r*   r2   r'   r)   r   rX   rY   ry   r,   r-   rG   r(   r3   r4   )
r   rj   r<   rK   r]   r^   rI   rJ   rL   r=   )
r$   rr   r>   rM   r?   r   r   r@   rA   rB   s
             r   #test_subset_set_with_column_indexerr     sJ    OAy!	yI	JBggiG!WF!"

1g:	""$ 	'%&FJJq'z"	' 	' 3V< 	' &'FJJq'z"	'
 KK!!#1vS#JaVDERSUVKXH&(+
b'*
 ()AaC#sO$
b'*%	' 	'	' 	's   D<E<EEmethodc                     | ddg   dd S Nr3   r4   r   r(    r   s    r   <lambda>r   B  s    2sCj>!A& r   c                     | dd ddg   S Nr   r(   r3   r4   r   r   s    r   r   r   C  s    2a7C:& r   c                 *    | ddg   j                   dd S r   r;   r   s    r   r   r   D  s    2sCj>&&q+ r   c                 *    | ddg   j                   dd S )Nr3   r4   r   r'   rj   r   s    r   r   r   E  s    2sCj>%%a* r   c                 2    | dd j                   d d ddf   S )Nr   r(   r   r   s    r   r   r   F  s    2a7<<1Q3' r   c                 2    | dd j                   d d ddf   S r   r   r   s    r   r   r   G  s    2a7;;q#c'z* r   )zrow-getitem-slicezcolumn-getitemzrow-iloc-slicezrow-loc-slicecolumn-iloc-slicecolumn-loc-slicec                    |\  }}} |g dg dt        j                  g d|      d      }	|	j                         }
| j                  j                  j
                  }|s|dv }n|j                  d      } ||	      }t        j                  |xr |      5  d|j                  d	<   d d d        |s|st        j                  |	|
       n|	j                  d	   dk(  sJ  ||	      }t        j                  |xr |      5  d|	j                  d	<   d d d         |d
dgddgd      }|s|st        j                  ||       y |j                  d	   dk(  sJ y # 1 sw Y   xY w# 1 sw Y   TxY w)Nr&   r*   rS   rW   r2   )z$numpy-single-block-column-iloc-slicez#numpy-single-block-column-loc-slice)r   r   r   r6   r'   r(   r+   r,   r3   r4   )r9   r\   r   nodecallspecidendswithr<   rK   r;   r=   )r#   r$   r   r   r>   r`   rM   r?   r   r   r@   test_callspecsubset_is_viewrA   rB   s                  r   test_subset_chained_getitemr   ?  sk   B OAy!	ibhhy.NO
B ggiG LL)),,M& +
 
 '//5

 BZF			1Dn	E D>
b'*wwt}!!! BZF			1Dn	E 1vQF34H.
fh/{{4 A%%%  s   E?E"E"E+c                    | \  }}} |g dg dt        j                  g d|      d      }|j                         }|d d  d   dd }	|j                          t	        j
                  |      5  d|	j                  d<   d d d        |rt	        j                  ||       n|j                  d	   dk(  sJ |d d  d   dd }	|j                          t	        j
                  |      5  d|j                  d	<   d d d         |d
dgd      }
|rt	        j                  |	|
       y |	j                  d   dk(  sJ y # 1 sw Y   xY w# 1 sw Y   OxY w)Nr&   r*   rS   rW   r2   r3   r   r(   r6   r'   name)	r9   r\   r   _clear_item_cacher<   rK   r;   r=   assert_series_equal)r$   r   r>   rM   ra   r   r   r   r@   rA   rB   s              r   "test_subset_chained_getitem_columnr     sB    (/$M9f	ibhhy.NO
B ggiG U3Z!_F			1	2 A
b'*wwt}!!! U3Z!_F			1	2 q!f3'H
vx0{{1~"""!  s   .D5#E5D>E
c                     | dd dd S Nr3   r5   r4   r   ss    r   r   r     s    !C*S% r   c                 :    | j                   dd j                   dd S )Nr   r)   r(   r   r   s    r   r   r     s    !&&1+""1Q' r   c                 :    | j                   dd j                   dd S r   r   r   s    r   r   r     s    !%%C.$$S- r   c                     | j                   dd j                  dd j                  dd j                   dd j                  dd S )Nr3   r5   r   r)   r(   r4   r'   )rj   r;   r   s    r   r   r     sL    !%%C.	a	a 
S 
a	 r   )getitemr;   rj   z
long-chainc                 H   | \  }}} |g dg d      }|j                         } ||      }t        j                  |      5  d|j                  d<   d d d        |rt        j                  ||       n|j                  d   dk(  sJ |j                  dd j                  dd }t        j                  |      5  d|j                  d<   d d d         |ddgdd	g      }	|rt        j                  ||	       y |j                  d   dk(  sJ y # 1 sw Y   xY w# 1 sw Y   QxY w)
Nr&   r2   rG   r   r)   r(   r'   r3   r4   r   r<   rK   r;   r   )
r$   r   r>   rM   r?   r   r   s_origrA   rB   s
             r   "test_subset_chained_getitem_seriesr     s   & LAq&y0AVVXF AYF			1	2 A
q&)vvayA~~ VVAa[a"F			1	2 q	q!fS#J/H
vx0{{1~"""  s   D8DDD!c                    t        g dg dg dd      }|j                         }|d d  j                  d   j                  dd }t        j                  |      5  d|j                  d<   d d d        | s|rt        j
                  ||       n|j                  d   dk(  sJ |d d  j                  d   j                  dd }t        j                  |      5  d|j                  d<   d d d        t        dd	gd
dgd      }| s|rt        j                  ||       y |j                  d   dk(  sJ y # 1 sw Y   xY w# 1 sw Y   WxY w)Nr&   r*   rS   r2   r   r(   r6   r'   r+   r3   r4   )rH   r   )r   r   r;   r<   rK   r=   r   r   )r>   r`   rM   r   r@   rA   rB   s          r   $test_subset_chained_single_block_rowr     s0    
C	DBggiG UZZ]!$F			1	2 A1
b'*wwt}!!! UZZ]!$F			1	2 q!fS#JQ7H1
vx0{{1~"""  s   D/D;/D8;Ec                     | d d  S r   r   r   s    r   r   r     s
    2a5 r   c                 ,    | j                   d d d d f   S r   r   r   s    r   r   r     s    266!Q$< r   c                      | j                   d d  S r   r   r   s    r   r   r     s    266!9 r   c                 ,    | j                   d d d d f   S r   r   r   s    r   r   r     s    2771a4= r   c                      | j                   d d  S r   r   r   s    r   r   r     s    2771: r   )r   rj   zloc-rowsr;   z	iloc-rowsc                 <   | \  }}} |g dg dg dd      }|j                         } ||      }	|	|usJ t        j                  |      5  d|	j                  d<   d d d        |rt        j                  ||       y |j                  d   dk(  sJ y # 1 sw Y   7xY w)Nr&   r*   rS   r2   r   r6   )r   r<   rK   r;   r=   )
r$   r   r>   rM   ra   r   r?   r   r@   df2s
             r   test_null_slicer     s     #*M9a	C	DBggiG
*C b== 
		1	2 
b'*wwt}!!! s   BBc                     | d d  S r   r   r   s    r   r   r     s
    !A$ r   c                      | j                   d d  S r   r   r   s    r   r   r     s    !%%( r   c                      | j                   d d  S r   r   r   s    r   r   r     s    !&&) r   )r   rj   r;   c                 4   | \  }}} |g dg d      }|j                         } ||      }||usJ t        j                  |      5  d|j                  d<   d d d        |rt        j                  ||       y |j                  d   dk(  sJ y # 1 sw Y   7xY w)Nr&   r2   rG   r   r   )	r$   r   r>   rM   r?   r   r   r   s2s	            r   test_null_slice_seriesr     s     LAq&y0AVVXF	B Q;; 
		1	2 

q&)vvayA~~ s   BBc                    | \  }}} |g dg d      }|j                         }|d d  }t        j                  t        |      t        |            sJ t	        j
                  |      5  d|j                  d<   d d d        |r*t        j                  t        |      t        |            rJ  |g dg d      }t	        j                  ||       |rt	        j                  ||       y |j                  d   dk(  sJ y # 1 sw Y   xY w)Nr&   r2   rG   r   r7   )r   r9   r:   r   r<   rK   r;   r   )	r$   r>   rM   r?   r   r   r   rA   rB   s	            r   test_series_getitem_slicer   7  s    LAq&y0AVVXFqTFIf-y|<<<			1	2 A ##If$5y|DDDi7H68,
q&) vvayA~~ s   )C??Dc                    t        g d      }|j                         }|d   }t        j                  t	        |      t	        |            sJ t        j                  |      5  d|j                  d<   d d d        | r*t        j                  t	        |      t	        |            rJ t        g d      }t        j                  ||       | rt        j                  ||       y |j                  d   dk(  sJ y # 1 sw Y   xY w)Nr&   .r   r7   )	r   r   r9   r:   r   r<   rK   r;   r   )r>   rM   r   r   rA   rB   s         r   test_series_getitem_ellipsisr   Q  s    yAVVXFsVFIf-y|<<<			1	2 A ##If$5y|DDDi H68,
q&) vvayA~~ s   "C77D c                 ~   | \  }}} |g dg d      }|j                         }|d d  }	d }
d}|t        j                  u r9t        |t        j
                        r|j                  j                  dk(  rt        }
|r-t        j                  |
d u      5  d ||	      |<   d d d        n+t        j                  |
|      5  d ||	      |<   d d d         |g d	g d      }t        j                  |	|       |rt        j                  ||       y t        j                  ||       y # 1 sw Y   ]xY w# 1 sw Y   ixY w)
Nr&   r2   rG   z;Series.__setitem__ treating keys as positions is deprecatedr   r   r   match)r   r   r)   )r   r<   rz   rk   r9   r{   r   kindFutureWarningrK   r_   r   )r$   r~   rr   r>   rM   r?   r   r   r   rA   rY   msgrB   s                r   #test_series_subset_set_with_indexerr   j  s    LAq&y0AVVXFqTFD
GCbjj w

+MM#%""4t;KL 	,*+Jvw'	, 	, ''C8 	,*+Jvw'	,i7H68,
q&)
q(+	, 	,	, 	,s   D'?D3'D03D<c                 n   | \  }}} |g dg dg dd      }|j                         }|d d  }t        j                  t        |d      t        |d            sJ |d= t        j                  t        |d      t        |d            sJ t	        j
                  ||       t	        j
                  ||ddg          |j                  j                          t	        j                  |xr |dk(        5  d	|j                  d
<   d d d        t        j                  t        |d      t        |d            sJ |j                         }t	        j                  |      5  d|j                  d<   d d d        |rt	        j
                  ||       y |j                  d   dk(  sJ y # 1 sw Y   xY w# 1 sw Y   CxY w)Nr&   r*   r.   r2   r3   r4   r5   r      )r   r4   d   r   r3   )
r   r9   r:   r   r<   r=   rI   rJ   rK   rj   )	r$   r>   rM   ra   r   r?   r   r@   r   s	            r   test_del_framer     s    #*M9a	I	JBggiG
Q%CIb#.	#s0CDDDCIb#.	#s0CDDD"g&#wSz23HH 			1Nmw6N	O vIb#.	#s0CDDDggiG			1	2 
b'*vvf~$$$ 
 s   0FF+F(+F4c                    | \  }}} |g dg d      }|j                         }|d d  }t        j                  t        |      t        |            sJ |d= t        j                  t        |      t        |            rJ t	        j
                  ||       t	        j
                  ||ddg          |j                  }d|j                  d<   |d   dk(  sJ y )	Nr&   r2   rG   r3   r4   r5   r   r   )r   r9   r:   r   r<   r   valuesrj   )r$   r?   r   r   r   r   r   s          r   test_del_seriesr     s    LAq&y0AVVXF	
1BIaL)B-888
3	!im<<<1f%2vsCj12 YYFBFF3K!9r   c                    | \  }}} |g dg dg dd      }|j                         }|d   }	t        j                  t        |	d      t        |d            sJ |s|rd|	d<   nt|r#t	        j
                         5  d|	d<   d d d        nO|dk(  rt        nd }
t        j                  dd	      5  t	        j                  |
      5  d|	d<   d d d        d d d         |g d
d      }t	        j                  |	|       |r3t	        j                  ||       t	        j                  |d   |d          y d|j                  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)Nr&   r*   r.   r2   r3   r   r   rX   rY   r7   r   r6   )r   r9   r:   r   r<   rK   r   r]   r^   r_   r   r=   r;   )r$   r>   rM   r`   ra   r   r   r   r@   r   rY   rB   s               r   test_column_as_seriesr     sd    (/$M9f	I	JBggiG
3AIa-yS/ABBB1!&&( !  .;g-E)4D""#7@ //5 AaD ic*H1h'
b'*
r#w5T
b'*# 
  s0   :E,E-E!E-E!E*	&E--E6c                    | \  }}} |g dg dg dd      }|j                         }|d   }	|dk(  rTt        j                  |      5  t        j                  t
        d      5  d	|	d
<   d d d        d d d         |g dd      }
n|s|s|r;t        j                  t        d      5  d	|	d
<   d d d         |g dt        d      }
nrt        j                  dd      5  dj                  ddg      }t        j                  t        t        f|      5  d	|	d
<   d d d        d d d         |g dt        d      }
t        j                  |	|
       |r3t        j                  ||       t        j                  |d   |d          y |
|d<   t        j                  ||       y # 1 sw Y   9xY w# 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   xY w)Nr&   r*   r.   r2   r3   r	   zInvalid valuer   foor   r   zincompatible dtype)r   r(   r)   )r   r   rX   rY   |zAA value is trying to be set on a copy of a slice from a DataFrame3Setting an item of incompatible dtype is deprecated)r   r<   rK   r|   raises	TypeErrorr_   r   objectr]   r^   joinr   r   r=   )r$   r>   r`   rM   ra   r   r   r   r@   r   rB   r   s               r   %test_column_as_series_set_with_upcastr     s    (/$M9f	I	JBggiG
3A
"""#56 	y@ !	 )#.	 26I''=QR 	AaD	-vC@3V< 
	((WIC ++'7s  !
	 -vC@1h'
b'*
r#w5
b'*; 	 		 	 
	 
	sT   F.$F!*F.(F;5GGG!F+	&F..F8;GG	GGc                     | d   S Nr3   r   r   s    r   r   r     s
    2c7 r   c                 (    | j                   d d df   S r   r   r   s    r   r   r     s    266!S&> r   c                 (    | j                   d d df   S )Nr   r   r   s    r   r   r      s    2771a4= r   c                    |\  }}} |g dg dg dd      }	|	j                         }
 ||	      } ||	      }d| j                  j                  v }|s|s|r||usJ ||u sJ |s|rd|j                  d<   n|r-t	        j
                         5  d|j                  d<   d d d        nY|dk(  rt        nd }t        j                  dd	      5  t	        j                  |      5  d|j                  d<   d d d        d d d        |r0t	        j                  ||
d
          t	        j                  |	|
       y |j                  d   dk(  sJ y # 1 sw Y   PxY w# 1 sw Y   dxY w# 1 sw Y   hxY w)Nr&   r*   r.   r2   r;   r   r   rX   rY   r3   )r   r   r   r;   r<   rK   r   r]   r^   r_   r   r=   )r#   r$   r   r>   rM   r`   ra   r   r?   r   r@   s1r   is_ilocrY   s                  r   #test_column_as_series_no_item_cacher     s^   & #*M9a	I	JBggiG	B	B)))G0G||Rxx1
	""$ 	BGGAJ	 	 *7')A%t3V< 	++D1 
	 
r73<0
b'*wwqzQ	 	
 	 	s0   E	EE/EEE	EE'c                 V   | \  }}} |g dg dd      } |g d      }||d<   |r+t        j                  t        |d      t        |            s-J t        j                  t        |d      t        |            rJ d|d<    |g dg dg dd      }t        j                  ||       y )Nr&   r.   r   )r   r      newr   )r3   r4   r   )r9   r:   r   r<   r=   )r$   r>   r?   r   r   r   r   rB   s           r   %test_dataframe_add_column_from_seriesr   P  s     #Ay&	9	:B|ABuI	"e 4ilCCC##Ib%$8)A,GGG AaDy|TUH"h'r   valr   zindexer_func, indexerr   r6   r   r.   rS   c                    t        g dg d|d      }|j                         }|d d  }|dk(  r1|s/t        j                  t        d      5  | ||      |<   d d d        |dk(  r2|r0t        j                  t        d      5  | ||      |<   d d d        n0t        j
                  |xr |dk(        5  | ||      |<   d d d        | rot        j                  t        |d	      t        |d	            sJ t        j                  t        |d      t        |d            rJ t        j                  ||       y t        j                  t        |d
      t        |d
            sJ |dk(  r-t        j                  t        |d      t        |d            rJ y t        j                  t        |d      t        |d            sJ y # 1 sw Y   mxY w# 1 sw Y   xY w# 1 sw Y    xY w)Nr&   r*   r2   r3   r   r   z,incompatible dtype|Setting a value on a viewr   r4   r5   )
r   r   r<   r_   r   rK   r9   r:   r   r=   )	r>   rM   indexer_funcrr   r   r   r   r@   views	            r   )test_set_value_copy_only_necessary_columnr  c  s   ( 
=	>BggiGa5D
cz,''!V
 	, ),LW%	, cz(''!O
 	, ),LW%	, 	,
 ""#5#D#*E 	,(+LW%	, 	"c 2IdC4HIII##Ib#$6	$8LMMM
dG,	"c 2IdC4HIII#:''	"c(:IdC<PQQQQ##Ib#$6	$8LMMM-	, 	,
	, 	,
	, 	,s$   GG2GGGG&c                    t        g dt        j                  j                  g dg dg            }|j	                         }|d   }t        j                  t        |      t        |            sJ t        j                  |      5  d|j                  d<   d d d        | rt        j                  ||       y t        g dt        j                  j                  g dg dg            }t        j                  ||       y # 1 sw Y   kxY w)	Nr&   )r'   r'   r(   )r)   r+   r,   rG   r'   r   r   )r   r(   r)   )r   r]   
MultiIndexfrom_arraysr   r9   r:   r   r<   rK   r;   r   )r>   rM   r!   ser_origresultrB   s         r   test_series_midx_slicer    s    
"--";";Y	<R"S
TCxxzHVFIcNIf,=>>>			1	2 A
sH-r}}88)Y9OP
 	sH- s   DD
c                    t        ddgddd      }|j                         }|d   }| r|j                  j                  d      rJ |s,t	        j
                  t        |d      t        |d            sJ | r&d|j                  d	<   t        j                  ||       y |r-t        j                         5  d|j                  d	<   d d d        nPt        j                  d
d      5  t        j                  t              5  d|j                  d	<   d d d        d d d        |j                  d	   dk(  sJ y # 1 sw Y   xY w# 1 sw Y   2xY w# 1 sw Y   6xY w)Nr'   r(   )r3   x)r3   y)r4   r
  )r3   r   r	  r
  r   r6   rX   rY   )r   r   rI   r   r9   r:   r   r;   r<   r=   rK   r]   r^   r_   r   )r>   rM   r`   r   r@   new_dfs         r   test_getitem_midx_slicer    s9    
AA1E	FBggiGZF;;00333	"j 99VS;QRRRD
gr*&&( ($'D!( ( ""#7@ ,//0FG ,(+FKK%,, wwt}###( (, ,, ,s0   2D0!E;D<E0D9<E	EEc                    t        g dt        j                  j                  g d            }|d   }t	        j
                  t        |      t        |            sJ t        j                  |      5  d|j                  d<   d d d        | rEt        g dt        j                  j                  g d            }t        j                  ||       y y # 1 sw Y   QxY w)Nr&   ))r'   r(   r)   )r  r+   ))r(   r)   r+   rG   r  r   r   )r   r]   r  from_tuplesr9   r:   r   r<   rK   r;   r   )r>   rM   r!   r  rB   s        r   test_series_midx_tuples_slicer    s    
mm''(OPC [FIcNIf,=>>>			1	2 A--++,ST
 	sH-  s   3CCc            	      b   d } t         j                  j                   | dd       | dd       | dd       | dd      g      }t         j                  j                  g dd	d
g      }t	        d||      j                         j                  d      }|d   dk(  }|j                         }|j                  t         j                  |d d ddgf   d d f   }|j                  t         j                  d d d d ddgf   d d f   }t        j                  ||       t        j                  ||       y )Nc                 F    t        |      D cg c]  }|  | 
 c}S c c}w r   )rL   )prefixnr   s      r   mklblz/test_midx_read_only_bool_indexer.<locals>.mklbl  s"    (-a116(1#111s   Ar+   Br(   CD)r3   r   )r3   bar)r4   r   )r4   bahlvl0lvl1)namesr'   )rH   r   )axisr  C1C3)r]   r  from_productr  r   
sort_indexr   rj   
IndexSlicer<   r=   r   )r  idxcolsr   rf   expected_maskr  rB   s           r    test_midx_read_only_bool_indexerr*    s   2 --
$
$	sAc1uS!}eCmDC ==$$@QWHX % D 
1C	.	9	9	;	F	FA	F	NBlq DIIKMVVBMM$D$<"78!;<FvvbmmAq4,$67:;H&(+4/r   c                     t        dg di      }t        g dg dd      }|j                         }||j                  d d ddgf<   | rut        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            sJ |j                  j                  d      r.J t        j                  t        |d      t        |d            rJ d|j                  d	<   t        j                  ||       y )
Nr3   r&   r*   rZ   r4   r5   r'   r   r[   )r   r   rj   r9   r:   r   rI   r   r;   r<   r=   )r>   r   rhsrhs_origs       r   !test_loc_enlarging_with_dataframer.    s    	C#	$B
))4
5CxxzHBFF1sCj=	"c 2Ic34GHHH	"c 2Ic34GHHH77,,Q///##Ib#$6	#s8KLLLBGGDM#x(r   ):r   r9   r|   pandas.errorsr   pandas.core.dtypes.commonr   pandasr]   r   r   pandas._testing_testingr<   pandas.tests.copy_view.utilr   fixturer$   rC   rE   rN   markparametrizerc   re   r\   rn   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rj   r;   r  r  r  r  r*  r.  r   r   r   <module>r8     s     0 4   1 ,-6 .6F'8,.!+H gy!'F  (+(+V gy!'F   
1a[("((./1a&1AB"  
 
3_hbhh23c3Z@"  
0'0'f gy!'F   
1a[("((./1a&1AB"  
 
1a[("((./!Q8"  
0'0'f 
1a[("((./1a&1AB"  
'+
'+T+B'6 gy!'F  %+%+P"+J gy!'F  ''@ 
3_hbhh23c3Z@"  
+
+D &&+*'*	  & gy!'F  2&',2&j gy!'F  ##B %'-			 	1  ##:#6   	<  
"
"* 
 	#  442 
1a[("((./1a&1AB"  
,
,H%>0!+H*+Z ! 
 	#  &&X(& c
+		&	1#s	A3(	%+s#$	5;"#
 	OY'm^-L   N
 , NF. $4."0*)r   