@Test
public void atan2_missing_value() {

  FunctionExpression atan2 = dsl.atan2(
      DSL.ref(DOUBLE_TYPE_MISSING_VALUE_FIELD, DOUBLE), DSL.literal(1));
  assertEquals(DOUBLE, atan2.type());
  assertTrue(atan2.valueOf(valueEnv()).isMissing());
  atan2 = dsl.atan2(DSL.literal(1), DSL.ref(DOUBLE_TYPE_MISSING_VALUE_FIELD, DOUBLE));
  assertEquals(DOUBLE, atan2.type());
  assertTrue(atan2.valueOf(valueEnv()).isMissing());
  atan2 = dsl.atan2(DSL.ref(DOUBLE_TYPE_MISSING_VALUE_FIELD, DOUBLE),
      DSL.ref(DOUBLE_TYPE_MISSING_VALUE_FIELD, DOUBLE));
  assertEquals(DOUBLE, atan2.type());
  assertTrue(atan2.valueOf(valueEnv()).isMissing());
}