Seite 1 von 1

Task 4 - Probleme mit den Tests

Verfasst: 22. Mai 2015 16:41
von justin_raeder
Ich habe mitlerweile alles implementiert, aber die Hashmap in der Testsuite haut mir alles durcheinander. testInterpretFunctionDefinitions() funktiniert noch einwandfrei, aber sobald diese Methode in einer anderen Methode aufgerufen werden soll, schlagen alle darauffolgenden Test fehl. Einzeln funktionieren alle (!) Tests, aber nicht alle zusammen.

Beim Debuggen ist mir aufgefallen, dass beim ersten Test noch alle Elemente einzeln in die Hashmap geschrieben werden, bei den anderen Tests nicht mehr, weil die Elemente schon in der Hashmap sind. Das dürfte aber gar nicht sein, weil die Tests doch fordern, die Hashmap neu zu erstellen. Hat jemand eine Idee woran das liegen könnte?

Re: Task 4 - Probleme mit den Tests

Verfasst: 23. Mai 2015 13:59
von Nicholas Wolf
Hallo,

ich hab gerade nochmal die Task4klasse betrachtet, ich finde keine Stelle in der in die HashMap geschrieben wird, testInterpredFunctionDefinitions prüft nur was drinnen ist (aus dem Aufruf ist das ja ersichtlich was drinn seien müsste) und testInlineFunctions prüft nur ob alles im Kontext geht. Hmm
Komisch das alles einzeln geht. Und inlineFunction arbeitet auch wirrklich korrekt ?
Sorry aber das klingt nach einem komplexen Problem

Re: Task 4 - Probleme mit den Tests

Verfasst: 24. Mai 2015 20:38
von dlorych
Ich habe ein ähnliches Problem:
Der Test zu interpretFunctionDefintions funktioniert ohne Probleme, im Test zu inlineFunctions laufe ich aber dann innerhalb von interpretFunctionDefintions in eine Endlosschleife, obwohl in beiden Fällen mit exakt der selben MathList aufgerufen wird.

Re: Task 4 - Probleme mit den Tests

Verfasst: 24. Mai 2015 21:13
von dlorych
Ich habe inzwischen das Problem gelöst, aber nur indem ich functions vor jedem einzelnen Test von TestTask4 initialisiere, anstatt wie vorgesehen einmalig beim Klassenaufruf von TestTask4. Aber eigentlich dürfte functions während den Tests nie verändert werden?
Beim Test von InterpretFunctionDefinitions hat functions noch den Wert "{square=x|x#*x, doubledif=@parameter1@|@parameter2@|@parameter1@*2-2*@parameter2@}".
später im inlineTest hat functions dann den Wert "square|doubledif".

Re: Task 4 - Probleme mit den Tests

Verfasst: 25. Mai 2015 00:06
von AlexIschuk
bei mir liefert System.out.println(functions); in runInlineFunctionsTest(...): "square|x|:|x#*x|doubledif|@parameter1@|@parameter2@|:|@parameter1@*2-2*@parameter2@".

{square=x|x#*x, doubledif=@parameter1@|@parameter2@|@parameter1@*2-2*@parameter2@} sieht eher wie die Ausgabe von HashMap fmap aus. Die MathList functions aendert sich, so wie ich das auf den ersten Blick sehe, nicht.

Re: Task 4 - Probleme mit den Tests

Verfasst: 25. Mai 2015 00:26
von felicis
dlorych hat geschrieben:Ich habe inzwischen das Problem gelöst, aber nur indem ich functions vor jedem einzelnen Test von TestTask4 initialisiere, anstatt wie vorgesehen einmalig beim Klassenaufruf von TestTask4.
Achtung hier: die Tests werden aber nicht abgegeben, also darf deine Lösung von keinen Änderungen in den Tests abhängen!!

felicis

Re: Task 4 - Probleme mit den Tests

Verfasst: 25. Mai 2015 10:05
von dlorych
@felicis
Ich weiß, deswegen probier ich heute nochmal den Fehler zu finden, aber mit der richtigen Eingabedaten funktioniert meine Funktion.

@AlexIschuk
Ja stimmmt, hab den falschen Konsolenwert kopiert. Aber groß was ändern tut das nicht^^
beim interpretfunctionsTest hat functions den Wert square|x|:|x#*x|doubledif|@parameter1@|@parameter2@|:|@parameter1@*2-2*@parameter2@
später dann aber im inlineFunctionsTest square|doubledif

Re: Task 4 - Probleme mit den Tests

Verfasst: 25. Mai 2015 11:04
von AlexIschuk
Vielleicht aenderst du ja irgendwo in deinem Code die functions? Die MathList functions sollte ja, wenn ich es richtig verstehe, unveraendert bleiben.

Re: Task 4 - Probleme mit den Tests

Verfasst: 25. Mai 2015 16:46
von dlorych
in der MathList.java definitiv nicht und laut Eclipse Debugger gibt es im gesamten Projekt nur ein einziges Mal Write Access auf functions, und zwar in SetUpBeforeClass() im Test.

Re: Task 4 - Probleme mit den Tests

Verfasst: 25. Mai 2015 19:12
von dlorych
ich hab den Fehler gefunden

Re: Task 4 - Probleme mit den Tests

Verfasst: 25. Mai 2015 20:51
von justin_raeder
Ja, ich habe meinen Fehler gefunden. Ich verändere tatsächlich "Mathlist functions" aus der Testsuite, sodass sie beim ersten Aufruf einwandfrei funktiniert, beim 2. Aufruf aber nur noch einen Bruchteil enthält und dadurch ein NullPointException entsteht. Dann muss ich die Methode wohl nochmal umschreiben :)

Re: Task 4 - Probleme mit den Tests

Verfasst: 25. Mai 2015 20:56
von Lysoland
justin_raeder hat geschrieben:Ja, ich habe meinen Fehler gefunden. Ich verändere tatsächlich "Mathlist functions" aus der Testsuite, sodass sie beim ersten Aufruf einwandfrei funktiniert, beim 2. Aufruf aber nur noch einen Bruchteil enthält und dadurch ein NullPointException entsteht. Dann muss ich die Methode wohl nochmal umschreiben :)
war bei mir das gleiche Problem danke