o
    թZh                     @   s  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d	d
 Zdd Zdd Zdd Zejjdddgddgddd Zejjdddgddgdejjdeddeg deddggg ddejjdedd eg ddd ggg ddd!d" Zejjdddgddgdejjdedd#eg deddggg ddejjdedd#eg dddggg ddd$d% Zejjd&ed deg d'ed dggg ddd(d) Zd*d+ Zd,d- Zejjdddgddgdd.d/ Zd0d1 Z ejjdddgddgdd2d3 Z!ejjd&ed4deg d'd4dggg ddd5d6 Z"ejjd7d8d9 d:d9 d;d9 d<d9 d=d9 d>d9 gg d?dejjdddgddgdd@dA Z#ejjdddgddgddBdC Z$ejjd7dDd9 dEd9 dFd9 dGd9 gg dHddIdJ Z%dKdL Z&ejjd7dMd9 dNd9 dOd9 dPd9 dQd9 gg dRddSdT Z'ejjd7dUd9 dVd9 dWd9 gg dXddYdZ Z(d[d\ Z)d]d^ Z*ejjd&ed deg d'ed dggg ddd_d` Z+dadb Z,dcdd Z-dedf Z.dgdh Z/ejjd7did9 djd9 dkd9 gg dXddldm Z0dndo Z1ejdpdqd4gejdrej2dsfej3dtfej2d gd4ffej3d gd ffej2edd4ffej3edd ffgejjdug dvg dwgddgddxdy Z4dzd{ Z5d|d} Z6d~d Z7dd Z8dd Z9dS )    N)SettingWithCopyWarning)is_float_dtype)	DataFrameSeries)	get_arraynumpynullable)paramsc                 C   sB   | j dkrdd }dd }n| j dkrdd }dd }| j ||fS )	Nr   c                  _      t | i |S N)r   argskwargs r   [/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/copy_view/test_indexing.pymake_dataframe      zbackend.<locals>.make_dataframec                  _   r
   r   )r   r   r   r   r   make_series   r   zbackend.<locals>.make_seriesr   c                  _   sX   t | i |}| }|jD ]}t|| jr't|| js'|| d||< q| S )NZFloat64)r   convert_dtypescolumnsr   dtypeastypecopy)r   r   dfZdf_nullablecolr   r   r   r      s   
c                  _   s   t | i |}|  S r   )r   r   r   )r   r   serr   r   r   r   *   s   )param)requestr   r   r   r   r   backend   s   


r   c                 C   s   | \}}}|g dg dg dd}|  }|ddg }|r3tt|dt|ds-J d|jd< ntt|dt|drAJ d|jd< tt|dt|drTJ |g d	g dd
}t|| t|| d S )N                  皙?皙?333333?abcr,   r.   r   r   r   r   r!   r"   r,   r.   )r   npshares_memoryr   iloctmassert_frame_equal)r   using_copy_on_write_r   r   df_origsubsetexpectedr   r   r   test_subset_column_selection5   s   

r<   c                 C   s   | \}}}|g dg dg dd}|ddg }|r)t t|dt|ds)J d|jd< t t|dt|dr<J |rLt t|dt|dsLJ |g dg dd	}t|| d S )
Nr   r#   r'   r+   r,   r.   r   r/   r1   )r2   r3   r   r4   r5   r6   )r   r7   r8   r   r   r:   r;   r   r   r   *test_subset_column_selection_modify_parentQ   s   

r=   c           	      C   s*  | \}}}|g dg dg dd}|  }|dd }|j  tt|dt|ds0J |rFd|jd	< tt|dt|drEJ nt| d|jd	< W d    n1 s[w   Y  |j  |ddgd
dgddgdt	ddd}t
|| |rt
|| d S d|jd< t
|| d S )Nr   r#   r'   r+   r    r"   r,   r   r/   r%   r&   r)   r*   index)r    r   )r   _mgr_verify_integrityr2   r3   r   r4   r5   assert_cow_warningranger6   )	r   r7   warn_copy_on_writer8   r   r   r9   r:   r;   r   r   r   test_subset_row_sliceh   s&   



