{
"llm" : {
"feedback" : "# Exercise: textanalysis\n\n### Correctness\n\n\n### Suggestion\n\n\n### Code Style\n- In `topWord()` kannst du statt eigener Variablen wie `currentWord`/`currentCount` direkt mit `entry.getKey()`/`entry.getValue()` arbeiten; das macht die Schleife etwas kompakter.\n- Die zusätzlichen Leerzeilen sind insgesamt ok, aber achte auf ein konsistentes Format (z.B. keine „doppelte“ Leerzeile zwischen Methoden, wenn ihr dafür einen Stil im Kurs habt).\n\n\n# Exercise: lotto\n\n### Correctness\n- `buyTicket`: Du prüfst nicht explizit, dass **genau 6 Zahlen übergeben** wurden (du prüfst nur, dass 6 verschiedene drin sind). Ein Array mit z. B. 7 Zahlen, von denen 6 verschieden sind (und eine doppelt), wird bei dir fälschlicherweise akzeptiert.\n- `Ticket.getCorrectNumbers`: Die Methode liefert nicht “die korrekten Zahlen auf dem Los”, sondern erzeugt mit `toArray(numbers)` ein Array, das nichts mit der Schnittmenge aus Ticketzahlen und Gewinnzahlen garantiert. Damit stimmt die Ausgabe der “Richtigen” nicht.\n\n### Suggestion\n- Für `buyTicket`: Trenne die Validierung in zwei Checks: (1) Länge des Arrays muss 6 sein, (2) alle Werte im gültigen Bereich und keine Duplikate. Überlege dir konkrete Gegenbeispiele wie `[1,2,3,4,5,6,6]` und was deine aktuelle Prüfung damit macht.\n- Für `getCorrectNumbers`: Du brauchst die **Überschneidung** zwischen den Ticket-Zahlen und den Gewinnzahlen. Denk an eine Collection-Operation (z. B. “behalte nur Elemente, die auch in der anderen Menge vorkommen”) oder iteriere über die Ticketzahlen und sammle nur die, die in den Gewinnzahlen enthalten sind.\n\n### Code Style\n- In `Ticket.getCorrectNumbers` ist `lottery.getWinningNumbers().toArray(numbers)` verwirrend und fehleranfällig, weil du ein bestehendes Array als “Zielarray” übergibst; nutze lieber eine klar getrennte Datenstruktur für das Ergebnis.\n- In `getPrize` rufst du in der Schleife wiederholt `lottery.getWinningNumbers()` auf (und bekommst jedes Mal eine Kopie). Hol dir die Gewinnzahlen einmal in eine lokale Variable und arbeite damit weiter.\n",
"status" : "SUCCESS"
},
"unitTest" : {
"tests" : [ {
"name" : "buyTicketIds()",
"status" : "PASSED",
"message" : null
}, {
"name" : "buyTicketsIllegalNumbers()",
"status" : "PASSED",
"message" : null
}, {
"name" : "draw()",
"status" : "PASSED",
"message" : null
}, {
"name" : "drawNoDuplicates()",
"status" : "PASSED",
"message" : null
}, {
"name" : "drawRandom()",
"status" : "PASSED",
"message" : null
}, {
"name" : "drawAlreadyDrawn()",
"status" : "PASSED",
"message" : null
}, {
"name" : "getWinningNumbersNotDrawnYet()",
"status" : "PASSED",
"message" : null
}, {
"name" : "buyTicketAlreadyDrawn()",
"status" : "PASSED",
"message" : null
} ]
}
}