CountBasicOperations
Zur Navigation springen
Zur Suche springen
Beschreibung
Die Funktion countBasicOperations zählt die Anzahl der Basisoperationen, die in einem Term verwendet werden. Die Funktion erwartet einen String und gibt eine Zahl zurück.
Syntax
countBasicOperations(Expression term)
Parameter
- term - Term dessen Basisoperationen gezählt werden
Return Value
- Gibt eine Ganzzahl zurück
Beispiele
countBasicOperations('2*3+5') --> returns 2
JUnit Tests
@Before
public void beforeTest() {
placeFillInVariable(1, OMParser.parse("1"));
placeExerciseVariable("a", OMParser.parse("1"));
}
@Test
public void testCountBasicOperations() {
assertTrue(4 == getEvaluator().getNumberResult("countBasicOperations('2+3*5/10-3')"));
assertTrue(0 == getEvaluator().getNumberResult("countBasicOperations('-2.1')"));
assertTrue(1 == getEvaluator().getNumberResult("countBasicOperations('-32+12')"));
assertTrue(2 == getEvaluator().getNumberResult("countBasicOperations('0+0-0')"));
assertTrue(1 == getEvaluator().getNumberResult("countBasicOperations('+', '-32+12-5-4/2-2*3')"));
assertTrue(3 == getEvaluator().getNumberResult("countBasicOperations('-', '-32+12-5-4/2-2*3')"));
assertTrue(1 == getEvaluator().getNumberResult("countBasicOperations('*', '-32+12-5-4/2-2*3')"));
assertTrue(1 == getEvaluator().getNumberResult("countBasicOperations('/', '-32+12-5-4/2-2*3')"));
}
@Test
public void testCountBasicOperationsWithInput() {
assertTrue(2 == getEvaluator().getNumberResult("countBasicOperations('+', '[pos=1]+[pos=1]+[pos=1]')"));
}
@Test
public void testCountBasicOperationsWithVariables() {
assertTrue(2 == getEvaluator().getNumberResult("countBasicOperations('*', '[var=a]*[var=a]*[var=a]')"));
}
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testCountBasicOperationsWithWrongInputTwoCharacters(){
getEvaluator().getNumberResult("countBasicOperations(a, a)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testCountBasicOperationsWithWrongInputOneRational(){
getEvaluator().getNumberResult("countBasicOperations(5)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testCountBasicOperationsWithTwoRationalArguments(){
getEvaluator().getNumberResult("countBasicOperations(2, 2)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testCountBasicOperationsThreeArguments(){
getEvaluator().getNumberResult("countBasicOperations('a', 'a', 'a')");
}
@Test(expected=UndefinedExerciseVariableException.class)
public void testCountBasicOperationsWithMissingExerciseVariable(){
getEvaluator().getNumberResult("countBasicOperations('[var=j]', '2+1')");
}
@Test(expected=UndefinedFillInVariableException.class)
public void testCountBasicOperationsWithMissingInput(){
getEvaluator().getNumberResult("countBasicOperations('[pos=42]', '4-1*8')");
}
Hinweise
- Basisoperationen sind hierbei Addition, Subtraktion, Multiplikation und Division.