o 6a5@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)12345Nrrselfstrgtestr?/usr/lib/python3/dist-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.r2rrrrr s  r c@s4eZdZddZddZddZddZd d Zd S) TestNameValidatorcCsgd}t|}t|gdtdd|}t|gdtdd|}t|gdtdd|}t|gdtttddd S) zTest case sensitivity)AabcF)case_sensitive)r8A_1BCupperlower)r9a_1r:r;foobarN)rvalidaterr ValueError)rnamesrrrrtest_case_sensitivityUs z'TestNameValidator.test_case_sensitivitycCs2gd}tgdd}||}t|gddS)zTest excludelist)datesdataz Other Datamask)rHrIrJ) excludelist)dates_data_ Other_Datamask_N)rrDr)rrF validatorrrrrtest_excludelistds z"TestNameValidator.test_excludelistcCsbd}t}t||gdd}t||gdd}t||gdd}t||gddS) zTest validate missing namesr9r:r;)rr:r;)f0r:r;)r9r:r)r9r:rS)rrSr)f1rSf2NrrrnamelistrPrrrtest_missing_namesksz$TestNameValidator.test_missing_namescCs8d}t}t||dddt||dddgdd S) zTest validate nb namesrRnbfields)r9zg%i)r\ defaultfmt)r9r:r;g0g1NrVrWrrrtest_validate_nb_namesws z(TestNameValidator.test_validate_nb_namescCs4d}t}t||dut||ddgddS)zTest validate no namesNr*r[)rSrTrU)rrrrWrrrtest_validate_wo_namessz(TestNameValidator.test_validate_wo_namesN)r3r4r5rGrQrYrarbrrrrr7Ss  r7cCstt|dddS)Nz%Y-%m-%dr*)rtimestrptime)srrr_bytes_to_datesrfc@s`eZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ dS)TestStringConverterzTest StringConvertercCs&ttd}t|jdt|jddS)z"Test creation of a StringConverteriayrZN)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]}||}tt|tut|d t|jd|qddS)zTests the upgrade method.r0rZN 17179869184lz0.g0jr*)r9ar9)r rriupgradenumpy.core.numericcorenumericrhdtypeint_itemsizeint64rcomplexrtypestr)rrlnx status_offsetreresrrr test_upgrades$     z TestStringConverter.test_upgradecCsvtdd}|dt|ddt|d|jt|d|jt|d|jz|dWd Sty:Yd Sw) z Tests the use of missing values.)missingmissed)missing_valuesrnrrrrmissN)r rtrrjrErkrrr test_missings   z TestStringConverter.test_missingcCst}tjdd}z@t|tdddt|tddd}|d}t|tddd|d}t|tddd|d}t|tdddW|t_dS|t_w) zTests updatemapperNirZz 2001-01-01iz 2009-01-01ir)rfr _mapperupgrade_mapperrr)r dateparser_original_mapperconvertrrrrtest_upgrademappersz&TestStringConverter.test_upgrademappercCs4tjdd}tt}t|j|tt|ddS)zAMake sure that string-to-object functions are properly recognizedNrj)r rrfrrhasattr)r 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)rrjz 3.14159265r)r rtrrjr}nprxfloatrkrrrtest_keep_defaults    z%TestStringConverter.test_keep_defaultcCsttddd}t|jddS)z'Check that we don't lose a default of 0rN/ArjrN)r rhrrjrkrrrtest_keep_default_zerosz*TestStringConverter.test_keep_default_zerocCs"ttddd}t|jddhdS)z*Check that we're not losing missing valuesrrrrN)r rhrrrkrrrtest_keep_missing_valuess  z,TestStringConverter.test_keep_missing_valuescCs:ttjdd}d}t||dkd}t||dkdS)z/Check that int64 integer types can be specifiedrrjz-9223372036854775807l9223372036854775807lN)r rr{rrrlvalrrrtest_int64_dtypes z$TestStringConverter.test_int64_dtypecCs&ttjdd}d}t||dkdS)z0Check that uint64 integer types can be specifiedrr9223372043271415339l+&|N)r ruint64rrrrrtest_uint64_dtypesz%TestStringConverter.test_uint64_dtypeN)r3r4r5r6rmrrrrrrrrrrrrrrgs% rgc@s$eZdZddZddZddZdS)TestMiscFunctionscCshtt}tt|dtddtfg}tt|dtdtfddtfdgfg}tt|ddS) zTest has_nested_dtypeF)r8z|S3r>r8BA)BB|S1TN)rrxrrr rhrndtyperrrtest_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)rSi4)rTf8z field_%03i)r^) field_000r) field_001rza, b)rF)r9rr:rza, b, cz, br9zf%02i)rFr^)f00rr8r>za,br:rSza,b,crTrUr;cSg|]}|tfqSrr.0_rrr Gz5TestMiscFunctions.test_easy_dtype..rR)rrrcSrrrrrrrrLr)rf01f02N)rrr rrxrhrrrrtest_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)r9rrr9)aar)ab|S2r:rrrpr*T))r9r8r))r:r>rN)rrxr rrrh)rdtdt_flatrrrtest_flatten_dtypeNs z$TestMiscFunctions.test_flatten_dtypeN)r3r4r5rrrrrrrr s 9r)rcdatetimernumpyr numpy.testingrrrrnumpy.lib._iotoolsrrr r r r r r7rfrgrrrrrs  E6}