o
    _~#g                     @   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   sV   | 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default_rngstandard_normal)requestfloat_string_framemixed_float_framemixed_int_frame r&   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/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/   r0   r&   r'   	<genexpr>-   s   . z_safe_add.<locals>.<genexpr>)r   dictitemsdfr&   r4   r'   	_safe_add&   s   r:   c                   @   sR  e Zd Zdd Zdd Zejddd Zejdd	d
 Z	ejd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d0d1 Zd2d3 Zd4d5 Z d6d7 Z!d8d9 Z"d:d; Z#d<d= Z$d>d? Z%d@dA Z&dBdC Z'dDdE Z(ejdFi dGdHigdIdJ Z)dKdL Z*dMdN Z+dOdP Z,dQdR Z-ejdSg dTdUdV Z.dHS )W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)r:   wherevaluesr7   r   r   r=   tmassert_series_equalassert_frame_equaldtypesall)	r9   condcheck_dtypesother1rsrs2kvexpr&   r&   r'   
_check_get2   s   $z=TestDataFrameIndexingWhere.test_where_get.<locals>._check_get6'>' not supported between instances of 'str' and 'int'matchr   T)pytestraises	TypeError)selfr(   r#   rN   r9   msgrF   r&   r&   r'   test_where_get1   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 )r1   r   r+   )r   )r2   r3   r&   r&   r'   
<dictcomp>L   s    zCTestDataFrameIndexingWhere.test_where_upcasting.<locals>.<dictcomp>)float32float64int32int64r   r1   r[   r\   r]   r^   r<   )r   ilocrD   r   r   r+   rA   rB   rV   r9   resultexpectedr&   r&   r'   test_where_upcastingI   s    z/TestDataFrameIndexingWhere.test_where_upcastingz4ignore:Downcasting object dtype arrays:FutureWarningc                 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 )NFr<   )r=   name)check_dtype)r?   	enumerater   r@   reindexr=   fillnar   
isinstancer   ndarrayr   rE   rA   rB   rD   )r9   rF   otherrG   rI   irK   ra   dr3   o
new_valuesrb   r&   r&   r'   _check_alignf   s"   

zETestDataFrameIndexingWhere.test_where_alignment.<locals>._check_alignrO   rP   r   r1   c                 s   s     | ]}t |jtj V  qd S )N)r*   r,   r   r-   )r2   r/   r&   r&   r'   r5      s    zBTestDataFrameIndexingWhere.test_where_alignment.<locals>.<genexpr>)rG   rR   )	rS   rT   rU   r:   r@   rE   rD   r   nan)rV   r(   r#   rp   r9   rW   rF   rG   r&   r&   r'   test_where_alignmentc   s"   


z/TestDataFrameIndexingWhere.test_where_alignmentzignore::DeprecationWarningc                 C   sR  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 s:w   Y  |j
d dd d f j}t|}d	}tjt|d |	|| W d    n1 siw   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   r1   z4other must be the same shape as self when an ndarrayrP   ,Array conditional must be same shape as selfT)r   r   r   r    r!   r@   rS   rT   
ValueErrorr?   r_   r:   mask)rV   r9   rF   err1rW   err2rH   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 ||u r4|d}|dk}||| |dk}||| |dkdd  }||| d S )
NTc           	      S   s   |   }|| djdd}|| }|j|tjdd}|d u s%J t	|| |rR| j
 D ]!\}}t|jtjrH||  sHtd}|| j|ksQJ q2d S d S )NTF)copyinplacer\   )ry   reindex_likerh   infer_objectsru   r?   r   rq   rA   rC   rD   r7   r*   r,   r-   rE   r+   )	r9   rF   rG   dfiecondrb   return_valuerK   rL   r&   r&   r'   
