
    Pi;/                         U d Z ddlmZmZ ddlZddlZddlmc m	Z
 ddlmZ ddlmZ ddlmZ ddlmZ ddlmZmZ ddlmZ  e             e            d	Zeeef         ed
<    G d d          Zd ZdS )z\
Tests the TextReader class in parsers.pyx, which
is integral to the C engine in parsers.py
    )BytesIOStringION)
TextReader)ParserWarning)	DataFrame)TextFileReaderread_csv)ensure_dtype_objs)	na_values
na_fvalues_na_value_kwargsc                      e Zd Zej        d             Zd Zd Zd Zd Z	d Z
d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                            ddddifdddifdddifdddifdddifd ddifg          d!             Zd" Zej                            d# ed$                    d%             Zd& Z d'S )(TestTextReaderc                      |dddd          S )Niodatacsvz	test1.csv )selfdatapaths     z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/io/parser/test_textreader.pycsv_pathzTestTextReader.csv_path#   s    xfe[999    c                     t          |d          5 }t          |fi t          }|                                 d d d            d S # 1 swxY w Y   d S )Nrbopenr   r   readr   r   freaders       r   test_file_handlezTestTextReader.test_file_handle'   s    (D!! 	Q66%566FKKMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   'AA	A	c                     t          |d          5 }t          |fdd it          }|                                 d d d            d S # 1 swxY w Y   d S Nr   headerr   r   s       r   test_file_handle_mmapz$TestTextReader.test_file_handle_mmap,   s    (D!! 	QCC$C2BCCFKKMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   )AAAc                     t          |d          5 }|                                }d d d            n# 1 swxY w Y   t          |          }t          |fdd it          }|                                 d S r$   )r   r   r   r   r   )r   r   r    textsrcr!   s         r   test_StringIOzTestTextReader.test_StringIO2   s    (D!! 	Q6688D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	dmmCAAA0@AAs   266c                     t          |d          5 }d}t          j        t          |          5  t	          |d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NzUTF-8)encodingz%latin1 is different from the encodingmatchlatin1)r   pytestraises
ValueErrorr	   )r   r   r    msgs       r   test_encoding_mismatch_warningz-TestTextReader.test_encoding_mismatch_warning9   s    (W--- 	/9Cz555 / /X..../ / / / / / / / / / / / / / /	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s4   A&AA&A	A&A	A&&A*-A*c           	          d}t          t          |          fdd it          }|                                }t	          t          t          t          |d                                       dk    sJ d S )Nz	a
b
a
b
ar%   r      )r   r   r   r   lensetmapidr   r   r!   results       r   test_string_factorizez$TestTextReader.test_string_factorize@   sj    HTNNLL4L;KLL3s2vay))**++q000000r   c                 b   d}t          t          |          fdd dt          }|                                }t	          j        |d         t          j        g dt          j                             t	          j        |d         t          j        g dt          j                             d S )	Nza,   b
a,   b
a,   b
a,   bT)skipinitialspacer%   r   )ar@   r@   r@   dtype   )brD   rD   rD   	r   r   r   r   tmassert_numpy_array_equalnparrayobject_r;   s       r   test_skipinitialspacez$TestTextReader.test_skipinitialspaceG   s    /TNN
-1$
 
BR
 
 
#1Irx 4 4 4BJGGG	
 	
 	
 	#1Irx 4 4 4BJGGG	
 	
 	
 	
 	
r   c                     d}t          t          |          fdd it          }|                                }|d         j        t
          j        k    sJ d S )NzTrue
False
True
Truer%   r   )r   r   r   r   rB   rH   bool_r;   s       r   test_parse_booleansz"TestTextReader.test_parse_booleansV   sT    (HTNNLL4L;KLLay"(******r   c                 b   d}t          t          |          fdd dt          }|                                }t	          j        |d         t          j        g dt          j                             t	          j        |d         t          j        g dt          j                             d S )	Nza  b
a		 "b"
"a"	 	 bT)delim_whitespacer%   r   )r@   r@   r@   rA   rC   )rD   rD   rD   rE   r;   s       r   test_delimit_whitespacez&TestTextReader.test_delimit_whitespace^   s    ,TNN
-1$
 
