
    Pi                     6   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	             Zd
 Z G d d          Zd Zd Zd Zd Zd Zd Z d Z!ej"        #                    dddg          d             Z$d Z%ej"        j&         ee          d                         Z'd Z(d Z)d Z*d Z+ej"        #                    dd dd!d e d"d#d$          g          d%             Z,d& Z-d' Z.d( Z/dS ))    )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                     | j         dk    rCt          t          j                            d                              d          g 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_frames       z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/frame/indexing/test_where.pywhere_framer)      s    }	!!I!!!$$44V<<ooo
 
 
 	
 }&&!!}%%  }## $#    c                 ~    d t          t          fd|                                 D                                 S )Nc                 x    t          | j        j        t          j        t          j        f          o
| j        dk    S )Nuint8)
issubclassdtypetyper    integerfloating)ss    r(   is_okz_safe_add.<locals>.is_ok(   s-    qw|bj"+%>??VAGwDV	
r*   c              3   J   K   | ]\  }} |          r||d z   fn||fV  dS )   N ).0cr3   r4   s      r(   	<genexpr>z_safe_add.<locals>.<genexpr>-   sD      TTAa<1a!e**q!fTTTTTTr*   )r   dictitems)dfr4   s    @r(   	_safe_addr>   &   sG    
 
 

 TTTTTTTTTTUUUr*   c                      e Zd Zd Zd Zd Zej                            d          d             Z	d Z
d Zej                            deeej        g          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             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             Zd Zd Zd Zd Zd  Zd! Zd" Zd# Z d$ Z!d% Z"d& Z#d' Z$d( Z%d) Z&d* Z'd+ Z(ej                            d,i d-d.ig          d/             Z)d0 Z*d1 Z+d2 Z,d3 Z-ej                            d4g d5          d6             Z.d.S )7TestDataFrameIndexingWherec                     dd}|}||u r=d}t          j        t          |          5  |dk     d d d            n# 1 swxY w Y   d S |dk    } |||           d S )NTc           	         t          |           }|                     ||          }|                     |j        |          }|                                D ]X\  }}t	          t          j        ||         | |         ||                   |j                  }t          j        ||d           Yt          j	        ||           |r$|j
        | j
        k                                    sJ d S d S )NindexF)check_names)r>   wherevaluesr<   r	   r    rD   tmassert_series_equalassert_frame_equaldtypesall)	r=   condcheck_dtypesother1rsrs2kvexps	            r(   
_check_getz=TestDataFrameIndexingWhere.test_where_get.<locals>._check_get2   s    r]]F$''B((4;//C

 B B1RXd1gr!ufQi@@PPP&q#5AAAAA!"c***  6	RY.33555556 655r*   I'>' not supported between instances of 'str' and 'int'|Invalid comparisonmatchr   T)pytestraises	TypeError)selfr)   r%   rU   r=   msgrM   s          r(   test_where_getz)TestDataFrameIndexingWhere.test_where_get1   s    	6 	6 	6 	6 ###&  y444  Q              FAv
2t   ;??c                 J   t          d dD                       }d|j        dd d f<   |j        }t          t	          j        d          t	          j        d          t	          j        d          t	          j        d          gg d	          }t          j        ||           d S )
Nc                 :    i | ]}|t          d gdz  |          S )r6   r   r/   )r	   )r8   r9   s     r(   
<dictcomp>zCTestDataFrameIndexingWhere.test_where_upcasting.<locals>.<dictcomp>O   s=        61#'+++  r*   )float32float64int32int64r   r6   re   rf   rg   rh   rC   )r   ilocrK   r	   r    r/   rH   rI   r]   r=   resultexpecteds       r(   test_where_upcastingz/TestDataFrameIndexingWhere.test_where_upcastingL   s     A  
 
 111####!!!!	 ;::
 
 
 	vx00000r*   c                    d	d}|}||u r=d}t          j        t          |          5  |dk     d d d            n# 1 swxY w Y   d S |dk    dd          } |||t          |                     |dk    } |||t          |          j                   |dk    }t          d |j        D                       } |||t          j        |           d S )
NTc                 
   |                      ||          }t          |j                  D ]\  }}||         }| |         j        }||                             | |         j                                      d          j        }	t          |          r|}
nMt          |t          j
                  r&t          |d d |f         |j                  j        }
n||         j        }
|	                                r|nt          j         |	||
          }t          ||j        |          }t          j        ||d           |r>t          |t          j
                  s&|j        | j        k                                    sJ d S d S d S )NFrC   )rD   name)check_dtype)rF   	enumerater   rG   reindexrD   fillnar   