_check_set   s   
z=TestDataFrameIndexingWhere.test_where_set.<locals>._check_setrO   rP   r   r\   r1   rR   )rS   rT   rU   astype)rV   r(   r#   r%   r   r9   rW   rF   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   r1   )r   ranger?   rg   r=   rA   rC   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   r1   r   r   FTr   r   r   )r   r   rq   r?   rA   rC   )rV   r   r9   rF   rb   ra   r&   r&   r'   test_where_array_like   s   z0TestDataFrameIndexingWhere.test_where_array_likerF   r1   r   r   r   r   r   )r   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 conditionrP   r   rS   rT   rt   r?   rV   rF   r9   rW   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   )r   r   r   r   r   rP   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   r3   r=   r   )r   r?   r   rq   rA   rC   r   r=   )rV   r9   rF   ra   rb   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 )Nrs   r   r   TrP   )FTFT)r   rS   rT   rt   r?   r   rq   r   rA   rC   array)rV   rW   r9   rF   rb   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   r\   rY   r   r   r   Trz   )r   r   rq   r?   rA   rC   ry   )rV   r9   rb   ra   r   r&   r&   r'   test_where_bug:  s    z)TestDataFrameIndexingWhere.test_where_bugc                 C   s   t tjg d|dtjg dddd}t g dg dd|dd}||dkd	}t|| | }|j|dkd	d
d}|d u sHJ t|| d S )Nr1   r   r   r   rY   r   r\   r   )r   r   r   )r   r   r   r   r   r   Trz   )r   r   r   r   r?   rA   rC   ry   )rV   any_signed_int_numpy_dtyper9   rb   ra   r   r&   r&   r'   test_where_bug_mixedK  s    z/TestDataFrameIndexingWhere.test_where_bug_mixedc                 C   sH  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 }| }||| < d
}tjt|d |||}W d    n1 sKw   Y  t	|| t ddgddgd}t tjdgdtjgd}| ||kB }| }||| < tjt|d |||}W d    n1 sw   Y  t	|| d S )Nr1   r   r   r   r   r   )r   r1   r   r   r   <Downcasting behavior in Series and DataFrame methods 'where'rP   r   r   r1   )
r   r   rq   r   ry   rA   assert_produces_warningFutureWarningr?   rC   )rV   r   r   do_not_replacerb   rW   ra   r&   r&   r'   test_where_bug_transposition`  s&   $

z7TestDataFrameIndexingWhere.test_where_bug_transpositionc                 C   s   t tdddtdddtjddd}tddd	}d
}tjt	|d ||k W d    n1 s5w   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   r   i  r1   r   zF'>' not supported between instances of 'float' and 'datetime.datetime'rP   r   r   r   r   )r   r   r   r   r    r!   r   rS   rT   rU   r_   ry   rq   locrA   rC   )rV   r9   stamprW   ra   rb   r&   r&   r'   test_where_datetimey  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}|	 }t
| }|j|d dd t dtjgd dgdd gd}t|| |	 }d || < t|| d S )Nseries
   r   r   r1   r   r   r   r   r   Testr   Trz   r   )r   r   r   r   floatr   rq   rA   rC   ry   r   r?   )rV   r9   rb   origru   r&   r&   r'   test_where_none  s0   "

z*TestDataFrameIndexingWhere.test_where_nonec                 C   s<   t dgd}|}|jtk sJ ||}t|| d S )Nr   r   )r   rD   objectrE   r?   rA   rC   )rV   r9   rF   ra   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   sV   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   r1   r   )r   r   r   r    r!   rq   r_   r8   r&   r&   r'   create  s
   z;TestDataFrameIndexingWhere.test_where_align.<locals>.creater   axisTr{   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=   rowsr1   r   )rh   meanr?   pdnotnarA   rC   applyr   r=   r   )rV   r   r9   rb   ra   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      ?      ?r   y      @      ?r   r   r   y      @      ?r   )r   r   rq   absrA   rC   )rV   rb   r9   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 sHJ t|| t ddgddggdd}|j||dd	}t|| |	 }|j||dd
d}|d u s{J t|| d S )Nr   )r   r   Fr   r1   r\   rY   r=   r   Tr   r{   r   )
r   r   r   r    r!   r   r?   rA   rC   ry   rV   r9   ru   serrb   ra   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|| | }tjt	dd |j||d
dd}W d    n1 sXw   Y  |d u scJ 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}| }tjt	dd |j||ddd}W d    n1 sw   Y  |d u sJ t|| d S )Nr1   r   r   r   r^   rY   Fr   r\   r=   r   incompatible dtyperP   Tr   r   r   )r   r   r   rq   r?   rA   rC   ry   r   r   r   r   r&   r&   r'   test_where_axis_with_upcast  s4   z6TestDataFrameIndexingWhere.test_where_axis_with_upcastc           
      C   sr  t jttjddttjd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 stJ 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|| | }tjtdd |j||dd}W d    n	1 sw   Y  |d u sJ t|| | }tjtdd |j||ddd}W d    n	1 sAw   Y  |d u sMJ t|| | j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 sJ t|| d S )Nr   )r   r   r   r   )sizer^   rY   Tr1   )ignore_indexr   F)r   r=   r<   r   r   r   r   r   r=   r   r   r   rP   rz   r   )r   concatr   r   r   r    r!   integersr   r=   r   r?   r   rA   rC   ry   droprq   r   r   r   )
