
    d                        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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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    r1t          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randn)requestfloat_string_framemixed_float_framemixed_int_frames       b/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/frame/indexing/test_where.pywhere_framer&      sw    }	!!A..HHHH}&&!!}%%  }## $#    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cr0   r1   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)dfr1   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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(d/ Z)d0 Z*d1 Z+d2 Z,e	j
                            d3g d4          d5             Z-d-S )6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valuesr9   r	   r   rA   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_get0   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'   6'>' not supported between instances of 'str' and 'int'matchr   Tpytestraises	TypeError)selfr&   r"   rR   r:   msgrJ   s          r%   test_where_getz)TestDataFrameIndexingWhere.test_where_get/   s    	6 	6 	6 	6 ###JC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 )r3   r   r,   )r	   )r5   r6   s     r%   
<dictcomp>zCTestDataFrameIndexingWhere.test_where_upcasting.<locals>.<dictcomp>J   s=        61#'+++  r'   )float32float64int32int64r   r3   rc   rd   re   rf   r@   )r   ilocrH   r	   r   r,   rE   rF   r[   r:   resultexpecteds       r%   test_where_upcastingz/TestDataFrameIndexingWhere.test_where_upcastingG   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 )NFr@   )rA   name)check_dtype)rC   	enumerater   rD   reindexrA   fillnar   
isinstancer   ndarrayr	   rI   rE   rF   rH   )r:   rJ   otherrK   rM   irO   ri   dr6   o
new_valuesrj   s                r%   _check_alignzETestDataFrameIndexingWhere.test_where_alignment.<locals>._check_alignc   s~   $&&B!"*-- L L1AqELGOOBqEK0077>>EU## ,AA!%44 ,"5A;flCCCJ!!HO"#%%''@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'   rS   rT   r   r3   c              3   V   K   | ]$}t          |j        t          j                   V  %d S )N)r+   r-   r   r.   )r5   r0   s     r%   r7   zBTestDataFrameIndexingWhere.test_where_alignment.<locals>.<genexpr>   s3      QQ!z!&"*===QQQQQQr'   )rK   rV   )	rX   rY   rZ   r;   rD   rI   rH   r   nan)r[   r&   r"   rz   r:   r\   rJ   rK   s           r%   test_where_alignmentz/TestDataFrameIndexingWhere.test_where_alignmenta   sE   	6 	6 	6 	68 ###JC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^   c                 <   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   r3      z4other must be the same shape as self when an ndarrayrT   ,Array conditional must be same shape as selfT)r   r   r   r    rD   rX   rY   
ValueErrorrC   rg   r;   mask)r[   r:   rJ   err1r\   err2rL   s          r%   test_where_invalidz-TestDataFrameIndexingWhere.test_where_invalid   s~   ryq!,,oooFFF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&EEE.FFF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k    } |||           |dk    dd          } |||           d S )NTc                 &   |                                  }|                    |                               d          }|                    |           }|                    |t
          j        d          }|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inplacerd   )copyreindex_likerr   r   rC   r   r|   rE   rG   rH   r9   r+   r-   r.   rI   r,   )	r:   rJ   rK   dfiecondrj   return_valuerO   rP   s	            r%   
