
    .i?                     d    d dl mZ d dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZ d dlmZ  G d d      Zy)    )ChainMapN)	DataFrameIndex
MultiIndexSeriesmergec                      e Zd Zd Zd Zd Zej                  j                  d e	ddiddi      fd	d
ifdd
 e	ddiddi      ifg      d        Z
d Zd Zd Zd Zd Zd Zej                  j                  dddddg dfddidg dfej$                  dg dfg      d        Zd Zd Zd Zd Zd Zd  Zd! Zd" Zd# Zd$ Zd% Zy&)'
TestRenamec                     t        j                  t        j                        }t	        |j
                        }|h dk(  sJ y )N>	   axiscopyselfindexlevelerrorsmappercolumnsinplace)inspect	signaturer   renameset
parameters)r   sigr   s      d/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_rename.pytest_rename_signaturez TestRename.test_rename_signature   s=    	 0 01(
 

 

 
	
 

    c           
           |g dt        j                  dD cg c]  }d|f c}            }|j                  t        j                         y c c}w )N)         )aBcAr   )r   from_tuplesr   strlower)r   frame_or_seriesxobjs       r   test_rename_mizTestRename.test_rename_mi!   sD    ((O)Lq3()LM
 	

399 *Ms   Ac                    ddddd}|j                  |      }|j                  t        j                        }t        j                  ||       t        j                  |j                  t        j
                        |d       d	d
ddi}t        |      }|j                  ddd      }t        j                  |j                  t        ddg             |j                  t        j
                        }t        j                  |j                  t        ddg             t        j                  t        d      5  |j                          d d d        |j                  ddd      }t        j                  |j                  t        g d             |j                  j                  ddd      }t        j                  |j                  t        g d             t        ddgd      }t        ||      }|j                  ddd      }t        j                  |j                  t        ddgd             |j                  j                  |j                  j                  k(  sJ y # 1 sw Y   "xY w)Nr"   br$   dr%   r#   CDr   F)check_namesr%   r      )foobarr8   r7   r&   FOOBARmust pass an index to renamematch)r2   r3   )r%   r#   r7   r8   name)r>   )r   r(   r)   tmassert_frame_equalupperr   assert_index_equalr   r   pytestraises	TypeErrorr   Tr>   )	r   float_framemappingrenamedrenamed2datadfr   renamers	            r   test_renamezTestRename.test_rename(   s   #Cc:$$W$5%%cii%8
gx0
OOCIIO.	

 Qq)*t_))%">)?
gmmUE5>-BC))#))),
gmmUE5>-BC ]]9,JK 	! 	! $$5u-E$F
goou5M/NO --&&5u-E&F
gmmU3K-LM uen62D...uU'C.D
gmmUE5>-OP}}!!W]]%7%7777!	! 	!s   >I//I9zargs,kwargsr%   r"   r#   r/   r   r    c                     t        dd      }t        j                  j                  d      j	                  d      }t        ||d      } |j                  |i |}t        ||d      }t        j                  ||       y )Nr6   r      
   r%   r#   r"   r/   )	rangenprandomdefault_rngstandard_normalr   r   r?   r@   )r   argskwargscolADatacolBdatarL   resultexpecteds           r   test_rename_chainmapzTestRename.test_rename_chainmapP   sq     B<99((+;;B?XH56D+F+8(;<
fh/r   c                 T   ddg}ddg}t        j                  |ddg      }t        j                  |dd	g      }t        d
dg||      }|j                  dddddd      }t        j                  ddgddg      }t        j                  ddgdd	g      }t	        j
                  |j                  |       t	        j
                  |j                  |       |j                  j                  |j                  j                  k(  sJ |j                  j                  |j                  j                  k(  sJ t        j                  ddgdd	g      }|j                  dddd      }t	        j
                  |j                  |       |j                  dddd      }t	        j
                  |j                  |       t        j                  ddgdd	g      }|j                  dddd      }t	        j
                  |j                  |       |j                  dddd	      }t	        j
                  |j                  |       t        j                  }	t        j                  ddgdd	g      }|j                  |	d      }t	        j
                  |j                  |       |j                  |	d      }t	        j
                  |j                  |       t        j                  ddgdd	g      }|j                  |	d      }t	        j
                  |j                  |       |j                  |	d	      }t	        j
                  |j                  |       t        j                  ddgddg      }|j                  dddd      }t	        j
                  |j                  |       y )N)foo1bar1)foo2bar2)fizz1buzz1)fizz2buzz2r7   r8   namesfizzbuzzr   r   r6   r6   r   r   foo3bar3)rb   re   fizz3buzz3)rf   ri   )rq   rc   )rd   rr   )rs   rg   )rh   rt   r   )r   r   r6   )FIZZ1rg   )FIZZ2ri   )rf   BUZZ1)rh   BUZZ2)r   r   )r   r'   r   r   r?   rB   r   r   rk   r(   rA   )
