o
    d                     @   sj  d dl m Z  d dlmZ d dlZd dlZd dlmZ d dlZ	d dlm
Z
mZmZmZmZmZmZmZ d dlmZ d dlmZ ejg ddd	d
 Zdd ZG dd dZdd Zdd Zdd Zdd Zdd Zdd Z dd Z!ej"#dddgd d! Z$d"d# Z%eed$d%d& Z&d'd( Z'd)d* Z(d+d, Z)d-d. Z*ej"#d/d0dd1de d2d3d4gd5d6 Z+d7d8 Z,dS )9    )datetime)givenN)	is_scalar)	DataFrameDatetimeIndexIndexSeriesStringDtype	Timestamp
date_rangeisna)OPTIONAL_ONE_OF_ALL)defaultfloat_stringmixed_float	mixed_int)paramsc                 C   sR   | j dkrttjddg ddS | j dkr|S | j dkr |S | j dkr'|S d S )	Nr         ABCcolumnsr   r   r   )paramr   nprandomrandn)requestfloat_string_framemixed_float_framemixed_int_frame r#   k/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/frame/indexing/test_where.pywhere_frame   s   



r%   c                    s&   dd  t t fdd|  D S )Nc                 S   s    t | jjtjtjfo| jdkS )Nuint8)
issubclassdtypetyper   integerfloating)sr#   r#   r$   is_ok&   s   z_safe_add.<locals>.is_okc                 3   s0    | ]\}} |r||d  fn||fV  qdS )   Nr#   ).0cr,   r-   r#   r$   	<genexpr>+   s   . z_safe_add.<locals>.<genexpr>)r   dictitemsdfr#   r1   r$   	_safe_add$   s   r7   c                   @   s.  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Ze	j
deeejgdd Ze	j
ddgdgdggedgdgdggedg didgdgdggedgejgedgggdd Ze	j
dddgddgddggeddgddgddggddgddgddggeg dg dd ejedgedejged!ed!gggd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Z d6d7 Z!d8d9 Z"d:d; Z#d<d= Z$d>d? Z%d@dA Z&dBdC Z'e	j
dDi dEdFigdGdH Z(dIdJ Z)dKdL Z*dMdN Z+dOdP Z,e	j
dQg dRdSdT Z-dFS )UTestDataFrameIndexingWherec                 C   sl   ddd}|}||u r+d}t jt|d |dk W d    d S 1 s$w   Y  d S |dk}||| d S )NTc           	      S   s   t | }| ||}| |j|}| D ]\}}tt|| | | || |jd}tj||dd qt	|| |rF|j
| j
k sHJ d S d S )NindexF)check_names)r7   wherevaluesr4   r   r   r:   tmassert_series_equalassert_frame_equaldtypesall)	r6   condcheck_dtypesother1rsrs2kvexpr#   r#   r$   
_check_get0   s   $z=TestDataFrameIndexingWhere.test_where_get.<locals>._check_get6'>' not supported between instances of 'str' and 'int'matchr   Tpytestraises	TypeError)selfr%   r    rK   r6   msgrC   r#   r#   r$   test_where_get/   s   


z)TestDataFrameIndexingWhere.test_where_getc                 C   sj   t dd dD }d|jdd d f< |j}ttdtdtdtd	gg dd
}t|| d S )Nc                 S   s    i | ]}|t d gd |dqS )r.   r   r(   )r   )r/   r0   r#   r#   r$   
<dictcomp>J   s    zCTestDataFrameIndexingWhere.test_where_upcasting.<locals>.<dictcomp>)float32float64int32int64r   r.   rY   rZ   r[   r\   r9   )r   ilocrA   r   r   r(   r>   r?   rT   r6   resultexpectedr#   r#   r$   test_where_upcastingG   s    z/TestDataFrameIndexingWhere.test_where_upcastingc                 C   s   ddd}|}||u r+d}t jt|d |dk W d    d S 1 s$w   Y  d S |dkdd  }|||t| |dk}|||t|j |dk}tdd	 |jD }|||tj|d
 d S )NTc                 S   s   |  ||}t|jD ]Y\}}|| }| | j}|| | | jdj}	t|r-|}
