
    A>i;/                         % S r SSKJrJr  SSKrSSKrSSKJs  J	r
  SSKJr  SSKJr  SSKJr  SSKJr  SSKJrJr  SSKJr  \" 5       \" 5       S	.r\\\4   \S
'    " S S5      rS rg)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                      \ rS rSr\R
                  S 5       rS rS rS r	S r
S rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS r\R6                  R9                  SSSS04SSS04SSS04SSS04S SS04S!SS04/5      S" 5       rS# r\R6                  R9                  S$\" S%5      5      S& 5       r S' r!S(r"g))*TestTextReader"   c                     U" SSSS5      $ )Niodatacsvz	test1.csv )selfdatapaths     e/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_textreader.pycsv_pathTestTextReader.csv_path#   s    fe[99    c                     [        US5       n[        U40 [        D6nUR                  5         S S S 5        g ! , (       d  f       g = f)Nrbopenr   r   readr   r   freaders       r   test_file_handleTestTextReader.test_file_handle'   s3    (D!Q6%56FKKM "!!s	   !7
Ac                     [        US5       n[        U4SS 0[        D6nUR                  5         S S S 5        g ! , (       d  f       g = fNr   headerr   r!   s       r   test_file_handle_mmap$TestTextReader.test_file_handle_mmap,   s8    (D!QC$C2BCFKKM "!!s	   #9
Ac                     [        US5       nUR                  5       nS S S 5        [        W5      n[        U4SS 0[        D6nUR                  5         g ! , (       d  f       N<= fr'   )r   r    r   r   r   )r   r   r"   textsrcr#   s         r   test_StringIOTestTextReader.test_StringIO2   sN    (D!Q668D "dmCAA0@A	 "!s   A
A"c                     [        USS9 nSn[        R                  " [        US9   [	        USS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NzUTF-8)encodingz%latin1 is different from the encodingmatchlatin1)r   pytestraises
ValueErrorr	   )r   r   r"   msgs       r   test_encoding_mismatch_warning-TestTextReader.test_encoding_mismatch_warning9   sH    (W-9Cz5X. 6 .-55 .-s!   AAA
A	A
A"c           	          Sn[        [        U5      4SS 0[        D6nUR                  5       n[	        [        [        [        US   5      5      5      S:X  d   eg )Nz	a
b
a
b
ar(   r      )r   r   r   r    lensetmapidr   r   r#   results       r   test_string_factorize$TestTextReader.test_string_factorize@   sN    HTNL4L;KL3s2vay)*+q000r   c                 T   Sn[        [        U5      4SS S.[        D6nUR                  5       n[        R
                  " US   [        R                  " / SQ[        R                  S95        [        R
                  " US   [        R                  " / SQ[        R                  S95        g )	Nza,   b
a,   b
a,   b
a,   bT)skipinitialspacer(   r   )arG   rG   rG   dtype   )brK   rK   rK   	r   r   r   r    tmassert_numpy_array_equalnparrayobject_rA   s       r   test_skipinitialspace$TestTextReader.test_skipinitialspaceG   s    /TN
-1$
BR
 
##1Irxx 4BJJG	
 	##1Irxx 4BJJG	
r   c                     Sn[        [        U5      4SS 0[        D6nUR                  5       nUS   R                  [
        R                  :X  d   eg )NzTrue
False
True
Truer(   r   )r   r   r   r    rI   rO   bool_rA   s       r   test_parse_booleans"TestTextReader.test_parse_booleansV   sE    (HTNL4L;KLay"((***r   c                 T   Sn[        [        U5      4SS S.[        D6nUR                  5       n[        R
                  " US   [        R                  " / SQ[        R                  S95        [        R
                  " US   [        R                  " / SQ[        R                  S95        g )	Nza  b
a		 "b"
"a"	 	 bT)delim_whitespacer(   r   )rG   rG   rG   rH   rJ   )rK   rK   rK   rL   rA   s       r   test_delimit_whitespace&TestTextReader.test_delimit_whitespace^   s    ,TN
-1$
BR
 
##1IrxxrzzB	
 	##1IrxxrzzB	
r   c                     Sn[        [        U5      4SS 0[        D6nUR                  5       n[        R
                  " / SQ[        R                  S9n[        R                  " US   U5        g )Nza
"hello
there"
thisr(   )rG   zhello
therethisrH   r   )	r   r   r   r    rO   rP   rQ   rM   rN   r   r   r#   rB   expecteds        r   test_embedded_newline$TestTextReader.test_embedded_newlinem   sT    (HTNL4L;KL889L
##F1Ix8r   c                     Sn[        [        U5      4SSS S.[        D6nUR                  5       n[        R
                  " SS/5      n[        R                  " US   U5        g )Nz12345,67
345,678:,)	delimiterdecimalr(   g)\@g+ٚu@r   )r   r   r   r    rO   rP   rM   assert_almost_equalr^   s        r   test_euro_decimal TestTextReader.test_euro_decimalv   s`    "TN
&)3t
GW
 88Xw/0
vay(3r   c                     Sn[        [        U5      4SSS S.[        D6nUR                  5       n[        R
                  " SS/[        R                  S9n[        R                  " US   U5        g )	Nz123,456
12,500rc   rd   re   	thousandsr(   @ 0  rH   r   )	r   r   r   r    rO   rP   int64rM   rg   r^   s        r   test_integer_thousands%TestTextReader.test_integer_thousands   si     TN
	

 
 88VUO288<
vay(3r   c                     Sn[        [        U5      SSS S9nUR                  5       n[        SS/5      n[        R
                  " X45        g )Nz123.456
12.500rc   .rk   rm   rn   )r   r   r    r   rM   assert_frame_equalr^   s        r   test_integer_thousands_alt)TestTextReader.test_integer_thousands_alt   sG     TNcS
 fe_-
f/r   c                    Sn[        [        U5      4SS S.[        D6nSn[        R                  " [
        R                  US9   UR                  5         S S S 5        [        [        U5      4SS SS.[        D6nUR                  5       n[        R                  " / SQ[        S	9[        R                  " / S
Q[        S	9[        R                  " / SQ[        S	9S.n[        XE5        [        R                  " [        SS9   [        [        U5      4SS SS.[        D6nUR                  5         S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz'a:b:c
d:e:f
g:h:i
j:k:l:m
l:m:n
o:p:q:rrc   re   r(   zCError tokenizing data\. C error: Expected 3 fields in line 4, saw 4r2   r<   )re   r(   on_bad_lines)rG   dglrH   )rK   ehm)cr"   inr   rJ   r<   zSkipping linerJ   )r   r   r   r5   r6   parserParserErrorr    rO   rP   objectassert_array_dicts_equalrM   assert_produces_warningr   )r   r   r#   r8   rB   r_   s         r   test_skip_bad_lines"TestTextReader.test_skip_bad_lines   s*   =TN
&)$
:J
 U]]6--S9KKM : TN
	

 
 xx,F;xx,F;xx,F;

 	!2''_M	
 #F KKM NM% :9$ NMs   D6?.E6
E
Ec                    Sn[        [        U5      4SSS.[        D6nUR                  n/ SQ/nX4:X  d   eUR	                  5       n[
        R                  " SS/[
        R                  S9[
        R                  " SS	/[
        R                  S9[
        R                  " S
S/[
        R                  S9S.n[        XT5        g )Nz%skip this
skip this
a,b,c
1,2,3
4,5,6rd   r<   rx   rG   rK   r   rJ      rH            r   )	r   r   r   r(   r    rO   rP   ro   r   )r   r   r#   r(   r_   recss         r   test_header_not_enough_lines+TestTextReader.test_header_not_enough_lines   s    :HTNXc!XGWX#$!!!{{}xxAbhh/xxAbhh/xxAbhh/

 	!0r   c                     Sn[        [        U5      4SS SS.[        D6nUR                  5       nS[        R
                  " S/S-  [        S90n[        X45        g )	Nz,\"hello world"
\"hello world"
\"hello world"rd   \)re   r(   
escapecharr   z"hello world"r   rH   )r   r   r   r    rO   rP   r   r   r^   s        r   test_escapecharTestTextReader.test_escapechar   sb    BTN
	

 
 rxx 1A 5VDE 2r   c                     g Nr   r   s    r   test_eof_has_eolTestTextReader.test_eof_has_eol   s    r   c                     g r   r   r   s    r   test_na_substitution#TestTextReader.test_na_substitution   s    r   c                   ^ SmU4S jnU" SS9nUR                  5       nUS   R                  S:X  d   e[        R                  " / SQSS9nUS   U:H  R	                  5       (       d   eUS   R                  S	:X  d   eU" S
S9nUR                  5       nUS   R                  S
:X  d   e[        R                  " / SQS
S9nUS   U:H  R	                  5       (       d   eUS   R                  S
:X  d   eg )Nza,1
aa,2
aaa,3
aaaa,4
aaaaa,5c                  n   > SU ;   a  [        U S   5      U S'   [        [        T5      4SS S.U D[        D6$ )NrI   rd   rx   r
   r   r   r   kwdsr   s    r   _make_reader<TestTextReader.test_numpy_string_dtype.<locals>._make_reader   sJ    $ 1$w- @W*-d>BFV r   zS5,i4rH   r   S5)rG   aaaaaaaaaaaaaarJ   i4S4)rG   r   r   r   r   )r    rI   rO   rP   all)r   r   r#   rB   	ex_valuesr   s        @r   test_numpy_string_dtype&TestTextReader.test_numpy_string_dtype   s    	 G,ay$&&&HH@M	q	Y&++----ay$&&&D)ay$&&&HH?tL	q	Y&++----ay$&&&r   c                   ^ SmU4S jnU" SSS.S9nUR                  5       nUS   R                  S:X  d   eUS   R                  S:X  d   eU" [        R                  [        S.S9nUR                  5       nUS   R                  S:X  d   eUS   R                  S	:X  d   eU" [        R                  " S5      [        R                  " S	5      S.S9nUR                  5       nUS   R                  S:X  d   eUS   R                  S	:X  d   eg )
Nzone,two
1,a
2,b
3,c
4,dc                  l   > SU ;   a  [        U S   5      U S'   [        [        T5      4SS0U D[        D6$ )NrI   re   rd   r   r   s    r   r   4TestTextReader.test_pass_dtype.<locals>._make_reader  s;    $ 1$w- @WhtnXXtXGWXXr   u1S1)onerJ   rH   r   rJ   O)r    rI   rO   uint8r   )r   r   r#   rB   r   s       @r   test_pass_dtypeTestTextReader.test_pass_dtype  s    	Y
 DT$:;ay$&&&ay$&&&BHH$@Aay$&&&ay#%%%BHHTNrxx}$MNay$&&&ay#%%%r   c                   ^ SmU4S jnU" SS9nUR                  5       nU" 5       R                  5       n[        U5      S:X  d   eUS   US   :H  R                  5       (       d   eUS   US   :H  R                  5       (       d   eg )Nz a,b,c
1,2,3
4,5,6
7,8,9
10,11,12c                  >   > [        [        T5      4SS0U D[        D6$ )Nre   rd   )r   r   r   r   s    r   r   1TestTextReader.test_usecols.<locals>._make_reader'  s"    htnXXtXGWXXr   )rJ   r<   )usecolsr<   rJ   )r    r=   r   )r   r   r#   rB   expr   s        @r   test_usecolsTestTextReader.test_usecols  s    	Y f-n!!#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,12re   rd   z*a  b  c1  2  34  5  67  8  910  11  12rY   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                     UR                  SS5      n[        [        U5      40 UD[        D6R	                  5       n[        [        U5      40 UD[        D6R	                  5       n[        XE5        g )Nz
)replacer   r   r   r    r   )r   r,   kwargs	nice_textrB   r_   s         r   test_cr_delimited TestTextReader.test_cr_delimited2  sa    , LLv.	HTNIfI8HINNPhy1PVP?OPUUW 2r   c                 &   Sn[        [        U5      4SS0[        D6R                  5       n[        R
                  " SS/[        R                  S9[        R
                  " SS/[        S9[        R
                  " S	S/[        S9S
.n[        X#5        g )Nza,b,c
1,2,3
4,,re   rd   rJ   r   rH   2 3r   )	r   r   r   r    rO   rP   ro   r   r   )r   r   rB   r_   s       r   test_empty_field_eof#TestTextReader.test_empty_field_eofM  sv    "HTNNcN=MNSSU xxAbhh/xxb	0xxb	0

 	!2r   repeat
   c           	      x   [        S/[        R                  //S/SS/S9n[        / SQ/ SQ/[        S5      SS/S9n[        / SQS	[        R                  [        R                  [        R                  // S
QSS[        R                  [        R                  //[        S5      / SQS9n[	        [        S5      SS/SS9n[        R                  " XR5        [	        [        S5      [        S5      SS9n[        R                  " XS5        [	        [        S5      [        S5      SS9n[        R                  " XT5        g )NrK   rG   r   )columnsindex)rJ   rJ   rJ   r   abcdrJ   )rJ   r<   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   rO   nanlistr	   r   rM   rt   )r   r   rG   rK   r   dfs         r   #test_empty_field_eof_mem_access_bug2TestTextReader.test_empty_field_eof_mem_access_bugY  s    urvvh'#sCjI|\2DLQRTUPVWBFFBFFBFF+R(	 L	
 hz*QseCP
b$12$v,s
 	b$<=v,

 	b$r   c                     [        [        5       SS / SQS9 n[        U[        5      (       d   e S S S 5        g ! , (       d  f       g = f)N   r   )	chunksizer(   r   )r	   r   
isinstancer   )r   r   s     r   test_empty_csv_input#TestTextReader.test_empty_csv_inputx  s;    J"T
b.1111
 
 
s	   9
Ar   N)#__name__
__module____qualname____firstlineno__r5   fixturer   r$   r)   r.   r9   rC   rR   rV   rZ   r`   rh   rp   ru   r   r   r   r   r   r   r   r   markparametrizer   r   ranger   r   __static_attributes__r   r   r   r   r   "   s9   ^^: :
/1
+
9	44	0"H1 3'>&8+& [[3k35GH@#T* 4k35GH7 c" (*<d)CD #5t"<=!	
*3+*3
3 [[XuRy1% 2%<2r   r   c                     U R                  5        HF  u  p#[        R                  " [        R                  " U5      [        R                  " X   5      5        MH     g r   )itemsrM   rN   rO   asarray)leftrightkvs       r   r   r     s7    


##BJJqM2::eh3GH r   )__doc__r   r   r   numpyrO   r5   pandas._libs.parsers_libsparsersr   r   pandas.errorsr   pandasr   pandas._testing_testingrM   pandas.io.parsersr   r	   "pandas.io.parsers.c_parser_wrapperr
   r>   r   dictstr__annotations__r   r   r   r   r   <module>r
     se   

   % % + '   A 25ce#L $sCx. L[2 [2|
Ir   