EndsWith: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(11 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
=== Beschreibung ===
=== Beschreibung ===
Die Funktion ''endsWith'' prüft, ob eine Zeichenkette mit einer bestimmten Zeichenkette endet. Die Funktion erwartet zwei Strings und gibt einen Boolean zurück.
Die Funktion ''endsWith'' prüft, ob eine Zeichenkette mit einer bestimmten Zeichenkette endet. Die Funktion erwartet zwei Strings und gibt einen Boolean zurück.


=== Syntax ===
=== Syntax ===
  endsWith(String zeichenkette, String ende)
  endsWith([[Zeichenkette]] zeichenkette, [[Zeichenkette]] ende)


=== Parameter ===
=== Parameter ===
Zeile 14: Zeile 17:
=== Beispiele ===
=== Beispiele ===
==== Standardfälle ====
==== Standardfälle ====
  endsWith('hallo','lo')  --> returns true
  endsWith('hallo','lo')  --> returns ''true''
  endsWith('JACK','k')  --> returns false
  endsWith('JACK','k')  --> returns ''false''
 
==== Benutzung mit Variablen ====
 
endsWith('anfang', [var=a])
 
==== Benutzung mit studentischen Eingaben ====


==== Benutzung von Variablen ====
'''Jack2:'''
  endsWith('[pos=1]','ende')
  endsWith('[pos=1]','ende')
endsWith('anfang','[var=a]')
  endsWith('[var=b]','[pos=2]')
  endsWith('[var=b]','[pos=2]')


====JUnit Tests====
'''Jack3:'''
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
endsWith([input=fillin1], 'ende')
@Before
endsWith([var=b], [input=fillin2])
public void beforeTest() {
 
  placeFillInVariable(1, OMParser.parse("0"));
  placeFillInVariable(2, OMParser.parse("1"));
  placeFillInVariable(3, OMParser.parse("testinput"));
  placeExerciseVariable("a", OMParser.parse("0"));
  placeExerciseVariable("b", OMParser.parse("1"));
  placeExerciseVariable("c", OMParser.parse("testinput"));
}
@Test
public void testEndsWith() {
  assertTrue(getEvaluator().getBooleanResult("endsWith('1567','7')"));
  assertTrue(getEvaluator().getBooleanResult("endsWith('hallo','o')"));
  assertTrue(getEvaluator().getBooleanResult("endsWith('hallo','hallo')"));
  assertTrue(getEvaluator().getBooleanResult("endsWith('1567.','.' )"));
  assertTrue(getEvaluator().getBooleanResult("endsWith('test ',' ')"));
  assertTrue(getEvaluator().getBooleanResult("endsWith('leererVergleich','')"));
  assertFalse(getEvaluator().getBooleanResult("endsWith('hallo','O')"));
  assertFalse(getEvaluator().getBooleanResult("endsWith('lo','hallo')"));
}
@Test
public void testEndsWithWithInput() {
  assertTrue(getEvaluator().getBooleanResult("endsWith('[pos=3] ',' ')"));
  assertTrue(getEvaluator().getBooleanResult("endsWith('[pos=3]','put')"));
  assertTrue(getEvaluator().getBooleanResult("endsWith('test01','[pos=1][pos=2]')"));
}
@Test
public void testEndsWithWithVariables() {
  assertTrue(getEvaluator().getBooleanResult("endsWith('[var=c] ',' ')"));
  assertTrue(getEvaluator().getBooleanResult("endsWith('[var=c]','put')"));
  assertTrue(getEvaluator().getBooleanResult("endsWith('test01','[var=a][var=b]')"));
}
@Test
public void testEndsWithWithExpressions() {
  assertTrue(getEvaluator().getBooleanResult("endsWith('endsWith('1', '1')', 'endsWith('2', '2')')"));
}
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testEndsWithWithWrongInputCharacter(){
  getEvaluator().getBooleanResult("endsWith(a, a)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testEndsWithWithTwoRationalArguments(){
  getEvaluator().getBooleanResult("endsWith(2, 2)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testEndsWithWithOneArgument(){
  getEvaluator().getBooleanResult("endsWith('a')");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testEndsWithThreeArguments(){
  getEvaluator().getBooleanResult("endsWith('a', 'a', 'a')");
}
@Test(expected=UndefinedExerciseVariableException.class)
public void testEndsWithWithMissingExerciseVariable(){
  getEvaluator().getBooleanResult("endsWith('[var=j]', 'a')");
}
@Test(expected=UndefinedFillInVariableException.class)
public void testEndsWithWithMissingInput(){
  getEvaluator().getBooleanResult("endsWith('[pos=42]', 'a')");
}
</syntaxhighlight>
=== Hinweise ===
=== Hinweise ===
* Es wird zwischen Groß- und Kleinschreibung unterschieden.
* Es wird zwischen Groß- und Kleinschreibung unterschieden.
* Ggf. müssen bei Variablen die Anführungsstriche weggelassen werden.
* 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:Math-Evaluatorfunktion]][[Kategorie:Testfunktionen]][[Kategorie:Zeichenkettenfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]

Aktuelle Version vom 18. April 2024, 10:27 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion endsWith prüft, ob eine Zeichenkette mit einer bestimmten Zeichenkette endet. Die Funktion erwartet zwei Strings und gibt einen Boolean zurück.

Syntax

endsWith(Zeichenkette zeichenkette, Zeichenkette ende)

Parameter

  • zeichenkette - Zeichenkette, deren Ende geprüft wird
  • ende - Zeichenkette, die mit dem Ende der ersten abgeglichen wird

Return Value

  • Gibt einen Boolean zurück

Beispiele

Standardfälle

endsWith('hallo','lo')   --> returns true

endsWith('JACK','k')   --> returns false

Benutzung mit Variablen

endsWith('anfang', [var=a])

Benutzung mit studentischen Eingaben

Jack2:
endsWith('[pos=1]','ende')
endsWith('[var=b]','[pos=2]')
Jack3:
endsWith([input=fillin1], 'ende')
endsWith([var=b], [input=fillin2])

Hinweise

  • Es wird zwischen Groß- und Kleinschreibung unterschieden.
  • Ggf. müssen bei Variablen die Anführungsstriche weggelassen werden.
  • 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.