IndexOf: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 22: | Zeile 22: | ||
indexOf('text','[var=a]',0) | indexOf('text','[var=a]',0) | ||
indexOf('[var=b]','x',[pos=2]) | indexOf('[var=b]','x',[pos=2]) | ||
====JUnit Tests==== | |||
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed"> | |||
@Before | |||
public void beforeTest() { | |||
placeFillInVariable(1, OMParser.parse("str")); | |||
placeFillInVariable(2, OMParser.parse("anotherstring")); | |||
placeFillInVariable(3, OMParser.parse("2")); | |||
placeExerciseVariable("a", OMParser.parse("str")); | |||
placeExerciseVariable("b", OMParser.parse("anotherstring")); | |||
placeExerciseVariable("c", OMParser.parse("2")); | |||
} | |||
@Test | |||
public void testIndexOf(){ | |||
assertTrue(3 == getEvaluator().getNumberResult("indexOf('abcdef','def', 0)")); | |||
assertTrue(4 == getEvaluator().getNumberResult("indexOf('abc def','def', 2)")); | |||
assertTrue(4 == getEvaluator().getNumberResult("indexOf('abc_def','def', 3)")); | |||
assertTrue(4 == getEvaluator().getNumberResult("indexOf('2 c 4e6','4e6', 1)")); | |||
assertTrue(-1 == getEvaluator().getNumberResult("indexOf('2c4e 6','4e6', -1)")); | |||
} | |||
@Test | |||
public void testIndexOfWithInput(){ | |||
assertTrue(7 == getEvaluator().getNumberResult("indexOf('[pos=2]','str', 3)")); | |||
assertTrue(7 == getEvaluator().getNumberResult("indexOf('[pos=2]','[pos=1]', 2)")); | |||
assertTrue(7 == getEvaluator().getNumberResult("indexOf('[pos=2]','[pos=1]', [pos=3])")); | |||
} | |||
@Test | |||
public void testIndexOfWithVariables(){ | |||
assertTrue(7 == getEvaluator().getNumberResult("indexOf('[var=b]','str', 3)")); | |||
assertTrue(7 == getEvaluator().getNumberResult("indexOf('[var=b]','[var=a]', 2)")); | |||
assertTrue(7 == getEvaluator().getNumberResult("indexOf('[var=b]','[var=a]', [var=c])")); | |||
} | |||
@Test(expected=InvalidEvaluatorFunctionArgumentException.class) | |||
public void testIndexOfWithWrongInputPointNumber(){ | |||
getEvaluator().getNumberResult("indexOf('abcd5', 5.1, 1)"); | |||
} | |||
@Test(expected=InvalidEvaluatorFunctionArgumentException.class) | |||
public void testIndexOfWithWrongInputCharacter(){ | |||
getEvaluator().getNumberResult("indexOf('abcd5', a, 1)"); | |||
} | |||
@Test(expected=UnsupportedEvaluatorFunctionException.class) | |||
public void testIndexOfWithTwoRationalAndOneTextArguments(){ | |||
getEvaluator().getNumberResult("indexOf('abcd5', 5, 1)"); | |||
} | |||
@Test(expected=UnsupportedEvaluatorFunctionException.class) | |||
public void testIndexOfWithThreeRationalArguments(){ | |||
getEvaluator().getNumberResult("indexOf(5, 5, 0)"); | |||
} | |||
@Test(expected=UnsupportedEvaluatorFunctionException.class) | |||
public void testIndexOfWithThreeTextArguments(){ | |||
getEvaluator().getNumberResult("indexOf('str', 'str', '0')"); | |||
} | |||
@Test(expected=UnsupportedEvaluatorFunctionException.class) | |||
public void testIndexOfWithOneArgument(){ | |||
getEvaluator().getNumberResult("indexOf(1)"); | |||
} | |||
@Test(expected=UnsupportedEvaluatorFunctionException.class) | |||
public void testIndexOfWithTwoArguments(){ | |||
getEvaluator().getNumberResult("indexOf('string', 1)"); | |||
} | |||
@Test(expected=UndefinedExerciseVariableException.class) | |||
public void testIndexOfWithMissingExerciseVariable(){ | |||
getEvaluator().getNumberResult("indexOf('[var=j]', 'str', 2)"); | |||
} | |||
@Test(expected=UndefinedFillInVariableException.class) | |||
public void testIndexOfWithMissingInput(){ | |||
getEvaluator().getNumberResult("indexOf('[pos=42]', 'str', 2)"); | |||
} | |||
</syntaxhighlight> | |||
=== Hinweise === | === Hinweise === |
Version vom 20. Juni 2017, 15:45 Uhr
Beschreibung
Die Funktion indexOf bestimmt die Position, an der eine Zeichenkette oder ein einzelnes Zeichen innerhalb einer anderen Zeichenkette das erste Mal vorkommt. Außerdem muss angegeben werden, ab welcher Stelle gesucht werden soll. Die Funktion erwartet zwei Strings, die zu durchsuchende und die zu suchende Zeichenkette, und eine Ganzzahl, ab welcher Stelle die Suche beginnen soll. Es wird eine Ganzzahl zurückgegeben.
Syntax
indexOf(String zeichenkette, String muster, int position)
Parameter
- zeichenkette - Zeichenkette in dem gesucht wird
- muster - Zeichenkette, die innnerhalb der ersten gesucht wird
- position - Startpositition der Suche
Return Value
- Gibt eine Ganzzahl zurück
Beispiele
Standardfälle
indexOf('Hello World!','o',0) --> returns 4 indexOf('Hello World!','o',6) --> returns 7
Benutzung von Variablen
indexOf('[pos=1]','x',0) indexOf('text','[var=a]',0) indexOf('[var=b]','x',[pos=2])
JUnit Tests
@Before
public void beforeTest() {
placeFillInVariable(1, OMParser.parse("str"));
placeFillInVariable(2, OMParser.parse("anotherstring"));
placeFillInVariable(3, OMParser.parse("2"));
placeExerciseVariable("a", OMParser.parse("str"));
placeExerciseVariable("b", OMParser.parse("anotherstring"));
placeExerciseVariable("c", OMParser.parse("2"));
}
@Test
public void testIndexOf(){
assertTrue(3 == getEvaluator().getNumberResult("indexOf('abcdef','def', 0)"));
assertTrue(4 == getEvaluator().getNumberResult("indexOf('abc def','def', 2)"));
assertTrue(4 == getEvaluator().getNumberResult("indexOf('abc_def','def', 3)"));
assertTrue(4 == getEvaluator().getNumberResult("indexOf('2 c 4e6','4e6', 1)"));
assertTrue(-1 == getEvaluator().getNumberResult("indexOf('2c4e 6','4e6', -1)"));
}
@Test
public void testIndexOfWithInput(){
assertTrue(7 == getEvaluator().getNumberResult("indexOf('[pos=2]','str', 3)"));
assertTrue(7 == getEvaluator().getNumberResult("indexOf('[pos=2]','[pos=1]', 2)"));
assertTrue(7 == getEvaluator().getNumberResult("indexOf('[pos=2]','[pos=1]', [pos=3])"));
}
@Test
public void testIndexOfWithVariables(){
assertTrue(7 == getEvaluator().getNumberResult("indexOf('[var=b]','str', 3)"));
assertTrue(7 == getEvaluator().getNumberResult("indexOf('[var=b]','[var=a]', 2)"));
assertTrue(7 == getEvaluator().getNumberResult("indexOf('[var=b]','[var=a]', [var=c])"));
}
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testIndexOfWithWrongInputPointNumber(){
getEvaluator().getNumberResult("indexOf('abcd5', 5.1, 1)");
}
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testIndexOfWithWrongInputCharacter(){
getEvaluator().getNumberResult("indexOf('abcd5', a, 1)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testIndexOfWithTwoRationalAndOneTextArguments(){
getEvaluator().getNumberResult("indexOf('abcd5', 5, 1)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testIndexOfWithThreeRationalArguments(){
getEvaluator().getNumberResult("indexOf(5, 5, 0)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testIndexOfWithThreeTextArguments(){
getEvaluator().getNumberResult("indexOf('str', 'str', '0')");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testIndexOfWithOneArgument(){
getEvaluator().getNumberResult("indexOf(1)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testIndexOfWithTwoArguments(){
getEvaluator().getNumberResult("indexOf('string', 1)");
}
@Test(expected=UndefinedExerciseVariableException.class)
public void testIndexOfWithMissingExerciseVariable(){
getEvaluator().getNumberResult("indexOf('[var=j]', 'str', 2)");
}
@Test(expected=UndefinedFillInVariableException.class)
public void testIndexOfWithMissingInput(){
getEvaluator().getNumberResult("indexOf('[pos=42]', 'str', 2)");
}
Hinweise
- Die Nummerierung innerhalb der Zeichenkette beginnt mit 0.
- Sollte die gesuchte Zeichenkette nicht gefunden werden, gibt die Funktion -1 zurück.