
    Mh                     N   S r SSKJr  SSKJr  SSKrSSKrSSKr	SSKJ
r
Jr  SSKJr  S r\R                   R#                  SSS	/5      \R                   R#                  S
\S /5      S 5       5       rS rS rS r\R                   R#                  SS \/5      S 5       rS rS rg)zc
Tests column conversion functionality during parsing
for all of the parsers defined in parsers.py
    )StringIO)parseN)	DataFrameIndexc                 b   U nSnUR                   S:X  a>  Sn[        R                  " [        US9   UR	                  [        U5      SS9  S S S 5        g [        R                  " [        SS9   UR	                  [        U5      SS9  S S S 5        g ! , (       d  f       g = f! , (       d  f       g = f)Nzindex,A,B,C,D
foo,2,3,4,5
pyarrowBThe 'converters' option is not supported with the 'pyarrow' enginematchr   
converterszType converters.+)enginepytestraises
ValueErrorread_csvr   	TypeError)all_parsersparserdatamsgs       X/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/parser/test_converters.py!test_converters_type_must_be_dictr      s    FD }}	!R]]:S1OOHTNqO9 2	y(;	<15 
=	< 21	<	<s   B,B 
B 
B.column   D	converterc                 <    [        U R                  S5      S   5      $ )N/   )intsplitxs    r   <lambda>r%   #   s    3qwws|A#7    c                    U nSnUR                   S:X  a?  Sn[        R                  " [        US9   UR	                  [        U5      X0S9  S S S 5        g UR	                  [        U5      X0S9nUR	                  [        U5      5      nUS   R                  U5      US'   [        R                  " Xg5        g ! , (       d  f       g = f)Nz;A,B,C,D
a,1,2,01/01/2009
b,3,4,01/02/2009
c,4,5,01/03/2009
r   r	   r
   r   r   )	r   r   r   r   r   r   maptmassert_frame_equal)r   r   r   r   r   r   resultexpecteds           r   test_convertersr-   !   s    
 FD
 }}	!R]]:S1OOHTN7JOK 2__Xd^8K_LFx~.HSM%%i0HSM&+ 21s   B66
Cc                 X   U nSnSS 0nUR                   S:X  a?  Sn[        R                  " [        US9   UR	                  [        U5      S US9  S S S 5        g UR	                  [        U5      S US9n[        / SQ/ S	Q/5      n[        R                  " XV5        g ! , (       d  f       g = f)
Nz000102,1.2,A
001245,2,Br   c                 "    U R                  5       $ N)stripr#   s    r   r%   2test_converters_no_implicit_conv.<locals>.<lambda>?   s
    qwwyr&   r   r	   r
   headerr   )000102g333333?A)001245r    B	r   r   r   r   r   r   r   r)   r*   )r   r   r   r   r   r+   r,   s          r    test_converters_no_implicit_convr:   :   s    F)D()J}}	!R]]:S1OOHTN4JOO 2__Xd^DZ_PF .0BCDH&+ 21s   B
B)c                 z   0 nU nSnS =US'   =US'   US'   UR                   S:X  a?  Sn[        R                  " [        US9   UR	                  [        U5      S	US
9  S S S 5        g UR	                  [        U5      S	US
9n[        / SQ/ SQ/ SQ// SQS9n[        R                  " XV5        g ! , (       d  f       g = f)NzId;Number1;Number2;Text1;Text2;Number3
1;1521,1541;187101,9543;ABC;poi;4,7387
2;121,12;14897,76;DEF;uyt;0,3773
3;878,158;108013,434;GHI;rez;2,7356c                 8    [        U R                  SS5      5      $ )N,.)floatreplacer#   s    r   r%   5test_converters_euro_decimal_format.<locals>.<lambda>Y   s    %		#s+,r&   Number1Number2Number3r   r	   r
   ;)sepr   )   gAc̝ė@g	hAABCpoig8m@)r    gHzG^@g{G@DEFuytg1%?)r   g%Cq@g^@GHIrezg4@@)IdrB   rC   Text1Text2rD   )columnsr9   )r   r   r   r   r   r+   r,   s          r   #test_converters_euro_decimal_formatrR   N   s    JF'D 	--Jy -Jy1J5 }}	!R]]:S1OOHTN
OK 2__Xd^_LF=7:	

 JH &+ 21s   B,,