nt|t	j
rBt|d d |f |jdj}
n|| j}
|	 rM|nt	 |	||
}t||j|d}tj||dd q|rwt|t	j
sy|j| jk s{J d S d S d S )NFr9   )r:   name)check_dtype)r<   	enumerater   r=   reindexr:   fillnar   
isinstancer   ndarrayr   rB   r>   r?   rA   )r6   rC   otherrD   rF   irH   r_   dr0   o
new_valuesr`   r#   r#   r$   _check_alignc   s"   

zETestDataFrameIndexingWhere.test_where_alignment.<locals>._check_alignrL   rM   r   r.   c                 s   s     | ]}t |jtj V  qd S )N)r'   r)   r   r*   )r/   r,   r#   r#   r$   r2      s    zBTestDataFrameIndexingWhere.test_where_alignment.<locals>.<genexpr>)rD   rO   )	rQ   rR   rS   r7   r=   rB   rA   r   nan)rT   r%   r    rn   r6   rU   rC   rD   r#   r#   r$   test_where_alignmenta   s"   


z/TestDataFrameIndexingWhere.test_where_alignmentc                 C   sN  t tjddg dd}|dk}|d jddd d f }d}tjt|d	 ||| W d    n1 s8w   Y  |j	d dd d f j}t
|}d
}tjt|d	 ||| W d    n1 sgw   Y  tjt|d	 |d W d    n1 sw   Y  tjt|d	 |d W d    d S 1 sw   Y  d S )Nr   r   r   r   r   r.      z4other must be the same shape as self when an ndarrayrM   ,Array conditional must be same shape as selfT)r   r   r   r   r=   rQ   rR   
ValueErrorr<   r]   r7   mask)rT   r6   rC   err1rU   err2rE   r#   r#   r$   test_where_invalid   s&   "z-TestDataFrameIndexingWhere.test_where_invalidc                 C   s   ddd}|}||u r+d}t jt|d |dk W d    d S 1 s$w   Y  d S |dk}||| |dk}||| |dkdd  }||| d S )	NTc           	      S   s   |   }|| d}|| }|j|tjdd}|d u s!J t|| |rN| j	
 D ]!\}}t|jtjrD||  sDtd}|| j|ksMJ q.d S d S )NTinplacerZ   )copyreindex_likerf   rt   r<   r   ro   r>   r@   rA   r4   r'   r)   r*   rB   r(   )	r6   rC   rD   dfiecondr`   return_valuerH   rI   r#   r#   r$   
_check_set   s   
z=TestDataFrameIndexingWhere.test_where_set.<locals>._check_setrL   rM   r   r.   rO   rP   )rT   r%   r    r   r6   rU   rC   r#   r#   r$   test_where_set   s    




z)TestDataFrameIndexingWhere.test_where_setc                 C   sR   t tdtddd}||d dk}||d dk |j}t|| d S )Nr         abr   r.   )r   ranger<   re   r:   r>   r@   r^   r#   r#   r$   test_where_series_slicing   s   z4TestDataFrameIndexingWhere.test_where_series_slicingklassc                 C   s   t dg di}dgdgdgg}t dtjddgi}|||}t|| d|d< dtjdg|d< ddgddgddgg}|||}t|| d S )Nr   r.   rq   r   FTrq   r   r   )r   r   ro   r<   r>   r@   )rT   r   r6   rC   r`   r_   r#   r#   r$   test_where_array_like   s   z0TestDataFrameIndexingWhere.test_where_array_likerC   r.   r   rq   r   r   r   )rq   r   r   TrueFalsez
2017-01-01z
2017-01-02c                 C   sR   t dg di}d}tjt|d || W d    d S 1 s"w   Y  d S )Nr   r   (Boolean array expected for the conditionrM   r   rQ   rR   rs   r<   rT   rC   r6   rU   r#   r#   r$   test_where_invalid_input_single   s
   "z:TestDataFrameIndexingWhere.test_where_invalid_input_singler   )r      	   r   z
