a
    é´«jˆ  ã                   @   sÐ   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ddgg¡dd„ ƒZej d	i d
diddig¡dd„ ƒZdd„ Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZej dddg¡dd„ ƒZdd„ ZdS ) zf
Tests that comments are properly handled during parsing
for all of the parsers defined in parsers.py
é    )ÚStringION)Ú	DataFrameÚ	na_valuesÚNaNc                 C   s    | }d}t g d¢dtjdggg d¢d�}|jdkr|d}tjt|d	��$ |jt|ƒd
|d� W d   ƒ n1 sn0    Y  d S |jt|ƒd
|d�}t	 
||¡ d S )Nz&A,B,C
1,2.,4.#hello world
5.,NaN,10.0
©g      ð?g       @ç      @ç      @ç      $@©ÚAÚBÚC©ÚcolumnsÚpyarrowú?The 'comment' option is not supported with the 'pyarrow' engine©Úmatchú#©Úcommentr   ©r   ÚnpÚnanÚengineÚpytestÚraisesÚ
ValueErrorÚread_csvr   ÚtmÚassert_frame_equal)Úall_parsersr   ÚparserÚdataÚexpectedÚmsgÚresult© r'   úb/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/io/parser/test_comment.pyÚtest_comment   s    ÿ
2r)   Úread_kwargsÚlineterminatorÚ*Údelim_whitespaceTc           
   	   C   sô  | }d}d }d}|  d¡r,| dd¡}t}n|  d¡rH| d|  d¡¡}d|d	< |jd
kräd|v rhd}nd}tjt|d��V tj||dd��& |j	t
|ƒfi |¤Ž W d   ƒ n1 s¸0    Y  W d   ƒ n1 sÖ0    Y  d S |jdk�r||  d¡�r|d}tjt|d��X tj||dd��& |j	t
|ƒfi |¤Ž W d   ƒ n1 �sN0    Y  W d   ƒ n1 �sn0    Y  d S tj||dd��& |j	t
|ƒfi |¤Ž}W d   ƒ n1 �sº0    Y  tg d¢dtjdggg d¢d�}	t ||	¡ d S )Nz@# empty
A,B,C
1,2.,4.#hello world
#ignore this line
5.,NaN,10.0
z;The 'delim_whitespace' keyword in pd.read_csv is deprecatedr-   ú,ú r+   Ú
r   r   r   zFThe 'lineterminator' option is not supported with the 'pyarrow' enginer   r   F)r   Zcheck_stacklevelÚpythonz>Custom line terminators not supported in python parser \(yet\)r   r   r	   r
   r   )ÚgetÚreplaceÚFutureWarningr   r   r   r   r   Zassert_produces_warningr   r   r   r   r   r    )
r!   r*   Úrequestr"   r#   ÚwarnZdepr_msgr%   r&   r$   r'   r'   r(   Útest_line_comment!   sF    


ÿÿRÿV6ÿr7   c                 C   s    | }d}t g d¢dtjdggg d¢d�}|jdkr|d}tjt|d	��$ |jt|ƒd
dd� W d   ƒ n1 sn0    Y  d S |jt|ƒd
dd�}t	 
||¡ 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   r   r   é   )r   Úskiprowsr   ©r!   r"   r#   r$   r%   r&   r'   r'   r(   Útest_comment_skiprowsU   s    	ÿ
2r;   c                 C   s    | }d}t g d¢dtjdggg d¢d�}|jdkr|d}tjt|d	��$ |jt|ƒd
dd� W d   ƒ n1 sn0    Y  d S |jt|ƒd
dd�}t	 
||¡ 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   r   r   é   ©r   Úheaderr   r:   r'   r'   r(   Útest_comment_headerm   s    ÿ
2r?   c                 C   s¤   | }d}t g d¢dtjdggg d¢d�}|jdkr~d}tjt|d	��& |jt|ƒd
ddd� W d   ƒ n1 sp0    Y  d S |jt|ƒd
ddd�}t	 
||¡ 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   r   r   r   r8   r<   )r   r9   r>   r   r:   r'   r'   r(   Útest_comment_skiprows_headerƒ   s    ÿ
4r@   Úcomment_char)r   ú~ú&ú^r,   ú@c                 C   s¨   | }d}|j dkrbd}tjt|d��* |jt| d|¡ƒ|d� W d   ƒ n1 sT0    Y  d S |jt| d|¡ƒ|d�}tg d¢g d¢gg d	¢d
�}t 	||¡ d S )Nz,a,b,c
1,2,3#ignore this!
4,5,6#ignorethistoor   r   r   r   )r   ©r<   é   é   )r8   é   é   ©ÚaÚbÚcr   )
r   r   r   r   r   r   r3   r   r   r    )r!   rA   r"   r#   r%   r&   r$   r'   r'   r(   Útest_custom_comment_charž   s    
ÿ$ÿrO   r>   Zinferc                 C   s¼   | }d}|d u r.t ddgddgddgdœƒ}nt g d	¢gg d
¢d�}|jdkr˜d}tjt|d��$ |jt|ƒd|d� W d   ƒ n1 sŠ0    Y  d S |jt|ƒd|d�}t ||¡ d S )Nz # notes
a,b,c
# more notes
1,2,3rL   Ú1rM   Ú2rN   Ú3)r   r<   rG   rF   rK   r   r   r   r   r   r=   )	r   r   r   r   r   r   r   r   r    )r!   r>   r"   r#   r$   r%   r&   r'   r'   r(   Útest_comment_first_line²   s    
2rS   c                 C   sÐ   | j dkr$d}| tjj|td�¡ | }d}|j dkr€d}tjt|d��$ |jt	|ƒdd	d
� W d   ƒ n1 sr0    Y  d S |jt	|ƒdd	d
�}t
g d¢g d¢dtjtjgdtjdgdœƒ}t ||¡ d S )NrN   z=see gh-34002: works on the python engine but not the c engine)Úreasonr   zU# this is a comment
col1,col2,col3,col4
1,2,3,4#inline comment
4,5#,6,10
7,8,#N/A,11
r   r   r   r   z#N/Ar   )r<   r8   é   )rG   rI   é   g      @r   g      &@)Zcol1Zcol2Zcol3Zcol4)r   Zapplymarkerr   ÚmarkZxfailÚAssertionErrorr   r   r   r   r   r   r   r   r    )r!   r5   rT   r"   r#   r%   r&   r$   r'   r'   r(   Ú"test_comment_char_in_default_valueÆ   s(    
ÿ
2
üÿrY   )Ú__doc__Úior   Únumpyr   r   Zpandasr   Zpandas._testingZ_testingr   rW   Zparametrizer)   r7   r;   r?   r@   rO   rS   rY   r'   r'   r'   r(   Ú<module>   s&   
ÿ
1

