GetFromSet: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=== Beschreibung ===
=== DEPRECTAED ===
Die Funktion ''getFromSet'' wählt das Element an einer bestimmten Stelle aus einer gegebenen Menge aus. Dabei beginnt die Nummerierung der Elemente mit 0.
Diese Funktion wird im Evaluator 2 nicht mehr unterstützt. Die Funktion [[GetFromList]] 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 ===
getFromSet(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 einen String zurück
 
=== Beispiele ===
==== Standardfälle ====
getFromSet('1','{1;2;3}')  --> returns 2
getFromSet('2','{a;b;c}')  --> returns c
 
==== Benutzung von Variablen ====
getFromSet('[pos=1]','{1;2;3}')
getFromSet('1','{1;2;[var=a]}')
getFromSet('[var=b]','{1;2;[pos=1]}')
 
====JUnit Tests====
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
@Before
public void beforeTest() {
  placeFillInVariable(1, OMParser.parse("0"));
  placeFillInVariable(2, OMParser.parse("2"));
  placeFillInVariable(3, OMParser.parse("-2"));
  placeFillInVariable(4, OMParser.parse("e"));
 
  placeExerciseVariable("a", OMParser.parse("0"));
  placeExerciseVariable("b", OMParser.parse("2"));
  placeExerciseVariable("c", OMParser.parse("-2"));
  placeExerciseVariable("d", OMParser.parse("e"));
}
@Test
public void testGetFromSet(){
  assertTrue(2 == getEvaluator().getNumberResult("getFromSet('1', '{1;2;3}')"));
  assertTrue(getEvaluator().getBooleanResult("'c' == getFromSet('2', '{a;b;c}')"));
  assertTrue(42 == getEvaluator().getNumberResult("getFromSet('3', '{a;12;lalilu;42;-1}')"));
  assertTrue(getEvaluator().getBooleanResult(" '}' ==getFromSet('1', '{2;};3}')"));
  assertTrue(3 == getEvaluator().getNumberResult("getFromSet('2', '{2;};3}')"));
 
  assertTrue(2 == getEvaluator().getNumberResult("getFromSet(1, '{1;2;3}')"));
  assertTrue(getEvaluator().getBooleanResult("'c' == getFromSet(2, '{a;b;c}')"));
  assertTrue(42 == getEvaluator().getNumberResult("getFromSet(3, '{a;12;lalilu;42;-1}')"));
 
  assertTrue("'1,3,2,7'".equals(getEvaluator().getResultAsEvaluatorString("getFromSet('0', '{1,3,2,7}')")));
}
 
@Test
public void testGetFromSetWithInput(){
  assertTrue(0 == getEvaluator().getNumberResult("getFromSet('0', '{[pos=1];2;3}')"));
  assertTrue(-2 == getEvaluator().getNumberResult("getFromSet('[pos=1]', '{[pos=3];2;3}')"));
  assertTrue(getEvaluator().getBooleanResult("'e' == getFromSet('[pos=2]', '{a;b;[pos=4]}')"));
}
 
@Test
public void testGetFromSetWithVariables(){
  assertTrue(0 == getEvaluator().getNumberResult("getFromSet('0', '{[var=a];2;3}')"));
  assertTrue(-2 == getEvaluator().getNumberResult("getFromSet('[var=a]', '{[var=c];2;3}')"));
  assertTrue(getEvaluator().getBooleanResult("'e' == getFromSet('[var=b]', '{a;b;[var=d]}')"));
}
 
@Test
public void testGetFromSetWithPointNumber(){
  assertTrue(3.2 == getEvaluator().getNumberResult("getFromSet('0', '{3.2;2;3}')"));
  assertTrue(-2.2 == getEvaluator().getNumberResult("getFromSet('[var=a]', '{-2.2;2;3}')"));
  assertTrue(getEvaluator().getBooleanResult("'e.a' == getFromSet('2', '{a;b;e.a}')"));
}
 
@Test
public void testGetFromSetWithOneRationalAndOneTextArgument(){
  assertTrue(4 == getEvaluator().getNumberResult("getFromSet(1, '{2;4;5}')"));
}
 
@Test
public void testGetFromSetWithTwoTextArguments(){
  assertTrue(4 == getEvaluator().getNumberResult("getFromSet('1', '{2;4;5}')"));
}
 
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testGetFromSetWithOneArgument(){
  getEvaluator().getNumberResult("getFromSet('3')");
}
 
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testGetFromSetWithThreeArguments(){
  getEvaluator().getNumberResult("getFromSet('4', '{3;1;-7}', '{12;-12}')");
}
 
@Test(expected=UndefinedFillInVariableException.class)
public void testGetFromSetWithMissingInput(){
  getEvaluator().getNumberResult("getFromSet('2', '{[pos=42];4;5}')");
}
 
@Test(expected=UndefinedExerciseVariableException.class)
public void testGetFromSetWithMissingExerciseVariable(){
  getEvaluator().getNumberResult("getFromSet('2', '{[var=j];4;5}')");
}
</syntaxhighlight>
 
=== Hinweise ===
* Mengen werden mit geschweiften Klammern beschrieben, die Elemente sind mit Semikolons zu trennen.
 
[[Kategorie:Evaluatorfunktion]]

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

DEPRECTAED

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

Zugehörige Evaluatoren

  • MathEvaluator