GetFromOrderedSet: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=== Beschreibung ===
=== DEPRECTAED ===
Die Funktion ''getFromOrderedSet'' wählt das Element an einer bestimmten Stelle aus einer vorher sortierten Zahlenmenge aus. Dabei beginnt die Nummerierung der geordneten Elemente mit 0.
Diese Funktion wird im Evaluator 2 nicht mehr unterstützt. Die Funktion [[GetFromOrderedList]] bietet die gleiche Funktionalität.
 
==Zugehörige Evaluatoren==
Die Funktion erwartet eine Zahl, die Stelle an der das Element aus der Menge genommen wird, und einen String, die Menge selbst. Es wird eine Zahl zurückgegeben.
*'''MathEvaluator'''
 
=== Syntax ===
getFromOrderedSet(int stelle, String menge)
 
=== Parameter ===
* '''stelle''' - an der wievielten Stelle aus der geordneten Menge gezogen werden soll
* '''menge''' - die Menge, aus der gezogen wird
 
=== Return Value ===
* Gibt eine Zahl zurück
 
=== Beispiele ===
getFromOrderedSet('3','{1;2;3;4}')  --> returns 4
getFromOrderedSet('3','{3;2;4;1}')  --> returns 4
 
====JUnit Tests====
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
@Before
public void beforeTest() {
  placeFillInVariable(1, OMParser.parse("0"));
  placeFillInVariable(2, OMParser.parse("-4"));
  placeFillInVariable(3, OMParser.parse("20"));
 
  placeExerciseVariable("a", OMParser.parse("0"));
  placeExerciseVariable("b", OMParser.parse("-4"));
  placeExerciseVariable("c", OMParser.parse("20"));
}
 
@Test
public void testGetFromOrderedSet(){
  assertTrue(3 == getEvaluator().getNumberResult("getFromOrderedSet('1', '{2;3;5;6}')"));
  assertTrue(-2.6 == getEvaluator().getNumberResult("getFromOrderedSet('0', '{3;5;6;-2.6}')"));
  assertTrue(0 == getEvaluator().getNumberResult("getFromOrderedSet('1', '{-2.6;3;5;0}')"));
  assertTrue(5 == getEvaluator().getNumberResult("getFromOrderedSet(3, '{-2.6;3;5;0}')"));
  assertTrue(1 == getEvaluator().getNumberResult("getFromOrderedSet(0, '{1;1;1;1}')"));
  assertTrue(1 == getEvaluator().getNumberResult("getFromOrderedSet(3, '{1;1;1;1}')"));
}
@Test
public void testGetFromOrderedSetWithInput(){
  assertTrue(20 == getEvaluator().getNumberResult("getFromOrderedSet('2', '{[pos=3];4;5}')"));
  assertTrue(-4 == getEvaluator().getNumberResult("getFromOrderedSet('0', '{[pos=3];4;5;[pos=2]}')"));
  assertTrue(-4 == getEvaluator().getNumberResult("getFromOrderedSet('[pos=1]', '{[pos=3];4;5;[pos=2]}')"));
}
 
@Test
public void testGetFromOrderedSetWithVariables(){
  assertTrue(20 == getEvaluator().getNumberResult("getFromOrderedSet('2', '{[var=c];4;5}')"));
  assertTrue(-4 == getEvaluator().getNumberResult("getFromOrderedSet('0', '{[var=c];4;5;[var=b]}')"));
  assertTrue(-4 == getEvaluator().getNumberResult("getFromOrderedSet('[var=a]', '{[var=c];4;5;[var=b]}')"));
}
 
@Test
public void testGetFromOrderedSetWithOneRationalAndOneTextArgument(){
  assertTrue(4 == getEvaluator().getNumberResult("getFromOrderedSet(1, '{2;4;5}')"));
}
 
@Test
public void testGetFromOrderedSetWithTwoTextArguments(){
  assertTrue(4 == getEvaluator().getNumberResult("getFromOrderedSet('1', '{2;4;5}')"));
}
 
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testGetFromOrderedSetWithWrongInputCharacters(){
  getEvaluator().getNumberResult("getFromOrderedSet('1', '{a;b;c;d}')");
}
 
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testGetFromOrderedSetWithWrongInputCharacterIndex(){
  getEvaluator().getNumberResult("getFromOrderedSet('a', '{1;2;3;4}')");
}
 
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testGetFromOrderedSetWithWrongInputDoubleIndex(){
  getEvaluator().getNumberResult("getFromOrderedSet('5.5', '{1;2;3;4}')");
}
 
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testGetFromOrderedSetWithWrongInputComma(){
  getEvaluator().getNumberResult("getFromOrderedSet('3', '{1,5,3,7}')");
}
 
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testGetFromOrderedSetWithOneArgument(){
  getEvaluator().getNumberResult("getFromOrderedSet('7')");
}
 
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testGetFromOrderedSetWithThreeArguments(){
  getEvaluator().getNumberResult("getFromOrderedSet('4', '{3;1;-1}', '{12;-3}')");
}
 
@Test(expected=UndefinedFillInVariableException.class)
public void testGetFromOrderedSetWithMissingInput(){
  getEvaluator().getNumberResult("getFromOrderedSet('2', '{[pos=42];4;5}')");
}
 
@Test(expected=UndefinedExerciseVariableException.class)
public void testGetFromOrderedSetWithMissingExerciseVariable(){
  getEvaluator().getNumberResult("getFromOrderedSet('2', '{[var=j];4;5}')");
}
</syntaxhighlight>
 
=== Hinweise ===
* Egal in welcher Reihenfolge die Elemente in der Menge stehen, die Funktion ordnet sie zunächst der Größe nach und gibt dann das Element an der entsprechenden Stelle zurück.
* Mengen werden mit geschweiften Klammern beschrieben, die Elemente sind mit Semikolons zu trennen.
 
[[Kategorie:Evaluatorfunktion]]

Aktuelle Version vom 27. März 2024, 13:37 Uhr

DEPRECTAED

Diese Funktion wird im Evaluator 2 nicht mehr unterstützt. Die Funktion GetFromOrderedList bietet die gleiche Funktionalität.

Zugehörige Evaluatoren

  • MathEvaluator