@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)");
}