&
rE   r   int64Zfloat64zsingle-blockzmixed-block)Zidsc              	   C   s  | \}}}|dko|dko| }|g dg dt jg d|dd}	|	 }
|	jd d dd f }|j  |r[t t|d	t|	d	sGJ d
|jd< t t|d	t|	d	rZJ nS|rxt	| d
|jd< W d    n1 srw   Y  n6|r|t
nd }tdd" t| d
|jd< W d    n1 sw   Y  W d    n1 sw   Y  |g dt jg d|dd}t|| |s|s|rd
|
jd< t|	|
 d S t|	|
 d S )NrF   r   r   r#         	   r   r+   r    r-   r   r/   chained_assignmentwarn)r   r%   r&   r-   r.   r   r    )r2   arrayr   r4   r@   rA   r3   r   r5   rB   r   pdoption_contextassert_produces_warningr6   )r   r7   rD   using_array_managerr   dtype_backendr   r8   Zsingle_blockr   r9   r:   rM   r;   r   r   r   test_subset_column_slice   sB   
 

 
rV   row_indexerr    r!   )FTT)slicemaskrP   column_indexerr-   r.   c                 C   s   | \}}}	|g dg dt jg d|dd}
|
 }|
j||f }t|to9t|to9|p9|dko9|dko9| }t|o?| d|jd	< W d    n1 sQw   Y  |dd
gt jddg|ddt	ddd}t
|| |rxd|jd< t
|
| d S Nr   r#   rG   rK   r+   rF   r   r   r/   r&   rI   rJ   rN   r    r"   r>   )r    r    )r2   rP   r   loc
isinstancerX   r5   rB   r4   rC   r6   r   r   rW   rZ   rT   r7   rD   rU   r   r8   r   r9   r:   Zmutate_parentr;   r   r   r   test_subset_loc_rows_columns   2   
 
"
r_   r"   c                 C   s   | \}}}	|g dg dt jg d|dd}
|
 }|
