task2 evaluate

Rapha167
Mausschubser
Mausschubser
Beiträge: 49
Registriert: 30. Apr 2015 19:00

task2 evaluate

Beitrag von Rapha167 »

bei mir wird im testevaluate nicht die evaluate() methode aufgerufen, macht aus meiner sicht irgendwie keinen sinn oder?

hier der code abschnitt indem es meiner meinungn ach aufgerufen werden sollte.

Code: Alles auswählen

for(int i=0;i<testCases.length;i++)
		{
			String tcn = "Testcase "+(i+1)+": ";
			
			ml = new MathList(calculators[i]);
			ml.buildList(testCases[i]);

			
			assertEquals(tcn+"Evaluation did not finish", 1, ml.size());
			assertEquals(tcn+"Wrong result", results[i], ml.first().data());
		}

die einzige möglichkeit wie meine funktion jetzt laufen würde wäre sie in buildList aufzurufen, das ist aber nicht so gedacht oder?

ich habe nichts an den tests verändert! vermute aber das es vllt ausversehen gelöscht worden sein kann?
kann mir vllt jemand seinen abschnitt des tests hier posten oder mir verraten wie ich sonst evaluate() aufrufen kann?


danke :)
raphael

hololol2
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 154
Registriert: 27. Apr 2015 14:13

Re: task2 evaluate

Beitrag von hololol2 »

Nach dem buildList() fehlt ein mv.evaluate();

Benutzeravatar
felicis
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 114
Registriert: 14. Apr 2015 20:25

Re: task2 evaluate

Beitrag von felicis »

hier sollten wir vielleicht genau sein...
In der Leerzeile nach "ml.buildList(testCases);" sollte das stehen:

Code: Alles auswählen

ml.evaluate();
felicis
PS: vll. lädst du dir mal die ganze Testdatei neu runter... es könnten ja noch andere Fehler drin sein! (Muss ich auch noch mal machen... so viel, wie ich da drin rumgepantscht habe!)

hololol2
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 154
Registriert: 27. Apr 2015 14:13

Re: task2 evaluate

Beitrag von hololol2 »

Oh da hatte ich ein "v" statt nem "l" :roll:

sch3rvv1n
Erstie
Erstie
Beiträge: 17
Registriert: 22. Apr 2015 10:58

Re: task2 evaluate

Beitrag von sch3rvv1n »

Ich denke es fehlt noch eine Funktion die aufgerufen werden soll, bevor ml.evaluate() aufgerufen wird und zwar ml.assembleNumbers(). Da es mir im Test aufgefallen war, dass die Zahlen nicht zusammengehängt werden.

Rapha167
Mausschubser
Mausschubser
Beiträge: 49
Registriert: 30. Apr 2015 19:00

Re: task2 evaluate

Beitrag von Rapha167 »

hmm echt komisch, wie konnte das verschwinden? ich habe nichts in den tests geändert.
nunja danke,
kann mir jemand den ganzen ausschnitt schicken?
oder ist assemplenumbers wirklich nicht mit in der testfunktion?

hololol2
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 154
Registriert: 27. Apr 2015 14:13

Re: task2 evaluate

Beitrag von hololol2 »

Die Frage war schon mehrmals hier im Forum. assembleNumbers() ist nicht im Test, du musst sie selber aufrufen

sch3rvv1n
Erstie
Erstie
Beiträge: 17
Registriert: 22. Apr 2015 10:58

Re: task2 evaluate

Beitrag von sch3rvv1n »

