diff options
Diffstat (limited to 'numpy/lib/tests/test__iotools.py')
-rw-r--r-- | numpy/lib/tests/test__iotools.py | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/numpy/lib/tests/test__iotools.py b/numpy/lib/tests/test__iotools.py index 421616ccd..d564121d1 100644 --- a/numpy/lib/tests/test__iotools.py +++ b/numpy/lib/tests/test__iotools.py @@ -5,14 +5,17 @@ import time from datetime import date import numpy as np -from numpy.lib._iotools import LineSplitter, NameValidator, StringConverter, \ - has_nested_fields, easy_dtype, flatten_dtype +from numpy.lib._iotools import ( + LineSplitter, NameValidator, StringConverter, + has_nested_fields, easy_dtype, flatten_dtype + ) from numpy.testing import * from numpy.compat import asbytes, asbytes_nested + class TestLineSplitter(TestCase): "Tests the LineSplitter class." - # + def test_no_delimiter(self): "Test LineSplitter w/o delimiter" strg = asbytes(" 1 2 3 4 5 # test") @@ -71,11 +74,11 @@ class TestLineSplitter(TestCase): test = LineSplitter((6, 6, 9))(strg) assert_equal(test, asbytes_nested(['1', '3 4', '5 6'])) - #------------------------------------------------------------------------------- + class TestNameValidator(TestCase): - # + def test_case_sensitivity(self): "Test case sensitivity" names = ['A', 'a', 'b', 'c'] @@ -87,14 +90,14 @@ class TestNameValidator(TestCase): assert_equal(test, ['A', 'A_1', 'B', 'C']) test = NameValidator(case_sensitive='lower').validate(names) assert_equal(test, ['a', 'a_1', 'b', 'c']) - # + def test_excludelist(self): "Test excludelist" names = ['dates', 'data', 'Other Data', 'mask'] validator = NameValidator(excludelist=['dates', 'data', 'mask']) test = validator.validate(names) assert_equal(test, ['dates_', 'data_', 'Other_Data', 'mask_']) - # + def test_missing_names(self): "Test validate missing names" namelist = ('a', 'b', 'c') @@ -106,7 +109,7 @@ class TestNameValidator(TestCase): assert_equal(validator(namelist), ['a', 'b', 'f0']) namelist = ('', 'f0', '') assert_equal(validator(namelist), ['f1', 'f0', 'f2']) - # + def test_validate_nb_names(self): "Test validate nb names" namelist = ('a', 'b', 'c') @@ -114,7 +117,7 @@ class TestNameValidator(TestCase): assert_equal(validator(namelist, nbfields=1), ('a',)) assert_equal(validator(namelist, nbfields=5, defaultfmt="g%i"), ['a', 'b', 'c', 'g0', 'g1']) - # + def test_validate_wo_names(self): "Test validate no names" namelist = None @@ -122,26 +125,25 @@ class TestNameValidator(TestCase): assert_(validator(namelist) is None) assert_equal(validator(namelist, nbfields=3), ['f0', 'f1', 'f2']) - - - #------------------------------------------------------------------------------- + def _bytes_to_date(s): if sys.version_info[0] >= 3: return date(*time.strptime(s.decode('latin1'), "%Y-%m-%d")[:3]) else: return date(*time.strptime(s, "%Y-%m-%d")[:3]) + class TestStringConverter(TestCase): "Test StringConverter" - # + def test_creation(self): "Test creation of a StringConverter" converter = StringConverter(int, -99999) assert_equal(converter._status, 1) assert_equal(converter.default, -99999) - # + def test_upgrade(self): "Tests the upgrade method." converter = StringConverter() @@ -154,7 +156,7 @@ class TestStringConverter(TestCase): assert_equal(converter._status, 3) converter.upgrade(asbytes('a')) assert_equal(converter._status, len(converter._mapper) - 1) - # + def test_missing(self): "Tests the use of missing values." converter = StringConverter(missing_values=(asbytes('missing'), @@ -168,7 +170,7 @@ class TestStringConverter(TestCase): converter('miss') except ValueError: pass - # + def test_upgrademapper(self): "Tests updatemapper" dateparser = _bytes_to_date @@ -180,37 +182,39 @@ class TestStringConverter(TestCase): assert_equal(test, date(2009, 1, 1)) test = convert(asbytes('')) assert_equal(test, date(2000, 1, 1)) - # + def test_string_to_object(self): "Make sure that string-to-object functions are properly recognized" conv = StringConverter(_bytes_to_date) assert_equal(conv._mapper[-2][0](0), 0j) assert_(hasattr(conv, 'default')) - # + def test_keep_default(self): "Make sure we don't lose an explicit default" converter = StringConverter(None, missing_values=asbytes(''), - default= -999) + default=-999) converter.upgrade(asbytes('3.14159265')) assert_equal(converter.default, -999) assert_equal(converter.type, np.dtype(float)) # - converter = StringConverter(None, missing_values=asbytes(''), default=0) + converter = StringConverter( + None, missing_values=asbytes(''), default=0) converter.upgrade(asbytes('3.14159265')) assert_equal(converter.default, 0) assert_equal(converter.type, np.dtype(float)) - # + def test_keep_default_zero(self): "Check that we don't lose a default of 0" converter = StringConverter(int, default=0, missing_values=asbytes("N/A")) assert_equal(converter.default, 0) - # + def test_keep_missing_values(self): "Check that we're not losing missing values" converter = StringConverter(int, default=0, missing_values=asbytes("N/A")) - assert_equal(converter.missing_values, set(asbytes_nested(['', 'N/A']))) + assert_equal( + converter.missing_values, set(asbytes_nested(['', 'N/A']))) def test_int64_dtype(self): "Check that int64 integer types can be specified" @@ -226,10 +230,9 @@ class TestStringConverter(TestCase): val = asbytes("9223372043271415339") assert_(converter(val) == 9223372043271415339) -#------------------------------------------------------------------------------- class TestMiscFunctions(TestCase): - # + def test_has_nested_dtype(self): "Test has_nested_dtype" ndtype = np.dtype(np.float) @@ -292,9 +295,9 @@ class TestMiscFunctions(TestCase): np.dtype([(_, float) for _ in ('a', 'b', 'c')])) # As simple dtype w/o names (but multiple fields) ndtype = np.dtype(float) - assert_equal(easy_dtype(ndtype, names=['', '', ''], defaultfmt="f%02i"), - np.dtype([(_, float) for _ in ('f00', 'f01', 'f02')])) - + assert_equal( + easy_dtype(ndtype, names=['', '', ''], defaultfmt="f%02i"), + np.dtype([(_, float) for _ in ('f00', 'f01', 'f02')])) def test_flatten_dtype(self): "Testing flatten_dtype" |