_check_setz=TestDataFrameIndexingWhere.test_where_set.<locals>._check_set   s
   ''))C%%b))0066Exx''H99T2649@@L'''!#x000  -IOO-- - -DAq!!&"*55 0d1gkkmm 0HY//q6<1,,,,,	- -- -r'   rS   rT   r   r3   rV   rW   )r[   r&   r"   r   r:   r\   rJ   s          r%   test_where_setz)TestDataFrameIndexingWhere.test_where_set   s   	- 	- 	- 	-  ###JCy444  Q              F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   r3   )r   rangerC   rq   rA   rE   rG   rh   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   r3   r   r   FTr   r   r   )r   r   r|   rC   rE   rG   )r[   r   r:   rJ   rj   ri   s         r%   test_where_array_likez0TestDataFrameIndexingWhere.test_where_array_like   s     YYY'(($$(cBFAq>233%%++&&
fh///3BFAe}tTl;%%++&&
fh/////r'   rJ   r3   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 conditionrT   r   rX   rY   r   rC   r[   rJ   r:   r\   s       r%   test_where_invalid_input_singlez:TestDataFrameIndexingWhere.test_where_invalid_input_single   s     YYY'((8]:S111 	 	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   rT   r   r   s       r%   !test_where_invalid_input_multiplez<TestDataFrameIndexingWhere.test_where_invalid_input_multiple   s      YYYYYY77888]:S111 	 	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   r6   rA   r   )r   rC   r   r|   rE   rG   r   rA   )r[   r:   rJ   ri   rj   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   TrT   )FTFT)r   rX   rY   r   rC   r   r|   r	   rE   rG   array)r[   r\   r:   rJ   rj   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        ||           |                                }|                    |dk    t          j        d	
          }|J t	          j        ||           d S )N)r          @      @      @r   r   r   r   r   rd   ra   r   r   r   Tr   )r   r   r|   rC   rE   rG   r   )r[   r:   rj   ri   r   s        r%   test_where_bugz)TestDataFrameIndexingWhere.test_where_bug1  s    &&&-A-A-ABB)
 
 
 6263,Cbfbf3MNN
 
 
 "q&"&))
fh///||FQJ|EE###
fh/////r'   c                 "   t          t          j        g d|          t          j        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        ||           |                                }|                    |dk    t          j        d	
          }|J t          j        ||           d S )Nr3   r   r   r   ra   r   rd   r   r   r   r   Tr   )r   r   r   r|   rC   rE   rG   r   )r[   any_signed_int_numpy_dtyper:   rj   ri   r   s         r%   test_where_bug_mixedz/TestDataFrameIndexingWhere.test_where_bug_mixedB  s   Xlll2LMMMX222)DDD 
 
 6263,Cbfbf3MNN
 
 

 "q&"&))
fh///||FQJ|EE###
fh/////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  }|                                }||| <   |                    ||          }t          j        ||           t          ddgdd
gd          }t          t          j        dgdt          j        gd          }|                                ||k    z  }|                                }||| <   |                    ||          }t          j        ||           d S )Nr3   r   r   r   r   r   )r   r3   r   r   r   r   r   r3   )r   r   r|   r   r   rC   rE   rG   )r[   r   r   do_not_replacerj   ri   s         r%   test_where_bug_transpositionz7TestDataFrameIndexingWhere.test_where_bug_transpositionX  s?   1a&aVA7788261+1bf+2626:JKKLLQU+6688$%.!++
fh///1a&aV,,--261+1bf+6677QU+6688$%.!++
fh/////r'   c                 &   t          t          dd          t          dd          t          j                            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   i  r3   r   zF'>' not supported between instances of 'float' and 'datetime.datetime'rT   r   r   r   )r   r   r   r   r    r   rX   rY   rZ   rg   r   r|   locrE   rG   )r[   r:   stampr\   ri   rj   s         r%   test_where_datetimez.TestDataFrameIndexingWhere.test_where_datetimen  sL   
A666
A666Y__Q'' 
 
 q!$$V]9C000 	 	JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 BGAAAssFOe+,7799$&FaVS[!!vQQQV
fh/////s   =BBBc                 f   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          }d}t          j
        t          |          5  |                    t          |           d d           d d d            d S # 1 swxY w Y   d S )Nseries
   r   r   r3   r   r   r   r   r   Testr   zboolean setting on mixed-typerT   Tr   )r   r	   r   astypefloatr   r|   rE   rG   rX   rY   rZ   rC   r   )r[   r:   rj   r\   s       r%   test_where_nonez*TestDataFrameIndexingWhere.test_where_none  sb    &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
 
 .]9C000 	4 	4HHd2hhYdH333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   2'D&&D*-D*c                     t          dg          }|}|j        t          k                                    sJ |                    |          }t          j        ||           d S )Nr   r   )r   rH   objectrI   rC   rE   rG   )r[   r:   rJ   ri   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          }|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   r3   r   r   )r   r   r   r    r|   rg   )r:   s    r%   createz;TestDataFrameIndexingWhere.test_where_align.<locals>.create  sc    29??2q1122B fBGAaCFO fBGAaCFO fBGAaCFOIr'   r   axisTr   r   r   c                 6    |                      | dk    |          S Nr   )rC   )xys     r%   <lambda>z=TestDataFrameIndexingWhere.test_where_align.<locals>.<lambda>  s    Q):): r'   r   rA   rowsr3   r   )rr   meanrC   pdnotnarE   rG   applyr   rA   r   )r[   r   r:   rj   ri   r   s         r%   test_where_alignz+TestDataFrameIndexingWhere.test_where_align  s   	 	 	 VXX99RWWYY''"(2,,			BB
fh///xxbggiiIxVV###
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|   absrE   rG   )r[   rj   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                    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	
          }|J t          j        ||           t          ddgddggd          }|                    ||d          }t          j        ||           |                                }|                    ||dd	
          }|J t          j        ||           d S )Nr   Fr   r3   rd   ra   rA   r   Tr   r   r   )	r   r   r   r    r	   rC   rE   rG   r   r[   r:   r   serrj   ri   r   s          r%   test_where_axisz*TestDataFrameIndexingWhere.test_where_axis  sj   ryq!,,--5%.5%.9::aVnnq!fq!f-Y???$'22
fh///||D#GT|JJ###
fh///q!fq!f-Y???$)44
fh///||D#It|LL###
fh/////r'   c                    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        ||           |                                }|                    ||d
d          }|J t          j        ||           t          dt          j        gdt          j        gg          }|                    ||d          }t          j        ||           t          t          j        ddgd          t          j        t          j        t          j        gd	          d          }|                                }|                    ||dd          }|J t          j        ||           d S )Nr3   r   r   r   rf   ra   Fr   rd   rA   r   Tr   r   r   )	r   r	   r   r|   rC   rE   rG   r   r   r   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///||D#GT|JJ###
fh///q"&kArv;788$)44
fh///8QF'2228RVRV,I>>> 
 
 ||D#It|LL###
fh/////r'   c           
      	   t          j        t          t          j                            dd                    t          t          j                            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          }|J t          j        ||           |
                    ||d          }t          d|j        |j                  }|d                             d          |d<   |d                             d          |d<   t          j        ||           |                                }|
                    ||dd          }|J t          j        ||           |                                                    d	d          }|                                                    d          }t          j        |j        d	d d f<   |
                    ||          }t          j        ||           |
                    ||d          }t          j        ||           |                                }|
                    ||d          }|J t          j        ||           |                                }|
                    ||dd          }|J t          j        ||           |                                                    d	d	          }	|                                }t          j        |j        d d d	f<   |
                    ||	          }t          j        ||           |
                    ||	d          }t          j        ||           |                                }|
                    ||	d          }|J t          j        ||           |                                }|
                    ||	dd          }|J t          j        ||           d S )Nr   r   r   )r   r   )sizerf   ra   Tr3   )ignore_indexr   F)r   rA   r@   r   r   r   r   r   rA   r   r   r   r   )r   concatr   r   r   r    randintr   rA   r	   rC   r   rE   rG   r   dropr|   r   )
r[   r:   r   s1s2ri   rj   r   d1d2s
             r%   test_where_axis_multiple_dtypesz:TestDataFrameIndexingWhere.test_where_axis_multiple_dtypes  si   Y")//"a0011")++Ar+@@PPP 
 
 
 
"(CCCARZ(((ARX&&&$33S"*BHEEEqk((11qk((11
fh///||D"9d|KK###
fh///$11S"*BHEEEqk((11qk((11
fh///||D"7D|II###
fh/// WWYY^^AA^&&7799##G,,VQT$##
fh///$11
fh///||D"d|;;###
fh///||D"d|II###
fh///WWYY^^AA^&&7799VQQQT$##
fh///$33
fh///||D"d|;;###
fh///||D"d|KK###
fh/////r'   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   r4   r   s    r%   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>M  s
    AE r'   c                     | dz   S Nr3   r4   r   s    r%   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>M  s
    QU r'   )r   r   r   )r   r   r   r   r3   c                     | dz  dk    j         S )Nr   r   )rD   r   s    r%   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>S  s    QUaZ$7 r'   c                     dS )Nc   r4   r   s    r%   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>S  s    2 r'   )r  r   r  )r   r  r   )r  r   r  r   r   r  c                     | dk    S )Nr   r4   r   s    r%   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>Y  s
    !a% r'   c                     | dz   S )Nr   r4   r   s    r%   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>Y  s
    1r6 r'   )         )         )r   r      r   r   )r   rC   rE   rG   )r[   r:   ri   rQ   s       r%   test_where_callablez.TestDataFrameIndexingWhere.test_where_callableJ  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	   rC   rE   assert_equal)r[   tz_naive_fixtureframe_or_seriesobj1obj2r   rQ   ri   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   rC   r|   rE   rG   )r[   r:   r   ri   rj   s        r%   test_df_where_change_dtypez5TestDataFrameIndexingWhere.test_df_where_change_dtypeu  s    ry''//155tE{{KKKx---/C/C/CDEE$ 26261"56U
 
 
 	fh/////r'   kwargsru   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   ra   r   r   r  r   r  r   categoryr   )
categoriesr3   r   r   r   r   )rn   )r   r  rf   r   r   r!  r   r   r   r   r   rC   r   Categoricalr|   rE   rG   r	   rF   )
r[   r#  datar:   r   ri   r   r   r   rj   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   r3   r   r   r(  r   r%  r   )	r   r   rC   r   r   r|   r   rE   r  rh   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          
                    t                    }t          j        ||           t	          |d d         ddg          }t          g ddt          j        dgd          }|d         
                    t                    |d<   |	                    ||d
          }t          j        ||           d S )Nr   r   r   r   r   r   ra   Fr3   r   r   r   r   r   r   r   r   r@   )r3   r   r   )r   r   r   NAr	   r   onesshapeboolrC   r   r   rE   rG   )r[   r:   arrr   r   ri   rj   ser2s           r%   test_where_ea_otherz.TestDataFrameIndexingWhere.test_where_ea_other  sQ   YYYYYY7788h25!}%%Skkwrxt,,,QT
 $!,,Arua=25!}EEFFMMfUU
fh///c"1"gc3Z000999Arua=AABB ,,V44$1--
fh/////r'   c                 L   t          t          j        dd          g          }|                    |                                          }t          j        ||           |d         }|                    |                                          }t          j        ||           d S r   )r   r   IntervalrC   r   rE   rG   rF   )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	          j        ||                    t          j                             |	                    |                                |d           t	          j        ||                    t                               d S )Nr   r   r   r   Tr   )r   r7  rC   r   rE   r  r   r   rf   r   r   )r[   r  objru   r8  s        r%   #test_where_interval_fullop_downcastz>TestDataFrameIndexingWhere.test_where_interval_fullop_downcast  s    or{1a001A566c
++iie,, 	U\\"(33444 	eT222
U\\&1122222r'   r,   )ztimedelta64[ns]zdatetime64[ns]zdatetime64[ns, Asia/Tokyo]z	Period[D]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        |	|           |                    |d          }
t          d|j        |j        	          }t          j        |
|           |                    | dd
           t          j        ||                    t"                               d S )Nr   i ʚ;ra   FFFfoor   r3   r   r   Tr   )r	   r   r  rf   viewto_framer   rC   rE   rF   r   rG   r   r   rA   r   r   r   )r[   r,   r   r:   r   r8  mask2res2res3res4res5rj   s               r%   test_where_datetimelike_noopz7TestDataFrameIndexingWhere.test_where_datetimelike_noop  s    RYq\\E):::??FF\\^^x---..iiu%%
sC(((R##xx&&
dB'''xxe$$
tS)))wwue$$
dB''' xxq!!Qbh
CCC
dH--- 	4(((
b(//&"9"9:::::r'   ).__name__
__module____qualname__r]   rk   r}   r   r   r   rX   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,  r5  r9  r<  rG  r4   r'   r%   r=   r=   .   s         01 1 140B 0B 0Bd  *" " "H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 0"0 0 0,0 0 0,0 0 0.4 4 4,* * *0 0 0B, , ,0 0 000 0 0<F0 F0 F0PS S S(% % %.
0 
0 
0 [XWdO'<==1 1 >=12
* 
* 
*0 0 0&) ) )3 3 3 [	
 	
 	
 ; ; ; ; ;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   ra   Tr   i   r   )r   r  r   int16r   r   zerosr1  r2  rC   r   re   rE   rG   )r3  r:   r   r8  rj   s        r%   %test_where_int_downcasting_deprecatedrR    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   rC   rE   r  )r  ri   rj   col	where_ress        r%   test_where_copies_with_nooprV  	  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   r6   rw   )id1id2id3id4)rA   r,   r   r6   rY  rZ  )FTTFTr   )r
   r	   rC   r   r/  rE   r  r   )r  r;  filtered_obj
filter_serri   rj   s         r%   test_where_string_dtyper^    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CCCra   )r   rC   r   r   r|   r   rE   rG   )df_maskri   rj   s      r%   test_where_bool_comparisonrd  3  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20130103r3   r   r.  )
r   r   r   rN  r   r|   rC   notnullrE   rG   )rj   ri   s     r%   test_where_none_nan_coerceri  C  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   rA   f8)r   r   r|   r   axesr   r   rC   TrE   rG   )ri   rA   r   r   r   r   r6   rw   s           r%   &test_where_duplicate_axes_mixed_dtypesrn  O  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   rC   r   rh  rE   rG   )r:   rj   ri   s      r%   test_where_columns_castingrp  ^  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        |	|           |                    ||d           t          j        ||           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'rT   Tr   )r   period_ranger   rN  to_numpyr   r   ndimrm  rX   rY   rZ   rC   r   r   rE   r  )
r  rq  r!   idxr;  tdnatr   r\   rj   ri   s
             r%   test_where_period_invalid_nar~  h  s    /,
<
<
<C %jj$$
/#

C FOOH%%E8'''sx888:D +' 	
 + ']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$&&
)))ud+++
X&&&&&s6   CC	C(DDD1EEEc                    t          j        g d|          } | |          }t          j        g d|j                  j        }d}t
          j        t           j        gz   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   ra   r  rw  z1Invalid value '.*' for dtype (U?Int|Float)\d{1,2}rT   )r   r   r   r{  rm  rE   NP_NAT_OBJECTSrN  rX   rY   rZ   rC   r   )r  any_numeric_ea_dtyper3  r;  r   r\   nulls          r%   test_where_nullable_invalid_nar    ss   
