| | |
| | | ## Run Unittest |
| | | |
| | | ```shell |
| | | cd src |
| | | pytest *_tests.py |
| | | ``` |
| | | |
| | |
| | | for start in sorted( self.vertices() ): |
| | | for end in self.adjacent_of(start): |
| | | (first, second) = (start, end) if (start >= end) else (end, start) |
| | | if first in visited_edges: |
| | | #visited_adjacent = visited_edges.get(first) |
| | | visited_adjacent = visited_edges[first] |
| | | if second not in visited_adjacent: |
| | | visited_adjacent.add(second) |
| | | if first in visited_edges: |
| | | #visited_adjacent = visited_edges.get(first) |
| | | visited_adjacent = visited_edges[first] |
| | | if second not in visited_adjacent: |
| | | visited_adjacent.add(second) |
| | | action(start, end) |
| | | else: |
| | | adjacent: set[int] = set() |
| | | visited_edges[first] = adjacent |
| | | adjacent.add(second) |
| | | action(start, end) |
| | | else: |
| | | adjacent: set[int] = set() |
| | | visited_edges[first] = adjacent |
| | | adjacent.add(second) |
| | | action(start, end) |
| | | |
| | | |
| | | |
| | | def __repr__(self): |
| | | text = "" |
| | |
| | | edges = [ |
| | | "1-2", "1-3", "2-3", "2-4" |
| | | ] |
| | | edge_count = [] |
| | | def action(a, b): |
| | | (s,e) = (a,b) if a < b else (b,a) |
| | | edge = f"{s}-{e}" |
| | | edge_count.append(edge) |
| | | self.assertTrue(edge in edges) |
| | | g.for_each_edges(action) |
| | | self.assertEqual(len(edge_count), len(edges)) |
| | | |
| | | def test_iterate_all_vertices(self): |
| | | g = Graph() |
| | |
| | | self.assertListEqual(sorted(vertices), expected) |
| | | pass |
| | | |
| | | def test_iterate_all_vertices_lambda(self): |
| | | g = Graph() |
| | | g.add_edge(1, 2) |
| | | g.add_edge(1, 3) |
| | | g.add_edge(2, 3) |
| | | g.add_edge(2, 4) |
| | | vertices = [] |
| | | g.for_each_vertices(lambda v : print(f"visit {v}")) |
| | | print(vertices) |
| | | pass |
| | | |
| | | |
| | | def test_iterate_neighbor_vertex(self): |
| | | g = Graph() |
| | | g.add_edge(1, 2) |