
    Pi,                        d Z ddlmZ ddlZddlZddlmZmZm	Z	 ddl
mZ ej                            d          Zej                            d          Zej                            d          Zej                            dd	d
g          d             Zd Zd Zed             Zeej                            dddg difd
dg difdddg eg d          dfdddg eg d          dfdddg eg d          dfdddg eg d          dfddgdg e	j        g gdz  ddg          dfddgdg e	j        g gdz  ddg          dfddgdg e	j        g gdz  ddg          dfddgdg e	j        g gdz  ddg          dfg
          d                         Zed             Zej                            dddgddgddgddgd d!gg          d"             Zed#             Zed$             Zed%             Zej        j        d&             Z ed'             Z!ed(             Z"ed)             Z#ed*             Z$ed+             Z%ej                            d,e&d-fd.g          d/             Z'ed0             Z(dS )1z
Tests that the specified index column (a.k.a "index_col")
is properly handled or inferred during parsing for all of
the parsers defined in parsers.py
    )StringION)	DataFrameIndex
MultiIndexz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningpyarrow_xfailpyarrow_skipwith_headerTFc                    | }d}d}|rw||z   }|                     t          |          d          }|                     t          |          d                              d          }t          j        ||           d S |}d}t          j        t          |          5  |                     t          |          d           d d d            d S # 1 swxY w Y   d S )	Na  KORD1,19990127, 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD2,19990127, 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD3,19990127, 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD4,19990127, 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD5,19990127, 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
KORD6,19990127, 23:00:00, 22:56:00, -0.5900, 1.7100, 4.6000, 0.0000, 280.0000zBID,date,NominalTime,ActualTime,TDew,TAir,Windspeed,Precip,WindDir
ID	index_colr   headerzIndex ID invalidmatch)read_csvr   	set_indextmassert_frame_equalpytestraises
ValueError)	all_parsersr	   parser	no_headerr   dataresultexpectedmsgs	            y/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/io/parser/test_index_col.pytest_index_col_namedr!      s%   FQI SF <	!$4@@??8D>>!?<<FFtLL
fh///// ]:S111 	< 	<OOHTNNdO;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   %CCCc                     | }d}t          g dg dg dg ddt          g dd	          
          }g d}|                    t          |          |dg          }t	          j        ||           d S )Nz+1,2,3,4,hello
5,6,7,8,world
9,10,11,12,foo
)      	   )      
   )         )         )abcd)helloworldfoomessagenameindex)r/   r0   r1   r2   r6   )namesr   )r   r   r   r   r   r   )r   r   r   r   r;   r   s         r    test_index_col_named2r<   5   s    FD iijjjzzz


KK---I>>>  H ,++E__Xd^^5YK_PPF&(+++++    c                     d}| }d}t          j        t          |          5  |                    t	          |          d           d d d            d S # 1 swxY w Y   d S )Nza,b
1,2z)The value of index_col couldn't be 'True'r   Tr   )r   r   r   r   r   )r   r   r   r   s       r    test_index_col_is_truer?   G   s    DF
5C	z	-	-	- 8 8$7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   %AAAc                     d}| }|                     t          |                    }t          g dg dg dgg dg d          }t          j        ||           d S )Nz$A,B,C
foo,1,2,3
bar,4,5,6
baz,7,8,9
)r#   r&   r)   )r,   r$   r'   )r*   r-   r%   )r5   barbaz)ABCr:   columnsr   r   r   r   r   r   r   r   r   r   s        r    test_infer_index_colrJ   Q   s|    D
 F__Xd^^,,F	IIIyyy)###  H
 &(+++++r=   zindex_col,kwargsrG   xyzrM   rN   rL   r7   rG   r:   r#   r&   r;   c                     d}| }|                     t          |          |          }t          di |}t          j        ||           d S )Nzx,y,zr    rH   )r   r   kwargsr   r   r   r   s          r    test_index_col_empty_datarT   c   sV    R DF__Xd^^y_AAF""6""H&(+++++r=   c                     d}| }|                     t          |          d          }t          ddg          }t          j        ||           d S )Nzx,yFr   rL   rM   rG   rH   rI   s        r    test_empty_with_index_col_falserW      sV     DF__Xd^^u_==F#s,,,H&(+++++r=   index_names r5   rA   NotReallyUnnamedz
Unnamed: 0c                    | }|j         dk    r9d|v r5t          j                            d          }|                    |           d                    g |d          }|                    t          |          ddg	          }t          d
g dit          j
        ddgddgg                    }d |D             |j        _        t          j        ||           d S )NpyarrowrY   z!One case raises, others are wrongreason,zcol
