示例#1
0
 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
示例#2
0
 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))
示例#3
0
 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
示例#4
0
    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))
示例#5
0
 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)
示例#7
0
 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)
示例#8
0
 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'})
示例#9
0
 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)
示例#10
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'))
示例#11
0
 def test_creation(self):
     "Test creation of a StringConverter"
     converter = StringConverter(int, -99999)
     assert_equal(converter._status, 1)
     assert_equal(converter.default, -99999)
示例#12
0
 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'))
示例#13
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'])))