@Test(expectedExceptions = IllegalArgumentException.class) public void wrongLengthTest() { final int nSamples = 10; final List<DoublesPair> points = new ArrayList<>(nSamples); final DoubleMatrix1D x = new DoubleMatrix1D(nSamples + 1); x.getData()[0] = RANDOM.nextDouble(); for (int i = 0; i < nSamples; i++) { final double t = RANDOM.nextDouble() * 20.0; final double k = RANDOM.nextDouble() * 0.15; points.add(DoublesPair.of(t, k)); x.getData()[i + 1] = RANDOM.nextDouble(); } final DiscreteVolatilityFunctionProvider pro = new DiscreteVolatilityFunctionProviderDirect(); final DiscreteVolatilityFunction func = pro.from(points); func.evaluate(x); }
@Test public void test() { final int nSamples = 10; final List<DoublesPair> points = new ArrayList<>(nSamples); final DoubleMatrix1D x = new DoubleMatrix1D(nSamples); for (int i = 0; i < nSamples; i++) { final double t = RANDOM.nextDouble() * 20.0; final double k = RANDOM.nextDouble() * 0.15; points.add(DoublesPair.of(t, k)); x.getData()[i] = RANDOM.nextDouble(); } final DiscreteVolatilityFunctionProvider pro = new DiscreteVolatilityFunctionProviderDirect(); final DiscreteVolatilityFunction func = pro.from(points); final DoubleMatrix1D y = func.evaluate(x); AssertMatrix.assertEqualsVectors(x, y, 0.0); final DoubleMatrix2D jac = func.calculateJacobian(x); AssertMatrix.assertEqualsMatrix(new IdentityMatrix(nSamples), jac, 0.0); assertEquals(nSamples, func.getLengthOfDomain()); assertEquals(nSamples, func.getLengthOfRange()); }