
    Mh                        S SK J r   S SKJr  S SKrS SKrS SKJr  S SKr	S SKJ
r
JrJrJrJrJrJrJr  S SKJr  S SKJr  \R.                  " / SQS9S	 5       rS
 r " S S5      rS rS rS rS rS rS r S r!\RD                  RG                  SSS/5      S 5       r$S r%\" \S9S 5       r&S r'S r(S r)S r*\RD                  RG                  SS SS!S\ " S"S#S$5      /5      S% 5       r+S& r,g)'    )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                     U R                   S:X  a8  [        [        R                  R	                  S5      R                  S5      / SQS9$ U R                   S:X  a  U$ U R                   S:X  a  U$ U R                   S:X  a  U$ g )	Nr            ABCcolumnsr   r   r   )paramr   nprandomdefault_rngstandard_normal)requestfloat_string_framemixed_float_framemixed_int_frames       X/var/www/html/env/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_where.pywhere_framer)      sw    }}	!II!!!$44V<o
 	
 }}&!!}}%  }}# $    c                 b   ^ S m[        [        U4S jU R                  5        5       5      5      $ )Nc                     [        U R                  R                  [        R                  [        R
                  45      =(       a    U R                  S:g  $ )Nuint8)
issubclassdtypetyper    integerfloating)ss    r(   is_ok_safe_add.<locals>.is_ok(   s4    qww||bjj"++%>?VAGGwDV	
r*   c              3   T   >#    U  H  u  pT" U5      (       a  XS -   4OX4v   M     g7f)   N ).0cr3   r4   s      r(   	<genexpr>_safe_add.<locals>.<genexpr>-   s(     Ta1!e*qf<s   %()r   dictitems)dfr4   s    @r(   	_safe_addr@   &   s&    

 TTTTUUr*   c                   4   \ rS rSrS rS r\R                  R                  S5      S 5       r	\R                  R                  S5      S 5       r
\R                  R                  S5      S 5       rS	 r\R                  R                  S
\\\R"                  /5      S 5       r\R                  R                  SS/S/S//\" S/S/S//5      \" S/ SQ05      S/S/S//\" S5      /\R.                  /\" S5      ///5      S 5       r\R                  R                  SSS/SS/SS//\" SS/SS/SS//5      SS/SS/SS//\" / SQ/ SQS.5      \R.                  \" S5      /\" S5      \R.                  /\" S5      \" S5      ///5      S 5       rS rS rS  rS! rS" rS# rS$ r S% r!S& r"S' r#S( r$S) r%S* r&S+ r'S, r(S- r)\R                  R                  S.0 S/S00/5      S1 5       r*S2 r+S3 r,S4 r-S5 r.\R                  R                  S6/ S7Q5      S8 5       r/S9r0g0):TestDataFrameIndexingWhere0   c                     SS jnUnXBL a*  Sn[         R                  " [        US9   US:    S S S 5        g US:  nU" XF5        g ! , (       d  f       g = f)Nc           	         [        U 5      nU R                  X5      nU R                  UR                  U5      nUR                  5        HJ  u  pg[	        [
        R                  " X   X   X6   5      UR                  S9n[        R                  " XxSS9  ML     [        R                  " XE5        U(       a/  UR                  U R                  :H  R                  5       (       d   eg g )NindexF)check_names)r@   wherevaluesr>   r	   r    rG   tmassert_series_equalassert_frame_equaldtypesall)	r?   condcheck_dtypesother1rsrs2kvexps	            r(   
_check_get=TestDataFrameIndexingWhere.test_where_get.<locals>._check_get2   s    r]F$'B((4;;/C
RXXdgrufi@P&&q5A # !!"* 		RYY.335555 r*   6'>' not supported between instances of 'str' and 'int'matchr   T)pytestraises	TypeError)selfr)   r%   rX   r?   msgrP   s          r(   test_where_get)TestDataFrameIndexingWhere.test_where_get1   sS    	6 #JCy4Q 5Av2	 54s   A
Ac                    [        S Vs0 s H  nU[        S/S-  US9_M     sn5      nSUR                  SS S 24'   UR                  n[        [        R
                  " S5      [        R
                  " S5      [        R
                  " S5      [        R
                  " S	5      // SQS
9n[        R                  " X45        g s  snf )N)float32float64int32int64r7   r   r/   r   rf   rg   rh   ri   rF   )r   r	   ilocrN   r    r/   rK   rL   )ra   r:   r?   resultexpecteds        r(   test_where_upcasting/TestDataFrameIndexingWhere.test_where_upcastingI   s     BAA 61#'++A
 1##!!	 ;
 	v0+s   C z4ignore:Downcasting object dtype arrays:FutureWarningc                 t   SS jnUnXBL a*  Sn[         R                  " [        US9   US:    S S S 5        g US:  SS  nU" XF[        U5      5        US:  nU" XF[        U5      R                  5        US:  n[        S UR                   5       5      nU" XF[        R                  US9  g ! , (       d  f       g = f)	Nc                     U R                  X5      n[        UR                  5       GH  u  pVXF   nX   R                  nX   R	                  X   R
                  5      R                  S5      R                  n	[        U5      (       a  Un
OS[        U[        R                  5      (       a&  [        US S 2U4   UR
                  S9R                  n
OX&   R                  n
U	R                  5       (       a  UO[        R                   " XU
5      n[        XR
                  US9n[        R                  " X|SS9  GM     U(       aO  [        U[        R                  5      (       d/  UR                  U R                  :H  R                  5       (       d   eg g g )NFrF   )rG   name)check_dtype)rI   	enumerater   rJ   reindexrG   fillnar   
isinstancer    ndarrayr	   rO   rK   rL   rN   )r?   rP   otherrQ   rS   irU   rl   dr:   o
new_valuesrm   s                r(   _check_alignETestDataFrameIndexingWhere.test_where_alignment.<locals>._check_alignf   s%   $&B!"**-ELLGOOBEKK077>EEU##Arzz22uQT{&,,?FFAA"#%%''Qrxxa/@
!*LLqI &&vUK# ., Jubjj$A$A		RYY.335555 %B|r*   rZ   r[   r   r7   c              3   t   #    U  H.  n[        UR                  [        R                  5      (       + v   M0     g 7f)N)r.   r0   r    r1   )r9   r3   s     r(   r;   BTestDataFrameIndexingWhere.test_where_alignment.<locals>.<genexpr>   s%     Qy!z!&&"**===ys   68)rQ   r]   )	r^   r_   r`   r@   rJ   rO   rN   r    nan)ra   r)   r%   r~   r?   rb   rP   rQ   s           r(   test_where_alignment/TestDataFrameIndexingWhere.test_where_alignmentc   s    	66 #JCy4Q 5 Q|Ry}- AvR	" 4 46 AvQryyQQRrvvLA 54s   B))
B7zignore::DeprecationWarningc                 *   [        [        R                  R                  S5      R	                  S5      / SQS9nUS:  nUS-   R
                  SS2S S 24   nSn[        R                  " [        US9   UR                  X#5        S S S 5        UR                  S S2S S 24   R
                  n[        U5      nS	n[        R                  " [        US9   UR                  XV5        S S S 5        [        R                  " [        US9   UR                  S
5        S S S 5        [        R                  " [        US9   UR                  S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nd= f! , (       d  f       g = f)Nr   r   r   r   r   r7   z4other must be the same shape as self when an ndarrayr[   ,Array conditional must be same shape as selfT)r   r    r!   r"   r#   rJ   r^   r_   
ValueErrorrI   rk   r@   mask)ra   r?   rP   err1rb   err2rR   s          r(   test_where_invalid-TestDataFrameIndexingWhere.test_where_invalid   s$    II!!!$44V<o
 AvQqsAv&D]]:S1HHT  2 yy!Q&&2<]]:S1HHT" 2 ]]:S1GGDM 2]]:S1GGAJ 21 21 21 2111s0   1EE"E36F
E"
E03
F
Fc                    SS jnUnXRL a*  Sn[         R                  " [        US9   US:    S S S 5        g XSL a  UR                  S5      nUS:  nU" XW5        US:  nU" XW5        US:  SS  nU" XW5        g ! , (       d  f       g = f)Nc                 @   U R                  5       nUR                  U 5      R                  S5      R                  SS9nUR	                  U) 5      nUR                  U[        R                  SS9nUb   e[        R                  " X55        U(       a  U R                  R                  5        Ho  u  px[        UR                  [        R                  5      (       a-  X   R                  5       (       d  [        R                   " S5      nX7   R                   U:X  a  Mo   e   g g )NTF)copyinplacerg   )r   reindex_likerv   infer_objectsr   rI   r    r   rK   rM   rN   r>   r.   r0   r1   rO   r/   )	r?   rP   rQ   dfiecondrm   return_valuerU   rV   s	            r(   
_check_set=TestDataFrameIndexingWhere.test_where_set.<locals>._check_set   s    '')C%%b)006DD%DPExx'H99T26649@L'''!!#0 IIOO-DA!!&&"**55dgkkmmHHY/6<<1,,, . r*   rZ   r[   r   rg   r7   r]   )r^   r_   r`   astype)ra   r)   r%   r'   r   r?   rb   rP   s           r(   test_where_set)TestDataFrameIndexingWhere.test_where_set   s    	-  #JCy4Q 5 9%BAv2Qw2 a}2 54s   A66
Bc                     [        [        S5      [        SS5      S.5      nUR                  US   S:H  5      nXS   S:H     R                  UR                  5      n[
        R                  " X#5        g )Nr         abr   r7   )r   rangerI   ru   rG   rK   rM   ra   r?   rl   rm   s       r(   test_where_series_slicing4TestDataFrameIndexingWhere.test_where_series_slicing   s`     U1XE!QK89"S'Q,'gl#++BHH5
f/r*   klassc                 n   [        S/ SQ05      nS/S/S//n[        S[        R                  SS/05      nUR                  U" U5      5      n[        R
                  " XT5        SUS'   S[        R                  S/US'   SS/SS/SS//nUR                  U" U5      5      n[        R
                  " XT5        g )Nr   r7   r   r   FTr   r   r   )r   r    r   rI   rK   rM   )ra   r   r?   rP   rm   rl   s         r(   test_where_array_like0TestDataFrameIndexingWhere.test_where_array_like   s     Y'($$(cBFFAq>23%+&
f/3BFFAe}tTl;%+&
f/r*   rP   r7   r   r   r   r   r   )r   r   r   TrueFalsez
2017-01-01z
2017-01-02c                     [        S/ SQ05      nSn[        R                  " [        US9   UR	                  U5        S S S 5        g ! , (       d  f       g = f)Nr   r   (Boolean array expected for the conditionr[   r   r^   r_   r   rI   ra   rP   r?   rb   s       r(   test_where_invalid_input_single:TestDataFrameIndexingWhere.test_where_invalid_input_single   s=     Y'(8]]:S1HHTN 211s   A
Ar   )r      	   r   z
2017-01-03c                     [        / SQ/ SQS.5      nSn[        R                  " [        US9   UR	                  U5        S S S 5        g ! , (       d  f       g = f)Nr   )r   r   r   r   r   r[   r   r   s       r(   !test_where_invalid_input_multiple<TestDataFrameIndexingWhere.test_where_invalid_input_multiple   s=      YY788]]:S1HHTN 211s   A		
Ac                    [        / SQ/ SQ/5      n[        / SQ/ SQ/5      nUR                  U5      n[        S[        R                  S/[        R                  [        R                  S//5      n[        R
                  " X45        / SQUl        UR                  U5      n[        [        R                  UR                  UR                  S	9n[        R
                  " X45        g )
Nr   r   r      )TFTFFT      ?r   r   )r   r   r:   rG   r   )r   rI   r    r   rK   rM   r   rG   )ra   r?   rP   rl   rm   s        r(   test_where_dataframe_col_match9TestDataFrameIndexingWhere.test_where_dataframe_col_match  s    	9-.-/CDE$sBFFA.0CDE
f/ '$RVV288RZZH
f/r*   c                 "   Sn[        / SQ/ SQ/5      nS/n[        R                  " [        US9   UR	                  U5        S S S 5        [        / SQ[
        R                  [
        R                  [
        R                  //5      nUR	                  [        U5      5      n[        R                  " XT5        [
        R                  " / SQ5      n[        R                  " [        US9   UR	                  U5        S S S 5        [        [
        R                  [
        R                  [
        R                  // SQ/5      nUR	                  [        U5      5      n[        R                  " XT5        g ! , (       d  f       GN3= f! , (       d  f       N= f)Nr   r   r   Tr[   )FTFT)r   r^   r_   r   rI   r    r   r	   rK   rM   array)ra   rb   r?   rP   rm   outs         r(   test_where_ndframe_align3TestDataFrameIndexingWhere.test_where_ndframe_align$  s   <	9-.v]]:S1HHTN 2 i"&&"&&"&&)ABChhvd|$
c,xx23]]:S1HHTN 2 rvvrvvrvv6	BChhvd|$
c, 21 21s   E.'F .
E= 
Fc                    [        / SQ/ SQS.SS9n[        [        R                  [        R                  SS/SS[        R                  [        R                  /S.SS9nUR                  US:  [        R                  5      n[        R
                  " X25        UR                  5       nUR                  US:  [        R                  S	S
9nUb   e[        R
                  " X25        g )N)r          @      @      @r   r   r   r   r   rg   rj   r   r   r   Tr   )r   r    r   rI   rK   rM   r   )ra   r?   rm   rl   r   s        r(   test_where_bug)TestDataFrameIndexingWhere.test_where_bug:  s    &-AB)
 662663,Cbffbff3MN
 "q&"&&)
f/||FQJ|E###
f/r*   c                    [        [        R                  " / SQUS9[        R                  " / SQSS9S.5      n[        / SQ/ SQS.5      R                  USS.5      nUR	                  US:  S	5      n[
        R                  " XC5        UR                  5       nUR	                  US:  S	S
S9nUb   e[
        R                  " XC5        g )Nr7   r   r   r   rj   r   rg   r   )r   r   r   )r   r   r   r   r   r   Tr   )r   r    r   r   rI   rK   rM   r   )ra   any_signed_int_numpy_dtyper?   rm   rl   r   s         r(   test_where_bug_mixed/TestDataFrameIndexingWhere.test_where_bug_mixedK  s    XXl2LMXX2)D
  '9:

&1	B
C 	 "q&"%
f/||FQJD|A###
f/r*   c                 ^   [        SS/SS/SS/S.5      n[        [        R                  S/S	[        R                  /[        R                  [        R                  /S.5      nUR                  5       X:  -  nUR	                  5       nX$U) '   S
n[
        R                  " [        US9   UR                  X25      nS S S 5        [
        R                  " WU5        [        SS/SS/S.5      n[        [        R                  S/S[        R                  /S.5      nUR                  5       X:  -  nUR	                  5       nX$U) '   [
        R                  " [        US9   UR                  X25      nS S S 5        [
        R                  " Xd5        g ! , (       d  f       N= f! , (       d  f       N6= f)Nr7   r   r   r   r   r   )r   r7   r   r   r   <Downcasting behavior in Series and DataFrame methods 'where'r[   r   r   r7   )
r   r    r   r   r   rK   assert_produces_warningFutureWarningrI   rM   )ra   r   r   do_not_replacerm   rb   rl   s          r(   test_where_bug_transposition7TestDataFrameIndexingWhere.test_where_bug_transposition`  sP   1a&aVA782661+1bff+266266:JKLQU+668$%.!L''SAWW^/F B
fh/1a&aV,-2661+1bff+67QU+668$%.!''SAWW^/F B
f/ BA BAs   (FF
F
F,c                 *   [        [        SSS9[        SSS9[        R                  R	                  S5      R                  S5      S.5      n[        SSS	5      nS
n[        R                  " [        US9   X:    S S S 5        XR                  S S 2S S24   U:     nUR                  5       n[        R                  UR                  SS/S4'   [        R                  UR                  S S 2S4'   [        R                  " XE5        g ! , (       d  f       N= f)N20130102r   periods20130104r   r   i  r7   r   zF'>' not supported between instances of 'float' and 'datetime.datetime'r[   r   r   r   r   )r   r   r    r!   r"   r#   r   r^   r_   r`   rk   r   r   locrK   rM   )ra   r?   stamprb   rl   rm   s         r(   test_where_datetime.TestDataFrameIndexingWhere.test_where_datetimey  s    
A6
A6YY**1-==a@
 q!$V]]9C0J 1 GGAssFOe+,779$&FFaVS[!!vvQV
f/ 10s   4D
Dc                    [        S[        [        S5      5      05      R                  [        5      nS XS:  '   [        S[        SSSSSS	S
S[
        R                  [
        R                  /
5      05      n[        R                  " X5        [        S[
        R                  SS.[
        R                  S[
        R                  S./5      nUR                  5       n[        U5      ) nUR                  US SS9  [        S[
        R                  /S S/SS /S.5      n[        R                  " X5        UR                  5       nS X) '   [        R                  " X5        g )Nseries
   r   r   r7   r   r   r   r   r   Testr   Tr   r   )r   r	   r   r   floatr    r   rK   rM   r   r   rI   )ra   r?   rm   origr   s        r(   test_where_none*TestDataFrameIndexingWhere.test_where_none  s+    &r"345<<UC6
vq!Q1aArvvrvvFGH
 	b+ bff62ff67
 wwyRy
tT*266]F^d^
 	b+YY[5	
b+r*   c                     [        S/S9nUnUR                  [        :H  R                  5       (       d   eUR	                  U5      n[
        R                  " X15        g )Nr   r   )r   rN   objectrO   rI   rK   rM   )ra   r?   rP   rl   s       r(   9test_where_empty_df_and_empty_cond_having_non_bool_dtypesTTestDataFrameIndexingWhere.test_where_empty_df_and_empty_cond_having_non_bool_dtypes  sL    u%v%**,,,,$
f)r*   c           	      p   S nU" 5       nUR                  UR                  5       5      nUR                  [        R                  " U5      UR                  5       SS9n[
        R                  " XC5        UR                  [        R                  " U5      UR                  5       SSS9nUb   e[
        R                  " X#5        U" 5       R                  S5      nUR                  S US   S9nUR                  US:  US   S	S9n[
        R                  " XC5        UR                  US:  US   S
S9n[
        R                  " XC5        U" 5       nUR                  S5      nUR                  [        R                  " U5      [        SUR                  UR                  S95      n[
        R                  " XC5        g )Nc                  :   [        [        R                  R                  S5      R	                  S5      5      n [        R
                  U R                  SS2S4'   [        R
                  U R                  SS2S4'   [        R
                  U R                  SS	2S4'   U $ )
Nr   )r   r   r   r   r   r   r   r7   r   )r   r    r!   r"   r#   r   rk   )r?   s    r(   create;TestDataFrameIndexingWhere.test_where_align.<locals>.create  sv    299003CCGLMB ffBGGAaCFO ffBGGAaCFO ffBGGAaCFOIr*   r   axisTr   r   r   c                 ,    U R                  U S:  U5      $ Nr   )rI   )xys     r(   <lambda>=TestDataFrameIndexingWhere.test_where_align.<locals>.<lambda>  s    Q):r*   r   rG   rowsr7   r   )rv   meanrI   pdnotnarK   rM   applyr   rG   r   )ra   r   r?   rm   rl   r   s         r(   test_where_align+TestDataFrameIndexingWhere.test_where_align  s_   	 X99RWWY'"((2,		B
f/xxbggiIxV###
b+X__Q88:be8D"q&"Q%g6
f/"q&"Q%f5
f/ X99Q<HHRL)ARXXrzzJ
 	f/r*   c                     [        SS/[        R                  S//SS/S9n[        SS/SS//SS/S9n[        R                  X"R                  5       S:  '   [        R
                  " X!5        g )	Ny      ?      ?r   y      @      ?r   r   r   y      @      ?r   )r   r    r   absrK   rM   )ra   rm   r?   s      r(   test_where_complex-TestDataFrameIndexingWhere.test_where_complex  sf    vqkBFFF+;<sCjQff%56c
KFF668q=
b+r*   c                 v   [        [        R                  R                  S5      R	                  S5      5      n[        SS/SS//5      n[        SS/5      n[        SS/SS//SS9nUR                  X#SS	9n[        R                  " XT5        UR                  5       nUR                  X#SS
S9nUb   e[        R                  " XT5        [        SS/SS//SS9nUR                  X#SS	9n[        R                  " XT5        UR                  5       nUR                  X#SS
S9nUb   e[        R                  " XT5        g )Nr   )r   r   Fr   r7   rg   rj   rG   r   Tr   r   r   )
r   r    r!   r"   r#   r	   rI   rK   rM   r   ra   r?   r   serrm   rl   r   s          r(   test_where_axis*TestDataFrameIndexingWhere.test_where_axis  s.   ryy,,Q/??GH5%.5%.9:aVnq!fq!f-Y?$'2
f/||DGT|J###
f/q!fq!f-Y?$)4
f/||DIt|L###
f/r*   c                 ,   [        SS/SS//SS9n[        SS/SS//5      n[        S[        R                  /5      n[        SS/[        R                  [        R                  //S	S9nUR	                  X#S
S9n[
        R                  " XT5        UR                  5       n[
        R                  " [        SS9   UR	                  X#S
SS9nS S S 5        Wb   e[
        R                  " XT5        [        S[        R                  /S[        R                  //5      nUR	                  X#SS9n[
        R                  " XT5        [        [        R                  " SS/SS9[        R                  " [        R                  [        R                  /S	S9S.5      nUR                  5       n[
        R                  " [        SS9   UR	                  X#SSS9nS S S 5        Ub   e[
        R                  " XT5        g ! , (       d  f       GN0= f! , (       d  f       N<= f)Nr7   r   r   r   ri   rj   Fr   rg   rG   r   incompatible dtyper[   Tr	  r   r   )r   r	   r    r   rI   rK   rM   r   r   r   r   r
  s          r(   test_where_axis_with_upcast6TestDataFrameIndexingWhere.test_where_axis_with_upcast  s   AA'w75%.5%.9:a[!q!frvvrvv&67yI$'2
f/''=QR!<<<NL S###
f/q"&&kArvv;78$)4
f/88QF'288RVVRVV,I>
 ''=QR!<<	4<PL S###
f/' SR  SRs   8G3=H3
H
Hc                 	   [         R                  " [        [        R                  R                  S5      R                  S5      5      [        [        R                  R                  S5      R                  SSSS9SS9/SS	S
9n[        SUR                  UR                  S9n[        S	UR                  S9n[        SUR                  S9nUR                  X#SS9n[        SUR                  UR                  S9nUS   R                  S5      US'   US   R                  S5      US'   [        R                  " XV5        UR                  5       nUR                  X#SSS9nUb   e[        R                  " XV5        UR                  X$SS9n[        SUR                  UR                  S9nUS   R                  S5      US'   US   R                  S5      US'   [        R                  " XV5        UR                  5       nUR                  X$SSS9nUb   e[        R                  " XV5        UR                  5       R!                  S	SS9nUR                  5       R                  S5      n[        R"                  UR$                  S	S S 24'   UR                  X(5      n[        R                  " XV5        UR                  X(SS9n[        R                  " XV5        UR                  5       n[        R&                  " [(        SS9   UR                  X(SS9nS S S 5        Ub   e[        R                  " XV5        UR                  5       n[        R&                  " [(        SS9   UR                  X(SSS9nS S S 5        Ub   e[        R                  " XV5        UR                  5       R!                  S	S	S9n	UR                  5       n[        R"                  UR$                  S S 2S	4'   UR                  X)5      n[        R                  " XV5        UR                  X)SS9n[        R                  " XV5        UR                  5       nUR                  X)SS9nUb   e[        R                  " XV5        UR                  5       nUR                  X)SSS9nUb   e[        R                  " XV5        g ! , (       d  f       GN= f! , (       d  f       GNP= f)Nr   )r   r   r   r   )sizeri   rj   Tr7   )ignore_indexr   F)r   rG   rF   r   r   r   r   r	  rG   r   r   r  r[   r   r   )r   concatr   r    r!   r"   r#   integersr   rG   r	   rI   r   rK   rM   r   dropr   r   r   r   )
ra   r?   r   s1s2rl   rm   r   d1d2s
             r(   test_where_axis_multiple_dtypes:TestDataFrameIndexingWhere.test_where_axis_multiple_dtypes  s   YY"))//2BB7KLII))!,55a'5J! 

 

"((CARZZ(ARXX&$3S"**BHHEqk((1qk((1
f/||D9d|K###
f/$1S"**BHHEqk((1qk((1
f/||D7D|I###
f/ WWY^^AA^&779##G,VVQT$#
f/$1
f/''=QR!<<$<?L S###
f/''=QR!<<$W<ML S###
f/WWY^^AA^&779VVQT$#
f/$3
f/||Dd|;###
f/||Dd|K###
f/3 SR
 SRs   ;R!R3!
R03
Sc                    [        / SQ/ SQ/ SQ/5      nUR                  S S 5      n[        / SQ/ SQ/ SQ/5      n[        R                  " X#5        [        R                  " X!R                  US:  US	-   5      5        UR                  S
 S 5      n[        / SQ/ SQ/ SQ/5      n[        R                  " X#5        [        R                  " X!R                  US-  S:H  S5      5        US-   R                  S S 5      n[        / SQ/ SQ/ SQ/5      n[        R                  " X#5        [        R                  " X!S-   R                  US-   S:  US-   S-   5      5        g )Nr   r   )r   r   r   c                     U S:  $ )Nr   r8   r   s    r(   r   @TestDataFrameIndexingWhere.test_where_callable.<locals>.<lambda>l  s    AEr*   c                     U S-   $ Nr7   r8   r   s    r(   r   r!  l  s    QUr*   )r   r   r   )r   r   r   r   r7   c                 &    U S-  S:H  R                   $ )Nr   r   )rJ   r   s    r(   r   r!  r  s    QUaZ$7$7r*   c                     g)Nc   r8   r   s    r(   r   r!  r  s    2r*   )r&  r   r&  )r   r&  r   )r&  r   r&  r   r   r&  c                     U S:  $ )Nr   r8   r   s    r(   r   r!  x  s    !a%r*   c                     U S-   $ )Nr   r8   r   s    r(   r   r!  x  s    1r6r*   )         )         )r   r      r   r   )r   rI   rK   rM   )ra   r?   rl   rW   s       r(   test_where_callable.TestDataFrameIndexingWhere.test_where_callablei  s   	9i89/?;Iy9:
f*
fhhrAvrAv&>? 7Fj+>?
f*
fhhrAv{B&?@ q&1AB|[AB
f*
fAvnnb1f\BFb=&QRr*   c                 $   [        [        / SQUS9S/S9n[        [        / SQUS9S/S9n[        / SQS/S9n[        [        / SQUS9S/S9nU[        L a  US   nUS   nUS   nUS   nUR                  XT5      n[        R
                  " Xg5        g )N)201501012015010220150103)tzdater   )r5  2015010420150105TTF)r3  r4  r9  )r   r   r	   rI   rK   assert_equal)ra   tz_naive_fixtureframe_or_seriesobj1obj2r   rW   rl   s           r(   test_where_tz_values/TestDataFrameIndexingWhere.test_where_tz_values}  s    >CSTH
 >CSTH
 ,vh?>CSTH
 f$<D<D<Df+CD'
$r*   c                    [        [        R                  " S5      R                  SS5      [	        S5      S9n[        R
                  " / SQ/ SQ/5      nUR                  U5      n[        S[        R                  [        R                  /[        R                  [        R                  S	//[	        S5      S9n[        R                  " X45        g )
Nr   r   r   ABCr   TFFr   r   r   )
r   r    arangereshapelistr   rI   r   rK   rM   )ra   r?   r   rl   rm   s        r(   test_df_where_change_dtype5TestDataFrameIndexingWhere.test_df_where_change_dtype  s    ryy'//15tE{Kxx-/CDE$ 2662661"56U
 	f/r*   kwargsry   Nc                    [         R                  " S[         R                  S9R                  SS5      n[	        U[        S5      S9n[         R                  " / SQ/ SQ/5      nUR                  R                  S	5      Ul        UR                  R                  S	5      Ul	        UR                  R                  S	5      Ul
        UR                  " U40 UD6n[        R                  " S
[         R                  /S
S/S9n[        R                  " [         R                  [         R                  /SS/S9n[        R                  " [         R                  S/SS/S9n[	        XgUS.5      n	[        R                   " XY5        UR                  R                  " US S 2S
4   40 UD6n[#        USS9n	[        R$                  " XY5        g )Nr   rj   r   r   rC  r   rD  r   categoryr   )
categoriesr7   r   r   r   r   )rr   )r    rE  ri   rF  r   rG  r   r   r   r   r   rI   r   Categoricalr   rK   rM   r	   rL   )
ra   rJ  datar?   r   rl   r   r   r   rm   s
             r(   test_df_where_with_category6TestDataFrameIndexingWhere.test_df_where_with_category  sL    yybhh/771=tT%[1xx-/CDE tt{{:&tt{{:&tt{{:&$)&)NNArvv;Aq6:NNBFFBFF+A?NNBFFA;Aq6:1156
f/ DAJ1&1!#&
v0r*   c                 4   [        SS/SS//SS/S9nUS   R                  S5      US'   UR                  US   S:  5      nUR                  5       R                  SS05      n[        R
                  UR                  SS S 24'   [        R                  " X#5        g )Nr   r7   r   r   rO  r   rL  r   )	r   r   rI   r   r    r   r   rK   r;  r   s       r(    test_where_categorical_filtering;TestDataFrameIndexingWhere.test_where_categorical_filtering  s    aVaV,sCjAS'..,3"S'A+&779##S'N3VVQT
)r*   c                 <   [        / SQ/ SQS.5      n[        R                  " S[        R                  S/5      n[	        U5      n[
        R                  " UR                  [        S9nSUSS S 24'   UR                  XCS	S
9n[        S[
        R                  S/S[
        R                  S/S.5      n[        R                  " XV5        [	        US S SS/S9n[        / SQS[
        R                  S/S.5      nUR                  XGSS
9n[        R                  " XV5        g )Nr   r   r   r   r   r   rj   Fr7   r   r   r   r   r   r   r   r   rF   )r7   r   r   )r   r   r   NAr	   r    onesshapeboolrI   r   rK   rM   )ra   r?   arrr  r   rl   rm   ser2s           r(   test_where_ea_other.TestDataFrameIndexingWhere.test_where_ea_other  s    YY78hh255!}%Skwwrxxt,QT
 $!,Arvvq>BFFAGH
f/c"1gc3Z09Arvvq>BC$1-
f/r*   c                 $   [        [        R                  " SS5      /5      nUR                  UR	                  5       5      n[
        R                  " X!5        US   nUR                  UR	                  5       5      n[
        R                  " X#5        g r   )r   r   IntervalrI   r   rK   rM   rL   )ra   r?   resr  s       r(   test_where_interval_noop3TestDataFrameIndexingWhere.test_where_interval_noop  sg    Aq)*+hhrxxz"
c&eii		$
s(r*   c                 d   U" [         R                  " SS5      /S-  5      nU" SS/5      nSn[        R                  " [        US9   UR                  UR                  5       ) U5      nS S S 5        [        R                  " WUR                  [        R                  5      5        [        R                  " [        SS9   UR                  UR                  5       USS	9  S S S 5        [        R                  " X#R                  [        5      5        g ! , (       d  f       N= f! , (       d  f       NI= f)
Nr   r   r   r   r   r[   %Setting an item of incompatible dtypeTr   )r   ra  rK   r   r   rI   r   r;  r   r    ri   r   r   )ra   r=  objry   rb   rb  s         r(   #test_where_interval_fullop_downcast>TestDataFrameIndexingWhere.test_where_interval_fullop_downcast  s    r{{1a01A56c
+L''SA))SYY[L%0C B
 	U\\"((34 ''!H
 HHSYY[%H6
 	\\&12 BA
 
s   "D> D!
D!
D/r/   )ztimedelta64[ns]zdatetime64[ns]zdatetime64[ns, Asia/Tokyo]z	Period[D]c                 v   [         R                  " [        SS9   [        [        R
                  " S5      S-  [        R                  S9R                  U5      nS S S 5        WR                  5       n[        R                  " / SQ5      nUR                  U) S5      n[         R                  " XR5        UR                  SS	5      nUR                  U) S5      n[         R                  " Xs5        UR                  US5      n[         R                  " X5        UR                  US5      n	[         R                  " X5        S
n
[         R                  " [        U
S9   UR                  US5      nS S S 5        [        SUR                   UR"                  S9n[         R                  " WU5        [         R                  " [        SS9   UR                  U) SSS9  S S S 5        [         R                  " X<R%                  [&        5      5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N[= f)Nzis deprecatedr[   r   i ʚ;rj   FFFfoor   r7   r   r   r   rf  Tr   )rK   r   r   r	   r    rE  ri   viewto_framer   rI   rL   rF  rM   r   r   rG   r   r   r   )ra   r/   r  r?   r   rb  mask2res2res3res4rb   res5rm   s                r(   test_where_datetimelike_noop7TestDataFrameIndexingWhere.test_where_datetimelike_noop  s    ''_M1-RXX>CCEJC N\\^xx-.iiu%
s(R#xx&
d'xxe$
t)wwue$
d' M''SA88E1%D BQbhh

C
dH- ''!H
 GGUFAtG,
 	b//&"9:? NM* BA
 
s#   ?HHH*
H
H'*
H8r8   )1__name__
__module____qualname____firstlineno__rc   rn   r^   markfilterwarningsr   r   r   r   parametrizerG  tupler    r   r   r	   r   r   r   NaTr   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r0  r@  rH  rP  rT  r^  rc  rh  rt  __static_attributes__r8   r*   r(   rB   rB   0   s   014 [[ VW/B X/Bd [[ <= >. [[ VW$ X$L0 [[WtUBHH&=>0 ?0  [[S1#sOQC!qc?#sI&'Xy6(+%&9\3J2KL	
		 [[VaVaV$QFQFQF+,v 1FF3CDII67<01<("&&1<()L*AB
	
0-,0"0*020.!,F*0B,000@K0ZS(%.
0 [[XWdO'<=1 >12
*0$)3( [[	
#;#;r*   rB   c                     [         R                  " S5      R                  [         R                  5      R	                  SS5      n [        U 5      n[         R                  " U R                  [        S9nSUS S 2S4'   UR                  US5      n[        U S S 2S4   [         R                  " S/S-  [         R                  S9S.5      n[        R                  " X45        g )	Nr   r   r   rj   Tr   i   r   )r    rE  r   int16rF  r   zerosrZ  r[  rI   r   rh   rK   rM   )r\  r?   r   rb  rm   s        r(   %test_where_int_downcasting_deprecatedr  %  s    
))A,

bhh
'
/
/1
5C	3B88CIIT*DDAJ
((4
CSAY288UGaKrxx+PQRH#(r*   c                    U " / SQ5      nUR                  5       nU [        L a  US   OUnUR                  US:  5      nUS-  n[        R                  " X5        UR                  US:  / SQ5      nUS-  n[        R                  " X5        g )Nr   r   r   r   )r   r   rI   rK   r;  )r=  rl   rm   col	where_ress        r(   test_where_copies_with_noopr  3  sy    \*F{{}H&)3&)CS1W%INIOOF%S1Wl3INIOOF%r*   c                    U " / SQ/ SQ[        5       S9nU " SS/SS/[        5       S9n[        / SQ5      nUR                  X25      nU " [        R                  SS[        R                  // SQ[        5       S9n[
        R                  " XE5        UR                  U) U5      n[
        R                  " XE5        UR                  U) US	S
9  [
        R                  " XE5        g )N)r   r   r:   r{   )id1id2id3id4)rG   r/   r   r:   r  r  )FTTFTr   )r
   r	   rI   r   rX  rK   r;  r   )r=  rg  filtered_obj
filter_serrl   rm   s         r(   test_where_string_dtyper  D  s    
$@C #	c
5%.L 23JYYz0F	S"%% *mH
 OOF%XXzk<0FOOF%HHj[,H5OOF%r*   c                  B   [        S/S-  S/S-  / SQS.5      n U R                  U S:H  5      n[        [        R                  " [        R                  /S-  [
        S9S/S-  [        R                  S[        R                  S/S.5      n[        R                  " X5        g )NTr   F)TFTF)AAABBBCCCrj   )r   rI   r    r   r   r   rK   rM   )df_maskrl   rm   s      r(   test_where_bool_comparisonr  ]  s    
E7Q;7QRG ]]7e+,F88RVVHqL77Q;FFE26651	
H &+r*   c                      [        [        S5      [        R                  [        S5      /SS[        R
                  /S.5      n U R                  U R                  5       S 5      n[        R                  " X5        g )N2013010120130103r7   r   rW  )
r   r   r   r~  r    r   rI   notnullrK   rM   )rm   rl   s     r(   test_where_none_nan_coercer  m  s_    J':1FGQ	
H ^^H,,.5F&+r*   c                     [        S[        R                  //[        SS/5      S9n U R                  u  p[        SS//X!S9nU R                  [        5      R                  U5      nU R                  S5      R                  U5      nU R                  R                  UR                  5      R                  nU R                  U5      n[        R                  " UR                  S5      UR                  S5      5        [        R                  " UR                  S5      UR                  S5      5        [        R                  " UR                  S5      UR                  S5      5        g )Nr   r   rS  T)rO  r   rG   f8)r   r    r   r   axesr   r   rI   TrK   rM   )rl   rG   r   r   r   r   r:   r{   s           r(   &test_where_duplicate_axes_mixed_dtypesr  y  s     a[M5#s3DEF[[NED$<.'GDf##D)Ad!!$'Atvv  ATA!((4.!((4.9!((4.!((4.9!((4.!((4.9r*   c                      [        SS/S[        R                  /S.5      n U R                  5       nU R	                  [
        R                  " U 5      S 5      n[        R                  " X5        g )Nr   r   r   r   )	r   r    r   r   rI   r   r  rK   rM   )r?   rm   rl   s      r(   test_where_columns_castingr    sP     
#s1bff+6	7BwwyHXXbjjnd+F(+r*   as_catTFc                    [         R                  " SSSS9nU(       a  UR                  S5      nU " U5      n[         R                  R	                  S5      n[
        R                  " / SQUR                  S9R                  nU(       a  S	nOS
nU(       a  [        R                  " [        US9   UR                  Xe5        S S S 5        [        R                  " [        US9   UR                  Xe5        S S S 5        [        R                  " [        US9   UR                  XeSS9  S S S 5        g UR                  [        5      R                  Xe5      nUR                  Xe5      n	[        R                   " X5        UR                  [        5      R                  Xe5      nUR                  Xe5      n	[        R                   " X5        [        R"                  " [$        SS9   UR                  XeSS9  S S S 5        [        R                   " XH5        g ! , (       d  f       GNT= f! , (       d  f       GN3= f! , (       d  f       g = f! , (       d  f       NZ= f)N
2016-01-01r   D)r   freqrL  m8[ns]r:  ndminzUCannot setitem on a Categorical with a new category \(NaT\), set the categories firstzvalue should be a 'Period'r[   Tr   rf  )r   period_ranger   r~  to_numpyr    r   ndimr  r^   r_   r`   rI   r   r   rK   r;  r   r   )
r=  r  r$   idxrg  tdnatr   rb   rm   rl   s
             r(   test_where_period_invalid_nar    s    //,
<Cjj$
#
C FFOOH%E88'sxx8::D' 	
 +]]9C0IId" 1 ]]9C0HHT! 1 ]]9C0HHT$H/ 10 ::f%++D84'
)::f%**47$&
)''!H
 HHT$H/
 	&1 10 10 10
 
s0   -H HH0I
H
H-0
H>
Ic                     [         R                  " / SQUS9nU " U5      n[        R                  " / SQUR                  S9R                  nSn[
        R                  [         R                  /-    Hi  n[        R                  " [        US9   UR                  XF5        S S S 5        [        R                  " [        US9   UR                  XF5        S S S 5        Mk     g ! , (       d  f       NF= f! , (       d  f       M  = f)Nr   rj   r:  r  z1Invalid value '.*' for dtype (U?Int|Float)\d{1,2}r[   )r   r   r    r  r  rK   NP_NAT_OBJECTSr~  r^   r_   r`   rI   r   )r=  any_numeric_ea_dtyper\  rg  r   rb   nulls          r(   test_where_nullable_invalid_nar    s    
((9$8
9C
#
C88'sxx8::D
>C!!RVVH,]]9C0IId! 1 ]]9C0HHT  10 -00 10s   C>C.
C+	.
C=	)rO  c                     [        SU 05      nUR                  [        R                  " U5      S 5      R	                  5       nUR                  [        R                  " U5      S SS9  [
        R                  " X5        g )Nr   Tr   )r   rI   r   r  r   rK   r;  )rO  r?   df_copys      r(   test_where_inplace_castingr    sY     
C;	Bhhrzz"~t,113GHHRZZ^T4H0OOB r*   c                     [        / SQ5      n [        R                  " / SQ5      n[        R                  " SS9nSn[
        R                  " [        US9   U R                  X5      nS S S 5        [        X"U/SS9n[
        R                  " WU5        [        R                  " S	S
5         [
        R                  " S US9   U R                  X5      nS S S 5        S S S 5        UR                  [        5      n[
        R                  " WU5        g ! , (       d  f       N= f! , (       d  f       NT= f! , (       d  f       N]= f)Nr   rk  r7   )daysr   r[   r  rj   zfuture.no_silent_downcastingT)r	   r    r   r   	TimedeltarK   r   r   rI   rL   option_contextr   r   )r  r   tdrb   rb  rm   rp  	expected2s           r(   test_where_downcast_to_td64r    s    

C88)*D	1	B
HC		#	#M	=ii! 
>rrl(3H3)			94	@''C899T&D 9 
A 'I4+ 
>	= 98 
A	@s0   D)D0?DD0
D
D-	)D00
D>c                    U R                  X5      n[        R                  " XC5        U R                  U) U5      n[        R                  " XC5        U R	                  5       n U R                  U) USS9  UR                  5       (       d+  UR	                  5       nUS   R                  [        5      US'   [        R                  " X5        g )NTr   r   )rI   rK   rM   r   r   rO   r   r   )r?   r   ry   rm   rb  s        r(   _check_where_equivalencesr    s     ((4
C#(
''4%
C#(
 
BGGTE5$G'88::==? ,,V4"'r*   c                     [        SSS9n U R                  R                  SS5      nXS   -
  n[        USS/S	9n[        R
                  " UR                  5       5      R                  5       nS
US S 2S4'   [        US S 2S4   US S 2S4   S.5      n[        R                  " [        SS9   [        X4X%5        S S S 5        S
US'   [        [        R                  " US   US   US   /[        S9US S 2S4   S.5      n[        R                  " [        SS9   [        X4X%5        S S S 5        S
US S & Un[        X4X%5        g ! , (       d  f       N= f! , (       d  f       N3= f)Nr  r   r   r   r   )r   r   r   r   r   Tr7   r   rW  rf  r[   )r7   r   )r   r   rj   )r   _datarF  r   r    asarrayr   r   rK   r   r   r  r   r   )dtidtary   r?   r   rm   s         r(   test_where_dt64_2dr    sL   
\1
-C
))

Aq
!Cd)OE	3c
	+B::bggi %%'DDAJ uQT{QT;<H		#	#D
 	""E<
 DJ5;D	5;?vNQT	
H 
	#	#D
 	""E<
 DGHb8+
 

 
s   *D>E>
E
Ec                  2   [        [        S[        R                  S/SS9/ SQS.5      n U R	                  S 5      n[        [        [        R                  [        R                  S/SS9[
        R                  SS/S.5      n[        R                  " X5        g )	Nr7   r   Int64rj   r   r   c                 $    U R                  S SS9$ )Nc                     U S:  $ r#  r8   r   s    r(   r   Mtest_where_producing_ea_cond_for_np_dtype.<locals>.<lambda>.<locals>.<lambda>.  s    !a%r*   r7   r   )r  r   s    r(   r   ;test_where_producing_ea_cond_for_np_dtype.<locals>.<lambda>.  s    a @r*   r   )	r   r	   r   rX  rI   r    r   rK   rM   )r?   rl   rm   s      r(   )test_where_producing_ea_cond_for_np_dtyper  +  ss    	BEE1W=IN	OBXX@AFbeeRUUA&g6bffa^LH &+r*   replacementgMbP?snakei  r   r   c                 f   [        / SQ[        R                  SS //5      nU(       a<  U S;  a6  UR                  R	                  [
        R                  R                  SS95        UR                  [        R                  " U5      U 5      n[        / SQU SU //5      n[        R                  " XE5        g )N)r   g(,*0Enineg?)Nr  z'Can't set non-string into string column)reason)r   r    r   node
add_markerr^   rz  xfailrI   r   r  rK   rM   )r  using_infer_stringr$   r?   rl   rm   s         r(   test_where_int_overflowr  5  s    
 
'"&&#t)<=	>Bk@KK%NO	
 XXbjjnk2F-S+/NOPH&+r*   c                      [        SS/SS/S.5      n [        SS/SS/S.5      nU R                  USS9  [        S	[        R                  /[        R                  S/S.5      n[        R
                  " X5        g )
Nr   r   r   r   r   TFr   r7   )r   rI   r    r   rK   rM   )r?   rP   rm   s      r(   test_where_inplace_no_otherr  E  sm    	#s3*5	6BD%=t}=>DHHT4H 266{"&&#?@H"'r*   )-r   
hypothesisr   numpyr    r^   pandas.core.dtypes.commonr   pandasr   r   r   r   r	   r
   r   r   r   pandas._testing_testingrK   pandas._testing._hypothesisr   fixturer)   r@   rB   r  r  r  r  r  r  r  rz  r|  r  r  r  r  r  r  r  r  r  r8   r*   r(   <module>r     s"       / 	 	 	  ; NO
 P
Vr; r;j)&"&2, 	,:, D%=1-' 2-'`!$  ! !!,((*!9H, E4$q!0DE
,
,(r*   