Skip to content
This repository has been archived by the owner on May 29, 2018. It is now read-only.

Commit

Permalink
[PLAT-6858] Replaced private methods by InterpolatorTestUtil
Browse files Browse the repository at this point in the history
  • Loading branch information
yukiiwashita committed Nov 24, 2014
1 parent 59cc57b commit 4da981a
Showing 1 changed file with 19 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
*/
package com.opengamma.analytics.math.interpolation;

import static org.testng.AssertJUnit.assertEquals;

import java.util.Arrays;

import org.apache.commons.lang.NotImplementedException;
Expand Down Expand Up @@ -65,7 +63,7 @@ public void notClampedTest() {
ProductPiecewisePolynomialInterpolator interp = new ProductPiecewisePolynomialInterpolator(INTERP[i]);
for (int j = 0; j < nKeys; ++j) {
double key = xValues[0] + interval * j;
assertRelative("notClampedTest", INTERP[i].interpolate(xValues, xyValues, key),
InterpolatorTestUtil.assertRelative("notClampedTest", INTERP[i].interpolate(xValues, xyValues, key),
interp.interpolate(xValues, yValues, key), EPS);
}
}
Expand All @@ -77,9 +75,10 @@ public void notClampedTest() {
xyValues);
for (int j = 0; j < nKeys; ++j) {
double key = xValues[0] + interval * j;
assertRelative("notClampedTest", FUNC.evaluate(resultBase, key).getEntry(0), FUNC.evaluate(result, key)
InterpolatorTestUtil.assertRelative("notClampedTest", FUNC.evaluate(resultBase, key).getEntry(0), FUNC
.evaluate(result, key)
.getEntry(0), EPS);
assertArrayRelative("notClampedTest", FUNC.nodeSensitivity(resultBase, key).getData(),
InterpolatorTestUtil.assertArrayRelative("notClampedTest", FUNC.nodeSensitivity(resultBase, key).getData(),
FUNC.nodeSensitivity(result, key).getData(), EPS);
}
}
Expand Down Expand Up @@ -123,7 +122,7 @@ public void clampedTest() {
xValuesClamped, yValuesClamped);
for (int j = 0; j < nKeys; ++j) {
double key = xValues[0] + interval * j;
assertRelative("clampedTest", INTERP[i].interpolate(xValuesForBase, xyValuesBase, key),
InterpolatorTestUtil.assertRelative("clampedTest", INTERP[i].interpolate(xValuesForBase, xyValuesBase, key),
interp.interpolate(xValues, yValues, key), EPS);
}
}
Expand All @@ -136,9 +135,10 @@ public void clampedTest() {
xValuesForBase, xyValuesBase);
for (int j = 0; j < nKeys; ++j) {
double key = xValues[0] + interval * j;
assertRelative("clampedTest", FUNC.evaluate(resultBase, key).getEntry(0), FUNC.evaluate(result, key)
InterpolatorTestUtil.assertRelative("clampedTest", FUNC.evaluate(resultBase, key).getEntry(0),
FUNC.evaluate(result, key)
.getEntry(0), EPS);
assertArrayRelative("clampedTest", FUNC.nodeSensitivity(resultBase, key).getData(),
InterpolatorTestUtil.assertArrayRelative("clampedTest", FUNC.nodeSensitivity(resultBase, key).getData(),
FUNC.nodeSensitivity(result, key).getData(), EPS);
}
}
Expand All @@ -165,7 +165,8 @@ public void linearExtrapolationNoClampedTest() {
}
double[] values = FUNC.evaluate(result, keys).getRowVector(0).getData();
for (int j = 2; j < nKeys; ++j) {
assertRelative("linearExtrapolationTest", values[j - 1] - values[j - 2], values[j - 1] - values[j - 2], EPS);
InterpolatorTestUtil.assertRelative("linearExtrapolationTest", values[j - 1] - values[j - 2], values[j - 1] -
values[j - 2], EPS);
}
}
n = INTERP_SENSE.length;
Expand All @@ -177,7 +178,8 @@ public void linearExtrapolationNoClampedTest() {
}
double[] values = FUNC.evaluate(result, keys).getRowVector(0).getData();
for (int j = 2; j < nKeys; ++j) {
assertRelative("linearExtrapolationTest", values[j - 1] - values[j - 2], values[j - 1] - values[j - 2], EPS);
InterpolatorTestUtil.assertRelative("linearExtrapolationTest", values[j - 1] - values[j - 2], values[j - 1] -
values[j - 2], EPS);
}
DoubleMatrix1D[] sense = FUNC.nodeSensitivity(result, keys);
for (int k = 0; k < nData; ++k) {
Expand All @@ -191,7 +193,7 @@ public void linearExtrapolationNoClampedTest() {
double[] tmpDw = FUNC.evaluate(resultDw, keys).getData()[0];
for (int l = 0; l < nKeys; ++l) {
double res = 0.5 * (tmpUp[l] - tmpDw[l]) / DELTA; // lk
assertRelative("linearExtrapolationTest", sense[l].getEntry(k), res, DELTA);
InterpolatorTestUtil.assertRelative("linearExtrapolationTest", sense[l].getEntry(k), res, DELTA);
}
}
}
Expand Down Expand Up @@ -220,7 +222,8 @@ public void linearExtrapolationClampedTest() {
}
double[] values = FUNC.evaluate(result, keys).getRowVector(0).getData();
for (int j = 2; j < nKeys; ++j) {
assertRelative("linearExtrapolationTest", values[j - 1] - values[j - 2], values[j - 1] - values[j - 2], EPS);
InterpolatorTestUtil.assertRelative("linearExtrapolationTest", values[j - 1] - values[j - 2], values[j - 1] -
values[j - 2], EPS);
}
}
n = INTERP_SENSE.length;
Expand All @@ -233,7 +236,8 @@ public void linearExtrapolationClampedTest() {
}
double[] values = FUNC.evaluate(result, keys).getRowVector(0).getData();
for (int j = 2; j < nKeys; ++j) {
assertRelative("linearExtrapolationTest", values[j - 1] - values[j - 2], values[j - 1] - values[j - 2], EPS);
InterpolatorTestUtil.assertRelative("linearExtrapolationTest", values[j - 1] - values[j - 2], values[j - 1] -
values[j - 2], EPS);
}
DoubleMatrix1D[] sense = FUNC.nodeSensitivity(result, keys);
for (int k = 0; k < nData; ++k) {
Expand All @@ -247,7 +251,7 @@ public void linearExtrapolationClampedTest() {
double[] tmpDw = FUNC.evaluate(resultDw, keys).getData()[0];
for (int l = 0; l < nKeys; ++l) {
double res = 0.5 * (tmpUp[l] - tmpDw[l]) / DELTA;
assertRelative("linearExtrapolationTest", sense[l].getEntry(k), res, DELTA * 10.0);
InterpolatorTestUtil.assertRelative("linearExtrapolationTest", sense[l].getEntry(k), res, DELTA * 10.0);
}
}
ProductPiecewisePolynomialInterpolator interpUp = new ProductPiecewisePolynomialInterpolator(INTERP_SENSE[i],
Expand All @@ -260,7 +264,7 @@ public void linearExtrapolationClampedTest() {
double[] tmpDw = FUNC.evaluate(resultDw, keys).getData()[0];
for (int l = 0; l < nKeys; ++l) {
double res = 0.5 * (tmpUp[l] - tmpDw[l]) / DELTA;
assertRelative("linearExtrapolationTest", sense[l].getEntry(nData), res, DELTA);
InterpolatorTestUtil.assertRelative("linearExtrapolationTest", sense[l].getEntry(nData), res, DELTA);
}
}
}
Expand Down Expand Up @@ -308,17 +312,4 @@ public void notImplementedTest() {
ProductPiecewisePolynomialInterpolator interp = new ProductPiecewisePolynomialInterpolator(INTERP_SENSE[1]);
interp.interpolate(xValues, yValues);
}

private void assertArrayRelative(String message, double[] expected, double[] obtained, double relativeTol) {
int nData = expected.length;
assertEquals(message, nData, obtained.length);
for (int i = 0; i < nData; ++i) {
assertRelative(message, expected[i], obtained[i], relativeTol);
}
}

private void assertRelative(String message, double expected, double obtained, double relativeTol) {
double ref = Math.max(Math.abs(expected), 1.0);
assertEquals(message, expected, obtained, ref * relativeTol);
}
}

0 comments on commit 4da981a

Please sign in to comment.