r   tuples_indextuples_columnsr   r   rL   rI   	new_indexnew_columnsfuncs
             r   test_rename_multiindexz!TestRename.test_rename_multiindexb   sW   (*:;,.@A&&|E5>J((?OP'ugF
 ))!62%8  
 **/0
	 !,,!34VV<L
 	gmmY7
goo{;}}""bhhnn444$$

(8(8888 !,,!34VV<L
 ))g$HPQ)R
goo{;))g$HPV)W
goo{; ,,!34VV<L
 ))g$HPQ)R
goo{;))g$HPV)W
goo{; yy ,,!34VV<L
 ))D)2
goo{;))D)7
goo{; ,,!34VV<L
 ))D)2
goo{;))D)7
goo{; **/0
	 ))66"B!)L
gmmY7r   c                     |j                  ddi      }t        j                  |d   j                  |d   j                        sJ d|j                  d d df<   |d   dk(  j                         rJ y )Nr2   r7   r4   g      ?)r   rV   shares_memory_valueslocall)r   rG   rI   s      r   test_rename_nocopyzTestRename.test_rename_nocopy   su    $$c5\$: 6 6C8H8P8PQQQ #AuH$+002222r   c                     |j                  ddi       d|v sJ d|vsJ |d   }|j                         }|j                  ddid      }|J d|vsJ d|v sJ |d   |usJ y )Nr2   r7   r4   Tr   r   )r   r   )r   rG   c_valuesreturn_values       r   test_rename_inplacezTestRename.test_rename_inplace   s    C<0k!!!K'''s#!&&("))3,)M###+%%%### 5!111r   c                 8   t        ddgddgddgd      }|j                  dd	i
      }|j                  ddi
      }|j                  d	dg      }dg|_        t        dgdggt	        j
                  ddgd	dg      dg      }t        j                  ||       y )Nr7   r8   bahbasr6   rQ   r   r6   rQ   r   r"   r4   r/   z
2001-01-01)r7   r   )r8   r   rj   rp   )r   r   	set_indexr   r   r'   r?   r@   r   rL   r_   s      r   test_rename_bugzTestRename.test_rename_bug   s     E5>uen!QHIYY3xY(YY3xY(\\3*%"^
S1#J((0c
 "N
 	b(+r   c                     t        t        j                  d      g ddg      }|j                  ddid      }t        t        j                  d      g d	dg      }t	        j
                  ||       y )
N   )rn   ro   rQ   rQ   r"   )rK   r   r   ro         r   r   )rn   r   r   )r   rV   aranger   r?   r@   r   s      r   test_rename_bug2zTestRename.test_rename_bug2   sd     BIIaL0HSVRWXYY'gY61%=u
 	b(+r   c                     t        g d      }t        j                  t        d      5  |j	                  dddd	       d d d        y # 1 sw Y   y xY w)
Nr1   r4   z'E'] not found in axisr<   r"   er%   Eraiser   r   )r   rC   rD   KeyErrorr   )r   rL   s     r   test_rename_errors_raisesz$TestRename.test_rename_errors_raises   sJ    34]]8+CD 	DIICc27IC	D 	D 	Ds   A

Az mapper, errors, expected_columnsr   r   ignore)r"   r#   r2   r3   r   )r"   r/   r$   r0   c                     t        g d      }|j                  ||      }t        |      }t        j                  ||       y )Nr1   r4   r   )r   r   r?   r@   )r   r   r   expected_columnsrL   r^   r_   s          r   test_rename_errorszTestRename.test_rename_errors   s<     346&9%56
fh/r   c                 \    |j                  t        j                        }d|v sJ d|vsJ y )Nr4   r9   r7   )r   r(   rA   )r   float_string_framerI   s      r   test_rename_objectszTestRename.test_rename_objects   s5    $++CII+>G###r   c                    t        ddgddgdddg      }t        ddgddgdddg      }|j                  t        j                  d      }t	        j
                  ||       |j                  t        j                  d	      }t	        j
                  ||       |j                  d
ddd      }t	        j
                  ||       |j                  d
