Eigene JUnit Testfälle für Bergsteigeralgorithmus (Blatt 12)

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Eigene JUnit Testfälle für Bergsteigeralgorithmus (Blatt 12)
Ich habe ein paar eigene Testfälle für Blatt 12 geschrieben, die nicht nur das Endergebnis testen, sondern auch die einzelnen Teilaufgaben.

Bei mir und jemand Anderem laufen alle Testfaelle durch, weshalb ich davon ausgehe, dass die Testfaelle richtig sein sollten.

Nicht alle Tests wurden durchdacht. Manche sind auch einfach zufällig erstellt worden und sind repetitiv.

Den Code der folgenden Datei einfach vor die letzte geschweifte Klammer zu in die bereits vom Lehrstuhl gegebenen JUnit Tests einfügen.

EDIT: Neue Version in den Antworten.

Attachment:
customTests.scala: https://fsi.cs.fau.de/unb-attachments/post_156964/customTests.scala

1 Like

Danke dafür!


Neue Testversion: Ab jetzt wird bei swapNeighbors die Reihenfolge ignoriert. Das hat der Test vorher nicht gemacht, da der Test vom Lehrstuhl das auch nicht macht, aber eigentlich sollte die Reihenfolge egal sein. Aber keine Garantie darauf.

Attachment:
customTests.scala: https://fsi.cs.fau.de/unb-attachments/post_156970/customTests.scala


Thanks.


Ich bin mir immer noch nicht ganz sicher zu den Testfaellen bei swapNeighbors.

Momentan ignorieren sie Duplikate und die Liste kann Nachbar von sich selbst sein.
Beispiel: swapNeighbors(List(9,9)) == List(9,9)
Aber evtl. soll da auch Nil rauskommen, je nachdem was sich der Aufgabensteller gedacht hat, ist aber nicht genauer spezifiziert.


Ja, denn bei dem Test “swapNeighbors(List(41, 212, 323, 9999, 0, -1, 33, 4444, 331, 22, 1, 33, 1, 1, 2, 33, 444)” erhalte ich nämlich einen AssertionError.
Duplikate sollten aus der Liste entfernt werden, denke ich. Ist ja auch im Beispiel so vorgegeben. Ich habe das dann einfach mit einem .distinct gelöst.


Im vorgegebenen Beispiel kann es keine Duplikate geben.

Das Problem ist wahrscheinlich, dass bei dir deiner Implementierung die Liste selbst kein eigener Nachbar sein kann.

Beispiel: swapNeigbors(List(1,1))== List(List(1,1)) bei mir, bei dir wahrscheinlich List()

Der Test macht ja beide Listen vorher .toSet, deshalb kann es nicht an Duplikaten liegen.