a
    Pf                     @   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r6dd }dd }| j ||fS )	Nr   c                  _   s   t | i |S N)r   argskwargs r   ]/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/copy_view/test_indexing.pymake_dataframe   s    zbackend.<locals>.make_dataframec                  _   s   t | i |S r
   )r   r   r   r   r   make_series   s    zbackend.<locals>.make_seriesr   c                  _   sX   t | i |}| }|jD ]2}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 }|rftt|dt|dsZJ d|jd< n&tt|dt|drJ d|jd< tt|dt|drJ |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 }|rRt t|dt|dsRJ d|jd< t t|dt|drxJ |rt t|dt|dsJ |g dg dd	}t|| d S )
Nr   r!   r%   r)   r*   r,   r   r-   r/   )r0   r1   r   r2   r3   r4   )r   r5   r6   r   r   r8   r9   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s`J |rd|jd	< tt|dt|drJ n4t| d|jd	< W d    n1 s0    Y  |j  |ddgd
dgddgdt	ddd}t
|| |rt
|| n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_integrityr0   r1   r   r2   r3   assert_cow_warningranger4   )	r   r5   warn_copy_on_writer6   r   r   r7   r8   r9   r   r   r   test_subset_row_sliceh   s$    


(
&
rC   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  |rt t|d	t|	d	sJ d
|jd< t t|d	t|	d	rJ n|rt	| d
|jd< W d    n1 s0    Y  np|rt
nd }tddF t| d
|jd< W d    n1 s60    Y  W d    n1 sV0    Y  |g dt jg d|dd}t|| |s|s|rd
|
jd< t|	|
 nt|	|
 d S )NrD   r   r   r!         	   r   r)   r   r+   r   r-   chained_assignmentwarn)r   r#   r$   r+   r,   r   r   )r0   arrayr   r2   r>   r?   r1   r   r3   r@   r   pdoption_contextassert_produces_warningr4   )r   r5   rB   using_array_managerr   dtype_backendr   r6   Zsingle_blockr   r7   r8   rK   r9   r   r   r   test_subset_column_slice   s8    
 

*J 
rT   row_indexerr   r   )FTT)slicemaskrN   column_indexerr+   r,   c                 C   s   | \}}}	|g dg dt jg d|dd}
|
 }|
j||f }t|tort|tor|pr|dkor|dkor| }t|o~| d|jd	< W d    n1 s0    Y  |dd
gt jddg|ddt	ddd}t
|| |rd|jd< t
|
| d S Nr   r!   rE   rI   r)   rD   r   r   r-   r$   rG   rH   rL   r   r    r<   )r   r   )r0   rN   r   loc
isinstancerV   r3   r@   r2   rA   r4   r   r   rU   rX   rR   r5   rB   rS   r   r6   r   r7   r8   Zmutate_parentr9   r   r   r   test_subset_loc_rows_columns   s0    
 
("
r]   r    c                 C   s   | \}}}	|g dg dt jg d|dd}
|
 }|
j||f }t|tort|tor|pr|dkor|dkor| }t|o~| d|jd	< W d    n1 s0    Y  |dd
gt jddg|ddtddd}t	|| |rd|jd< t	|
| d S rY   )
r0   rN   r   r2   r[   rV   r3   r@   rA   r4   r\   r   r   r   test_subset_iloc_rows_columns   s0    
 
("
r^   indexer)TTFc              	   C   s  | \}}}|g dg dg dd}|  }|dd }	|tju rdt|tjrd|jdkrdtd |rvd	||	|< n|rt	  d	||	|< W d    n1 s0    Y  nv|tju rt
nd }
td
dF t|
 d	||	|< W d    n1 s0    Y  W d    n1 s0    Y  |g dg dg ddtddd}t|	| |rlt|| nd	|dd< t|| d S )Nr   r   r    r"   r"   r#   r$   rF   r&   r'   r(   皙?r)   r   r"   intz&setitem with labels selects on columnsr   rJ   rK   )r   r   r"   )r   r   rF   )        re   rc   r<   r    )r   r3   setitemr[   r0   ndarrayr   pytestskipr@   r   rO   rP   rQ   rA   r4   )r   
indexer_sir_   r5   rB   r6   r   r   r7   r8   rK   r9   r   r   r    test_subset_set_with_row_indexer:  s8    




,Jrk   c           
   	   C   sV  | \}}}|g dg dg dd}|  }|dd }|dk}|rPd||< n|rt  d||< W d    q1 sz0    Y  n^td	d
B tt d||< W d    n1 s0    Y  W d    n1 s0    Y  |g dg dg ddtddd}	t||	 |r*t|| n(d|j	d< d|j	dddf< t|| d S )Nr`   ra   rb   r)   r   r"   r    r   rJ   rK   )r   r    r   )r   r   r   )r'   r(   rc   r<   )r    r*   r+   )
r   r3   r@   rO   rP   rQ   r   rA   r4   rZ   )
r   r5   rB   r6   r   r   r7   r8   rW   r9   r   r   r   test_subset_set_with_maski  s,    


