
     -i@                        S r SSKJr  SSKrSSKJrJr  SSKJr	  \R                  R                  S5      r\R                  R                  S5      r\S 5       r\S 5       rS	 r\\R                  R%                  S
S\" / SQ// SQS94S\" / SQ// SQS94S\" / SQ// SQS94/5      S 5       5       r\R                  R%                  SS/ SQ\" / SQ/ SQ// SQS94S/ SQ\" / SQ/ SQ// S QS94S!/ S"Q\" / S#Q/ S$Q// S%QS94/5      S& 5       r\S' 5       r\S( 5       r\S) 5       r\R                  R%                  S*/ S+QS,4/ S+QS-4/5      S. 5       rg)/z
Tests that duplicate columns are handled appropriately when parsed by the
CSV engine. In general, the expected result is that they are either thoroughly
de-duplicated (if mangling requested) or ignored otherwise.
    )StringION)	DataFrameIndexpyarrow_xfailz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc                     U nSnUR                  [        U5      SS9n[        / SQ// SQS9n[        R                  " X45        g )Nza,a,b,b,b
1,2,3,4,5,)sep)               )aa.1bzb.1zb.2columnsread_csvr   r   tmassert_frame_equalall_parsersparserdataresultexpecteds        [/var/www/html/venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_mangle_dupes.py
test_basicr      s@    F!D__Xd^_5F/*4STH&+    c                     U nSn[        / SQ/ SQ// SQS9nUR                  [        U5      5      n[        R                  " XC5        g )Nza,b,a
0,1,2
3,4,5r   r
   r   )r   r   r   )r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   s        r   test_basic_namesr#   #   s@     F D)Y/9JKH__Xd^,F&+r    c                     U nSn[         R                  " [        SS9   UR                  [	        U5      / SQS9  S S S 5        g ! , (       d  f       g = f)Nz0,1,2
3,4,5Duplicate namesmatch)r   r   r   namespytestraises
ValueErrorr   r   )r   r   r   s      r   test_basic_names_raiser.   /   s;    FD	z):	;o> 
<	;	;s   A
Azdata,expectedza,a,a.1
1,2,3r
   r   r   )r   a.2r   r   z+a,a,a.1,a.1.1,a.1.1.1,a.1.1.1.1
1,2,3,4,5,6)r
   r   r   r   r      )r   r0   r   a.1.1a.1.1.1	a.1.1.1.1z!a,a,a.3,a.1,a.2,a,a
1,2,3,4,5,6,7r
   r   r   r   r   r1      )r   a.4a.3r   r0   za.5za.6c                 h    U nUR                  [        U5      5      n[        R                  " XB5        g )N)r   r   r   r   )r   r   r   r   r   s        r   test_thorough_mangle_columnsr:   8   s)    . F__Xd^,F&+r    zdata,names,expectedza,b,b
1,2,3)r   r   r2   )r   r   r   )123)r   r2   r3   za,b,c,d,e,f
1,2,3,4,5,6)r   r   r   r2   r3   r4   )r   r   cdef)r;   r<   r=   456)r   r   r2   r3   r4   za.1.1.1.1.1za,b,c,d,e,f,g
1,2,3,4,5,6,7)r   r   r8   r   r0   r   r   )r   r   r>   r?   r@   rA   g)r;   r<   r=   rB   rC   rD   7)r   r   r8   r2   r0   za.2.1za.3.1c                     U n[         R                  " [        SS9   UR                  [	        U5      US9  S S S 5        g ! , (       d  f       g = f)Nr%   r&   r(   r*   )r   r   r)   r   r   s        r   test_thorough_mangle_namesrH   U   s9    B F	z):	;e4 
<	;	;s	   ?
Ac                 v   SnU n/ SQn[        X05      n[        S5       H  n[        [        / SS9S9n[        US-   5       H.  nSS	SU-   3[        US5      -  -   nUR	                  S
U/ SQS9  M0     X6U'   UR                  [        UR                  5       5      5      n[        R                  " XF5        M     g )N0r/   r   str)dtyper   r
   
Unnamed: 0.r   r"   )loccolumnvalue)
r   ranger   mininsertr   r   to_csvr   r   )	r   orig_keyr   
orig_valuedfir   jcol_names	            r   !test_mangled_unnamed_placeholdersr\   |   s     HFJ	H)	*B 1XU2U%;<q1uA#!A#i#a)&;;HOO()OD  (__Xbiik23
b+ r    c                     U nSnUR                  [        U5      5      n[        / SQ// SQS9n[        R                  " X45        g )Nz%a,a,a.1,a,a.3,a.1,a.1.1
1,2,3,4,5,6,7r5   )r   r0   r   r7   r8   za.1.2r2   r   r   r   s        r   $test_mangle_dupe_cols_already_existsr^      sC     F3D__Xd^,F	CH &+r    c                     U nSnUR                  [        U5      5      n[        / SQ// SQS9n[        R                  " X45        g )Nz,Unnamed: 0,,Unnamed: 2
1,2,3,4)r
   r   r   r   )zUnnamed: 0.1rM   zUnnamed: 2.1z
Unnamed: 2r   r   r   s        r   0test_mangle_dupe_cols_already_exists_unnamed_colr`      sB     F-D__Xd^,F	LH &+r    zusecol, engine)r   r
   r
   pythonr>   c                     U nSn/ SQn[         R                  " [        SS9   UR                  [	        U5      XQUS9  S S S 5        g ! , (       d  f       g = f)Nz1,2,3)Arc   Br%   r&   )r)   usecolsenginer*   )r   usecolrf   r   r   r)   s         r   test_mangle_cols_namesrh      sD     FDE	z):	;eFS 
<	;	;s   A
A)__doc__ior   r+   pandasr   r   pandas._testing_testingr   markusefixturesxfail_pyarrowfilterwarnings
pytestmarkr   r#   r.   parametrizer:   rH   r\   r^   r`   rh    r    r   <module>ru      s  
   ''8 [[''C

 , , , ,? 	9i[:MNO:#$L	
 1&'G	
(,) *,  # /2<W	
 '>/1OPT	
 +577 N
	
!>5?>5 , ,, 
, 
, 
, 
, )Y,AIsCS+TUT VTr    