@Udf(description = "Returns the INT base raised to the INT exponent.")
  public Double power(
          @UdfParameter(
                  value = "base",
                  description = "the base of the power."
          ) final Integer base,
          @UdfParameter(
                  value = "exponent",
                  description = "the exponent of the power."
          ) final Integer exponent
  ) {
    return power(
            base == null ? null : base.doubleValue(),
            exponent == null ? null : exponent.doubleValue()
    );
  }
@Test
  public void shouldHandlePositiveExponent() {
    assertThat(udf.power(1, 5), closeTo(1.0, 0.000000000000001));
    assertThat(udf.power(1L, 5L), closeTo(1.0, 0.000000000000001));
    assertThat(udf.power(1.0, 5.0), closeTo(1.0, 0.000000000000001));
    assertThat(udf.power(15, 13), closeTo(1.946195068359375E15, 0.000000000000001));
    assertThat(udf.power(15L, 13L), closeTo(1.946195068359375E15, 0.000000000000001));
    assertThat(udf.power(15.0, 13.0), closeTo(1.946195068359375E15, 0.000000000000001));
    assertThat(udf.power(Double.MIN_VALUE, 13.0), closeTo(0.0, 0.000000000000001));
    assertThat(udf.power(Double.MAX_VALUE, 13.0), is(Double.POSITIVE_INFINITY));
  }