feat: Add all files

main
Andreas Wurst 2025-05-16 13:46:44 +02:00
commit caf3a356a2
5 changed files with 248 additions and 0 deletions

23
Time.java 100644
View File

@ -0,0 +1,23 @@
public class Time {
public static boolean timeCheck(String time) {
String regex = "^(?:[01]\\d|2[0-3]):[0-5]\\d$";
boolean formatRichtig = false;
if (time == null) {
formatRichtig = false;
} else if (time.length() != 5 || time.charAt(2) != ':') {
formatRichtig = false;
} else {
if (time.matches(regex)) {
formatRichtig = true;
}
}
return formatRichtig;
}
public static void main(String[] args) {
System.out.println(timeCheck(null));
}
}

31
Time1.java 100644
View File

@ -0,0 +1,31 @@
import java.util.Scanner;
public class Time1 {
public static boolean timeCheck(String[] args) {
String zeit = "";
int stunden = 0;
int minuten = 0;
boolean formatRichtig = true;
String[] zeitTeile = new String[2];
Scanner in = new Scanner(System.in);
System.out.println("Eingabe Zeit");
zeit = in.next();
if (zeit.length() != 5 || zeit.charAt(3) != ':') {
formatRichtig = false;
}
else {
zeitTeile = zeit.split(":");
stunden = Integer.parseInt(zeitTeile[0]);
minuten = Integer.parseInt(zeitTeile[1]);
if (stunden < 0 && stunden >= 24) {
formatRichtig = false;
}
else if (minuten < 0 && minuten >= 60) {
formatRichtig = false;
}
}
in.close();
return formatRichtig;
}
}

34
TimeTest.java 100644
View File

@ -0,0 +1,34 @@
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class TimeTest {
@Test
public void testValidTimes() {
assertTrue(Time.timeCheck("00:00"));
assertTrue(Time.timeCheck("09:15"));
assertTrue(Time.timeCheck("12:30"));
assertTrue(Time.timeCheck("23:59"));
assertTrue(Time.timeCheck("19:00"));
}
@Test
public void testInvalidTimes() {
assertFalse(Time.timeCheck("24:00")); // Stunde zu groß
assertFalse(Time.timeCheck("12:60")); // Minute zu groß
assertFalse(Time.timeCheck("25:00")); // Stunde ungültig
assertFalse(Time.timeCheck("2:30")); // kein führendes 0
assertFalse(Time.timeCheck("09:5")); // unvollständige Minuten
assertFalse(Time.timeCheck("09-15")); // falsches Trennzeichen
}
@Test
public void testCompletelyInvalidStrings() {
assertFalse(Time.timeCheck("Hello World")); // Klar kein Zeitformat
assertFalse(Time.timeCheck("abc123")); // Zufallsstring
assertFalse(Time.timeCheck("time: 12:30")); // Präfix vor der Zeit
assertFalse(Time.timeCheck("")); // Leerer String
assertFalse(Time.timeCheck(null)); // Nullprüfung
}
}

85
Vector.java 100644
View File

@ -0,0 +1,85 @@
public class Vector {
public static void scalarMultiplication(int[] vector, int scalar) {
for (int position = 0; position < vector.length; position++) {
vector[position] *= scalar;
}
}
public static void vectorProduct(int[] vector1, int[] vector2) {
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] + ", "
+ kreuzVektor3D[2] + "]");
}
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);
}
else {
System.out.println("Wegen unterschiedlichen Dimensionen ist das Kreuzprodukt nicht erlaubt");
}
}
public static double vectorLength(int[] vector) {
double qSumme = 0.0;
double betrag = 0.0;
for (int i = 0; i < vector.length; i++) {
qSumme = qSumme + (vector[i] * vector[i]);
}
betrag = Math.sqrt(qSumme);
return betrag;
}
public static int[][] matrixMultiplication(int[][] matrix, int scalar) {
int[][] ausgabe = null;
// boolean matrixFlag = false;
// if (matrix.length ==3 && matrix[0].length == 3 && matrix[1].length == 3 &&
// matrix[2].length == 3){
// matrixFlag =true;
// }
if (matrix.length == 3 && matrix[0].length == 3 && matrix[1].length == 3 && matrix[2].length == 3) {
ausgabe = new int[3][3];
for (int außenPos = 0; außenPos < matrix.length; außenPos++) {
for (int innenPos = 0; innenPos < matrix[außenPos].length; innenPos++) {
ausgabe[außenPos][innenPos] = matrix[außenPos][innenPos] * scalar;
}
}
}
return ausgabe;
}
public static void main(String[] args) {
int[] vector = { 2, 4, 7 };
int scalar = 3;
scalarMultiplication(vector, scalar);
System.out.println(vector[0] + " " + vector[1] + " " + vector[2]);
int[] vector1 = { 2, 5, 1 };
int[] vector2 = { 4, 7, 2 };
vectorProduct(vector1, vector2);
int[] vector3 = { 2, 5 };
int[] vector4 = { 4, 7 };
vectorProduct(vector3, vector4);
}
}

75
VectorTest.java 100644
View File

@ -0,0 +1,75 @@
import org.junit.jupiter.api.Test;
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};
Vector.scalarMultiplication(vector1, -1);
assertArrayEquals(new int[]{-7, -8, -15}, vector1);
}
@Test
void testVectorProduct2D() {
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 testVectorProduct3D() {
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
// z = 1*5 - 2*4 = 5 - 8 = -3
System.out.print("Erwartete Ausgabe: [-3, 6, -3]\nTatsächliche Ausgabe: ");
Vector.vectorProduct(vector1, vector2);
}
@Test
void testVectorLength() {
int[] vector = {3, 4};
double length = Vector.vectorLength(vector);
assertEquals(5.0, length, 0.001);
int[] vector3D = {1, 2, 2};
assertEquals(3.0, Vector.vectorLength(vector3D), 0.001);
}
@Test
void testMatrixMultiplicationValidMatrix() {
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int scalar = 2;
int[][] expected = {
{2, 4, 6},
{8, 10, 12},
{14, 16, 18}
};
assertArrayEquals(expected, Vector.matrixMultiplication(matrix, scalar));
}
@Test
void testMatrixMultiplicationInvalidMatrix() {
int[][] invalidMatrix = {
{1, 2},
{3, 4}
};
assertNull(Vector.matrixMultiplication(invalidMatrix, 3));
}
}