j||f }t|to9t|to9|p9|dko9|dko9| }t|o?| d|jd	< W d    n1 sQw   Y  |dd
gt jddg|ddtddd}t	|| |rxd|jd< t	|
| d S r[   )
r2   rP   r   r4   r]   rX   r5   rB   rC   r6   r^   r   r   r   test_subset_iloc_rows_columns   r`   ra   indexer)TTFc              	   C   s  | \}}}|g dg dg dd}|  }|dd }	|tju r2t|tjr2|jdkr2td |r;d	||	|< nW|rXt	  d	||	|< W d    n1 sRw   Y  n:|tju r_t
nd }
td
d# t|
 d	||	|< W d    n1 s~w   Y  W d    n1 sw   Y  |g dg dg ddtddd}t|	| |rt|| d S d	|dd< t|| d S )Nr    r!   r"   r$   r$   r%   r&   rH   r(   r)   r*   皙?r+   r    r$   intz&setitem with labels selects on columnsr   rL   rM   )r   r   r$   )r   r   rH   )        rh   rf   r>   r"   )r   r5   setitemr]   r2   ndarrayr   pytestskiprB   r   rQ   rR   rS   rC   r6   )r   
indexer_sirb   r7   rD   r8   r   r   r9   r:   rM   r;   r   r   r    test_subset_set_with_row_indexer:  s>   






rn   c           
   	   C   sV  | \}}}|g dg dg dd}|  }|dd }|dk}|r(d||< nJ|rCt  d||< W d    n1 s=w   Y  n/td	d
! tt d||< W d    n1 s^w   Y  W d    n1 smw   Y  |g dg dg ddtddd}	t||	 |rt|| d S d|j	d< d|j	dddf< t|| d S )Nrc   rd   re   r+   r    r$   r"   r   rL   rM   )r!   r"   r   )r   r   r   )r)   r*   rf   r>   )r"   r,   r-   )
r   r5   rB   rQ   rR   rS   r   rC   r6   r\   )
r   r7   rD   r8   r   r   r9   r:   rY   r;   r   r   r   test_subset_set_with_maski  s6   





ro   c              	   C   s$  | \}}}|g dg dg dd}|  }|dd }|dkr+tjdd	gd
d}	n	tjdd	gdd}	|s8|r=|	|d< n/tdd! tt |	|d< W d    n1 sXw   Y  W d    n1 sgw   Y  |j	  |dd	gddgddgdt
ddd}
t||
 t|| d S )Nr   r#   r'   r+   r    r"   r   
      rF   rK   ZInt64r,   rL   rM   r%   r&   r)   r*   r>   )r   r2   rP   rQ   rR   r5   rS   r   r@   rA   rC   r6   )r   r7   rD   rU   r   r8   r   r9   r:   Zarrr;   r   r   r   test_subset_set_column  s*   



rr   c              	   C   s  | \}}}|g dg dt jg d|dd}| }|dd }	|r5t jdd	gd
d|	jd d df< ne|r\t  t jdd	gd
d|	jd d df< W d    n1 sVw   Y  n>tdd0 tjd | d t jdd	gd
d|	jd d df< W d    n1 sw   Y  W d    n1 sw   Y  |	j	
  |dd	gddgt jddg|ddtddd}
t|	|
 |rt|| d S t jdd	gd
d|jdddf< t|| d S )Nr   r#   rG   rK   r+   r    r"   rp   rq   rF   r,   rL   rM   Zraise_on_extra_warningsr%   r&   rI   rJ   r>   )r2   rP   r   r\   r5   rB   rQ   rR   rS   r@   rA   rC   r6   )r   r7   rD   rT   r   r8   r   r   r9   r:   r;   r   r   r   test_subset_set_column_with_loc  s@   
 "
""
  rt   c           
   	   C   sZ  | \}}}|dg di}|  }|dd }|r#d|jd d df< nW|rCt  d|jd d df< W d    n1 s=w   Y  n7tdd) tjd | d d|jd d df< W d    n1 sfw   Y  W d    n1 suw   Y  |j  |dddgit	ddd	}	t
||	 |rt
|| d S d|jdddf< t
|| d S )
Nr,   r   r    r"   r   rL   rM   rs   r>   )r   r\   r5   rB   rQ   rR   rS   r@   rA   rC   r6   )
r   r7   rD   rT   r8   r   r   r9   r:   r;   r   r   r    test_subset_set_column_with_loc2  s6   


ru   c           
   	      sR  | \}}}|g dg dt jg d|dd}| }|dd  |s&|r-d d	d
g< n1tdd# tt d d	d
g< W d    n1 sJw   Y  W d    n1 sYw   Y   j	  |rrt
 fdddD srJ |ddgddgddgdtddd}	|dkr|	d	 d|	d	< |	d
 d|	d
< t |	 t|| d S )Nr   r#   rG   rK   r+   r    r"   r   r,   r.   rL   rM   c                 3   s    | ]	} j |V  qd S r   )r@   _has_no_reference.0ir:   r   r   	<genexpr>  s    z*test_subset_set_columns.<locals>.<genexpr>)r   r!   r%   r&   r>   r   rF   )r2   rP   r   rQ   rR   r5   rS   r   r@   rA   allrC   r   r6   )
r   r7   rD   r   rU   r   r8   r   r9   r;   r   rz   r   test_subset_set_columns  s.   
 
&r}   r,   c           
      C   sF  | \}}}|g dg dg dd}|  }|dd }|r)d|jd d |f< n?|rIt  d|jd d |f< W d    n1 sCw   Y  ntdd	 d|jd d |f< W d    n1 scw   Y  |j  |ddgd
d
gddgdtddd}	t	||	 |rt	|| d S d|jddddgf< t	|| d S )Nr   r'   r#   r+   r    r"   r   rL   rM   rh   r%   r&   r>   r!   r,   r-   )
r   r\   r5   rB   rQ   rR   r@   rA   rC   r6   )
r   rb   r7   rD   r8   r   r   r9   r:   r;   r   r   r   #test_subset_set_with_column_indexer  s*   



&r~   methodc                 C   s   | ddg dd S Nr,   r-   r   r!   r   r   r   r   r   <lambda>B      r   c                 C   s   | dd ddg S Nr   r!   r,   r-   r   r   r   r   r   r   C  r   c                 C      | ddg j dd S r   r4   r   r   r   r   r   D      c                 C   r   )Nr,   r-   r   r    r\   r   r   r   r   r   E  r   c                 C   s   | dd j d d ddf S )Nr   r!   r   r   r   r   r   r   F      c                 C   s   | dd j d d ddf S r   r   r   r   r   r   r   G  r   )zrow-getitem-slicezcolumn-getitemzrow-iloc-slicezrow-loc-slicecolumn-iloc-slicecolumn-loc-slicec                 C   sF  |\}}}|g dg dt jg d|dd}	|	 }
| jjj}|s(|dv }n|d}||	}t|o6| d|j	d	< W d    n1 sHw   Y  |sQ|sXt
|	|
 n	|	j	d	 dksaJ ||	}t|oj| d|	j	d	< W d    n1 s|w   Y  |d
dgddgd}|s|st
|| d S |j	d	 dksJ d S )Nr   r#   rG   rK   r+   )z$numpy-single-block-column-iloc-slicez#numpy-single-block-column-loc-slice)r   r   r   r/   r    r!   r$   r%   r,   r-   )r2   rP   r   nodeZcallspecidendswithr5   rB   r4   r6   )r   r   r   r   r7   rT   rD   r8   r   r   r9   Ztest_callspecZsubset_is_viewr:   r;   r   r   r   test_subset_chained_getitem?  s4   
! 

r   c                 C   s>  | \}}}|g dg dt jg d|dd}| }|d d  d dd }	|  t| d|	jd< W d    n1 sAw   Y  |rOt|| n	|jd	 dksXJ |d d  d dd }	|  t| d|jd	< W d    n1 s}w   Y  |d
dgdd}
|rt|	|
 d S |	jd dksJ d S )Nr   r#   rG   rK   r+   r,   r   r!   r/   r    name)	r2   rP   r   Z_clear_item_cacher5   rB   r4   r6   assert_series_equal)r   r   r7   rD   rU   r   r   r   r9   r:   r;   r   r   r   "test_subset_chained_getitem_column  s,   
 r   c                 C   s   | dd dd S Nr,   r.   r-   r   sr   r   r   r     r   c                 C      | j dd j dd S )Nr   r"   r!   r   r   r   r   r   r         c                 C   r   r   r   r   r   r   r   r     r   c                 C   s6   | j dd jdd jdd j dd jdd S )Nr,   r.   r   r"   r!   r-   r    )r\   r4   r   r   r   r   r     s    )getitemr4   r\   z
long-chainc           
      C   s  | \}}}|g dg dd}|  }||}t| d|jd< W d    n1 s,w   Y  |r:t|| n	|jd dksCJ |jdd jdd }t| d|jd< W d    n1 sdw   Y  |ddgdd	gd}	|r}t||	 d S |jd dksJ d S )
Nr   r+   r>   r   r"   r!   r    r,   r-   r   r5   rB   r4   r   )
r   r   r7   rD   r8   r   r   s_origr:   r;   r   r   r   "test_subset_chained_getitem_series  s$   
r   c                 C   s0  t g dg dg dd}| }|d d  jd jdd }t| d|jd< W d    n1 s5w   Y  | s>|rEt|| n	|jd dksNJ |d d  jd jdd }t| d|jd< W d    n1 sqw   Y  tdd	gd
dgdd}| s|rt|| d S |jd dksJ d S )Nr   r#   rG   r+   r   r!   r/   r    r$   r,   r-   )r?   r   )r   r   r4   r5   rB   r6   r   r   )r7   rT   rD   r   r9   r:   r;   r   r   r   $test_subset_chained_single_block_row  s"   r   c                 C      | d d  S r   r   r   r   r   r   r         c                 C      | j d d d d f S r   r   r   r   r   r   r     r   c                 C      | j d d  S r   r   r   r   r   r   r         c                 C   r   r   r   r   r   r   r   r     r   c                 C   r   r   r   r   r   r   r   r     r   )r   r\   zloc-rowsr4   z	iloc-rowsc           
      C   s   | \}}}|g dg dg dd}|  }||}	|	|us!J t| d|	jd< W d    n1 s6w   Y  |rEt|| d S |jd dksNJ d S )Nr   r#   rG   r+   r   r/   )r   r5   rB   r4   r6   )
r   r   r7   rD   rU   r   r8   r   r9   df2r   r   r   test_null_slice  s   
r   c                 C   r   r   r   r   r   r   r   r     r   c                 C   r   r   r   r   r   r   r   r     r   c                 C   r   r   r   r   r   r   r   r     r   )r   r\   r4   c           	      C   s   | \}}}|g dg dd}|  }||}||usJ t| d|jd< W d    n1 s2w   Y  |rAt|| d S |jd dksJJ d S )Nr   r+   r>   r   r   )	r   r   r7   rD   r8   r   r   r   s2r   r   r   test_null_slice_series  s   

r   c           	      C   s   | \}}}|g dg dd}|  }|d d  }tt|t|s%J t| d|jd< W d    n1 s:w   Y  |rMtt|t|rMJ |g dg dd}t|| |rgt|| d S |jd dkspJ d S )Nr   r+   r>   r   r0   )r   r2   r3   r   r5   rB   r4   r   )	r   r7   rD   r8   r   r   r   r:   r;   r   r   r   test_series_getitem_slice7  s   
r   c                 C   s   t g d}| }|d }tt|t|sJ t| d|jd< W d    n1 s/w   Y  | rBtt|t|rBJ t g d}t|| | rXt|| d S |jd dksaJ d S )Nr   .r   r0   )	r   r   r2   r3   r   r5   rB   r4   r   )r7   rD   r   r   r:   r;   r   r   r   test_series_getitem_ellipsisQ  s   r   c                 C   s   | \}}}|g dg dd}|  }|d d  }	d }
d}|tju r0t|tjr0|jjdkr0t}
|rQtj	|
d ud d||	|< W d    n1 sKw   Y  ntj
|
|d d||	|< W d    n1 siw   Y  |g d	g dd}t|	| |rt|| d S t|| d S )
Nr   r+   r>   z;Series.__setitem__ treating keys as positions is deprecatedry   rs   r   match)r   r   r"   )r   r5   ri   r]   r2   rj   r   kindFutureWarningrB   rS   r   )r   rm   rb   r7   rD   r8   r   r   r   r:   rM   msgr;   r   r   r   #test_series_subset_set_with_indexerj  s0   
	

r   c           	      C   s`  | \}}}|g dg dg dd}|  }|d d  }tt|dt|ds+J |d= tt|dt|ds<J t|| t||ddg  |j  t|oX|dk d	|j	d
< W d    n1 sjw   Y  tt|dt|ds}J |  }t| d|j	d< W d    n1 sw   Y  |rt|| d S |j	d dksJ d S )Nr   r#   r'   r+   r,   r-   r.   r      )r   r-   d   r   r,   )
r   r2   r3   r   r5   r6   r@   rA   rB   r\   )	r   r7   rD   rU   r   r8   r   r9   r   r   r   r   test_del_frame  s*   

