### Question:
WeibullDistribution extends AbstractContinuousDistribution { @Override public double inverseCumulativeProbability(double p) { double ret; if (p < 0 || p > 1) { throw new DistributionException(DistributionException.INVALID_PROBABILITY, p); } else if (p == 0) { ret = 0.0; } else if (p == 1) { ret = Double.POSITIVE_INFINITY; } else { ret = scale * Math.pow(-Math.log1p(-p), 1.0 / shape); } return ret; } WeibullDistribution(double alpha,
                               double beta); double getShape(); double getScale(); @Override double density(double x); @Override double logDensity(double x); @Override double cumulativeProbability(double x); @Override double inverseCumulativeProbability(double p); @Override double getMean(); @Override double getVariance(); @Override double getSupportLowerBound(); @Override double getSupportUpperBound(); @Override boolean isSupportConnected();  }### Answer:
@Test void testInverseCumulativeProbabilitySmallPAccuracy() { final WeibullDistribution dist = new WeibullDistribution(2, 3); final double t = dist.inverseCumulativeProbability(1e-17); Assertions.assertEquals(9.48683298050514e-9, t, 1e-17); }