public override bool Test(IParameters parameters)
 {
     Contract.Argument("Lhs must be null for unary operator", "Lhs", Lhs == null);
     return(Rhs.HasValue(parameters) &&
            ((Rhs.GetValue(parameters) as bool?) == false));
 }
 public override bool Test(IParameters parameters)
 {
     return((Lhs.HasValue(parameters) || Rhs.HasValue(parameters)) &&
            (((Lhs.GetValue(parameters) as bool?) == true) || ((Rhs.GetValue(parameters) as bool?) == true)));
 }
 public override bool Test(IParameters parameters)
 {
     return(Lhs.HasValue(parameters) &&
            Rhs.HasValue(parameters) &&
            !object.Equals(Lhs.GetValue(parameters), Rhs.GetValue(parameters)));
 }