def test_decimal(): s = PyArrowSerializer() expected = [{'a': Decimal('1.2')}] actual = s.deserialize(s.serialize(expected)) np.testing.assert_array_equal(actual[0]['a'], expected[0]['a']) expected = [{'a': [Decimal('1.2')]}] actual = s.deserialize(s.serialize(expected)) np.testing.assert_array_equal(actual[0]['a'], expected[0]['a'])
def test_all_matrix_types(): s = PyArrowSerializer() # We would be using serializer with arrays of dictionaries or arrays of dictionaries of dictionaries (ngram) serialized_values = [ (np.int8, -127), (np.uint8, 255), (np.int16, -2**15), (np.uint16, 2**16 - 1), (np.int32, -2**31), (np.uint32, 2**32 - 1), (np.float16, 1.2), (np.float32, 1.2), (np.float64, 1.2), (np.string_, 'abc'), (np.unicode_, u'אבג'), (np.int64, -2**63), (np.uint64, 2**64 - 1), ] for type_factory, value in serialized_values: desired = [{'value': np.asarray(4 * [value], dtype=type_factory)}] actual = s.deserialize(s.serialize(desired)) assert actual[0]['value'].dtype == desired[0]['value'].dtype np.testing.assert_array_equal(actual[0]['value'], desired[0]['value'])
def test_nominal(): s = PyArrowSerializer() expected = [{'a': np.asarray([1, 2], dtype=np.uint64)}] actual = s.deserialize(s.serialize(expected)) np.testing.assert_array_equal(actual[0]['a'], expected[0]['a'])