
    i1                        d dl mZ d dlZd dlmZ d dlZd dlZd dlZd dlZd dl	m
Z
 d dlZd dlmZ d dlmZ d dlmZ ej(                  j+                  dg  ej,                  d      d	d
gdf ej,                  d      d
z  d
dgdf ej,                  d      j/                         ddgdf ej,                  d      d	z   d
dgdfd	 ej,                  d      z   d
dgdf ej,                  d      d	z
  d d	gdfd	 ej,                  d      z
  d dgdf ej,                  d      d	z  d	d
gdfd	 ej,                  d      z  d	d
gdfd
 ej,                  d      z  d
dgdf ej,                  d      d
z  d	dgdf ej,                  d      d	z  ddgdfd	 ej,                  d      z  ddgdf ej,                  d      d	z  d	d
gdfd	 ej,                  d      z  d	d gdf ej,                  d      d	z  d d gd fd	 ej,                  d      z  d d	gd!f ej,                  d      d	kD  d"d#gd$f ej,                  d      d	k\  d#d#gd%f ej,                  d      d	k  d"d"gd&f ej,                  d      d	k  d#d"gd'f ej,                  d      d	k(  d#d"gd(f ej0                   ej,                  d      d
      d	dgd)f ej2                   ej,                  d       ej,                  d            ddgd*f ej,                  d      d	z    ej,                  d+      d
z   z  d,d-gd.f ej,                  d      d	z
  j5                  d/      d"d#gd0f ej,                  d       dd1gd2f ej,                  d      d	d
gd3f ej,                  d      d	z    d1d4gd5f ej,                  d       d
z  d1d6gd7f e ej,                  d            d	d
gd8f e ej,                  d      d
z
        d	d gd9f      d:ed;ee   d<ed=dfd>       Zej(                  j+                  d?ej@                  ddgd@fejB                  d d
gdAfejD                  d d	gdBfejF                  d	d gdCfejH                  d
dgdfejJ                  dd
gdDfejL                  d	dgdfejN                  dd gdEfejP                  ddgdFfejR                  dd gdGfg
      dHed;ee   d<ed=dfdI       Z*dJ Z+dsdKZ,dsdLZ-dsdMZ.dsdNZ/ej(                  j+                  d ej,                  d      j`                  jb                  dOgdPf ej,                  d      j`                  je                  dQ      dRgdSf ej,                  d+      j<                  jg                         dTgdUfg      d:ed;ee   d<ed=dfdV       Z4dsdWZ5dsdXZ6ej(                  j+                  d ej,                  d       ej,                  d+      z  g dYdZf ej,                  d      d#z  g d[d\f ej,                  d       ej,                  d+      z  g d]d^f ej,                  d      d"z  g d[d_f ej,                  d       ej,                  d+      z  g d`daf ej,                  d      d#z  g dbdcf ej,                  d       g dbddfg      d:ed;ee7   d<ed=dfde       Z8dsdfZ9dsdgZ:dsdhZ;dsdiZ<dsdjZ=dk Z>dl Z?dm Z@dn ZAdo ZBdp ZCdq ZDdr ZEy)t    )CallableN)datetime)cache_readonly)
Expression)ensure_removed)exprexpected_valuesexpected_stra      zcol('a')   zcol('a') * 2   zcol('a').sum()zcol('a') + 1z1 + col('a')zcol('a') - 1z1 - col('a')zcol('a') * 1z1 * col('a')z2 ** col('a')zcol('a') ** 2g      ?       @zcol('a') / 1g      ?z1 / col('a')zcol('a') // 1z1 // col('a')zcol('a') % 1z1 % col('a')FTzcol('a') > 1zcol('a') >= 1zcol('a') < 1zcol('a') <= 1zcol('a') == 1zpower(col('a'), 2)zdivide(col('a'), col('a'))b
      z(col('a') + 1) * (col('b') + 2)boolz(col('a') - 1).astype('bool')z	-col('a')z	+col('a')z-(col('a') + 1)z(-col('a')) * 2zabs(col('a'))zabs(col('a') - 2)r   r	   r
   returnc                     t        j                  ddgddgd      }|j                  |       }t        j                  ddgddg|d      }t        j                  ||       t        |       |k(  sJ y )Nr   r   r   r   r   r   cr   r   r   )pd	DataFrameassigntmassert_frame_equalstrr   r	   r
   dfresultexpecteds         R/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/test_col.pytest_col_simpler*      so    d 
