Round: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Spobel (Diskussion | Beiträge) (→Syntax) |
Spobel (Diskussion | Beiträge) (→Syntax) |
||
Zeile 6: | Zeile 6: | ||
=== Syntax === | === Syntax === | ||
round(float zahl, [integer | round(float zahl, [integer index]) | ||
=== Parameter === | === Parameter === |
Version vom 29. September 2017, 13:12 Uhr
Beschreibung
Die Funktion round rundet eine Gleitkommazahl zu einer Ganzzahl. Die Funktion erwartet eine Zahl und gibt die nächst gelegene Ganzzahl zurück.
Alternativ kann die Funktion round eine Gleitkommazahl auf eine bestimmt Nachkommastelle runden. Das zweite optionale Argument gibt die Nachkommastelle an. 0 entspricht einem Aufruf ohne zweitem Parameter.
Syntax
round(float zahl, [integer index])
Parameter
- zahl - die zu rundene Zahl
Return Value
- Gibt die gerundete Ganzzahl zurück
Beispiele
Standardfälle
round(12.4) --> returns 12 round(15.678) --> returns 16
Benutzung mit Variablen
round([pos=1]) round([var=a])
JUnit Tests
[Anzeigen]
@BeforeClass
public static void beforeTest() {
OMOBJ nineThree = new OMOBJ();
OMOBJ threeFive = new OMOBJ();
nineThree.setOMF(OMCreator.createOMF(93.49999));
threeFive.setOMF(OMCreator.createOMF(3.5));
fillIn.put(4, threeFive);
fillIn.put(93, nineThree);
exerVar.put("a", threeFive);
exerVar.put("b", nineThree);
}
@Test
public void testRound1() {
assertEquals(6, Evaluator.getNumberResult("round(6.3)", exerVar, fillIn), 0);
}
@Test
public void testRound2() {
assertEquals(93, Evaluator.getNumberResult("round(93.49999)", exerVar, fillIn), 0);
}
@Test
public void testRound3() {
assertEquals(94, Evaluator.getNumberResult("round(93.50001)", exerVar, fillIn), 0);
}
@Test
public void testRound4() {
assertEquals(-93, Evaluator.getNumberResult("round(-93.49999)", exerVar, fillIn), 0);
}
@Test
public void testRound5() {
assertEquals(-94, Evaluator.getNumberResult("round(-93.50001)", exerVar, fillIn), 0);
}
@Test
public void testRound6() {
assertEquals(4, Evaluator.getNumberResult("round(3.5)", exerVar, fillIn), 0);
}
@Test
public void testRound7() {
assertEquals(3, Evaluator.getNumberResult("round(2.5)", exerVar, fillIn), 0);
}
@Test
public void testRoundWithInput1() {
assertEquals(4, Evaluator.getNumberResult("round([pos=4])", exerVar, fillIn), 0);
}
@Test
public void testRoundWithInput2() {
assertEquals(93, Evaluator.getNumberResult("round([pos=93])", exerVar, fillIn), 0);
}
@Test
public void testRoundWithVariable1() {
assertEquals(4, Evaluator.getNumberResult("round([var=a])", exerVar, fillIn), 0);
}
@Test
public void testRoundWithVariable2() {
assertEquals(93, Evaluator.getNumberResult("round([var=b])", exerVar, fillIn), 0);
}
@Test
public void testRoundWithPointNumbers1() {
assertEquals(0, Evaluator.getNumberResult("round(0.2)", exerVar, fillIn), 0);
}
@Test
public void testRoundWithPointNumbers2() {
assertEquals(0, Evaluator.getNumberResult("round(-0.2)", exerVar, fillIn), 0);
}
@Test
public void testRoundWithExpressions1() {
assertEquals(-2, Evaluator.getNumberResult("round(round(-2.2))", exerVar, fillIn), 0);
}
@Test
public void testRoundWithExpressions2() {
assertEquals(2, Evaluator.getNumberResult("round(round(round(2.1)))", exerVar, fillIn), 0);
}
@Test(expected = FunctionInvalidArgumentTypeException.class)
public void testRoundWithWrongInputCharacter() {
Evaluator.getNumberResult("round(a)", exerVar, fillIn);
}
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testRoundWithTwoArguments() {
Evaluator.getNumberResult("round(1.2, 1.3)", exerVar, fillIn);
}
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testRoundWithThreeArguments() {
Evaluator.getNumberResult("round(2.1, 2.2, 2.3)", exerVar, fillIn);
}
@Test(expected = UndefinedExerciseVariableException.class)
public void testRoundWithMissingExerciseVariable() {
Evaluator.getNumberResult("round('[var=j]')", exerVar, fillIn);
}
@Test(expected = UndefinedFillInVariableException.class)
public void testRoundWithMissingInput() {
Evaluator.getNumberResult("round('[pos=42]')", exerVar, fillIn);
}