import unittest import sys sys.path.append('../../') from fluents import annotations class AnnotationsTest(unittest.TestCase): def setUp(self): pass def testAddAnnotations(self): h = annotations.DictAnnotationHandler() annotations.set_dim_handler('go-terms', h) assert annotations.get_dim_handler('go-terms') == h assert annotations.get_dim_handler('foobar') == None def testGetDimAnnotations(self): h = annotations.DictAnnotationHandler() annotations.set_dim_handler('go-terms', h) d = {'GO:0': 'biological_process', 'GO:1': 'foo', 'GO:2': 'bar'} h.add_annotations('name', d) ann0 = annotations.get_dim_annotations('go-terms', 'name', []) assert ann0 == [] ann1 = annotations.get_dim_annotations('go-terms', 'name', ['GO:0']) assert len(ann1) == 1 assert ann1[0] == 'biological_process' ann2 = annotations.get_dim_annotations('go-terms', 'name', ['GO:1', 'baz']) assert len(ann2) == 2 assert ann2 == ['foo', None] def testDictAnnotationHandler(self): h = annotations.DictAnnotationHandler() annotations.set_dim_handler('go-terms', h) d = {'GO:0': 'biological_process', 'GO:1': 'foo', 'GO:2': 'bar'} h.add_annotations('name', d) ann0 = h.get_annotations('name', []) assert ann0 == [] ann1 = h.get_annotations('name', ['unexisting']) assert ann1 == [None] ann2 = h.get_annotations('name', ['unexisting'], 42) assert ann2 == [42] assert h.get_annotation_names() == ['name'] def testReadAnnotationsFile(self): ann = annotations.read_annotations_file('../data/annotations.fann') assert ann != None assert ann == annotations.get_dim_handler('dim1') assert 'Ann1' in ann.get_annotation_names() assert 'Ann2' in ann.get_annotation_names() assert not ('Ann3' in ann.get_annotation_names()) assert annotations.get_dim_annotations('dim1', 'Ann1', ['id1']) == ['11'] if __name__ == '__main__': unittest.main()