From 9309589ff6fe3f61abd61263f61eb890141f6491 Mon Sep 17 00:00:00 2001 From: Hong-Phuc Bui <hong-phuc.bui@htwsaar.de> Date: Tue, 24 Jun 2025 16:18:56 +0200 Subject: [PATCH] fix iteration over edges --- stundenplan/src/graphdemo_tests.py | 15 +++++++++++++++ stundenplan/src/graphdemo.py | 22 ++++++++++------------ stundenplan/Readme.md | 1 + 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/stundenplan/Readme.md b/stundenplan/Readme.md index 6f8c067..bf816e3 100644 --- a/stundenplan/Readme.md +++ b/stundenplan/Readme.md @@ -11,6 +11,7 @@ ## Run Unittest ```shell +cd src pytest *_tests.py ``` diff --git a/stundenplan/src/graphdemo.py b/stundenplan/src/graphdemo.py index d8669be..9b0ac22 100644 --- a/stundenplan/src/graphdemo.py +++ b/stundenplan/src/graphdemo.py @@ -89,19 +89,17 @@ 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 = "" diff --git a/stundenplan/src/graphdemo_tests.py b/stundenplan/src/graphdemo_tests.py index cd6234c..0744753 100644 --- a/stundenplan/src/graphdemo_tests.py +++ b/stundenplan/src/graphdemo_tests.py @@ -29,11 +29,14 @@ 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() @@ -48,6 +51,18 @@ 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) -- Gitblit v1.10.0