BR
 
 
#1IrxrzBBB	
 	
 	
 	#1IrxrzBBB	
 	
 	
 	
 	
r   c                     d}t          t          |          fdd it          }|                                }t	          j        g dt          j                  }t          j        |d         |           d S )Nza
"hello
there"
thisr%   )r@   zhello
therethisrA   r   )	r   r   r   r   rH   rI   rJ   rF   rG   r   r   r!   r<   expecteds        r   test_embedded_newlinez$TestTextReader.test_embedded_newlinem   so    (HTNNLL4L;KLL8999LLL
#F1Ix88888r   c                     d}t          t          |          fddd dt          }|                                }t	          j        ddg          }t          j        |d         |           d S )Nz12345,67
345,678:,)	delimiterdecimalr%   g)\@g+ٚu@r   )r   r   r   r   rH   rI   rF   assert_almost_equalrT   s        r   test_euro_decimalz TestTextReader.test_euro_decimalv   sx    "TNN
&)3t
 
GW
 
 8Xw/00
vay(33333r   c                     d}t          t          |          fddd dt          }|                                }t	          j        ddgt          j                  }t          j        |d         |           d S )	Nz123,456
12,500rX   rY   rZ   	thousandsr%   @ 0  rA   r   )	r   r   r   r   rH   rI   int64rF   r\   rT   s        r   test_integer_thousandsz%TestTextReader.test_integer_thousands   s     TNN
	
 

 
 
 8VUO28<<<
vay(33333r   c                     d}t          t          |          ddd           }|                                }t          ddg          }t	          j        ||           d S )Nz123.456
12.500rX   .r_   ra   rb   )r   r   r   r   rF   assert_frame_equalrT   s        r   test_integer_thousands_altz)TestTextReader.test_integer_thousands_alt   sc     TNNcS
 
 
 fe_--
fh/////r   c                    d}t          t          |          fdd dt          }d}t          j        t
          j        |          5  |                                 d d d            n# 1 swxY w Y   t          t          |          fdd ddt          }|                                }t          j	        g dt          	          t          j	        g d
t          	          t          j	        g dt          	          d}t          ||           t          j        t          d          5  t          t          |          fdd ddt          }|                                 d d d            d S # 1 swxY w Y   d S )Nz'a:b:c
d:e:f
g:h:i
j:k:l:m
l:m:n
o:p:q:rrX   rZ   r%   zCError tokenizing data\. C error: Expected 3 fields in line 4, saw 4r-   r6   )rZ   r%   on_bad_lines)r@   dglrA   )rD   ehm)cr    inr   rC   r6   zSkipping linerC   )r   r   r   r0   r1   parserParserErrorr   rH   rI   objectassert_array_dicts_equalrF   assert_produces_warningr   )r   r   r!   r3   r<   rU   s         r   test_skip_bad_linesz"TestTextReader.test_skip_bad_lines   s%   =TNN
&)$
 
:J
 
 U]6-S999 	 	KKMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 TNN
	
 

 
 
 x,,,F;;;x,,,F;;;x,,,F;;;
 

 	!222'_MMM 	 		 
 # F KKMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   A((A,/A,,8E11E58E5c                    d}t          t          |          fdddt          }|j        }g dg}||k    sJ |                                }t          j        ddgt
          j                  t          j        dd	gt
          j                  t          j        d
dgt
          j                  d}t          ||           d S )Nz%skip this
skip this
a,b,c
1,2,3
4,5,6rY   r6   rj   r@   rD   rr   rC      rA            ru   )	r   r   r   r%   r   rH   rI   rc   ry   )r   r   r!   r%   rU   recss         r   test_header_not_enough_linesz+TestTextReader.test_header_not_enough_lines   s    :HTNNXc!XXGWXX#OO$!!!!{{}}xAbh///xAbh///xAbh///
 

 	!x00000r   c                     d}t          t          |          fdd ddt          }|                                }dt	          j        dgdz  t                    i}t          ||           d S )	Nz,\"hello world"
