From 7a61c8a9830ee9407afbb413d2f215fabb77ee8e Mon Sep 17 00:00:00 2001
From: Hong-Phuc Bui <hong-phuc.bui@htwsaar.de>
Date: Mon, 15 Jul 2024 15:25:01 +0200
Subject: [PATCH] kompositum

---
 turtle-geo-inheritance/src/turtlegeo/main.py          |   14 +++++--
 turtle-geo-inheritance/src/turtlegeo/TtGeo.py         |    2 -
 turtle-geo-inheritance/src/turtlegeo/PolygonDrawer.py |   19 +++++++++
 turtle-geo-inheritance/tests/PolygonDrawerTest.py     |   42 +++++++++++++++++++++
 4 files changed, 71 insertions(+), 6 deletions(-)

diff --git a/turtle-geo-inheritance/src/turtlegeo/PolygonDrawer.py b/turtle-geo-inheritance/src/turtlegeo/PolygonDrawer.py
new file mode 100644
index 0000000..2481247
--- /dev/null
+++ b/turtle-geo-inheritance/src/turtlegeo/PolygonDrawer.py
@@ -0,0 +1,19 @@
+from turtle import Turtle
+
+
+class PolygonDrawer:
+    def __init__(self, t: Turtle):
+        self.t = t
+
+    def __regular_polygon(self, corner_number, length, x, y):
+        alpha = 360 / corner_number
+        head = self.t.heading()
+        self.t.teleport(x,y)
+        for i in range(0, corner_number):
+            self.t.forward(length)
+            self.t.left(alpha)
+        self.t.setheading(head)
+        pass
+
+    def triangle(self, length, x, y):
+        self.__regular_polygon(3, length, x, y)
\ No newline at end of file
diff --git a/turtle-geo-inheritance/src/turtlegeo/TtGeo.py b/turtle-geo-inheritance/src/turtlegeo/TtGeo.py
index 51a16a8..f60b649 100644
--- a/turtle-geo-inheritance/src/turtlegeo/TtGeo.py
+++ b/turtle-geo-inheritance/src/turtlegeo/TtGeo.py
@@ -15,7 +15,6 @@
         self.setheading(head)
         pass
 
-
     def __regular_polygon(self, corner_number, length, x, y):
         alpha = 360 / corner_number
         head = self.heading()
@@ -25,7 +24,6 @@
         self.setheading(head)
         pass
 
-
     def pentagon(self, length, x, y):
         self.__regular_polygon(6, length, x, y)
         pass
diff --git a/turtle-geo-inheritance/src/turtlegeo/main.py b/turtle-geo-inheritance/src/turtlegeo/main.py
index 5c4fc29..4289075 100644
--- a/turtle-geo-inheritance/src/turtlegeo/main.py
+++ b/turtle-geo-inheritance/src/turtlegeo/main.py
@@ -1,9 +1,15 @@
+from turtlegeo.PolygonDrawer import PolygonDrawer
 from turtlegeo.TtGeo import TtGeo
+from turtle import Turtle
+
+t = Turtle()
 
 
 def main():
-    t = TtGeo()
-    t.triangle(50, 20, 25)
-    t.pentagon(60, 20, 25)
-
+    #t = TtGeo()
+    #t.triangle(50, 20, 25)
+    #t.pentagon(60, 20, 25)
+    d = PolygonDrawer(t)
+    d.triangle(20, 0, 0)
+    input("Dummy")
     t.screen.mainloop()
diff --git a/turtle-geo-inheritance/tests/PolygonDrawerTest.py b/turtle-geo-inheritance/tests/PolygonDrawerTest.py
new file mode 100644
index 0000000..c9c8e2b
--- /dev/null
+++ b/turtle-geo-inheritance/tests/PolygonDrawerTest.py
@@ -0,0 +1,42 @@
+import unittest
+
+from turtlegeo.PolygonDrawer import PolygonDrawer
+
+class MotionRedording:
+    def __init__(self):
+        self._motion = []
+        self._heading = 60
+
+    def heading(self):
+        self._motion.append("heading")
+        return self._heading
+
+    def teleport(self, x, y):
+        self._motion.append(f"teleport:{x},{y}")
+
+    def forward(self, length):
+        pass
+
+    def left(self, degree):
+        pass
+
+    def setheading(self, head):
+        pass
+
+    def motion(self):
+        return self._motion
+
+
+class PolygonDrawerTestCase(unittest.TestCase):
+    def test_triangle(self):
+        dummyTurtle = MotionRedording()
+        t = PolygonDrawer(dummyTurtle)
+        t.triangle(30, 3, 4)
+        # print(dummyTurtle.motion())
+        result = dummyTurtle.motion()
+        # Test kriterien gegenüber result fomulieren
+        pass
+
+
+if __name__ == '__main__':
+    unittest.main()

--
Gitblit v1.10.0-SNAPSHOT