r   c                 C   s   | \}}}|g dg dd}|  }|d d  }tt|t|s%J |d= tt|t|r4J t|| t||ddg  |j}d|jd< |d dksTJ d S )	Nr   r+   r>   r,   r-   r.   r   r   )r   r2   r3   r   r5   r   valuesr\   )r   r8   r   r   r   r   r   r   r   r   test_del_series  s   

r   c              	   C   sf  | \}}}|g dg dg dd}|  }|d }	tt|	dt|ds)J |s-|r2d|	d< nR|rMt  d|	d< W d    n1 sGw   Y  n7|dkrStnd }
tdd	! t	|
 d|	d< W d    n1 spw   Y  W d    n1 sw   Y  |g d
dd}t
|	| |rt|| t
|d |d  d S d|jd< t|| d S )Nr   r#   r'   r+   r,   r   r   rL   rM   r0   r   r/   )r   r2   r3   r   r5   rB   r   rQ   rR   rS   r   r6   r4   )r   r7   rD   rT   rU   r   r   r   r9   r   rM   r;   r   r   r   test_column_as_series  s4   





r   c              	   C   s  | \}}}|g dg dg dd}|  }|d }	|dkrXt|# tjtdd d	|	d
< W d    n1 s;w   Y  W d    n1 sJw   Y  |g ddd}
nn|s^|s^|rtjtdd d	|	d
< W d    n1 stw   Y  |g dtdd}
nCt	
dd, dddg}tjttf|d d	|	d
< W d    n1 sw   Y  W d    n1 sw   Y  |g dtdd}
t|	|
 |rt|| t|d |d  d S |
