From fbecdf9faba65b4a869408f731b891ef7e67cac8 Mon Sep 17 00:00:00 2001 From: Carumar <1720808@stud.hs-mannheim.de> Date: Tue, 20 May 2025 11:11:55 +0200 Subject: [PATCH] verbesserungen und Fehlerbehebung --- Time.java | 5 +- Vector.java | 10 ++- VectorTest.java | 191 +++++++++++++++++++++++------------------------- 3 files changed, 100 insertions(+), 106 deletions(-) diff --git a/Time.java b/Time.java index b67218e..8b6053a 100644 --- a/Time.java +++ b/Time.java @@ -2,7 +2,7 @@ public class Time { public static boolean timeCheck(String time) { - String regex = "^( ?: [01] \\d | 2[0-3] ) : [0-5]\\d$"; + String regex = "^(?:[01]\\d|2[0-3]):[0-5]\\d$"; boolean formatRichtig = false; if (time == null) { @@ -18,7 +18,8 @@ public class Time { } public static void main(String[] args) { - System.out.println("23:56 \n abc"); + System.out.println(timeCheck("23:56")); + System.out.println(timeCheck("00:00")); System.out.println(timeCheck(null)); } } diff --git a/Vector.java b/Vector.java index c63156c..a54b330 100644 --- a/Vector.java +++ b/Vector.java @@ -9,13 +9,15 @@ public class Vector { } public static void vectorProduct(int[] vector1, int[] vector2) { - - if (vector1.length == vector2.length && vector2.length == 3) { + if (vector1 == null || vector2 == null){ + System.out.println("Wegen unterschiedlichen Dimensionen ist das Kreuzprodukt nicht erlaubt"); + } + else if (vector1.length == vector2.length && vector2.length == 3) { int[] kreuzVektor3D = new int[3]; kreuzVektor3D[0] = (vector1[1] * vector2[2]) - (vector1[2] * vector2[1]); kreuzVektor3D[1] = (vector1[2] * vector2[0]) - (vector1[0] * vector2[2]); kreuzVektor3D[2] = (vector1[0] * vector2[1]) - (vector1[1] * vector2[0]); - System.out.println("Ergebnis des Kreuzproduktes: [" + kreuzVektor3D[0] + ", " + kreuzVektor3D[1] + ", " + System.out.println("Ergebnis des 3DKreuzproduktes: [" + kreuzVektor3D[0] + ", " + kreuzVektor3D[1] + ", " + kreuzVektor3D[2] + "]"); } @@ -23,7 +25,7 @@ public class Vector { else if (vector1.length == vector2.length && vector2.length == 2) { int kreuzVektor2D = 0; kreuzVektor2D = (vector1[0] * vector2[1]) - (vector1[1] * vector2[0]); - System.out.println("Ergebnis des Kreuzproduktes: " + kreuzVektor2D); + System.out.println("Ergebnis des 2DKreuzproduktes: " + kreuzVektor2D); } diff --git a/VectorTest.java b/VectorTest.java index 90f8a3b..f4992a9 100644 --- a/VectorTest.java +++ b/VectorTest.java @@ -5,33 +5,48 @@ import static org.junit.jupiter.api.Assertions.*; public class VectorTest { - @Test - void testScalarMultiplication() { - int[] vector = {1, 2, 3}; - int scalar = 2; - Vector.scalarMultiplication(vector, scalar); - assertArrayEquals(new int[]{2, 4, 6}, vector); - int[] vector1 = {7, 8, 15}; + @Test + void testScalarMultiplicationVariants() { + int[] v1 = { 1, 2, 3 }; + Vector.scalarMultiplication(v1, 2); + assertArrayEquals(new int[] { 2, 4, 6 }, v1); - Vector.scalarMultiplication(vector1, -1); - assertArrayEquals(new int[]{-7, -8, -15}, vector1); + int[] v2 = { 7, 8, 15 }; + Vector.scalarMultiplication(v2, -1); + assertArrayEquals(new int[] { -7, -8, -15 }, v2); + + int[] v3 = { 0, 0, 0 }; + Vector.scalarMultiplication(v3, 5); + assertArrayEquals(new int[] { 0, 0, 0 }, v3); } @Test void testVectorProduct2D() { - int[] vector1 = {3, 4}; - int[] vector2 = {5, 6}; - // Für 2D Kreuzprodukt wird der Skalarwert (Z-Komponente des 3D-Kreuzprodukts) verwendet + int[] vector1 = { 3, 4 }; + int[] vector2 = { 5, 6 }; + // Für 2D Kreuzprodukt wird der Skalarwert (Z-Komponente des 3D-Kreuzprodukts) + // verwendet // 3*6 - 4*5 = 18 - 20 = -2 // Erwartete Ausgabe: -2 System.out.print("Erwartete Ausgabe: -2\nTatsächliche Ausgabe: "); Vector.vectorProduct(vector1, vector2); } + @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 void testVectorProduct3D() { - int[] vector1 = {1, 2, 3}; - int[] vector2 = {4, 5, 6}; + int[] vector1 = { 1, 2, 3 }; + int[] vector2 = { 4, 5, 6 }; // Kreuzprodukt: // x = 2*6 - 3*5 = 12 - 15 = -3 // y = 3*4 - 1*6 = 12 - 6 = 6 @@ -40,125 +55,101 @@ public class VectorTest { Vector.vectorProduct(vector1, vector2); } + @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 + void testVectorProductInvalidDimensions() { + System.out.println("Erwartet: illegale Dimension"); + Vector.vectorProduct(new int[] { 1, 0 }, new int[] { 0, 1, 0 }); + } + @Test void testVectorLength() { - int[] vector = {3, 4}; + int[] vector = { 3, 4 }; double length = Vector.vectorLength(vector); assertEquals(5.0, length, 0.001); - int[] vector3D = {1, 2, 2}; + int[] vector3D = { 1, 2, 2 }; assertEquals(3.0, Vector.vectorLength(vector3D), 0.001); } + @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 void testMatrixMultiplicationValidMatrix() { int[][] matrix = { - {1, 2, 3}, - {4, 5, 6}, - {7, 8, 9} + { 1, 2, 3 }, + { 4, 5, 6 }, + { 7, 8, 9 } }; int scalar = 2; int[][] expected = { - {2, 4, 6}, - {8, 10, 12}, - {14, 16, 18} + { 2, 4, 6 }, + { 8, 10, 12 }, + { 14, 16, 18 } }; assertArrayEquals(expected, Vector.matrixMultiplication(matrix, scalar)); } + @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 void testMatrixMultiplicationInvalidMatrix() { int[][] invalidMatrix = { - {1, 2}, - {3, 4} + { 1, 2 }, + { 3, 4 } }; assertNull(Vector.matrixMultiplication(invalidMatrix, 3)); } - @Test - void testScalarMultiplicationVariants() { - int[] v1 = {1, 2, 3}; - Vector.scalarMultiplication(v1, 2); - assertArrayEquals(new int[]{2, 4, 6}, v1); - int[] v2 = {7, 8, 15}; - Vector.scalarMultiplication(v2, -1); - assertArrayEquals(new int[]{-7, -8, -15}, v2); - int[] v3 = {0, 0, 0}; - Vector.scalarMultiplication(v3, 5); - assertArrayEquals(new int[]{0, 0, 0}, v3); - } - - @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 - 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 - void testVectorProductInvalidDimensions() { - System.out.println("Erwartet: illegale Dimension" ); - Vector.vectorProduct(new int[]{1, 0}, new int[]{0, 1, 0}); - } - - @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 - 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 void testMatrixMultiplicationInvalidCases() { int[][] nonSquare = { - {1, 2}, - {3, 4} + { 1, 2 }, + { 3, 4 } }; assertNull(Vector.matrixMultiplication(nonSquare, 3));