Was macht Test_Illegal_2

ichnicht
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 117
Registriert: 23. Apr 2007 23:08

Beitrag von ichnicht »

Vielleicht werden in einem Test mehrere Dateien getestet und du hast einmal ne verbotene Datei akzeptiert und ein anderes mal einen Zyklus gefunden.

Oder du hast in einer fehlerhaften Datei einen Zyklus gefunden?

Oder du hast statt einer FileFormatException eine GraphContainsCycleException geschmissen.

Mehr fällt mir auch nicht ein.

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

Beitrag von HolgerF »

Illegale Argumente kann so ziemlich jeder Unsinn in der Testdatei sein. Offenbar hast du selbigen akzeptiert, obwohl du ihn hättest zurückweisen müssen, und dann hat dein Code mit den ohnehin fehlerhaften Daten halt einen Zyklus gefunden (was im Prinzip dann schon egal ist).

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

Beitrag von MisterD123 »

im falle eines zyklus ist das format der datei vollkommen korrekt und es steht ein ganz normaler graph drin. der ist nur für das aktuelle programm leider nicht gültig, also ein IllegalArgument

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

Beitrag von Rookie »

Was bedeutet filename - null? Etwa, dass der Dateinamen der übergeben wurde leer ist? also ""

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

Beitrag von HolgerF »

Nein, dass das übergebene String-Objekt null ist, das ist ein Unterschied. Ist aber im Prinzip egal, weil sich Java dann wie üblich von selbst beschwert, muss man also nicht prüfen. Ein leerer String wird bei den Dateilesern ebenfalls Exceptions auslösen, kann man also auch ignorieren.

Benutzeravatar
6(sic)6
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 109
Registriert: 9. Dez 2004 20:49
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von 6(sic)6 »

Test2_Illegal schaut glaube ich, ob du Dateien akzeptierst, bei der die Kantenanzahl auf 0 gesetzt ist, aber trotzdem Kanten spezifiziert werden.

also eben nicht bei Kantenanzahl 0 abbrechen und eine beliebige Sortierung zurückgeben, sondern komplett lesen und dann mit Kantenzahl vergleichen.
Doubt me! Hate me!
You're the inspiration I need!!

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee »

ichnicht hat geschrieben:filename - null

Datei leer

Erste Zeile in der Form: Zahl>0, Leerzeichen, Zahl>=0

Jede weitere Zeile in der Form: "e ", existierender Knoten, Leerzeichen, existierender Knoten, Leerzeichen, Zahl>=0

Doppelkanten

Richtige Anzahl an Kanten angegeben

Zyklen
das hab ich auch auch alles, trotzdem accepte ich angeblich korrupte files oO

wach
Computerversteher
Computerversteher
Beiträge: 323
Registriert: 25. Okt 2004 09:08

Beitrag von wach »

banshee hat geschrieben: das hab ich auch auch alles, trotzdem accepte ich angeblich korrupte files oO
Nein hast du nicht. In dem gequoteten Hinweis standen alle nötigen Informationen ...

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee »

in dem hinweis steht, dass ich falsche eingaben akzeptiere, ich hab aber alles was ich oben gequotet habe lokal getestet. also was soll ich denn da vergessen haben?

wach
Computerversteher
Computerversteher
Beiträge: 323
Registriert: 25. Okt 2004 09:08

Beitrag von wach »

banshee hat geschrieben:in dem hinweis steht, dass ich falsche eingaben akzeptiere, ich hab aber alles was ich oben gequotet habe lokal getestet. also was soll ich denn da vergessen haben?
Mit allen Tests, die du gequotet hast, musst du das File erkennen ... wirklich.

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee »

irgendwie hab ich grad ein brett vorm kopf...

die NullPointerException wird ja schon geworfen, bevor das file überhaupt eingelesen wird.

dann falls die datei leer is, wird eine FileFormatException geworfen, weil der parser keinen numerischen wert für die knotenanzahl findet. selbiges gilt für negative werte, falsch spezifizierte kanten oder zu viele/wenige knoten/kanten als angegeben.

doppelkanten führen auch irgendwann beim kanteneinlesen zu einer FileFormatException (das ist das einzige, wo ich mich nicht sicher bin, weil eine doppelkante ist ja keine - in dem sinne - kaputte eingabe sondern nur eine ungültige)

zyklen führen natürlich irgendwann im algorithmus zu GraphContainsCycleException

also für mich ist das absolut logisch :D

BoG
Neuling
Neuling
Beiträge: 9
Registriert: 30. Nov 2004 14:18

Beitrag von BoG »

also mich nervt der blöde Test_Illegal_2 auch... wenn ich beim einlesen der Kantenanzahl folgendes mache bekomme ich den Fehler bei Test_illegal_2

Code: Alles auswählen

if(anzahlKanten<0){//anzahl der kanten falsch	
throw new FileFormatException ("Caught FileFormatException: " + "anzahl der Kanten <0");
}

Ändere ich die Abfrage in <=0 (wie in der Aufgabenstellung verlangt) dann bekomme ich einen fehler bei der Datei TEST-Test_2, wo meine Exeption geworfen wird, aber wohl nicht geworfen werden soll...

Wenn mir jemand mit nem Tipp weiterhelfen könnte, wäre ich sehr dankbar, mir fällt nämlich nichts mehr ein. :(

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

Beitrag von MisterD123 »

0 kanten sind erlaubt, les nochmal ;) nur knotenanzahl muss größer als 0 sein. kanten nicht.

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee »

jap, genau das hab ich auch gerade gefunden. ich hab eine datei mit '0 0' akzeptiert weil ich den check irgendwann mal wieder rausgeworfen hab (aus unerfindlichen gründen).

wenn es jetz allerdings immernoch nicht durchkommt bin ich mit meinem latein am ende.

/edit: und wie ich gerade sehe hat mir mr. wach das auch geschrieben, herzlichen dank ;)

BoG
Neuling
Neuling
Beiträge: 9
Registriert: 30. Nov 2004 14:18

Beitrag von BoG »

sollte das jetzt wirklich der fehler gewesen sein, dann kann man sich ja eigentlich nur noch in den arsch beißen -.-
und nochmal auf den anfang des threads zurück kommen, wo der richtige hinweis gegeben wurde: "wer lesen kann..."

Naja,... dann hoffen wir mal dass es wirklich daran gelegen haben soll.

Antworten

Zurück zu „Archiv“