
    G/Ph5                         d dl Z d dlmZ d dlZd dlmZmZmZm	Z	 d dl
mZmZmZmZmZmZ  G d d          Z G d d          Zd	 Z G d
 d          Z G d d          ZdS )    N)date)assert_assert_equalassert_allcloseassert_raises)LineSplitterNameValidatorStringConverterhas_nested_fields
easy_dtypeflatten_dtypec                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	TestLineSplitterzTests the LineSplitter class.c                     d} t                      |          }t          |g d            t          d          |          }t          |g d           dS )zTest LineSplitter w/o delimiter 1 2 3 4  5 # test)12345 Nr   r   selfstrgtests      ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/lib/tests/test__iotools.pytest_no_delimiterz"TestLineSplitter.test_no_delimiter   se    #|~~d##T444555|B%%T44455555    c                     d} t          d          |          }t          |g d            t          d          |          }t          |ddg           dS )zTest space delimiterr    r   r   r   r   r   r   z  z1 2 3 4r   Nr   r   s      r   test_space_delimiterz%TestLineSplitter.test_space_delimiter   sg    # |C  &&T888999!|D!!$''TIs+,,,,,r   c                     d} t          d          |          }t          |g d           d} t          d          |          }t          |g d           dS )zTest tab delimiterz 1	 2	 3	 4	 5  6	)r   r   r   r   5  6z 1  2	 3  4	 5  6)z1  23  4r&   Nr   r   s      r   test_tab_delimiterz#TestLineSplitter.test_tab_delimiter!   sn    &!|D!!$''T777888$!|D!!$''T33344444r   c                    d} t          d          |          }t          |g d           d} t          d          |          }t          |g d           d} t          dd          |          }t          |g d           d	S )
zTest LineSplitter on delimiterz
1,2,3,4,,5,r"   z 1,2,3,4,,5 # tests    1,2,3,4,,5 % test   ,   %)	delimitercommentsNr   r   s      r   test_other_delimiterz%TestLineSplitter.test_other_delimiter*   s     |C  &&T888999# |C  &&T888999 %:|dT:::4@@T88899999r   c                 
   d} t          d          |          }t          |g d           d} t          d          |          }t          |dg           d} t          d          |          }t          |dg           dS )	z'Test LineSplitter w/ fixed-width fieldsz  1  2  3  4     5   # test   )r   r   r   r   r   r   r     1     3  4  5  6# test   z1     3  4  5  6   Nr   r   s      r   test_constant_fixed_widthz*TestLineSplitter.test_constant_fixed_width9   s    ,|At$$T<<<===)|B%%T./000)|B%%T./00000r   c                     d} t          d          |          }t          |g d           d} t          d          |          }t          |g d           d S )Nr2   )r1      r7   r1   )r   r   z4  56)r7   r7   	   )r   r'   r&   r   r   s      r   test_variable_fixed_widthz*TestLineSplitter.test_variable_fixed_widthG   sn    ))|L))$//T222333)&|I&&t,,T00011111r   N)