isinstancer    ndarrayr	   rL   rH   rI   rK   )r=   rM   otherrN   rP   irR   rk   dr9   o
new_valuesrl   s                r(   _check_alignzETestDataFrameIndexingWhere.test_where_alignment.<locals>._check_alignh   s~   $&&B!"*-- L L1AqELGOOBqEK0077>>EU## (AArz22 (uQQQT{&,???FAAaA"#%%''@QQrx1a/@/@
!*FLqIII &vxUKKKKK
  6Jubj$A$A 6	RY.33555556 6 6 655r*   rV   rW   r   r6   c              3   V   K   | ]$}t          |j        t          j                   V  %d S )N)r.   r0   r    r1   )r8   r3   s     r(   r:   zBTestDataFrameIndexingWhere.test_where_alignment.<locals>.<genexpr>   s3      QQ!z!&"*===QQQQQQr*   )rN   rY   )	rZ   r[   r\   r>   rG   rL   rK   r    nan)r]   r)   r%   r|   r=   r^   rM   rN   s           r(   test_where_alignmentz/TestDataFrameIndexingWhere.test_where_alignmentf   sL   	6 	6 	6 	66 ###&  y444  Q              F Q|Ry}}--- AvR	" 4666 AvQQryQQQQQRrvLAAAAAAr`   zignore::DeprecationWarningc                 `   t          t          j                            d                              d          g d          }|dk    }|dz   j        ddd d f         }d}t          j        t          |          5  |	                    ||           d d d            n# 1 swxY w Y   |j
        d dd d f         j        }t          |          }d	}t          j        t          |          5  |	                    ||           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d
           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r6   z4other must be the same shape as self when an ndarrayrW   ,Array conditional must be same shape as selfT)r   r    r!   r"   r#   rG   rZ   r[   