QF!Q0	1BYYYF||1a&1vOLMH&(+t9$$$    )opr	   r
   zcol('a') + 2zcol('a') & 2zcol('a') // 2zcol('a') % 2zcol('a') | 2zcol('a') - 2zcol('a') / 2zcol('a') ^ 2r,   c                    t        j                  dddgi      }t        j                  d      } | |d      }|j                  |      }t        j                  ddg|d      }t	        j
                  ||       t        |      |k(  sJ y )Nr   r   r   r   r   r   r   r    colr!   r"   r#   r$   )r,   r	   r
   r&   r   r'   r(   s          r)   test_inplace_opsr1   K   s{    & 
sQFm	$B66#;DdA;DYYYF||1a&?@H&(+t9$$$r+   c                     t        j                  dddgi      } t        j                  d      ddgz  }| j                  |      }t        j                  ddgddgd      }t	        j
                  ||       t        |      d	k(  sJ ddgt        j                  d      z  }| j                  |      }t        j                  ddgddgd      }t	        j
                  ||       t        |      d
k(  sJ y )Nr   r   r   r   r   r      r.   zcol('a') @ [3, 4]z[3, 4] @ col('a')r/   r&   r   r'   r(   s       r)   test_matmulr5   g   s    	sQFm	$B66#;!QDYYYF||1a&Bx89H&(+t9++++q6BFF3KDYYYF||1a&Bx89H&(+t9++++r+   c                      t        j                  ddgddgd      } t        j                  d      dk(  }| |   }| j                  dg   }t	        j
                  ||       y )Nr   r   r   r   r   r   )r   r    r0   ilocr"   r#   r4   s       r)   test_frame_getitemr8   x   sW    	QF!Q0	1B66#;!DXFwws|H&(+r+   c                      t        j                  ddgddgd      } t        j                  d      dk(  }| j                         }d||<   t        j                  ddgddgd      }t	        j
                  ||       y Nr   r   r   r   r   r   d   )r   r    r0   copyr"   r#   r4   s       r)   test_frame_setitemr=      sn    	QF!Q0	1B66#;!DWWYFF4L||1c(!S:;H&(+r+   c                     t        j                  ddgddgd      } t        j                  d      dk(  }| j                         }d|j                  |df<   t        j                  ddgddgd      }t        j                  ||       y )	Nr   r   r   r   r   r   r;   r   )r   r    r0   r<   locr"   r#   r4   s       r)   test_frame_locr@      sw    	QF!Q0	1B66#;!DWWYFFJJtSy||1a&3x89H&(+r+   c                     t        j                  ddgddgd      } t        j                  d      dk(  }| j                         }d|j                  |df<   t        j                  ddgddgd      }t        j                  ||       y r:   )r   r    r0   r<   r7   r"   r#   r4   s       r)   test_frame_ilocrB      sw    	QF!Q0	1B66#;!DWWYFFKKa||1a&3x89H&(+r+     zcol('a').dt.yearz%BJanuaryzcol('a').dt.strftime('%B')FOOzcol('b').str.upper()c                    t        j                  t        ddd      gdgd      }|j                  |       }t        j                  t        ddd      gdg|d      }t	        j
                  ||d       t        |       |k(  sJ y )	NrC   r   foor   r   r   F)check_dtype)r   r    r   r!   r"   r#   r$   r%   s         r)   test_namespacesrI      s     
XdAq12%A	BBYYYF||a#$E7IH &(>t9$$$r+   c                  :   t        j                  ddgddgd      } t        j                  t        d      5  | j                  t        j                  d      j                         	       d d d        t        j                  t        d
      D ci c]	  }d| dg c}      } d}	 t        j                  t        |      5  | j                  t        j                  d      j                         	       d d d        y # 1 sw Y   xY wc c}w # 1 sw Y   y xY w)Nr   r   r   r   r   z(did you mean one of \['a', 'b'\] insteadmatchr   r   r3   col_r   zdid you mean one of \['col_0', 'col_1', 'col_2', 'col_3', 'col_4', 'col_5', 'col_6', 'col_7', 'col_8', 'col_9',\.\.\.\] instead)	r   r    pytestraises
ValueErrorr!   r0   meanrange)r&   imsgs      r)   test_invalidrU      s    	QF!Q0	1B	z)T	U (
		BFF3K$$&	'(	b	:1aSzA3:	;B	-  	z	- (
		BFF3K$$&	'( (( (:( (s   4D D4D D	Dc                     t        j                  dg di      }  G d d      }t        t         j                  d      5  t        j                  j
                  j                  d      |       | j                  t        j                  d      j                  j                               }d d d        t        j                  g dg dd      }t        j                  |       y # 1 sw Y   <xY w)	Nr   r   r   r   c                       e Zd Zd Zd Zy))test_custom_accessor.<locals>.XYZAccessorc                     || _         y N)_obj)self
