Praktikum7

FloJ
Neuling
Neuling
Beiträge: 5
Registriert: 18. Okt 2005 13:08
Wohnort: Nauheim
Kontaktdaten:

Beitrag von FloJ » 16. Jun 2007 14:06

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.

Benutzeravatar
marlic
Computerversteher
Computerversteher
Beiträge: 365
Registriert: 5. Okt 2006 11:09
Wohnort: Dietesheim

Beitrag von marlic » 16. Jun 2007 15:44

Ja ... hab auch schon gemerkt ... wenn man Compiler Fehler bekommt, lieber erstmal die minimale Testumgebung auf einem Ultra probieren.

Java 5 und Java 6 sind zum Beispiel entgegen weitläufiger Meinungen nicht vollständig identisch.
"Copy & Passed"

Wahlspruch der Plagiatoren

funkyvonk
Erstie
Erstie
Beiträge: 12
Registriert: 17. Mai 2007 14:19

Beitrag von funkyvonk » 16. Jun 2007 17:12

So, meine uncompress Methode funktioniert fast, bis auf eine Kleinigkeit:

Wenn ich die message.huffman entpacke, fängt sie mit "$$"$$ $o$ $ooratulations!" an, der Rest stimmt.

Weiß jemand, was ich da vielleicht falsch mache, komme selber nicht drauf.

HolgerF
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 263
Registriert: 16. Jan 2007 14:20
Kontaktdaten:

Beitrag von HolgerF » 16. Jun 2007 17:21

Sieht danach aus, als wäre entweder

- dein Baum falsch eingelesen aus der Codetabelle
- oder deine Traversierung im Baum entlang eingelesener Bitfolgen stimmt nicht ganz.

Das solltest du vielleicht nochmal in Ruhe prüfen. Konkreteres ist schwer zu sagen.

funkyvonk
Erstie
Erstie
Beiträge: 12
Registriert: 17. Mai 2007 14:19

Beitrag von funkyvonk » 16. Jun 2007 17:26

Danke dir.

Hab den Fehler schon gefunden. Ich dachte, ich muss erst mal bis zu den 2 nullbits gehen, bis ich HuffmanStreamReader.getBit() aufrufen kann...

Benutzeravatar
Wang Tang
Mausschubser
Mausschubser
Beiträge: 92
Registriert: 5. Dez 2006 17:57

Beitrag von Wang Tang » 16. Jun 2007 18:36

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:

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)
das zweite in TEST-TestIllegalArguments:

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)
Wie gesagt, ich werfe keine einzige IOException explizit, auch keine Erben..

XaVoR
Neuling
Neuling
Beiträge: 3
Registriert: 15. Nov 2006 13:15

Beitrag von XaVoR » 17. Jun 2007 11:36

schätze mal die Output oder Input Datei , jenachdem ... existiert nochnicht ... wenn du zum lesen oder schreiben öffnest gibt es eine IOException

berry
Mausschubser
Mausschubser
Beiträge: 60
Registriert: 29. Nov 2004 23:46

Beitrag von berry » 17. Jun 2007 14:57

XaVoR hat geschrieben:schätze mal die Output oder Input Datei , jenachdem ... existiert nochnicht ... wenn du zum lesen oder schreiben öffnest gibt es eine IOException
Wegen dem IOException musst du dich mal beim Tutor corn melden. Der korrigiert den Fehler.

FloJ
Neuling
Neuling
Beiträge: 5
Registriert: 18. Okt 2005 13:08
Wohnort: Nauheim
Kontaktdaten:

Beitrag von FloJ » 17. Jun 2007 15:58

Hat jemand noch ne Idee wie man sein Programm testen kann?

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)
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ß.

Andreas T.
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 192
Registriert: 18. Okt 2006 00:18
Wohnort: Darmstadt

Beitrag von Andreas T. » 17. Jun 2007 17:53

FloJ hat geschrieben:Hat jemand noch ne Idee wie man sein Programm testen kann?

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)
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ß.
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...

Benutzeravatar
MisterD123
Geek
Geek
Beiträge: 811
Registriert: 31. Okt 2006 20:04
Wohnort: Weiterstadt

Beitrag von MisterD123 » 17. Jun 2007 18:55

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?

Benutzeravatar
infinity_dev
Mausschubser
Mausschubser
Beiträge: 44
Registriert: 16. Okt 2006 01:32

Beitrag von infinity_dev » 17. Jun 2007 19:31

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.

Rookie
Erstie
Erstie
Beiträge: 16
Registriert: 5. Mai 2007 11:04

Beitrag von Rookie » 17. Jun 2007 20:18

Ich scheitere auch an dem TestMax. Hab schon alles mögliche ausprobiert und finde keinen Fehler.

Benutzeravatar
marlic
Computerversteher
Computerversteher
Beiträge: 365
Registriert: 5. Okt 2006 11:09
Wohnort: Dietesheim

Beitrag von marlic » 18. Jun 2007 14:56

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.
"Copy & Passed"

Wahlspruch der Plagiatoren

yagami
Mausschubser
Mausschubser
Beiträge: 72
Registriert: 5. Okt 2006 03:02

Beitrag von yagami » 18. Jun 2007 18:41

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)
hat jemand vielleicht das selbe Problem woran kann es liegen?
S.O.S

Antworten

Zurück zu „Archiv“