public void testEvaluateExpression() throws PreprocessException {
public void testEvaluateExpression() throws BuildException {
	public void testEvaluateExpression() throws PreprocessException {		HashMap symbols = new HashMap();		symbols.put( "test1", Boolean.TRUE );		symbols.put( "test2", Boolean.TRUE );		symbols.put( "sym-1", Boolean.TRUE );		symbols.put( "sym-2", Boolean.TRUE );		symbols.put( "var-1:defined", Boolean.TRUE );		symbols.put( "var-2:defined", Boolean.TRUE );				BooleanEvaluator evaluator = new BooleanEvaluator( symbols );		String expression = "test1 && test2";		assertTrue( evaluator.evaluate(expression, "MyClass", 103 ));		expression = "test1 && ! test2";		assertFalse( evaluator.evaluate(expression, "MyClass", 103 ));		expression = "test1 && (test2 || test3)";		assertTrue( evaluator.evaluate(expression, "MyClass", 103 ));		expression = "test1 && (test2 && !test3)";		assertTrue( evaluator.evaluate(expression, "MyClass", 103 ));		expression = "test1 && (test2 ^ test3)";		assertTrue( evaluator.evaluate(expression, "MyClass", 103 ));		expression = "test1 && (test2 && test3)";		assertFalse( evaluator.evaluate(expression, "MyClass", 103 ));		expression = "test1 && (test2 ^ ! test3)";		assertFalse( evaluator.evaluate(expression, "MyClass", 103 ));		expression = "true && ((true ^ ! true) || false)";		assertTrue( evaluator.evaluate(expression, "MyClass", 103 ));		expression = "true && ((true ^ ! true) || false) && (!true ^ false)";		assertFalse( evaluator.evaluate(expression, "MyClass", 103 ));		expression = "(true && ((true ^ ! true) || false) && (!true ^ true)) ";		assertTrue( evaluator.evaluate(expression, "MyClass", 103 ));		expression = "true";		assertTrue( evaluator.evaluate(expression, "MyClass", 103 ));		expression = "false";		assertFalse( evaluator.evaluate(expression, "MyClass", 103 ));			}