EqualsExpr
Zur Navigation springen
Zur Suche springen
Beschreibung
Die Funktion equalsExpr vergleicht zwei mathematische Ausdrücke miteinander. Sie erwartet zwei Strings und gibt einen Boolean zurück.
Syntax
equalsExpr(Expression term1, Expression term2)
Parameter
- term1 - der Ausdruck, der als Grundlage für den Vergleich dient
- term2 - der Ausdruck, der mit term1 verglichen werden soll
Return Value
- Gibt einen Boolean zurück, true falls die beiden Ausdrücke übereinstimmen und false falls sie nicht übereinstimmen.
Beispiel
equalsExpr('x^2 - 5x + 6','(x-2)(x-3)') --> returns true
JUnit Tests
@Before
public void beforeTest() {
placeFillInVariable(1, OMParser.parse("0"));
placeFillInVariable(2, OMParser.parse("Power[x, 2]"));
placeExerciseVariable("a", OMParser.parse("0"));
placeExerciseVariable("b", OMParser.parse("1"));
placeExerciseVariable("c", OMParser.parse("5"));
placeExerciseVariable("d", OMParser.parse("Power[x, 2]"));
}
@Test
public void testEqualsExpr() {
assertTrue(getEvaluator().getBooleanResult("equalsExpr('x^2-5x+6','(x-2)(x-3)')"));
assertTrue(getEvaluator().getBooleanResult("equalsExpr('x*x-5*x+6','(x-2)*(x-3)')"));
assertTrue(getEvaluator().getBooleanResult("equalsExpr('1/2x^2+3x-5','0.5x^2+3x-5')"));
assertTrue(getEvaluator().getBooleanResult("equalsExpr('(a-b)/(b^2-a^2)','(a-b)/(b^2-a^2)')"));
assertTrue(!getEvaluator().getBooleanResult("equalsExpr('x^2+x+1','a^2+a+1')"));
assertTrue(getEvaluator().getBooleanResult("equalsExpr('(x^2)/2','0.5x^2')"));
assertTrue(getEvaluator().getBooleanResult("equalsExpr('1','1')"));
}
@Test
public void testEqualsExprWithInput() {
assertTrue(getEvaluator().getBooleanResult("equalsExpr('0','[pos=1]')"));
assertTrue(getEvaluator().getBooleanResult("equalsExpr('x*x','[pos=2]')"));
}
@Test
public void testEqualsExprWithVariables() {
assertTrue(getEvaluator().getBooleanResult("equalsExpr('[var=b]x^2+[var=c]x+[var=a]','x^2+5x')"));
assertTrue(getEvaluator().getBooleanResult("equalsExpr('[var=d]','x^2')"));
}
@Test
public void testEqualsExprWithEmptyStringArguments() {
assertTrue(!getEvaluator().getBooleanResult("equalsExpr('x^2+x+1','')"));
assertTrue(!getEvaluator().getBooleanResult("equalsExpr('','x^2+x+1')"));
assertTrue(getEvaluator().getBooleanResult("equalsExpr('','')"));
}
@Test
public void testEqualsExprWithEmptyArgument() {
assertTrue(!getEvaluator().getBooleanResult("equalsExpr()"));
}
@Test
public void testEqualsExprWithONECharacter() {
assertTrue(getEvaluator().getBooleanResult("equalsExpr(a, a)"));
}
@Test(expected=UndefinedExerciseVariableException.class)
public void testEqualsExprWithoutExerciseVariable() {
getEvaluator().getBooleanResult("equalsExpr([var=j], [var=j])");
}
@Test(expected=UndefinedFillInVariableException.class)
public void testEqualsExprWithoutInput() {
getEvaluator().getBooleanResult("equalsExpr([pos=42], [pos=42])");
}
@Test(expected=EvaluatorException.class)
public void testEqualsExprWithSemanticallyIncorrectInput(){
getEvaluator().getBooleanResult("equalsExpr('(4,2)', '4.2')");
}