o
    Mf                     @   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   f/var/www/html/analyze/labelStudio/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 )NFloat64)r   convert_dtypescolumnsr   dtypeastypecopy)r   r   df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.   r0   r   r   r   r   r#   r$   r.   r0   )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.   r0   r   r1   r3   )r4   r5   r   r6   r7   r8   )r    r9   r:   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   r1   r'   r(   r+   r,   index)r"   r   )r   _mgr_verify_integrityr4   r5   r   r6   r7   assert_cow_warningranger8   )	r    r9   warn_copy_on_writer:   r   r   r;   r<   r=   r   r   r   test_subset_row_sliceh   s&   



&
rG   r   int64float64zsingle-blockzmixed-block)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 )NrH   r   r!   r%         	   r   r-   r"   r/   r   r1   chained_assignmentwarn)r   r'   r(   r/   r0   r   r"   )r4   arrayr   r6   rB   rC   r5   r   r7   rD   r   pdoption_contextassert_produces_warningr8   )r    r9   rF   using_array_managerr   dtype_backendr   r:   single_blockr   r;   r<   rQ   r=   r   r   r   test_subset_column_slice   sB   
 

 
r[   row_indexerr"   r#   )FTT)slicemaskrT   column_indexerr/   r0   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%   rK   rO   r-   rH   r   r   r1   r(   rM   rN   rR   r"   r$   r@   )r"   r"   )r4   rT   r   loc
isinstancer]   r7   rD   r6   rE   r8   r    r   r\   r_   rX   r9   rF   rY   r   r:   r   r;   r<   mutate_parentr=   r   r   r   test_subset_loc_rows_columns   2   
 
