@Udf(description = "Returns the inverse (arc) tangent of y / x")
  public Double atan2(
          @UdfParameter(
                  value = "y",
                  description = "The ordinate (y) coordinate."
          ) final Integer y,
          @UdfParameter(
                  value = "x",
                  description = "The abscissa (x) coordinate."
          ) final Integer x
  ) {
    return atan2(y == null ? null : y.doubleValue(), x == null ? null : x.doubleValue());
  }
@Test
  public void shouldHandleNull() {
    assertThat(udf.atan2(null, 1), is(nullValue()));
    assertThat(udf.atan2(null, 1L), is(nullValue()));
    assertThat(udf.atan2(null, 0.45), is(nullValue()));
    assertThat(udf.atan2(1, null), is(nullValue()));
    assertThat(udf.atan2(1L, null), is(nullValue()));
    assertThat(udf.atan2(0.45, null), is(nullValue()));
    assertThat(udf.atan2((Integer) null, null), is(nullValue()));
    assertThat(udf.atan2((Long) null, null), is(nullValue()));
    assertThat(udf.atan2((Double) null, null), is(nullValue()));
  }