def test_missing(self): "Tests the use of missing values." converter = StringConverter(missing_values=(asbytes('missing'), asbytes('missed'))) converter.upgrade(asbytes('0')) assert_equal(converter(asbytes('0')), 0) assert_equal(converter(asbytes('')), converter.default) assert_equal(converter(asbytes('missing')), converter.default) assert_equal(converter(asbytes('missed')), converter.default) try: converter('miss') except ValueError: pass
def test_upgrademapper(self): "Tests updatemapper" from datetime import date import time dateparser = lambda s: date(*time.strptime(s, "%Y-%m-%d")[:3]) StringConverter.upgrade_mapper(dateparser, date(2000, 1, 1)) convert = StringConverter(dateparser, date(2000, 1, 1)) test = convert('2001-01-01') assert_equal(test, date(2001, 01, 01)) test = convert('2009-01-01') assert_equal(test, date(2009, 01, 01)) test = convert('') assert_equal(test, date(2000, 01, 01))
def test_upgrademapper(self): "Tests updatemapper" dateparser = _bytes_to_date _original_mapper = StringConverter._mapper[:] try: StringConverter.upgrade_mapper(dateparser, date(2000, 1, 1)) convert = StringConverter(dateparser, date(2000, 1, 1)) test = convert('2001-01-01') assert_equal(test, date(2001, 1, 1)) test = convert('2009-01-01') assert_equal(test, date(2009, 1, 1)) test = convert('') assert_equal(test, date(2000, 1, 1)) finally: StringConverter._mapper = _original_mapper
def test_upgrademapper(self): "Tests updatemapper" if hasattr(sys, 'gettotalrefcount'): # skip this test when Python was compiled using --with-pydebug return dateparser = _bytes_to_date StringConverter.upgrade_mapper(dateparser, date(2000, 1, 1)) convert = StringConverter(dateparser, date(2000, 1, 1)) test = convert(asbytes('2001-01-01')) assert_equal(test, date(2001, 01, 01)) test = convert(asbytes('2009-01-01')) assert_equal(test, date(2009, 01, 01)) test = convert(asbytes('')) assert_equal(test, date(2000, 01, 01))
def test_upgrade(self): "Tests the upgrade method." converter = StringConverter() assert_equal(converter._status, 0) # test int assert_equal(converter.upgrade(asbytes('0')), 0) assert_equal(converter._status, 1) # test float assert_allclose(converter.upgrade(asbytes('0.')), 0.0) assert_equal(converter._status, 2) # test complex assert_equal(converter.upgrade(asbytes('0j')), complex('0j')) assert_equal(converter._status, 3) # test str assert_equal(converter.upgrade(asbytes('a')), asbytes('a')) assert_equal(converter._status, len(converter._mapper) - 1)
def test_upgrade(self): "Tests the upgrade method." converter = StringConverter() assert_equal(converter._status, 0) # test int assert_equal(converter.upgrade("0"), 0) assert_equal(converter._status, 1) # On systems where long defaults to 32-bit, the statuses will be # offset by one, so we check for this here. import numpy.core.numeric as nx status_offset = int( nx.dtype(nx.int_).itemsize < nx.dtype(nx.int64).itemsize) # test int > 2**32 assert_equal(converter.upgrade("17179869184"), 17179869184) assert_equal(converter._status, 1 + status_offset) # test float assert_allclose(converter.upgrade("0."), 0.0) assert_equal(converter._status, 2 + status_offset) # test complex assert_equal(converter.upgrade("0j"), complex("0j")) assert_equal(converter._status, 3 + status_offset) # test str # note that the longdouble type has been skipped, so the # _status increases by 2. Everything should succeed with # unicode conversion (8). for s in ["a", b"a"]: res = converter.upgrade(s) assert_(type(res) is str) assert_equal(res, "a") assert_equal(converter._status, 8 + status_offset)
def test_uint64_dtype(self): "Check that uint64 integer types can be specified" converter = StringConverter(np.uint64, default=0) val = "9223372043271415339" assert_(converter(val) == 9223372043271415339)
def test_keep_missing_values(self): "Check that we're not losing missing values" converter = StringConverter(int, default=0, missing_values="N/A") assert_equal( converter.missing_values, {'', 'N/A'})
def test_keep_default_zero(self): "Check that we don't lose a default of 0" converter = StringConverter(int, default=0, missing_values="N/A") assert_equal(converter.default, 0)
def test_string_to_object(self): "Make sure that string-to-object functions are properly recognized" old_mapper = StringConverter._mapper[:] # copy of list conv = StringConverter(_bytes_to_date) assert_equal(conv._mapper, old_mapper) assert_(hasattr(conv, 'default'))
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_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_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'])))