/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.math.impl.rootfinding; import static org.testng.AssertJUnit.assertEquals; import org.testng.Assert; import org.testng.annotations.Test; import com.opengamma.strata.math.MathException; import com.opengamma.strata.math.impl.function.RealPolynomialFunction1D; /** * Test. */ @Test public class QuadraticRealRootFinderTest { private static final double EPS = 1e-9; private static final RealPolynomialFunction1D F = new RealPolynomialFunction1D(12., 7., 1.); private static final Polynomial1DRootFinder<Double> FINDER = new QuadraticRealRootFinder(); @Test public void test() { try { FINDER.getRoots(null); Assert.fail(); } catch (final IllegalArgumentException e) { // Expected } try { FINDER.getRoots(new RealPolynomialFunction1D(1., 2., 3., 4.)); Assert.fail(); } catch (final IllegalArgumentException e) { // Expected } try { FINDER.getRoots(new RealPolynomialFunction1D(12., 1., 12.)); Assert.fail(); } catch (final MathException e) { // Expected } final Double[] roots = FINDER.getRoots(F); assertEquals(roots[0], -4.0, EPS); assertEquals(roots[1], -3.0, EPS); } }