/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.math.function; import static org.testng.AssertJUnit.assertEquals; import org.testng.annotations.Test; import cern.jet.random.engine.MersenneTwister; import cern.jet.random.engine.MersenneTwister64; import cern.jet.random.engine.RandomEngine; import com.opengamma.util.test.TestGroup; /** * Test. */ @Test(groups = TestGroup.UNIT) public class RealPolynomialFunction1DTest { private static final RandomEngine RANDOM = new MersenneTwister64(MersenneTwister.DEFAULT_SEED); private static final double[] C = new double[] {3.4, 5.6, 1., -4.}; private static final DoubleFunction1D F = new RealPolynomialFunction1D(C); private static final double EPS = 1e-12; @Test(expectedExceptions = IllegalArgumentException.class) public void testNullCoefficients() { new RealPolynomialFunction1D(null); } @Test(expectedExceptions = IllegalArgumentException.class) public void testEmptyCoefficients() { new RealPolynomialFunction1D(new double[0]); } @Test public void testEvaluate() { final double x = RANDOM.nextDouble(); assertEquals(C[3] * Math.pow(x, 3) + C[2] * Math.pow(x, 2) + C[1] * x + C[0], F.evaluate(x), EPS); } @Test public void testDerivative() { final double x = RANDOM.nextDouble(); assertEquals(3 * C[3] * Math.pow(x, 2) + 2 * C[2] * x + C[1], F.derivative().evaluate(x), EPS); } }