def test_iter_complete_graph_simple(self): graphs = list(stitcher.iter_complete_graphs(4, 6)) self.assertEqual(len(graphs), 2) self.assertEqual(graphs[0].adj, nx.complete_graph(4).adj) self.assertEqual(graphs[1].adj, nx.complete_graph(5).adj)
def test_start_8_stop_8(self): variables = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] # should produce at least one graph G, = stitcher.iter_complete_graphs(variables, 9) G0 = nx.complete_graph(variables) self.assertEqual(G.nodes, G0.nodes) self.assertEqual(G.edges, G0.edges)
def test_iter_complete_graph_seed_node_index(self): # implicit that the length is 3 G0, G1, G2 = stitcher.iter_complete_graphs([1], 4) self.assertIn(1, G0) self.assertIn(1, G1) self.assertEqual(set(G0), {1}) # start with label 1 self.assertEqual(set(G1), {0, 1}) self.assertEqual(set(G2), {0, 1, 2})
def test_iter_complete_graph_factory(self): def factory(): i = 0 while True: yield 'aux{}'.format(i) i += 1 G0, G1, G2 = stitcher.iter_complete_graphs(['a', 'b'], 5, factory=factory()) self.assertEqual(set(G2), {'a', 'b', 'aux0', 'aux1'})
def test_iter_complete_graph_seed_nodes(self): # implicit that the length is 2 G0, G1 = stitcher.iter_complete_graphs(['a', 'b'], 4) self.assertIn('a', G0) self.assertIn('a', G1) self.assertIn('b', G0) self.assertIn('b', G1) self.assertEqual(set(G1), {'a', 'b', 0}) # aux var should be index-labeled
def test_iter_complete_graph_empty(self): # should produce empty lists rather than failing self.assertFalse( list(stitcher.iter_complete_graphs(['a', 'b', 'c'], 2))) self.assertFalse(list(stitcher.iter_complete_graphs(3, 2)))