GetFromOrderedSet: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 16: | Zeile 16: | ||
=== Beispiele === | === Beispiele === | ||
getFromOrderedSet('3','{1;2;3;4}') --> returns 4 | 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 === | === Hinweise === |
Version vom 20. Juni 2017, 11:18 Uhr
Beschreibung
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.
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
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
@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}')");
}
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.