BooleanAnd: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
Zeile 19: | Zeile 19: | ||
(2+4==6) && (3+3==6) --> true | (2+4==6) && (3+3==6) --> true | ||
====JUnit Tests==== | |||
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed"> | |||
@Before | |||
public void beforeTest() { | |||
placeFillInVariable(1, OMParser.parse("1")); | |||
placeFillInVariable(2, OMParser.parse("0")); | |||
placeExerciseVariable("a", OMParser.parse("1")); | |||
placeExerciseVariable("b", OMParser.parse("0")); | |||
} | |||
@Test | |||
public void testBooleanAnd(){ | |||
assertTrue(getEvaluator().getBooleanResult("1 && 1")); | |||
assertTrue(!getEvaluator().getBooleanResult("0 && 1")); | |||
assertTrue(!getEvaluator().getBooleanResult("1 && 0")); | |||
assertTrue(!getEvaluator().getBooleanResult("0 && 0")); | |||
} | |||
@Test | |||
public void testBooleanAndWithVariables(){ | |||
assertTrue(getEvaluator().getBooleanResult("[pos=1] && 1")); | |||
assertTrue(!getEvaluator().getBooleanResult("0 && [pos=1]")); | |||
} | |||
@Test | |||
public void testBooleanAndWithInput(){ | |||
assertTrue(getEvaluator().getBooleanResult("[var=a] && 1")); | |||
assertTrue(!getEvaluator().getBooleanResult("0 && [var=b]")); | |||
} | |||
@Test | |||
public void testBooleanAndWithEncapsulation(){ | |||
assertTrue(!getEvaluator().getBooleanResult("1 && (1 && 0)")); | |||
assertTrue(getEvaluator().getBooleanResult("1 && (1 && 1)")); | |||
assertTrue(!getEvaluator().getBooleanResult("1 && (1 && (1 && (1 &&(1 && 0))))")); | |||
assertTrue(getEvaluator().getBooleanResult("1 && (1 && (1 && (1 && (1 && 1))))")); | |||
assertTrue(!getEvaluator().getBooleanResult("((((0 && 1) && 1) && 1) && 1) && 1")); | |||
assertTrue(getEvaluator().getBooleanResult("((((1 && 1) && 1) && 1) && 1) && 1")); | |||
} | |||
@Test | |||
public void testBooleanAndWithDifferentNumbers(){ | |||
assertTrue(getEvaluator().getBooleanResult("2 && 2")); | |||
assertTrue(getEvaluator().getBooleanResult("-1 && 2")); | |||
assertTrue(!getEvaluator().getBooleanResult("-1 && 0")); | |||
assertTrue(getEvaluator().getBooleanResult("2.34 && 1.11")); | |||
} | |||
@Test(expected=ParserMismatchException.class) | |||
public void testBooleanAndWithWrongInputCharacter() { | |||
getEvaluator().getBooleanResult("1 && a"); | |||
} | |||
@Test(expected=UnsupportedBinaryOperatorException.class) | |||
public void testBooleanAndWithWrongInputString() { | |||
getEvaluator().getBooleanResult("1 && 'a'"); | |||
} | |||
@Test (expected=UndefinedExerciseVariableException.class) | |||
public void testBooleanAndMissingExcerciseVariable() { | |||
getEvaluator().getBooleanResult("[var=j] && 1"); | |||
} | |||
@Test (expected=UndefinedFillInVariableException.class) | |||
public void testBooleanAndWithMissingInput() { | |||
getEvaluator().getBooleanResult("[pos=42] && 1"); | |||
} | |||
</syntaxhighlight> | |||
===Hinweise=== | ===Hinweise=== |
Version vom 21. Juni 2017, 10:19 Uhr
Beschreibung
Die Funktion BooleanAnd ("&&") aus der Bool'schen Algebra vergleicht zwei Aussagen auf "true" oder "false". Der Ausdruck x && y gibt true zurück, wenn x und y beide true sind, ansonsten wird immer false zurückgegeben.
Syntax
x && y
Parameter
- x - boolean
- y - boolean
Return Value
- Gibt einen Boolean zurück.
Beispiele
1 && 1 --> true 0 && 1 --> false 1 && 0 --> false 0 && 0 --> false
(2+4==6) && (3+3==6) --> true
JUnit Tests
@Before
public void beforeTest() {
placeFillInVariable(1, OMParser.parse("1"));
placeFillInVariable(2, OMParser.parse("0"));
placeExerciseVariable("a", OMParser.parse("1"));
placeExerciseVariable("b", OMParser.parse("0"));
}
@Test
public void testBooleanAnd(){
assertTrue(getEvaluator().getBooleanResult("1 && 1"));
assertTrue(!getEvaluator().getBooleanResult("0 && 1"));
assertTrue(!getEvaluator().getBooleanResult("1 && 0"));
assertTrue(!getEvaluator().getBooleanResult("0 && 0"));
}
@Test
public void testBooleanAndWithVariables(){
assertTrue(getEvaluator().getBooleanResult("[pos=1] && 1"));
assertTrue(!getEvaluator().getBooleanResult("0 && [pos=1]"));
}
@Test
public void testBooleanAndWithInput(){
assertTrue(getEvaluator().getBooleanResult("[var=a] && 1"));
assertTrue(!getEvaluator().getBooleanResult("0 && [var=b]"));
}
@Test
public void testBooleanAndWithEncapsulation(){
assertTrue(!getEvaluator().getBooleanResult("1 && (1 && 0)"));
assertTrue(getEvaluator().getBooleanResult("1 && (1 && 1)"));
assertTrue(!getEvaluator().getBooleanResult("1 && (1 && (1 && (1 &&(1 && 0))))"));
assertTrue(getEvaluator().getBooleanResult("1 && (1 && (1 && (1 && (1 && 1))))"));
assertTrue(!getEvaluator().getBooleanResult("((((0 && 1) && 1) && 1) && 1) && 1"));
assertTrue(getEvaluator().getBooleanResult("((((1 && 1) && 1) && 1) && 1) && 1"));
}
@Test
public void testBooleanAndWithDifferentNumbers(){
assertTrue(getEvaluator().getBooleanResult("2 && 2"));
assertTrue(getEvaluator().getBooleanResult("-1 && 2"));
assertTrue(!getEvaluator().getBooleanResult("-1 && 0"));
assertTrue(getEvaluator().getBooleanResult("2.34 && 1.11"));
}
@Test(expected=ParserMismatchException.class)
public void testBooleanAndWithWrongInputCharacter() {
getEvaluator().getBooleanResult("1 && a");
}
@Test(expected=UnsupportedBinaryOperatorException.class)
public void testBooleanAndWithWrongInputString() {
getEvaluator().getBooleanResult("1 && 'a'");
}
@Test (expected=UndefinedExerciseVariableException.class)
public void testBooleanAndMissingExcerciseVariable() {
getEvaluator().getBooleanResult("[var=j] && 1");
}
@Test (expected=UndefinedFillInVariableException.class)
public void testBooleanAndWithMissingInput() {
getEvaluator().getBooleanResult("[pos=42] && 1");
}
Hinweise
- erwartet zwei boolsche Ausdrücke