public void NotExpressionReturnsOppositeValueForConstantValue() { { // !false => true IExpression ne = new NotExpression(new ConstantTerminalExpression(false)); Assert.AreEqual(true, ne.Interpret(new Context())); } { // !true => false IExpression ne = new NotExpression(new ConstantTerminalExpression(true)); Assert.AreEqual(false, ne.Interpret(new Context())); } }
public void NotExpressionReturnsOppositeValueForVariable() { { // !a => true for a = false IExpression ne = new NotExpression(new VariableTerminalExpression("a")); Assert.AreEqual(true, ne.Interpret(new Context(new Dictionary <string, bool>() { { "a", false }, { "b", true } }))); } { // !b => false for b = true IExpression ne = new NotExpression(new VariableTerminalExpression("b")); Assert.AreEqual(false, ne.Interpret(new Context(new Dictionary <string, bool>() { { "a", false }, { "b", true } }))); } }