"
re   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`   )
r4   rT   r   r6   rb   r]   r7   rD   rE   r8   rc   r   r   r   test_subset_iloc_rows_columns   rf   rg   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(   rL   r*   r+   r,   皙?r-   r"   r&   intz&setitem with labels selects on columnsr   rP   rQ   )r   r   r&   )r   r   rL   )        rn   rl   r@   r$   )r   r7   setitemrb   r4   ndarrayr   pytestskiprD   r   rU   rV   rW   rE   r8   )r    
indexer_sirh   r9   rF   r:   r   r   r;   r<   rQ   r=   r   r   r    test_subset_set_with_row_indexer:  s>   






rt   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 )Nri   rj   rk   r-   r"   r&   r$   r   rP   rQ   )r#   r$   r   )r   r   r   )r+   r,   rl   r@   )r$   r.   r/   )
r   r7   rD   rU   rV   rW   r   rE   r8   ra   )
r    r9   rF   r:   r   r   r;   r<   r^   r=   r   r   r   test_subset_set_with_maski  s6   





ru   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   
      rH   rO   Int64r.   rP   rQ   r'   r(   r+   r,   r@   )r   r4   rT   rU   rV   r7   rW   r   rB   rC   rE   r8   )r    r9   rF   rY   r   r:   r   r;   r<   arrr=   r   r   r   test_subset_set_column  s*   



rz   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%   rK   rO   r-   r"   r$   rv   rw   rH   r.   rP   rQ   raise_on_extra_warningsr'   r(   rM   rN   r@   )r4   rT   r   ra   r7   rD   rU   rV   rW   rB   rC   rE   r8   )r    r9   rF   rX   r   r:   r   r   r;   r<   r=   r   r   r   test_subset_set_column_with_loc  s@   
 "
""
  r}   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   rP   rQ   r{   r@   )r   ra   r7   rD   rU   rV   rW   rB   rC   rE   r8   )
r    r9   rF   rX   r:   r   r   r;   r<   r=   r   r   r    test_subset_set_column_with_loc2  s6   


r~   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%   rK   rO   r-   r"   r$   r   r.   r0   rP   rQ   c                 3   s    | ]	} j |V  qd S r   )rB   _has_no_reference.0ir<   r   r   	<genexpr>  s    z*test_subset_set_columns.<locals>.<genexpr>)r   r#   r'   r(   r@   r   rH   )r4   rT   r   rU   rV   r7   rW   r   rB   rC   allrE   r   r8   )
r    r9   rF   r   rY   r   r:   r   r;   r=   r   r   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   rP   rQ   rn   r'   r(   r@   r#   r.   r/   )
r   ra   r7   rD   rU   rV   rB   rC   rE   r8   )
r    rh   r9   rF   r:   r   r   r;   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   r6   r   r   r   r   r   D      c                 C   r   )Nr.   r/   r   r"   ra   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%   rK   rO   r-   )z$numpy-single-block-column-iloc-slicez#numpy-single-block-column-loc-slice)r   r   r   r1   r"   r#   r&   r'   r.   r/   )r4   rT   r   nodecallspecidendswithr7   rD   r6   r8   )r   r    r   r   r9   rX   rF   r:   r   r   r;   test_callspec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%   rK   rO   r-   r.   r   r#   r1   r"   name)	r4   rT   r   _clear_item_cacher7   rD   r6   r8   assert_series_equal)r    r   r9   rF   rY   r   r   r   r;   r<   r=   r   r   r   "test_subset_chained_getitem_column  s,   
 r   c                 C   s   | dd dd S Nr.   r0   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.   r0   r   r$   r#   r/   r"   )ra   r6   r   r   r   r   r     s    )getitemr6   ra   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   r7   rD   r6   r   )
r    r   r9   rF   r:   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%   rK   r-   r   r#   r1   r"   r&   r.   r/   )rA   r   )r   r   r6   r7   rD   r8   r   r   )r9   rX   rF   r   r;   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   ra   zloc-rowsr6   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%   rK   r-   r   r1   )r   r7   rD   r6   r8   )
r    r   r9   rF   rY   r   r:   r   r;   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   ra   r6   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   r9   rF   r:   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   r2   )r   r4   r5   r   r7   rD   r6   r   )	r    r9   rF   r:   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   r2   )	r   r   r4   r5   r   r7   rD   r6   r   )r9   rF   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 deprecatedr   r{   r   match)r   r   r$   )r   r7   ro   rb   r4   rp   r   kindFutureWarningrD   rW   r   )r    rs   rh   r9   rF   r:   r   r   r   r<   rQ   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/   r0   r      )r   r/   d   r   r.   )
r   r4   r5   r   r7   r8   rB   rC   rD   ra   )	r    r9   rF   rY   r   r:   r   r;   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/   r0   r   r   )r   r4   r5   r   r7   r   valuesra   )r    r:   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   rP   rQ   r2   r   r1   )r   r4   r5   r   r7   rD   r   rU   rV   rW   r   r8   r6   )r    r9   rF   rX   rY   r   r   r   r;   r   rQ   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   rP   rQ   |zAA value is trying to be set on a copy of a slice from a DataFrame3Setting an item of incompatible dtype is deprecated)r   r7   rD   rq   raises	TypeErrorrW   r   objectrU   rV   joinr   r   r8   )r    r9   rX   rF   rY   r   r   r   r;   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-   r6   r   r   rP   rQ   r.   )r   r   r   r6   r7   rD   r   rU   rV   rW   r   r8   )r   r    r   r9   rF   rX   rY   r   r:   r   r;   s1r   is_ilocrQ   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   )rv   rw      newr   )r.   r/   r   )r4   r5   r   r7   r8   )r    r9   r:   r   r   r   r   r=   r   r   r   %test_dataframe_add_column_from_seriesP  s   
r   valr   zindexer_func, indexerr   r1   r   r)   rK   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/   r0   )
r   r   r7   rW   r   rD   r4   r5   r   r8   )	r9   rF   indexer_funcrh   r   r   r   r;   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   rU   
MultiIndexfrom_arraysr   r4   r5   r   r7   rD   r6   r   )r9   rF   r   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   r1   rP   rQ   )r   r   rB   r   r4   r5   r   r6   r7   r8   rD   rU   rV   rW   r   )r9   rF   rX   r   r;   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   rU   r   from_tuplesr4   r5   r   r7   rD   r6   r   )r9   rF   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   r   prefixr   r   
<listcomp>  r   zCtest_midx_read_only_bool_indexer.<locals>.mklbl.<locals>.<listcomp>)rE   )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/   bahlvl0lvl1)namesr"   )rA   r   )axisr   C1C3)rU   r   from_productr   r   
sort_indexr   ra   
IndexSlicer7   r8   r   )r   idxcolsr   r^   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%   rR   r/   r0   r"   r   rS   )r   r   ra   r4   r5   r   rB   r   r6   r7   r8   )r9   r   rhsrhs_origr   r   r   !test_loc_enlarging_with_dataframe  s   
r  ):r   r4   rq   pandas.errorsr   pandas.core.dtypes.commonr   pandasrU   r   r   pandas._testing_testingr7   pandas.tests.copy_view.utilr   fixturer    r>   r?   rG   markparametrizer[   r]   rT   re   rg   rt   ru   rz   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ra   r6   r   r   r   r   r   r  r   r   r   r   <module>   s@   
#$
+"3"3"
*!
(%
 
"5
!



	"
$$-
	,#