B:c                     U nSnS nS nS n/ nX44 H  nUR                   S:X  aD  Sn[        R                  " [        US9   UR	                  [        U5      XWS.S	S /S
9  S S S 5        MW  UR	                  [        U5      XWS.S	S /S
9n	[        R                  " U	S   S   5      (       d   eUR                  U	5        M     UR                   S:w  a  [        R                  " US   US   5        g g ! , (       d  f       N= f)Nz+id,score,days
1,2,12
2,2-5,
3,,14+
4,6-12,2c                     U R                  5       n U (       d  [        R                  $ U R                  S5      nU(       a  [	        U S S 5      S-   n U $ [	        U 5      n U $ N+rG   r1   npnanendswithr!   r$   is_pluss     r   convert_days6test_converters_corner_with_nans.<locals>.convert_daysv   S    GGI66M**S/AcrFaA  AAr&   c                     U R                  5       n U (       d  [        R                  $ U R                  S5      nU(       a  [	        U S S 5      S-   n U $ [	        U 5      n U $ rU   rX   r\   s     r   convert_days_sentinel?test_converters_corner_with_nans.<locals>.convert_days_sentinel   r`   r&   c                     U R                  5       n U (       d  [        R                  $ U R                  S5      S:  a*  [	        [
        U R                  S5      5      u  pSX-   -  nU$ [        U 5      nU$ )N-r   g      ?)r1   rY   rZ   findr(   r!   r"   r?   )r$   val_minval_maxvals       r   convert_score7test_converters_corner_with_nans.<locals>.convert_score   sc    GGI66M66#;?"35G*+C 
 (C
r&   r   r	   r
   )scoredays )r   	na_valuesrm   rG   r   )r   r   r   r   r   r   pdisnaappendr)   r*   )
r   r   r   r^   rb   rj   resultsday_converterr   r+   s
             r    test_converters_corner_with_nansru   m   s   FD G&>==I%VCz5TN)6N!4j    6 TN!.F4j ! 

 wwvf~a())))v# ?& }}	!
gaj'!*5 "! 65s   C//
C=	conv_fc                     U $ r0    r#   s    r   r%   r%      s    ar&   c           	      j   U nSnUR                   S:X  aB  Sn[        R                  " [        US9   UR	                  [        U5      SSSU0S9  S S S 5        g UR	                  [        U5      SSSU0S9n[        SS	S
/0[        SS/SSS9S9n[        R                  " XV5        g ! , (       d  f       g = f)NzA;B
1;2
3;4r   r	   r
   rE   r6   )rF   	index_colr   r8   r       13object)namedtype)index)
r   r   r   r   r   r   r   r   r)   r*   )r   rv   r   r   r   rsxps          r   test_converter_index_col_bugr      s     FD}}	!R]]:S1OOC3C=   2 		C3C= 
 
B 
C!Q=sCjs((S	TB"! 21 	s   B$$
B2c                 X   U nSnUR                   S:X  aA  Sn[        R                  " [        US9   UR	                  [        U5      SS 0S9  S S S 5        g UR	                  [        U5      SS 0S9n[        S	S
/SS/S.5      n[        R                  " XE5        g ! , (       d  f       g = f)NzA,B
1,2
3,4r   r	   r
   r6   c                     U $ r0   rx   r#   s    r   r%   0test_converter_identity_object.<locals>.<lambda>   s    qr&   r   c                     U $ r0   rx   r#   s    r   r%   r      s    Ar&   r|   r}   r    r{   )r6   r8   r9   )r   r   r   r   r   r   s         r   test_converter_identity_objectr      s    FD}}	!R]]:S1OOHTN[7IOJ 2	$S+4F	GB	#s1a&1	2B"! 21s   B
B)c           	         U nSnUR                   S:X  a  Sn[        R                  " [        US9   UR	                  [        U5      [        [        S5      5      [        R                  [        R                  [        R                  S.S9  S S S 5        g UR	                  [        U5      [        [        S5      5      [        R                  [        R                  [        R                  S.S9n[        [        R                  " S/5      [        R                  " S/5      [        R                  " S	/5      S.5      n[        R                  " XE5        g ! , (       d  f       g = f)
NzA,B,B
X,Y,Z
1,2,3r   r	   r
   r    ))r6   X)r8   Y)r8   Zr3   rG   r   )r   r   r   r   r   r   listrangerY   int32float32r   r)   r*   )r   r   r   r   r+   r,   s         r   test_converter_multi_indexr      s   F D}}	!R]]:S1OOE!H~ " " "

   2 	__E!H~


  F !!

A3	
H &+= 21 	s   AE
E!)__doc__ior   dateutil.parserr   numpyrY   r   pandasrp   r   r   pandas._testing_testingr)   r   markparametrizer-   r:   rR   ru   strr   r   r   rx   r&   r   <module>r      s     !    6 As8,%78, -,*,(,>K6\ K#56" 7"*""%,r&   