GetNumerator: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
 
(11 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
=== Beschreibung ===
=== Beschreibung ===
Mit der Funktion ''getNumerator'' erhält man den Zähler eines Bruches. Die Funktion erwartet einen String, bei dem es sich um einen Bruch handeln muss, und gibt eine Zahl zurück.
Mit der Funktion ''getNumerator'' erhält man den Zähler eines Bruches. Die Funktion erwartet ein [[Objekt]], bei dem es sich um einen Bruch handeln muss, und gibt ein [[Objekt]] zurück.


=== Syntax ===
=== Syntax ===
Zeile 9: Zeile 12:


=== Return Value ===
=== Return Value ===
* Gibt eine Ganzzahl zurück
* Gibt ein [[Objekt]] zurück


=== Beispiele ===
=== Beispiele ===
  getNumerator('3/5')  --> returns 3
==== Standardfälle ====
  getNumerator(3/5)  --> returns 3
getNumerator((list(2,3)+1)/3)  --> returns {2,3}+1


====JUnit Tests====
==== Benutzung mit Variablen ====
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
getNumerator([var=a]/5)  --> returns [var=a]
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
@BeforeClass
getNumerator([var=b])    --> Die Variable b muss dann ein Bruch sein und die Funktion gibt den Zähler zurück.
public static void beforeTest() throws FunctionNotImplementedException, UndefinedFillInVariableException,
UndefinedExerciseVariableException, ParserException, ErroneousFillInVariableException,
ErroneousExerciseVariableException {
getNumeratorFillInVariableMap.put(1, ExpressionParser.parse("0", null, null));
getNumeratorFillInVariableMap.put(2, ExpressionParser.parse("20/3", null, null));
getNumeratorFillInVariableMap.put(3, ExpressionParser.parse("10.3", null, null));
getNumeratorFillInVariableMap.put(4, ExpressionParser.parse("-5", null, null));
getNumeratorFillInVariableMap.put(5, ExpressionParser.parse("5", null, null));


getNumeratorExerciseVariableMap.put("a", ExpressionParser.parse("0", null, null));
==== Benutzung mit studentischen Eingaben ====
getNumeratorExerciseVariableMap.put("b", ExpressionParser.parse("20/3", null, null));
'''Jack2:'''
getNumeratorExerciseVariableMap.put("c", ExpressionParser.parse("10.3", null, null));
getNumerator([pos=1]/4)   --> returns [pos=1]
getNumeratorExerciseVariableMap.put("d", ExpressionParser.parse("-5", null, null));
getNumeratorExerciseVariableMap.put("e", ExpressionParser.parse("5", null, null));
}


@Test
'''Jack3:'''
public void testGetNumerator1() {
getNumerator([input=fillin1]/4)   --> returns [input=fillin1]
assertEquals(3, Evaluator.getNumberResult("getNumerator(3/7)", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}


@Test
=== Hinweise ===
public void testGetNumerator2() {
assertEquals(10, Evaluator.getNumberResult("getNumerator(10/7)", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}
 
@Test
public void testGetNumerator3() {
assertEquals(20.3, Evaluator.getNumberResult("getNumerator(20.3/-10)", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}


@Test
* Es finden hier keine mathematischen Berechnungen oder Überprüfungen statt. Solange diese Methode einen Bruch als Parameter übergeben bekommt wird auch der Zähler zurückgegeben, auch wenn der Zähler mathematisch nicht sinnvoll ist(vgl. Beispiele).
public void testGetNumerator4() {
* Die Funktion braucht einen Bruch als Eingabe, z.B. kann sie nicht 3 zurückgeben wenn man 3 eingibt.
assertEquals(0, Evaluator.getNumberResult("getNumerator('0/5')", getNumeratorExerciseVariableMap,
* Es macht Sinn [[getDenominator]] in Verbindung mit [[isFraction]] zu nutzen, z.B. <code>isFraction([input=field1]) && getNumerator([input=field1])==3</code>.
getNumeratorFillInVariableMap), 0.0);
}
 
@Test
public void testGetNumerator5() {
assertNotEquals(4, Evaluator.getNumberResult("getNumerator('8/6')", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}
 
@Test
public void testGetNumerator6() {
assertEquals(-5, Evaluator.getNumberResult("getNumerator(-5/3.2)", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}
 
@Test(expected = FunctionInvalidArgumentException.class)
public void testGetNumeratorAtDefinitionZero() {
Evaluator.getNumberResult("getNumerator(3/0)", getNumeratorExerciseVariableMap, getNumeratorFillInVariableMap); // Result
// //
// undefined
}
 
@Test
public void testGetNumeratorWithInput1() {
assertEquals(20, Evaluator.getNumberResult("getNumerator([pos=2])", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}
 
@Test
public void testGetNumeratorWithInput2() {
assertEquals(0, Evaluator.getNumberResult("getNumerator([pos=1]/7)", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}
 
@Test
public void testGetNumeratorWithInput3() {
assertEquals(10.3, Evaluator.getNumberResult("getNumerator([pos=3]/5)", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}
 
@Test
public void testGetNumeratorWithInput4() {
assertEquals(-5, Evaluator.getNumberResult("getNumerator([pos=4]/[pos=3])", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}
 
@Test
public void testGetNumeratorWithVariables1() {
assertEquals(20, Evaluator.getNumberResult("getNumerator([var=b])", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}
 
@Test
public void testGetNumeratorWithVariables2() {
assertEquals(0, Evaluator.getNumberResult("getNumerator([var=a]/7)", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}
 
@Test
public void testGetNumeratorWithVariables3() {
assertEquals(10.3, Evaluator.getNumberResult("getNumerator([var=c]/5)", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}
 
@Test
public void testGetNumeratorWithVariables4() {
assertEquals(-5, Evaluator.getNumberResult("getNumerator([var=d]/[var=c])", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}
 
@Test
public void testGetNumeratorWithExpressions1() {
assertEquals(5, Evaluator.getNumberResult("getNumerator((2+3)/4)", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap), 0.0);
}
 
@Test
public void testGetNumeratorWithExpressions2() {
assertEquals(3, Evaluator.getNumberResult("getNumerator((getNumerator('3/2'))/4)",
getNumeratorExerciseVariableMap, getNumeratorFillInVariableMap), 0.0);
}
 
@Test
public void testGetNumeratorWithExpressions3() {
assertEquals(5, Evaluator.getNumberResult("getNumerator((getNumerator('[pos=5]/7'))/4)",
getNumeratorExerciseVariableMap, getNumeratorFillInVariableMap), 0.0);
}
 
@Test(expected = FunctionInvalidArgumentTypeException.class)
public void testGetNumeratorWithWrongInputPointNumber() {
Evaluator.getNumberResult("getNumerator(2.2)", getNumeratorExerciseVariableMap, getNumeratorFillInVariableMap);
fail();
}
 
@Test(expected = ParserException.class)
public void testGetNumeratorWithWrongInputCharacter() {
Evaluator.getNumberResult("getNumerator(ab/2)", getNumeratorExerciseVariableMap, getNumeratorFillInVariableMap);
fail();
}
 
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testGetNumeratorWithTwoArguments() {
Evaluator.getNumberResult("getNumerator('7/3', '12/2')", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap);
fail();
}
 
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testGetNumeratorWithThreeArguments() {
Evaluator.getNumberResult("getNumerator('1/1', '3/9', '7/8')", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap);
fail();
}
 
@Test(expected = UndefinedExerciseVariableException.class)
public void testGetNumeratorWithMissingExerciseVariable() {
Evaluator.getNumberResult("getNumerator('[var=j]/3')", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap);
fail();
}
 
@Test(expected = UndefinedFillInVariableException.class)
public void testGetNumeratorWithMissingInput() {
Evaluator.getNumberResult("getNumerator('[pos=42]/3')", getNumeratorExerciseVariableMap,
getNumeratorFillInVariableMap);
fail();
}
</syntaxhighlight>
 
=== Hinweise ===


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

Aktuelle Version vom 17. April 2024, 07:49 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Mit der Funktion getNumerator erhält man den Zähler eines Bruches. Die Funktion erwartet ein Objekt, bei dem es sich um einen Bruch handeln muss, und gibt ein Objekt zurück.

Syntax

getNumerator(Bruch bruch)

Parameter

  • bruch - der Bruch, dessen Zähler bestimmt werden soll

Return Value

Beispiele

Standardfälle

getNumerator(3/5)   --> returns 3

getNumerator((list(2,3)+1)/3)   --> returns {2,3}+1

Benutzung mit Variablen

getNumerator([var=a]/5)   --> returns [var=a]

getNumerator([var=b])    --> Die Variable b muss dann ein Bruch sein und die Funktion gibt den Zähler zurück.

Benutzung mit studentischen Eingaben

Jack2:
getNumerator([pos=1]/4)   --> returns [pos=1]
Jack3:
getNumerator([input=fillin1]/4)   --> returns [input=fillin1]

Hinweise

  • Es finden hier keine mathematischen Berechnungen oder Überprüfungen statt. Solange diese Methode einen Bruch als Parameter übergeben bekommt wird auch der Zähler zurückgegeben, auch wenn der Zähler mathematisch nicht sinnvoll ist(vgl. Beispiele).
  • Die Funktion braucht einen Bruch als Eingabe, z.B. kann sie nicht 3 zurückgeben wenn man 3 eingibt.
  • Es macht Sinn getDenominator in Verbindung mit isFraction zu nutzen, z.B. isFraction([input=field1]) && getNumerator([input=field1])==3.