a
    Lf5                     @   s   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 dZG dd dZd	d
 ZG dd dZG dd dZdS )    N)date)assert_assert_equalassert_allcloseassert_raises)LineSplitterNameValidatorStringConverterhas_nested_fields
easy_dtypeflatten_dtypec                   @   s@   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dS )TestLineSplitterzTests the LineSplitter class.c                 C   s:   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   selfZstrgtest r   V/var/www/ai-form-bot/venv/lib/python3.9/site-packages/numpy/lib/tests/test__iotools.pytest_no_delimiter   s
    
z"TestLineSplitter.test_no_delimiterc                 C   s<   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   r   r   r   test_space_delimiter   s
    z%TestLineSplitter.test_space_delimiterc                 C   s@   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   r   r   r   test_tab_delimiter!   s    z#TestLineSplitter.test_tab_delimiterc                 C   sb   d}t d|}t|g d d}t d|}t|g d d}t d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   r   r   r   test_other_delimiter*   s    z%TestLineSplitter.test_other_delimiterc                 C   sZ   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   r   r   r   test_constant_fixed_width9   s    z*TestLineSplitter.test_constant_fixed_widthc                 C   s@   d}t d|}t|g d d}t d|}t|g d d S )Nr*   )r)      r.   r)   )r   r   z4  56)r.   r.   	   )r   r!   r    r   r   r   r   r   test_variable_fixed_widthG   s    z*TestLineSplitter.test_variable_fixed_widthN)
__name__
__module____qualname____doc__r   r   r"   r(   r-   r1   r   r   r   r   r      s   	r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestNameValidatorc                 C   s   g d}t  |}t|g d t dd|}t|g d t dd|}t|g d t dd|}t|g d ttt dd d	S )
zTest case sensitivity)AabcF)case_sensitive)r7   ZA_1BCupperlower)r8   Za_1r9   r:   ZfoobarN)r   validater   r   
ValueError)r   namesr   r   r   r   test_case_sensitivityU   s    z'TestNameValidator.test_case_sensitivityc                 C   s2   g d}t g dd}||}t|g d dS )zTest excludelist)datesdataz
Other Datamask)rD   rE   rF   )Zexcludelist)Zdates_Zdata_Z
Other_DataZmask_N)r   r@   r   )r   rB   	validatorr   r   r   r   test_excludelistd   s    
z"TestNameValidator.test_excludelistc                 C   sb   d}t  }t||g d d}t||g d d}t||g d d}t||g d dS )	zTest validate missing namesr8   r9   r:   )r   r9   r:   )f0r9   r:   )r8   r9   r   )r8   r9   rJ   )r   rJ   r   )f1rJ   f2Nr   r   r   namelistrG   r   r   r   test_missing_namesk   s    z$TestNameValidator.test_missing_namesc                 C   s8   d}t  }t||ddd t||dddg d d	S )
zTest validate nb namesrI      nbfields)r8      zg%i)rS   
defaultfmt)r8   r9   r:   Zg0g1NrM   rN   r   r   r   test_validate_nb_namesw   s    z(TestNameValidator.test_validate_nb_namesc                 C   s4   d}t  }t||du  t||ddg d dS )zTest validate no namesNr)   rR   )rJ   rK   rL   )r   r   r   rN   r   r   r   test_validate_wo_names   s    z(TestNameValidator.test_validate_wo_namesN)r2   r3   r4   rC   rH   rP   rW   rX   r   r   r   r   r6   S   s
   r6   c                 C   s   t t| dd d  S )Nz%Y-%m-%dr)   )r   timestrptime)sr   r   r   _bytes_to_date   s    r\   c                   @   s`   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd ZdS )TestStringConverterzTest StringConverterc                 C   s&   t td}t|jd t|jd dS )z"Test creation of a StringConverteriayrQ   N)r	   intr   _statusdefaultr   	converterr   r   r   test_creation   s    
z!TestStringConverter.test_creationc                 C   s  t  }t|jd t|dd t|jd ddlm  m} t||j	j
||jj
k }t|dd t|jd|  t|dd t|jd	|  t|d
td
 t|jd|  dD ]8}||}tt|tu  t|d t|jd|  qdS )zTests the upgrade method.r   0rQ   NZ17179869184l        z0.g           Z0jr)   )r8      ar8      )r	   r   r_   upgradeZnumpy._core.numericZ_corenumericr^   dtypeint_itemsizeint64r   complexr   typestr)r   rb   nxZstatus_offsetr[   resr   r   r   test_upgrade   s"     

z TestStringConverter.test_upgradec                 C   sv   t dd}|d t|dd t|d|j t|d|j t|d|j z|d W n typ   Y n0 d	S )
z Tests the use of missing values.)missingmissed)missing_valuesrd   r   r   rt   ru   ZmissN)r	   rh   r   r`   rA   ra   r   r   r   test_missing   s    

