EvalEq: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 17: | Zeile 17: | ||
evalEq('5','5') --> returns '0' | evalEq('5','5') --> returns '0' | ||
====JUnit Tests==== | |||
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed"> | |||
@Before | |||
public void beforeTest() { | |||
placeFillInVariable(1, OMParser.parse("0")); | |||
placeFillInVariable(2, OMParser.parse("1")); | |||
placeExerciseVariable("a", OMParser.parse("0")); | |||
placeExerciseVariable("b", OMParser.parse("1")); | |||
} | |||
@Test | |||
public void testEvalEq() { | |||
assertTrue("'-1-x+x^2'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('x^2', 'x+1')"))); | |||
assertTrue("'x^2-(y+1)'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('x^2', 'y+1')"))); | |||
assertTrue("'5-(5)'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('5', '5')"))); | |||
} | |||
@Test | |||
public void testEvalEqWithInput() { | |||
assertTrue("'-4-x^2'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('[pos=1]','x^2+4')"))); | |||
assertTrue("'-3+3*x'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('3x-2','[pos=2]')"))); | |||
} | |||
@Test | |||
public void testEvalEqWithVariables() { | |||
assertTrue("'-4-x^2'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('[var=a]','x^2+4')"))); | |||
assertTrue("'-3+3*x'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('3x-2','[var=b]')"))); | |||
} | |||
@Test | |||
public void testEvalEqWithONECharacter() { | |||
assertTrue("'a-(a)'".equals(getEvaluator().getResultAsEvaluatorString("evalEq(a, a)"))); | |||
} | |||
@Test(expected=InvalidCASFunctionArgumentException.class) | |||
public void testEvalEqWithEmptyArguments() { | |||
getEvaluator().getResultAsEvaluatorString("evalEq('' , '')"); | |||
} | |||
@Test(expected=UndefinedExerciseVariableException.class) | |||
public void testEvalEqWithoutExerciseVariable() { | |||
getEvaluator().getResultAsEvaluatorString("evalEq([var=j], [var=j])"); | |||
} | |||
@Test(expected=UndefinedFillInVariableException.class) | |||
public void testEvalEqWithoutInput() { | |||
getEvaluator().getResultAsEvaluatorString("evalEq([pos=42], [pos=42])"); | |||
} | |||
</syntaxhighlight> | |||
===Hinweise=== | ===Hinweise=== | ||
* Um den Ausdruck anschließend sinnvoll vergleichen zu können kann man z.B. die Funktion [[equalsExpr]] benutzen. Ein Beispiel: | * Um den Ausdruck anschließend sinnvoll vergleichen zu können kann man z.B. die Funktion [[equalsExpr]] benutzen. Ein Beispiel: |
Version vom 20. Juni 2017, 16:22 Uhr
Beschreibung
Die Funktion evalEq evaluiert zwei Ausdrücke miteinander. Das können z.B. zwei Fill-In Kästchen, die die linke und rechte Seite einer Gleichung darstellen, sein. evalEq erwartet zwei Strings und gibt einen String zurück.
Syntax
evalEq(Expression term1, Expression term2)
Parameter
- term1 - der Ausdruck, der z.B. auf der linken Seite einer Gleichung steht
- term2 - der Ausdruck, der z.B. auf der rechten Seite einer Gleichung steht
Return Value
- Gibt einen String zurück, evaluiert aus string1-string2.
Beispiele
evalEq('x^2 + 4','3x') --> returns 'x^2-3x+4'
evalEq('5','5') --> returns '0'
JUnit Tests
@Before
public void beforeTest() {
placeFillInVariable(1, OMParser.parse("0"));
placeFillInVariable(2, OMParser.parse("1"));
placeExerciseVariable("a", OMParser.parse("0"));
placeExerciseVariable("b", OMParser.parse("1"));
}
@Test
public void testEvalEq() {
assertTrue("'-1-x+x^2'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('x^2', 'x+1')")));
assertTrue("'x^2-(y+1)'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('x^2', 'y+1')")));
assertTrue("'5-(5)'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('5', '5')")));
}
@Test
public void testEvalEqWithInput() {
assertTrue("'-4-x^2'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('[pos=1]','x^2+4')")));
assertTrue("'-3+3*x'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('3x-2','[pos=2]')")));
}
@Test
public void testEvalEqWithVariables() {
assertTrue("'-4-x^2'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('[var=a]','x^2+4')")));
assertTrue("'-3+3*x'".equals(getEvaluator().getResultAsEvaluatorString("evalEq('3x-2','[var=b]')")));
}
@Test
public void testEvalEqWithONECharacter() {
assertTrue("'a-(a)'".equals(getEvaluator().getResultAsEvaluatorString("evalEq(a, a)")));
}
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testEvalEqWithEmptyArguments() {
getEvaluator().getResultAsEvaluatorString("evalEq('' , '')");
}
@Test(expected=UndefinedExerciseVariableException.class)
public void testEvalEqWithoutExerciseVariable() {
getEvaluator().getResultAsEvaluatorString("evalEq([var=j], [var=j])");
}
@Test(expected=UndefinedFillInVariableException.class)
public void testEvalEqWithoutInput() {
getEvaluator().getResultAsEvaluatorString("evalEq([pos=42], [pos=42])");
}
Hinweise
- Um den Ausdruck anschließend sinnvoll vergleichen zu können kann man z.B. die Funktion equalsExpr benutzen. Ein Beispiel:
equalsExpr(evalEq('x^2','x+1'),'x^2-x-1') --> returns true