BooleanAnd

Aus JACK Wiki
Zur Navigation springen Zur Suche springen

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