
    Owg;                     `    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
 d dlmZ  G d d      Zy)    )ChainMapN)	DataFrameIndex
MultiIndex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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      ]/var/www/horilla/myenv/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barr7   r6   r%   FOOBARmust pass an index to renamematch)r1   r2   )r$   r"   r6   r7   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 )Nr5   r      
   r$   r"   r!   r.   )	rangenprandomdefault_rngstandard_normalr   r   r>   r?   )r   argskwargscolADatacolBdatarK   resultexpecteds           r   test_rename_chainmapzTestRename.test_rename_chainmapO   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buzz2r6   r7   namesfizzbuzzr   r   r5   r5   r   r   foo3bar3)ra   rd   fizz3buzz3)re   rh   )rp   rb   )rc   rq   )rr   rf   )rg   rs   r   )r   r   r5   )FIZZ1rf   )FIZZ2rh   )re   BUZZ1)rg   BUZZ2)r   r   )r   r&   r   r   r>   rA   r   r   rj   r'   r@   )
r   tuples_indextuples_columnsr   r   rK   rH   	new_indexnew_columnsfuncs
             r   test_rename_multiindexz!TestRename.test_rename_multiindexa   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                 r   |j                  ddid      }t        j                  |d   j                  |d   j                        sJ t	        j
                  |      5  d|j                  d d df<   d d d        |r|d   dk(  j                         rJ y |d   dk(  j                         sJ y # 1 sw Y   =xY w)Nr1   r6   F)r   r   g      ?)r   rU   shares_memory_valuesr>   assert_cow_warninglocall)r   rF   using_copy_on_writewarn_copy_on_writerH   s        r   test_rename_nocopyzTestRename.test_rename_nocopy   s    $$c5\$F 6 6C8H8P8PQQQ""#56 	($'GKK5!	(#C(C/446666$+00222	( 	(s   B--B6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 )Nr1   r6   r3   T)r   r   )r   r   )r   rF   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 )Nr6   r7   bahbasr5   rP   r   r5   rP   r   r!   r3   r.   z
2001-01-01)r6   r   )r7   r   ri   ro   )r   r   	set_indexr   r   r&   r>   r?   r   rK   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   )rm   rn   rP   rP   r!   )rJ   r   r   rn         r   r   )rm   r   r   )r   rU   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)
Nr0   r3   z'E'] not found in axisr;   r!   er$   Eraiser   r   )r   rB   rC   KeyErrorr   )r   rK   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"   r1   r2   r   )r!   r.   r#   r/   c                     t        g d      }|j                  ||      }t        |      }t        j                  ||       y )Nr0   r3   r   )r   r   r>   r?   )r   r   r   expected_columnsrK   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 )Nr3   r8   r6   )r   r'   r@   )r   float_string_framerH   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 )Nr5   rP   rR   XYr%   rS   r   r   r!   r.   r*   yr   r   )r   r   )r   r   )r   r   r'   r(   r>   r?   )r   rK   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#   r/   r5   rP   )r$   r"   r1   r$   r"   r%   )r   r   r   r'   r@   r>   r?   r   rK   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 )Nr5   rP   rS   r   r   r%   ro   rR   r*   r   )r   r   r'   r(   r@   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)Nr5   rP   rR   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'ro   zmultiple values)r   )r   rB   rC   rD   r   r'   r(   id)r   rK   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"   r3   z1rename\(\) takes from 1 to 2 positional argumentsr;   )r   rB   rC   rD   r   r'   r(   r   rK   msgs      r   test_rename_positional_raisesz(TestRename.test_rename_positional_raisesJ  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)Nr5   r:   r;   r%   r3   r   r   r   rB   rC   rD   r   r   s      r   test_rename_no_mappings_raisesz)TestRename.test_rename_no_mappings_raisesR  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)Nr5   r   r;   r%   r3   r   r   r   s      r   2test_rename_mapper_and_positional_arguments_raisesz=TestRename.test_rename_mapper_and_positional_arguments_raisesb  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_Dateri   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_yr3   )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_columnso  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   )FTrP   r   r   r3   r6   r7   r   r   r%   )r6   r7   r   r   )r   rU   r   reshaper   r>   r?   )r   rK   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   N)__name__
__module____qualname__r   r,   rM   rB   markparametrizer   r_   r}   r   r   r   r   r   r'   r(   r   r   r   r   r   r   r   r   r   r   r   rN   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	(r   r	   )collectionsr   r   numpyrU   rB   pandasr   r   r   r   pandas._testing_testingr>   r	   rN   r   r   <module>r      s,          O( O(r   