a :jg5@sddlZddlmZddlZddlmZmZmZm Z ddl m Z m Z m Z mZmZmZGdddZGdddZd d ZGd d d ZGd ddZdS)N)date)assert_ assert_equalassert_allclose assert_raises) LineSplitter NameValidatorStringConverterhas_nested_fields easy_dtype flatten_dtypec@s@eZdZdZddZddZddZdd Zd d Zd d Z dS)TestLineSplitterzTests the LineSplitter class.cCs:d}t|}t|gdtd|}t|gddS)zTest LineSplitter w/o delimiter 1 2 3 4 5 # test)12345NrrselfZstrgtestrG/usr/local/lib/python3.9/site-packages/numpy/lib/tests/test__iotools.pytest_no_delimiters   z"TestLineSplitter.test_no_delimitercCs<d}td|}t|gdtd|}t|ddgdS)zTest space delimiterr rrrrrrz z1 2 3 4rNrrrrrtest_space_delimiters   z%TestLineSplitter.test_space_delimitercCs@d}td|}t|gdd}td|}t|gddS)zTest tab delimiterz 1 2 3 4 5 6 )rrrr5 6z 1 2 3 4 5 6)z1 23 4r Nrrrrrtest_tab_delimiter!s   z#TestLineSplitter.test_tab_delimitercCsbd}td|}t|gdd}td|}t|gdd}tddd|}t|gdd S) zTest LineSplitter on delimiterz 1,2,3,4,,5,rz 1,2,3,4,,5 # tests 1,2,3,4,,5 % test,%) delimitercommentsNrrrrrtest_other_delimiter*s  z%TestLineSplitter.test_other_delimitercCsZd}td|}t|gdd}td|}t|dgd}td|}t|dgdS) z'Test LineSplitter w/ fixed-width fieldsz 1 2 3 4 5 # test)rrrrrrr 1 3 4 5 6# testz1 3 4 5 6Nrrrrrtest_constant_fixed_width9s    z*TestLineSplitter.test_constant_fixed_widthcCs@d}td|}t|gdd}td|}t|gddS)Nr*)r)r.r))rrz4 56)r.r. )rr!r rrrrrtest_variable_fixed_widthGs   z*TestLineSplitter.test_variable_fixed_widthN) __name__ __module__ __qualname____doc__rrr"r(r-r1rrrrr s r c@s4eZdZddZddZddZddZd d Zd S) TestNameValidatorcCsgd}t|}t|gdtdd|}t|gdtdd|}t|gdtdd|}t|gdtttddd S) zTest case sensitivity)AabcF)case_sensitive)r7ZA_1BCupperlower)r8Za_1r9r:ZfoobarN)rvalidaterr ValueError)rnamesrrrrtest_case_sensitivityUs z'TestNameValidator.test_case_sensitivitycCs2gd}tgdd}||}t|gddS)zTest excludelist)datesdataz Other Datamask)rDrErF)Z excludelist)Zdates_Zdata_Z Other_DataZmask_N)rr@r)rrB validatorrrrrtest_excludelistds z"TestNameValidator.test_excludelistcCsbd}t}t||gdd}t||gdd}t||gdd}t||gddS) zTest validate missing namesr8r9r:)rr9r:)f0r9r:)r8r9r)r8r9rJ)rrJr)f1rJf2NrrrnamelistrGrrrtest_missing_namesksz$TestNameValidator.test_missing_namescCs8d}t}t||dddt||dddgdd S) zTest validate nb namesrInbfields)r8zg%i)rS defaultfmt)r8r9r:Zg0g1NrMrNrrrtest_validate_nb_namesws z(TestNameValidator.test_validate_nb_namescCs4d}t}t||dut||ddgddS)zTest validate no namesNr)rR)rJrKrL)rrrrNrrrtest_validate_wo_namessz(TestNameValidator.test_validate_wo_namesN)r2r3r4rCrHrPrWrXrrrrr6Ss  r6cCstt|dddS)Nz%Y-%m-%dr))rtimestrptime)srrr_bytes_to_datesr\c@s`eZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ dS)TestStringConverterzTest StringConvertercCs&ttd}t|jdt|jddS)z"Test creation of a StringConverteriayrQN)r intr_statusdefaultr converterrrr test_creations  z!TestStringConverter.test_creationcCst}t|jdt|ddt|jdddlmm}t||j j ||j j k}t|ddt|jd|t |ddt|jd |t|d t d t|jd |d D]8}||}tt|tut|d t|jd|qdS)zTests the upgrade method.r0rQNZ 17179869184lz0.gZ0jr))r8ar8)r rr_upgradeZnumpy._core.numericZ_corenumericr^dtypeint_itemsizeint64rcomplexrtypestr)rrbnxZ status_offsetr[resrrr test_upgrades"     z TestStringConverter.test_upgradecCsvtdd}|dt|ddt|d|jt|d|jt|d|jz |dWntypYn0d S) z Tests the use of missing values.)missingmissed)missing_valuesrdrrrtruZmissN)r rhrr`rArarrr test_missings    z TestStringConverter.test_missingcCst}tjdd}z~t|tdddt|tddd}|d}t|tddd|d}t|tddd|d}t|tdddW|t_n|t_0dS) zTests updatemapperNirQz 2001-01-01iz 2009-01-01ir)r\r _mapperZupgrade_mapperrr)rZ dateparserZ_original_mapperconvertrrrrtest_upgrademappersz&TestStringConverter.test_upgrademappercCs4tjdd}tt}t|j|tt|ddS)zAMake sure that string-to-object functions are properly recognizedNr`)r rxr\rrhasattr)rZ old_mapperconvrrrtest_string_to_objects z)TestStringConverter.test_string_to_objectcCsptdddd}|dt|jdt|jtttdddd}|dt|jdt|jttdS)z+Make sure we don't lose an explicit defaultNri)rvr`z 3.14159265r)r rhrr`ronprjfloatrarrrtest_keep_defaults    z%TestStringConverter.test_keep_defaultcCsttddd}t|jddS)z'Check that we don't lose a default of 0rN/Ar`rvN)r r^rr`rarrrtest_keep_default_zerosz*TestStringConverter.test_keep_default_zerocCs"ttddd}t|jddhdS)z*Check that we're not losing missing valuesrrrrN)r r^rrvrarrrtest_keep_missing_valuess  z,TestStringConverter.test_keep_missing_valuescCs:ttjdd}d}t||dkd}t||dkdS)z/Check that int64 integer types can be specifiedrr`z-9223372036854775807lZ9223372036854775807lN)r r~rmrrrbvalrrrtest_int64_dtypes z$TestStringConverter.test_int64_dtypecCs&ttjdd}d}t||dkdS)z0Check that uint64 integer types can be specifiedrrZ9223372043271415339l+&|N)r r~Zuint64rrrrrtest_uint64_dtypesz%TestStringConverter.test_uint64_dtypeN)r2r3r4r5rcrsrwrzr}rrrrrrrrrr]s%r]c@s$eZdZddZddZddZdS)TestMiscFunctionscCshtt}tt|dtddtfg}tt|dtdtfddtfdgfg}tt|ddS) zTest has_nested_dtypeF)r7z|S3r<r7ZBA)BB|S1TN)r~rjrrr r^rZndtyperrrtest_has_nested_dtype s  z'TestMiscFunctions.test_has_nested_dtypecCs0t}tt|ttd}tt|tddgtt|ddtddgd}tt|dd td d gd}tt|d d td d gd}tt|d d tdd gtt|dddtd dgdtfdtfg}tt|tdtfdtfgtt|dd tdtfdtfgtt|dd tdtfdtfgtt|dd tdtfdtfgtttf}tt|tdtfdtfdtfgtttf}tt|d d tdtfdtfdtfgtt}tt|d d tdddDtt}tt|gdddtddd Dd!S)"zTest ndtype on dtypeszi4, f8)rJi4)rKf8z field_%03i)rU)Z field_000r)Z field_001rza, b)rB)r8rr9rza, b, cz, br8zf%02i)rBrU)f00rr7r<za,br9rJza,b,crKrLr:cSsg|] }|tfqSrr.0_rrr Gz5TestMiscFunctions.test_easy_dtype..rI)rrrcSsg|] }|tfqSrrrrrrrLr)rZf01Zf02N)rrr r~rjr^rrrrtest_easy_dtypesh                    z!TestMiscFunctions.test_easy_dtypecCstddg}t|}t|ttgtdddgfdtfg}t|}t|tdtdtgtdtd ffdtd ffg}t|}t|ttgt|d }t|tgd tgd td d g}t|}t|ttgdS)zTesting flatten_dtype)r8rrr8)Zaar)ab|S2r9rrrer)T))r8r7r))r9r<rN)r~rjr rrr^)rdtZdt_flatrrrtest_flatten_dtypeNs z$TestMiscFunctions.test_flatten_dtypeN)r2r3r4rrrrrrrr s 9r)rYdatetimernumpyr~Z numpy.testingrrrrZnumpy.lib._iotoolsrrr r r r r r6r\r]rrrrrs  E6}