public <T> void compareSupplierResult(final T expected, final Supplier<T> experimentSupplier) {
    final Timer.Sample sample = Timer.start();

    try {
      final T result = experimentSupplier.get();

      recordResult(expected, result, sample);
    } catch (final Exception e) {
      recordError(e, sample);
    }
  }
@Test
  void compareSupplierResultError() {
    experiment.compareSupplierResult(12, () -> {
      throw new RuntimeException("OH NO");
    });
    verify(errorTimer).record(anyLong(), eq(TimeUnit.NANOSECONDS));
  }