def test_length_4_undirected(self): g = graph.cycle(4, directed=False) edges = [(0, 1), (1, 0), (1, 2), (2, 1), (2, 3), (3, 2), (3, 0), (0, 3)] self.assertEqual(g.vertices, [0, 1, 2, 3]) self.assertEqual(g.edges, edges) for vertex, neighbors in [(0, (1, 3)), (1, (0, 2)), (2, (1, 3)), (3, (0, 2))]: self.assertEqual(set(g.out_vertices(vertex)), set(neighbors)) for vertex, neighbors in [(0, (1, 3)), (1, (0, 2)), (2, (1, 3)), (3, (0, 2))]: self.assertEqual(set(g.in_vertices(vertex)), set(neighbors))
def test_length_4_directed(self): g = graph.cycle(4, directed=True) self.assertEqual(g.vertices, [0, 1, 2, 3]) self.assertEqual(g.edges, [(0, 1), (1, 2), (2, 3), (3, 0)]) self.assertEqual(g.out_vertices(0), [1]) self.assertEqual(g.out_vertices(1), [2]) self.assertEqual(g.out_vertices(2), [3]) self.assertEqual(g.out_vertices(3), [0]) self.assertEqual(g.in_vertices(0), [3]) self.assertEqual(g.in_vertices(1), [0]) self.assertEqual(g.in_vertices(2), [1]) self.assertEqual(g.in_vertices(3), [2])
def test_cycle(self): g = graph.cycle(1, directed=False) self.assertEqual(g.vertices(), [0]) self.assertEqual(g.edges(), [(0, 0)]) self.assertEqual(g.directed, False) g = graph.cycle(1, directed=True) self.assertEqual(g.vertices(), [0]) self.assertEqual(g.edges(), [(0, 0)]) self.assertEqual(g.directed, True) g = graph.cycle(2, directed=True) self.assertEqual(g.vertices(), [0, 1]) self.assertEqual(g.edges(), [(0, 1), (1, 0)]) g = graph.cycle(2, directed=False) self.assertEqual(g.vertices(), [0, 1]) self.assertEqual(g.edges(), [(0, 1), (1, 0)]) g = graph.cycle(3, directed=True) self.assertEqual(g.vertices(), [0, 1, 2]) self.assertEqual(g.edges(), [(0, 1), (1, 2), (2, 0)]) g = graph.cycle(3, directed=False) edges = [(0, 1), (1, 0), (1, 2), (2, 1), (2, 0), (0, 2)] self.assertEqual(g.vertices(), [0, 1, 2]) self.assertEqual(g.edges(), edges) g = graph.cycle(4, directed=True) self.assertEqual(g.vertices(), [0, 1, 2, 3]) self.assertEqual(g.edges(), [(0, 1), (1, 2), (2, 3), (3, 0)]) self.assertEqual(g.out_vertices(0), [1]) self.assertEqual(g.out_vertices(1), [2]) self.assertEqual(g.out_vertices(2), [3]) self.assertEqual(g.out_vertices(3), [0]) self.assertEqual(g.in_vertices(0), [3]) self.assertEqual(g.in_vertices(1), [0]) self.assertEqual(g.in_vertices(2), [1]) self.assertEqual(g.in_vertices(3), [2]) g = graph.cycle(4, directed=False) edges = [(0, 1), (1, 0), (1, 2), (2, 1), (2, 3), (3, 2), (3, 0), (0, 3)] self.assertEqual(g.vertices(), [0, 1, 2, 3]) self.assertEqual(g.edges(), edges) for vertex, neighbors in [ (0, (1, 3)), (1, (0, 2)), (2, (1, 3)), (3, (0, 2))]: self.assertEqual(set(g.out_vertices(vertex)), set(neighbors)) for vertex, neighbors in [ (0, (1, 3)), (1, (0, 2)), (2, (1, 3)), (3, (0, 2))]: self.assertEqual(set(g.in_vertices(vertex)), set(neighbors))
def test_length_3_undirected(self): g = graph.cycle(3, directed=False) edges = [(0, 1), (1, 0), (1, 2), (2, 1), (2, 0), (0, 2)] self.assertEqual(g.vertices, [0, 1, 2]) self.assertEqual(g.edges, edges)
def test_length_3_directed(self): g = graph.cycle(3, directed=True) self.assertEqual(g.vertices, [0, 1, 2]) self.assertEqual(g.edges, [(0, 1), (1, 2), (2, 0)])
def test_length_2_undirected(self): g = graph.cycle(2, directed=False) self.assertEqual(g.vertices, [0, 1]) self.assertEqual(g.edges, [(0, 1), (1, 0)])
def test_length_1_undirected(self): g = graph.cycle(1, directed=False) self.assertEqual(g.vertices, [0]) self.assertEqual(g.edges, [(0, 0)]) self.assertEqual(g.directed, False)
def test_length_1_directed(self): g = graph.cycle(1, directed=True) self.assertEqual(g.vertices, [0]) self.assertEqual(g.edges, [(0, 0)]) self.assertEqual(g.directed, True)