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(Ausdruck term1, Ausdruck 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]

@BeforeClass
public static void beforeTest() throws FunctionNotImplementedException, UndefinedFillInVariableException,
		UndefinedExerciseVariableException, ParserException, ErroneousFillInVariableException, ErroneousExerciseVariableException {
	equalsExprFillInVariableMap.put(1, ExpressionParser.parse("0", null, null));
	equalsExprFillInVariableMap.put(2, ExpressionParser.parse("x^2", null, null));

	equalsExprExerciseVariableMap.put("a", ExpressionParser.parse("0", null, null));
	equalsExprExerciseVariableMap.put("b", ExpressionParser.parse("1", null, null));
	equalsExprExerciseVariableMap.put("c", ExpressionParser.parse("5", null, null));
	equalsExprExerciseVariableMap.put("d", ExpressionParser.parse("x^2", null, null));
}

@Test
public void testEqualsExpr1() {
	assertTrue(Evaluator.getBooleanResult("equalsExpr('x^2-5*x+6','(x-2)*(x-3)')", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test
public void testEqualsExpr2() {
	assertTrue(Evaluator.getBooleanResult("equalsExpr('x*x-5*x+6','(x-2)*(x-3)')", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test
public void testEqualsExpr3() {
	assertTrue(Evaluator.getBooleanResult("equalsExpr('1/2*x^2+3*x-5','0.5*x^2+3*x-5')", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test
public void testEqualsExpr4() {
	assertTrue(Evaluator.getBooleanResult("equalsExpr('(a-b)/(b^2-a^2)','(a-b)/(b^2-a^2)')",
			equalsExprExerciseVariableMap, equalsExprFillInVariableMap));
}

@Test
public void testEqualsExpr5() {
	assertTrue(!Evaluator.getBooleanResult("equalsExpr('x^2+x+1','a^2+a+1')", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test
public void testEqualsExpr6() {
	assertTrue(Evaluator.getBooleanResult("equalsExpr('(x^2)/2','0.5*x^2')", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test
public void testEqualsExpr7() {
	assertTrue(Evaluator.getBooleanResult("equalsExpr('1','1')", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test
public void testEqualsExprWithInput1() {
	assertTrue(Evaluator.getBooleanResult("equalsExpr('0','[pos=1]')", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test
public void testEqualsExprWithInput2() {
	assertTrue(Evaluator.getBooleanResult("equalsExpr('x*x','[pos=2]')", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test
public void testEqualsExprWithVariables1() {
	assertTrue(Evaluator.getBooleanResult("equalsExpr('[var=b]*x^2+[var=c]*x+[var=a]','x^2+5*x')",
			equalsExprExerciseVariableMap, equalsExprFillInVariableMap));
}

@Test
public void testEqualsExprWithVariables2() {
	assertTrue(Evaluator.getBooleanResult("equalsExpr('[var=d]','x^2')", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test
public void testEqualsExprWithEmptyStringArguments1() {
	assertTrue(!Evaluator.getBooleanResult("equalsExpr('x^2+x+1','')", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test
public void testEqualsExprWithEmptyStringArguments2() {
	assertTrue(!Evaluator.getBooleanResult("equalsExpr('','x^2+x+1')", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test
public void testEqualsExprWithEmptyStringArguments3() {
	assertTrue(Evaluator.getBooleanResult("equalsExpr('','')", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test (expected = FunctionInvalidNumberOfArgumentsException.class)
public void testEqualsExprWithEmptyArgument() {
	assertTrue(!Evaluator.getBooleanResult("equalsExpr()", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test
public void testEqualsExprWithONECharacter() {
	assertTrue(Evaluator.getBooleanResult("equalsExpr(a, a)", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap));
}

@Test(expected = UndefinedExerciseVariableException.class)
public void testEqualsExprWithoutExerciseVariable() {
	Evaluator.getBooleanResult("equalsExpr([var=j], [var=j])", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap);
	fail();
}

@Test(expected = UndefinedFillInVariableException.class)
public void testEqualsExprWithoutInput() {
	Evaluator.getBooleanResult("equalsExpr([pos=42], [pos=42])", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap);
	fail();
}

@Test
public void testEqualsExprWithSemanticallyIncorrectInput() {
	Evaluator.getBooleanResult("equalsExpr('(4,2)', '4.2')", equalsExprExerciseVariableMap,
			equalsExprFillInVariableMap);
}

Hinweise