/**
* Copyright (C) 2009 - 2009 by OpenGamma Inc.
*
* Please see distribution for license.
*/
package com.opengamma.analytics.math.integration;
import org.testng.annotations.Test;
import com.opengamma.util.test.TestGroup;
/**
* Test.
*/
@Test(groups = TestGroup.UNIT)
public class GaussLegendreWeightAndAbscissaFunctionTest extends WeightAndAbscissaFunctionTestCase {
private static final double[] X2 = new double[] {-Math.sqrt(3) / 3., Math.sqrt(3) / 3.};
private static final double[] W2 = new double[] {1, 1};
private static final double[] X3 = new double[] {-Math.sqrt(15) / 5., 0, Math.sqrt(15) / 5.};
private static final double[] W3 = new double[] {5. / 9, 8. / 9, 5. / 9};
private static final double[] X4 = new double[] {-Math.sqrt(525 + 70 * Math.sqrt(30)) / 35., -Math.sqrt(525 - 70 * Math.sqrt(30)) / 35., Math.sqrt(525 - 70 * Math.sqrt(30)) / 35.,
Math.sqrt(525 + 70 * Math.sqrt(30)) / 35.};
private static final double[] W4 = new double[] {(18 - Math.sqrt(30)) / 36., (18 + Math.sqrt(30)) / 36., (18 + Math.sqrt(30)) / 36., (18 - Math.sqrt(30)) / 36.};
private static final double[] X5 = new double[] {-Math.sqrt(245 + 14 * Math.sqrt(70)) / 21., -Math.sqrt(245 - 14 * Math.sqrt(70)) / 21., 0, Math.sqrt(245 - 14 * Math.sqrt(70)) / 21.,
Math.sqrt(245 + 14 * Math.sqrt(70)) / 21.};
private static final double[] W5 = new double[] {(322 - 13 * Math.sqrt(70)) / 900., (322 + 13 * Math.sqrt(70)) / 900., 128. / 225, (322 + 13 * Math.sqrt(70)) / 900.,
(322 - 13 * Math.sqrt(70)) / 900.};
private static final QuadratureWeightAndAbscissaFunction F = new GaussLegendreWeightAndAbscissaFunction();
@Test
public void test() {
assertResults(F.generate(2), X2, W2);
assertResults(F.generate(3), X3, W3);
assertResults(F.generate(4), X4, W4);
assertResults(F.generate(5), X5, W5);
}
@Override
protected QuadratureWeightAndAbscissaFunction getFunction() {
return F;
}
}