ValueErrorrF   ri   r>   mask)r]   r=   rM   err1r^   err2rO   s          r(   test_where_invalidz-TestDataFrameIndexingWhere.test_where_invalid   s    I!!!$$44V<<ooo
 
 
 AvQqsAAAv&D]:S111 	! 	!HHT4   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! y!QQQ&2<]:S111 	# 	#HHT6"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# ]:S111 	 	GGDMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	GGAJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   =B  B$'B$/DDD8EE!E F##F'*F'c                 B   dd}|}||u r=d}t          j        t          |          5  |dk     d d d            n# 1 swxY w Y   d S ||u r|                    d          }|dk    } |||           |dk    } |||           |dk    dd          } |||           d S )	NTc                 N   |                                  }|                    |                               d                                          }|                    |           }|                    |t          j        d          }||u sJ t          j	        ||           |r| j
                                        D ]g\  }}t          |j        t          j                  r.||                                         st          j        d          }||         j        |k    sJ fd S d S )NTinplacerf   )copyreindex_likert   infer_objectsr   rF   r    r~   rH   rJ   rK   r<   r.   r0   r1   rL   r/   )	r=   rM   rN   dfiecondrl   rk   rR   rS   s	            r(   
_check_setz=TestDataFrameIndexingWhere.test_where_set.<locals>._check_set   s   ''))C%%b))0066DDFFExx''HYYtRVTY::FS====!#x000  -IOO-- - -DAq!!&"*55 0d1gkkmm 0HY//q6<1,,,,,	- -- -r*   rV   rW   r   rf   r6   rY   )rZ   r[   r\   astype)r]   r)   r%   r'   r   r=   r^   rM   s           r(   test_where_setz)TestDataFrameIndexingWhere.test_where_set   s*   	- 	- 	- 	-  ###&  y444  Q              F  9%%BAv
2tQw
2t a}
2tr`   c                    t          t          d          t          dd          d          }|                    |d         dk              }||d         dk                                 |j                  }t          j        ||           d S )Nr         abr   r6   )r   rangerF   rs   rD   rH   rJ   rj   s       r(   test_where_series_slicingz4TestDataFrameIndexingWhere.test_where_series_slicing   s{     U1XXE!QKK8899"S'Q,''bgl#++BH55
fh/////r*   klassc                    t          dg di          }dgdgdgg}t          dt          j        ddgi          }|                     ||                    }t	          j        ||           d|d<   dt          j        dg|d<   ddgddgddgg}|                     ||                    }t	          j        ||           d S )Nr   r6   r   r   FTr   r   r   )r   r    r~   rF   rH   rJ   )r]   r   r=   rM   rl   rk   s         r(   test_where_array_likez0TestDataFrameIndexingWhere.test_where_array_like   s     YYY'(($$(cBFAq>233%%++&&
fh///3BFAe}tTl;%%++&&
fh/////r*   rM   r6   r   r   r   r   r   )r   r   r   TrueFalsez
2017-01-01z
2017-01-02c                     t          dg di          }d}t          j        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr   r   (Boolean array expected for the conditionrW   r   rZ   r[   r\   rF   r]   rM   r=   r^   s       r(   test_where_invalid_input_singlez:TestDataFrameIndexingWhere.test_where_invalid_input_single   s     YYY'((8]9C000 	 	HHTNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAr   )r      	   r   z
2017-01-03c                     t          g dg dd          }d}t          j        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr   )r   r   r   r   r   rW   r   r   s       r(   !test_where_invalid_input_multiplez<TestDataFrameIndexingWhere.test_where_invalid_input_multiple  s      YYYYYY77888]9C000 	 	HHTNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                    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	          j        ||           g d|_        |                    |          }t          t          j        |j        |j        	          }t	          j        ||           d S )
Nr   r   r      )TFTFFT      ?r   r   )r   r   r9   rD   r   )r   rF   r    r~   rH   rJ   r   rD   )r]   r=   rM   rk   rl   s        r(   test_where_dataframe_col_matchz9TestDataFrameIndexingWhere.test_where_dataframe_col_match  s    			999-..---/C/C/CDEE$sBFA.0CDEE
fh/// '$RV28RZHHH
fh/////r*   c                 2   d}t          g dg dg          }dg}t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   t          g dt
          j        t
          j        t
          j        gg          }|                    t          |                    }t          j	        ||           t          j
        g d          }t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   t          t
          j        t
          j        t
          j        gg dg          }|                    t          |                    }t          j	        ||           d S )Nr   r   r   TrW   )FTFT)r   rZ   r[   r   rF   r    r~   r	   rH   rJ   array)r]   r^   r=   rM   rl   outs         r(   test_where_ndframe_alignz3TestDataFrameIndexingWhere.test_where_ndframe_align+  s   <			999-..v]:S111 	 	HHTNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 iii"&"&"&)ABCChhvd||$$
c8,,,x22233]:S111 	 	HHTNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 rvrvrv6			BCChhvd||$$
c8,,,,,s#   AAA?D!!D%(D%c                 ,   t          g dg ddd          }t          t          j        t          j        ddgddt          j        t          j        gdd          }|                                }|                    |dk    t          j                  }t          j        ||           t          j        ||           |                                }|                    |dk    t          j        d	
          }||u sJ t          j        ||           d S )N)r          @      @      @r   r   r   r   r   rf   rc   r   r   r   Tr   )r   r    r~   r   rF   rH   rJ   )r]   df_origrl   r=   rk   s        r(   test_where_bugz)TestDataFrameIndexingWhere.test_where_bugA  s   &&&-A-A-ABB)
 
 
 6263,Cbfbf3MNN
 
 

 \\^^"q&"&))
fh///
b'***\\^^"q&"&$77||||
b(+++++r*   c                     t          t          j        g d|          t          j        g dd          d          }t          g dg dd                              |dd          }|                                }|                    |dk    d	          }t          j        ||           t          j        ||           |                                }|                    |dk    d	d
          }||u sJ t          j        ||           d S )Nr6   r   r   r   rc   r   rf   r   )r   r   r   )r   r   r   r   r   r   Tr   )r   r    r   r   r   rF   rH   rJ   )r]   any_signed_int_numpy_dtyper   rl   r=   rk   s         r(   test_where_bug_mixedz/TestDataFrameIndexingWhere.test_where_bug_mixedU  s%   Xlll2LMMMX222)DDD 
 
  ..'9'9'9::
 

&1	BB
C
C 	 \\^^"q&"%%
fh///
b'***\\^^"q&"d33||||
b(+++++r*   c                 :   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    z  }|                                }||| <   |d
dg                             d          |d
dg<   |                    ||          }t          j        ||           t          ddgdd
gd          }t          t          j        dgdt          j        gd          }|                                ||k    z  }|                                }||| <   |d                             d          |d<   |                    ||          }t          j        ||           d S )Nr6   r   r   r   r   r   )r   r6   r   r   r   r   rf   r   r6   )	r   r    r~   r   r   r   rF   rH   rJ   )r]   r   r   do_not_replacerl   rk   s         r(   test_where_bug_transpositionz7TestDataFrameIndexingWhere.test_where_bug_transpositionl  s   1a&aVA7788261+1bf+2626:JKKLLQU+6688$%.!#QF+229==!Q++
fh///1a&aV,,--261+1bf+6677QU+6688$%.!qk((33++
fh/////r*   c                 L   t          t          dd          t          dd          t          j                            d                              d          d          }t          ddd	          }d
}t          j        t          |          5  ||k     d d d            n# 1 swxY w Y   ||j
        d d d df         |k             }|                                }t          j        |j        ddgdf<   t          j        |j        d d df<   t          j        ||           d S )N20130102r   periods20130104r   r   i  r6   r   zF'>' not supported between instances of 'float' and 'datetime.datetime'rW   r   r   r   r   )r   r   r    r!   r"   r#   r   rZ   r[   r\   ri   r   r~   locrH   rJ   )r]   r=   stampr^   rk   rl   s         r(   test_where_datetimez.TestDataFrameIndexingWhere.test_where_datetime  s\   
A666
A666Y**1--==a@@ 
 
 q!$$V]9C000 	 	JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 BGAAAssFOe+,7799$&FaVS[!!vQQQV
fh/////s   B##B'*B'c                    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          j        ||           t          dt
          j        ddt
          j        dt
          j        dg          }|	                                }t          |           }|                    |d d           t          dt
          j        gd dgdd gd          }t          j        ||           |	                                }d || <   t          j        ||           d S )Nseries
   r   r   r6   r   r   r   r   r   Testr   Tr   r   )r   r	   r   r   floatr    r~   rH   rJ   r   r   rF   )r]   r=   rl   origr   s        r(   test_where_nonez*TestDataFrameIndexingWhere.test_where_none  sl    &r"3"3455<<UCC26
vq!Q1aArvrvFGGH
 
 	b(+++ bf622f677
 
 wwyyRy
tT***26]F^d^ 
 
 	b(+++YY[[D5	
b(+++++r*   c                     t          dg          }|}|j        t          k                                    sJ |                    |          }t          j        ||           d S )Nr   r   )r   rK   objectrL   rF   rH   rJ   )r]   r=   rM   rk   s       r(   9test_where_empty_df_and_empty_cond_having_non_bool_dtypeszTTestDataFrameIndexingWhere.test_where_empty_df_and_empty_cond_having_non_bool_dtypes  s`    u%%%v%**,,,,,$
fb)))))r*   c                    d } |            }|                     |                                          }|                    t          j        |          |                                d          }t          j        ||           |                    t          j        |          |                                dd          }||u sJ t          j        ||            |                                 d          }|                    d |d                   }|                    |dk    |d         d	          }t          j        ||           |                    |dk    |d         d
          }t          j        ||            |            }|                     d          }|                    t          j        |          t          d|j	        |j
                            }t          j        ||           d S )Nc                     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   r6   r   )r   r    r!   r"   r#   r~   ri   )r=   s    r(   createz;TestDataFrameIndexingWhere.test_where_align.<locals>.create  sq    290033CCGLLMMB fBGAaCFO fBGAaCFO fBGAaCFOIr*   r   axisTr   r   r   c                 6    |                      | dk    |          S Nr   )rF   )xys     r(   <lambda>z=TestDataFrameIndexingWhere.test_where_align.<locals>.<lambda>  s    Q):): r*   r   rD   rowsr6   r   )rt   meanrF   pdnotnarH   rJ   applyr   rD   r   )r]   r   r=   rl   rk   s        r(   test_where_alignz+TestDataFrameIndexingWhere.test_where_align  s   	 	 	 VXX99RWWYY''"(2,,			BB
fh///"(2,,		4iPP||||
b(+++VXX__Q88::be8DD"q&"Q%g66
fh///"q&"Q%f55
fh/// VXX99Q<<HRLL)ARXrzJJJ
 
 	fh/////r*   c                     t          ddgt          j        dggddg          }t          ddgddggddg          }t          j        ||                                dk    <   t	          j        ||           d S )	Ny      ?      ?r   y      @      ?r   r   r   y      @      ?r   )r   r    r~   absrH   rJ   )r]   rl   r=   s      r(   test_where_complexz-TestDataFrameIndexingWhere.test_where_complex  s}    vqkBFF+;<sCjQQQff%56c
KKKF26688q=
b(+++++r*   c                 x   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	          }t          j	        ||           |                                }|                    ||dd
          }||u sJ t          j	        ||           |                                }t          ddgddggd          }|                    ||d	          }t          j	        ||           |                                }|                                }|                    ||dd
          }||u sJ t          j	        ||           d S )Nr   )r   r   Fr   r6   rf   rc   rD   r   Tr   r   r   )
