
    bMh                        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    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       f/var/www/html/test/jupyter/venv/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                   b   e Zd Zd Zd Zej                            d          d             Zej                            d          d             Z	ej                            d          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          d0             Z)d1 Z*d2 Z+d3 Z,d4 Z-ej                            d5g d6          d7             Z.d/S )8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*   z4ignore:Downcasting object dtype arrays:FutureWarningc                    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_aligni   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                              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 )NTF)copyinplacerf   )r   reindex_likert   infer_objectsr   rF   r    r~   rH   rJ   rK   r<   r.   r0   r1   rL   r/   )	r=   rM   rN   dfiecondrl   return_valuerR   rS   s	            r(   
_check_setz=TestDataFrameIndexingWhere.test_where_set.<locals>._check_set   s   ''))C%%b))0066DD%DPPExx''H99T2649@@L'''!#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]: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   rW   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   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        ||           |                                }|                    |dk    t          j        d	
          }|J t	          j        ||           d S )N)r          @      @      @r   r   r   r   r   rf   rc   r   r   r   Tr   )r   r    r~   rF   rH   rJ   r   )r]   r=   rl   rk   r   s        r(   test_where_bugz)TestDataFrameIndexingWhere.test_where_bugC  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          g dg dd                              |dd          }|                    |dk    d	          }t          j        ||           |                                }|                    |dk    d	d
          }|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   rF   rH   rJ   r   )r]   any_signed_int_numpy_dtyper=   rl   rk   r   s         r(   test_where_bug_mixedz/TestDataFrameIndexingWhere.test_where_bug_mixedT  s   Xlll2LMMMX222)DDD 
 
  ..'9'9'9::
 

&1	BB
C
C 	 "q&"%%
fh///||FQJD|AA###
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  }|                                }||| <   d
}t          j        t          |          5  |                    ||          }d d d            n# 1 swxY w Y   t          j	        ||           t          ddgddgd          }t          t          j        dgdt          j        gd          }|                                ||k    z  }|                                }||| <   t          j        t          |          5  |                    ||          }d d d            n# 1 swxY w Y   t          j	        ||           d S )Nr6   r   r   r   r   r   )r   r6   r   r   r   <Downcasting behavior in Series and DataFrame methods 'where'rW   r   r   r6   )
r   r    r~   r   r   rH   assert_produces_warningFutureWarningrF   rJ   )r]   r   r   do_not_replacerl   r^   rk   s          r(   test_where_bug_transpositionz7TestDataFrameIndexingWhere.test_where_bug_transpositioni  s   1a&aVA7788261+1bf+2626:JKKLLQU+6688$%.!L'SAAA 	0 	0WW^Q//F	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0
fh///1a&aV,,--261+1bf+6677QU+6688$%.!'SAAA 	0 	0WW^Q//F	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0
fh/////s$   -CCC F##F'*F'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          }|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   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~   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                    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   )r   r   Fr   r6   rf   rc   rD   r   Tr   r   r   )
r   r    r!   r"   r#   r	   rF   rH   rJ   r   r]   r=   r   serrl   rk   r   s          r(   test_where_axisz*TestDataFrameIndexingWhere.test_where_axis  sx   ry,,Q//??GGHH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                 x   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   |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          }|                                }t          j        t          d          5  |                    ||dd          }d d d            n# 1 swxY w Y   |J t          j        ||           d S )Nr6   r   r   r   rh   rc   Fr   rf   rD   r   incompatible dtyperW   Tr   r   r   )r   r	   r    r~   rF   rH   rJ   r   r   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///'=QRRR 	O 	O!<<c<NNL	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O###
fh///q"&kArv;788$)44
fh///8QF'2228RVRV,I>>> 
 
 '=QRRR 	Q 	Q!<<c	4<PPL	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q###
fh/////s$   C55C9<C90HHH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          }|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        ||           |                                }t          j        t(          d          5  |                    ||d          }d d d            n# 1 swxY w Y   |J t          j        ||           |                                }t          j        t(          d          5  |                    ||dd          }d d d            n# 1 swxY w Y   |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   )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	   rF   r   rH   rJ   r   dropr~   r   r   r   )
r]   r=   r   s1s2rk   rl   r   d1d2s
             r(   test_where_axis_multiple_dtypesz:TestDataFrameIndexingWhere.test_where_axis_multiple_dtypes%  s   Y")//22BB7KKLLI))!,,55a'5JJ!   

 

 

 
"(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///'=QRRR 	@ 	@!<<b$<??L	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@###
fh///'=QRRR 	N 	N!<<b$W<MML	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N###
fh///WWYY^^AA^&&7799VQQQT$##
fh///$33
fh///||D"d|;;###
fh///||D"d|KK###
fh/////s$   &NNN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>u  s
    AE r*   c                     | dz   S Nr6   r7   r  s    r(   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>u  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>{  s    QUaZ$7 r*   c                     dS )Nc   r7   r  s    r(   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>{  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>  s
    !a% r*   c                     | dz   S )Nr   r7   r  s    r(   r   z@TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>  s
    1r6 r*   )         )         )r   r      r   r   )r   rF   rH   rJ   )r]   r=   rk   rT   s       r(   test_where_callablez.TestDataFrameIndexingWhere.test_where_callabler  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                 h   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          j        ||           t	          |d d         ddg          }t          g ddt
          j
        dgd          }|	                    ||d
          }t          j        ||           d S )Nr   r   r   r   r   r   rc   Fr6   r   r   r   r   r   r   r   r   rC   )r6   r   r   )r   r   r   NAr	   r    onesshapeboolrF   r~   rH   rJ   )r]   r=   arrr   r   rk   rl   ser2s           r(   test_where_ea_otherz.TestDataFrameIndexingWhere.test_where_ea_other  s(   YYYYYY7788h25!}%%Skkwrxt,,,QT
 $!,,Arvq>BFAGGHH
fh///c"1"gc3Z000999Arvq>BBCC$1--
fh/////r*   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          }d}t          j        t          |          5  |                    |                                 |          }d d d            n# 1 swxY w Y   t          j        ||                    t          j
                             t          j        t          d          5  |                    |                                |d	           d d d            n# 1 swxY w Y   t          j        ||                    t                               d S )
Nr   r   r   r   r   rW   %Setting an item of incompatible dtypeTr   )r   r>  rH   r   r   rF   r   r  r   r    rh   r   r   )r]   r  objrw   r^   r?  s         r(   #test_where_interval_fullop_downcastz>TestDataFrameIndexingWhere.test_where_interval_fullop_downcast  s   or{1a001A566c
++L'SAAA 	1 	1))SYY[[L%00C	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1
 	U\\"(33444 '!H
 
 
 	7 	7 HHSYY[[%H666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	U\\&1122222s$   *BB
B+DDDr/   )ztimedelta64[ns]zdatetime64[ns]zdatetime64[ns, Asia/Tokyo]z	Period[D]c                    t          j        t          d          5  t          t	          j        d          dz  t          j                                      |          }d d d            n# 1 swxY w Y   |                                }t	          j	        g d          }|
                    | d          }t          j        ||           |                    dd	          }|
                    | d          }t          j        ||           |                    |d          }t          j        ||           |                    |d          }	t          j        |	|           d
}
t          j        t          |
          5  |
                    |d          }d d d            n# 1 swxY w Y   t          d|j        |j                  }t          j        ||           t          j        t          d          5  |                    | dd           d d d            n# 1 swxY w Y   t          j        ||                    t&                               d S )Nzis deprecatedrW   r   i ʚ;rc   FFFfoor   r6   r   r   r   rB  Tr   )rH   r   r   r	   r    r&  rh   viewto_framer   rF   rI   r'  rJ   r   r   rD   r   r   r   )r]   r/   r   r=   r   r?  mask2res2res3res4r^   res5rl   s                r(   test_where_datetimelike_noopz7TestDataFrameIndexingWhere.test_where_datetimelike_noop  s    '_MMM 	K 	K1-RX>>>CCEJJC	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K\\^^x---..iiu%%
sC(((R##xx&&
dB'''xxe$$
tS)))wwue$$
dB''' M'SAAA 	& 	&88E1%%D	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&Qbh
CCC
dH--- '!H
 
 
 	- 	- GGUFAtG,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	b(//&"9"9:::::s6   AA,,A03A0F%%F),F)<H""H&)H&)/__name__
__module____qualname__r_   rm   rZ   markfilterwarningsr   r   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)  r0  r3  r<  r@  rD  rO  r7   r*   r(   r@   r@   0   sP         61 1 14 [ VWW2B 2B XW2Bj [ <==  >=. [ VWW' ' XW'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 0"0 0 0*0 0 020 0 0.!, !, !,F* * *0 0 0B, , ,0 0 000 0 0@K0 K0 K0Z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   rc   Tr   i   r   )r    r&  r   int16r'  r   zerosr8  r9  rF   r   rg   rH   rJ   )r:  r=   r   r?  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   r6  rH   r  r   )r  rC  filtered_obj
filter_serrk   rl   s         r(   test_where_string_dtyperg  M  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  f  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   r5  )
r   r   r   rW  r    r~   rF   notnullrH   rJ   )rl   rk   s     r(   test_where_none_nan_coercerr  v  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   r2  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    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            n# 1 swxY w Y   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'rW   Tr   rB  )r   period_ranger   rW  to_numpyr    r   ndimrv  rZ   r[   r\   rF   r   r   rH   r  r   r   )
r  rz  r$   idxrC  tdnatr   r^   rl   rk   s
             r(   test_where_period_invalid_nar    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$&&
)))'!H
 
 
 	0 	0 HHT5$H///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	X&&&&&sH   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}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   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_dtyper:  rC  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   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                     t          g d          } t          j        g d          }t          j        d          }d}t          j        t          |          5  |                     ||          }d d d            n# 1 swxY w Y   t          |||gd          }t          j	        ||           t          j
        d	d
          5  t          j        d |          5  |                     ||          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                    t                    }t          j	        ||           d S )Nr   rF  r6   )daysr   rW   r  rc   zfuture.no_silent_downcastingT)r	   r    r   r   	TimedeltarH   r   r   rF   rI   option_contextr   r   )r   r   tdr^   r?  rl   rK  	expected2s           r(   test_where_downcast_to_td64r    s   


C8)))**D	1			B
HC		#M	=	=	= " "iib!!" " " " " " " " " " " " " " "r2rl(333H3)))		94	@	@ ' ''C888 	' 	'99T2&&D	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ''I4+++++sH   A==BBDD 4D D	DD	DDD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   r?  s        r(   _check_where_equivalencesr    s     ((4

C#x(((
''4%

C#x(((
 
BGGTE5$G'''88:: 5==?? ,,V44"h'''''r*   c                  P   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          j	        t          d          5  t          ||||           d d d            n# 1 swxY w Y   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   r   r5  rB  rW   )r6   r   )r   r   rc   )r   _datar'  r   r    asarrayr   r   rH   r   r   r  r   r   )dtidtarw   r=   r   rl   s         r(   test_where_dt64_2dr    sK   
\1
-
-
-C
)

