// Dieser Test ist eine ausführliche Testung der Vektorklasse import org.junit.jupiter.api.Test; import static org.junit.Assert.assertNull; import static org.junit.jupiter.api.Assertions.*; public class VectorTest { // Testteil für die überprüfung der Scalarenmultiplikation @Test void testScalarMultiplicationVariants() { int[] vector1 = { 1, -2, 3 }; Vector.scalarMultiplication(vector1, 2); assertArrayEquals(new int[] { 2, -4, 6 }, vector1); int[] vector2 = { 7, 8, 15 }; Vector.scalarMultiplication(vector2, -1); assertArrayEquals(new int[] { -7, -8, -15 }, vector2); int[] vector3 = { 0, 0, 0 }; Vector.scalarMultiplication(vector3, 5); assertArrayEquals(new int[] { 0, 0, 0 }, vector3); int[] vector4 = {}; Vector.scalarMultiplication(vector4, 2); assertArrayEquals(new int[] {}, vector4); int[] vector5 = null; Vector.scalarMultiplication(vector5, 5); assertArrayEquals(null, vector5); } // Test für den Kreuzprodukt in 2D @Test void testVectorProduct2DVariants() { int ergebnis1 = -2; System.out.println("Erwartet: " + ergebnis1); Vector.vectorProduct(new int[] { 3, 4 }, new int[] { 5, 6 }); int ergebnis2 = -1; System.out.println("Erwartet: " + ergebnis2); Vector.vectorProduct(new int[] { 0, 1 }, new int[] { 1, 0 }); } // Test für den Kreuzprodukt in 3D @Test void testVectorProduct3DVariants() { int[] ergebnis1 = { -3, 6, -3 }; System.out.println("Erwartet: [" + ergebnis1[0] + ", " + ergebnis1[1] + ", " + ergebnis1[2] + "]"); Vector.vectorProduct(new int[] { 1, 2, 3 }, new int[] { 4, 5, 6 }); int[] ergebnis2 = { -1, 0, 0 }; System.out.println("Erwartet: [" + ergebnis2[0] + ", " + ergebnis2[1] + ", " + ergebnis2[2] + "]"); Vector.vectorProduct(new int[] { 0, 0, 1 }, new int[] { 0, 1, 0 }); } // Test für den Kreuzprodukt bei unterschiedlichen Dimensionen @Test void testVectorProductInvalidDimensions() { System.out.println("Erwartet: illegale Dimension"); Vector.vectorProduct(new int[] { 1, 0 }, new int[] { 0, 1, 0 }); } // Test für den Vektorbetrag @Test void testVectorLengthVariants() { assertEquals(5.0, Vector.vectorLength(new int[] { 3, 4 }), 0.001); assertEquals(3.0, Vector.vectorLength(new int[] { 1, 2, 2 }), 0.001); assertEquals(0.0, Vector.vectorLength(new int[] { 0, 0, 0 }), 0.001); } // Test für die scalare Matrixmultiplikation @Test void testMatrixMultiplicationVariants() { int[][] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; int[][] expected = { { 2, 4, 6 }, { 8, 10, 12 }, { 14, 16, 18 } }; assertArrayEquals(expected, Vector.matrixMultiplication(matrix, 2)); int[][] zeroMatrix = { { 1, -2, -6 }, { -3, 4, 5 }, { -70, 12, -8 } }; int[][] expectedZero = { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }; assertArrayEquals(expectedZero, Vector.matrixMultiplication(zeroMatrix, 0)); } // Test von fehlerhafte Matrixen für die scalare Matrixmultiplikation @Test void testMatrixMultiplicationInvalidCases() { int[][] non3DSquare = { { 1, 2, 3 }, { 4, 5, 6 } }; assertNull(Vector.matrixMultiplication(non3DSquare, 3)); int[][] non3DSquare1 = { { 1, 2, 3 }, { 3, 4, 5 }, { 6, 7 } }; assertNull(Vector.matrixMultiplication(non3DSquare1, 3)); int[][] non3DSquare2 = { { 1, 1, 1 }, { 2, 2, 2 }, { 3, 3, 3 }, { 4, 4, 4 } }; assertNull(Vector.matrixMultiplication(non3DSquare2, 3)); int[][] empty = new int[0][0]; assertNull(Vector.matrixMultiplication(empty, 2)); } }