ddd	      }t	        j
                  ||       t        ddgddgdddg      }|j                  t        j                  d      }t	        j
                  ||       |j                  t        j                  d      }t	        j
                  ||       |j                  dddd      }t	        j
                  ||       |j                  dddd      }t	        j
                  ||       |j                  t        j                  d      }t	        j
                  ||       y )Nr6   rQ   rS   XYr&   rT   r   r   r"   r/   r+   yr   r   )r   r   )r   r   )r   r   r(   r)   r?   r@   )r   rL   r_   r^   s       r   test_rename_axis_stylez!TestRename.test_rename_axis_style   s   aV1a&1#sDAq6A7SzJ3991-
fh/39995
fh/3/a8
fh/3/i@
fh/ Aq6A7SzJ3991-
fh/39973
fh/3/a8
fh/3/g>
fh/#))':
fh/r   c                     t        ddgddgddgd      j                  dd	g      }|j                  t        j                        }|j                  t        j                  
      }t        j                  ||       y )Nr"   r/   r$   r0   r6   rQ   r%   r#   r2   r%   r#   r&   )r   r   r   r(   rA   r?   r@   r   rL   r^   r_   s       r   test_rename_mapper_multiz#TestRename.test_rename_mapper_multi  si    c3ZsCj1vFGQQ#J
 399%993999-
