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()