(D
rl   c              	   C   s$  | \}}}|g dg dg dd}|  }|dd }|dkrVtjdd	gd
d}	ntjdd	gdd}	|sp|rz|	|d< n^tddB tt |	|d< W d    n1 s0    Y  W d    n1 s0    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   
      rD   rI   ZInt64r*   rJ   rK   r#   r$   r'   r(   r<   )r   r0   rN   rO   rP   r3   rQ   r   r>   r?   rA   r4   )r   r5   rB   rS   r   r6   r   r7   r8   Zarrr9   r   r   r   test_subset_set_column  s$    

D
ro   c              	   C   s  | \}}}|g dg dt jg d|dd}| }|dd }	|rjt jdd	gd
d|	jd d df< n|rt 0 t jdd	gd
d|	jd d df< W d    n1 s0    Y  ntddb tjd | d0 t jdd	gd
d|	jd d df< W d    n1 s0    Y  W d    n1 s.0    Y  |	j	
  |dd	gddgt jddg|ddtddd}
t|	|
 |rt|| n,t jdd	gd
d|jdddf< t|| d S )Nr   r!   rE   rI   r)   r   r    rm   rn   rD   r*   rJ   rK   Zraise_on_extra_warningsr#   r$   rG   rH   r<   )r0   rN   r   rZ   r3   r@   rO   rP   rQ   r>   r?   rA   r4   )r   r5   rB   rR   r   r6   r   r   r7   r8   r9   r   r   r   test_subset_set_column_with_loc  s6    
 "
