
    d                        d Z ddlmZ ddlZddlZddlmZ ddlm	Z
 ej                            d          Zej                            dddgg          d             Zej                            d	i d
diddig          d             Zd Zd Zd Zej                            dg d          d             Zej                            dddg          d             Zd ZdS )zf
Tests that comments are properly handled during parsing
for all of the parsers defined in parsers.py
    )StringION)	DataFramepyarrow_skip	na_valuesNaNc                     | }d}t          g ddt          j        dggg d          }|                    t	          |          d|          }t          j        ||           d S )	Nz&A,B,C
1,2.,4.#hello world
5.,NaN,10.0
g      ?g       @      @      @      $@ABCcolumns#commentr   r   npnanread_csvr   tmassert_frame_equal)all_parsersr   parserdataexpectedresults         _/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/io/parser/test_comment.pytest_commentr"      sw    FD 	3-.  H __Xd^^SI_NNF&(+++++    read_kwargslineterminator*delim_whitespaceTc                    | }d}|                     d          r|                    dd          }n|                     d          rn|j        dk    r:t          j                            d          }|j                            |           |                    d	|                     d                    }d
|d<    |j        t          |          fi |}t          g ddt          j        dggg d          }t          j        ||           d S )Nz@# empty
A,B,C
1,2.,4.#hello world
#ignore this line
5.,NaN,10.0
r'   , r%   cz2Custom terminator not supported with Python engine)reason
r   r   r	   r   r   r   r   )getreplaceenginepytestmarkxfailnode
add_markerr   r   r   r   r   r   r   )r   r$   requestr   r   r2   r    r   s           r!   test_line_commentr7      s*    FD )** 	E||C%%	)	*	* E=C;$$K %  D L##D)))||D+//2B"C"CDD K	V_Xd^^;;{;;F	3-.  H &(+++++r#   c                     | }d}t          g ddt          j        dggg d          }|                    t	          |          dd	          }t          j        ||           d S )
NzH# empty
random line
# second empty line
1,2,3
A,B,C
1,2.,4.
5.,NaN,10.0
r	   r   r   r   r   r      )r   skiprowsr   r   r   r   r   r    s        r!   test_comment_skiprowsr<   =   sw    FD 	3-.  H __Xd^^S1_EEF&(+++++r#   c                     | }d}t          g ddt          j        dggg d          }|                    t	          |          dd	          }t          j        ||           d S )
Nz<# empty
# second empty line
1,2,3
A,B,C
1,2.,4.
5.,NaN,10.0
r	   r   r   r   r   r      r   headerr   r;   s        r!   test_comment_headerrA   O   sw    FD 	3-.  H __Xd^^S_CCF&(+++++r#   c                     | }d}t          g ddt          j        dggg d          }|                    t	          |          ddd	
          }t          j        ||           d S )NzU# empty
# second empty line
# third empty line
X,Y,Z
1,2,3
A,B,C
1,2.,4.
5.,NaN,10.0
r	   r   r   r   r   r   r9   r>   )r   r:   r@   r   r;   s        r!   test_comment_skiprows_headerrC   `   sy    FD 	3-.  H __Xd^^S1Q_OOF&(+++++r#   comment_char)r   ~&^r&   @c                     | }d}|                     t          |                    d|                    |          }t          g dg dgg d          }t	          j        ||           d S )Nz,a,b,c
1,2,3#ignore this!
4,5,6#ignorethistoor   )r   r>         )r9         abr+   r   )r   r   r/   r   r   r   )r   rD   r   r   r    r   s         r!   test_custom_comment_charrR   u   s}    F;D__c<0011<   F )))YYY/IIIH&(+++++r#   r@   inferc                     | }d}|t          ddgddgddgd          }nt          g d	gg d
          }|                    t          |          d|          }t          j        ||           d S )Nz # notes
a,b,c
# more notes
1,2,3rP   1rQ   2r+   3)r   r>   rK   rJ   rO   r   r   r?   )r   r   r   r   r   )r   r@   r   r   r   r    s         r!   test_comment_first_linerX      s     F0D~#sc
SzJJKKiii[///BBB__Xd^^S_HHF&(+++++r#   c                    | j         dk    r@d}|j                            t          j                            |t                               | }d}|                    t          |          dd          }t          g dg d	d
t          j        t          j        gdt          j        dgd          }t          j        ||           d S )Nr+   z=see gh-34002: works on the python engine but not the c engine)r,   raiseszU# this is a comment
col1,col2,col3,col4
1,2,3,4#inline comment
4,5#,6,10
7,8,#N/A,11
r   z#N/Ar   )r>   r9      )rK   rM      g      @r
   g      &@)col1col2col3col4)r0   r4   r5   r1   r2   r3   AssertionErrorr   r   r   r   r   r   r   )r   r6   r,   r   r   r    r   s          r!   "test_comment_char_in_default_valuerb      s    S  P 1 1 1 W WXXXF	 	 __Xd^^SF_KKFIIII"&"&)"&$'		
 	
 H &(+++++r#   )__doc__ior   numpyr   r1   pandasr   pandas._testing_testingr   r2   usefixtures
pytestmarkparametrizer"   r7   r<   rA   rC   rR   rX   rb    r#   r!   <module>rm      s                          [$$^44
 teWo66
, 
, 76
, B)3/2Dd1KL , , ,8, , ,$, , ,", , ,* )G)G)GHH, , IH, GT?33, , 43,, , , , ,r#   