@Before
public void beforeTest() {
placeFillInVariable(1, OMParser.parse("0"));
placeFillInVariable(2, OMParser.parse("-4"));
placeFillInVariable(3, OMParser.parse("20"));
placeExerciseVariable("a", OMParser.parse("0"));
placeExerciseVariable("b", OMParser.parse("-4"));
placeExerciseVariable("c", OMParser.parse("20"));
}
@Test
public void testGetFromOrderedSet(){
assertTrue(3 == getEvaluator().getNumberResult("getFromOrderedSet('1', '{2;3;5;6}')"));
assertTrue(-2.6 == getEvaluator().getNumberResult("getFromOrderedSet('0', '{3;5;6;-2.6}')"));
assertTrue(0 == getEvaluator().getNumberResult("getFromOrderedSet('1', '{-2.6;3;5;0}')"));
assertTrue(5 == getEvaluator().getNumberResult("getFromOrderedSet(3, '{-2.6;3;5;0}')"));
assertTrue(1 == getEvaluator().getNumberResult("getFromOrderedSet(0, '{1;1;1;1}')"));
assertTrue(1 == getEvaluator().getNumberResult("getFromOrderedSet(3, '{1;1;1;1}')"));
}
@Test
public void testGetFromOrderedSetWithInput(){
assertTrue(20 == getEvaluator().getNumberResult("getFromOrderedSet('2', '{[pos=3];4;5}')"));
assertTrue(-4 == getEvaluator().getNumberResult("getFromOrderedSet('0', '{[pos=3];4;5;[pos=2]}')"));
assertTrue(-4 == getEvaluator().getNumberResult("getFromOrderedSet('[pos=1]', '{[pos=3];4;5;[pos=2]}')"));
}
@Test
public void testGetFromOrderedSetWithVariables(){
assertTrue(20 == getEvaluator().getNumberResult("getFromOrderedSet('2', '{[var=c];4;5}')"));
assertTrue(-4 == getEvaluator().getNumberResult("getFromOrderedSet('0', '{[var=c];4;5;[var=b]}')"));
assertTrue(-4 == getEvaluator().getNumberResult("getFromOrderedSet('[var=a]', '{[var=c];4;5;[var=b]}')"));
}
@Test
public void testGetFromOrderedSetWithOneRationalAndOneTextArgument(){
assertTrue(4 == getEvaluator().getNumberResult("getFromOrderedSet(1, '{2;4;5}')"));
}
@Test
public void testGetFromOrderedSetWithTwoTextArguments(){
assertTrue(4 == getEvaluator().getNumberResult("getFromOrderedSet('1', '{2;4;5}')"));
}
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testGetFromOrderedSetWithWrongInputCharacters(){
getEvaluator().getNumberResult("getFromOrderedSet('1', '{a;b;c;d}')");
}
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testGetFromOrderedSetWithWrongInputCharacterIndex(){
getEvaluator().getNumberResult("getFromOrderedSet('a', '{1;2;3;4}')");
}
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testGetFromOrderedSetWithWrongInputDoubleIndex(){
getEvaluator().getNumberResult("getFromOrderedSet('5.5', '{1;2;3;4}')");
}
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testGetFromOrderedSetWithWrongInputComma(){
getEvaluator().getNumberResult("getFromOrderedSet('3', '{1,5,3,7}')");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testGetFromOrderedSetWithOneArgument(){
getEvaluator().getNumberResult("getFromOrderedSet('7')");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testGetFromOrderedSetWithThreeArguments(){
getEvaluator().getNumberResult("getFromOrderedSet('4', '{3;1;-1}', '{12;-3}')");
}
@Test(expected=UndefinedFillInVariableException.class)
public void testGetFromOrderedSetWithMissingInput(){
getEvaluator().getNumberResult("getFromOrderedSet('2', '{[pos=42];4;5}')");
}
@Test(expected=UndefinedExerciseVariableException.class)
public void testGetFromOrderedSetWithMissingExerciseVariable(){
getEvaluator().getNumberResult("getFromOrderedSet('2', '{[var=j];4;5}')");
}