|d< t|| d S )Nr   r#   r'   r+   r,   r   zInvalid valuer   foor   r   zincompatible dtype)r   r!   r"   )r   r   rL   rM   |zAA value is trying to be set on a copy of a slice from a DataFrame3Setting an item of incompatible dtype is deprecated)r   r5   rB   rk   Zraises	TypeErrorrS   r   objectrQ   rR   joinr   r   r6   )r   r7   rT   rD   rU   r   r   r   r9   r   r;   r   r   r   r   %test_column_as_series_set_with_upcast  sJ   



r   c                 C   s   | d S Nr,   r   r   r   r   r   r     s    c                 C      | j d d df S r   r   r   r   r   r   r         c                 C   r   )Nr   r   r   r   r   r   r      r   c              	   C   sf  |\}}}|g dg dg dd}	|	  }
||	}||	}d| jjv }|s+|s+|r2||us1J n||u s8J |s<|rBd|jd< nT|r^t  d|jd< W d    n1 sXw   Y  n8|dkrdtnd }tdd	" t	| d|jd< W d    n1 sw   Y  W d    n1 sw   Y  |rt
||
d
  t|	|
 d S |jd dksJ d S )Nr   r#   r'   r+   r4   r   r   rL   rM   r,   )r   r   r   r4   r5   rB   r   rQ   rR   rS   r   r6   )r   r   r   r7   rD   rT   rU   r   r8   r   r9   s1r   Zis_ilocrM   r   r   r   #test_column_as_series_no_item_cache  s6   