public void testEvaluate()
{
String[] testCases = {
"3+5*6-5/10*100+2",
"3.5+5.1/17-4.7+4-2354*7/7.0-1/10",
"(33+43)*434-45/10+((10-52)*(6-100)*(0-1)+(5*(5*(5*(((5)))))))",
"42.0*24+(12686/6343*123.232-23+(43*4.0-(0-3)-(3/12.0*(6.9))))",
"8923747823478892340892304+47823748927394789*2347283479233434343434344/253728457832423423424-12312312312313123123123",
"(8923747823478892340892304+47823748927394789*2347283479233434343434344/2347283479233434343434344-12312312312313123123123)*2.3"
};

Calculator[] calculators = {
ic,
pnc,
ic,
pnc,
ic,
pnc
};

String[] results = {
"35",
"-2351.0",
"29657",
"1404.739",
"8911877936492974499711696",
"20496301785677754733877131.0"
};

for(int i=0;i<testCases.length;i++)
{
String tcn = "Testcase "+(i+1)+": ";

ml = new MathList(calculators);
ml.buildList(testCases);

//hier assembleNumbers so hinzufügen
ml.assembleNumbers();

ml.evaluate();
System.out.println(ml.size());
System.out.println(ml.first().data());
assertEquals(tcn+"Evaluation did not finish", 1, ml.size());
assertEquals(tcn+"Wrong result", results, ml.first().data());
}
}

CryNickSystems
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 119
Registriert: 30. Apr 2015 18:27

Re: task2 evaluate

Beitrag von CryNickSystems »

@sch3rvv1n:
Nein - assembleNumbers() gehört nicht in den Test, wenn es dort nicht schon drin ist.
Einfach selbst aufrufen.

Rapha167
Mausschubser
Mausschubser
Beiträge: 49
Registriert: 30. Apr 2015 19:00

Re: task2 evaluate

Beitrag von Rapha167 »

es geht ja auch nicht um assemblenumbers sonder um ml.evaluate :) das bei mri ja einscheinend gefehlt hat, wieso auch immer :D

sch3rvv1n
Erstie
Erstie
Beiträge: 17
Registriert: 22. Apr 2015 10:58

Re: task2 evaluate

Beitrag von sch3rvv1n »

@CryNickSystems
du hast vollkommen Recht. Also Ich glaube nicht dass es wichtig ist, ob das erst im Test oder unter evaluate() aufgerufen wird. Die Wichtigsten sind eigentlich die anderen Methoden, die Implementiert werden müssen. :)

hololol2
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 154
Registriert: 27. Apr 2015 14:13

Re: task2 evaluate

Beitrag von hololol2 »

Die Tests müssen ohne Veränderung im test-Package laufen, d.h. die assembleNumbers() darf nicht in der testEvaluate() aufgerufen werden!
Im Testat werden nämlich nicht deine Tests verwendet, sondern die vorgegebenen, also muss assembleNumbers() in evaluate() aufgerufen werden!

Rapha167
Mausschubser
Mausschubser
Beiträge: 49
Registriert: 30. Apr 2015 19:00

Re: task2 evaluate

Beitrag von Rapha167 »

das habe ich nun auch so übernommen, ich möchte keinen neuen thread anfangen zu meiner nächsten frage und stelle sie einfach schnell hier,
ich habe bei testcase 1: 402 als ergebnis, ich habe nirgends eine methode geschrieben mit der ich punkt vor strichrechnung beachte, bestehe aber bisher alle anderen tests.

so wie ich das nun verstandne habe muss die punkt vor strich rechnung in public void evaluateSimpleExpression(IListElement begin) beachtet werden oder?
ich denke im übrigen wäre es eine verbesserung wenn die einfachen tests vorher solche fälle auch schon mit abfragen, weil man nun am ende schon ganz schön doof dasteht :)

hololol2
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 154
Registriert: 27. Apr 2015 14:13

Re: task2 evaluate

Beitrag von hololol2 »

Ja das musst du in evaluateSimpleExpression() machen. Ist aber eigentlich nicht kompliziert...

Rapha167
Mausschubser
Mausschubser
Beiträge: 49
Registriert: 30. Apr 2015 19:00

Re: task2 evaluate

Beitrag von Rapha167 »

habs einfach bisher nicht gemacht, weil es be iden tests nicht nötig war, ich setze mich ma ldran, denke nicht das es ein allzugrosses problem sein sollte

Antworten

Zurück zu „Archiv“