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