r   c                 C   s   | \}}}|g dg dd}|g d}||d< |r*t t|dt|s)J nt t|dt|r7J d|d< |g dg dg dd}t|| d S )Nr   r'   r   )rp   rq      newr   )r,   r-   r   )r2   r3   r   r5   r6   )r   r7   r8   r   r   r   r   r;   r   r   r   %test_dataframe_add_column_from_seriesP  s   
r   valr   zindexer_func, indexerr   r/   r   r'   rG   c           	      C   s  t g dg d|d}| }|d d  }|dkr9|s9tjtdd ||||< W d    n1 s4w   Y  |dkr]|r]tjtdd ||||< W d    n1 sWw   Y  nt|od|dk ||||< W d    n1 sww   Y  | rtt|d	t|d	sJ tt|dt|drJ t	|| d S tt|d
t|d
sJ |dkrtt|dt|drJ d S tt|dt|dsJ d S )Nr   r#   r+   r,   r   r   z,incompatible dtype|Setting a value on a viewr   r-   r.   )
r   r   r5   rS   r   rB   r2   r3   r   r6   )	r7   rD   Zindexer_funcrb   r   r   r   r9   viewr   r   r   )test_set_value_copy_only_necessary_columnc  s6     r   c                 C   s   t g dtjg dg dgd}| }|d }tt|t|s&J t	| d|j
d< W d    n1 s;w   Y  | rJt|| d S t g dtjg dg dgd}t|| d S )	Nr   )r    r    r!   )r"   r$   r%   r>   r    r   r   )r   r!   r"   )r   rQ   
MultiIndexZfrom_arraysr   r2   r3   r   r5   rB   r4   r   )r7   rD   r   Zser_origresultr;   r   r   r   test_series_midx_slice  s   $r   c              	   C   s$  t ddgddd}| }|d }| r|jdrJ |s,tt|dt|ds,J | r;d|jd	< t	|| d S |rWt
  d|jd	< W d    n1 sQw   Y  n0td
