
    d01                     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       c/var/www/html/t/fyr/venv311/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        ||           d S )Nr
   r   )      @      @      @      @g      @r   )r   r   r   r   r   r   r   )r   expected_dtyper   valuesr   r   s         r   test_where_unsafe_upcastr)   (   s{     	ry}}E***A&&&Fq5DftE!RLL111HHHHAdG1h'''''r   c            	         t          t          j        d          d          } g d}| dk    }t          t          t	          d                    |z   d          }|| |<   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   Kcannot set using a list-like indexer with a different length than the valuematch)r   r.   r0   r   r/   )r/   r   r0   r.   r0      	   index)r   r   r   r   r   r   r   r   pytestraises
ValueErrorwherenanastypefloatr   )r   r(   r   r   msgresults         r   test_where_unsaferA   =   s   ry}}G,,,A!!!Fq5Dd588nnv-Y???HAdG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,,,,,s$   GG #G 
HHHc                     t          t          j                            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   )TFFTFr6   r0   )r   r   randomrandnr;   dropnar   r   absshaper7   reindexiloc)r   condrsrs2s2r   s         r   
test_whererN   t   s   ryq!!""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                     t          t          j                            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   ,Array conditional must be same shape as selfr2   r/   r0   r   TFr1   )r   r   r0   )r   r   rC   rD   r8   r9   r:   r;   r(   r   r   )r   rJ   r?   r   s       r   test_where_errorrQ      s   ryq!!""Aq5D
8C	z	-	-	-  	


              	z	-	-	- % %	RaR!$$$% % % % % % % % % % % % % % % 	1vA1vAtUmq!f~~H1h''' XC	z	-	-	- % %$994-% % % % % % % % % % % % % % % 
z	-	-	-  4-                 sH   A22A69A6%C		CC1
EEE-FF	Fklassc                     t          g d          }g d}t          t          j        ddg          }|                     | |                    }t	          j        ||           d S )Nr/   r   r0   )FTTr   r0   )r   r   r<   r;   r   r   )rR   r   rJ   r   r@   s        r   test_where_array_likerU      sg     	yyyADrvq!n%%HWWUU4[[!!F68,,,,,r   rJ   )r/   r   r/   )r   r   r   )TrueFalserV   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 )NrT   z(Boolean array expected for the conditionr2   rP   T)r   r8   r9   r:   r;   )rJ   r   r?   s      r   test_where_invalid_inputrY      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 )NrP   rT   Tr2   r/   )FTFTr   )
r   r8   r9   r:   r;   r   r<   r   r   array)r?   r   rJ   r   outs        r   test_where_ndframe_alignr]      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          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slicer2      r   r0   )r   r/   r   abcdefr.   r   )r   br/   def)arh   cr   r/   rk   z	list-liker
   rh   ro   )r   r   r8   r9   r:   r   r   r   r=   r   r+   )r?   r   r   s      r   test_where_setitem_invalidrp      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   r,   r   )TFFFFTFitemg       @boxc                 ,    t          j        | g          S N)r   r[   ra   s    r   rc   rc   %  s    bhsmm r   c                     | gS ru   r`   ra   s    r   rc   rc   %  s    s r   c                     | fS ru   r`   ra   s    r   rc   rc   %  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 r`   r`   ).0iuse_itemr    rr   s      r   
<listcomp>z"test_broadcast.<locals>.<listcomp>0  s*    OOO;1h	&tAwOOOr   )
r   resizer   r>   r   	enumerater   r   r;   r   )	rq   r   rr   rs   	selectionr   r   r@   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k    }|                                 }|                    |d           t          j        |                                | |                    t          j        ||                     |                     |                                 }|                    ||  d           t          j        ||                     ||                       d S )Nr   r   T)inplace)	r   r   rC   rD   copyr;   r   r   rE   )r   rJ   rK   s      r   test_where_inplacer   A  s    ryq!!""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 )Nr0   r   r   r/   )r   r/   r   r   r/   r   r6   r   )r   r/   r   r   r/   r   r
   )r      r   r   r   r   )
r   r   r   pdconcatr;   r   r<   r   r   )s1rM   combr@   r   s        r   test_where_dupsr   P  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 )NrT   r/   Xr   r   object)r   YZ)r   r;   r   
isinstancestrr   r   r[   )r   ws     r   test_where_numeric_with_stringr   e  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                 n   t          ddg|           }t          ddg          }t          j        ddg          }|                    |ddg          }t	          j        ||           |                    |d          }t	          j        ||           |                    |d          }t	          j        ||           |                    |ddg          }t	          j        ||           |                    |dt          j        g          }t          dd gd          }t	          j        ||           d S )Nr/   r   r   r
   Fg      $@r   )r   r   r[   r;   r   r   r<   )r   serr   r   rK   s        r   test_where_datetimelike_coercer     s$   
!Qu
%
%
%Cr2hH8UEN##D	4"b	"	"B2x(((	4		B2x(((	4		B2x(((	4$	&	&B2x(((	4$	(	(Br4j111H2x(((((r   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 r`   )r   )rz   ts     r   r}   z)test_where_datetimetz.<locals>.<listcomp>  s    3331)A,,333r   zdatetime64[ns, UTC]r   FTr/   )r   r;   r   NaTr   r   )
timestampsr   rK   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 )Nr/   r   r   )r   r   arraysSparseArrayr;   r   r   )r   r@   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   r>   r;   r   r   )r   r@   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   r<   r;   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-01r0   )periodstzr   r/   r   )TTF)r   
_with_freqr   DatetimeIndexr   r   r   r[   r;   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   r8   pandas.core.dtypes.commonr   pandasr   r   r   r   r   pandas._testing_testingr   r   r!   markparametrizeint8r-   int16int32r+   float32r)   rA   rN   rQ   r   tupler[   rU   r   rY   r]   rp   r   r<   finfor>   maxminr   r   r   r   r   r   r   r   r   r   r`   r   r   <module>r      s        0 0 0 0 0 0                     
( 
( 
(( ( ( 	"*	2:	2:	2:	RZ 	RZ 
 
( (
 
(4- 4- 4-n) ) ):  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),) ) )- - -( ( (  1 1 1 1 1r   