### Question:
ComputeEnrichment { public static double computeCumulHyperGeo(double x, double N, double n, double k) { double p = 0; double upperBound = Math.min(n, k); for (double i=x; i<=upperBound; i++) { p += computeHyperGeo(i, N, n, k); } return p; } ComputeEnrichment(DataCache cache, EnrichmentEngineRequestDto request); EnrichmentEngineResponseDto process(); static double computeHyperGeo(double x, double N, double n, double k); static double computeCumulHyperGeo(double x, double N, double n, double k); static DenseVector computeFDRqval(int N, DenseVector pvals);  }### Answer:
@Test public void testCumulHyperGeo() { double N = 20; double k = 6; double n = 7; double x = 4; double p = ComputeEnrichment.computeCumulHyperGeo(x, N, n, k); assertEquals(7.76573e-2, p, 1e-6); }