2017-01-03c                 C   sX   t g dg dd}d}tjt|d || W d    d S 1 s%w   Y  d S )Nr   )rq   rq   rq   r   r   rM   r   r   r#   r#   r$   !test_where_invalid_input_multiple   s
   "z<TestDataFrameIndexingWhere.test_where_invalid_input_multiplec                 C   s   t g dg dg}t g dg dg}||}t dtjdgtjtjdgg}t|| g d|_||}t tj|j|jd	}t|| d S )
Nr   r   r      )TFTFFT      ?r   r   )r   r   r0   r:   r   )r   r<   r   ro   r>   r@   r   r:   )rT   r6   rC   r_   r`   r#   r#   r$   test_where_dataframe_col_match  s   


z9TestDataFrameIndexingWhere.test_where_dataframe_col_matchc                 C   s  d}t g dg dg}dg}tjt|d || W d    n1 s&w   Y  t g dtjtjtjgg}|t|}t	|| t
g d}tjt|d || W d    n1 sdw   Y  t tjtjtjgg dg}|t|}t	|| d S )Nrr   r   r   TrM   )FTFT)r   rQ   rR   rs   r<   r   ro   r   r>   r@   array)rT   rU   r6   rC   r`   outr#   r#   r$   test_where_ndframe_align  s    z3TestDataFrameIndexingWhere.test_where_ndframe_alignc                 C   s   t g dg dddd}t tjtjddgddtjtjgddd}||dktj}t|| | }|j|dktjd	d
}|d u sFJ t|| d S )N)r          @      @      @r   r   r   r   r   rZ   rW   r   r   rq   Trx   )r   r   ro   r<   r>   r@   rz   )rT   r6   r`   r_   r~   r#   r#   r$   test_where_bug1  s    z)TestDataFrameIndexingWhere.test_where_bugc                 C   s   t tjg d|dtjg dddd}t tjtjddgddtjtjgddd}||dktj}t|| | }|j|dktjd	d
}|d u sNJ t|| d S )Nr.   rq   r   r   rW   r   rZ   r   r   r   rq   Trx   )r   r   r   ro   r<   r>   r@   rz   )rT   any_signed_int_numpy_dtyper6   r`   r_   r~   r#   r#   r$   test_where_bug_mixedB  s    z/TestDataFrameIndexingWhere.test_where_bug_mixedc                 C   s   t ddgddgddgd}t tjdgd	tjgtjtjgd}| ||kB }| }||| < |||}t|| t ddgdd
gd}t tjdgdtjgd}| ||kB }| }||| < |||}t|| d S )Nr.   rq   r   r   r   r   )r   r.   rq   r   r   r   r   r.   )r   r   ro   r   rz   r<   r>   r@   )rT   r   r   do_not_replacer`   r_   r#   r#   r$   test_where_bug_transpositionX  s   $

z7TestDataFrameIndexingWhere.test_where_bug_transpositionc                 C   s   t tdddtdddtjdd}tddd}d	}tjt|d
 ||k W d    n1 s2w   Y  ||j	d d d df |k }|
 }tj|jddgdf< tj|jd d df< t|| d S )N20130102r   periods20130104r   i  r.   r   zF'>' not supported between instances of 'float' and 'datetime.datetime'rM   r   r   r   )r   r   r   r   r   r   rQ   rR   rS   r]   rz   ro   locr>   r@   )rT   r6   stamprU   r_   r`   r#   r#   r$   test_where_datetimen  s    



