
    [6g4                        d dl Zd dlZd dlmZ d dlmZ d dlZd dlm	Z	m
Z
mZmZ d dlmZ d Zd Zej                            dej        ej        fej        ej        fej        ej        fej        ej        fej        ej        fej        ej        fg          d             Zd	 Zd
 Zd Zej                            deeej         e	g          d             Z!ej                            dg d e	g d          g d e
d          ej"         e
d          gg          d             Z#d Z$ej        %                     e            d          d             Z&ej                            d e'dd                    ej                            dg dddgdgg          ej                            d d!ej(         ej)        e*          j+         ej)        e*          j,        g          ej                            d"d# d$ d% g          d&                                                 Z-d' Z.d( Z/d) Z0ej                            d*d+d,g          d-             Z1d. Z2d/ Z3d0 Z4d1 Z5d2 Z6dS )3    N)using_pyarrow_string_dtype)
is_integer)Series	Timestamp
date_rangeisnac           	      <   t          t          j        d          |           }|dk     }t          dd          ||<   t          t	          t          dd                    t	          t          dd                    z   |           }t          j        ||           d S N
   dtype         r   nparangerangelisttmassert_series_equal)any_signed_int_numpy_dtypesmaskexpecteds       f/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/pandas/tests/series/indexing/test_where.pytest_where_unsafe_intr      s    ry}}$>???Aq5DAqkkAdGU1a[[Dq"...(  H
 1h'''''    c                 @   t          t          j        d          |           }|dk     }t          dd          ||<   t	          t          dd                    t	          t          dd                    z   }t          ||           }t          j        ||           d S r
   r   )float_numpy_dtyper   r   datar   s        r   test_where_unsafe_floatr"      s    ry}}$5666Aq5DAqkkAdGatE!RLL111Dd"3444H1h'''''r   zdtype,expected_dtypec           	         t          t          j        d          |           }g d}|dk     }t          |t          t	          dd                    z   |          }t          j        |           j        t          j        |          j        cxk    rdk    rn nd nt          }t          j	        |d          5  |||<   d d d            n# 1 swxY w Y   t          j
        ||           d S )Nr   r   )      @      @      @      @g      @r   fincompatible dtypematch)r   r   r   r   r   r   kindFutureWarningr   assert_produces_warningr   )r   expected_dtyper   valuesr   r   warns          r   test_where_unsafe_upcastr2   *   s4    	ry}}E***A&&&Fq5DftE!RLL111HHHH 8E??28N#;#;#@GGGGCGGGGG 	 	
 
	#D0D	E	E	E  $              1h'''''s   :CCCc            	      <   t          t          j        d          d          } g d}| dk    }t          t          t	          d                    |z   d          }t          j        t          d	          5  || |<   d d d            n# 1 swxY w Y   t          j        | |           t          t          j        d          d          } | dk     }t	          d
d          | |<   t          t          t	          d
d                    t          t	          dd                    z   d          }t          j        | |           | j	        |j	        k    sJ t          t          j        d          d          } | dk    }dgdz  | |<   t          g ddgdz  z   d          }t          j        | |           t          t          j        d                    } | dk    }d}t          j        t          |	          5  g d| |<   d d d            n# 1 swxY w Y   t          j        t          |	          5  dgdz  | |<   d d d            n# 1 swxY w Y   t          g d          } |                     | d
k    t          j                  }t          t          j        t          j        ddg          }t          j        ||           t          t	          d                                        t                     } d | d<   | d         }t#          |          sJ t          t	          d                                        t                     } d | | dk    <   | t#          |                    }t          t          j        dg          }t          j        ||           d S )Nr   int64r   )r$   r%   r&   r'   r      float64r)   r*   r   r   r      )r      r      r7   r   Kcannot set using a list-like indexer with a different length than the value)r   r7   r9   r   r8   )r8   r   r9   r7   r9      	   index)r   r   r   r   r   r   r.   r-   r   r   pytestraises
ValueErrorwherenanastypefloatr   )r   r0   r   r   msgresults         r   test_where_unsaferH   E   s   ry}}G,,,A!!!Fq5Dd588nnv-Y???H		#M9M	N	N	N  $              1h''' 	ry}}G,,,Aq5DAqkkAdGd5A;;''$uQ||*<*<<GLLLH1h'''7hn$$$$ry}}G,,,Aq5DcAgAdG(((A372'BBBH1h'''ry}}Aq5D
WC	z	-	-	- " "!//$" " " " " " " " " " " " " " " 
z	-	-	-  #'$               	|||AWWQUBF##Frvrvq!,--H68,,, 	uRyy  ''AAaDqTF<<uRyy  ''AAa!eHtAwwZFbfQC(((H68,,,,,s6   7B		BB;HHH5
IIIc                     t          t          j                            d                              d                    } | dk    }|                     |                                          }| |         }t          j        ||           |                     ||            }t          j        || 	                                           |                     |          }| j
        |j
        k    sJ || usJ t          g d| j                  }| 	                                 }||                             |j        d d                                       |j                  }|                    |d d                   }t          j        ||           |	                                }|d         |j        d<   |                    |d d         |           }t          j        ||           d S )Nr   r   r   )TFFTFr=   r9   )r   r   randomdefault_rngstandard_normalrB   dropnar   r   absshaper>   reindexiloc)r   condrsrs2s2r   s         r   
