Praktikum7
läuft problemlos durch, genauso wie die testfälle für die beiden gegeben dateien die ich geschrieben habe.
Habe jetzt nur etwas ziemlich merkwürdiges gefunden.
Hab jedoch noch einen Fehler gefunden.
Hatte an einer Stelle String.isempty() was ja eigentlich nicht gehen sollte, wird jedoch net rot markiert, naja habs mal geändert und erneut hochgeladen.
Habe jetzt nur etwas ziemlich merkwürdiges gefunden.
Hab jedoch noch einen Fehler gefunden.
Hatte an einer Stelle String.isempty() was ja eigentlich nicht gehen sollte, wird jedoch net rot markiert, naja habs mal geändert und erneut hochgeladen.
Ich bekomme zwei IOException-Errors, obwohl ich nirgendswo eine werfe. Wenn die von den Methoden geworfen werden, die eine Datei bearbeiten, dann hat das wohl auch seinen Grund, oder?
einmal in TEST-TestEncoding:
das zweite in TEST-TestIllegalArguments:
Wie gesagt, ich werfe keine einzige IOException explizit, auch keine Erben..
einmal in TEST-TestEncoding:
Code: Alles auswählen
Testcase: testFaust took 0.003 sec
FAILED
You have thrown an IO Exception where it was not expected.
junit.framework.AssertionFailedError: You have thrown an IO Exception where it was not expected.
at TestEncoding.fileTest(TestEncoding.java:38)
at TestEncoding.testFaust(TestEncoding.java:48)
Code: Alles auswählen
Testsuite: TestIllegalArguments
Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.045 sec
Testcase: testIllegal took 0.015 sec
FAILED
Unexpected IOException.
junit.framework.AssertionFailedError: Unexpected IOException.
at TestIllegalArguments.testIllegal(TestIllegalArguments.java:16)
Hat jemand noch ne Idee wie man sein Programm testen kann?
Ich scheitere momentan hieran:
Könnt mir vielleicht jemand einen Tipp geben was man noch testen sollte?
Die message.huffman Dekomprimierung funktioniert bei mir und beliebige Dateien (unter anderem die mitgelieferte Faust.txt) werden problemlos komprimiert und dekomprimiert (md5 stimmen überein).
Wäre für jeden Tipp dankbar, da ich momentan absolut nicht mehr weiter weiß.
Ich scheitere momentan hieran:
Code: Alles auswählen
Testsuite: TestDecoding
Tests run: 2, Failures: 1, Errors: 0, Time elapsed: 0.134 sec
Testcase: testSimple took 0.016 sec
Testcase: testMax took 0.088 sec
FAILED
Your uncompressed Data is wrong!
junit.framework.AssertionFailedError: Your uncompressed Data is wrong!
at TestDecoding.decodeTest(TestDecoding.java:19)
at TestDecoding.testMax(TestDecoding.java:28)
Die message.huffman Dekomprimierung funktioniert bei mir und beliebige Dateien (unter anderem die mitgelieferte Faust.txt) werden problemlos komprimiert und dekomprimiert (md5 stimmen überein).
Wäre für jeden Tipp dankbar, da ich momentan absolut nicht mehr weiter weiß.
-
- Endlosschleifenbastler
- Beiträge: 192
- Registriert: 18. Okt 2006 00:18
- Wohnort: Darmstadt
Damit bist du mittlerweile der Fünfte der mir bekannten Leute mit diesem Problem (inklusive mir). Wir haben eigentlich alle keine Idee, was das Problem sein könnte...FloJ hat geschrieben:Hat jemand noch ne Idee wie man sein Programm testen kann?
Ich scheitere momentan hieran:
Könnt mir vielleicht jemand einen Tipp geben was man noch testen sollte?Code: Alles auswählen
Testsuite: TestDecoding Tests run: 2, Failures: 1, Errors: 0, Time elapsed: 0.134 sec Testcase: testSimple took 0.016 sec Testcase: testMax took 0.088 sec FAILED Your uncompressed Data is wrong! junit.framework.AssertionFailedError: Your uncompressed Data is wrong! at TestDecoding.decodeTest(TestDecoding.java:19) at TestDecoding.testMax(TestDecoding.java:28)
Die message.huffman Dekomprimierung funktioniert bei mir und beliebige Dateien (unter anderem die mitgelieferte Faust.txt) werden problemlos komprimiert und dekomprimiert (md5 stimmen überein).
Wäre für jeden Tipp dankbar, da ich momentan absolut nicht mehr weiter weiß.
- MisterD123
- Geek
- Beiträge: 811
- Registriert: 31. Okt 2006 20:04
- Wohnort: Weiterstadt
wer will und sich "traut" kann sich vllt mal im irc bei mir melden oder so, ich hab n passed (wenn auch fast ohne tests =) ich hab nur die geheimmessage dekodiert und den faust encodiert und decodiert und es kam beide male was lesbares raus, hab dann eingeschickt und passed *g*), wenn ich mal n mom zeit hab kann ich ja mal drüberschauen und guggn ob mir irgendwie n bug ins auge springt oO
bzw bei euerm faust-test, habt ihr sichergestellt, dass ihr das file was rauskommt mit dem original vergleicht und nicht mit einer eventuell schon mal überschriebenen version? vielleicht ändert euer programm beim ersten mal was und danach aber immer wieder genauso dass nur das file nach dem ersten durchlauf anders ist und danach immer wieder gleich falsch?
bzw bei euerm faust-test, habt ihr sichergestellt, dass ihr das file was rauskommt mit dem original vergleicht und nicht mit einer eventuell schon mal überschriebenen version? vielleicht ändert euer programm beim ersten mal was und danach aber immer wieder genauso dass nur das file nach dem ersten durchlauf anders ist und danach immer wieder gleich falsch?
- infinity_dev
- Mausschubser
- Beiträge: 44
- Registriert: 16. Okt 2006 01:32
Ich hab auch das Problem mit TestMax.
Die gegebenen Files werden alle korrekt kodiert und dekodiert.
Ich hab mir eine Klasse zum Testen geschrieben, die Dateien beliebiger Größe mit zufälligen Daten (ausser 0-bytes) erzeugt , die komprimiert, dekomprimiert und dann vergleicht => 10MB Files sind absolut identisch.
Ich habe getestet, ob beim EOF Zeichen korrekt abgebrochen wird, also an komprimierte Daten noch ein paar KB rangehangen und dekomprinmiert => funktioniert auch.
Falsche Bäume werden erkannt, indem beim Traversieren des Dekodierungsbaums ein NullPointer in einem Zweig erkannt wird => gibt ne FileFormatException.
Ebenso wird eine FileFormatException geworfen, wenn die Datei unerwartet zu Ende ist, also kein EOF gelesen wurde.
Das einzige was ich nicht prüfe ist, ob im Dekodierungsbaum ein innerer Knoten existiert, in dem beim Aufbau des Baums ein Knoten gespeichert wurde. (z.B. wenn a mit 01 und b mit 010 kodiert wurde)
In dem Fall würden beim Dekodieren immer bis zu einem Blatt Bits gelesen werden und das Byte im Blatt in den OutputStream geschrieben werden.
Dann würde das Testsystem aber kaum wegen einer falsch dekodierten Datei meckern, sondern wegen einer fehlenden Exception (der Fall ist nirgends spezifiziert) bzw. mein Programm würde sehr wahrscheinlich zu einem unerwarteten Dateiende/FileFormatException kommen.
Oder kurz: Keine Idee was das sein könnte.
Die gegebenen Files werden alle korrekt kodiert und dekodiert.
Ich hab mir eine Klasse zum Testen geschrieben, die Dateien beliebiger Größe mit zufälligen Daten (ausser 0-bytes) erzeugt , die komprimiert, dekomprimiert und dann vergleicht => 10MB Files sind absolut identisch.
Ich habe getestet, ob beim EOF Zeichen korrekt abgebrochen wird, also an komprimierte Daten noch ein paar KB rangehangen und dekomprinmiert => funktioniert auch.
Falsche Bäume werden erkannt, indem beim Traversieren des Dekodierungsbaums ein NullPointer in einem Zweig erkannt wird => gibt ne FileFormatException.
Ebenso wird eine FileFormatException geworfen, wenn die Datei unerwartet zu Ende ist, also kein EOF gelesen wurde.
Das einzige was ich nicht prüfe ist, ob im Dekodierungsbaum ein innerer Knoten existiert, in dem beim Aufbau des Baums ein Knoten gespeichert wurde. (z.B. wenn a mit 01 und b mit 010 kodiert wurde)
In dem Fall würden beim Dekodieren immer bis zu einem Blatt Bits gelesen werden und das Byte im Blatt in den OutputStream geschrieben werden.
Dann würde das Testsystem aber kaum wegen einer falsch dekodierten Datei meckern, sondern wegen einer fehlenden Exception (der Fall ist nirgends spezifiziert) bzw. mein Programm würde sehr wahrscheinlich zu einem unerwarteten Dateiende/FileFormatException kommen.
Oder kurz: Keine Idee was das sein könnte.
Ich hab heute mal ein bisschen Fehlersuche betrieben, und herausgefunden, dass zumindest die Tabelle die mein Codebaum erzeugt, nachdem ich ihn aus der gelesenen Tabelle erstellt habe, die gleiche ist, wie die aus der ich ihn erstellt habe (auch beim TestMax).
Also daran sollte es schonmal nicht liegen ...
Bleibt jetzt noch die frage danach, was noch falsch sein könnte ...
Ein EOF Zeichen findet er auch ...
Könnte jetzt der Fall sein, dass er es findet, obwohl noch überhaupt keins da war ... Aber dann müsste die Code Tabelle eigentlich falsch sein.
Also daran sollte es schonmal nicht liegen ...
Bleibt jetzt noch die frage danach, was noch falsch sein könnte ...
Ein EOF Zeichen findet er auch ...
Könnte jetzt der Fall sein, dass er es findet, obwohl noch überhaupt keins da war ... Aber dann müsste die Code Tabelle eigentlich falsch sein.
"Copy & Passed"
Wahlspruch der Plagiatoren
Wahlspruch der Plagiatoren
hat jemand vielleicht das selbe Problem woran kann es liegen?Testsuite: TestDecoding
Tests run: 2, Failures: 1, Errors: 0, Time elapsed: 0.203 sec
Testcase: testSimple took 0.013 sec
Testcase: testMax took 0.161 sec
FAILED
You tried to write a negative Value to the stream. Did you typecast to byte in your solution?
junit.framework.AssertionFailedError: You tried to write a negative Value to the stream. Did you typecast to byte in your solution?
at TestDecoding.decodeTest(TestDecoding.java:20)
at TestDecoding.testMax(TestDecoding.java:32)
S.O.S