EndsWith: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
 
(8 dazwischenliegende Versionen von 4 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.
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 von Variablen ====
==== Benutzung mit Variablen ====
endsWith('[pos=1]','ende')
endsWith('anfang','[var=a]')
endsWith('[var=b]','[pos=2]')


====JUnit Tests====
endsWith('anfang', [var=a])
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
@BeforeClass
public static void beforeTest() {
fillInVariableMap.put(7, OMConverter.toObject("<OMOBJ><OMSTR>testinput</OMSTR></OMOBJ>"));


exerciseVariableMap.put("g", OMConverter.toObject("<OMOBJ><OMSTR>testinput</OMSTR></OMOBJ>"));
==== Benutzung mit studentischen Eingaben ====
}


@Test
'''Jack2:'''
public void testEndsWith1() {
endsWith('[pos=1]','ende')
assertTrue(Evaluator.getBooleanResult("endsWith('1567','7')", exerciseVariableMap, fillInVariableMap));
endsWith('[var=b]','[pos=2]')
}


@Test
'''Jack3:'''
public void testEndsWith2() {
endsWith([input=fillin1], 'ende')
assertTrue(Evaluator.getBooleanResult("endsWith('hallo','o')", exerciseVariableMap, fillInVariableMap));
endsWith([var=b], [input=fillin2])
}
 
@Test
public void testEndsWith3() {
assertTrue(Evaluator.getBooleanResult("endsWith('hallo','hallo')", exerciseVariableMap, fillInVariableMap));
}
 
@Test
public void testEndsWith4() {
assertTrue(Evaluator.getBooleanResult("endsWith('1567.','.' )", exerciseVariableMap, fillInVariableMap));
}
 
@Test
public void testEndsWith5() {
assertTrue(Evaluator.getBooleanResult("endsWith('test ',' ')", exerciseVariableMap, fillInVariableMap));
}
 
@Test
public void testEndsWith6() {
assertTrue(Evaluator.getBooleanResult("endsWith('leererVergleich','')", exerciseVariableMap, fillInVariableMap));
}
 
@Test
public void testEndsWith7() {
assertFalse(Evaluator.getBooleanResult("endsWith('hallo','O')", exerciseVariableMap, fillInVariableMap));
}
 
@Test
public void testEndsWith8() {
assertFalse(Evaluator.getBooleanResult("endsWith('lo','hallo')", exerciseVariableMap, fillInVariableMap));
}
 
@Test
public void testEndsWithWithInput1() {
assertTrue(Evaluator.getBooleanResult("endsWith('[pos=7] ','')", exerciseVariableMap, fillInVariableMap));
}
 
@Test
public void testEndsWithWithInput2() {
assertTrue(Evaluator.getBooleanResult("endsWith('test01','[pos=1][pos=2]')", exerciseVariableMap, fillInVariableMap));
}
 
@Test
public void testEndsWithWithInput3() {
assertTrue(Evaluator.getBooleanResult("endsWith('[pos=7]','put')", exerciseVariableMap, fillInVariableMap));
}
 
@Test
public void testEndsWithWithVariables1() {
assertTrue(Evaluator.getBooleanResult("endsWith('[var=g] ','')", exerciseVariableMap, fillInVariableMap));
}
 
@Test
public void testEndsWithWithVariables2() {
assertTrue(Evaluator.getBooleanResult("endsWith('test01','[var=a][var=b]')", exerciseVariableMap, fillInVariableMap));
}
 
@Test
public void testEndsWithWithVariables3() {
assertTrue(Evaluator.getBooleanResult("endsWith('[var=g]','put')", exerciseVariableMap, fillInVariableMap));
}
 
@Test
public void testEndsWithWithExpressions() {
assertTrue(Evaluator.getBooleanResult("endsWith(endsWith('1', '1'), endsWith('2', '2'))", exerciseVariableMap, fillInVariableMap));
}
 
@Test(expected=ParserException.class)
public void testEndsWithWithWrongInputCharacter() {
Evaluator.getBooleanResult("endsWith(ab, ab)", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test
public void testEndsWithWithTwoRationalArguments() {
Evaluator.getBooleanResult("endsWith(2, 2)", exerciseVariableMap, fillInVariableMap);
}
 
@Test(expected=FunctionInvalidNumberOfArgumentsException.class)
public void testEndsWithWithOneArgument() {
Evaluator.getBooleanResult("endsWith('a')", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test(expected=FunctionInvalidNumberOfArgumentsException.class)
public void testEndsWithThreeArguments() {
Evaluator.getBooleanResult("endsWith('a', 'a', 'a')", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test(expected=UndefinedExerciseVariableException.class)
public void testEndsWithWithMissingExerciseVariable() {
Evaluator.getBooleanResult("endsWith('[var=j]', 'a')", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test(expected=UndefinedFillInVariableException.class)
public void testEndsWithWithMissingInput() {
Evaluator.getBooleanResult("endsWith('[pos=42]', 'a')", exerciseVariableMap, fillInVariableMap);
fail();
}
</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, 11: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.