z TestStringConverter.test_missingc                 C   s   t }tjdd }z~t|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 W |t_n|t_0 dS )	zTests updatemapperNi  rQ   z
2001-01-01i  z
2009-01-01i  r   )r\   r	   _mapperZupgrade_mapperr   r   )r   Z
dateparserZ_original_mapperconvertr   r   r   r   test_upgrademapper   s    z&TestStringConverter.test_upgrademapperc                 C   s4   t jdd }t t}t|j| tt|d dS )zAMake sure that string-to-object functions are properly recognizedNr`   )r	   rx   r\   r   r   hasattr)r   Z
old_mapperconvr   r   r   test_string_to_object   s    z)TestStringConverter.test_string_to_objectc                 C   sp   t dddd}|d t|jd t|jtt t dddd}|d t|jd t|jtt dS )z+Make sure we don't lose an explicit defaultNr   i)rv   r`   z
3.14159265r   )r	   rh   r   r`   ro   nprj   floatra   r   r   r   test_keep_default   s    

z%TestStringConverter.test_keep_defaultc                 C   s   t tddd}t|jd dS )z'Check that we don't lose a default of 0r   N/Ar`   rv   N)r	   r^   r   r`   ra   r   r   r   test_keep_default_zero   s    z*TestStringConverter.test_keep_default_zeroc                 C   s"   t tddd}t|jddh dS )z*Check that we're not losing missing valuesr   r   r   r   N)r	   r^   r   rv   ra   r   r   r   test_keep_missing_values   s    
z,TestStringConverter.test_keep_missing_valuesc                 C   s:   t tjdd}d}t||dk d}t||dk dS )z/Check that int64 integer types can be specifiedr   r`   z-9223372036854775807l Z9223372036854775807l    N)r	   r~   rm   r   r   rb   valr   r   r   test_int64_dtype   s
    z$TestStringConverter.test_int64_dtypec                 C   s&   t tjdd}d}t||dk dS )z0Check that uint64 integer types can be specifiedr   r   Z9223372043271415339l   +&|    N)r	   r~   Zuint64r   r   r   r   r   test_uint64_dtype  s    z%TestStringConverter.test_uint64_dtypeN)r2   r3   r4   r5   rc   rs   rw   rz   r}   r   r   r   r   r   r   r   r   r   r]      s   %r]   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestMiscFunctionsc                 C   sh   t t}tt|d t ddtfg}tt|d t dtfddtfdgfg}tt|d dS )	zTest has_nested_dtypeF)r7   z|S3r<   r7   ZBA)BB|S1TN)r~   rj   r   r   r
   r^   r   Zndtyper   r   r   test_has_nested_dtype  s    
z'TestMiscFunctions.test_has_nested_dtypec                 C   s0  t }tt|tt  d}tt|tddg tt|ddtddg d}tt|dd	td
dg d}tt|dd	td
dg d}tt|dd	tddg tt|dddtd
dg dtfdt fg}tt|tdtfdt fg tt|dd	tdtfdt fg tt|dd	tdtfdt fg tt|dd	tdtfdt fg tt t f}tt|tdtfdt fdt fg tt t f}tt|dd	tdtfdt fdt fg tt }tt|dd	tdd dD  tt }tt|g dddtdd d D  d!S )"zTest ndtype on dtypeszi4, f8)rJ   i4)rK   f8z
field_%03i)rU   )Z	field_000r   )Z	field_001r   za, b)rB   )r8   r   r9   r   za, b, cz, br8   zf%02i)rB   rU   )f00r   r7   r<   za,br9   rJ   za,b,crK   rL   r:   c                 S   s   g | ]}|t fqS r   r   .0_r   r   r   
<listcomp>G      z5TestMiscFunctions.test_easy_dtype.<locals>.<listcomp>rI   )r   r   r   c                 S   s   g | ]}|t fqS r   r   r   r   r   r   r   L  r   )r   Zf01Zf02N)r   r   r   r~   rj   r^   r   r   r   r   test_easy_dtype  sh     



z!TestMiscFunctions.test_easy_dtypec                 C   s   t ddg}t|}t|ttg t dddgfdtfg}t|}t|t dt dtg t dtd	ffdtd
ffg}t|}t|ttg t|d}t|tgd	 tgd
   t ddg}t|}t|ttg dS )zTesting flatten_dtype)r8   r   r   r8   )Zaar   )ab|S2r9   r   r   re   r)   T))r8   r7   r   ))r9   r<   r   N)r~   rj   r   r   r   r^   )r   dtZdt_flatr   r   r   test_flatten_dtypeN  s    
z$TestMiscFunctions.test_flatten_dtypeN)r2   r3   r4   r   r   r   r   r   r   r   r   
  s   	9r   )rY   datetimer   numpyr~   Znumpy.testingr   r   r   r   Znumpy.lib._iotoolsr   r   r	   r
   r   r   r   r6   r\   r]   r   r   r   r   r   <module>   s    E6}