ExprMissingValue extends AbstractExprValue { @Override public int compare(ExprValue other) { throw new IllegalStateException(String.format("[BUG] Unreachable, Comparing with MISSING is " + "undefined")); } private  ExprMissingValue(); static ExprMissingValue of(); @Override Object value(); @Override ExprType type(); @Override boolean isMissing(); @Override int compare(ExprValue other); @Override boolean equal(ExprValue other); @Override int hashCode(); @Override String toString();  }
@Test public void comparabilityTest() { ExpressionEvaluationException exception = assertThrows(ExpressionEvaluationException.class, () -> compare(LITERAL_MISSING, LITERAL_MISSING)); assertEquals("invalid to call compare operation on missing value", exception.getMessage()); }