GetFromList: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
 
(20 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
=== Beschreibung ===
=== Beschreibung ===
Die Funktion ''getFromList'' wählt das Element an einer bestimmten Stelle aus einer gegebenen Menge aus. Dabei beginnt die Nummerierung der Elemente mit 0.
Die Funktion ''getFromList'' wählt das Element an einer bestimmten Stelle aus einer gegebenen [[List]] 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.  
Die Funktion erwartet eine Zahl, die Stelle an der das Element aus der [[List]] genommen wird, und eine [[List]], aus der das Element gezogen werden soll. Es wird das erwartete Element zurückgegeben.  


=== Syntax ===
=== Syntax ===
  getFromList([Integer] stelle, String menge)
  getFromList([[Ganzzahl]] stelle, [[List]] list)


=== Parameter ===
=== Parameter ===
* '''stelle''' - an der wievielten Stelle aus der geordneten Menge gezogen werden soll
* '''stelle''' - an der wievielten Stelle aus der Liste gezogen werden soll
* '''menge''' - die Menge, aus der gezogen wird
* '''list''' - die [[List]], aus der gezogen wird


=== Return Value ===
=== Return Value ===
* Gibt einen String zurück
* Gibt das Objekt aus der [[List]] zurück


=== Beispiele ===
=== Beispiele ===
==== Standardfälle ====
==== Standardfälle ====
getFromList('1','{1;2;3}')  --> returns 2
=====Integerliste=====
getFromList('2','{a;b;c}')  --> returns c
  getFromList(1, list(1,2,3))   --> returns 2
 
==== Benutzung von Variablen ====
getFromList('[pos=1]','{1;2;3}')
getFromList('1','{1;2;[var=a]}')
  getFromList('[var=b]','{1;2;[pos=1]}')
 
====JUnit Tests====
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
@BeforeClass
public static void beforeTest() {
OMOBJ zero = new OMOBJ();
OMOBJ two = new OMOBJ();
OMOBJ mtwo = new OMOBJ();
OMOBJ e = new OMOBJ();
e.setOMV(OMCreator.createOMV("e"));
zero.setOMI(OMCreator.createOMI(0));
two.setOMI(OMCreator.createOMI(2));
mtwo.setOMI(OMCreator.createOMI(-2));
 
fillIn.put(1, zero);
fillIn.put(2, two);
fillIn.put(3, mtwo);
fillIn.put(4, e);
 
exerVar.put("a", zero);
exerVar.put("b", two);
exerVar.put("c", mtwo);
exerVar.put("d", e);
}
 
@Test
public void testGetFromSet1() {
assertEquals(2, Evaluator.getNumberResult("getFromList('1', '{1;2;3}')", exerVar, fillIn), 0);
}
 
@Test
public void testGetFromSet2() {
assertEquals(true, Evaluator.getBooleanResult("'c' == getFromList('2', '{a;b;c}')", exerVar, fillIn));
}
 
@Test
public void testGetFromSet3() {
assertEquals(42, Evaluator.getNumberResult("getFromList('3', {a;12;'lalilu';42;-1})", exerVar, fillIn), 0);
}
 
@Test
public void testGetFromSet4() {
assertEquals(true, Evaluator.getBooleanResult(" '}' ==getFromList('1', {2;'}';3})", exerVar, fillIn));
}
 
@Test
public void testGetFromSet5() {
assertEquals(3, Evaluator.getNumberResult("getFromList('2', {2;'}';3})", exerVar, fillIn), 0);
}
 
@Test
public void testGetFromSet6() {
assertEquals(2, Evaluator.getNumberResult("getFromList('1', '{1;2;3}')", exerVar, fillIn), 0);
}
 
@Test
public void testGetFromSet7() {
assertEquals(true, Evaluator.getBooleanResult("'c' == getFromList('2', '{a;b;c}')", exerVar, fillIn));
}
 
@Test
public void testGetFromSet8() {
assertEquals(42, Evaluator.getNumberResult("getFromList('3', {a;12;'lalilu';42;-1})", exerVar, fillIn), 0);
}
 
@Test
public void testGetFromSet9() {
OMOBJ expected = new OMOBJ();
expected.setOMSTR(OMCreator.createOMSTR("1,3,2,7"));
assertEquals(expected, (Evaluator.evaluate("getFromList('0', {'1,3,2,7'})", exerVar, fillIn)));
}
 
@Test
public void testGetFromSetWithInput1() {
assertEquals(0, Evaluator.getNumberResult("getFromList('0', '{[pos=1];2;3}')", exerVar, fillIn), 0);
}
 
@Test
public void testGetFromSetWithInput2() {
assertEquals(-2, Evaluator.getNumberResult("getFromList('[pos=1]', '{[pos=3];2;3}')", exerVar, fillIn), 0);
}
 
@Test
public void testGetFromSetWithInput3() {
assertEquals(true,
Evaluator.getBooleanResult("'e' == getFromList('[pos=2]', '{a;b;[pos=4]}')", exerVar, fillIn));
}
 
@Test
public void testGetFromSetWithVariables1() {
assertEquals(0, Evaluator.getNumberResult("getFromList('0', '{[var=a];2;3}')", exerVar, fillIn), 0);
}
 
@Test
public void testGetFromSetWithVariables2() {
assertEquals(-2, Evaluator.getNumberResult("getFromList('[var=a]', '{[var=c];2;3}')", exerVar, fillIn), 0);
}
 
@Test
public void testGetFromSetWithVariables3() {
assertEquals(true,
Evaluator.getBooleanResult("'e' == getFromList('[var=b]', '{a;b;[var=d]}')", exerVar, fillIn));
}
 
@Test
public void testGetFromSetWithPointNumber1() {
assertEquals(3.2, Evaluator.getNumberResult("getFromList('0', '{3.2;2;3}')", exerVar, fillIn), 0);
}
 
@Test
public void testGetFromSetWithPointNumber2() {
assertEquals(-2.2, Evaluator.getNumberResult("getFromList('[var=a]', '{-2.2;2;3}')", exerVar, fillIn), 0);
}
 
@Test
public void testGetFromSetWithPointNumber3() {
assertEquals(true, Evaluator.getBooleanResult("'e.a' == getFromList('2', {a;b;'e.a'})", exerVar, fillIn));
}
 
@Test
public void testGetFromSetWithOneRationalAndOneTextArgument() {
assertEquals(4, Evaluator.getNumberResult("getFromList('1', '{2;4;5}')", exerVar, fillIn), 0);
}
 
@Test
public void testGetFromSetWithTwoTextArguments() {
assertEquals(4, Evaluator.getNumberResult("getFromList('1', '{2;4;5}')", exerVar, fillIn), 0);
}


@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
=====Stringliste=====
public void testGetFromSetWithOneArgument() {
getFromList(2, list('aa','bb','cc'))  --> returns cc
Evaluator.getNumberResult("getFromList('3')", exerVar, fillIn);
=====Zeichenliste=====
}
getFromList(2, list(a,b,c))  --> returns c


@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
==== Benutzung mit Variablen ====
public void testGetFromSetWithThreeArguments() {
getFromList(1, list(1,2,[var=a]))
Evaluator.getNumberResult("getFromList('4', '{3;1;-7}', '{12;-12}')", exerVar, fillIn);
}
getFromList(1, [var=b])


@Test(expected = UndefinedFillInVariableException.class)
==== Benutzung mit studentischen Eingaben ====
public void testGetFromSetWithMissingInput() {
'''Jack2:'''
Evaluator.getNumberResult("getFromList('2', '{[pos=42];4;5}')", exerVar, fillIn);
getFromList([pos=1], list(1,2,3))
}
getFromList([var=b], list(1,2,[pos=1]))


@Test(expected = UndefinedExerciseVariableException.class)
'''Jack3:'''
public void testGetFromSetWithMissingExerciseVariable() {
getFromList([input=fillin1], list(1,2,3))
Evaluator.getNumberResult("getFromList('2', '{[var=j];4;5}')", exerVar, fillIn);
}
getFromList([var=b], list(1,2,[input=fillin1]))
</syntaxhighlight>


=== Hinweise ===
=== Hinweise ===
* Mengen werden mit geschweiften Klammern beschrieben, die Elemente sind mit Semikolons zu trennen.
* Eine Liste wird mit der Funktion [[List]] erzeugt.
* 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:List]]
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Listfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]

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

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

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

Die Funktion erwartet eine Zahl, die Stelle an der das Element aus der List genommen wird, und eine List, aus der das Element gezogen werden soll. Es wird das erwartete Element zurückgegeben.

Syntax

getFromList(Ganzzahl stelle, List list)

Parameter

  • stelle - an der wievielten Stelle aus der Liste gezogen werden soll
  • list - die List, aus der gezogen wird

Return Value

  • Gibt das Objekt aus der List zurück

Beispiele

Standardfälle

Integerliste
getFromList(1, list(1,2,3))   --> returns 2
Stringliste
getFromList(2, list('aa','bb','cc'))   --> returns cc
Zeichenliste
getFromList(2, list(a,b,c))   --> returns c

Benutzung mit Variablen

getFromList(1, list(1,2,[var=a]))

getFromList(1, [var=b])

Benutzung mit studentischen Eingaben

Jack2:
getFromList([pos=1], list(1,2,3))

getFromList([var=b], list(1,2,[pos=1]))
Jack3:
getFromList([input=fillin1], list(1,2,3))

getFromList([var=b], list(1,2,[input=fillin1]))

Hinweise

  • Eine Liste wird mit der Funktion List erzeugt.
  • 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.