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