public static Boolean gracefulEq(EvaluationContext ctx, Object left, Object right) { if (left instanceof List) { return ((List) left).contains(right); } else { return eq(left, right); } }
public static Object negateTest(Object param) { if (param instanceof Boolean) { return param.equals(Boolean.FALSE); } else if (param instanceof UnaryTest) { UnaryTest orig = (UnaryTest) param; UnaryTest t = negatedUnaryTest(orig); return t; } else if (param instanceof Range) { UnaryTest t = (c, left) -> not(includes(c, param, left)); return t; } else { UnaryTest t = (c, left) -> not(eq(left, param)); return t; } }