a,c,1
a,d,2
b,c,3
b,d,4r   r#   r   colr#   r&   r)   r,   r/   r0   r1   r2   r9   c                     g | ]}|r|nd 	S )NrR   ).0r8   s     r    
<listcomp>z+test_multi_index_naming.<locals>.<listcomp>   s!    KKKtD2DDdKKKr=   )enginer   markxfailapplymarkerjoinr   r   r   r   from_productr:   r;   r   r   )r   rX   requestr   rf   r   r   r   s           r    test_multi_index_namingrl      s     F}	!!bK&7&7{  (K LLD!!! 88EkE#DEFFD__Xd^^1v_>>F	Z%<sCj3PS*=U%V%V  H LK{KKKHN&(+++++r=   c           	          | }d}|                     t          |          ddg          }t          dg dit          ddgg d	gg d
g dg                    }t	          j        ||           d S )Nz$,Unnamed: 2,
a,c,1
a,d,2
b,c,3
b,d,4r   r&   r   z
Unnamed: 2)r1   r2   r1   r2   r/   r0   ra   )r   r   r#   r#   )r   r#   r&   r)   )levelscodesr9   )r   r   r   r   r   r   )r   r   r   r   r   s        r    ,test_multi_index_naming_not_all_at_beginningrp      s    F5D__Xd^^1v_>>F	+++,#J-lllLLL5Q
 
 
  H &(+++++r=   c                 D   |}t          j        g d          }t          t          j                            d                              d          |g d          }|                    |            |                    | g d          }t          j
        ||           d S )N)rC   r#   r&   rr   )rD   r#   r&   r&   )r)   r)   rK   rF   )r   r#   r&   r   )r   from_tuplesr   nprandomdefault_rngstandard_normalto_csvr   r   r   )	temp_filer   r   midxr   r   s         r    %test_no_multi_index_level_names_emptyr{      s     F!"I"I"IJJD
	a  0088  H
 OOI__Y)))_<<F&(+++++r=   c                    | }d}t          j        ddgddg          }t          dg          }t          dd	gg||
          }|                    t          |          dddg          }t          j        ||           t          ddg          }t          ddgd          }t          ddgddgg||
          }|                    t          |          dd          }t          j        ||           d S )Nz
I11,A,A
I12,B,B
I2,1,3
)rC   rD   )rC   zB.1I11I12rP   I2r#   r)   rF   r   )r   r   rC   zA.1r7   rD   13)r   rs   r   r   r   r   r   r   )r   r   r   rz   idxr   r   col_idxs           r    test_header_with_index_colr      s	    FD
 !:|"<UENSSSD
--C1a&d;;;H__Xd^^q!Q_HHF&(+++S%L!!G
E
*
*
*C3*sCj1gNNNH__Xd^^uQ_GGF&(+++++r=   c                    |}d}t          t          |dz             t          j                            d                              |dz             d          }|                    | d           |                                5 }|                    d|           |	                    | dg	          }d d d            n# 1 swxY w Y   t          j        ||                    d
                     d S )Nd   r#   r&   r/   r0   Fr9   z,pandas.core.algorithms._MINIMUM_COMP_ARR_LENr   r   r/   )r   rangert   ru   rv   rw   rx   contextsetattrr   r   r   r   )ry   r   monkeypatchr   ARR_LENdfmr   s           r    test_index_col_large_csvr      s*    FG	w{##&&q))99'A+FF	
 	

 
