{
"llm" : {
"feedback" : "# Exercise: parking\n\n### Correctness\n- `FlatRateCard.cost()` liefert immer 150 CHF, unabhängig davon, ob überhaupt geparkt wurde; damit wird beim Beispielablauf ein Abo auch dann voll verrechnet, wenn nur „ein paar Minuten“ (oder sogar 0 Minuten) genutzt wurden – prüfe, ob das so mit „fixen Monatskosten“ im Kontext der Umsatzberechnung hier wirklich gemeint ist, denn sonst passt der geforderte Gesamtumsatz (156.75 CHF) typischerweise nicht.\n- `GroupCard`: Laut Tabelle ist „mehr als 20“ nicht erlaubt, aber „0 Personen“ ist in deiner Prüfung erlaubt (`person < 0`); „0“ fällt bei dir in die Tarifgruppe „bis 5“ – kläre, ob 0 überhaupt eine gültige Gruppengrösse ist.\n\n### Suggestion\n- Überlege, wann eine `FlatRateCard` in diesem System tatsächlich „Monatskosten“ verursachen soll: bei jeder Umsatzberechnung? nur einmal pro Abrechnungsperiode? nur wenn sie im Monat überhaupt benutzt wurde? Orientiere dich dabei am erwarteten Ausgabe-Umsatz 156.75 CHF und rechne nach, welche Karten dort welchen Beitrag liefern müssten.\n- Passe die Validierung in `GroupCard` so an, dass sie genau die im Text erlaubten Personenzahlen abbildet (insbesondere die Untergrenze).\n\n### Code Style\n- In `FlatRateCard` ist `totalTime` aktuell für die Kostenberechnung ungenutzt; entweder konsequent nutzen oder weglassen, damit klar ist, wozu der State da ist.\n- In `FlatRateCard` gibt es doppelte Leerzeichen in `implements ParkingCard`; kleine Sache, aber für Lesbarkeit am besten vermeiden.\n- In `GroupCard` ist der Feldname `person` irreführend, da es eine Anzahl ist; ein Name wie `persons`/`personCount` wäre verständlicher.\n\n\n# Exercise: labyrinth\n\nLlm Evaluation ist für diese Aufgabe deaktiviert. Entferne die .llmignore Datei vom Package der Aufgabe.\n\n\n# Exercise: visualizer\n\n### Correctness\n- Du hast nur `Movie` an das `DataPoint`-Interface angebunden; `Country` und `Processor` implementieren `DataPoint` noch nicht, damit kannst du die zwei anderen Datensätze gemäss Aufgabe noch nicht visualisieren.\n- Beim Film-Datensatz soll auf der x-Achse das Budget verwendet werden; du gibst zwar `budget` zurück, aber gleichzeitig hast du eine Umrechnung in Millionen eingebaut, die du für die Achsen nicht nutzt (dadurch stimmt deine Achsen-Skalierung evtl. nicht mit der beabsichtigten Darstellung überein).\n- Die Aufgabe verlangt beim Prozessor-Datensatz eine logarithmische y-Achse; in deinem `Visualizer` ist dafür noch keine Log-Transformation umgesetzt (damit wird die Prozessor-Visualisierung später nicht wie gefordert aussehen).\n- Methodennamen im Interface/Implementierung: `getDesciption()` ist falsch geschrieben; das ist zwar konsistent zwischen `DataPoint` und `Visualizer`, aber entspricht sehr wahrscheinlich nicht der erwarteten Schnittstelle/Benennung (und kann zu Problemen führen, falls Tests oder anderes Team-Code `getDescription()` erwartet).\n\n### Suggestion\n- Mach dir für `Country` und `Processor` dieselbe Frage wie bei `Movie`: Welche Werte müssen für x/y, Gruppe, Titel und Detailtext geliefert werden, damit die Screenshots reproduzierbar sind? Implementiere dann das Interface auch dort.\n- Entscheide dich bewusst, in welcher Einheit du `getX()` beim Film liefern willst: Wenn du in der Detailansicht Millionen anzeigen willst, ist das ok – aber überlege, ob die Achsenwerte ebenfalls in dieser Einheit sein sollten, damit die Skala “lesbar” wird.\n- Für die Prozessoren: Überlege, wo du am sinnvollsten die Log-Skalierung einbaust: entweder indem `DataPoint.getY()` bereits einen transformierten Wert liefert, oder indem der `Visualizer` für bestimmte Datensätze/Modi die y-Werte transformiert.\n- Überprüfe die erwarteten Methodennamen der Schnittstelle (v.a. “Description”): wenn irgendwo vorgegebene Tests/Checks laufen, scheitern die oft an solchen Tippfehlern, auch wenn die Logik sonst stimmt.\n\n### Code Style\n- Benenne `getDesciption()` korrekt und konsistent (Tippfehler vermeiden); gleiches gilt für `getbudgetInMillions()` → Java-üblich wäre CamelCase (`getBudgetInMillions`).\n- In `Movie.getName()` fehlt ein Leerzeichen vor der Klammer (Lesbarkeit), und Strings wie `\"millionen\"`/`\"$\"` sind gemischtsprachig; einheitliche Beschriftungen helfen bei der UI.\n- `getbudgetInMillions()` liefert einen double ohne Formatierung; dadurch können in der Anzeige sehr viele Nachkommastellen entstehen.\n\n\n# Exercise: swissmap\n\nLlm Evaluation ist für diese Aufgabe deaktiviert. Entferne die .llmignore Datei vom Package der Aufgabe.\n",
"status" : "SUCCESS"
}
}