@Test
public void serializationTest() throws Exception {

  Expression expression = dsl.equal(DSL.literal("v1"), DSL.literal("v2"));
  // serialization
  ByteArrayOutputStream output = new ByteArrayOutputStream();
  ObjectOutputStream objectOutput = new ObjectOutputStream(output);
  objectOutput.writeObject(expression);
  objectOutput.flush();
  String source = Base64.getEncoder().encodeToString(output.toByteArray());
  // deserialization
  ByteArrayInputStream input = new ByteArrayInputStream(Base64.getDecoder().decode(source));
  ObjectInputStream objectInput = new ObjectInputStream(input);
  Expression e = (Expression) objectInput.readObject();
  ExprValue exprValue = e.valueOf(valueEnv());
  assertEquals(LITERAL_FALSE, exprValue);
}