EvalPolynomial: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:


===Syntax===
===Syntax===
  evalpolynomial(String term, String zahl)
  evalpolynomial([[Ausdruck]] term, [[Gleitkommazahl]] zahl)


===Parameter===
===Parameter===
Zeile 10: Zeile 10:


===Return Value===
===Return Value===
* Gibt einen numerischen Wert zurück.
* Gibt eine [[Gleitkommazahl]] zurück.


===Beispiele===
===Beispiele===
  evalpolynomial('3x^2+4x-2','2')    --> returns 18
  evalpolynomial('3*x^2+4*x-2','2')    --> returns 18


====JUnit Tests====
====JUnit Tests====

Version vom 4. Oktober 2017, 16:08 Uhr

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(Ausdruck term, Gleitkommazahl zahl)

Parameter

  • term - der auszuwertende Term
  • zahl - die Stelle, die ausgewertet werden soll

Return Value

Beispiele

evalpolynomial('3*x^2+4*x-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!!!