Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
tests for attribute_handler.py
  • Loading branch information
dwhswenson committed Dec 19, 2020
commit 1bf7a16d4418baa8cff1ec7a9043aeaa5de5c7a8
50 changes: 50 additions & 0 deletions openpathsampling/experimental/simstore/test_attribute_handlers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import pytest

import numpy as np

from .attribute_handlers import *

class TestStandardHandler(object):
def setup(self):
self.obj = {'str': 'foo',
'int': 42,
'float': 3.14159,
'function': lambda x: x}

@pytest.mark.parametrize('type_str, expected', [
('str', 'str'), ('int', 'int'), ('float', 'float'),
('function', 'function'), ('ndarray.float32(3,2)', None),
])
def test_is_my_type(self, type_str, expected):
assert StandardHandler.is_my_type(type_str) == expected

@pytest.mark.parametrize('type_str', ['str', 'int', 'float', 'function'])
def test_serialization_cycle(self, type_str):
handler = StandardHandler(type_str)
data = self.obj[type_str]
ser = handler.serialize(data)
deser = handler.deserialize(ser)
reser = handler.serialize(deser)
assert data == deser
assert ser == reser


class TestNDArrayHandler(object):
def setup(self):
self.data = np.array([[0.0, 1.0, 2.0], [3.0, 4.0, 5.0]])
self.ndarray_handler = NDArrayHandler(('float32', (2,3)))

@pytest.mark.parametrize('type_str,expected', [
('str', None),
('ndarray.float32(3, 2)', (np.float32, (3, 2))),
('ndarray.float32(3,2)', (np.float32, (3, 2))),
])
def test_is_my_type(self, type_str, expected):
assert NDArrayHandler.is_my_type(type_str) == expected

def test_serialization_cycle(self):
ser = self.ndarray_handler.serialize(self.data)
deser = self.ndarray_handler.deserialize(ser)
np.testing.assert_equal(deser, self.data)
reser = self.ndarray_handler.serialize(deser)
assert ser == reser