From cb171b125c047de75cd2c7c6837e8781b8336699 Mon Sep 17 00:00:00 2001 From: hbui <hong-phuc.bui@htwsaar.de> Date: Fri, 19 Jul 2024 02:05:08 +0200 Subject: [PATCH] Graph Implementierung für die Aufgabe OK --- stundenplan/src/pygraph/graphdemo.py | 3 +-- stundenplan/tests/pygraph/graphdemo.tests.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/stundenplan/src/pygraph/graphdemo.py b/stundenplan/src/pygraph/graphdemo.py index 28bf931..4b999e8 100644 --- a/stundenplan/src/pygraph/graphdemo.py +++ b/stundenplan/src/pygraph/graphdemo.py @@ -8,7 +8,6 @@ if not isinstance(vertex, int): raise TypeError(f"Argument {vertex} is not a valid vertex") self._adjacent[vertex] = set() - pass def add_edge(self, u, v): @@ -64,7 +63,7 @@ visited_edges: dict[int, set] = {} for start in self.vertices(): for end in self.adjacent_of(start): - (first, second) = (start, end) if (start > end) else (end, start) + (first, second) = (start, end) if (start >= end) else (end, start) if first in visited_edges: visited_adjacent = visited_edges.get(first) if second not in visited_adjacent: diff --git a/stundenplan/tests/pygraph/graphdemo.tests.py b/stundenplan/tests/pygraph/graphdemo.tests.py index 164c4ac..d8d1ba5 100644 --- a/stundenplan/tests/pygraph/graphdemo.tests.py +++ b/stundenplan/tests/pygraph/graphdemo.tests.py @@ -35,6 +35,54 @@ self.assertTrue(edge in edges) g.for_each_edges(action) + def test_iterate_all_vertices(self): + g = Graph() + g.add_edge(1, 2) + g.add_edge(1, 3) + g.add_edge(2, 3) + g.add_edge(2, 4) + vertices = [] + for v in g.vertices(): + vertices.append(v) + expected = [1, 2, 3, 4] + self.assertListEqual(sorted(vertices), expected) + pass + + def test_iterate_neighbor_vertex(self): + g = Graph() + g.add_edge(1, 2) + g.add_edge(1, 3) + g.add_edge(2, 3) + g.add_edge(2, 4) + g.add_edge(4, 1) + vertices = [] + for v in g.adjacent_of(1): + vertices.append(v) + expected = [2, 3, 4] + self.assertListEqual(sorted(vertices), expected) + pass + + def test_not_add_float_to_vertex(self): + g = Graph() + try: + g.add_vertex(1.2) + pass + except TypeError as ex: + expected_msg = "Argument 1.2 is not a valid vertex" + self.assertEqual(str(ex), expected_msg) + pass + pass + + def test_not_add_string_to_vertex(self): + g = Graph() + try: + g.add_vertex("add") + except TypeError as ex: + expected_msg = 'Argument add is not a valid vertex' + self.assertEqual(str(ex), expected_msg) + pass + pass + if __name__ == '__main__': unittest.main() -- Gitblit v1.10.0-SNAPSHOT