z.TestDataFrameIndexingWhere.test_where_datetimec                 C   s   t dttdit}d ||dk< t dtdddddd	d
dtjtjg
i}t|| t dtjddtjdtjdg}d}t	j
t|d |jt| d dd W d    d S 1 s^w   Y  d S )Nseries
   r   r   r.   rq   r   r   r   r   Testr   zboolean setting on mixed-typerM   Trx   )r   r   r   astypefloatr   ro   r>   r@   rQ   rR   rS   r<   r   )rT   r6   r`   rU   r#   r#   r$   test_where_none  s   ""z*TestDataFrameIndexingWhere.test_where_nonec                 C   s<   t dgd}|}|jtk sJ ||}t|| d S )Nr   r   )r   rA   objectrB   r<   r>   r@   )rT   r6   rC   r_   r#   r#   r$   9test_where_empty_df_and_empty_cond_having_non_bool_dtypes  s
   
zTTestDataFrameIndexingWhere.test_where_empty_df_and_empty_cond_having_non_bool_dtypesc                 C   s   dd }| }| | }|jt|| dd}t|| |jt|| ddd}|d u s5J t|| |  d}|jdd	 |d d
}|j|dk|d dd}t|| |j|dk|d dd}t|| | }| d}|t|td|j	|j
d}t|| d S )Nc                  S   sR   t tjdd} tj| jdddf< tj| jdddf< tj| jddd	f< | S )
Nr   r   r   r   r   r   r.   r   rq   )r   r   r   r   ro   r]   r5   r#   r#   r$   create  s
   z;TestDataFrameIndexingWhere.test_where_align.<locals>.creater   axisTry   r   r   c                 S   s   |  | dk|S Nr   )r<   )xyr#   r#   r$   <lambda>  s    z=TestDataFrameIndexingWhere.test_where_align.<locals>.<lambda>r   r:   rowsr.   r   )rf   meanr<   pdnotnar>   r@   applyr   r:   r   )rT   r   r6   r`   r_   r~   r#   r#   r$   test_where_align  s(   
z+TestDataFrameIndexingWhere.test_where_alignc                 C   s\   t ddgtjdggddgd}t ddgddggddgd}tj|| dk< t|| d S )	Ny      ?      ?rq   y      @      ?r   r   r   y      @      ?r   )r   r   ro   absr>   r@   )rT   r`   r6   r#   r#   r$   test_where_complex  s   z-TestDataFrameIndexingWhere.test_where_complexc                 C   s  t tjdd}t ddgddgg}tddg}t ddgddggdd}|j||dd}t|| | }|j||dd	d
}|d u sFJ t|| t ddgddggdd}|j||dd}t|| | }|j||dd	d
}|d u syJ t|| d S )Nrq   Fr   r.   rZ   rW   r:   r   Tr   ry   r   )	r   r   r   r   r   r<   r>   r@   rz   rT   r6   rt   serr`   r_   r~   r#   r#   r$   test_where_axis  s"   z*TestDataFrameIndexingWhere.test_where_axisc                 C   s<  t ddgddggdd}t ddgddgg}tdtjg}t ddgtjtjggd	d}|j||d
d}t|| | }|j||d
dd}|d u sLJ t|| t dtjgdtjgg}|j||dd}t|| t tjddgddtjtjtjgd	dd}| }|j||ddd}|d u sJ t|| d S )Nr.   rq   r   r   r\   rW   Fr   rZ   r:   r   Tr   r   r   )	r   r   r   ro   r<   r>   r@   rz   r   r   r#   r#   r$   test_where_axis_with_upcast  s,   z6TestDataFrameIndexingWhere.test_where_axis_with_upcastc           
      C   s  t jttjddttjjddddddgdd	d
}td|j|jd}t	d	|jd}t	d|jd}|j
||dd}td|j|jd}|d d|d< |d d|d< t|| | }|j
||ddd}|d u soJ t|| |j
||dd}td|j|jd}|d d|d< |d d|d< t|| | }|j
||ddd}|d u sJ t|| | jd	dd}| d}tj|jd	d d f< |
||}t|| |j
||dd}t|| | }|j
||dd}|d u sJ t|| | }|j
||ddd}|d u sJ t|| | jd	d	d}	| }tj|jd d d	f< |
||	}t|| |j
||	dd}t|| | }|j
||	dd}|d u saJ t|| | }|j
||	ddd}|d u s{J t|| d S )Nr   rq   r   )r   rq   )sizer\   rW   Tr.   )ignore_indexr   F)r   r:   r9   r   r   r   r   r   r:   r   r   rx   r   )r   concatr   r   r   r   randintr   r:   r   r<   r   r>   r@   rz   dropro   r   )
rT   r6   rt   s1s2r_   r`   r~   d1d2r#   r#   r$   test_where_axis_multiple_dtypes  st   z:TestDataFrameIndexingWhere.test_where_axis_multiple_dtypesc                 C   s0  t g dg dg dg}|dd dd }t g dg dg dg}t|| t|||d	k|d
  |dd dd }t g dg dg dg}t|| t|||d dkd |d dd dd }t g dg dg dg}t|| t||d |d dk|d d  d S )Nr   r   )r   r   r   c                 S      | dkS )Nr   r#   r   r#   r#   r$   r   M      z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>c                 S      | d S Nr.   r#   r   r#   r#   r$   r   M  r   )rq   r   r   )r   r   r   r   r.   c                 S   s   | d dkj S )Nrq   r   )r=   r   r#   r#   r$   r   S  s    c                 S   s   dS )Nc   r#   r   r#   r#   r$   r   S  s    )r   rq   r   )r   r   r   )r   r   r   rq   r   r   c                 S   r   )Nr   r#   r   r#   r#   r$   r   Y  r   c                 S   r   )Nr   r#   r   r#   r#   r$   r   Y  r   )         )         )r   r      r   r   )r   r<   r>   r@   )rT   r6   r_   rJ   r#   r#   r$   test_where_callableJ  s   ,z.TestDataFrameIndexingWhere.test_where_callablec                 C   s   t tg d|ddgd}t tg d|ddgd}t g ddgd}t tg d|ddgd}|tu rD|d }|d }|d }|d }|||}t|| d S )N)201501012015010220150103)tzdater   )r   2015010420150105TTF)r   r   r   )r   r   r   r<   r>   assert_equal)rT   tz_naive_fixtureframe_or_seriesobj1obj2rt   rJ   r_   r#   r#   r$   test_where_tz_values^  s(   z/TestDataFrameIndexingWhere.test_where_tz_valuesc                 C   sv   t tdddtdd}tg dg dg}||}t dtjtjgtjtjd	ggtdd}t	|| d S )
Nr   rq   r   ABCr   TFFr   r   r   )
r   r   arangereshapelistr   r<   ro   r>   r@   )rT   r6   rt   r_   r`   r#   r#   r$   test_df_where_change_dtypeu  s   
 z5TestDataFrameIndexingWhere.test_df_where_change_dtypekwargsri   Nc           
      C   s  t jdt jddd}t|tdd}t g dg dg}|jd	|_|j	d	|_	|j
