private Double computeFractionData(BinomialMetrics.BinomialMetric metric, double effectSize, Parameters.Mode mode, long bucketImpressions, long otherBucketImpressions, long bucketUniqueCounts, long otherBucketUniqueCounts) {
Double fractionData;
try {
if (mode == Parameters.Mode.PRODUCTION) {
fractionData = min(1.0, metric.fractionOfData(bucketImpressions, bucketUniqueCounts,
otherBucketImpressions, otherBucketUniqueCounts, effectSize));
} else if (mode == Parameters.Mode.TEST) {
fractionData = metric.fractionOfData(bucketImpressions, bucketUniqueCounts,
otherBucketImpressions, otherBucketUniqueCounts, effectSize);
} else {
throw new IllegalArgumentException("incorrect mode specified: " + mode.toString());
}
} catch (IllegalArgumentException iae) {
LOGGER.warn("BinomialMetric.fractionOfData called with invalid arguments by AnalyticsService.generateBucketComparisons: ", iae);
fractionData = NaN;
}
return fractionData;
}