\"hello world"
\"hello world"rY   \)rZ   r%   
escapecharr   z"hello world"r   rA   )r   r   r   r   rH   rI   rx   ry   rT   s        r   test_escapecharzTestTextReader.test_escapechar   s    BTNN
	
 

 
 
 rx 1A 5VDDDE 22222r   c                     d S Nr   r   s    r   test_eof_has_eolzTestTextReader.test_eof_has_eol   s    r   c                     d S r   r   r   s    r   test_na_substitutionz#TestTextReader.test_na_substitution   s    r   c                    dfd} |d          }|                                 }|d         j        dk    sJ t          j        g dd          }|d         |k                                    sJ |d         j        d	k    sJ  |d
          }|                                 }|d         j        d
k    sJ t          j        g dd
          }|d         |k                                    sJ |d         j        d
k    sJ d S )Nza,1
aa,2
aaa,3
aaaa,4
aaaaa,5c                      d| v rt          | d                   | d<   t          t                    fdd d| t          S )NrB   rY   rj   r
   r   r   r   kwdsr   s    r   _make_readerz<TestTextReader.test_numpy_string_dtype.<locals>._make_reader   s[    $ 1$w- @ @W*-d >BFV  r   zS5,i4rA   r   S5)r@   aaaaaaaaaaaaaarC   i4S4)r@   r   r   r   r   )r   rB   rH   rI   all)r   r   r!   r<   	ex_valuesr   s        @r   test_numpy_string_dtypez&TestTextReader.test_numpy_string_dtype   s=   	 	 	 	 	 G,,,ay$&&&&H@@@MMM	q	Y&++-----ay$&&&&D)))ay$&&&&H???tLLL	q	Y&++-----ay$&&&&&&r   c                 2   dfd} |ddd          }|                                 }|d         j        dk    sJ |d         j        dk    sJ  |t          j        t          d          }|                                 }|d         j        dk    sJ |d         j        d	k    sJ  |t          j        d          t          j        d	          d          }|                                 }|d         j        dk    sJ |d         j        d	k    sJ d S )
Nzone,two
1,a
2,b
3,c
4,dc                      d| v rt          | d                   | d<   t          t                    fddi| t          S )NrB   rZ   rY   r   r   s    r   r   z4TestTextReader.test_pass_dtype.<locals>._make_reader  sH    $ 1$w- @ @WhtnnXXXtXGWXXXr   u1S1)onerC   rA   r   rC   O)r   rB   rH   uint8rx   )r   r   r!   r<   r   s       @r   test_pass_dtypezTestTextReader.test_pass_dtype  sA   	Y 	Y 	Y 	Y 	Y
 DT$:$:;;;ay$&&&&ay$&&&&BH$@$@AAAay$&&&&ay#%%%%BHTNNrx}}$M$MNNNay$&&&&ay#%%%%%%r   c                 P   dfd} |d          }|                                 } |                                             }t          |          dk    sJ |d         |d         k                                    sJ |d         |d         k                                    sJ d S )Nz a,b,c
