AutoFeedback API

Result 60592efb-add9-4cb8-b788-c1dbff4ece26

{
  "llm" : {
    "feedback" : "# Exercise: parking\n\n### Correctness\n- `FlatRateCard` liefert mit `cost()` immer 150 CHF, unabhängig davon, ob überhaupt geparkt wurde; dadurch wird der Umsatz auch dann um 150 erhöht, wenn die Karte nie benutzt wurde (im Beispiel wird zwar geparkt, aber die Anforderung „Monatskosten“ ist damit nicht sauber an die Nutzung/Abrechnung gekoppelt).\n- `GroupCard`: Laut Tabelle ist „mehr als 20“ nicht erlaubt; du erlaubst aber `person == 0` (und sogar negative Werte bis auf `< 0` verhinderst du zwar, aber `0` bleibt erlaubt), obwohl „Anzahl Personen“ sinnvollerweise bei 1 starten müsste.\n\n### Suggestion\n- Überlege bei der `FlatRateCard`, wann die 150 CHF tatsächlich in den Umsatz einfließen sollen: bei jeder Abrechnung immer, oder nur, wenn die Karte im betreffenden Zeitraum überhaupt aktiv/benutzt war? Passe die interne Logik so an, dass es zur Idee „fixe Monatskosten“ passt, ohne dass unbenutzte Karten automatisch Umsatz erzeugen.\n- Prüfe bei `GroupCard` die Randwerte der Personenanzahl: Welche kleinste Anzahl ist sinnvoll/erlaubt? Richte die Validierung exakt danach aus, was „bis 5 / 6–10 / 11–20“ impliziert.\n\n### Code Style\n- In `FlatRateCard` ist `totalTime` aktuell faktisch ungenutzt (hat keinen Einfluss auf `cost()`); entweder entferne den Zustand oder nutze ihn bewusst, damit die Klasse klarer ist.\n- Einheitlichkeit: In `GroupCard` und `IndividualCard` fehlen `@Override`-Annotationen bei den Interface-Methoden (funktioniert zwar, aber hilft beim Lesen und beim Compiler-Check).\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- `Processor` implementiert das `DataPoint`-Interface nicht; damit kannst du den Prozessor-Datensatz nicht wie gefordert über `VisualizerApp` visualisieren.\n- In `Movie` verwendest du für `getX()` das Budget in *Dollar* (raw `budget`), obwohl du selbst schon eine Umrechnung in Millionen vorbereitet hast; das entspricht sehr wahrscheinlich nicht der erwarteten Achsenskalierung aus der Aufgabenbeschreibung/Screenshots (x-Achse: Filmbudget, üblicherweise in einer lesbaren Einheit).\n- Die Aufgabenstellung erwähnt für den Prozessor-Datensatz explizit eine logarithmische y-Achse; in deinem `Visualizer` gibt es dafür keine Anpassung (nur lineare Skalierung über `guiY`). Damit wird die Prozessor-Visualisierung (selbst wenn `Processor` `DataPoint` wäre) nicht wie verlangt darstellbar.\n\n### Suggestion\n- Überlege dir für `Processor`, welche 5 Dinge dein `DataPoint`-Interface verlangt (x, y, group, name/title, description) und mappe sie auf die Prozessor-Felder: x soll aus Jahr+Monat zusammengesetzt werden, y aus Taktfrequenz * Cores, group z.B. Hersteller, Name z.B. Modellbezeichnung.\n- Schau dir bei `Movie.getX()` an, welche Größenordnung auf der x-Achse sinnvoll ist: Wenn du in der Hover-Info bereits “Budget … million” anzeigen willst, ist es oft konsistent, auch die x-Achse in Millionen zu benutzen (statt in absoluten Dollar).\n- Für die logarithmische y-Achse (Prozessoren) brauchst du eine Stelle, an der die y-Werte transformiert werden, bevor sie ins Koordinatensystem gehen (und min/max dazu passen). Suche im `Visualizer` nach der einzigen Stelle, wo y in Pixel umgerechnet wird (`guiY`) bzw. min/max bestimmt wird (`findMinMax`), und überlege, wie du dort eine optionale Log-Transformation unterbringen könntest.\n\n3. Code Style:\n- Tippfehler im Methodennamen: `getDesciption()` (statt `getDescription()`). Das ist nicht falsch, solange es überall konsistent ist, aber sehr fehleranfällig und unüblich.\n- Methodennamen/Formatierung sind uneinheitlich: `getbudgetInMillions()` sollte nach Java-Konvention `getBudgetInMillions()` heißen.\n- In den Beschreibungstexten sind Einheiten/Schreibweise uneinheitlich bzw. teilweise falsch geschrieben (“millionen”, “GDP/capitas”, `km^2` statt `km²`). Das erschwert die Lesbarkeit in der Hover-Ansicht.\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"
  }
}