/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.math.impl.statistics.distribution; import static org.testng.AssertJUnit.assertEquals; import org.testng.Assert; import org.testng.annotations.Test; import cern.jet.random.engine.MersenneTwister; import cern.jet.random.engine.MersenneTwister64; import cern.jet.random.engine.RandomEngine; /** * Abstract test. */ @Test public abstract class ProbabilityDistributionTestCase { protected static final double EPS = 1e-5; protected static final RandomEngine ENGINE = new MersenneTwister64(MersenneTwister.DEFAULT_SEED); protected void assertCDF(final double[] p, final double[] x, final ProbabilityDistribution<Double> dist) { assertCDFWithNull(dist); for (int i = 0; i < p.length; i++) { assertEquals(dist.getCDF(x[i]), p[i], EPS); } } protected void assertPDF(final double[] z, final double[] x, final ProbabilityDistribution<Double> dist) { assertPDFWithNull(dist); for (int i = 0; i < z.length; i++) { assertEquals(dist.getPDF(x[i]), z[i], EPS); } } protected void assertInverseCDF(final double[] x, final ProbabilityDistribution<Double> dist) { assertInverseCDFWithNull(dist); for (final double d : x) { assertEquals(dist.getInverseCDF(dist.getCDF(d)), d, EPS); } try { dist.getInverseCDF(3.4); Assert.fail(); } catch (final IllegalArgumentException e) { // Expected } try { dist.getInverseCDF(-0.2); Assert.fail(); } catch (final IllegalArgumentException e) { // Expected } } protected void assertInverseCDFWithNull(final ProbabilityDistribution<Double> dist) { try { dist.getInverseCDF(null); Assert.fail(); } catch (final IllegalArgumentException e) { // Expected } } protected void assertPDFWithNull(final ProbabilityDistribution<Double> dist) { try { dist.getPDF(null); Assert.fail(); } catch (final IllegalArgumentException e) { // Expected } } protected void assertCDFWithNull(final ProbabilityDistribution<Double> dist) { try { dist.getCDF(null); Assert.fail(); } catch (final IllegalArgumentException e) { // Expected } } }