r   r    r!   r"   r#   r	   r   rF   rH   rJ   )r]   r   r   serr=   rl   rk   s          r(   test_where_axisz*TestDataFrameIndexingWhere.test_where_axis  s   BI11!44DDVLLMM5%.5%.9::aVnn\\^^q!fq!f-Y???$'22
fh///\\^^$'4@@||||
fh///\\^^q!fq!f-Y???$)44
fh///\\^^$)TBB||||
b(+++++r*   c                 J   t          ddgddgg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
          }t          j        ||           |                                }t          j	        t          d          5  |                    ||d
d           d d d            n# 1 swxY w Y   t          dt          j        gdt          j        gg          }|                    ||d          }t          j        ||           t          j	        t          d          5  |                    ||dd           d d d            d S # 1 swxY w Y   d S )Nr6   r   r   r   rh   rc   Fr   rf   rD   r   Invalid valuerW   Tr   r   )r   r	   r    r~   rF   rH   rJ   r   rZ   r[   r\   )r]   r=   r   r   rl   rk   s         r(   test_where_axis_with_upcastz6TestDataFrameIndexingWhere.test_where_axis_with_upcast
  s   AA'w7775%.5%.9::a[!!q!frvrv&67yIII$'22
fh///]9O<<< 	@ 	@LLs$L???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ q"&kArv;788$)44
fh///]9O<<< 	> 	>HHT3YH===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s$   C55C9<C91FFFc           
      
   t          j        t          t          j                            d                              d                    t          t          j                            d                              ddd          d          gdd	
          }t          d|j        |j	                  }t          d	|j                  }t          d|j	                  }|                                }|                    ||d          }t          d|j        |j	                  }|d                             d          |d<   |d                             d          |d<   t          j        ||           |                                }|                    ||dd          }||u sJ t          j        ||           |                                }|                    ||d          }t          d|j        |j	                  }|d                             d          |d<   |d                             d          |d<   t          j        ||           |                                }|                    ||dd          }||u sJ t          j        ||           |                                                    d	d          }|                                                    d          }t          j        |j        d	d d f<   |                                }|                    ||          }t          j        ||           |                    ||d          }t          j        ||           |                                }t'          j        t*          d          5  |                    ||d           d d d            n# 1 swxY w Y   t'          j        t*          d          5  |                    ||dd           d d d            n# 1 swxY w Y   |                                                    d	d	          }	|                                }t          j        |j        d d d	f<   |                                }|                    ||	          }t          j        ||           |                    ||	d          }t          j        ||           |                                }|                    ||	d          }||u sJ t          j        ||           |                                }|                    ||	dd          }||u sJ t          j        ||           d S )Nr   )r   r   r   r   )sizerh   rc   Tr6   )ignore_indexr   F)r   rD   rC   r   r   r   r   r   rD   r   r   r   rW   r   r   )r   concatr   r    r!   r"   r#   integersr   rD   r	   r   rF   r   rH   rJ   dropr~   r   rZ   r[   r\   )
r]   r   r   s1s2r=   rk   rl   d1d2s
             r(   test_where_axis_multiple_dtypesz:TestDataFrameIndexingWhere.test_where_axis_multiple_dtypes  sX   )")//22BB7KKLLI))!,,55a'5JJ!   

 

 

 w}MMMAW_---AW]+++\\^^$33S'/OOOqk((11qk((11