__name__
__module____qualname____doc__r   r#   r(   r/   r5   r:    r   r   r   r      st        ##6 6 6- - -5 5 5: : :1 1 12 2 2 2 2r   r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestNameValidatorc                    g d}t                                          |          }t          |g d           t          d                              |          }t          |g d           t          d                              |          }t          |g d           t          d                              |          }t          |g d           t          t          t           d           d	S )
zTest case sensitivity)AabcF)case_sensitive)rC   A_1BCupperlower)rD   a_1rE   rF   foobarN)r	   validater   r   
ValueError)r   namesr   s      r   test_case_sensitivityz'TestNameValidator.test_case_sensitivityU   s    $$$''..T///000E222;;EBBT111222G444==eDDT111222G444==eDDT111222 	j-IIIIIIr   c                     g d}t          g d          }|                    |          }t          |g d           dS )zTest excludelist)datesdataz
Other Datamask)rT   rU   rV   )excludelist)dates_data_
Other_Datamask_N)r	   rO   r   )r   rQ   	validatorr   s       r   test_excludelistz"TestNameValidator.test_excludelistd   sT    777!.G.G.GHHH	!!%((TEEEFFFFFr   c                 
   d}t                      }t           ||          g d           d}t           ||          g d           d}t           ||          g d           d}t           ||          g d           dS )	zTest validate missing namesrD   rE   rF   )r   rE   rF   )f0rE   rF   )rD   rE   r   )rD   rE   r`   )r   r`   r   )f1r`   f2Nr	   r   r   namelistr\   s      r   test_missing_namesz$TestNameValidator.test_missing_namesk   s    "!OO	YYx((///:::!YYx((*:*:*:;;;!YYx((*:*:*:;;;!YYx((*<*<*<=====r   c                     d}t                      }t           ||d          d           t           ||dd          g d           d	S )
zTest validate nb namesr_      nbfields)rD      zg%i)rj   
defaultfmt)rD   rE   rF   g0g1Nrc   rd   s      r   test_validate_nb_namesz(TestNameValidator.test_validate_nb_namesw   sg    "!OO	YYx!444f===YYx!FFF000	2 	2 	2 	2 	2r   c                     d}t                      }t           ||          du            t           ||d          g d           dS )zTest validate no namesNr1   ri   )r`   ra   rb   )r	   r   r   rd   s      r   test_validate_wo_namesz(TestNameValidator.test_validate_wo_names   sY    !OO			(##t+,,,YYx!4446H6H6HIIIIIr   N)r;   r<   r=   rR   r]   rf   ro   rq   r?   r   r   rA   rA   S   sj        J J JG G G
> 
> 
>2 2 2J J J J Jr   rA   c                 J    t          t          j        | d          d d          S )Nz%Y-%m-%dr1   )r   timestrptime)ss    r   _bytes_to_daterv      s"    q*--bqb122r   c                   N    e 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S )TestStringConverterzTest StringConverterc                     t          t          d          }t          |j        d           t          |j        d           dS )z"Test creation of a StringConverteriayrh   N)r
   intr   _statusdefaultr   	converters     r   test_creationz!TestStringConverter.test_creation   s=    #C00	Y&***Y&/////r   c                    t                      }t          |j        d           t          |                    d          d           t          |j        d           ddlmc m} t          |                    |j	                  j
        |                    |j                  j
        k               }t          |                    d          d           t          |j        d|z              t          |                    d          d           t          |j        d	|z              t          |                    d
          t          d
                     t          |j        d|z              dD ]b}|                    |          }t          t          |          t           u            t          |d           t          |j        d|z              cdS )zTests the upgrade method.r   0rh   N17179869184l        z0.g           0jr1   )rD      arD      )r
   r   r{   upgradenumpy._core.numeric_corenumericrz   dtypeint_itemsizeint64r   complexr   typestr)r   r~   nxstatus_offsetru   ress         r   test_upgradez TestStringConverter.test_upgrade   s    $%%	Y&*** 	Y&&s++Q///Y&*** 	)((((((((BHHRW--6"(9K9K9TTUU 	Y&&}55{CCCY&M(9::: 		))$//555Y&M(9::: 	Y&&t,,gdmm<<<Y&M(9:::  	? 	?A##A&&CDII$%%%c"""*A,=>>>>		? 	?r   c                 p   t          d          }|                    d           t           |d          d           t           |d          |j                   t           |d          |j                   t           |d          |j                   	  |d           d	S # t          $ r Y d	S w xY w)
z Tests the use of missing values.)missingmissed)missing_valuesr   r   r   r   r   missN)r
   r   r   r|   rP   r}   s     r   test_missingz TestStringConverter.test_missing   s    # 4> ? ? ?	#YYs^^Q'''YYr]]I$5666YYy))9+<===YYx(()*;<<<	If 	 	 	DD	s   B' '