test_whererV   }   s   ry$$Q''77::;;Aq5D	
				B
D'C2s###	
r		B2quuww'''	
B7bhQ;;;; 33317CCCD5577B$x!--55bh??H	$rr(		B2x(((vvxxH!uHM!	$rr(RC	 	 B2x(((((r   c                  D   t          t          j                            d                              d                    } | dk    }d}t          j        t          |          5  |                     d           d d d            n# 1 swxY w Y   t          j        t          |          5  |                     |d d         j	        |             d d d            n# 1 swxY w Y   t          ddg          } ddg| dd	g<   t          ddg          }t          j        | |           d
}t          j        t          |          5  g d| dd	g<   d d d            n# 1 swxY w Y   t          j        t          |          5  g | dd	g<   d d d            d S # 1 swxY w Y   d S )Nr   r   r   ,Array conditional must be same shape as selfr*   r8   r9   TFr:   )r   r   r9   )r   r   rJ   rK   rL   r?   r@   rA   rB   r0   r   r   )r   rR   rF   r   s       r   test_where_errorrY      s   ry$$Q''77::;;Aq5D
8C	z	-	-	-  	


              	z	-	-	- % %	RaR!$$$% % % % % % % % % % % % % % % 	1vA1vAtUmq!f~~H1h''' XC	z	-	-	- % %$994-% % % % % % % % % % % % % % % 
z	-	-	-  4-                 sH   #BB	B	+%CC #C 
EE!E FFFklassc                     t          g d          }g d}t          t          j        ddg          }|                     | |                    }t	          j        ||           d S )Nr8   r   r9   )FTTr   r9   )r   r   rC   rB   r   r   )rZ   r   rR   r   rG   s        r   test_where_array_liker]      sg     	yyyADrvq!n%%HWWUU4[[!!F68,,,,,r   rR   )r8   r   r8   )r   r   r   )TrueFalser^   z
2017-01-01z
2017-01-02c                 T   t          g d          }d}t          j        t          |          5  |                    |            d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                    dg           d d d            d S # 1 swxY w Y   d S )Nr\   z(Boolean array expected for the conditionr*   rX   T)r   r?   r@   rA   rB   )rR   r   rF   s      r   test_where_invalid_inputra      s$    	yyyA
4C	z	-	-	-  	               9C	z	-	-	-  	                 s#   AAA9BB!$B!c                     d} t          g d          }dg}t          j        t          |           5  |                    |           d d d            n# 1 swxY w Y   t          dt
          j        t
          j        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        dt
          j        g          }|                    t          |                    }t          j        ||           d S )NrX   r\   Tr*   r8   )FTFTr   )
r   r?   r@   rA   rB   r   rC   r   r   array)rF   r   rR   r   outs        r   test_where_ndframe_alignre      s   
8CyyyA6D	z	-	-	-  	               q"&"&)**H
''&,,

C3)))8...//D	z	-	-	-  	               rvq"&)**H
''&,,

C3)))))s#   AAA-DDDzcan't set ints into string)reasonc                     d } t          t          d                    }t          j        t           | d                    5  t          t          d                    |dd<   d d d            n# 1 swxY w Y   t          t          d                    |dd<   t          g d          }t          j        |                    t          j
                  |           t          t          d	                    }t          j        t           | d                    5  t          t          d                    |dd
