From 5c28e0abb061a32f61ad0626cbba64a1fbcd4576 Mon Sep 17 00:00:00 2001
From: hbui <hong-phuc.bui@htwsaar.de>
Date: Fri, 19 Jul 2024 15:23:57 +0200
Subject: [PATCH] fix unittest

---
 num-int/src/numint/RiemannSum.py       |   19 +----
 num-int/src/numint/mainwindow.ui       |   92 ++++++++++++++++++++++++++++++
 num-int/test/numint/RiemannSum_test.py |    8 +-
 num-int/pyproject.toml                 |    2 
 num-int/src/numint/main.py             |   14 ++++
 5 files changed, 117 insertions(+), 18 deletions(-)

diff --git a/num-int/pyproject.toml b/num-int/pyproject.toml
index 007b351..38a34d9 100644
--- a/num-int/pyproject.toml
+++ b/num-int/pyproject.toml
@@ -11,5 +11,5 @@
 where = ["src"]
 
 [project.scripts]
-numint = "numint.Riemann:main"
+numint = "numint.main:main"
 
diff --git a/num-int/src/numint/RiemannSum.py b/num-int/src/numint/RiemannSum.py
index 12febc7..826ac3f 100644
--- a/num-int/src/numint/RiemannSum.py
+++ b/num-int/src/numint/RiemannSum.py
@@ -16,26 +16,22 @@
 
 def numint(f, a, b, epsilon=1e-3):
     dx = b - a
+    x = [a, b]  # debug only
     y = [f(a), f(b)]
     s_left = dx * y[0]
     s_right = dx * y[1]
-    (n, parts) = (1, 1)
+    (n, parts) = (0, 1)
     while abs(s_right - s_left) > epsilon:
-        x = [a, b]  # debug only
         parts = 2 * parts
         dx = dx / 2
         n += 1
-        print(n, " → ", parts)
+        # print(n, " → ", parts)
         for i in range(1, parts, 2):
-            x.insert(i, a + i * dx)  # debug only
+            x.insert(i, a + i * dx)
             y.insert(i, f(a + i * dx))
-            # print(i, end=" ")
-        # print()
-        # print("    ", x)
-        # print("    ", y)
         s_left = sum(y[0:-1]) * dx
         s_right = sum(y[1:]) * dx
-    return s_left, s_right
+    return x, y, s_left, s_right, n
 
 
 def numint_compact(f, a, b, epsilon=1e-3):
@@ -49,15 +45,10 @@
         parts = 2 * parts
         dx = dx / 2
         n += 1
-        print(n, " → ", parts)
         for i in range(1, parts, 2):
-            # print(i, end=" ")
             y = f(a + i*dx)
             y_l += y
             y_r += y
-        print()
-        # print("    ", x)
-        # print("    ", y)
         s_left = y_l * dx
         s_right = y_r * dx
     return s_left, s_right
diff --git a/num-int/src/numint/main.py b/num-int/src/numint/main.py
new file mode 100644
index 0000000..e61dd6c
--- /dev/null
+++ b/num-int/src/numint/main.py
@@ -0,0 +1,14 @@
+import matplotlib.pyplot as plt
+
+from numint.RiemannSum import numint
+
+def main():
+    def f(x): return x**3
+    (a,b) = (1,2)
+    (x, y, l, r, n) = numint(f, a, b, 0.5)
+    # print(l, r, n)
+    plt.step(x, y,               label="x^3")
+    plt.step(x, y, where="post", label="x^3")
+    plt.plot(x,y, color="gray", alpha=0.3)
+    plt.show()
+    pass
\ No newline at end of file
diff --git a/num-int/src/numint/mainwindow.ui b/num-int/src/numint/mainwindow.ui
new file mode 100644
index 0000000..2ef3ab5
--- /dev/null
+++ b/num-int/src/numint/mainwindow.ui
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>800</width>
+    <height>600</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>MainWindow</string>
+  </property>
+  <widget class="QWidget" name="centralwidget">
+   <widget class="QWidget" name="">
+    <property name="geometry">
+     <rect>
+      <x>11</x>
+      <y>11</y>
+      <width>328</width>
+      <height>71</height>
+     </rect>
+    </property>
+    <layout class="QVBoxLayout" name="verticalLayout">
+     <item>
+      <layout class="QHBoxLayout" name="horizontalLayout">
+       <item>
+        <widget class="QLabel" name="label">
+         <property name="text">
+          <string>a</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLineEdit" name="lineEdit"/>
+       </item>
+       <item>
+        <widget class="QLabel" name="label_2">
+         <property name="text">
+          <string>b</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLineEdit" name="lineEdit_2"/>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <item>
+        <spacer name="horizontalSpacer">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QPushButton" name="pushButton">
+         <property name="text">
+          <string>Ok</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+    </layout>
+   </widget>
+  </widget>
+  <widget class="QMenuBar" name="menubar">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>800</width>
+     <height>26</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QStatusBar" name="statusbar"/>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/num-int/test/numint/RiemannSum_test.py b/num-int/test/numint/RiemannSum_test.py
index 6711a7e..89731fe 100644
--- a/num-int/test/numint/RiemannSum_test.py
+++ b/num-int/test/numint/RiemannSum_test.py
@@ -4,15 +4,17 @@
 
 
 class RiemannSumTestCase(unittest.TestCase):
-
+    """
+    TODO (Aufgabe) Schreiben Sie Kriterien in Unittest
+    """
     def test_split_interval(self):
         split(iteration=6)
 
     def test_numint(self):
         def fn(x) : return x**2
         (a, b) = (0, 2)
-        (l, r) = numint(fn, a, b)
-        print(l, r)
+        (l, r, *_) = numint(fn, a, b)
+        # print(l, r)  # print Take too much place on screen
         pass
 
     def test_numint_compact(self):

--
Gitblit v1.10.0-SNAPSHOT