pandas_objs     r)   __init__z2test_custom_accessor.<locals>.XYZAccessor.__init__   s	    "DIr+   c                 6    | j                   j                         S r[   )r\   rQ   )r]   s    r)   rQ   z.test_custom_accessor.<locals>.XYZAccessor.mean   s    99>>##r+   N)__name__
__module____qualname__r_   rQ    r+   r)   XYZAccessorrY      s    	#	$r+   re   xyzr   )r   r   r   r   )r   r    r   Seriesapi
extensionsregister_series_accessorr!   r0   rf   rQ   r"   r#   )r&   re   r'   r(   s       r)   test_custom_accessorrl      s    	sI&	'B$ $ 
		5	) 5
2259+FRVVC[__11345 ||)/BCH&(+	5 5s   A,C%%C.)FFTFzcol('a') & col('b')TFTFzcol('a') & True)TTTTzcol('a') | col('b')zcol('a') | False)TTFTzcol('a') ^ col('b'))FTFTzcol('a') ^ Truez	~col('a')c                 :   t        j                  g dg dd      }|j                  |       }t        j                  g dg d|d      }t        j                  ||       t        |       |k(  sJ |j                  |    }||   }t        j                  ||       y )Nrm   )FTTTr   r   r   )r   r    r!   r"   r#   r$   r?   r%   s         r)   test_col_logical_opsro      s    X 
6=VW	XBYYYF||+* 	
H &(+t9$$$ VVD\F/"H&(+r+   c                     t        j                  dg di      } t        j                  d      d   }d}t        |      |k(  sJ | j	                  |      }t        j                  g dg dd      }t        j                  ||       y )Nr   rW   r   zcol('a')[1]rg   )r   r   r   r   )r   r    r0   r$   r!   r"   r#   r&   r   r
   r'   r(   s        r)   test_expression_getitemrr     sp    	sI&	'B66#;q>D Lt9$$$YYYF||))<=H&(+r+   c                      t        j                  dg di      } t        j                  d      j                  }d}t	        |      |k(  sJ | j                  |      }t        j                  g dg dd      }t        j                  ||       y )Nr   rW   zcol('a').indexrg   )r   r   r   r   )r   r    r0   indexr$   r!   r"   r#   rq   s        r)   test_propertyru      sr    	sI&	'B66#;D#Lt9$$$YYYF||))<=H&(+r+   c                     t        t        j                  j                  t              sJ t        j
                  dg di      } t        j                  d      j                  j                  }d}t        |      |k(  sJ | j                  |      }t        j
                  g dt        j                  d      }t        j                  ||       y )Nr   rW   zcol('a').index.dtyperg   r   )
isinstancer   Indexdtyper   r    r0   rt   r$   r!   npint64r"   r#   rq   s        r)   test_cached_propertyr|   -  s     bhhnnn555	sI&	'B66#;""D)Lt9$$$YYYF||)"((;<H&(+r+   c                  z   t        j                  dg di      } t        j                  t        j                  d      d      }d}t	        |      |k(  sJ t	        |             | j                  |      }t        j                  g dt        j                  | d   d      d      }t        j                  ||       y )Nr   rW   r   z>qcut(x=col('a'), q=3, labels=None, retbins=False, precision=3)rg   r   )r   r    qcutr0   r$   r!   r"   r#   rq   s        r)   	test_qcutr   <  s    	sI&	'B77266#;"DSLt9$/c$i/$YYYF||)"''"S'12EFGH&(+r+   c                     t        j                  g dg dd      } t        j                  d      j                  t        j                  d      dk(  d      }d}t	        |      |k(  sJ t	        |             | j                  |	      }t        j                  g dg dg d
d      }t        j                  ||       t        j                  d      j                  t        j                  d      dk(  t        j                  d      dz         }d}t	        |      |k(  sJ t	        |             | j                  |	      }t        j                  g dg dg dd      }t        j                  ||       y )NrW   )r         r   r   r   r   r;   z"col('a').where(col('b') == 5, 100)r   )r;   r   r;   r   r   z+col('a').where(col('b') == 5, col('a') + 1))r   r   r   )r   r    r0   wherer$   r!   r"   r#   rq   s        r)   
test_wherer   H  s   	II6	7B66#;RVVC[A-s3D7Lt9$/c$i/$YYYF||))-PQH&(+66#;RVVC[A-rvvc{Q?D@Lt9$/c$i/$YYYF||)))LMH&(+r+   c                      t        j                  t        d      5  t        t	        j
                  d             d d d        y # 1 sw Y   y xY w)Nz+boolean value of an expression is ambiguousrK   r   )rN   rO   	TypeErrorr   r   r0   rd   r+   r)   	test_boolr   ]  s6    	y(U	V RVVC[     AAc                      t        j                  t        d      5  t        t	        j
                  d             d d d        y # 1 sw Y   y xY w)Nz#Expression objects are not iterablerK   r   )rN   rO   r   iterr   r0   rd   r+   r)   	test_iterr   b  s6    	y(M	N RVVC[  r   c                      t        j                  t        d      5  dt        j                  d      v  d d d        y # 1 sw Y   y xY w)Nz/argument of type 'Expression' is not .*iterablerK   r   r   )rN   rO   r   r   r0   rd   r+   r)   test_containsr   g  s=     
