def test_coerce(): r"""Test serialization of coerced types.""" typedef = { 'type': 'object', 'properties': { 'a': { 'type': '1darray', 'subtype': 'float', 'title': 'a', 'precision': 64 } } } x = JSONObjectMetaschemaType(**typedef) key_order = ['a'] msg_recv = {'a': np.zeros(3, 'float64')} msg_send_list = [ serialize.dict2numpy(msg_recv, order=key_order), serialize.dict2pandas(msg_recv, order=key_order), serialize.dict2list(msg_recv, order=key_order) ] def do_send_recv(msg_send): msg_seri = x.serialize(msg_send, tyepdef=typedef, key_order=key_order) assert_equal(x.deserialize(msg_seri)[0], msg_recv) for y in msg_send_list: do_send_recv(y)
def test_coerce(nested_approx): r"""Test serialization of coerced types.""" from yggdrasil.metaschema.datatypes.JSONObjectMetaschemaType import ( JSONObjectMetaschemaType) from yggdrasil import serialize typedef = { 'type': 'object', 'properties': { 'a': { 'type': '1darray', 'subtype': 'float', 'title': 'a', 'precision': 64 } } } x = JSONObjectMetaschemaType(**typedef) key_order = ['a'] msg_recv = {'a': np.zeros(3, 'float64')} msg_send_list = [{ 'a': np.zeros(3, 'float32') }, serialize.dict2numpy(msg_recv, order=key_order), serialize.dict2pandas(msg_recv, order=key_order), serialize.dict2list(msg_recv, order=key_order)] def do_send_recv(msg_send): msg_seri = x.serialize(msg_send, tyepdef=typedef, key_order=key_order) assert (x.deserialize(msg_seri)[0] == nested_approx(msg_recv)) for y in msg_send_list: do_send_recv(y)
def test_numpy2dict(): r"""Test conversion of a numpy array to a dictionary and back.""" assert_raises(TypeError, serialize.numpy2dict, None) assert_raises(TypeError, serialize.dict2numpy, None) nele = 5 names = ["complex", "name", "number", "value"] dtypes = ['c16', 'S5', 'i8', 'f8'] dtype = np.dtype([(n, f) for n, f in zip(names, dtypes)]) arr_mix = np.zeros(nele, dtype) arr_mix['name'][0] = 'hello' test_arrs = [arr_mix] for ans in test_arrs: d = serialize.numpy2dict(ans) # Sorted res = serialize.dict2numpy(d) np.testing.assert_array_equal(ans, res) # Provided res = serialize.dict2numpy(d, order=names) np.testing.assert_array_equal(ans, res)