(999$8
9
9
9C
/#

C8'''sx888:D
>C!RVH, ! !]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   rC   r   rh  r   rE   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                      t          g d          } t          j        g d          }t          j        d          }|                     ||          }t          |||gd          }t          j        ||           d S )Nr   r>  r3   )daysrv  ra   )r	   r   r   r   	TimedeltarC   rE   rF   )r   r   tdr8  rj   s        r%   test_where_downcast_to_td64r    s    


C8)))**D	1			B
))D"

Cr2rl(333H3)))))r'   c                    |                      ||          }t          j        ||           |                     | |          }t          j        ||           |                                 } |                     | |d           |                                s7|                                }|d                             t                    |d<   t          j        | |           d S )NTr   r   )rC   rE   rG   r   r   rI   r   r   )r:   r   ru   rj   r8  s        r%   _check_where_equivalencesr    s     ((4

C#x(((
''4%

C#x(((
 
BGGTE5$G'''88:: 5==?? ,,V44"h'''''r'   c                     t          dd          } | j                            dd          }||d         z
  }t          |ddg	          }t	          j        |                                                                          }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f         d          }t          ||||           d
|d d <   |}t          ||||           d S )Nrs  r   r   r   r   )r   r   r   r   r   Tr3   r   r.  )r3   r   )r   r   ra   )r   _datar   r   r   asarrayr   r   r  r   r   )dtidtaru   r:   r   rj   s         r%   test_where_dt64_2dr    sa   
\1
-
-
-C
)

