def test_constructor_and__str__(self): ne = NetworkEdge() self.assertEqual(None, ne.get_attributes()) self.assertEqual(None, ne.get_id()) self.assertEqual(None, ne.get_source_node_id()) self.assertEqual(None, ne.get_target_node_id()) self.assertEqual(None, ne.get_interaction()) self.assertEqual(None, ne.get_source_node_name()) self.assertEqual(None, ne.get_target_node_name()) self.assertEqual('po=None, s=None (None), t=None (None), i=None', str(ne)) # try with values set ne = NetworkEdge(edge_id=1, source_node_id=2, source_node_name='src', target_node_id=3, target_node_name='target', interaction='interaction', attributes=[]) self.assertEqual([], ne.get_attributes()) self.assertEqual(1, ne.get_id()) self.assertEqual(2, ne.get_source_node_id()) self.assertEqual(3, ne.get_target_node_id()) self.assertEqual('interaction', ne.get_interaction()) self.assertEqual('src', ne.get_source_node_name()) self.assertEqual('target', ne.get_target_node_name()) self.assertEqual('po=1, s=2 (src), t=3 (target), i=interaction', str(ne))
def test_remove_identical_attributes_one_attr(self): ne = NetworkEdge() # test where there is 1 attribute attrs = [Attribute(name='foo', value='bar')] ne.set_attributes(attrs) self.assertEqual([], ne.remove_identical_attributes()) self.assertEqual(1, len(ne.get_attributes()))
def test_merge_duplicate_attributes(self): # test merge with None for attributes ne = NetworkEdge() ne.merge_duplicate_attributes() # test merge with only 1 attribute ne.set_attributes([Attribute(name='foo', value='bar')]) ne.merge_duplicate_attributes() self.assertEqual(1, len(ne.get_attributes())) self.assertEqual('foo', ne.get_attributes()[0].get_name()) # test merge with two identical attributes ne.set_attributes([ Attribute(name='foo', value='bar'), Attribute(name='foo', value='bar') ]) ne.merge_duplicate_attributes() self.assertEqual(1, len(ne.get_attributes())) self.assertEqual('foo', ne.get_attributes()[0].get_name()) # test merge with two identical and 1 different ne.set_attributes([ Attribute(name='foo', value='bar'), Attribute(name='foo', value='bar'), Attribute(name='other', value='yo') ]) ne.merge_duplicate_attributes() self.assertEqual(2, len(ne.get_attributes())) a_names = set(x.get_name() for x in ne.get_attributes()) self.assertTrue('foo' in a_names) self.assertTrue('other' in a_names)
def test_remove_identical_attributes_four_attrs_two_same(self): ne = NetworkEdge() # test where there is 1 attribute attrs = [ Attribute(name='foo', value='bar'), Attribute(name='blah', value='yo'), Attribute(name='blah', value='yo'), Attribute(name='ha', value='well') ] ne.set_attributes(attrs) merged = ne.remove_identical_attributes() self.assertEqual(1, len(merged)) self.assertEqual('blah', merged[0].get_name()) self.assertEqual(3, len(ne.get_attributes()))
def test_getters_and_setters(self): ne = NetworkEdge() ne.set_attributes([]) ne.set_id(1) ne.set_source_node_id(2) ne.set_target_node_id(3) ne.set_source_node_name('src') ne.set_target_node_name('target') ne.set_interaction('interaction') self.assertEqual([], ne.get_attributes()) self.assertEqual(1, ne.get_id()) self.assertEqual(2, ne.get_source_node_id()) self.assertEqual(3, ne.get_target_node_id()) self.assertEqual('interaction', ne.get_interaction()) self.assertEqual('src', ne.get_source_node_name()) self.assertEqual('target', ne.get_target_node_name())
def test_remove_identical_attributes_five_attrs_two_pair_same(self): ne = NetworkEdge() # test where there is 5 attribute attrs = [ Attribute(name='x', value='xval'), Attribute(name='a', value='bar'), Attribute(name='blah', value='yo'), Attribute(name='a', value='bar'), Attribute(name='blah', value='yo') ] ne.set_attributes(attrs) merged = ne.remove_identical_attributes() self.assertEqual(2, len(merged)) merged_anames = set(x.get_name() for x in merged) self.assertTrue('a' in merged_anames) self.assertTrue('blah' in merged_anames) self.assertEqual(2, len(merged_anames)) self.assertEqual(3, len(ne.get_attributes()))
def test_merge(self): # test against None ne = NetworkEdge() ne.merge_edge(None) # test common scenario ne_one = NetworkEdge(attributes=[ Attribute(name='directed', value=True, data_type='boolean') ]) ne_two = NetworkEdge(attributes=[ Attribute(name='directed', value=True, data_type='boolean') ]) ne.merge_edge(ne_two) self.assertTrue(1, len(ne_one.get_attributes())) self.assertEqual('directed', ne.get_attributes()[0].get_name()) self.assertEqual(True, ne.get_attributes()[0].get_value()) self.assertEqual('boolean', ne.get_attributes()[0].get_data_type()) # test another common scenario ne_one = NetworkEdge(attributes=[ Attribute( name='citation', value=['1', '2'], data_type='list_of_string'), Attribute(name='directed', value=True, data_type='boolean') ]) ne_two = NetworkEdge(attributes=[ Attribute(name='citation', value=['3', '1', '2'], data_type='list_of_string'), Attribute(name='directed', value=True, data_type='boolean') ]) ne.merge_edge(ne_two) self.assertEqual(2, len(ne.get_attributes())) a_names = set(x.get_name() for x in ne.get_attributes()) self.assertTrue('citation' in a_names) self.assertTrue('directed' in a_names) for x in ne.get_attributes(): if x.get_name() == 'citation': self.assertEqual(3, len(x.get_value())) self.assertTrue('1' in x.get_value()) self.assertTrue('2' in x.get_value()) self.assertTrue('3' in x.get_value())