/** * @dependency ABooleanExp uses */ public class TestEvalEnv { /** * @param args */ public static void main(String[] args) { Environment env = new ConsEnv ("x", true, new ConsEnv ("y", false, EmptyEnv.Singleton ())); IBEVisitor eval = EvalVisitor.Singleton (); ABooleanExp e1 = new And (Constant.Singleton (true), new Variable ("x")); ABooleanExp e2 = new Or (Constant.Singleton (false), e1); ABooleanExp e3 = new Implies (e2, e1); ABooleanExp e4 = new Implies (e1, e2); System.out.println (e1 + " == " + e1.accept (eval, env)); System.out.println (e2 + " == " + e2.accept (eval, env)); System.out.println (e3 + " == " + e3.accept (eval, env)); System.out.println (e4 + " == " + e4.accept (eval, env)); /* test DeMorgan's law */ Variable x = new Variable("x"); Variable y = new Variable("y"); ABooleanExp demorgan1 = new Implies(new Or(x, y), new Not( new And(new Not(x), new Not(y)))); ABooleanExp demorgan2 = new Implies(new Not( new And(new Not(x), new Not(y))), new Or(x, y)); Environment env1 = new ConsEnv("x", true, new ConsEnv("y", true, EmptyEnv.Singleton())); Environment env2 = new ConsEnv("x", true, new ConsEnv("y", false, EmptyEnv.Singleton())); Environment env3 = new ConsEnv("x", false, new ConsEnv("y", true, EmptyEnv.Singleton())); Environment env4 = new ConsEnv("x", false, new ConsEnv("y", false, EmptyEnv.Singleton())); System.out.println ("\nTesting DeMorgan's laws..."); System.out.println (demorgan1 +"[" + env1 + "] == " + demorgan1.accept (eval, env1)); System.out.println (demorgan1 +"[" + env2 + "] == " + demorgan1.accept (eval, env2)); System.out.println (demorgan1 +"[" + env3 + "] == " + demorgan1.accept (eval, env3)); System.out.println (demorgan1 +"[" + env4 + "] == " + demorgan1.accept (eval, env4)); System.out.println (demorgan2 +"[" + env1 + "] == " + demorgan2.accept (eval, env1)); System.out.println (demorgan2 +"[" + env2 + "] == " + demorgan2.accept (eval, env2)); System.out.println (demorgan2 +"[" + env3 + "] == " + demorgan2.accept (eval, env3)); System.out.println (demorgan2 +"[" + env4 + "] == " + demorgan2.accept (eval, env4)); } }