d" tt d|jd	< W d    n1 ssw   Y  W d    n1 sw   Y  |jd	 dksJ d S )Nr    r!   )r,   x)r,   y)r-   r   )r,   r   r   r   r   r/   rL   rM   )r   r   r@   rv   r2   r3   r   r4   r5   r6   rB   rQ   rR   rS   r   )r7   rD   rT   r   r9   Znew_dfr   r   r   test_getitem_midx_slice  s,   

r   c                 C   s   t g dtjg dd}|d }tt|t|sJ t| d|j	d< W d    n1 s3w   Y  | rPt g dtjg dd}t
|| d S d S )Nr   ))r    r!   r"   )r   r$   ))r!   r"   r$   r>   r   r   r   )r   rQ   r   from_tuplesr2   r3   r   r5   rB   r4   r   )r7   rD   r   r   r;   r   r   r   test_series_midx_tuples_slice  s    r   c                  C   s   dd } t j| dd| dd| dd| ddg}t jjg d	d
dgd}td||d jdd}|d dk}| }|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	
|| t	|| d S )Nc                    s    fddt |D S )Nc                    s   g | ]}  | qS r   r   rw   prefixr   r   
<listcomp>  r   zCtest_midx_read_only_bool_indexer.<locals>.mklbl.<locals>.<listcomp>)rC   )r   nr   r   r   mklbl  s   z/test_midx_read_only_bool_indexer.<locals>.mklblAr$   Br!   CD)r,   r   )r,   bar)r-   r   )r-   ZbahZlvl0Zlvl1)namesr    )r?   r   )Zaxisr   ZC1ZC3)rQ   r   Zfrom_productr   r   Z
sort_indexr   r\   Z
IndexSlicer5   r6   r   )r   idxcolsr   rY   Zexpected_maskr   r;   r   r   r    test_midx_read_only_bool_indexer  s   "&*r   c                 C   s   t dg di}t g dg dd}| }||jd d ddgf< | rItt|dt|ds2J tt|dt|ds@J |jdrHJ ntt|dt|drWJ d|jd	< t	
|| d S )
Nr,   r   r#   rN   r-   r.   r    r   rO   )r   r   r\   r2   r3   r   r@   rv   r4   r5   r6   )r7   r   rhsZrhs_origr   r   r   !test_loc_enlarging_with_dataframe  s   
r   ):r   r2   rk   Zpandas.errorsr   Zpandas.core.dtypes.commonr   ZpandasrQ   r   r   Zpandas._testingZ_testingr5   Zpandas.tests.copy_view.utilr   Zfixturer   r<   r=   rE   markZparametrizerV   rX   rP   r_   ra   rn   ro   rr   rt   ru   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r\   r4   r   r   r   r   r   r   r   r   r   r   <module>   s@   
#$
+"3"3"
*!
(%
 
"5
!



	"
$$-
	,#