@Udf
  public Double random() {
    return Math.random();
  }
@Test
  public void shouldReturnDistinctValueEachInvocation() {
    int capacity = 1000;
    final Set<Double> outputs = new HashSet<>(capacity);
    for (int i = 0; i < capacity; i++) {
      outputs.add(udf.random());
    }
    assertThat(outputs, hasSize(capacity));
    assertThat(outputs, everyItem(greaterThanOrEqualTo(0.0)));
    assertThat(outputs, everyItem(lessThan(1.0)));
  }