1,2,3
4,5,6
7,8,9
10,11,12c                  J    t          t                    fddi| t          S )NrZ   rY   )r   r   r   r   s    r   r   z1TestTextReader.test_usecols.<locals>._make_reader'  s*    htnnXXXtXGWXXXr   )rC   r6   )usecolsr6   rC   )r   r7   r   )r   r   r!   r<   expr   s        @r   test_usecolszTestTextReader.test_usecols  s    	Y 	Y 	Y 	Y 	Y f---lnn!!##6{{aq	SV#((*****q	SV#((*******r   ztext, kwargsz a,b,c1,2,34,5,67,8,910,11,12rZ   rY   z*a  b  c1  2  34  5  67  8  910  11  12rP   Tz a,b,c1,2,34,5,6,88,910,11,12zdA,B,C,D,E,F,G,H,I,J,K,L,M,N,OAAAAA,BBBBB,0,0,0,0,0,0,0,0,0,0,0,0,0,BBBBB,0,0,0,0,0,0,0,0,0,0,0,0,0zA  B  C  2  34  5  6zA B C2 34 5 6c                    |                     dd          }t          t          |          fi |t                                          }t          t          |          fi |t                                          }t          ||           d S )Nz
)replacer   r   r   r   ry   )r   r(   kwargs	nice_textr<   rU   s         r   test_cr_delimitedz TestTextReader.test_cr_delimited2  s    , LLv..	HTNNIIfI8HIINNPPhy11PPVP?OPPUUWW 22222r   c                 H   d}t          t          |          fddit                                          }t	          j        ddgt          j                  t	          j        ddgt                    t	          j        d	dgt                    d
}t          ||           d S )Nza,b,c
1,2,3
4,,rZ   rY   rC   r~   rA   2 3ru   )	r   r   r   r   rH   rI   rc   rx   ry   )r   r   r<   rU   s       r   test_empty_field_eofz#TestTextReader.test_empty_field_eofM  s    "HTNNNNcN=MNNSSUU xAbh///xb	000xb	000
 

 	!22222r   repeat
   c           	         t          dgt          j        ggdgddg          }t          g dg dgt          d          ddg          }t          g dd	t          j        t          j        t          j        gg d
ddt          j        t          j        ggt          d          g d          }t	          t          d          ddgd          }t          j        ||           t	          t          d          t          d          d          }t          j        ||           t	          t          d          t          d          d          }t          j        ||           d S )NrD   r@   rr   )columnsindex)rC   rC   rC   r   abcdrC   )rC   r6   r   r~   r   )   	   r            )r   r         za,b
c
r   )skiprowsnamesenginez1,1,1,1,0
1,1,1,1,0


)r   r   z"0,1,2,3,4
5,6
7,8,9,10,11
12,13,14)r   rH   nanlistr	   r   rF   rg   )r   r   r@   rD   rr   dfs         r   #test_empty_field_eof_mem_access_bugz2TestTextReader.test_empty_field_eof_mem_access_bugY  sm    urvh'#sCjIII|||\\\2DLLQRTUPVWWWBFBFBF+R(	 LL--	
 	
 	
 hz**QseCPPP
b!$$$122$v,,s
 
 
 	b!$$$<==v,,
 
 

 	b!$$$$$r   c                     t          t                      dd g d          5 }t          |t                    sJ 	 d d d            d S # 1 swxY w Y   d S )N   r}   )	chunksizer%   r   )r	   r   
isinstancer   )r   r   s     r   test_empty_csv_inputz#TestTextReader.test_empty_csv_inputx  s    JJ"T
 
 
 	2b.111111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   AAAN)!__name__
__module____qualname__r0   fixturer   r"   r&   r*   r4   r=   rK   rN   rQ   rV   r]   rd   rh   r{   r   r   r   r   r   r   r   markparametrizer   r   ranger   r   r   r   r   r   r   "   sF       ^: : ^:  
    / / /1 1 1
 
 
+ + +
 
 
9 9 9	4 	4 	44 4 4	0 	0 	0" " "H1 1 1 3 3 3    ' ' '>& & &8+ + +& [3k35GH@#T* 4k35GH7 c" (*<d)CD #5t"<=!	
 *3 3+ *3
3 
3 
3 [XuuRyy11% % 21%<2 2 2 2 2r   r   c                     |                                  D ]D\  }}t          j        t          j        |          t          j        ||                              Ed S r   )itemsrF   rG   rH   asarray)leftrightkvs       r   ry   ry     sW    

 I I1
#BJqMM2:eAh3G3GHHHHI Ir   )__doc__r   r   r   numpyrH   r0   pandas._libs.parsers_libsparsersrv   r   pandas.errorsr   pandasr   pandas._testing_testingrF   pandas.io.parsersr   r	   "pandas.io.parsers.c_parser_wrapperr
   r8   r   dictstr__annotations__r   ry   r   r   r   <module>r      sq    
       
      % % % % % % % % % + + + + + + ' ' ' ' ' '                    A @ @ @ @ @ 25ccee#L#L $sCx. L L L[2 [2 [2 [2 [2 [2 [2 [2|
I I I I Ir   