Times: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 17: | Zeile 17: | ||
<math>1.4*2.3</math> --> returns 3.22 | <math>1.4*2.3</math> --> returns 3.22 | ||
====JUnit Tests==== | |||
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed"> | |||
@Before | |||
public void beforeTest() { | |||
placeFillInVariable(1, OMParser.parse("3")); | |||
placeFillInVariable(2, OMParser.parse("10")); | |||
placeFillInVariable(3, OMParser.parse("2.5")); | |||
placeFillInVariable(4, OMParser.parse("4.3")); | |||
placeExerciseVariable("a", OMParser.parse("3")); | |||
placeExerciseVariable("b", OMParser.parse("10")); | |||
placeExerciseVariable("c", OMParser.parse("2.5")); | |||
placeExerciseVariable("d", OMParser.parse("4.3")); | |||
} | |||
@Test | |||
public void testMultiplication(){ | |||
assertTrue(24== getEvaluator().getNumberResult("6*4")); | |||
assertTrue(1 != getEvaluator().getNumberResult("7.3*2")); | |||
assertTrue(21.17 == getEvaluator().getNumberResult("7.3*2.9")); | |||
assertTrue(0 == getEvaluator().getNumberResult("7.3*0")); | |||
assertTrue(0 == getEvaluator().getNumberResult("0*0")); | |||
} | |||
@Test | |||
public void testMultiplicationWithNegativeNumber(){ | |||
assertTrue(-29 == getEvaluator().getNumberResult("10*(-2.9)")); | |||
assertTrue(1 != getEvaluator().getNumberResult("-7.3*2")); | |||
} | |||
@Test | |||
public void testMultiplicationWithVariables(){ | |||
assertTrue(18 == getEvaluator().getNumberResult("6*[var=a]")); | |||
assertTrue(29 == getEvaluator().getNumberResult("[var=b]*2.9")); | |||
assertTrue(1 != getEvaluator().getNumberResult("7.3*[var=a]")); | |||
assertTrue(10.75 == getEvaluator().getNumberResult("[var=c]*[var=d]")); | |||
} | |||
@Test | |||
public void testMultiplicationWithInput(){ | |||
assertTrue(18 == getEvaluator().getNumberResult("6*[pos=1]")); | |||
assertTrue(29 == getEvaluator().getNumberResult("[pos=2]*2.9")); | |||
assertTrue(1 != getEvaluator().getNumberResult("7.3*[pos=1]")); | |||
assertTrue(10.75 == getEvaluator().getNumberResult("[pos=3]*[pos=4]")); | |||
} | |||
@Test | |||
public void testMultiplicationWithEncapsulation(){ | |||
assertTrue(8 == getEvaluator().getNumberResult("2 * (2 * 2)")); | |||
assertTrue(16 == getEvaluator().getNumberResult("2 * (2 * (2 * 2))")); | |||
assertTrue(64 == getEvaluator().getNumberResult("2 * (2 * (2 * (2 * (2 * 2))))")); | |||
assertTrue(64 == getEvaluator().getNumberResult("((((2 * 2) * 2) * 2) * 2) * 2")); | |||
} | |||
@Test(expected=ParserMismatchException.class) | |||
public void testMultiplicationWithWrongInputCharacter() { | |||
getEvaluator().getNumberResult("6 * a"); | |||
} | |||
@Test(expected=UnsupportedBinaryOperatorException.class) | |||
public void testMultiplicationWithWrongInputString() { | |||
getEvaluator().getNumberResult("6 * 'a'"); | |||
} | |||
@Test (expected=UndefinedExerciseVariableException.class) | |||
public void testMultiplicationWithMissingExcerciseVariable() { | |||
getEvaluator().getNumberResult("[var=j] * 1"); | |||
} | |||
@Test (expected=UndefinedFillInVariableException.class) | |||
public void testMultiplicationWithMissingInput() { | |||
getEvaluator().getNumberResult("[pos=42] * 1"); | |||
} | |||
</syntaxhighlight> | |||
===Hinweise=== | ===Hinweise=== | ||
* Auch hier lässt sich das Ergebnis mit [[equal]] ("==") vergleichen. | * Auch hier lässt sich das Ergebnis mit [[equal]] ("==") vergleichen. |
Version vom 21. Juni 2017, 10:12 Uhr
Beschreibung
Bei der Multiplikation werden zwei Zahlen miteinander multipliziert.
Syntax
a * b
Parameter
- a - double
- b - double
Return Value
- Gibt eine expression zurück.
Beispiele
<math>3*5</math> --> returns 15
<math>1.4*2.3</math> --> returns 3.22
JUnit Tests
@Before
public void beforeTest() {
placeFillInVariable(1, OMParser.parse("3"));
placeFillInVariable(2, OMParser.parse("10"));
placeFillInVariable(3, OMParser.parse("2.5"));
placeFillInVariable(4, OMParser.parse("4.3"));
placeExerciseVariable("a", OMParser.parse("3"));
placeExerciseVariable("b", OMParser.parse("10"));
placeExerciseVariable("c", OMParser.parse("2.5"));
placeExerciseVariable("d", OMParser.parse("4.3"));
}
@Test
public void testMultiplication(){
assertTrue(24== getEvaluator().getNumberResult("6*4"));
assertTrue(1 != getEvaluator().getNumberResult("7.3*2"));
assertTrue(21.17 == getEvaluator().getNumberResult("7.3*2.9"));
assertTrue(0 == getEvaluator().getNumberResult("7.3*0"));
assertTrue(0 == getEvaluator().getNumberResult("0*0"));
}
@Test
public void testMultiplicationWithNegativeNumber(){
assertTrue(-29 == getEvaluator().getNumberResult("10*(-2.9)"));
assertTrue(1 != getEvaluator().getNumberResult("-7.3*2"));
}
@Test
public void testMultiplicationWithVariables(){
assertTrue(18 == getEvaluator().getNumberResult("6*[var=a]"));
assertTrue(29 == getEvaluator().getNumberResult("[var=b]*2.9"));
assertTrue(1 != getEvaluator().getNumberResult("7.3*[var=a]"));
assertTrue(10.75 == getEvaluator().getNumberResult("[var=c]*[var=d]"));
}
@Test
public void testMultiplicationWithInput(){
assertTrue(18 == getEvaluator().getNumberResult("6*[pos=1]"));
assertTrue(29 == getEvaluator().getNumberResult("[pos=2]*2.9"));
assertTrue(1 != getEvaluator().getNumberResult("7.3*[pos=1]"));
assertTrue(10.75 == getEvaluator().getNumberResult("[pos=3]*[pos=4]"));
}
@Test
public void testMultiplicationWithEncapsulation(){
assertTrue(8 == getEvaluator().getNumberResult("2 * (2 * 2)"));
assertTrue(16 == getEvaluator().getNumberResult("2 * (2 * (2 * 2))"));
assertTrue(64 == getEvaluator().getNumberResult("2 * (2 * (2 * (2 * (2 * 2))))"));
assertTrue(64 == getEvaluator().getNumberResult("((((2 * 2) * 2) * 2) * 2) * 2"));
}
@Test(expected=ParserMismatchException.class)
public void testMultiplicationWithWrongInputCharacter() {
getEvaluator().getNumberResult("6 * a");
}
@Test(expected=UnsupportedBinaryOperatorException.class)
public void testMultiplicationWithWrongInputString() {
getEvaluator().getNumberResult("6 * 'a'");
}
@Test (expected=UndefinedExerciseVariableException.class)
public void testMultiplicationWithMissingExcerciseVariable() {
getEvaluator().getNumberResult("[var=j] * 1");
}
@Test (expected=UndefinedFillInVariableException.class)
public void testMultiplicationWithMissingInput() {
getEvaluator().getNumberResult("[pos=42] * 1");
}
Hinweise
- Auch hier lässt sich das Ergebnis mit equal ("==") vergleichen.
- ACHTUNG: Besonders bei der Multiplikation von Dezimal-Zahlen tritt der folgende Rechner-Fehler auf: <math>7.3*2.9 = 21.16999999999998</math> anstatt <math>21.17</math>. Dies lässt sich auch hier verhindern wenn das Ergebnis auf zwei Nachkommastellen gerundet wird.