Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)