d	|_
|j|fi |}tjd
t jgd
dgd}tjt jt jgddgd}tjt jdgddgd}t|||d}	t||	 |jj|d d d
f fi |}t|dd}	t||	 d S )Nr   rW   rq   r   r   r   r   r   categoryr   )
categoriesr.   r   r   r   r   )rb   )r   r   r\   r   r   r   r   r   r   r   r   r<   r   Categoricalro   r>   r@   r   r?   )
rT   r   datar6   rt   r_   r   r   r   r`   r#   r#   r$   test_df_where_with_category  s    z6TestDataFrameIndexingWhere.test_df_where_with_categoryc                 C   sv   t ddgddggddgd}|d d|d< ||d dk}| ddi}tj|jdd d f< t|| d S )Nr   r.   r   r   r   r   r   r   )	r   r   r<   rz   r   ro   r   r>   r   r^   r#   r#   r$    test_where_categorical_filtering  s   z;TestDataFrameIndexingWhere.test_where_categorical_filteringc                 C   s   t g dg dd}tdtjdg}t|}tj|jtd}d|dd d f< |j	||d	d
}t dtjdgdtjdgd
t}t|| t|d d ddgd}t g ddtjdgd}|d 
t|d< |j	||dd
}t|| d S )Nr   r   r   r   r   r   rW   Fr.   r   r   r   r   r   rq   r   r   r9   )r.   r   r   )r   r   r   NAr   r   onesshapeboolr<   r   r   r>   r@   )rT   r6   arrr   rt   r_   r`   ser2r#   r#   r$   test_where_ea_other  s   $z.TestDataFrameIndexingWhere.test_where_ea_otherc                 C   sR   t tddg}|| }t|| |d }|| }t|| d S r   )r   r   Intervalr<   r   r>   r@   r?   )rT   r6   resr   r#   r#   r$   test_where_interval_noop  s   z3TestDataFrameIndexingWhere.test_where_interval_noopc                 C   sr   |t ddgd }|ddg}||  |}t||tj |j	| |dd t||t
 d S )Nr   rq   r   r   Trx   )r   r
  r<   r   r>   r   r   r   r\   rt   r   )rT   r   objri   r  r#   r#   r$   #test_where_interval_fullop_downcast  s   z>TestDataFrameIndexingWhere.test_where_interval_fullop_downcastr(   )ztimedelta64[ns]zdatetime64[ns]zdatetime64[ns, Asia/Tokyo]z	Period[D]c                 C   s   t tdd tjd|}| }tg d}|| d}t	|| |