fh///\\^^$DAA||||
b(+++\\^^$11S'/OOOqk((11qk((11
fh///\\^^$$??||||
b(+++ \\^^   ++<<>>((11VQT\\^^$##
fh///$11
fh///\\^^]9O<<< 	- 	-HHT2tH,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-]9O<<< 	; 	;HHT2t'H:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; \\^^   ++<<>>VQQQT\\^^$##
fh///$33
fh///\\^^$D11||||
b(+++\\^^$DyAA||||
b(+++++s$   &OOO1PPPc                    t          g dg dg dg          }|                    d d           }t          g dg dg dg          }t          j        ||           t          j        ||                    |dk    |d	z                        |                    d
 d           }t          g dg dg dg          }t          j        ||           t          j        ||                    |dz  dk    d                     |dz                       d d           }t          g dg dg dg          }t          j        ||           t          j        ||dz                       |dz   dk    |dz   dz                        d S )Nr   r   )r   r   r   c                     | dk    S )Nr   r7   r   s    r(   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>n  s
    AE r*   c                     | dz   S Nr6   r7   r   s    r(   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>n  s
    QU r*   )r   r   r   )r   r   r   r   r6   c                     | dz  dk    j         S )Nr   r   )rG   r   s    r(   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>t  s    QUaZ$7 r*   c                     dS )Nc   r7   r   s    r(   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>t  s    2 r*   )r  r   r  )r   r  r   )r  r   r  r   r   r  c                     | dk    S )Nr   r7   r   s    r(   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>z  s
    !a% r*   c                     | dz   S )Nr   r7   r   s    r(   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>z  s
    1r6 r*   )         )         )r   r      r   r   )r   rF   rH   rJ   )r]   r=   rk   rT   s       r(   test_where_callablez.TestDataFrameIndexingWhere.test_where_callablek  s   			999iii899//??;;IIIyyy9::
fc***
fbhhrAvrAv&>&>??? 77FFjjj+++>??
fc***
fbhhrAv{B&?&?@@@ q&1A1ABB|||[[[ABB
fc***
frAvnnb1f\BFb=&Q&QRRRRRr*   c                    t          t          g d|          dg          }t          t          g d|          dg          }t          g ddg          }t          t          g d|          dg          }|t          u r |d         }|d         }|d         }|d         }|                    ||          }t	          j        ||           d S )N)201501012015010220150103)tzdater   )r  2015010420150105TTF)r  r  r  )r   r   r	   rF   rH   assert_equal)r]   tz_naive_fixtureframe_or_seriesobj1obj2r   rT   rk   s           r(   test_where_tz_valuesz/TestDataFrameIndexingWhere.test_where_tz_values  s   >>>CSTTTH
 
 
 >>>CSTTTH
 
 
 ,,,vh???>>>CSTTTH
 
 
 f$$<D<D<Df+CD$''
V$$$$$r*   c                    t          t          j        d                              dd          t	          d                    }t          j        g dg dg          }|                    |          }t          dt          j        t          j        gt          j        t          j        d	ggt	          d                    }t          j	        ||           d S )
Nr   r   r   ABCr   TFFr   r   r   )
r   r    arangereshapelistr   rF   r~   rH   rJ   )r]   r=   r   rk   rl   s        r(   test_df_where_change_dtypez5TestDataFrameIndexingWhere.test_df_where_change_dtype  s    ry''//155tE{{KKKx---/C/C/CDEE$ 26261"56U
 
 
 	fh/////r*   kwargsrw   Nc                 v   t          j        dt           j                                      dd          }t	          |t          d                    }t          j        g dg dg          }|j                            d	          |_        |j	                            d	          |_	        |j
                            d	          |_
         |j        |fi |}t          j        d
t           j        gd
dg          }t          j        t           j        t           j        gddg          }t          j        t           j        dgddg          }t	          |||d          }	t          j        ||	            |j        j        |d d d
f         fi |}t#          |d          }	t          j        ||	           d S )Nr   rc   r   r   r   r   r!  r   categoryr   )
categoriesr6   r   r   r   r   )rp   )r    r"  rh   r#  r   r$  r   r   r   r   r   rF   r   Categoricalr~   rH   rJ   r	   rI   )
r]   r&  datar=   r   rk   r   r   r   rl   s
             r(   test_df_where_with_categoryz6TestDataFrameIndexingWhere.test_df_where_with_category  s    ybh///771==tT%[[111x---/C/C/CDEE t{{:&&t{{:&&t{{:&&$))&))NArv;Aq6:::NBFBF+A???NBFA;Aq6:::1115566
fh/// DAJ11&11!#&&&
vx00000r*   c                 ^   t          ddgddggddg          }|d                             d          |d<   |                    |d         dk              }|                                                    ddi          }t          j        |j        dd d f<   t          j        ||           d S )Nr   r6   r   r   r+  r   r(  r   )	r   r   rF   r   r    r~   r   rH   r  rj   s       r(    test_where_categorical_filteringz;TestDataFrameIndexingWhere.test_where_categorical_filtering  s    aVaV,sCjAAAS'..,,3"S'A+&&7799##S'N33VQT
)))))r*   c                    t          g dg dd          }t          j        dt          j        dg          }t	          |          }t          j        |j        t                    }d|dd d f<   |	                    ||d	
          }t          dt          j        dgdt          j        dgdd          }t          j        ||           t	          |d d         ddg          }t          g ddt          j        dgd          }|d                             d          |d<   |	                    ||d
          }	t          j        |	|           |                                }