d<   d d d            n# 1 swxY w Y   t          t          d	                    }t          t          d                    |dd
d<   t          g d          }t          j        ||           t          t          d	                    }t          j        t           | d                    5  t          t          d                    |d d<   d d d            n# 1 swxY w Y   t          t          d                    |dd<   t          g d          }t          j        ||           t          t          d                    }t          j        t           | d                    5  t          t          d                    |g d<   d d d            n# 1 swxY w Y   t          t          d                    }t          j        t           | d                    5  t          t          d                    |g d<   d d d            n# 1 swxY w Y   t          t          d                    }t          t          d                    |d<   t          t          t          d                    ddg          }t          j        ||           d S )Nc                     d|  dS )Nzcannot set using a z/ indexer with a different length than the value xs    r   <lambda>z,test_where_setitem_invalid.<locals>.<lambda>   s     * * * * r   abcslicer*      r   r9   )r   r8   r   abcdefr7   r   )r   br8   der(   )arq   cr   r8   r(   z	list-liker   rq   rw   )r   r   r?   r@   rA   r   r   r   rD   r   r4   )rF   r   r   s      r   test_where_setitem_invalidrx      s   	* 	* 
 	tE{{A	zW	6	6	6 ! !eBii!A#! ! ! ! ! ! ! ! ! ! ! ! ! ! ! %((^^AacFiii  H188BH--x888 	tH~~A	zW	6	6	6 # #b		??!Aa%# # # # # # # # # # # # # # # 	tH~~AE!HH~~Aa!eH00011H1h''' 	tH~~A	zW	6	6	6 ! !eBii#2#! ! ! ! ! ! ! ! ! ! ! ! ! ! ! E!HH~~AbeH00011H1h''' 	tE{{A	z[)9)9	:	:	: ' 'E"II)))' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 	tE{{A	z[)9)9	:	:	: & &E!HH~~)))& & & & & & & & & & & & & & & 	tE{{Ab		??AaDtE"IIS122H1h'''''sZ   "A22A69A6!#EEE?"H--H14H1?"K--K14K18"M&&M*-M*sizer   r5   r   )TFFFFTFitemg       @boxc                 ,    t          j        | g          S N)r   rc   rj   s    r   rl   rl   /  s    bhsmm r   c                     | gS r}   ri   rj   s    r   rl   rl   /  s    s r   c                     | fS r}   ri   rj   s    r   rl   rl   /  s    qd r   c                    t          j        ||           }t          j        | t                    t	          fdt          |          D                       }t	                    }||<   t          j        ||           t	                    }|                    |  |                    }t          j        ||           t	                    }|	                    | |                    }t          j        ||           d S )Nr   c                 .    g | ]\  }}|rn|         S ri   ri   ).0iuse_itemr!   rz   s      r   
<listcomp>z"test_broadcast.<locals>.<listcomp>:  s*    OOO;1h	&tAwOOOr   )
r   resizer   rE   r   	enumerater   r   rB   r   )	ry   r   rz   r{   	selectionr   r   rG   r!   s	     `     @r   test_broadcastr   %  s    	$%%I9T'''D OOOOO)I:N:NOOO H 	tAAiL1h'''tAWWiZT++F68,,,tAVVIss4yy))F68,,,,,r   c                  >   t          t          j                            d                              d                    } | dk    }|                                 }|                    |d           t          j        |	                                | |                    t          j        ||                     |                     |                                 }|                    ||  d           t          j        ||                     ||                       d S )Nr   r   r   T)inplace)
r   r   rJ   rK   rL   copyrB   r   r   rM   )r   rR   rS   s      r   test_where_inplacer   K  s    ry$$Q''77::;;Aq5D	
BHHT4H   299;;$0002qwwt}}---	
BHHTA2tH$$$2qwwtaR0011111r   c                  n   t          t          t          d                              } t          t          t          d                              }t          j        | |g          }|                    |dk               }t          ddt          j        ddt          j        gg d          }t          j	        ||           d||dk     <   t          g dg d          }t          j	        ||           ||dk     xx         d	z  cc<   t          g d
g d          }t          j	        ||           d S )Nr9   r   r   r8   )r   r8   r   r   r8   r   r=   r   )r   r8   r   r   r8   r   r   )r      r   r   r   r   )
r   r   r   pdconcatrB   r   rC   r   r   )s1rU   combrG   r   s        r   test_where_dupsr   Z  s0    
U1XX		B	U1XX		B9b"XDZZq!!Fq!RVQ262:L:L:LMMMH68,,, DN(((0B0B0BCCCH4***NNNbNNN***2D2D2DEEEH4*****r   c                     t          g d          } |                     | dk    d          }t          |d                   rJ t          |d                   sJ t          |d                   sJ t          |d         t                    sJ |j        dk    sJ |                     | dk    g d          }t          |d                   rJ t          |d                   sJ t          |d                   sJ t          |d         t                    sJ |j        dk    sJ |                     | dk    t          j        g d                    }t          |d                   rJ t          |d                   sJ t          |d                   sJ t          |d         t                    sJ |j        dk    sJ d S )Nr\   r8   Xr   r   object)r   YZ)r   rB   r   
isinstancestrr   r   rc   )r   ws     r   test_where_numeric_with_stringr   o  s   yyyA	AsA!A$adadadC     7h	A''A!A$adadadC     7h	Arx0011A!A$adadadC     7hr   r   ztimedelta64[ns]zdatetime64[ns]c                    t          ddg|           }t          ddg          }t          j        ddg          }d}t          j        t
          |          5  |                    |ddg          }d d d            n# 1 swxY w Y   t          j        ||           t          j        t
          |          5  |                    |d          }d d d            n# 1 swxY w Y   t          j        ||           t          j        t
          |          5  |                    |d          }d d d            n# 1 swxY w Y   t          j        ||           t          j        t
          |          5  |                    |ddg          }d d d            n# 1 swxY w Y   t          j        ||           |                    |dt          j        g          }t          dt          j        gd	          }t          j        ||           d S )
Nr8   r   r   r   Fz<Downcasting behavior in Series and DataFrame methods 'where'r*   g      $@r   )	r   r   rc   r   r.   r-   rB   r   rC   )r   serr   r   rF   rS   s         r   test_where_datetimelike_coercer     s   
!Qu
%
%
%Cr2hH8UEN##D
HC		#M	=	=	= ' 'YYtb"X&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '2x(((		#M	=	=	= ! !YYtR  ! ! ! ! ! ! ! ! ! ! ! ! ! ! !2x(((		#M	=	=	= # #YYtT""# # # # # # # # # # # # # # #2x(((		#M	=	=	= + +YYtdD\**+ + + + + + + + + + + + + + +2x(((	4$	(	(Br26l(333H2x(((((sH   A==BB8CC"CD99D= D=4FF Fc                      ddg} t          d | D             d          }|                    t          ddg                    }t          t          j        |d         gd          }t	          j        ||           d S )	Nz2016-12-31 12:00:04+00:00z 2016-12-31 12:00:04.010000+00:00c                 ,    g | ]}t          |          S ri   )r   )r   ts     r   r   z)test_where_datetimetz.<locals>.<listcomp>  s    3331)A,,333r   zdatetime64[ns, UTC]r   FTr8   )r   rB   r   NaTr   r   )
timestampsr   rS   r   s       r   test_where_datetimetzr     s    -/QRJ
33
333;P
Q
Q
QC	65$-((	)	)Brvs1v&.CDDDH2x(((((r   c                     t          t          j                            ddg                    } |                     | dk    d          }t          t          j                            ddg                    }t          j        ||           d S )Nr8   r   r   )r   r   arraysSparseArrayrB   r   r   )r   rG   r   s      r   test_where_sparser     st    
&&1v..
/
/CYYsax##Fbi++QF3344H68,,,,,r   c                      t          g t                    } |                     g           }t          j        ||            d S )Nr   )r   rE   rB   r   r   )r   rG   s     r   =test_where_empty_series_and_empty_cond_having_non_bool_dtypesr     s<    
5
!
!
!CYYr]]F63'''''r   c           	           | t          j        ddddt          j        gg d          d          } | g dd          }|                    |dk              }t          j        ||           d S )	NAB)r   r   C)
categoriescategoryr   )r   r   r   r   r   r   )r   Categoricalr   rC   rB   r   assert_equal)frame_or_seriesexpdfress       r   test_where_categoricalr     s    
/
S#sBF3PPP  C 
222*	E	E	EB
((29

COCr   c                 T   | }t          dd|                              d           }t          j        |d         |d         t          j        g          }t          j        |d         t          j        |d         g          }t          j        g d          }|                    ||          }t          j
        ||           |j                            ||          }t          j        ||j                   t          |                              ||          }t          j        |t          |                     t          j        |                              |d d d f         t          j        |                    }t          j        |t          j        |                     d S )Nz
2001-01-01r9   )periodstzr   r8   r   )TTF)r   
_with_freqr   DatetimeIndexr   r   r   rc   rB   r   assert_index_equal_data_whereassert_datetime_array_equalr   r   	DataFrameassert_frame_equal)tz_naive_fixturer   drlvalsrvalsr   r   s          r   #test_where_datetimelike_categoricalr     sf   	B	L!	3	3	3	>	>t	D	DBbeRUBF344ENBqE262a5122E8'''((D ++dE
"
"C#r""" +

T5
)
)C"3111 --

dE
*
*C3r

+++ ,u


#
#DDM2<3F3F
G
GC#r|B//00000r   )7numpyr   r?   pandas._configr   pandas.core.dtypes.commonr   pandasr   r   r   r   r   pandas._testing_testingr   r   r"   markparametrizeint8r6   int16int32r4   float32r2   rH   rV   rY   r   tuplerc   r]   r   ra   re   xfailrx   r   rC   finforE   maxminr   r   r   r   r   r   r   r   r   r   ri   r   r   <module>r      s        5 5 5 5 5 5 0 0 0 0 0 0                     
( 
( 
(( ( ( 	"*	2:	2:	2:	RZ 	RZ 
 
( (
 
( 5- 5- 5-p) ) ):  2 4&"ABB- - CB- 
		yyy!!!	<	 	 "&))L*A*AB	 
 
 
* * *. --//8TUU6( 6( VU6(r q!--
///$H  
S"&("(5//-xrx/BC 
 	##]]NNC - -    .--42 2 2+ + +*  4 #46F"GHH) ) IH)6) ) )- - -( ( (  1 1 1 1 1r   