@`
  rq   c           
   	   C   sZ  | \}}}|dg di}|  }|dd }|rFd|jd d df< n|rt " d|jd d df< W d    q1 sz0    Y  nntddR tjd | d" d|jd d df< W d    n1 s0    Y  W d    n1 s0    Y  |j  |dddgit	ddd	}	t
||	 |r8t
|| nd|jdddf< t
|| d S )
Nr*   r   r   r    r   rJ   rK   rp   r<   )r   rZ   r3   r@   rO   rP   rQ   r>   r?   rA   r4   )
r   r5   rB   rR   r6   r   r   r7   r8   r9   r   r   r    test_subset_set_column_with_loc2  s,    

2N
rr   c           
   	      sT  | \}}}|g dg dt jg d|dd}| }|dd  |sL|rZd d	d
g< nbtddF tt d d	d
g< W d    n1 s0    Y  W d    n1 s0    Y   j	  |rt
 fdddD sJ |ddgddgddgdtddd}	|dkr8|	d	 d|	d	< |	d
 d|	d
< t |	 t|| d S )Nr   r!   rE   rI   r)   r   r    r   r*   r,   rJ   rK   c                 3   s   | ]} j |V  qd S r
   )r>   _has_no_reference.0ir8   r   r   	<genexpr>      z*test_subset_set_columns.<locals>.<genexpr>)r   r   r#   r$   r<   r   rD   )r0   rN   r   rO   rP   r3   rQ   r   r>   r?   allrA   r   r4   )
r   r5   rB   r   rS   r   r6   r   r7   r9   r   rw   r   test_subset_set_columns  s(    
 H
&
r{   r*   c           
      C   sF  | \}}}|g dg dg dd}|  }|dd }|rRd|jd d |f< n~|rt " d|jd d |f< W d    q1 s0    Y  n>tdd	" d|jd d |f< W d    n1 s0    Y  |j  |ddgd
d
gddgdtddd}	t	||	 |r t	|| n"d|jddddgf< t	|| d S )Nr   r%   r!   r)   r   r    r   rJ   rK   re   r#   r$   r<   r   r*   r+   )
r   rZ   r3   r@   rO   rP   r>   r?   rA   r4   )
r   r_   r5   rB   r6   r   r   r7   r8   r9   r   r   r   #test_subset_set_with_column_indexer  s$    


20
&r|   methodc                 C   s   | ddg dd S Nr*   r+   r   r   r   r   r   r   r   <lambda>B  ry   r   c                 C   s   | dd ddg S Nr   r   r*   r+   r   r   r   r   r   r   C  ry   c                 C   s   | ddg j dd S r~   r2   r   r   r   r   r   D  ry   c                 C   s   | ddg j dd S )Nr*   r+   r   r   rZ   r   r   r   r   r   E  ry   c                 C   s   | dd j d d ddf S )Nr   r   r   r   r   r   r   r   F  ry   c                 C   s   | dd j d d ddf S r   r   r   r   r   r   r   G  ry   )zrow-getitem-slicezcolumn-getitemzrow-iloc-slicezrow-loc-slicecolumn-iloc-slicecolumn-loc-slicec                 C   sJ  |\}}}|g dg dt jg d|dd}	|	 }
| jjj}|sP|dv }n
|d}||	}t|ol| d|j	d	< W d    n1 s0    Y  |s|st
|	|
 n|	j	d	 dksJ ||	}t|o| d|	j	d	< W d    n1 s0    Y  |d
dgddgd}|s$|s2t
|| n|j	d	 dksFJ d S )Nr   r!   rE   rI   r)   )z$numpy-single-block-column-iloc-slicez#numpy-single-block-column-loc-slice)r   r   r   r-   r   r   r"   r#   r*   r+   )r0   rN   r   nodeZcallspecidendswithr3   r@   r2   r4   )r   r   r}   r   r5   rR   rB   r6   r   r   r7   Ztest_callspecZsubset_is_viewr8   r9   r   r   r   test_subset_chained_getitem?  s0    !
 

((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 s0    Y  |rt|| n|jd	 dksJ |d d  d dd }	|  t| d|jd	< W d    n1 s0    Y  |d
dgdd}
|r(t|	|
 n|	jd dks<J d S )Nr   r!   rE   rI   r)   r*   r   r   r-   r   name)	r0   rN   r   Z_clear_item_cacher3   r@   r2   r4   assert_series_equal)r   r   r5   rB   rS   r   r   r   r7   r8   r9   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     ry   c                 C   s   | j dd j dd S )Nr   r    r   r   r   r   r   r   r     ry   c                 C   s   | j dd j dd S r   r   r   r   r   r   r     ry   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   )rZ   r2   r   r   r   r   r     s   )getitemr2   rZ   z
long-chainc           
      C   s  | \}}}|g dg dd}|  }||}t| d|jd< W d    n1 sX0    Y  |rtt|| n|jd dksJ |jdd jdd }t| d|jd< W d    n1 s0    Y  |ddgdd	gd}	|rt||	 n|jd dksJ d S )
Nr   r)   r<   r   r    r   r   r*   r+   r   r3   r@   r2   r   )
r   r}   r5   rB   r6   r   r   s_origr8   r9   r   r   r   "test_subset_chained_getitem_series  s     
((r   c                 C   s4  t g dg dg dd}| }|d d  jd jdd }t| d|jd< W d    n1 sj0    Y  | s||rt|| n|jd dksJ |d d  jd jdd }t| d|jd< W d    n1 s0    Y  tdd	gd
dgdd}| s|rt|| n|jd dks0J d S )Nr   r!   rE   r)   r   r   r-   r   r"   r*   r+   )r=   r   )r   r   r2   r3   r@   r4   r   r   )r5   rR   rB   r   r7   r8   r9   r   r   r   $test_subset_chained_single_block_row  s    ((r   c                 C   s   | d d  S r
   r   r   r   r   r   r     ry   c                 C   s   | j d d d d f S r
   r   r   r   r   r   r     ry   c                 C   s   | j d d  S r
   r   r   r   r   r   r     ry   c                 C   s   | j d d d d f S r
   r   r   r   r   r   r     ry   c                 C   s   | j d d  S r
   r   r   r   r   r   r     ry   )r   rZ   zloc-rowsr2   z	iloc-rowsc           
      C   s   | \}}}|g dg dg dd}|  }||}	|	|usBJ t| d|	jd< W d    n1 sl0    Y  |rt|| n|jd dksJ d S )Nr   r!   rE   r)   r   r-   )r   r3   r@   r2   r4   )
r   r}   r5   rB   rS   r   r6   r   r7   df2r   r   r   test_null_slice  s    
(r   c                 C   s   | d d  S r
   r   r   r   r   r   r     ry   c                 C   s   | j d d  S r
   r   r   r   r   r   r     ry   c                 C   s   | j d d  S r
   r   r   r   r   r   r     ry   )r   rZ   r2   c           	      C   s   | \}}}|g dg dd}|  }||}||us:J t| d|jd< W d    n1 sd0    Y  |rt|| n|jd dksJ d S )Nr   r)   r<   r   r   )	r   r}   r5   rB   r6   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|sJJ t| d|jd< W d    n1 st0    Y  |rtt|t|rJ |g dg dd}t|| |rt|| n|jd dksJ d S )Nr   r)   r<   r   r.   )r   r0   r1   r   r3   r@   r2   r   )	r   r5   rB   r6   r   r   r   r8   r9   r   r   r   test_series_getitem_slice7  s    
(r   c                 C   s   t g d}| }|d }tt|t|s4J t| d|jd< W d    n1 s^0    Y  | rtt|t|rJ t g d}t|| | rt|| n|jd dksJ d S )Nr   .r   r.   )	r   r   r0   r1   r   r3   r@   r2   r   )r5   rB   r   r   r8   r9   r   r   r   test_series_getitem_ellipsisQ  s    (r   c                 C   s   | \}}}|g dg dd}|  }|d d  }	d }
d}|tju r`t|tjr`|jjdkr`t}
|rtj	|
d ud d||	|< W d    q1 s0    Y  n:tj
|
|d d||	|< W d    n1 s0    Y  |g d	g dd}t|	| |rt|| nt|| d S )
Nr   r)   r<   z;Series.__setitem__ treating keys as positions is deprecatedrv   rp   r   match)r   r   r    )r   r3   rf   r[   r0   rg   r   kindFutureWarningr@   rQ   r   )r   rj   r_   r5   rB   r6   r   r   r   r8   rK   msgr9   r   r   r   #test_series_subset_set_with_indexerj  s.    	