rV   r9   ru   s1s2ra   rb   r   d1d2r&   r&   r'   test_where_axis_multiple_dtypes  s   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   l      z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>c                 S      | d S Nr1   r&   r   r&   r&   r'   r   l  r   )r   r   r   )r   r   r   r   r1   c                 S   s   | d dkj S )Nr   r   )r@   r   r&   r&   r'   r   r  s    c                 S   s   dS )Nc   r&   r   r&   r&   r'   r   r  s    )r   r   r   )r   r   r   )r   r   r   r   r   r   c                 S   r   )Nr   r&   r   r&   r&   r'   r   x  r   c                 S   r   )Nr   r&   r   r&   r&   r'   r   x  r   )         )         )r   r      r   r   )r   r?   rA   rC   )rV   r9   ra   rM   r&   r&   r'   test_where_callablei  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?   rA   assert_equal)rV   tz_naive_fixtureframe_or_seriesobj1obj2ru   rM   ra   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   r   r   ABCr   TFFr   r   r   )
r   r   arangereshapelistr   r?   rq   rA   rC   )rV   r9   ru   ra   rb   r&   r&   r'   test_df_where_change_dtype  s   
 z5TestDataFrameIndexingWhere.test_df_where_change_dtypekwargsrk   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   rY   r   r   r   r   r   r   categoryr   )
categoriesr1   r   r   r   r   )rd   )r   r   r^   r   r   r   r   r   r   r   r   r?   r   Categoricalrq   rA   rC   r   rB   )
rV   r  datar9   ru   ra   r   r   r   rb   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   r1   r   r   r  r   r  r   )	r   r   r?   ry   r   rq   r   rA   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|d d ddgd}t g ddtj
dgd}|j	||dd
}t|| d S )Nr   r   r   r   r   r   rY   Fr1   r   r   r   r   r   r   r   r   r<   )r1   r   r   )r   r   r   NAr   r   onesshapeboolr?   rq   rA   rC   )rV   r9   arrr   ru   ra   rb   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   rA   rC   rB   )rV   r9   resr   r&   r&   r'   test_where_interval_noop  s   z3TestDataFrameIndexingWhere.test_where_interval_noopc                 C   s   |t ddgd }|ddg}d}tjt|d ||  |}W d    n1 s.w   Y  t||t	j
 tjtdd |j| |dd	 W d    n1 sYw   Y  t||t d S )
Nr   r   r   r   r   rP   %Setting an item of incompatible dtypeTrz   )r   r  rA   r   r   r?   r   r   r   r   r^   ru   r   )rV   r   objrk   rW   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 jtdd ttdd tjd|}W d    n1 s!w   Y  | }t	g d}|
| d}t || |dd	}|
| d}t || ||d}t || ||d}	t |	| d
}
t jt|
d |
|d}W d    n1 sw   Y  td|j|jd}t || t jtdd |j| ddd W d    n1 sw   Y  t ||t d S )Nzis deprecatedrP   r   i ʚ;rY   FFFfoor   r1   r   r   r   r  Trz   )rA   r   r   r   r   r   r^   viewto_framer   r?   rB   r   rC   ru   r   r=   r   r   r   )rV   r+   r   r9   ru   r  mask2res2res3res4rW   res5rb   r&   r&   r'   test_where_datetimelike_noop  s4    z7TestDataFrameIndexingWhere.test_where_datetimelike_noop)/__name__
__module____qualname__rX   rc   rS   markfilterwarningsrr   rx   r   r   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'   r;   0   s|    


2


&



#	! M

	r;   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   r   rY   Tr   i   r   )r   r   r   int16r   r   zerosr  r  r?   r   r]   rA   rC   )r  r9   ru   r  rb   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   r   )ry   r   r?   rA   r   )r   ra   rb   col	where_resr&   r&   r'   test_where_copies_with_noop3  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   r3   rm   )id1id2id3id4)r=   r+   r   r3   r0  r1  )FTTFTrz   )r	   r   r?   r   r
  rA   r   ru   )r   r  filtered_obj