|
                    ||d	d           t          j        |
|           |                                }|                    ||dd           t          j        ||           d S )Nr   r   r   r   r   r   rc   Fr6   r   r   r   r   r   Int64r   r   r   rC   )r6   r   r   Tr   )r   r   r   NAr	   r    onesshapeboolrF   rH   rJ   r   r   r   )r]   r=   arrr   r   result1	expected1ser2	expected2result2result3result4s               r(   test_where_ea_otherz.TestDataFrameIndexingWhere.test_where_ea_other  s   YYYYYY7788h25!}%%Skkwrxt,,,QT
((41(--QqMBE1FFgVVV	
gy111c"1"gc3Z000IIIQqMBBCC	"3..w77	#((4A(..
gy111''))T3Q555
gy111''))T4a666
gy11111r*   c                 L   t          t          j        dd          g          }|                    |                                          }t          j        ||           |d         }|                    |                                          }t          j        ||           d S r   )r   r   IntervalrF   r   rH   rJ   rI   )r]   r=   resr   s       r(   test_where_interval_noopz3TestDataFrameIndexingWhere.test_where_interval_noop  s    Aq))*++hhrxxzz""
c2&&&eii		$$
sC(((((r*   c                     |t          j        dd          gdz            } |ddgt                    }|                    |                                 |          }t          j        ||           t          j        t          d          5  |
                    |                                |d	           d d d            d S # 1 swxY w Y   d S )
Nr   r   r   r   rc   r   rW   Tr   )r   rA  r   rF   r   rH   r  rZ   r[   r\   r   )r]   r  objrw   rB  s        r(   #test_where_interval_fullop_downcastz>TestDataFrameIndexingWhere.test_where_interval_fullop_downcast  s   or{1a001A566c
&999iie,,
U###]9O<<< 	7 	7HHSYY[[%H666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   +CCCr/   )ztimedelta64[ns]zdatetime64[ns]zdatetime64[ns, Asia/Tokyo]c                    t          t          j        d          dz  t          j                                      |          }|                                }t          j        g d          }|                    | d          }t          j	        ||           |
                    dd          }|                    | d          }t          j        ||           |                    |d          }t          j	        ||           |                    |d          }	t          j        |	|           t          j        t          d	          5  |                    | d
d           d d d            d S # 1 swxY w Y   d S )Nr   i ʚ;rc   FFFfoor   r6   r   rW   r   Tr   )r	   r    r"  rh   r   to_framer   rF   rH   rI   r#  rJ   r   rZ   r[   r\   )
r]   r/   r   r=   r   rB  mask2res2res3res4s
             r(   test_where_datetimelike_noopz7TestDataFrameIndexingWhere.test_where_datetimelike_noop  s    RYq\\E):::AA%HH\\^^x---..iiu%%
sC(((R##xx&&
dB'''xxe$$
tS)))wwue$$
dB''' ]9O<<< 	- 	-GGUFAtG,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   E44E8;E8)/__name__
__module____qualname__r_   rm   r   rZ   markfilterwarningsr   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?  rC  rF  rO  r7   r*   r(   r@   r@   0   s         61 1 142B 2B 2Bj [ <==  >=.' ' 'R0 0 0 [WtUBH&=>>0 0 ?>0  [S1#sOFQC!qc?##IsIII&''Xy6(+i%%&99\3J3J2KL	
	 	 	 	 [VaVaV$FQFQFQF+,,v 1FF3CDIIIIIII6677<001<(("&1<(())L*A*AB
	
   0 0 0- - -,, , ,(, , ,.0 0 000 0 0.!, !, !,F* * *0 0 0B, , ,, , ,6> > >*J, J, J,XS S S(% % %.
0 
0 
0 [XWdO'<==1 1 >=12
* 
* 
*2 2 24) ) )7 7 7 [	
 	
 	
 - - - - -r*   r@   c                     t          j        d                              t           j                                      dd          } t          |           }t          j        | j        t                    }d|d d df<   |	                    |d          }t          | d d df         t          j
        dgdz  t           j                  d          }t          j        ||           d S )	Nr   r   r   rc   Tr   i   r   )r    r"  r   int16r#  r   zerosr5  r6  rF   r   rg   rH   rJ   )r7  r=   r   rB  rl   s        r(   %test_where_int_downcasting_deprecatedr[    s    
)A,,

bh
'
'
/
/1
5
5C	3B8CIT***DDAJ
((4

CSAY28UGaKrx+P+P+PQQRRH#x(((((r*   c                 @    | g d          }|                                 }| t          u r|d         n|}|                    |dk               }|dz  }t          j        ||           |                    |dk    g d          }|dz  }t          j        ||           d S )Nr   r   r   r   )r   r   rF   rH   r  )r  rk   rl   col	where_ress        r(   test_where_copies_with_noopr_  &  s    _\\\**F{{}}H&)33&))CS1W%%INIOFH%%%S1Wlll33INIOFH%%%%%r*   c                     | g dg dt                                } | ddgddgt                                }t          g d          }|                    ||          } | t          j        ddt          j        gg dt                                }t          j        ||           |                    | |          }t          j        ||           |                    | |d	
           t          j        ||           d S )N)r   r   r9   ry   )id1id2id3id4)rD   r/   r   r9   rb  rc  )FTTFTr   )r
   r	   rF   r   r3  rH   r  r   )r  rE  filtered_obj
