AutoFeedback API

Result 7699f79b-51ae-4af9-a308-e57ea14a4534

{
  "llm" : {
    "feedback" : "# Exercise: parking\n\n### Correctness\n- `FlatRateCard.cost()` gibt immer 150 CHF zurück, unabhängig davon, ob überhaupt geparkt wurde; damit wird in deinem Beispiel ein Gesamtumsatz von 156.75 CHF unmöglich (die anderen beiden Karten zusammen sind schon deutlich > 6.75 CHF).\n- `GroupCard`: Laut Tabelle ist „mehr als 20“ nicht erlaubt; bei dir ist `person == 0` erlaubt (weil du nur `< 0` abfängst). Falls „0 Personen“ nicht vorgesehen ist, verletzt das die Vorgabe „Anzahl Personen“ (mindestens 1).\n\n### Suggestion\n- Überlege dir, wie die Monatskosten bei einer `FlatRateCard` im Kontext von `calculateRevenueAndReset()` gezählt werden sollen: Soll jede Auswertung/Abrechnung immer 150 CHF beitragen, oder nur unter bestimmten Bedingungen (z.B. wenn die Karte in diesem Zeitraum genutzt wurde / oder wenn ein „Monat“ simuliert wird)? Vergleiche das mit der erwarteten Ausgabe 156.75 CHF und leite daraus ab, wann 150 CHF in die Summe einfliessen darf.\n- Prüfe bei `GroupCard` nochmals, welche Werte für „Anzahl Personen“ sinnvoll sind (z.B. ab 1) und passe die Validierung entsprechend der Aufgabenbeschreibung an.\n\n### Code Style\n- In `FlatRateCard` ist `totalTime` aktuell überflüssig, weil `cost()` den Wert nie verwendet; entweder brauchst du den Zustand wirklich (und nutzt ihn) oder du kannst ihn weglassen.\n- In `GroupCard` ist der Feldname `person` missverständlich (es sind mehrere Personen gemeint); ein pluraler/sprechender Name (z.B. „persons“/„numPersons“) würde die Lesbarkeit verbessern.\n- Du nutzt in `GroupCard` kein `@Override` bei den Interface-Methoden; das ist nicht Pflicht, hilft aber, Tippfehler/Signaturprobleme früh zu erkennen.\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- Im `DataPoint`-Interface und in den Implementierungen heisst die Methode `getDesciption()` (Tippfehler). Falls in den Tests/der Aufgabenstellung ein anderer Name erwartet wird (naheliegend: `getDescription()`), wird das nicht als „gleiche“ Schnittstelle erkannt.\n- `VisualizerApp`: Die `main`-Methode ist `void main()` statt der üblichen Java-Entry-Point-Signatur. Wenn das Projekt so gestartet werden soll, wie es typischerweise erwartet wird, könnte das Programm gar nicht über „Run“ starten.\n- Processor-Datensatz: Du verwendest für die logarithmische Achse `Math.log10(cores * clockRateKhz)` direkt als `getY()`. Damit ist `minY/maxY` bereits logarithmiert, aber es ist nicht mehr „Taktfrequenz * Cores“ als effektive Geschwindigkeit, sondern deren Log-Wert. Je nach Erwartung der Aufgabe (logarithmische y-Achse vs. log-transformierte Daten) kann das als falsch gewertet werden.\n- Movie-Datensatz: Du gibst `budget` als „in Millionen“ zurück. In der Aufgabe steht für die x-Achse „Filmbudget“, ohne Umrechnung zu erwähnen; wenn die Visualisierung/Skala exakt mit dem Rohwert gerechnet werden soll, passt die Umrechnung evtl. nicht zur erwarteten Darstellung.\n\n### Suggestion\n- Schau dir alle Stellen an, wo der Visualizer Hover-Text nutzt, und überlege, wie die Methode im Interface heissen sollte, damit sie semantisch korrekt ist und mit dem restlichen Code/Tests zusammenpasst; vergleiche dabei besonders die Schreibweise.\n- Prüfe, wie eure Übungsumgebung Programme startet: Wird wirklich `void main()` aufgerufen, oder braucht es die standardisierte `public static void main(String[] args)` Signatur?\n- Überlege beim Prozessor-Datensatz: Willst du, dass `getY()` die „echte“ effektive Geschwindigkeit liefert und die Darstellung die Achse logarithmisch macht, oder willst du die Werte selbst logarithmieren? Die Aufgabenformulierung deutet eher auf „Achse logarithmisch“ hin als auf „Daten vorher loggen“.\n- Wenn du beim Movie-Budget eine Einheit umrechnest, stelle sicher, dass das auch im Hover-Text und in der Interpretation der x-Achse konsistent ist (und ob die Aufgabe eine bestimmte Einheit implizit erwartet).\n\n### Code Style\n- Tippfehler in Methodennamen (`getDesciption`, `getbudgetInMillions`, `getClockRateKhzFormated`) erschweren Lesbarkeit und Wartung; konsistente, korrekt geschriebene Namen helfen hier stark.\n- In `Movie.getName()` fehlt ein Leerzeichen vor der Klammer (`title + \"(\" + year + \")\"`), was im UI unruhig wirkt.\n- Strings im Hover-Text sind teilweise uneinheitlich/fehlerhaft („millionen“, „GDP/capitas“); sauberere Beschriftungen machen die Visualisierung verständlicher.\n- In `Processor` sind Getter wie `getManufacturer()/getModel()/getYear()/getMonth()` vorhanden, werden aber (ausser indirekt) kaum genutzt; überlege, ob du sie wirklich brauchst oder ob du dich auf das Interface konzentrierst.\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"
  }
}