/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.model.finitedifference; import static org.testng.AssertJUnit.assertEquals; import org.testng.annotations.Test; /** * Test. */ public class UniformMeshingTest extends MeshingTest { @Test(expectedExceptions = IllegalArgumentException.class) public void outOfRangeTest() { int n = 10; double[] fixedPoint = new double[] {-0.145, 0.2, 0.25, 0.7 }; @SuppressWarnings("unused") MeshingFunction mesh = new UniformMeshing(n, fixedPoint); } @Test(expectedExceptions = IllegalArgumentException.class) public void outOfRangeTest2() { int n = 10; double[] fixedPoint = new double[] {0.145, 1.2, 0.25, 0.7 }; @SuppressWarnings("unused") MeshingFunction mesh = new UniformMeshing(n, fixedPoint); } @Test(expectedExceptions = IllegalArgumentException.class) public void notEnoughPointsTest() { int n = 7; double[] fixedPoint = new double[] {0.145, 0.2, 0.9, 0.8, 0.25, 0.7 }; @SuppressWarnings("unused") MeshingFunction mesh = new UniformMeshing(n, fixedPoint); } @Test public void noFixedPointsTest() { int n = 7; MeshingFunction mesh = new UniformMeshing(n); for (int ii = 0; ii < n; ii++) { assertEquals(((double) ii) / (n - 1), mesh.evaluate(ii), 1e-15); } } @Test public void singleFixedPointsTest() { int n = 10; double[] fixedPoint = new double[] {0.3142 }; MeshingFunction mesh = new UniformMeshing(n, fixedPoint); testMesh(mesh, fixedPoint); } @Test public void multiFixedPointsTest() { int n = 10; double[] fixedPoint = new double[] {0.145, 0.2, 0.25, 0.7 }; MeshingFunction mesh = new UniformMeshing(n, fixedPoint); testMesh(mesh, fixedPoint); } @Test public void multiFixedPointsTest2() { int n = 13; double[] fixedPoint = new double[] {0.145, 0.2, 0.25, 0.7, 0.19, 0.2 }; MeshingFunction mesh = new UniformMeshing(n, fixedPoint); testMesh(mesh, fixedPoint); } }