/** * Copyright (C) 2009 - 2010 by OpenGamma Inc. * * Please see distribution for license. */ package com.opengamma.strata.math.impl.function.special; import static org.testng.AssertJUnit.assertEquals; import org.apache.commons.math3.util.CombinatoricsUtils; import org.testng.annotations.Test; import com.opengamma.strata.math.impl.function.DoubleFunction1D; /** * Test. */ @Test public class OrthonormalHermitePolynomialFunctionTest { private static final HermitePolynomialFunction HERMITE = new HermitePolynomialFunction(); private static final OrthonormalHermitePolynomialFunction ORTHONORMAL = new OrthonormalHermitePolynomialFunction(); private static final double EPS = 1e-9; @Test(expectedExceptions = IllegalArgumentException.class) public void testBadN() { ORTHONORMAL.getPolynomials(-3); } @Test public void test() { final int n = 15; final DoubleFunction1D[] f1 = HERMITE.getPolynomials(n); final DoubleFunction1D[] f2 = ORTHONORMAL.getPolynomials(n); final double x = 3.4; for (int i = 0; i < f1.length; i++) { assertEquals( f1[i].applyAsDouble(x) / Math.sqrt(CombinatoricsUtils.factorialDouble(i) * Math.pow(2, i) * Math.sqrt(Math.PI)), f2[i].applyAsDouble(x), EPS); } } }