filter_serrk   rl   s         r(   test_where_string_dtyperg  7  s'   
/$@$@$@  C #?	c
5%.  L 22233JYYz<00F	S"% ***mm  H
 OFH%%%XXzk<00FOFH%%%HHj[,H555OFH%%%%%r*   c                  H   t          dgdz  dgdz  g dd          } |                     | dk              }t          t          j        t          j        gdz  t
                    dgdz  t          j        dt          j        dgd          }t          j        ||           d S )NTr   F)TFTF)AAABBBCCCrc   )r   rF   r    r   r~   r   rH   rJ   )df_maskrk   rl   s      r(   test_where_bool_comparisonrm  P  s    
E7Q;7Q7Q7QRR G ]]7e+,,F8RVHqL7777Q;FE2651	
 	
 H &(+++++r*   c                     t          t          d          t          j        t          d          gddt          j        gd          } |                     |                                 d           }t          j	        ||            d S )N2013010120130103r6   r   r1  )
r   r   r   rW  r    r~   rF   notnullrH   rJ   )rl   rk   s     r(   test_where_none_nan_coercerr  `  s|    J'':1F1FGQ	
 	
 H ^^H,,..55F&(+++++r*   c                     t          dt          j        ggt          ddg                    } | j        \  }}t          ddgg||          }|                     t                                        |          }|                     d                              |          }| j                            |j                  j        }|                     |          }t          j
        |                    d          |                    d                     t          j
        |                    d          |                    d                     t          j
        |                    d          |                    d                     d S )Nr   r   r.  T)r+  r   rD   f8)r   r    r~   r   axesr   r   rF   TrH   rJ   )rk   rD   r   r   r   r   r9   ry   s           r(   &test_where_duplicate_axes_mixed_dtypesrw  l  s1    a[M5#s3D3DEEEF[NE7D$<.'GGGDf##D))Ad!!$''Atv ATA!((4..!((4..999!((4..!((4..999!((4..!((4..99999r*   c                      t          ddgdt          j        gd          } |                                 }|                     t          j        |           d           }t          j        ||           d S )Nr   r   r   r   )	r   r    r~   r   rF   r   rq  rH   rJ   )r=   rl   rk   s      r(   test_where_columns_castingry  {  sd     
#s1bf+66	7	7BwwyyHXXbjnnd++F(F+++++r*   as_catTFc                    t          j        ddd          }|r|                    d          } | |          }t           j                            d          }t          j        g d|j                  j        }|rd	}nd
}|rt          j
        t          |          5  |                    ||           d d d            n# 1 swxY w Y   t          j
        t          |          5  |                    ||           d d d            n# 1 swxY w Y   t          j
        t          |          5  |                    ||d           d d d            d S # 1 swxY w Y   d S |                    t                                        ||          }|                    ||          }	t          j        |	|           |                    t                                        ||          }|                    ||          }	t          j        |	|           t          j
        t          d          5  |                    ||d           d d d            d S # 1 swxY w Y   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'rW   Tr   r   )r   period_ranger   rW  to_numpyr    r   ndimrv  rZ   r[   r\   rF   r   r   rH   r  )
r  rz  r$   idxrE  tdnatr   r^   rl   rk   s
             r(   test_where_period_invalid_nar    sJ    /,
<
<
<C %jj$$
/#

C FOOH%%E8'''sx888:D +' 	
 + 0]9C000 	# 	#IIdE"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# ]9C000 	" 	"HHT5!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" ]9C000 	0 	0HHT5$H///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 ::f%%++D%884''
)))::f%%**477$&&
)))]9O<<< 	0 	0HHT5$H///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0sH   CC	C(DDD1EEE1IIIc                    t          j        g d|          } | |          }t          j        g d|j                  j        }d}g t
          j        t           j        D ]}t          j	        t          |          5  |                    ||           d d d            n# 1 swxY w Y   t          j	        t          |          5  |                    ||           d d d            n# 1 swxY w Y   d S )Nr   rc   r  r  z3Invalid value '.*' for dtype '(U?Int|Float)\d{1,2}'rW   )r   r   r    r  rv  rH   NP_NAT_OBJECTSrW  rZ   r[   r\   rF   r   )r  any_numeric_ea_dtyper7  rE  r   r^   nulls          r(   test_where_nullable_invalid_nar    sv   
(999$8
9
9
9C
/#

C8'''sx888:D
@C,"#,RV, ! !]9C000 	" 	"IIdD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" ]9C000 	! 	!HHT4   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!! !s$   ?B""B&	)B&	C++C/	2C/	)r+  c                    t          d| i          }|                    t          j        |          d                                           }|                    t          j        |          d d           t          j        ||           d S )Nr   Tr   )r   rF   r   rq  r   rH   r  )r+  r=   df_copys      r(   test_where_inplace_castingr    st     
C;		Bhhrz"~~t,,1133GHHRZ^^T4H000OB     r*   c                  0   t          g d          } t          j        g d          }t          j        d          }t          |||gd          }|                     ||          }|                    t                    }t          j	        ||           d S )Nr   rH  r6   )daysr  rc   )
r	   r    r   r   	TimedeltarF   r   r   rH   rI   )r   r   tdrl   rL  r;  s         r(   test_where_downcast_to_td64r    s    


C8)))**D	1			Br2rl(333H99T2D''I4+++++r*   c                    |                      ||          }t          j        ||           |                     | |          }t          j        ||           |                                 } |                     | |d           |                                s7|                                }|d                             t                    |d<   t          j        | |           d S )NTr   r   )rF   rH   rJ   r   r   rL   r   r   )r=   r   rw   rl   rB  s        r(   _check_where_equivalencesr    s     ((4

C#x(((
''4%

C#x(((
 
BGGTE5$G'''88:: 5==?? ,,V44"h'''''r*   c                  z   t          dd          } | j                            dd          }||d         z
  }t          |ddg	          }t	          j        |                                                                          }d
|d d df<   d
|d<   t          t	          j        |d         |d         |d         gt                    |d d df         d          }t          j        t          d          5  t          ||||           d d d            n# 1 swxY w Y   d
|d d <   |}t          ||||           d S )Nr|  r   r   r   r   )r   r   r   r   r   Tr6   )r6   r   )r   r   rc   r1  r   rW   )r   _datar#  r   r    asarrayr   r   r   r   rZ   r[   r\   r  )dtidtarw   r=   r   rl   s         r(   test_where_dt64_2dr    s   
\1
-
-
-C
)

Aq
!
!C#d)OE	3c
	+	+	+B:bggii  %%''DDAJ DJ5;D	5;?vNNNQQQT	
 	
 H 
y	8	8	8 = =!"dE8<<<= = = = = = = = = = = = = = = DGHb$x88888s   6DDDc                  F   t          t          dt          j        dgd          g dd          } |                     d           }t          t          t          j        t          j        dgd          t
          j        ddgd          }t          j        ||           d S )	Nr6   r   r2  rc   r   r   c                 2    |                      d d          S )Nc                     | dk    S r  r7   r   s    r(   r   zMtest_where_producing_ea_cond_for_np_dtype.<locals>.<lambda>.<locals>.<lambda>  s
    !a% r*   r6   r   )r   r   s    r(   r   z;test_where_producing_ea_cond_for_np_dtype.<locals>.<lambda>  s    a @ @ r*   r   )	r   r	   r   r3  rF   r    r~   rH   rJ   )r=   rk   rl   s      r(   )test_where_producing_ea_cond_for_np_dtyper    s    	BE1W===IIINN	O	OBXX@@AAFbeRUA&g666bfa^LL H &(+++++r*   replacementgMbP?snakei  r   r   c                     t          g dt          j        dd gg          }|                    t	          j        |          |           }t          g d| d| gg          }t          j        ||           d S )N)r   g(,*0Enineg?)r   r    r~   rF   r   rq  rH   rJ   )r  r=   rk   rl   s       r(   test_where_int_overflowr    sz    
 
'''"&#t)<=	>	>BXXbjnnk22F---S+/NOPPH&(+++++r*   c                     t          ddgddgd          } t          ddgddgd          }|                     |d          }|| u sJ t          d	t          j        gt          j        dgd          }t	          j        | |           d S )
Nr   r   r   r   r   TFr   r6   )r   rF   r    r~   rH   rJ   )r=   rM   rk   rl   s       r(   test_where_inplace_no_otherr  "  s    	#s3*55	6	6BD%=t}==>>DXXdDX))FR<<<<26{"&#??@@H"h'''''r*   c                  L   t          g dd          } t          t          j        t          j        t          j        gd          }|                     | dk    |d          }t          dt          t          j        dd	gd          i          }t          j        ||           d S )
Nr   rh   rc   r2  r6   r   r   r   r   )r   r	   r   r3  rF   rH   rJ   )r=   rw   rk   rl   s       r(   test_where_other_nullable_dtyper  ,  s     
999G	,	,	,BBE25"%(888EXXb1fe!X,,F!VRUAqMAAABCCH&(+++++r*   c                     t          dg did          } |                                 }|                     | dk    t          j                  }|                    |dk    t          j        d           t          j        ||           d S )Nr   )1 3stringrc   r  Tr   )r   r   rF   r    r~   rH   rJ   )r=   
df_inplacerk   s      r(   +test_where_inplace_string_array_consistencyr  6  s~    	C(	9	9	9BJXXbBh''FZ2%rvt<<<&*-----r*   )0r   
hypothesisr   numpyr    rZ   pandas.core.dtypes.commonr   pandasr   r   r   r   r	   r
   r   r   r   pandas._testing_testingrH   pandas._testing._hypothesisr   fixturer)   r>   r@   r[  r_  rg  rm  rr  rw  ry  rS  rU  r  r  slowr  r  r  r  r  r  r  r  r  r7   r*   r(   <module>r     s                    / / / / / /    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       ; ; ; ; ; ; NNNOOO
 
 PO
V V Ve- e- e- e- e- e- e- e-P) ) )& & &"& & &2, , , 	, 	, 	,: : :, , , D%=11*0 *0 21*0Z! ! !$    ! ! !  !
, 
, 
,( ( (*9 9 96, , , E4$q!0D0DE , , ,( ( (, , ,. . . . .r*   