GetNumerator: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(14 dazwischenliegende Versionen von 6 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 ===
  getNumerator(String bruch)
  getNumerator(Bruch bruch)


=== Parameter ===
=== Parameter ===
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 ====
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
getNumerator([var=a]/5)  --> returns [var=a]
@Before
public void beforeTest() {
getNumerator([var=b])   --> Die Variable b muss dann ein Bruch sein und die Funktion gibt den Zähler zurück.
  placeFillInVariable(1, OMParser.parse("0"));
  placeFillInVariable(2, OMParser.parse("20/3"));
   placeFillInVariable(3, OMParser.parse("10.3"));
  placeFillInVariable(4, OMParser.parse("-5"));
  placeFillInVariable(5, OMParser.parse("5"));
  placeExerciseVariable("a", OMParser.parse("0"));
  placeExerciseVariable("b", OMParser.parse("20/3"));
  placeExerciseVariable("c", OMParser.parse("10.3"));
  placeExerciseVariable("d", OMParser.parse("-5"));
  placeExerciseVariable("e", OMParser.parse("5"));
}


@Test
==== Benutzung mit studentischen Eingaben ====
public void testGetNumerator(){
'''Jack2:'''
  assertTrue(3 == (getEvaluator().getNumberResult("getNumerator(3/7)")));
getNumerator([pos=1]/4--> returns [pos=1]
  assertTrue(10 == (getEvaluator().getNumberResult("getNumerator(10/7)")));
  assertTrue(20.3 == (getEvaluator().getNumberResult("getNumerator(20.3/-10)")));
  assertTrue(3.2 == (getEvaluator().getNumberResult("getNumerator('-5/3.2')"))); //Error negative Numerator
  assertTrue(0 == (getEvaluator().getNumberResult("getNumerator('0/5')")));
   assertFalse(4 == (getEvaluator().getNumberResult("getNumerator('8/6')")));
}


@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
'''Jack3:'''
public void testGetNumeratorAtDefinitionZero(){
getNumerator([input=fillin1]/4)   --> returns [input=fillin1]
  getEvaluator().getNumberResult("getNumerator(3/0)");  //Result of 3/0 is undefined
}


@Test
=== Hinweise ===
public void testGetNumeratorWithInput(){
  assertTrue(20 == (getEvaluator().getNumberResult("getNumerator([pos=2])")));
  assertTrue(0 == (getEvaluator().getNumberResult("getNumerator([pos=1]/7)")));
  assertTrue(10.3 == (getEvaluator().getNumberResult("getNumerator([pos=3]/5)")));
  assertTrue(-5 == (getEvaluator().getNumberResult("getNumerator([pos=4]/[pos=3])"))); //Error negative Numerator
}
 
@Test
public void testGetNumeratorWithVariables(){
  assertTrue(20 == (getEvaluator().getNumberResult("getNumerator([var=b])")));
  assertTrue(0 == (getEvaluator().getNumberResult("getNumerator([var=a]/7)")));
  assertTrue(10.3 == (getEvaluator().getNumberResult("getNumerator([var=c]/5)")));
  assertTrue(-5 == (getEvaluator().getNumberResult("getNumerator([var=d]/[var=c])"))); //Error negative Numerator
}
 
@Test
public void testGetNumeratorWithExpressions(){
  assertTrue(5 == getEvaluator().getNumberResult("getNumerator((2+3)/4)"));
  assertTrue(3 == (getEvaluator().getNumberResult("getNumerator((getNumerator('3/2'))/4)")));
  assertTrue(5 == (getEvaluator().getNumberResult("getNumerator((getNumerator('[pos=5]/7'))/4)")));
}


@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
* 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 testGetNumeratorWithWrongInputPointNumber(){
* Die Funktion braucht einen Bruch als Eingabe, z.B. kann sie nicht 3 zurückgeben wenn man 3 eingibt.
  getEvaluator().getNumberResult("getNumerator(2.2)");
* Es macht Sinn [[getDenominator]] in Verbindung mit [[isFraction]] zu nutzen, z.B. <code>isFraction([input=field1]) && getNumerator([input=field1])==3</code>.
}
 
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testGetNumeratorWithWrongInputCharacter(){
  getEvaluator().getNumberResult("getNumerator(a/2)");
}
 
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testGetNumeratorWithTwoArguments(){
  getEvaluator().getNumberResult("getNumerator('7/3', '12/2')");
}
 
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testGetNumeratorWithThreeArguments(){
  getEvaluator().getNumberResult("getNumerator('1/1', '3/9', '7/8')");
}
 
@Test(expected=UndefinedExerciseVariableException.class)
public void testGetNumeratorWithMissingExerciseVariable(){
  getEvaluator().getNumberResult("getNumerator('[var=j]/3')");
}
 
@Test(expected=UndefinedFillInVariableException.class)
public void testGetNumeratorWithMissingInput(){
  getEvaluator().getNumberResult("getNumerator('[pos=42]/3')");
}
</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.