
    bMhV4                     p   d dl Zd dlZd dlmZ d dlZd dlmZmZm	Z	m
Z
 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"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& Z-ej                            d'd(d)g          d*             Z.d+ Z/d, Z0d- Z1d. Z2d/ Z3dS )0    N)
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       g/var/www/html/test/jupyter/venv/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_upcastr1   (   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      r6   r   Kcannot set using a list-like indexer with a different length than the value)r   r6   r8   r   r7   )r7   r   r8   r6   r8      	   index)r   r   r   r   r   r   r-   r,   r   r   pytestraises
ValueErrorwherenanastypefloatr   )r   r/   r   r   msgresults         r   test_where_unsaferG   C   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<   r8   )r   r   randomdefault_rngstandard_normalrA   dropnar   r   absshaper=   reindexiloc)r   condrsrs2s2r   s         r   
test_whererU   {   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)   r7   r8   TFr9   )r   r   r8   )r   r   rI   rJ   rK   r>   r?   r@   rA   r/   r   r   )r   rQ   rE   r   s       r   test_where_errorrX      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r7   r   r8   )FTTr   r8   )r   r   rB   rA   r   r   )rY   r   rQ   r   rF   s        r   test_where_array_liker\      sg     	yyyADrvq!n%%HWWUU4[[!!F68,,,,,r   rQ   )r7   r   r7   )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)   rW   T)r   r>   r?   r@   rA   )rQ   r   rE   s      r   test_where_invalid_inputr`      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 )NrW   r[   Tr)   r7   )FTFTr   )
r   r>   r?   r@   rA   r   rB   r   r   array)rE   r   rQ   r   outs        r   test_where_ndframe_alignrd      s   
8CyyyA6D	z	-	-	-  	               q"&"&)**H
''&,,

C3)))8...//D	z	-	-	-  	               rvq"&)**H
''&,,

C3)))))s#   AAA-DDDc                  @   d } t          t          d          t                    }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                    }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          t          d                    |ddd<   t          g d          }t          j        ||           t          t          d
          t                    }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                    }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          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          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   abcr   slicer)      r   r8   )r   r7   r   abcdefr6   r   )r   br7   der'   )aro   cr   r7   r'   z	list-liker
   ro   ru   )r   r   objectr>   r?   r@   r   r   r   rC   r   r3   )rE   r   r   s      r   test_where_setitem_invalidrw      s   
	* 	* 
 	tE{{&)))A	zW	6	6	6 ! !eBii!A#! ! ! ! ! ! ! ! ! ! ! ! ! ! ! %((^^AacFiii  H188BH--x888 	tH~~V,,,A	zW	6	6	6 # #b		??!Aa%# # # # # # # # # # # # # # # 	tH~~V,,,AE!HH~~Aa!eH00011H1h''' 	tH~~V,,,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   "A99A= A=/#EE"%E""I		II""LLL""NNNsizer   r4   r   )TFFFFTFitemg       @boxc                 ,    t          j        | g          S N)r   rb   rh   s    r   rj   rj   ,  s    bhsmm r   c                     | gS r|   rg   rh   s    r   rj   rj   ,  s    s r   c                     | fS r|   rg   rh   s    r   rj   rj   ,  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 rg   rg   ).0iuse_itemr    ry   s      r   
<listcomp>z"test_broadcast.<locals>.<listcomp>7  s*    OOO;1h	&tAwOOOr   )
r   resizer   rD   r   	enumerater   r   rA   r   )	rx   r   ry   rz   	selectionr   r   rF   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   rI   rJ   rK   copyrA   r   r   rL   )r   rQ   rR   s      r   test_where_inplacer   H  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 )Nr8   r   r   r7   )r   r7   r   r   r7   r   r<   r   )r   r7   r   r   r7   r   r
   )r      r   r   r   r   )
r   r   r   pdconcatrA   r   rB   r   r   )s1rT   combrF   r   s        r   test_where_dupsr   W  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[   r7   Xr   r   rv   )r   YZ)r   rA   r   
isinstancestrr   r   rb   )r   ws     r   test_where_numeric_with_stringr   l  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 )
Nr7   r   r   r
   Fz<Downcasting behavior in Series and DataFrame methods 'where'r)   g      $@rv   )	r   r   rb   r   r-   r,   rA   r   rB   )r   serr   r   rE   rR   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 rg   )r   )r   ts     r   r   z)test_where_datetimetz.<locals>.<listcomp>  s    3331)A,,333r   zdatetime64[ns, UTC]r   FTr7   )r   rA   r   NaTr   r   )
timestampsr   rR   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 )Nr7   r   r   )r   r   arraysSparseArrayrA   r   r   )r   rF   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   rD   rA   r   r   )r   rF   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   rB   rA   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-01r8   )periodstzr   r7   r   )TTF)r   
_with_freqr   DatetimeIndexr   r   r   rb   rA   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   )4numpyr   r>   pandas.core.dtypes.commonr   pandasr   r   r   r   r   pandas._testing_testingr   r   r!   markparametrizeint8r5   int16int32r3   float32r1   rG   rU   rX   r   tuplerb   r\   r   r`   rd   rw   r   rB   finforD   maxminr   r   r   r   r   r   r   r   r   r   rg   r   r   <module>r      s        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	 
 
 
* * *.6( 6( 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   