
    Mh4                     8   S SK rS SKrS SKJr  S SKJr  S SKrS SKJ	r	J
r
JrJr  S SKJr  S rS r\R$                  R'                  S\R(                  \R*                  4\R,                  \R*                  4\R.                  \R*                  4\R0                  \R*                  4\R2                  \R2                  4\R*                  \R*                  4/5      S 5       rS	 rS
 rS r\R$                  R'                  S\\\R@                  \	/5      S 5       r!\R$                  R'                  S/ SQ\	" / SQ5      / SQ\
" S5      \RD                  \
" S5      //5      S 5       r#S r$\R$                  RK                  \" 5       SS9S 5       r&\R$                  R'                  S\'" SS5      5      \R$                  R'                  S/ SQSS/S//5      \R$                  R'                  S S!\RP                  \RR                  " \*5      RV                  \RR                  " \*5      RX                  /5      \R$                  R'                  S"S# S$ S% /5      S& 5       5       5       5       r-S' r.S( r/S) r0\R$                  R'                  S*S+S,/5      S- 5       r1S. r2S/ r3S0 r4S1 r5S2 r6g)3    N)using_pyarrow_string_dtype)
is_integer)Series	Timestamp
date_rangeisnac           	          [        [        R                  " S5      U S9nUS:  n[        SS5      X'   [        [	        [        SS5      5      [	        [        SS5      5      -   U S9n[
        R                  " X5        g N
   dtype         r   nparangerangelisttmassert_series_equal)any_signed_int_numpy_dtypesmaskexpecteds       Y/var/www/html/env/lib/python3.13/site-packages/pandas/tests/series/indexing/test_where.pytest_where_unsafe_intr      sh    ryy}$>?Aq5DAqkAGU1a[Dq"..(H
 1'    c                     [        [        R                  " S5      U S9nUS:  n[        SS5      X'   [	        [        SS5      5      [	        [        SS5      5      -   n[        X0S9n[
        R                  " X5        g r
   r   )float_numpy_dtyper   r   datar   s        r   test_where_unsafe_floatr"      se    ryy}$56Aq5DAqkAGatE!RL11Dd4H1'r   zdtype,expected_dtypec           	         [        [        R                  " S5      U S9n/ SQnUS:  n[        U[        [	        SS5      5      -   US9n[        R
                  " U 5      R                  [        R
                  " U5      R                  s=:X  a  S:X  a  O  OS O[        n[        R                  " USS9   X2U'   S S S 5        [        R                  " X%5        g ! , (       d  f       N%= f)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   *   s     	ryy}E*A&Fq5DftE!RL11HH 88E?288N#;#@#@GCG 	 	
 
	#	#D0D	E$ 
F1' 
F	Es   1C
C#c            	      v   [        [        R                  " S5      SS9n / SQnU S:  n[        [        [	        S5      5      U-   SS9n[
        R                  " [        SS	9   XU'   S S S 5        [
        R                  " X5        [        [        R                  " S5      SS9n U S:  n[	        S
S5      X'   [        [        [	        S
S5      5      [        [	        SS5      5      -   SS9n[
        R                  " X5        U R                  UR                  :X  d   e[        [        R                  " S5      SS9n U S:  nS/S-  X'   [        / SQS/S-  -   SS9n[
        R                  " X5        [        [        R                  " S5      5      n U S:  nSn[        R                  " [        US	9   / SQX'   S S S 5        [        R                  " [        US	9   S/S-  X'   S S S 5        [        / SQ5      n U R                  U S
:  [        R                  5      n[        [        R                  [        R                  SS/5      n[
        R                  " XS5        [        [	        S5      5      R                  [         5      n S U S'   U S   n[#        U5      (       d   e[        [	        S5      5      R                  [         5      n S X S:  '   U [#        U 5         n[        [        R                  S/S9n[
        R                  " XS5        g ! , (       d  f       GN= f! , (       d  f       GNk= f! , (       d  f       GNS= f)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   ryy}G,A!Fq5Dd58nv-Y?H		#	#M9M	N$ 
O1' 	ryy}G,Aq5DAqkAGd5A;'$uQ|*<<GLH1'77hnn$$$ryy}G,Aq5DcAgAG(A372'BH1'ryy}Aq5D
WC	z	-! 
. 
z	-#' 
. 	|AWWQUBFF#Frvvrvvq!,-H6, 	uRy  'AAaDqTF<<<uRy  'AA!eHtAwZFbffQC(H6,[ 
O	N, 
.	- 
.	-s$    L,L	L)
L
L&)
L8c                  p   [        [        R                  R                  S5      R	                  S5      5      n U S:  nU R                  U5      R                  5       nX   n[        R                  " X#5        U R                  X* 5      n[        R                  " X R                  5       5        U R                  U5      nU R                  UR                  :X  d   eX Ld   e[        / SQU R                  S9nU R                  5       * nXA   R                  UR                  S S 5      R                  UR                  5      nUR                  US S 5      n[        R                  " X%5        UR                  5       nUS   UR                  S'   UR                  US S U* 5      n[        R                  " X%5        g )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[   ryy$$Q'77:;Aq5D	
			B
'C2#	
r	B2uuw'	
B77bhh;; 3177CD557Bx!-55bhh?H	$r(	B2(vvxH!uHMM!	$r(RC	 B2(r   c                     [        [        R                  R                  S5      R	                  S5      5      n U S:  nSn[
        R                  " [        US9   U R                  S5        S S S 5        [
        R                  " [        US9   U R                  US S R                  U * 5        S S S 5        [        SS/5      n SS/U SS	/'   [        SS/5      n[        R                  " X5        S
n[
        R                  " [        US9   / SQU SS	/'   S S S 5        [
        R                  " [        US9   / U SS	/'   S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NZ= f! , (       d  f       g = f)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,   ryy$$Q'77:;Aq5D
8C	z	-	
 
.	z	-	Ra!$ 
. 	1vA1vAtUmq!f~H1' XC	z	-$4- 
. 
z	-4- 
.	-! 
.	-	-	- 
.	- 
.	-s0   E!E
E&3E7
E
E#&
E47
Fklassc                     [        / SQ5      n/ SQn[        [        R                  SS/5      nUR                  U " U5      5      n[        R
                  " XC5        g )Nr8   r   r9   )FTTr   r9   )r   r   rC   rB   r   r   )rZ   r   rR   r   rG   s        r   test_where_array_liker]      sG     	yADrvvq!n%HWWU4[!F6,r   rR   )r8   r   r8   )r   r   r   )TrueFalser^   z
2017-01-01z
2017-01-02c                 8   [        / SQ5      nSn[        R                  " [        US9   UR	                  U 5        S S S 5        Sn[        R                  " [        US9   UR	                  S/5        S S S 5        g ! , (       d  f       NE= f! , (       d  f       g = f)Nr\   z(Boolean array expected for the conditionr*   rX   T)r   r?   r@   rA   rB   )rR   r   rF   s      r   test_where_invalid_inputra      sm     	yA
4C	z	-	 
. 9C	z	-	 
.	-	 
.	- 
.	-s   A:B:
B
Bc                     Sn [        / SQ5      nS/n[        R                  " [        U S9   UR	                  U5        S S S 5        [        S[
        R                  [
        R                  /5      nUR	                  [        U5      5      n[        R                  " XC5        [
        R                  " / SQ5      n[        R                  " [        U S9   UR	                  U5        S S S 5        [        [
        R                  S[
        R                  /5      nUR	                  [        U5      5      n[        R                  " XC5        g ! , (       d  f       GN= f! , (       d  f       N{= f)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yA6D	z	-	 
. q"&&"&&)*H
''&,
C3)88./D	z	-	 
. rvvq"&&)*H
''&,
C3) 
.	- 
.	-s   EE
E
E&zcan't set ints into string)reasonc                     S n [        [        S5      5      n[        R                  " [        U " S5      S9   [        [        S5      5      USS& S S S 5        [        [        S5      5      USS& [        / SQ5      n[        R                  " UR                  [        R                  5      U5        [        [        S	5      5      n[        R                  " [        U " S5      S9   [        [        S5      5      USS
S2'   S S S 5        [        [        S	5      5      n[        [        S5      5      USS
S2'   [        / SQ5      n[        R                  " X5        [        [        S	5      5      n[        R                  " [        U " S5      S9   [        [        S5      5      US S& S S S 5        [        [        S5      5      USS& [        / SQ5      n[        R                  " X5        [        [        S5      5      n[        R                  " [        U " S5      S9   [        [        S5      5      U/ SQ'   S S S 5        [        [        S5      5      n[        R                  " [        U " S5      S9   [        [        S5      5      U/ SQ'   S S S 5        [        [        S5      5      n[        [        S5      5      US'   [        [        [        S5      5      SS/5      n[        R                  " X5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNy= f! , (       d  f       N= f! , (       d  f       N= f)Nc                     SU  S3$ )Nzcannot set using a z/ indexer with a different length than the value xs    r   <lambda>,test_where_setitem_invalid.<locals>.<lambda>   s    's +* *r   abcslicer*      r   r9   )r   r8   r   abcdefr7   r   )r   br8   der(   )arr   cr   r8   r(   z	list-liker   rr   rx   )r   r   r?   r@   rA   r   r   r   rD   r   r4   )rF   r   r   s      r   test_where_setitem_invalidry      sP   	* 
 	tE{A	zW	6eBi!A 
7 %(^AaFi H188BHH-x8 	tH~A	zW	6b	?!Aa% 
7 	tH~AE!H~Aa!eH01H1' 	tH~A	zW	6eBi#2 
7 E!H~AbH01H1' 	tE{A	z[)9	:E"I) 
; 	tE{A	z[)9	:E!H~) 
; 	tE{Ab	?AaDtE"IS12H1'W 
7	6 
7	6 
7	6 
;	:
 
;	:s;   K/"L	LL%+L6/
K>
L
L"%
L36
Msizer   r5   r   )TFFFFTFitemg       @boxc                 0    [         R                  " U /5      $ N)r   rc   rj   s    r   rl   rl   /  s    bhhsmr   c                     U /$ r~   ri   rj   s    r   rl   rl   /  s    sr   c                     U 4$ r~   ri   rj   s    r   rl   rl   /  s    qdr   c                    [         R                  " X5      n[         R                  " U [        S9n[	        [        U5       VVs/ s H  u  pgU(       a  UOXV   PM     snn5      n[	        U5      n	X)U'   [        R                  " X5        [	        U5      n	U	R                  U) U" U5      5      n
[        R                  " X5        [	        U5      n	U	R                  XC" U5      5      n
[        R                  " X5        g s  snnf Nr   )
r   resizer   rE   r   	enumerater   r   rB   r   )rz   r   r{   r|   	selectionr!   iuse_itemr   r   rG   s              r   test_broadcastr   %  s     		$%I99T'D :CI:NO:N;1tw	&:NOH 	tAiL1'tAWWiZT+F6,tAVVIs4y)F6, 	Ps   C<
c                     [        [        R                  R                  S5      R	                  S5      5      n U S:  nU R                  5       nUR                  USS9  [        R                  " UR                  5       X   5        [        R                  " X R                  U5      5        U R                  5       nUR                  X* SS9  [        R                  " X R                  X* 5      5        g )Nr   r   r   T)inplace)
r   r   rJ   rK   rL   copyrB   r   r   rM   )r   rR   rS   s      r   test_where_inplacer   K  s    ryy$$Q'77:;Aq5D	
BHHT4H 299;02wwt}-	
BHHT2tH$2wwtR01r   c                     [        [        [        S5      5      5      n [        [        [        S5      5      5      n[        R                  " X/5      nUR                  US:  5      n[        SS[        R                  SS[        R                  // SQS9n[        R                  " X45        SX"S:  '   [        / SQ/ SQS9n[        R                  " X$5        X"S:  ==   S	-  ss'   [        / S
Q/ SQS9n[        R                  " X$5        g )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  s     
U1X	B	U1X	B99bXDZZq!Fq!RVVQ2662:LMH6, DN(0BCH4*NbN*2DEH4*r   c                  N   [        / SQ5      n U R                  U S:  S5      n[        US   5      (       a   e[        US   5      (       d   e[        US   5      (       d   e[        US   [        5      (       d   eUR
                  S:X  d   eU R                  U S:  / SQ5      n[        US   5      (       a   e[        US   5      (       d   e[        US   5      (       d   e[        US   [        5      (       d   eUR
                  S:X  d   eU R                  U S:  [        R                  " / SQ5      5      n[        US   5      (       a   e[        US   5      (       d   e[        US   5      (       d   e[        US   [        5      (       d   eUR
                  S:X  d   eg )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   yA	AsA!A$adadadC    77h	A'A!A$adadadC    77h	Arxx01A!A$adadadC    77hr   r   ztimedelta64[ns]zdatetime64[ns]c                    [        SS/U S9n[        SS/5      n[        R                  " SS/5      nSn[        R                  " [
        US9   UR                  USS/5      nS S S 5        [        R                  " WU5        [        R                  " [
        US9   UR                  US5      nS S S 5        [        R                  " XR5        [        R                  " [
        US9   UR                  US5      nS S S 5        [        R                  " XR5        [        R                  " [
        US9   UR                  USS/5      nS S S 5        [        R                  " XR5        UR                  US[        R                  /5      n[        S[        R                  /S	S9n[        R                  " XR5        g ! , (       d  f       GNY= f! , (       d  f       GN = f! , (       d  f       N= f! , (       d  f       N= f)
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     sk   
!Qu
%Cr2hH88UEN#D
HC		#	#M	=YYtb"X& 
>2x(		#	#M	=YYtR  
>2(		#	#M	=YYtT" 
>2(		#	#M	=YYtdD\* 
>2(	4$	(Br266l(3H2(% 
>	= 
>	= 
>	= 
>	=s0   F4G$G.G)4
G
G
G&)
G7c                      SS/n [        U  Vs/ s H  n[        U5      PM     snSS9nUR                  [        SS/5      5      n[        [        R                  US   /SS9n[
        R                  " X45        g s  snf )Nz2016-12-31 12:00:04+00:00z 2016-12-31 12:00:04.010000+00:00zdatetime64[ns, UTC]r   FTr8   )r   r   rB   r   NaTr   r   )
timestampstr   rS   r   s        r   test_where_datetimetzr     sq    -/QRJ

3
1)A,
3;P
QC	65$-(	)Brvvs1v&.CDH2( 4s   A9c                     [        [        R                  R                  SS/5      5      n U R	                  U S:  S5      n[        [        R                  R                  SS/5      5      n[
        R                  " X5        g )Nr8   r   r   )r   r   arraysSparseArrayrB   r   r   )r   rG   r   s      r   test_where_sparser     s^    
&&1v.
/CYYsax#Fbii++QF34H6,r   c                  n    [        / [        S9n U R                  / 5      n[        R                  " X5        g r   )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6'r   c           	          U " [         R                  " SSSS[        R                  // SQS9SS9nU " / SQSS9nUR	                  US:g  5      n[
        R                  " X5        g )	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     sY    

S#sBFF3PC 
2*	EB
((29
COOCr   c                 0   U n[        SSUS9R                  S 5      n[        R                  " US   US   [        R                  /5      n[        R
                  " US   [        R                  US   /5      n[        R                  " / SQ5      nUR                  XT5      n[        R                  " Xb5        UR                  R                  XT5      n[        R                  " XbR                  5        [        U5      R                  XT5      n[        R                  " U[        U5      5        [        R                   " U5      R                  US S 2S 4   [        R                   " U5      5      n[        R"                  " U[        R                   " U5      5        g )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     s*   	B	L!	3	>	>t	DBbeRUBFF34ENNBqE2662a512E88'(D ++d
"C#" ++

T
)C""31 -

d
*C3r
+ ,,u

#
#DDM2<<3F
GC#r||B/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   xfailry   r   rC   finforE   maxminr   r   r   r   r   r   r   r   r   r   ri   r   r   <module>r      s     5 0   
(( 	"**	2::	2::	2::	RZZ 	RZZ 
(
( 5-p):2 4&"AB- C- 
y!	<	 "&&)L*AB	

*. -/8TU6( V6(r q!-
/$H 
S"&&"((5/--rxx/B/BC
 	#]NC- .-42+*4 #46F"GH) I)6)-(1r   