,*r   c           	      C   sd  | \}}}|g dg dg dd}|  }|d d  }tt|dt|dsVJ |d= tt|dt|dsxJ t|| t||ddg  |j  t|o|dk d	|j	d
< W d    n1 s0    Y  tt|dt|dsJ |  }t| d|j	d< W d    n1 s.0    Y  |rLt|| n|j	d dks`J d S )Nr   r!   r%   r)   r*   r+   r,   r      )r   r+   d   r   r*   )
r   r0   r1   r   r3   r4   r>   r?   r@   rZ   )	r   r5   rB   rS   r   r6   r   r7   r   r   r   r   test_del_frame  s&    

(*r   c                 C   s   | \}}}|g dg dd}|  }|d d  }tt|t|sJJ |d= tt|t|rhJ t|| t||ddg  |j}d|jd< |d dksJ d S )	Nr   r)   r<   r*   r+   r,   r   r   )r   r0   r1   r   r3   r   valuesrZ   )r   r6   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sRJ |sZ|rdd|	d< n|rt  d|	d< W d    n1 s0    Y  nn|dkrtnd }
tdd	B t	|
 d|	d< W d    n1 s0    Y  W d    n1 s0    Y  |g d
dd}t
|	| |rLt|| t
|d |d  nd|jd< t|| d S )Nr   r!   r%   r)   r*   r   r   rJ   rK   r.   r   r-   )r   r0   r1   r   r3   r@   r   rO   rP   rQ   r   r4   r2   )r   r5   rB   rR   rS   r   r   r   r7   r   rK   r9   r   r   r   test_column_as_series  s*    


(D
r   c              	   C   s  | \}}}|g dg dg dd}|  }|d }	|dkrt|F tjtdd d	|	d
< W d    n1 sv0    Y  W d    n1 s0    Y  |g ddd}
n|s|s|rtjtdd d	|	d
< W d    n1 s0    Y  |g dtdd}
nt	
ddZ dddg}tjttf|d d	|	d
< W d    n1 sV0    Y  W d    n1 sv0    Y  |g dtdd}
t|	|
 |rt|| t|d |d  n|
|d< t|| d S )Nr   r!   r%   r)   r*   r   zInvalid valuer   foor   r   zincompatible dtype)r   r   r    )r   r   rJ   rK   |zAA value is trying to be set on a copy of a slice from a DataFrame3Setting an item of incompatible dtype is deprecated)r   r3   r@   rh   Zraises	TypeErrorrQ   r   objectrO   rP   joinr   r   r4   )r   r5   rR   rB   rS   r   r   r   r7   r   r9   r   r   r   r   %test_column_as_series_set_with_upcast  s<    
D&Hr   c                 C   s   | d S Nr*   r   r   r   r   r   r     ry   c                 C   s   | j d d df S r   r   r   r   r   r   r     ry   c                 C   s   | j d d df S )Nr   r   r   r   r   r   r      ry   c              	   C   sl  |\}}}|g dg dg dd}	|	  }
||	}||	}d| jjv }|sV|sV|rd||uspJ n||u spJ |sx|rd|jd< n|rt  d|jd< W d    n1 s0    Y  nt|dkrtnd }tdd	F t	| d|jd< W d    n1 s0    Y  W d    n1 s&0    Y  |rTt
||
d
  t|	|
 n|jd dkshJ d S )Nr   r!   r%   r)   r2   r   r   rJ   rK   r*   )r   r   r   r2   r3   r@   r   rO   rP   rQ   r   r4   )r   r   r}   r5   rB   rR   rS   r   r6   r   r7   s1r   Zis_ilocrK   r   r   r   #test_column_as_series_no_item_cache  s,    

*Jr   c                 C   s   | \}}}|g dg dd}|g d}||d< |rTt t|dt|snJ nt t|dt|rnJ d|d< |g dg dg dd}t|| d S )Nr   r%   r   )rm   rn      newr   )r*   r+   r   )r0   r1   r   r3   r4   )r   r5   r6   r   r   r   r   r9   r   r   r   %test_dataframe_add_column_from_seriesP  s    
r   valr   zindexer_func, indexerr   r-   r   r%   rE   c           	      C   s  t g dg d|d}| }|d d  }|dkrr|srtjtdd ||||< W d    n1 sh0    Y  |dkr|rtjtdd ||||< W d    q1 s0    Y  n>t|o|dk ||||< W d    n1 s0    Y  | rHtt|d	t|d	sJ tt|dt|dr:J t	|| nftt|d
t|d
sfJ |dkrtt|dt|drJ n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   r3   rQ   r   r@   r0   r1   r   r4   )	r5   rB   Zindexer_funcr_   r   r   r   r7   viewr   r   r   )test_set_value_copy_only_necessary_columnc  s.    *,*
 r   c                 C   s   t g dtjg dg dgd}| }|d }tt|t|sLJ t	| d|j
d< W d    n1 sv0    Y  | rt|| n0t 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   rO   
MultiIndexZfrom_arraysr   r0   r1   r   r3   r@   r2   r   )r5   rB   r   Zser_origresultr9   r   r   r   test_series_midx_slice  s    $(r   c              	   C   s&  t ddgddd}| }|d }| r8|jdr8J |sXtt|dt|dsXJ | rtd|jd	< t	|| n|rt
  d|jd	< W d    n1 s0    Y  nbtd
dD tt d|jd	< W d    n1 s0    Y  W d    n1 s0    Y  |jd	 dks"J d S )Nr   r   )r*   x)r*   y)r+   r   )r*   r   r   r   r   r-   rJ   rK   )r   r   r>   rs   r0   r1   r   r2   r3   r4   r@   rO   rP   rQ   r   )r5   rB   rR   r   r7   Znew_dfr   r   r   test_getitem_midx_slice  s"    

*H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 sf0    Y  | rt g dtjg dd}t
|| d S )Nr   ))r   r   r    )r   r"   ))r   r    r"   r<   r   r   r   )r   rO   r   from_tuplesr0   r1   r   r3   r@   r2   r   )r5   rB   r   r   r9   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   rt   prefixr   r   
<listcomp>  ry   zCtest_midx_read_only_bool_indexer.<locals>.mklbl.<locals>.<listcomp>)rA   )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)rO   r   Zfrom_productr   r   Z
sort_indexr   rZ   Z
IndexSlicer3   r4   r   )r   idxcolsr   rW   Zexpected_maskr   r9   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< | rtt|dt|dsdJ tt|dt|dsJ |jdrJ ntt|dt|drJ d|jd	< t	
|| d S )
Nr*   r   r!   rL   r+   r,   r   r   rM   )r   r   rZ   r0   r1   r   r>   rs   r2   r3   r4   )r5   r   rhsZrhs_origr   r   r   !test_loc_enlarging_with_dataframe  s    
r   ):r   r0   rh   Zpandas.errorsr   Zpandas.core.dtypes.commonr   ZpandasrO   r   r   Zpandas._testingZ_testingr3   Zpandas.tests.copy_view.utilr   Zfixturer   r:   r;   rC   markZparametrizerT   rV   rN   r]   r^   rk   rl   ro   rq   rr   r{   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rZ   r2   r   r   r   r   r   r   r   r   r   r   <module>   s>  
#$
+"3"3"
*!
(%
 
"5
!


	
"
$$-	
,#