EqualsExpr: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 15: Zeile 15:
  equalsExpr('x^2 - 5x + 6','(x-2)(x-3)')    --> returns true
  equalsExpr('x^2 - 5x + 6','(x-2)(x-3)')    --> returns true


====JUnit Tests====
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
@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')");
}
</syntaxhighlight>
===Hinweise===
===Hinweise===


[[Kategorie:Evaluatorfunktion]]
[[Kategorie:Evaluatorfunktion]]

Version vom 20. Juni 2017, 17:17 Uhr

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

Hinweise