/// //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test(expectedExceptions = IllegalArgumentException.class) public void notReconnectedTest() public virtual void notReconnectedTest() { double[] xValues = new double[] { 1.0, 2.000000000001, 2.000000000002, 4.0 }; double[] yValues = new double[] { 2.0, 4.e10, 3.e-5, 5.e11 }; PiecewisePolynomialInterpolator interpPos = new LinearInterpolator(); interpPos.interpolate(xValues, yValues); }
/// public virtual void recov4ptsMultiTest() { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[] xValues = new double[] {1.0, 2.0, 3.0, 4 }; double[] xValues = new double[] { 1.0, 2.0, 3.0, 4 }; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[][] yValues = new double[][] { {6.0, 1.0, 8.0, -2.0 }, {1.0, 1.0 / 3.0, 2.0 / 11.0, 1.0 / 7.0 } }; double[][] yValues = new double[][] { new double[] { 6.0, 1.0, 8.0, -2.0 }, new double[] { 1.0, 1.0 / 3.0, 2.0 / 11.0, 1.0 / 7.0 } }; const int nIntervalsExp = 3; const int orderExp = 2; const int dimExp = 2; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[][] coefsMatExp = new double[][] { {-5.0, 6.0 }, {-2.0 / 3.0, 1.0 }, {7.0, 1.0 }, {-5.0 / 33.0, 1.0 / 3.0 }, {-10.0, 8.0 }, {-3.0 / 77.0, 2.0 / 11.0 } }; double[][] coefsMatExp = new double[][] { new double[] { -5.0, 6.0 }, new double[] { -2.0 / 3.0, 1.0 }, new double[] { 7.0, 1.0 }, new double[] { -5.0 / 33.0, 1.0 / 3.0 }, new double[] { -10.0, 8.0 }, new double[] { -3.0 / 77.0, 2.0 / 11.0 } }; LinearInterpolator interpMatrix = new LinearInterpolator(); PiecewisePolynomialResult result = interpMatrix.interpolate(xValues, yValues); assertEquals(result.Dimensions, dimExp); assertEquals(result.NumberOfIntervals, nIntervalsExp); assertEquals(result.Dimensions, dimExp); for (int i = 0; i < nIntervalsExp * dimExp; ++i) { for (int j = 0; j < orderExp; ++j) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double ref = coefsMatExp[i][j] == 0.0 ? 1.0 : Math.abs(coefsMatExp[i][j]); double @ref = coefsMatExp[i][j] == 0.0 ? 1.0 : Math.Abs(coefsMatExp[i][j]); assertEquals(result.CoefMatrix.get(i, j), coefsMatExp[i][j], @ref * EPS); } } for (int j = 0; j < nIntervalsExp + 1; ++j) { assertEquals(result.Knots.get(j), xValues[j]); } }
/// //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test(expectedExceptions = IllegalArgumentException.class) public void lowDegreeMultiTest() public virtual void lowDegreeMultiTest() { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[] xValues = new double[] {1.0, 2.0, 3.0 }; double[] xValues = new double[] { 1.0, 2.0, 3.0 }; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[][] yValues = new double[][] { {0.0, 0.1, 0.05 }, {0.0, 0.1, 1.05 } }; double[][] yValues = new double[][] { new double[] { 0.0, 0.1, 0.05 }, new double[] { 0.0, 0.1, 1.05 } }; PiecewisePolynomialInterpolator interp = new LinearInterpolator(); PiecewisePolynomialInterpolator interpPos = new MonotonicityPreservingCubicSplineInterpolator(interp); interpPos.interpolate(xValues, yValues); }
/// public virtual void recov4ptsTest() { double[] xValues = new double[] { 1.0, 2.0, 4.0, 7.0 }; double[] yValues = new double[] { 6.0, 1.0, 8.0, -2.0 }; int nIntervalsExp = 3; int orderExp = 2; int dimExp = 1; double[][] coefsMatExp = new double[][] { new double[] { -5.0, 6.0 }, new double[] { 7.0 / 2.0, 1.0 }, new double[] { -10.0 / 3.0, 8.0 } }; LinearInterpolator interpMatrix = new LinearInterpolator(); PiecewisePolynomialResult result = interpMatrix.interpolate(xValues, yValues); assertEquals(result.Dimensions, dimExp); assertEquals(result.NumberOfIntervals, nIntervalsExp); assertEquals(result.Dimensions, dimExp); for (int i = 0; i < nIntervalsExp; ++i) { for (int j = 0; j < orderExp; ++j) { double @ref = coefsMatExp[i][j] == 0.0 ? 1.0 : Math.Abs(coefsMatExp[i][j]); assertEquals(result.CoefMatrix.get(i, j), coefsMatExp[i][j], @ref * EPS); } } for (int j = 0; j < nIntervalsExp + 1; ++j) { assertEquals(result.Knots.get(j), xValues[j]); } // sensitivity double delta = 1.0e-6; double[] keys = new double[] { -1.5, 2.43, 4.0, 7.0, 12.7 }; testSensitivity(xValues, yValues, keys, delta); }
/// <summary> /// Derive value of the underlying cubic spline function at the value of xKey /// </summary> public virtual void InterpolantsTest() { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[] xValues = new double[] {1.0, 2.0, 3.0, 4.0 }; double[] xValues = new double[] { 1.0, 2.0, 3.0, 4.0 }; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[][] yValues = new double[][] { {6.0, 25.0 / 6.0, 10.0 / 3.0, 4.0 }, {6.0, 1.0, 0.0, 0.0 } }; double[][] yValues = new double[][] { new double[] { 6.0, 25.0 / 6.0, 10.0 / 3.0, 4.0 }, new double[] { 6.0, 1.0, 0.0, 0.0 } }; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[][] xKey = new double[][] { {-1.0, 0.5, 1.5 }, {2.5, 3.5, 4.5 } }; double[][] xKey = new double[][] { new double[] { -1.0, 0.5, 1.5 }, new double[] { 2.5, 3.5, 4.5 } }; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[][][] resultValuesExpected = new double[][][] { { {29.0 / 3.0, 15.0 / 4.0 }, {16.0, 1.0 / 2.0 } }, { {83.0 / 12.0, 11.0 / 3.0 }, {17.0 / 2.0, 0.0 } }, { {61.0 / 12.0, 13.0 / 3.0 }, {7.0 / 2.0, 0.0 } } }; double[][][] resultValuesExpected = new double[][][] { new double[][] { new double[] { 29.0 / 3.0, 15.0 / 4.0 }, new double[] { 16.0, 1.0 / 2.0 } }, new double[][] { new double[] { 83.0 / 12.0, 11.0 / 3.0 }, new double[] { 17.0 / 2.0, 0.0 } }, new double[][] { new double[] { 61.0 / 12.0, 13.0 / 3.0 }, new double[] { 7.0 / 2.0, 0.0 } } }; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int yDim = yValues.length; int yDim = yValues.Length; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int keyLength = xKey[0].length; int keyLength = xKey[0].Length; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int keyDim = xKey.length; int keyDim = xKey.Length; LinearInterpolator interp = new LinearInterpolator(); double value = interp.interpolate(xValues, yValues[0], xKey[0][0]); { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double ref = resultValuesExpected[0][0][0] == 0.0 ? 1.0 : Math.abs(resultValuesExpected[0][0][0]); double @ref = resultValuesExpected[0][0][0] == 0.0 ? 1.0 : Math.Abs(resultValuesExpected[0][0][0]); assertEquals(value, resultValuesExpected[0][0][0], @ref * EPS); } DoubleArray valuesVec1 = interp.interpolate(xValues, yValues, xKey[0][0]); for (int i = 0; i < yDim; ++i) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double ref = resultValuesExpected[0][i][0] == 0.0 ? 1.0 : Math.abs(resultValuesExpected[0][i][0]); double @ref = resultValuesExpected[0][i][0] == 0.0 ? 1.0 : Math.Abs(resultValuesExpected[0][i][0]); assertEquals(valuesVec1.get(i), resultValuesExpected[0][i][0], @ref * EPS); } DoubleArray valuesVec2 = interp.interpolate(xValues, yValues[0], xKey[0]); for (int k = 0; k < keyLength; ++k) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double ref = resultValuesExpected[k][0][0] == 0.0 ? 1.0 : Math.abs(resultValuesExpected[k][0][0]); double @ref = resultValuesExpected[k][0][0] == 0.0 ? 1.0 : Math.Abs(resultValuesExpected[k][0][0]); assertEquals(valuesVec2.get(k), resultValuesExpected[k][0][0], @ref * EPS); } DoubleMatrix valuesMat1 = interp.interpolate(xValues, yValues[0], xKey); for (int j = 0; j < keyDim; ++j) { for (int k = 0; k < keyLength; ++k) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double ref = resultValuesExpected[k][0][j] == 0.0 ? 1.0 : Math.abs(resultValuesExpected[k][0][j]); double @ref = resultValuesExpected[k][0][j] == 0.0 ? 1.0 : Math.Abs(resultValuesExpected[k][0][j]); assertEquals(valuesMat1.get(j, k), resultValuesExpected[k][0][j], @ref * EPS); } } DoubleMatrix valuesMat2 = interp.interpolate(xValues, yValues, xKey[0]); for (int i = 0; i < yDim; ++i) { for (int k = 0; k < keyLength; ++k) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double ref = resultValuesExpected[k][i][0] == 0.0 ? 1.0 : Math.abs(resultValuesExpected[k][i][0]); double @ref = resultValuesExpected[k][i][0] == 0.0 ? 1.0 : Math.Abs(resultValuesExpected[k][i][0]); assertEquals(valuesMat2.get(i, k), resultValuesExpected[k][i][0], @ref * EPS); } } DoubleMatrix[] valuesMat3 = interp.interpolate(xValues, yValues, xKey); for (int i = 0; i < yDim; ++i) { for (int j = 0; j < keyDim; ++j) { for (int k = 0; k < keyLength; ++k) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double ref = resultValuesExpected[k][i][j] == 0.0 ? 1.0 : Math.abs(resultValuesExpected[k][i][j]); double @ref = resultValuesExpected[k][i][j] == 0.0 ? 1.0 : Math.Abs(resultValuesExpected[k][i][j]); assertEquals(valuesMat3[k].get(i, j), resultValuesExpected[k][i][j], @ref * EPS); } } } }