J
  	
RVVC[  s	   =Ac                      t        j                  t        d      5  t        j                  t	        j
                  d             d d d        y # 1 sw Y   y xY wNz#Expression objects are not copiablerK   r   )rN   rO   r   r<   r   r0   rd   r+   r)   	test_copyr   p  s:    	y(M	N 		"&&+     )AAc                      t        j                  t        d      5  t        j                  t        j                  d             d d d        y # 1 sw Y   y xY wr   )rN   rO   r   r<   deepcopyr   r0   rd   r+   r)   test_deepcopyr   u  s:    	y(M	N #bffSk"# # #r   c                      t        j                  d      } t        j                  t        |       5  t        t        j                  d      d       d d d        y # 1 sw Y   y xY w)Nz@unsupported operand type(s) for divmod(): 'Expression' and 'int'rK   r   r   )reescaperN   rO   r   divmodr   r0   rT   s    r)   test_divmodr   z  sF    
))V
WC	y	, rvvc{A  s    AA#c                      t        j                  t        d      5  t        t	        j
                  d             d d d        y # 1 sw Y   y xY w)Nz(object of type 'Expression' has no len()rK   r   )rN   rO   r   lenr   r0   rd   r+   r)   test_lenr     s6    	y(R	S BFF3K  r   c                      d} t        j                  t        |       5  t        t	        j
                  d      d       d d d        y # 1 sw Y   y xY w)Nz/type Expression doesn't define __round__ methodrK   r   r   )rN   rO   r   roundr   r0   r   s    r)   
test_roundr     s<    
;C	y	, bffSk1  s    AA)r   N)Fcollections.abcr   r<   r   operatorr   numpyrz   rN   pandas._libs.propertiesr   pandasr   pandas._testing_testingr"   pandas.api.typingr   #pandas.tests.test_register_accessorr   markparametrizer0   sumpowerdivideastypeabslistobjectr$   r*   iaddiand	ifloordivimodimulioripowisubitruedivixorr1   r5   r8   r=   r@   rB   dtyearstrftimeupperrI   rU   rl   r   ro   rr   ru   r|   r   r   r   r   r   r   r   r   r   r   rd   r+   r)   <module>r      s   $    	   2   ( > /*	q!fj)*	q1a&.1* 
	QF$45* 
q1a&.1	*
 
VRVVC[1a&.1* 
q1a&.1* 
VRVVC[1b'>2* 
q1a&.1* 
VRVVC[1a&.1* 
fbffSk	Aq6?3* 
	Aq6?3* 
q3*n5* 
VRVVC[3*n5* 
	Aq6?3* 
fbffSk	Aq6?3*  
q1a&.1!*" 
VRVVC[1a&.1#*$ 
q5$-8%*& 
	D$<9'*( 
q5%..9)** 
	D%=/:+*, 
	D%=/:-*. 
&"&&+q	!Aq6+?@/*0 
6266#;s	,sCj:VW1*4 RVVC[1_q1H-	
3*> RVVC[1_$$V,DM+	
=*H "&&+Bx-I*J "&&+1v{+K*L 266#;?	b"X'89M*N "&&+	B8%67O*P 
VRVVC[	Aq6?3Q*R 
VRVVC[1_	1v':;S*-\%
%'+F|%CF%	%]-\% -	A/	A/			aV_5	A/	A/	1v~.	A0	Q0			S#J7	A/
%
%#'<
%?B
%	
%
%,",,,, /			tf&89		 	 	&5QR				 5'+AB	%
	%'+F|	%CF	%		%	%( ," / BFF3K&"&&+%'!	
 BFF3K$&	
 BFF3K&"&&+%$!	
 BFF3K%&	
 BFF3K&"&&+%%!	
 BFF3K$&	
 RVVC[L&	
?$'P,
,'+Dz,AD,	,Q'P,,
,
,,	,,*


#

r+   