### Question:
PoissonDistribution extends AbstractDiscreteDistribution { public double normalApproximateProbability(int x) { return normal.cumulativeProbability(x + 0.5); } PoissonDistribution(double p); private  PoissonDistribution(double p,
                                double epsilon,
                                int maxIterations); @Override double probability(int x); @Override double logProbability(int x); @Override double cumulativeProbability(int x); double normalApproximateProbability(int x); @Override double getMean(); @Override double getVariance(); @Override int getSupportLowerBound(); @Override int getSupportUpperBound(); @Override boolean isSupportConnected(); @Override DiscreteDistribution.Sampler createSampler(final UniformRandomProvider rng);  }### Answer:
@Test void testNormalApproximateProbability() { PoissonDistribution dist = new PoissonDistribution(100); double result = dist.normalApproximateProbability(110) - dist.normalApproximateProbability(89); Assertions.assertEquals(0.706281887248, result, 1e-10); dist = new PoissonDistribution(10000); result = dist.normalApproximateProbability(10200) - dist.normalApproximateProbability(9899); Assertions.assertEquals(0.820070051552, result, 1E-10); }