GetFromSet: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 25: Zeile 25:


====JUnit Tests====
====JUnit Tests====
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
@Before  
@Before  
public void beforeTest() {
public void beforeTest() {

Version vom 27. Juni 2017, 10:09 Uhr

Beschreibung

Die Funktion getFromSet wählt das Element an einer bestimmten Stelle aus einer gegebenen Menge aus. Dabei beginnt die Nummerierung der Elemente mit 0.

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.

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

[Anzeigen]

@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}')");
}

Hinweise

  • Mengen werden mit geschweiften Klammern beschrieben, die Elemente sind mit Semikolons zu trennen.