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