Aq
!
!C#d)OE	3c
	+	+	+B:bggii  %%''DDAJ uQQQT{QQQT;;<<Hb$x888 DJ5;D	5;?vNNNQQQT	
 	
 H b$x888 DGHb$x88888r'   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 )	Nr3   r   Int64ra   r   r   c                 2    |                      d d          S )Nc                     | dk    S r   r4   r   s    r%   r   zMtest_where_producing_ea_cond_for_np_dtype.<locals>.<lambda>.<locals>.<lambda>  s
    !a% r'   r3   r   )r   r   s    r%   r   z;test_where_producing_ea_cond_for_np_dtype.<locals>.<lambda>  s    a @ @ r'   r   )	r   r	   r   r/  rC   r   r|   rE   rG   )r:   ri   rj   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|   rC   r   rh  rE   rG   )r  r:   ri   rj   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           t          dt          j        gt          j        dgd          }t	          j        | |           d S )	Nr3   r   r   r   r   TFr   )r   rC   r   r|   rE   rG   )r:   rJ   rj   s      r%   test_where_inplace_no_otherr    s    	!QsCj11	2	2BD%=t}==>>DHHT4H   26{"&#??@@H"h'''''r'   )-r   
hypothesisr   numpyr   rX   pandas.core.dtypes.commonr   pandasr   r   r   r   r	   r
   r   r   r   pandas._testing_testingrE   pandas._testing._hypothesisr   fixturer&   r;   r=   rR  rV  r^  rd  ri  rn  rp  rK  rL  r~  r  r  r  r  r  r  r  r  r4   r'   r%   <module>r     s                    / / / / / /    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       ; ; ; ; ; ; NNNOOO  POV V VJ; J; J; J; J; J; J; J;Z) ) )& & &"& & &2, , , 	, 	, 	,: : :, , , D%=11*' *' 21*'Z! ! !$    ! ! ! !	* 	* 	*( ( (*9 9 9<, , , E4$q!0D0DE , , ,( ( ( ( (r'   