@Test public void zeroFractionShouldNeverSampleEvents() { CountingMeasurementSink counter = new CountingMeasurementSink(); StepMeasurementSink sink = new SamplingMeasurementSink(counter, 0.0f); assertEventSinkCounts(sink, 0, counter, 0, 0, 0, 0, 0); }
@Test public void oneFractionShouldSampleAllEventCounts() { CountingMeasurementSink counter = new CountingMeasurementSink(); StepMeasurementSink sink = new SamplingMeasurementSink(counter, 1.0f); assertEventSinkCounts(sink, 0, counter, 1, 2, 3, 4, 5); }
@Test public void eventsSampledShouldNeverExceedSpecifiedFraction() { CountingMeasurementSink counter = new CountingMeasurementSink(); StepMeasurementSink sink = new SamplingMeasurementSink(counter, 0.33333f); assertEventSinkCounts(sink, 0, counter, 1, 1, 1, 2, 2, 2, 3, 3); }
@Test public void nestedEventsShouldNotBeDelegated() { CountingMeasurementSink counter = new CountingMeasurementSink(); StepMeasurementSink sink = new SamplingMeasurementSink(counter, 1.0f); assertEventSinkCounts(sink, 1, counter, 0, 0, 0); }