B IIiuI%%%					 ;!			@'JJJqc::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; &",,s"3"344444s   /C  CCc           	          | }|                     t          d          ddgd          }t          g t          g           t	          j        ddgddggd	d
g                    }t          j        ||           d S )Na0,a1,a2
b0,b1,b2
r   r#   r   r   a1a2b1b2a0b0rP   rF   )r   r   r   r   r   from_arraysr   r   r   r   r   r   s       r    )test_index_col_multiindex_columns_no_datar     s     F__'((!Q1   F 
Bii&D\D$<(t
 
 
  H &(+++++r=   c                     | }|                     t          d          dgd          }t          g ddgt          g d                    }t	          j        ||           d S )	Nz	a0,a1,a2
r   r   r   r   r   r7   rO   )r   r   r   r   r   r   r   s       r    test_index_col_header_no_datar     ss     F__Xl33QC1_MMF
tBT"""  H
 &(+++++r=   c                     | }|                     t          d          ddg          }t          g t          j        g dg dg                    }t          j        ||           d S )Nr   r   r#   r   )r   r   r   )r   r   r   rV   )r   r   r   r   r   r   r   r   s       r    test_multiindex_columns_no_datar   $  s}     F__X&<==q!f_MMF
J*,>,>,>@R@R@R+STT  H &(+++++r=   c                     | }|                     t          d          ddgd          }t          ddggt          j        ddgdd	ggd
dg          t          dg                    }t          j        ||           d S )Nz a0,a1,a2
b0,b1,b2
data,data,datar   r#   r   r   r   r   r   r   r   r   rP   rO   )r   r   r   r   r   r   r   r   r   s       r    +test_multiindex_columns_index_col_with_datar   /  s     F__5661vQR   F 
&	&D\D$<(t
 
 
 VHoo  H &(+++++r=   c                     | }|                     t          d          ddgdgddi          }t          dgdgd	                              d          }t	          j        ||d
           d S )Nz0,1r/   r0   UInt8)r;   r   dtyper   r#   r   )r   F)check_index_type)r   r   r   r   r   r   r   s       r    test_infer_types_boolean_sumr   @  s     F__Cj%Gn	   F   	
 
   inn  &(UCCCCCCr=   z
dtype, val01)int64r#   c                 b   d}| }|t           k    r>|j        dk    r3|                    t          j                            d                     |                    t          |          dd|i          }t          ddgit          |gd|	          
          }t          j        ||           d S )Nza,b
01,2r\   z0Cannot disable type-inference for pyarrow enginer]   r/   )r   r   r0   r&   )r8   r   r9   )objectre   rh   r   rf   rg   r   r   r   r   r   r   )r   r   valrk   r   r   r   r   s           r     test_specify_dtype_for_index_colr   X  s     DF6=I55K%WXX	
 	
 	
 __Xd^^s3,_OOF#s5#S+N+N+NOOOH&(+++++r=   c                     | }d}|                     t          |          ddgd          }t          j        g dddg          }t	          g d	g|d
g          }t          j        ||           d S )Nza,b,c,d
e,f,g,h
x,y,1,2
r   r#   r   ))r/   e)r1   g)r2   hr0   frP   )rL   r#   r&   rM   rO   )r   r   r   rs   r   r   r   )r   r   r   r   colsr   s         r    -test_multiindex_columns_not_leading_index_colr   f  s     FD __1v   F
 !,,,S#J  D +++SEBBBH&(+++++r=   ))__doc__ior   numpyrt   r   pandasr   r   r   pandas._testing_testingr   rf   filterwarnings
pytestmarkusefixturesxfail_pyarrowskip_pyarrowparametrizer!   r<   r?   rJ   r   rT   rW   rl   rp   r{   r   slowr   r   r   r   r   r   r   r   r   rR   r=   r    <module>r      s                       
      [''C 
 ''88{&&~66 u66< < 76<2, , ,$8 8 8 , , ," 		???+,	OOO,-	
c
UU2C-@-@-@AAB	
c
UU2C-@-@-@AAB	3*uuRc/B/B/BCCD	3*uuRc/B/B/BCCDF5//qc
KKK 	
 #J5//qc
KKK 	
 F5//qc
KKK 	
 #J5//qc
KKK 	
9#& &N, ,O& & P, , , , 	R		U		\*	 	, ,	 	,$ , , , , , , , , ,. 5 5 5( , , ,  	, 	, 	, , , , , , ,  D D D. 'EFF
, 
, GF
, , , , , ,r=   