o
    %j@                     @   s  d Z ddlmZ ddlZddlmZmZ ddlmZ	 ej
dZej
dZedd Zed	d
 Zdd Zeej
ddeg dgg ddfdeg dgg ddfdeg dgg ddfgdd Zej
ddg deg dg dgg ddfd g d!eg d"g d#gg d$dfd%g d&eg d'g d(gg d)dfgd*d+ Zed,d- Zed.d/ Zed0d1 Zej
d2g d3d4fg d3d5fgd6d7 ZdS )8z
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IndexZpyarrow_xfailz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc                 C   s@   | }d}|j t|dd}tg dgg dd}t|| d S )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expected r   i/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/io/parser/test_mangle_dupes.py
test_basic   s
   r   c                 C   sB   | }d}t g dg dgg dd}|t|}t|| d S )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   r   r   r   test_basic_names#   s
   r   c                 C   sR   | }d}t jtdd |jt|g dd W d    d S 1 s"w   Y  d S )Nz0,1,2
3,4,5Duplicate namesmatch)r   r   r   namespytestZraises
ValueErrorr   r   )r   r   r   r   r   r   test_basic_names_raise/   s
   "r(   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   r*   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   r+      )r   a.4a.3r   r*   za.5za.6c                 C   s"   | }| t|}t|| d S )N)r   r   r   r   )r   r   r   r   r   r   r   r   test_thorough_mangle_columns8   s   r3   zdata,names,expectedza,b,b
1,2,3)r   r   r,   )r   r   r   )123)r   r,   r-   za,b,c,d,e,f
1,2,3,4,5,6)r   r   r   r,   r-   r.   )r   r   cdef)r4   r5   r6   456)r   r   r,   r-   r.   za.1.1.1.1.1za,b,c,d,e,f,g
1,2,3,4,5,6,7)r   r   r2   r   r*   r   r   )r   r   r7   r8   r9   r:   g)r4   r5   r6   r;   r<   r=   7)r   r   r2   r,   r*   za.2.1za.3.1c                 C   sJ   | }t jtdd |jt||d W d    d S 1 sw   Y  d S )Nr    r!   r#   r%   )r   r   r$   r   r   r   r   r   test_thorough_mangle_namesU   s   !"r@   c           	      C   s   d}| }g d}t ||i}tdD ]?}t tg ddd}t|d D ]}dd	d|  t|d  }|jd
|g dd q#|||< |t| }t	|| qd S )N0r)   r	   str)Zdtyper   r   
Unnamed: 0.r   r   )loccolumnvalue)
r   ranger   mininsertr   r   Zto_csvr   r   )	r   orig_keyr   Z
orig_valueZdfir   jZcol_namer   r   r   !test_mangled_unnamed_placeholders|   s   rN   c                 C   <   | }d}| t|}tg dgg dd}t|| d S )Nz%a,a,a.1,a,a.3,a.1,a.1.1
1,2,3,4,5,6,7r/   )r   r*   r   r1   r2   za.1.2r,   r   r   r   r   r   r   $test_mangle_dupe_cols_already_exists      rP   c                 C   rO   )Nz,Unnamed: 0,,Unnamed: 2
1,2,3,4)r   r   r	   r
   )zUnnamed: 0.1rC   zUnnamed: 2.1z
Unnamed: 2r   r   r   r   r   r   0test_mangle_dupe_cols_already_exists_unnamed_col   rQ   rR   zusecol, engine)r   r   r   pythonr7   c                 C   sZ   | }d}g d}t jtdd |jt||||d W d    d S 1 s&w   Y  d S )Nz1,2,3)ArT   Br    r!   )r$   Zusecolsenginer%   )r   ZusecolrV   r   r   r$   r   r   r   test_mangle_cols_names   s   "rW   )__doc__ior   r&   Zpandasr   r   Zpandas._testingZ_testingr   markZusefixturesZxfail_pyarrowfilterwarningsZ
pytestmarkr   r   r(   Zparametrizer3   r@   rN   rP   rR   rW   r   r   r   r   <module>   s    


		



 