B54B5c                    t           }t          j        dd         }	 t          j        |t	          ddd                     t          |t	          ddd                    } |d          }t          |t	          ddd                      |d          }t          |t	          ddd                      |d          }t          |t	          ddd                     |t          _        dS # |t          _        w xY w)	zTests updatemapperNi  rh   z
2001-01-01i  z
2009-01-01i  r   )rv   r
   _mapperupgrade_mapperr   r   )r   
dateparser_original_mapperconvertr   s        r   test_upgrademapperz&TestStringConverter.test_upgrademapper   s    #
*21115
	7*:tD!Q7G7GHHH%j$tQ2B2BCCG7<((DtD!Q//0007<((DtD!Q//00072;;DtD!Q//000&6O###&6O#6666s   CC, ,C:c                     t           j        dd         }t          t                    }t          |j        |           t	          t          |d                     dS )zAMake sure that string-to-object functions are properly recognizedNr|   )r
   r   rv   r   r   hasattr)r   
old_mapperconvs      r   test_string_to_objectz)TestStringConverter.test_string_to_object   sP    $,QQQ/
~..T\:...i(()))))r   c                    t          ddd          }|                    d           t          |j        d           t          |j        t          j        t                               t          ddd          }|                    d           t          |j        d           t          |j        t          j        t                               dS )z+Make sure we don't lose an explicit defaultNr   i)r   r|   z
3.14159265r   )r
   r   r   r|   r   npr   floatr}   s     r   test_keep_defaultz%TestStringConverter.test_keep_default   s    #D,02 2 2	,'''Y&---Y^RXe__555#Q0 0 0	,'''Y&***Y^RXe__55555r   c                 ^    t          t          dd          }t          |j        d           dS )z'Check that we don't lose a default of 0r   N/Ar|   r   N)r
   rz   r   r|   r}   s     r   test_keep_default_zeroz*TestStringConverter.test_keep_default_zero   s6    #C38: : :	Y&*****r   c                 b    t          t          dd          }t          |j        ddh           dS )z*Check that we're not losing missing valuesr   r   r   r   N)r
   rz   r   r   r}   s     r   test_keep_missing_valuesz,TestStringConverter.test_keep_missing_values   sE    #C38: : :	$r5k	3 	3 	3 	3 	3r   c                     t          t          j        d          }d}t           ||          dk               d}t           ||          dk               dS )z/Check that int64 integer types can be specifiedr   r|   z-9223372036854775807l 9223372036854775807l    N)r
   r   r   r   r   r~   vals      r   test_int64_dtypez$TestStringConverter.test_int64_dtype   s^    #BHa888	$		#"66777#		#"5566666r   c                 x    t          t          j        d          }d}t           ||          dk               dS )z0Check that uint64 integer types can be specifiedr   r   9223372043271415339l   +&|    N)r
   r   uint64r   r   s      r   test_uint64_dtypez%TestStringConverter.test_uint64_dtype  s=    #BIq999	#		#"5566666r   N)r;   r<   r=   r>   r   r   r   r   r   r   r   r   r   r   r?   r   r   rx   rx      s        0 0 0#? #? #?J  7 7 7 * * *6 6 6+ + +3 3 37 7 77 7 7 7 7r   rx   c                        e Zd Zd Zd Zd ZdS )TestMiscFunctionsc                 p   t          j        t                    }t          t	          |          d           t          j        ddt          fg          }t          t	          |          d           t          j        dt
          fddt          fdgfg          }t          t	          |          d           dS )	zTest has_nested_dtypeF)rC   z|S3rI   rC   BA)BB|S1TN)r   r   r   r   r   rz   r   ndtypes     r   test_has_nested_dtypez'TestMiscFunctions.test_has_nested_dtype  s    %&v..666<#u677&v..666C:tUm]-K'LMNN&v..55555r   c           	         t           }t          t          |          t          j        t                                d}t          t          |          t          j        ddg                     t          t          |d          t          j        ddg                     d}t          t          |d	          t          j        d
