{
"llm" : {
"feedback" : "# Exercise: wordmutations\n\n### Correctness\n- Es fehlt komplett der eigentliche Programmcode (`WordMutants`) – damit sind weder Startpopulation, Mutationsschleife, noch das Begrenzen auf 40 Wörter umgesetzt.\n- Die Anforderung, in **10 Generationen** jeweils **20 zufällige Fortpflanzungen** durchzuführen und die neuen Wörter zur Population hinzuzufügen, ist nicht umgesetzt.\n- Die Anforderung, die Population **nach jeder Generation zufällig auf 40 Wörter zu begrenzen** (zufälliges Entfernen), ist nicht umgesetzt.\n- Der zusätzliche Schritt aus Teil (b), bei dem nur Wörter überleben, die Kriterien erfüllen, ist nicht umgesetzt.\n\n### Suggestion\n- Erstelle zuerst ein minimales Grundgerüst: eine `ArrayList<String>` mit der Startpopulation und eine Schleife, die über die Generationen zählt.\n- Überlege dir dann pro Generation eine innere Schleife, die genau 20-mal zwei zufällige Wörter auswählt und daraus ein neues Wort erzeugt (mit einem zufälligen Trennpunkt).\n- Plane danach einen Schritt direkt **am Ende jeder Generation**, der die Liste wieder auf 40 Elemente reduziert, indem du zufällig Einträge entfernst, bis die Zielgröße erreicht ist.\n- Für den “Überlebens”-Schritt: definiere eine kleine Prüffunktion (z. B. Länge in einem Bereich, Vokal/Konsonant-Verhältnis, oder Begrenzung von aufeinanderfolgenden Vokalen/Konsonanten) und filtere die Population anhand dieser Regel, bevor du sie ggf. wieder auf 40 begrenzt.\n\n### Code Style\n- Da kein Code vorhanden ist, kann ich keine konkreten Hinweise zu Struktur, Lesbarkeit oder ungenutzten Teilen geben.\n\n\n# Exercise: eratosthenes\n\n### Correctness\n- Deine Methode gibt immer eine leere Liste zurück und liefert damit nicht die geforderte aufsteigend sortierte Liste aller Primzahlen kleiner als `n`.\n- Das Sieb des Eratosthenes wird aktuell gar nicht implementiert (es werden keine Kandidaten erzeugt und keine Vielfachen gestrichen).\n\n### Suggestion\n- Starte damit, alle Zahlen von 2 bis (exklusiv) `n` als “mögliche Primzahlen” zu markieren/ablegen, damit du danach systematisch streichen kannst.\n- Iteriere dann über die Zahlen ab 2 und streiche jeweils die Vielfachen der aktuell gefundenen Primzahl; beginne dabei erst beim Quadrat dieser Zahl.\n- Beende das Streichen, sobald das Quadrat der aktuellen Zahl nicht mehr kleiner als `n` ist; sammle danach alle übrig gebliebenen Zahlen in eine Ergebnisliste in aufsteigender Reihenfolge.\n\n### Code Style\n- Der `TODO`-Kommentar ist noch unverändert; wenn du anfängst zu implementieren, ersetze ihn durch sinnvolle, kurze Kommentare nur dort, wo der Code nicht selbsterklärend ist.\n\n\n# Exercise: pair\n\n### Correctness\n\n\n### Suggestion\n\n\n### Code Style\n- In `Main` fehlt bei der `main`-Methode der Modifier `public`; als Entry-Point erwartet Java normalerweise `public static void main(String[] args)`.\n- `Main` ist für die Aufgabenstellung nicht nötig (gefordert ist nur die Funktion `hasSum` in `PairFinder`) und könnte in einer Abgabe ggf. als zusätzlicher/unklarer Bestandteil gelten.\n- Du importierst `Files` und `Path` in `PairFinder`, nutzt sie aber nur in `openFile`; das ist okay, aber achte allgemein darauf, Imports nur dort zu haben, wo sie gebraucht werden (hier passt es).\n- Kleiner Lesbarkeits-Punkt: `var` und explizite Typen sind gemischt (`var seenNumbers` vs. `BufferedReader reader`); entscheide dich möglichst konsistent für einen Stil.\n",
"status" : "SUCCESS"
},
"unitTest" : {
"tests" : [ {
"name" : "eratosthenesShouldOnlyReturnPrimesLessThenN()",
"status" : "FAILED",
"message" : null
}, {
"name" : "eratosthenesShouldReturnPrimesOrderedAscending()",
"status" : "PASSED",
"message" : null
}, {
"name" : "eratosthenes100()",
"status" : "FAILED",
"message" : "expected: <[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]> but was: <[]>"
}, {
"name" : "eratosthenes1_000()",
"status" : "FAILED",
"message" : "expected: <168> but was: <0>"
}, {
"name" : "eratosthenes10_000()",
"status" : "FAILED",
"message" : "expected: <1229> but was: <0>"
}, {
"name" : "eratosthenes100_000()",
"status" : "FAILED",
"message" : "expected: <9592> but was: <0>"
}, {
"name" : "eratosthenes1_000_000()",
"status" : "FAILED",
"message" : "expected: <78498> but was: <0>"
}, {
"name" : "hasSumSmallFile()",
"status" : "PASSED",
"message" : null
}, {
"name" : "hasSumIntermediateFile()",
"status" : "PASSED",
"message" : null
}, {
"name" : "hasSumLargeFile()",
"status" : "PASSED",
"message" : null
} ]
}
}