EvalTermIn2Variables: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 19: Zeile 19:


====JUnit Tests====
====JUnit Tests====
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
@Before  
@Before  
public void beforeTest() {
public void beforeTest() {

Version vom 27. Juni 2017, 10:23 Uhr

Beschreibung

Die Funktion evalterm2 wertet einen Ausdruck in zwei Variablen an einer Stelle aus. Der auszuwertende Ausdruck muss von a,b oder x,y abhängen. Die Funktion erwartet drei Strings, den Ausdruck und die Werte der beiden Variablen. Sie gibt den Wert des Ausdrucks an der Stelle zurück.

Syntax

evalterm2(Expression term, float variable1, float variable2 )

Parameter

  • term - der Ausdruck mit zwei Variablen, der ausgewertet werden soll. Er sollte entweder von a,b oder von x,y abhängen.
  • variable1 - der Wert der ersten Variable a oder x
  • variable2 - der Wert der zweiten Variable b oder y

Return Value

  • Gibt das Ergebnis als String zurück.

Beispiele

evalterm2('x+y','1','2')    --> returns '3'
evalterm2('2a+6b-3','2','0')    --> returns '1'

JUnit Tests

[Anzeigen]

@Before 
public void beforeTest() {
  placeFillInVariable(1, OMParser.parse("0"));
  placeFillInVariable(2, OMParser.parse("1"));
		
  placeExerciseVariable("a", OMParser.parse("1"));
  placeExerciseVariable("b", OMParser.parse("5"));
}

@Test
public void testEvalTermIn2Variables() {
  assertTrue(3 == getEvaluator().getNumberResult("evalterm2('x+y','1','2')"));
  assertTrue(7 == getEvaluator().getNumberResult("evalterm2('3x+2y','1','2')"));
  assertFalse(7 == getEvaluator().getNumberResult("evalterm2('3x+2y','2','1')"));
  assertTrue(1 == getEvaluator().getNumberResult("evalterm2('2a+6b-3','2','0')"));
}
	
@Test
public void testEvalTermIn2VariablesWithInput() {
  assertTrue(30 == getEvaluator().getNumberResult("evalterm2('6x+27y+3','[pos=1]','[pos=2]')"));
  assertTrue(3 == getEvaluator().getNumberResult("evalterm2('2*a+6*b-3','[pos=1]','[pos=2]')"));
}
	
@Test
public void testEvalTermIn2VariablesWithVariables() {
  assertTrue(7 == getEvaluator().getNumberResult("evalterm2('[var=a]x+[var=b]y','2','1')"));
  assertTrue(5 == getEvaluator().getNumberResult("evalterm2('[var=a]x+[var=b]y','0','1')"));
}	
	
@Test
public void testEvalTermIn2VariablesWithCharacterAsSecondAndThirdArgument() {
  assertTrue("'2*a'".equals(getEvaluator().getResultAsEvaluatorString("evalterm2('a+b','b', 'a')")));
}
	
@Test
public void testEvalTermIn2VariablesWithONECharacter() {
  assertTrue("'a'".equals(getEvaluator().getResultAsEvaluatorString("evalterm2(a, a, a)")));
}
	
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testEvalTermIn2VariablesWithEmptyStringArgument() {
  getEvaluator().getResultAsEvaluatorString(("evalterm2('', '', '')"));
}
	
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testEvalTermIn2VariablesWithEmptyArgument() {
  getEvaluator().getResultAsEvaluatorString(("evalterm2()"));
}
	
@Test(expected=UndefinedExerciseVariableException.class)
public void testEvalTermIn2VariablesWithoutExerciseVariable() {
  getEvaluator().getResultAsEvaluatorString("evalterm2([var=j], '1', '2')");
}
	
@Test(expected=UndefinedFillInVariableException.class)
public void testEvalTermIn2VariablesWithoutInput() {
  getEvaluator().getResultAsEvaluatorString("evalterm2([pos=42], '1', '2')");
}

Hinweise

  • Die Funktion evalterm2 gibt einen String zurück und keinen Integer oder Double.