dg                     d}t          t          |d	          t          j        d
dg                     d}t          t          |d	          t          j        ddg                     t          t          |dd          t          j        d
dg                     dt
          fdt           fg}t          t          |          t          j        dt
          fdt           fg                     t          t          |d	          t          j        dt
          fdt           fg                     t          t          |d	          t          j        dt
          fdt           fg                     t          t          |d	          t          j        dt
          fdt           fg                     t
          t           t           f}t          t          |          t          j        dt
          fdt           fdt           fg                     t
          t           t           f}t          t          |d	          t          j        dt
          fdt           fdt           fg                     t          j        t                     }t          t          |d	          t          j        d dD                                  t          j        t                     }t          t          |g dd          t          j        d dD                                  d S )!zTest ndtype on dtypeszi4, f8)r`   i4)ra   f8z
field_%03i)rl   )	field_000r   )	field_001r   za, b)rQ   )rD   r   rE   r   za, b, cz, brD   zf%02i)rQ   rl   )f00r   rC   rI   za,brE   r`   za,b,cra   rb   rF   c                      g | ]}|t           fS r?   r   .0_s     r   
<listcomp>z5TestMiscFunctions.test_easy_dtype.<locals>.<listcomp>G  s    CCCa5zCCCr   r_   )r   r   r   c                      g | ]}|t           fS r?   r   r   s     r   r   z5TestMiscFunctions.test_easy_dtype.<locals>.<listcomp>L  s    @@@Qq%j@@@r   )r   f01f02N)r   r   r   r   r   rz   r   s     r   test_easy_dtypez!TestMiscFunctions.test_easy_dtype  s    Z''%999Z''X|\:;;	= 	= 	= 	Z<@@@X24GHII	K 	K 	K Zf555X{K899	; 	; 	; Zi888X{K899	; 	; 	; Ze444X|[9::	< 	< 	< 	ZcgFFFX{M:;;	= 	= 	= *sEl+Z''C:U|2L)M)MNNNZe444XSzC<899	; 	; 	; 	Zc222XSzD%=9::	< 	< 	< 	Zg666XSzC<899	; 	; 	; ue$Z''Xc{T5MD%=IJJ	L 	L 	L ue$Zi888XSzC<#uFGG	I 	I 	I %Zi888XCC?CCCDD	F 	F 	F %v\\\gFFFH@@*?@@@AA	C 	C 	C 	C 	Cr   c                    t          j        ddg          }t          |          }t          |t          t          g           t          j        dddgfdt
          fg          }t          |          }t          |t          j        d          t          j        d          t
          g           t          j        dt          d	ffdt
          d
ffg          }t          |          }t          |t          t
          g           t          |d          }t          |t          gd	z  t
          gd
z  z              t          j        ddg          }t          |          }t          |t          t          g           dS )zTesting flatten_dtype)rD   r   r   rD   )aar   )ab|S2rE   r   r   r   r1   T))rD   rC   r   ))rE   rI   r   N)r   r   r   r   r   rz   )r   dtdt_flats      r   test_flatten_dtypez$TestMiscFunctions.test_flatten_dtypeN  sB    X{K011##Wuen---Xm];<sCjIJJ##WrxEFFFXeQZ(3a/:;;##Wucl+++D))WugkSEAI5666X)+=>??##Wuen-----r   N)r;   r<   r=   r   r   r   r?   r   r   r   r   
  sE        6 6 67C 7C 7Cr. . . . .r   r   )rs   datetimer   numpyr   numpy.testingr   r   r   r   numpy.lib._iotoolsr   r	   r
   r   r   r   r   rA   rv   rx   r   r?   r   r   <module>r      s                                       @2 @2 @2 @2 @2 @2 @2 @2J1J 1J 1J 1J 1J 1J 1J 1Jl3 3 3z7 z7 z7 z7 z7 z7 z7 z7zW. W. W. W. W. W. W. W. W. W.r   