EvalPolynomial
Zur Navigation springen
Zur Suche springen
Beschreibung
Die Funktion evalPolynomial wertet einen Term mit einer Variablen an einer Stelle aus. Der auszuwertende Ausdruck darf nur von einer der folgenden Variablen a,b,x oder y abhängen. Die Funktion erwartet zwei Strings, den Ausdruck und die Stelle. Sie gibt den Wert an der Stelle zurück.
Syntax
evalpolynomial(String term, String zahl)
Parameter
- term - der auszuwertende Term
- zahl - die Stelle, die ausgewertet werden soll
Return Value
- Gibt einen numerischen Wert zurück.
Beispiele
evalpolynomial('3x^2+4x-2','2') --> returns 18
JUnit Tests
[Anzeigen]
@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 testEvalPolynomial() {
assertTrue(18 == getEvaluator().getNumberResult("evalpolynomial('3x^2+4x-2','2')"));
assertTrue(3 == getEvaluator().getNumberResult("evalpolynomial('y^2+2y','1')"));
assertTrue(10 == getEvaluator().getNumberResult("evalpolynomial('2a+8','1')"));
assertTrue(4 == getEvaluator().getNumberResult("evalpolynomial('b^2-4b+8','2')"));
assertTrue(4 == getEvaluator().getNumberResult("evalpolynomial('b^2-4b+8','2')"));
}
@Test
public void testEvalPolynomialWithInput() {
assertTrue(3 == getEvaluator().getNumberResult("evalpolynomial('y^2+2y','[pos=2]')"));
}
@Test
public void testEvalPolynomialWithVariables() {
assertTrue(10 == getEvaluator().getNumberResult("evalpolynomial('[var=a]a+2a+8','1')"));
}
@Test
public void testEvalPolynomialWithDifferentVariableNamesInPolynom() {
assertTrue(2 == getEvaluator().getNumberResult("evalpolynomial('(x1)^2+(x2)^4', '1')"));
assertTrue(3 == getEvaluator().getNumberResult("evalpolynomial('(x)^2+(y)^4+(z)^5', '1')"));
assertTrue(3 == getEvaluator().getNumberResult("evalpolynomial('(a)^2+(b)^4+(c)^5', '1')"));
assertTrue(4 == getEvaluator().getNumberResult("evalpolynomial('(ü)^2', '2')"));
}
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testEvalPolynomialWithCharacterAsSecondArgument() {
getEvaluator().getNumberResult("evalpolynomial('a+2a+8','a')");
}
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testEvalPolynomialWithONECharacter() {
getEvaluator().getNumberResult("evalpolynomial(a, a)");
}
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testEvalPolynomialWithEmptyStringArgument() {
getEvaluator().getNumberResult(("evalpolynomial('', '')"));
}
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testEvalPolynomialWithEmptyArgument() {
getEvaluator().getNumberResult(("evalpolynomial()"));
}
@Test(expected=UndefinedExerciseVariableException.class)
public void testEvalPolynomialWithoutExerciseVariable() {
getEvaluator().getNumberResult("evalpolynomial([var=j], '3')");
}
@Test(expected=UndefinedFillInVariableException.class)
public void testEvalPolynomialWithoutInput() {
getEvaluator().getNumberResult("evalpolynomial([pos=42], '3')");
}
Hinweise
- Die Funktion darf nur von einer Variablen abhängen!!!