Max
Zur Navigation springen
Zur Suche springen
Beschreibung
Die Funktion max ermittelt den größten Wert zweier Zahlen. Die Funktion erwartet zwei zu vergleichende Zahlen und gibt die größte Zahl zurück.
Syntax
max(float zahl1, float zahl2)
Parameter
- zahl1 - der erste zu vergleichende Wert
- zahl2 - der zweite zu vergleichende Wert
Return Value
- Gibt die größte Zahl zurück
Beispiele
Standardfälle
max(12,3) --> returns 12 max(9.568,100) --> returns 100
Benutzung mit Variablen
max([pos=1],[pos=3]) max([var=a],[var=b])
JUnit Tests
@Before
public void beforeTest(){
placeExerciseVariable("a", OMParser.parse("1"));
placeExerciseVariable("b", OMParser.parse("2"));
placeExerciseVariable("c", OMParser.parse("-1"));
placeFillInVariable(1, OMParser.parse("1"));
placeFillInVariable(2, OMParser.parse("2"));
placeFillInVariable(3, OMParser.parse("-1"));
}
@Test
public void testMax(){
assertTrue(2 == getEvaluator().getNumberResult("max(1, 2)"));
assertTrue(3 == getEvaluator().getNumberResult("max(3, 2)"));
assertTrue(1 == getEvaluator().getNumberResult("max(1, 1)"));
assertTrue(0 == getEvaluator().getNumberResult("max(0, 0)"));
assertTrue(0 == getEvaluator().getNumberResult("max(-2, 0)"));
assertTrue(2 == getEvaluator().getNumberResult("max(-2, 2)"));
}
@Test
public void testMaxWithVariables(){
assertTrue(2 == getEvaluator().getNumberResult("max([var=a], [var=b])"));
assertTrue(1 == getEvaluator().getNumberResult("max([var=a], [var=c])"));
}
@Test
public void testMaxWithInput(){
assertTrue(2 == getEvaluator().getNumberResult("max([pos=1], [pos=2])"));
assertTrue(1 == getEvaluator().getNumberResult("max([pos=1], [pos=3])"));
}
@Test
public void testMaxWithExpressions(){
assertTrue(12 == getEvaluator().getNumberResult("max(max(12,2), 4)"));
assertTrue(12 == getEvaluator().getNumberResult("max(max(12,2), max(5, 8))"));
assertTrue(13 == getEvaluator().getNumberResult("max(max(12,max(13,-13)), max(5, 8))"));
}
@Test
public void testMaxWithPointNumbers(){
assertTrue(1.3 == getEvaluator().getNumberResult("max(1.0, 1.3)"));
assertTrue(.4 == getEvaluator().getNumberResult("max(.1, .4)"));
assertTrue(.1234 == getEvaluator().getNumberResult("max(.1234, 0.1111)"));
}
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testMaxWithWrongInputCharacter(){
getEvaluator().getNumberResult("max(a, a)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testMaxWithOneArgument(){
getEvaluator().getNumberResult("max(2)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testMaxWithThreeArguments(){
getEvaluator().getNumberResult("max(1, 23, 4)");
}
@Test(expected=UndefinedExerciseVariableException.class)
public void testMaxWithMissingExerciseVariable(){
getEvaluator().getNumberResult("max('[var=j]', '[var=j]')");
}
@Test(expected=UndefinedFillInVariableException.class)
public void testMaxWithMissingInput(){
getEvaluator().getNumberResult("max('[pos=42]', '[pos=42]')");
}
Hinweise
- Eine Gleitkommazahl wird mit einem Punkt anstatt eines Komma gebildet