FactorOf: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(9 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
===Beschreibung===
===Beschreibung===
Die Funktion ''factorOf'' gibt zu einem Polynom den Vorfaktor eines Summanden zu einer Potenz als numerischen Wert wieder. Sie erwartet drei Strings, der erste String ist das zu untersuchende Polynom, der zweite String ist die Variable und der dritte String ist der Exponent.
Die Funktion ''factorOf'' gibt zu einem Polynom den Vorfaktor eines Summanden zu einer Potenz als numerischen Wert wieder. Sie erwartet drei Strings, der erste String ist das zu untersuchende Polynom, der zweite String ist die Variable und der dritte String ist der Exponent.
Zeile 14: Zeile 17:


===Beispiele===
===Beispiele===
==== Standardfälle ====
'''Jack2:'''
  factorOf('x^3+2*x^2+3*x+1','x',2)    --> returns 2
  factorOf('x^3+2*x^2+3*x+1','x',2)    --> returns 2


====JUnit Tests====
'''Jack3:'''
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
factorOf(x^3+2*x^2+3*x+1,x,2)   --> returns 2
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
@Test
public void testFactorOf1() {
assertEquals(1, Evaluator.getNumberResult("factorOf('2*a+c','c','1')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testFactorOf2() {
assertEquals(0, Evaluator.getNumberResult("factorOf('2*x+x-3*x','x','1')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testFactorOf3() {
assertEquals(2, Evaluator.getNumberResult("factorOf('2*y^2+3*y','y','2')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testFactorOf4() {
assertEquals(0, Evaluator.getNumberResult("factorOf('5*y^2+3*y','y','0')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testFactorOfWithInput1() {
assertEquals(1, Evaluator.getNumberResult("factorOf('2*a+[pos=2]*c','c','1')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testFactorOfWithInput2() {
assertEquals(0, Evaluator.getNumberResult("factorOf('2*y^2+[pos=1]*y','y','1')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testFactorOfWithVariables1() {
assertEquals(1, Evaluator.getNumberResult("factorOf('2*a+[var=b]*c','c','1')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testFactorOfWithVariables2() {
assertEquals(0, Evaluator.getNumberResult("factorOf('2*y^2+[var=a]*y','y','1')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testFactorOfWithPointNumbers1() {
assertEquals(3.3, Evaluator.getNumberResult("factorOf('2*a+3.3*c','c','1')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test
public void testFactorOfWithPointNumbers2() {
assertEquals(-8.1, Evaluator.getNumberResult("factorOf('2*y^2+(-8.1)*y','y','1')", exerciseVariableMap, fillInVariableMap), 0.0);
}
 
@Test(expected=ParserException.class)
public void testFactorOfWithONECharacter() {
Evaluator.getNumberResult("factorOf(ab, ab, ab)", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test(expected=FunctionInvalidArgumentTypeException.class)
public void testFactorOfWithEmptyStringArguments() {
Evaluator.getNumberResult("factorOf('', '', '')", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test(expected=FunctionInvalidNumberOfArgumentsException.class)
public void testFactorOfWithEmptyArgument() {
Evaluator.getNumberResult("factorOf()", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test(expected=FunctionInvalidNumberOfArgumentsException.class)
public void testFactorOfWithOneArgument() {
Evaluator.getNumberResult("factorOf('2y^2')", exerciseVariableMap, fillInVariableMap);
fail();
}


@Test(expected=FunctionInvalidNumberOfArgumentsException.class)
==== Benutzung mit Variablen ====
public void testFactorOfWithTwoArguments() {
factorOf([var=a], [var=b], [var=c])
Evaluator.getNumberResult("factorOf('2y^2', 'y')", exerciseVariableMap, fillInVariableMap);
fail();
facorOf([var=a], x, 2)
}


@Test(expected=UndefinedExerciseVariableException.class)
==== Benutzung mit studentischen Eingaben ====
public void testFactorOfWithMissingExerciseVariable() {
'''Jack2:'''
Evaluator.getNumberResult("factorOf('2y^2', 'y', '[var=j]')", exerciseVariableMap, fillInVariableMap);
factorOf([pos=1], 'x', 2)
fail();
}
factorOf([pos=1], [var=a], 2)


@Test(expected=UndefinedFillInVariableException.class)
'''Jack3:'''
public void testFactorOfWithMissingInput() {
factorOf([input=fillin1], 'x', 2)
Evaluator.getNumberResult("factorOf('2y^2', 'y', '[pos=42]')", exerciseVariableMap, fillInVariableMap);
fail();
factorOf([input=fillin1], [var=a], 2)
}
</syntaxhighlight>


===Hinweise===
===Hinweise===
* Wenn Variablen genutzt werden muss darauf geachtet werden, dass diese die Voraussetzung erfüllen.
* Wenn die Eingabe der Studierenden genutzt wird muss auch hier darauf geachtet werden, dass die Voraussetzungen erfüllt sind und ob diese an der Stelle genutzt werden können.


[[Kategorie:Evaluatorfunktion]]
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Ausdruckfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]

Aktuelle Version vom 16. April 2024, 13:52 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion factorOf gibt zu einem Polynom den Vorfaktor eines Summanden zu einer Potenz als numerischen Wert wieder. Sie erwartet drei Strings, der erste String ist das zu untersuchende Polynom, der zweite String ist die Variable und der dritte String ist der Exponent.

Syntax

factorOf(Ausdruck term, Zeichen variable, Ganzzahl exponent)

Parameter

  • term - das Polynom, das ausgewertet wird
  • variable - die gesuchte Variable
  • exponent - der Exponent der Variable

Return Value

  • Gibt einen numerischen Wert zurück.

Beispiele

Standardfälle

Jack2:
factorOf('x^3+2*x^2+3*x+1','x',2)    --> returns 2
Jack3:
factorOf(x^3+2*x^2+3*x+1,x,2)    --> returns 2

Benutzung mit Variablen

factorOf([var=a], [var=b], [var=c])

facorOf([var=a], x, 2)

Benutzung mit studentischen Eingaben

Jack2:
factorOf([pos=1], 'x', 2)

factorOf([pos=1], [var=a], 2)
Jack3:
factorOf([input=fillin1], 'x', 2)

factorOf([input=fillin1], [var=a], 2)

Hinweise

  • Wenn Variablen genutzt werden muss darauf geachtet werden, dass diese die Voraussetzung erfüllen.
  • Wenn die Eingabe der Studierenden genutzt wird muss auch hier darauf geachtet werden, dass die Voraussetzungen erfüllt sind und ob diese an der Stelle genutzt werden können.