def test_rev_node_attr(self):
"""Are node attr preserved when we convert the graphml back to a network?"""
rev = nx.read_graphml(self.path)
mg = self.mg
# Check that node attributes still exist
for n in mg.nodes():
self.assertIn('id', rev.node[n])
self.assertIn('type', rev.node[n])
self.assertIn('records', rev.node[n])
self.assertIsInstance(rev.node[n]['records'], str)
if rev.node[n]['type'] == 'author':
self.assertIn('email', rev.node[n])
# Check that node attributes haven't been added
for n in rev.nodes():
self.assertEqual(len(mg.node[n]), len(rev.node[n]))
# Check that node attribute values are the same
for n in rev.nodes():
for k in rev.node[n]:
if not isinstance(mg.node[n][k], list):
self.assertEqual(mg.node[n][k], rev.node[n][k])
else:
self.assertEqual(";".join(mg.node[n][k]), rev.node[n][k])
评论列表
文章目录