39 lines
1.7 KiB
Python
39 lines
1.7 KiB
Python
import unittest
|
|
from matrixmania.compute import rot_2D # Importiere die Funktion aus deiner compute.py
|
|
import math
|
|
|
|
class TestRot2D(unittest.TestCase):
|
|
# Setze eine Toleranz für Fließkommazahlen
|
|
TOLERANCE = 5
|
|
|
|
def test_zero_angle(self):
|
|
# Testfall: 0 Grad (0 Bogenmaß) Rotation -> Einheitsmatrix
|
|
expected = [[1.0, 0.0], [0.0, 1.0]]
|
|
result = rot_2D(0)
|
|
self.assertAlmostEqual(result[0][0], expected[0][0], self.TOLERANCE)
|
|
self.assertAlmostEqual(result[0][1], expected[0][1], self.TOLERANCE)
|
|
self.assertAlmostEqual(result[1][0], expected[1][0], self.TOLERANCE)
|
|
self.assertAlmostEqual(result[1][1], expected[1][1], self.TOLERANCE)
|
|
|
|
def test_ninety_degrees(self):
|
|
# Testfall: 90 Grad (pi/2 Bogenmaß) Rotation
|
|
# Erwartet: [[0, -1], [1, 0]]
|
|
expected = [[0.0, -1.0], [1.0, 0.0]]
|
|
result = rot_2D(math.pi / 2)
|
|
self.assertAlmostEqual(result[0][0], expected[0][0], self.TOLERANCE)
|
|
self.assertAlmostEqual(result[0][1], expected[0][1], self.TOLERANCE)
|
|
self.assertAlmostEqual(result[1][0], expected[1][0], self.TOLERANCE)
|
|
self.assertAlmostEqual(result[1][1], expected[1][1], self.TOLERANCE)
|
|
|
|
def test_one_eighty_degrees(self):
|
|
# Testfall: 180 Grad (pi Bogenmaß) Rotation
|
|
# Erwartet: [[-1, 0], [0, -1]]
|
|
expected = [[-1.0, 0.0], [0.0, -1.0]]
|
|
result = rot_2D(math.pi)
|
|
self.assertAlmostEqual(result[0][0], expected[0][0], self.TOLERANCE)
|
|
self.assertAlmostEqual(result[0][1], expected[0][1], self.TOLERANCE)
|
|
self.assertAlmostEqual(result[1][0], expected[1][0], self.TOLERANCE)
|
|
self.assertAlmostEqual(result[1][1], expected[1][1], self.TOLERANCE)
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main() |