GetDenominator: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
 
(12 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
=== Beschreibung ===
=== Beschreibung ===
Mit der Funktion ''getDenominator'' erhält man den Nenner 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 ''getDenominator'' erhält man den Nenner eines Bruches. Die Funktion erwartet ein [[Objekt]], bei dem es sich um einen Bruch handeln muss, und gibt ein [[Objekt]] zurück.


=== Syntax ===
=== Syntax ===
  getDenominator(String bruch)
  getDenominator(Bruch bruch)


=== Parameter ===
=== Parameter ===
Zeile 9: Zeile 12:


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


=== Beispiele ===
=== Beispiele ===
getDenominator('3/5')  --> returns 5
==== Standardfälle ====
 
getDenominator(3/5)   --> returns 5
====JUnit Tests====
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
getDenominator((5+3)/list(1,2))   --> returns {1,2}
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
@BeforeClass
public static void beforeTest() throws FunctionNotImplementedException, UndefinedFillInVariableException,
UndefinedExerciseVariableException, ParserException, ErroneousFillInVariableException, ErroneousExerciseVariableException {
getDenominatorFillInVariableMap.put(1, ExpressionParser.parse("0", null, null));
getDenominatorFillInVariableMap.put(2, ExpressionParser.parse("20/3", null, null));
getDenominatorFillInVariableMap.put(3, ExpressionParser.parse("10.3", null, null));
getDenominatorFillInVariableMap.put(4, ExpressionParser.parse("-5", null, null));
getDenominatorFillInVariableMap.put(5, ExpressionParser.parse("5", null, null));
 
getDenominatorExerciseVariableMap.put("a", ExpressionParser.parse("0", null, null));
getDenominatorExerciseVariableMap.put("b", ExpressionParser.parse("20/3", null, null));
getDenominatorExerciseVariableMap.put("c", ExpressionParser.parse("10.3", null, null));
getDenominatorExerciseVariableMap.put("d", ExpressionParser.parse("-5", null, null));
getDenominatorExerciseVariableMap.put("e", ExpressionParser.parse("5", null, null));
}
 
@Test
public void testGetDenominator1() {
assertEquals(7, Evaluator.getNumberResult("getDenominator(3/7)", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap), 0.0);
}
 
@Test
public void testGetDenominator2() {
assertEquals(7, Evaluator.getNumberResult("getDenominator(10/7)", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap), 0.0);
}
 
@Test
public void testGetDenominator3() {
assertEquals(-10, Evaluator.getNumberResult("getDenominator(20/-10)", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap),
0.0);
}
 
@Test
public void testGetDenominator4() {
assertEquals(3.2, Evaluator.getNumberResult("getDenominator('-5/3.2')", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap),
0.0);
}
 
@Test
public void testGetDenominator5() {
assertEquals(5, Evaluator.getNumberResult("getDenominator('0/5')", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap),
0.0);
}
 
@Test
public void testGetDenominator6() {
assertNotEquals(3, Evaluator.getNumberResult("getDenominator('-5/6')", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap),
0.0);
}
 
@Test
public void testGetDenominator7() {
assertNotEquals(2, Evaluator.getNumberResult("getDenominator('8/4')", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap),
0.0);
}
 
@Test(expected = FunctionInvalidArgumentException.class)
public void testGetDenominatorAtDefinitionZero() {
Evaluator.getNumberResult("getDenominator(3/0)", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap); // Result of 3/0 is
// undefined
}
 
@Test
public void testGetDenominatorWithInput1() {
assertEquals(3, Evaluator.getNumberResult("getDenominator([pos=2])", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap),
0.0);
}
 
@Test
public void testGetDenominatorWithInput2() {
assertEquals(7, Evaluator.getNumberResult("getDenominator([pos=1]/7)", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap),
0.0);
}
 
@Test
public void testGetDenominatorWithInput3() {
assertEquals(10.3,
Evaluator.getNumberResult("getDenominator(5/[pos=3])", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap), 0.0);
}
 
@Test
public void testGetDenominatorWithInput4() {
assertEquals(5,
Evaluator.getNumberResult("getDenominator([pos=3]/[pos=5])", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap),
0.0);
}
 
@Test
public void testGetDenominatorWithInput5() {
assertEquals(-5,
Evaluator.getNumberResult("getDenominator([pos=3]/[pos=4])", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap),
0.0);
}
 
@Test
public void testGetDenominatorWithVariables1() {
assertEquals(3, Evaluator.getNumberResult("getDenominator([var=b])", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap),
0.0);
}
 
@Test
public void testGetDenominatorWithVariables2() {
assertEquals(7, Evaluator.getNumberResult("getDenominator([var=a]/7)", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap),
0.0);
}
 
@Test
public void testGetDenominatorWithVariables3() {
assertEquals(10.3,
Evaluator.getNumberResult("getDenominator(5/[var=c])", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap), 0.0);
}
 
@Test
public void testGetDenominatorWithVariables4() {
assertEquals(5,
Evaluator.getNumberResult("getDenominator([var=c]/[var=e])", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap),
0.0);
}
 
@Test
public void testGetDenominatorWithVariables5() {
assertEquals(-5,
Evaluator.getNumberResult("getDenominator([var=c]/[var=d])", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap),
0.0);
}
 
@Test
public void testGetDenominatorWithExpressions1() {
assertEquals(2, Evaluator.getNumberResult("getDenominator(4/(getDenominator('3/2')))", getDenominatorExerciseVariableMap,
getDenominatorFillInVariableMap), 0.0);
}
 
@Test
public void testGetDenominatorWithExpressions2() {
assertEquals(5, Evaluator.getNumberResult("getDenominator(4/(getDenominator(3/[pos=5])))",
getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap), 0.0);
}
 
@Test(expected = FunctionInvalidArgumentTypeException.class)
public void testGetDenominatorWithWrongInputPointNumber() {
Evaluator.getNumberResult("getDenominator('7.2')", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap);
fail();
}
 
@Test(expected = FunctionInvalidArgumentTypeException.class)
public void testGetDenominatorWithWrongInputCharacter() {
Evaluator.getNumberResult("getDenominator('ab/3.3')", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap);
fail();
}
 
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testGetDenominatorWithTwoArguments() {
Evaluator.getNumberResult("getDenominator('7/3', '12/2')", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap);
fail();
}


@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
==== Benutzung mit Variablen ====
public void testGetDenominatorWithThreeArguments() {
getDenominator([var=a])
Evaluator.getNumberResult("getDenominator('1/1', '3/9', '7/8')", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap);
fail();
}


@Test(expected = UndefinedExerciseVariableException.class)
==== Benutzung mit studentischen Eingaben ====
public void testGetDenominatorWithMissingExerciseVariable() {
'''Jack2:'''
Evaluator.getNumberResult("getDenominator('[var=j]/3')", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap);
getDenominator([pos=1])
fail();
}


@Test(expected = UndefinedFillInVariableException.class)
'''Jack3:'''
public void testGetDenominatorWithMissingInput() {
getDenominator([input=fillin1])
Evaluator.getNumberResult("getDenominator('[pos=42]/3')", getDenominatorExerciseVariableMap, getDenominatorFillInVariableMap);
fail();
}
</syntaxhighlight>


=== Hinweise ===
=== Hinweise ===
* Es finden hier keine mathematischen Berechnungen oder Überprüfungen statt. Solange diese Methode einen Bruch als Parameter übergeben bekommt wird auch der Nenner zurückgegeben, auch wenn der Nenner mathematisch nicht sinnvoll ist(vgl. Beispiele).
* Die Funktion braucht einen Bruch als Eingabe, z.B. kann sie nicht 1 zurückgeben wenn man 7 eingibt.
* Es macht Sinn <code>getDenominator</code> in Verbindung mit <code>[[isFraction]]</code> zu nutzen, z.B. <code>isFraction([input=field1]) && getDenominator([input=field1])==5</code>.
* 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:JACK2]][[Kategorie:JACK3]]

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

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

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

Syntax

getDenominator(Bruch bruch)

Parameter

  • bruch - der Bruch, dessen Nenner bestimmt werden soll

Return Value

Beispiele

Standardfälle

getDenominator(3/5)   --> returns 5

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

Benutzung mit Variablen

getDenominator([var=a])

Benutzung mit studentischen Eingaben

Jack2:
getDenominator([pos=1])
Jack3:
getDenominator([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 Nenner zurückgegeben, auch wenn der Nenner mathematisch nicht sinnvoll ist(vgl. Beispiele).
  • Die Funktion braucht einen Bruch als Eingabe, z.B. kann sie nicht 1 zurückgeben wenn man 7 eingibt.
  • Es macht Sinn getDenominator in Verbindung mit isFraction zu nutzen, z.B. isFraction([input=field1]) && getDenominator([input=field1])==5.
  • 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.