EqualsExpr

Aus JACK Wiki
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

[Anzeigen]

@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')");
}

Hinweise