filter_serra   rb   r&   r&   r'   test_where_string_dtypeD  s$   r5  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CCCrY   )r   r?   r   r   rq   r   rA   rC   )df_maskra   rb   r&   r&   r'   test_where_bool_comparison]  s   r:  c                  C   sF   t tdtjtdgddtjgd} | |  d }t	||  d S )N2013010120130103r1   r   r	  )
r   r
   r   r(  r   rq   r?   notnullrA   rC   )rb   ra   r&   r&   r'   test_where_none_nan_coercem  s   
r>  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   rq   r   axesr   r   r?   TrA   rC   )ra   r=   r   ru   r   r   r3   rm   r&   r&   r'   &test_where_duplicate_axes_mixed_dtypesy  s   

rB  c                  C   sB   t ddgdtjgd} |  }| t| d }t|| d S )Nr   r   r   r   )	r   r   rq   ry   r?   r   r=  rA   rC   )r9   rb   ra   r&   r&   r'   test_where_columns_casting  s   rC  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|	| tjtdd |j||dd W d    n1 sw   Y  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'rP   Trz   r  )r   period_ranger   r(  to_numpyr   r   ndimrA  rS   rT   rU   r?   ru   r   rA   r   r   r   )
r   rD  r"   idxr  tdnatru   rW   rb   ra   r&   r&   r'   test_where_period_invalid_na  s@   
"rP  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   rY   r   rI  z1Invalid value '.*' for dtype (U?Int|Float)\d{1,2}rP   )r   r   r   rM  rA  rA   NP_NAT_OBJECTSr(  rS   rT   rU   r?   ru   )r   any_numeric_ea_dtyper  r  ru   rW   nullr&   r&   r'   test_where_nullable_invalid_na  s   rT  )r  c                 C   sH   t d| i}|t|d  }|jt|d dd t|| d S )Nr   Trz   )r   r?   r   r=  ry   rA   r   )r  r9   df_copyr&   r&   r'   test_where_inplace_casting  s   rV  c               	   C   s  t g d} tg d}tjdd}d}tjt|d | ||}W d    n1 s-w   Y  t |||gdd}t	|| t
d	d
% tjd |d | ||}W d    n1 s`w   Y  W d    n1 sow   Y  |t}t	|| d S )Nr   r  r1   )daysr   rP   rH  rY   zfuture.no_silent_downcastingT)r   r   r   r   	TimedeltarA   r   r   r?   rB   option_contextr   r   )r   ru   tdrW   r  rb   r  	expected2r&   r&   r'   test_where_downcast_to_td64  s"   
r\  c                 C   s~   |  ||}t|| | | |}t|| |  } | j| |dd | s7| }|d t|d< t| | d S )NTrz   r   )r?   rA   rC   ru   ry   rE   r   r   )r9   ru   rk   rb   r  r&   r&   r'   _check_where_equivalences  s   r]  c                  C   sV  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j	t
dd t|||| W d    n1 sXw   Y  d
|d< ttj|d |d |d gtd|d d df d}tj	t
dd t|||| W d    n1 sw   Y  d
|d d < |}t|||| d S )NrE  r   r   r   r   )r   r   r   r   r   Tr1   r   r	  r  rP   )r1   r   )r   r   rY   )r   _datar   r   r   asarrayr   ry   rA   r   r   r]  r   r   )dtidtark   r9   ru   rb   r&   r&   r'   test_where_dt64_2d  s4   &rb  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 )
Nr1   r   Int64rY   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>r1   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   rq   rA   rC   )r9   ra   rb   r&   r&   r'   )test_where_producing_ea_cond_for_np_dtype+  s   ""rd  replacementgMbP?snakei  r   r   c                 C   sr   t g dtjdd gg}|r| dvr|jtjjdd |t	
|| }t g d| d| gg}t|| d S )N)r   g(,*0Enineg?)Nrf  z'Can't set non-string into string column)reason)r   r   rq   node
add_markerrS   r$  xfailr?   r   r=  rA   rC   )re  using_infer_stringr"   r9   ra   rb   r&   r&   r'   test_where_int_overflow5  s   rm  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   r   r   r   r   TFrz   r1   )r   r?   r   rq   rA   rC   )r9   rF   rb   r&   r&   r'   test_where_inplace_no_otherE  s
   rn  )-r   
hypothesisr   numpyr   rS   pandas.core.dtypes.commonr   pandasr   r   r   r   r   r	   r
   r   r   pandas._testing_testingrA   pandas._testing._hypothesisr   fixturer(   r:   r;   r+  r.  r5  r:  r>  rB  rC  r$  r&  rP  rT  rV  r\  r]  rb  rd  rm  rn  r&   r&   r&   r'   <module>   sN    (


     z

0
$