dd}|| d}t|| ||d}t	|| ||d}	t|	| ||d}
td|j|jd	}t|
| |j| dd
d t||t d S )Nr   i ʚ;rW   FFFfoor   r.   r   r   Trx   )r   r   r   r\   viewto_framer   r<   r>   r?   r   r@   rt   r   r:   r   r   r   )rT   r(   r   r6   rt   r  mask2res2res3res4res5r`   r#   r#   r$   test_where_datetimelike_noop  s"   z7TestDataFrameIndexingWhere.test_where_datetimelike_noop).__name__
__module____qualname__rV   ra   rp   rw   r   r   rQ   markparametrizer   tupler   r   r   r   r   r
   r   NaTr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r  r#   r#   r#   r$   r8   .   sv    2$



	!H

	r8   c                  C   s   t dt jdd} t| }t j| jtd}d|d d df< |	|d}t| d d df t j
dgd t jdd}t|| d S )	Nr   r   rq   rW   Tr   i   r   )r   r   r   int16r   r   zerosr  r  r<   r   r[   r>   r@   )r  r6   rt   r  r`   r#   r#   r$   %test_where_int_downcasting_deprecated  s   ,r"  c                 C   sv   | g d}|  }| tu r|d n|}||dk }|d9 }t|| ||dkg d}|d9 }t|| d S )Nr   r   r   rq   )rz   r   r<   r>   r   )r   r_   r`   col	where_resr#   r#   r$   test_where_copies_with_noop	  s   r%  c                 C   s   | g dg dt  d}| ddgddgt  d}tg d}|||}| tjddtjgg dt  d}t|| || |}t|| |j| |d	d
 t|| d S )N)r   r   r0   rk   )id1id2id3id4)r:   r(   r   r0   r'  r(  )FTTFTrx   )r	   r   r<   r   r  r>   r   rt   )r   r  filtered_obj
filter_serr_   r`   r#   r#   r$   test_where_string_dtype  s$   r,  c                  C   sr   t dgd dgd g dd} | | dk}t tjtjgd tddgd tjdtjdgd}t|| d S )NTr   F)TFTF)AAABBBCCCrW   )r   r<   r   r   ro   r   r>   r@   )df_maskr_   r`   r#   r#   r$   test_where_bool_comparison3  s   r1  c                  C   sF   t tdtjtdgddtjgd} | |  d }t	||  d S )N2013010120130103r.   rq   r  )
r   r
   r   r  r   ro   r<   notnullr>   r@   )r`   r_   r#   r#   r$   test_where_none_nan_coerceC  s   
r5  c                  C   s   t dtjggtddgd} | j\}}t ddgg||d}| t|}| d|}| j|jj}| |}t	
|d|d t	
|d|d t	
|d|d d S )Nr   r   r   T)r   r   r:   f8)r   r   ro   r   axesr   r   r<   Tr>   r@   )r_   r:   r   rt   r   r   r0   rk   r#   r#   r$   &test_where_duplicate_axes_mixed_dtypesO  s   

r9  c                  C   sB   t ddgdtjgd} |  }| t| d }t|| d S )Nr   r   r   r   )	r   r   ro   rz   r<   r   r4  r>   r@   )r6   r`   r_   r#   r#   r$   test_where_columns_casting^  s   r:  as_catTFc           
      C   s  t jdddd}|r|d}| |}t jd}tjg d|jdj}|r)d	}nd
}|rt	j
t|d ||| W d    n1 sEw   Y  t	j
t|d ||| W d    n1 sbw   Y  t	j
t|d |j||dd W d    d S 1 sw   Y  d S |t||}|||}	t|	| |t||}|||}	t|	| |j||dd t|| d S )N
2016-01-01r   D)r   freqr   m8[ns]r   ndminzUCannot setitem on a Categorical with a new category \(NaT\), set the categories firstzvalue should be a 'Period'rM   Trx   )r   period_ranger   r  to_numpyr   r   ndimr8  rQ   rR   rS   r<   rt   r   r>   r   )
r   r;  r   idxr  tdnatrt   rU   r`   r_   r#   r#   r$   test_where_period_invalid_nah  s8   
"rG  c              	   C   s   t jg d|d}| |}tjg d|jdj}d}tjt jg D ]<}tj	t
|d ||| W d    n1 s;w   Y  tj	t
|d ||| W d    n1 sXw   Y  q!d S )Nr   rW   r   r@  z1Invalid value '.*' for dtype (U?Int|Float)\d{1,2}rM   )r   r   r   rD  r8  r>   NP_NAT_OBJECTSr  rQ   rR   rS   r<   rt   )r   any_numeric_ea_dtyper  r  rt   rU   nullr#   r#   r$   test_where_nullable_invalid_na  s   rK  )r   c                 C   sH   t d| i}|t|d  }|jt|d dd t|| d S )Nr   Trx   )r   r<   r   r4  rz   r>   r   )r   r6   df_copyr#   r#   r$   test_where_inplace_casting  s   rM  c                  C   sT   t g d} tg d}tjdd}| ||}t |||gdd}t|| d S )Nr   r  r.   )daysr?  rW   )r   r   r   r   	Timedeltar<   r>   r?   )r   rt   tdr  r`   r#   r#   r$   test_where_downcast_to_td64  s   rQ  c                 C   s~   |  ||}t|| | | |}t|| |  } | j| |dd | s7| }|d t|d< t| | d S )NTrx   r   )r<   r>   r@   rt   rz   rB   r   r   )r6   rt   ri   r`   r  r#   r#   r$   _check_where_equivalences  s   rR  c                  C   s   t ddd} | jdd}||d  }t|ddgd	}t|  }d
|d d df< t|d d df |d d df d}t|||| d
|d< ttj	|d |d |d gt
d|d d df d}t|||| d
|d d < |}t|||| d S )Nr<  r   r   r   rq   )r   r   r   r   r   Tr.   r   r  )r.   r   )rq   r   rW   )r   _datar   r   r   asarrayr   rz   rR  r   r   )dtidtari   r6   rt   r`   r#   r#   r$   test_where_dt64_2d  s$   &rW  c                  C   sh   t tdtjdgddg dd} | dd }t ttjtjdgddtjdd	gd}t|| d S )
Nr.   rq   Int64rW   r   r   c                 S   s   | j dd ddS )Nc                 S   r   r   r#   r   r#   r#   r$   r     r   zMtest_where_producing_ea_cond_for_np_dtype.<locals>.<lambda>.<locals>.<lambda>r.   r   )r   r   r#   r#   r$   r     s    z;test_where_producing_ea_cond_for_np_dtype.<locals>.<lambda>r   )	r   r   r   r  r<   r   ro   r>   r@   )r6   r_   r`   r#   r#   r$   )test_where_producing_ea_cond_for_np_dtype  s   ""rY  replacementgMbP?snakei  r   r   c                 C   sP   t g dtjdd gg}|t|| }t g d| d| gg}t|| d S )N)r   g(,*0Enineg?)r   r   ro   r<   r   r4  r>   r@   )rZ  r6   r_   r`   r#   r#   r$   test_where_int_overflow  s   r]  c                  C   sd   t ddgddgd} t ddgddgd}| j|dd t dtjgtjdgd}t| | d S )	Nr.   rq   r   r   r   TFrx   )r   r<   r   ro   r>   r@   )r6   rC   r`   r#   r#   r$   test_where_inplace_no_other  s
   r^  )-r   
hypothesisr   numpyr   rQ   pandas.core.dtypes.commonr   pandasr   r   r   r   r   r	   r
   r   r   pandas._testing_testingr>   pandas._testing._hypothesisr   fixturer%   r7   r8   r"  r%  r,  r1  r5  r9  r:  r  r  rG  rK  rM  rQ  rR  rW  rY  r]  r^  r#   r#   r#   r$   <module>   sN    (


     R

-


	