Aq
!
!C#d)OE	3c
	+	+	+B:bggii  %%''DDAJ uQQQT{QQQT;;<<H		#D
 
 
 = = 	""dE8<<<= = = = = = = = = = = = = = = DJ5;D	5;?vNNNQQQT	
 	
 H 
	#D
 
 
 = = 	""dE8<<<= = = = = = = = = = = = = = = DGHb$x88888s$   C,,C03C0!F  FF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   Int64rc   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>7  s
    !a% r*   r6   r   )r   r  s    r(   r   z;test_where_producing_ea_cond_for_np_dtype.<locals>.<lambda>7  s    a @ @ r*   r   )	r   r	   r   r6  rF   r    r~   rH   rJ   )r=   rk   rl   s      r(   )test_where_producing_ea_cond_for_np_dtyper  4  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           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   rl   s      r(   test_where_inplace_no_otherr  J  s    	#s3*55	6	6BD%=t}==>>DHHT4H   26{"&#??@@H"h'''''r*   )-r   
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  r  r  r  r  r  r  r  r7   r*   r(   <module>r     s                    / / / / / /    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       ; ; ; ; ; ; NNNOOO
 
 PO
V V V{; {; {; {; {; {; {; {;|) ) )& & &"& & &2, , , 	, 	, 	,: : :, , , D%=11-' -' 21-'`! ! !$    ! ! ! !, , ,(( ( (*!9 !9 !9H, , , E4$q!0D0DE , , ,( ( ( ( (r*   