fh/r   c                     t        ddgddgdddg      }|j                  t        j                  t        j                        }t        ddgddgdd	d
g      }t        j                  ||       y )Nr6   rQ   rT   r   r   r&   rp   rS   r+   r   )r   r   r(   r)   rA   r?   r@   r   s       r   test_rename_positional_namedz'TestRename.test_rename_positional_named!  sf    aV1a&1#sDCII>Aq6A7SzJ
fh/r   c                    t        ddgddgdddg      }d}t        j                  t        |      5  |j	                  t
        j                  d	       d d d        t        j                  t        |      5  |j	                  t
        j                  d
	       d d d        t        j                  t        |      5  |j	                  t
        j                  d
       d d d        t        j                  t        |      5  |j	                  t
        j                  d	       d d d        t        j                  t        |      5  |j	                  t
        j                  t
        j                  d
	       d d d        d}t        j                  t        |      5  |j	                  t
        j                  t
        j                  t
        j                         d d d        t        j                  t        d      5  |j	                  t        t               d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   )xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr6   rQ   rS   01r&   z:Cannot specify both 'axis' and any of 'index' or 'columns'r<   )r   r   r   )r   r   r   <Cannot specify both 'mapper' and any of 'index' or 'columns'rp   zmultiple values)r   )r   rC   rD   rE   r   r(   r)   id)r   rL   over_spec_msgs      r   test_rename_axis_style_raisesz(TestRename.test_rename_axis_style_raises(  s   aV1a&1#sD U]]9M: 	/IICIIAI.	/ ]]9M: 	7IICIIII6	7 ]]9M: 	9IIciiiI8	9 ]]9M: 	/IICIIAI.	/ ]]9M: 	BIIciisyyyIA	B W]]9M: 	EIIciisyy#))ID	E ]]9,=> 	%IIbI$	% 	%-	/ 	/	7 	7	9 	9	/ 	/	B 	B
	E 	E	% 	%sS   "H%9"H2>"H?"I1I?I% I1%H/2H<?I	II"%I.1I:c                     t        ddg      }d}t        j                  t        |      5  |j	                  d t
        j                         d d d        y # 1 sw Y   y xY w)Nr%   r#   r4   z1rename\(\) takes from 1 to 2 positional argumentsr<   )r   rC   rD   rE   r   r(   r)   r   rL   msgs      r   test_rename_positional_raisesz(TestRename.test_rename_positional_raisesG  sJ    Sz*B]]9C0 	'IIdCII&	' 	' 	's   !AAc                 6   t        dgg      }d}t        j                  t        |      5  |j	                          d d d        t        j                  t        |      5  |j	                  d d        d d d        t        j                  t        |      5  |j	                  d d        d d d        t        j                  t        |      5  |j	                  d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ZxY w# 1 sw Y   y xY w)Nr6   r;   r<   r&   r4   r   r   r   rC   rD   rE   r   r   s      r   test_rename_no_mappings_raisesz)TestRename.test_rename_no_mappings_raisesO  s    u,]]9C0 	IIK	 ]]9C0 	(IId$I'	( ]]9C0 	*IIdDI)	* ]]9C0 	6IIdDI5	6 	6	 		( 	(	* 	*	6 	6s/   C+C7DD+C47D DDc                    t        dgg      }d}t        j                  t        |      5  |j	                  i i        d d d        t        j                  t        |      5  |j	                  i i        d d d        t        j                  t        |      5  |j	                  i i i        d d d        y # 1 sw Y   yxY w# 1 sw Y   NxY w# 1 sw Y   y xY w)Nr6   r   r<   r&   r4   r   r   r   s      r   2test_rename_mapper_and_positional_arguments_raisesz=TestRename.test_rename_mapper_and_positional_arguments_raises_  s    uL]]9C0 	$IIbI#	$ ]]9C0 	&IIb"I%	& ]]9C0 	0IIb"BI/	0 	0	$ 	$	& 	&	0 	0s#   B7"CC7C CCc                    t        dgdgdgdt        j                  dgddg      	      }t        g d
dgdz  g dg ddt        j                  g dddg      	      }t        ||ddd      }|j	                  ddd      }t        g dgg d      j                  ddgd      }t        j                  ||       y )Nz6>?Q6@^K=?)RTTCloseTExg*	 *3STK_IDRPT_Daterj   r&   )b33r   r   r   )   饡驦r   r   )gfffffC@gGzD@(\>@)r   r   STK_Namer   ))r   r   )r   r   r   innerT)how
left_indexright_indexr   QT_Close)TClose_xTClose_yr4   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   F)drop)r   r   r'   r   r   r   r?   r@   )r   df4df5kr^   r_   s         r   "test_rename_with_duplicate_columnsz-TestRename.test_rename_with_duplicate_columnsl  s    8wA((#$Xz,B
 :!(Q,:/	 ((L,
 #sDdKxZ"PQGH
 )Xz*)
7 	 	fh/r   c                 .   t        t        j                  d      j                  dd      g d      }dddd	}|j	                  |
      }t        t        j                  d      j                  dd      g dg d      }t        j                  ||       y )N   r   r   )FTrQ   r   r   r4   r7   r8   r   r   r&   )r7   r8   r   r   )r   rV   r   reshaper   r?   r@   )r   rL   r   resexps        r   test_rename_boolean_indexz$TestRename.test_rename_boolean_index  sz    ryy},,Q2<RSu/iifi%IIbM!!!Q'*'

 	c3'r   c                 &   t        g dg dg dd      }|j                  d      }t        g dg d	      }d
}t        j                  t
        |      5  |j                  |       d d d        t        j                  t
        |      5  |j                  |       d d d        t        j                  t
        |      5  |j                  |d       d d d        t        j                  ||       |j                  d   }t        j                  t
        |      5  |j                  |       d d d        t        j                  t
        |      5  |j                  |	       d d d        t        j                  t
        |      5  |j                  |d       d d d        t        j                  ||j                  d          y # 1 sw Y   bxY w# 1 sw Y   9xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   lxY w)N)r6   rQ   r   )r   r      )      	   r   T)deep)r   r   ZW)r%   r#   r#   r2   r&   z1Cannot rename with a Series with non-unique indexr<   r4   r   r   )r   r   )r   r   r   rC   rD   
ValueErrorr   r?   r@   ilocassert_series_equal)r   rL   origrename_seriesr   sers         r   #test_rename_non_unique_index_seriesz.TestRename.test_rename_non_unique_index_series  s   YYYGHwwDw!3;OPA]]:S1 	%IIm$	%]]:S1 	-IImI,	-]]:S1 	;IImTI:	; 	b$' ggaj]]:S1 	&JJ}%	&]]:S1 	,JJ]J+	,]]:S1 	:JJ]DJ9	: 	sDIIaL1)	% 	%	- 	-	; 	;	& 	&	, 	,	: 	:sH   GGG"G/G;HGG"G,/G8;HHN)__name__
__module____qualname__r   r-   rN   rC   markparametrizer   r`   r~   r   r   r   r   r   r(   r)   r   r   r   r   r   r   r   r   r   r   r   r   rO   r   r   r
   r
      s+   
&8P [[SzC:.0692EF)XsCj3*=>?	
	0	0D8L32 ,"	,D
 [[*S!8-AB3Z"67YY!56	
00$ 0D00%>'6 0%0N	(2r   r
   )collectionsr   r   numpyrV   rC   pandasr   r   r   r   r   pandas._testing_testingr?   r
   rO   r   r   <module>r     s,          i2 i2r   