On Wed, Dec 19, 2012 at 09:10:21PM -0000, l...@apache.org wrote: > Author: luc > Date: Wed Dec 19 21:10:20 2012 > New Revision: 1424107 > > URL: http://svn.apache.org/viewvc?rev=1424107&view=rev > Log: > Added new tests. > > Modified: > > commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/DSCompilerTest.java > > commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/DerivativeStructureTest.java > > commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/FiniteDifferencesDifferentiatorTest.java > > Modified: > commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/DSCompilerTest.java > URL: > http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/DSCompilerTest.java?rev=1424107&r1=1424106&r2=1424107&view=diff > ============================================================================== > --- > commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/DSCompilerTest.java > (original) > +++ > commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/DSCompilerTest.java > Wed Dec 19 21:10:20 2012 > @@ -21,6 +21,7 @@ import java.lang.reflect.Field; > import java.util.HashMap; > import java.util.Map; > > +import org.apache.commons.math3.exception.DimensionMismatchException; > import org.apache.commons.math3.util.ArithmeticUtils; > import org.junit.Assert; > import org.junit.Test; > @@ -128,6 +129,16 @@ public class DSCompilerTest { > > } > > + @Test(expected=DimensionMismatchException.class) > + public void testIncompatbileParams() { > + DSCompiler.getCompiler(3, > 2).checkCompatibility(DSCompiler.getCompiler(4, 2)); > + } > + > + @Test(expected=DimensionMismatchException.class) > + public void testIncompatbileOrder() { > + DSCompiler.getCompiler(3, > 3).checkCompatibility(DSCompiler.getCompiler(3, 2)); > + } > +
There typos in the method names: "Incompatbile" instead of "Incompatible". Gilles > @Test > public void testSymmetry() { > for (int i = 0; i < 6; ++i) { > > Modified: > commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/DerivativeStructureTest.java > URL: > http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/DerivativeStructureTest.java?rev=1424107&r1=1424106&r2=1424107&view=diff > ============================================================================== > --- > commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/DerivativeStructureTest.java > (original) > +++ > commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/DerivativeStructureTest.java > Wed Dec 19 21:10:20 2012 > @@ -225,24 +225,37 @@ public class DerivativeStructureTest { > -2, dsZ, > 1, new > DerivativeStructure(8, dsZ.multiply(dsX), > > -1, dsY).pow(3)); > + DerivativeStructure dsOther = > + new DerivativeStructure(1, dsX, > + 5, dsX.multiply(dsY), > + -2, dsZ).add(new > DerivativeStructure(8, dsZ.multiply(dsX), > + > -1, dsY).pow(3)); > double f = x + 5 * x * y - 2 * z + FastMath.pow(8 * z * > x - y, 3); > Assert.assertEquals(f, ds.getValue(), > FastMath.abs(epsilon * f)); > + Assert.assertEquals(f, dsOther.getValue(), > + FastMath.abs(epsilon * f)); > > // df/dx = 1 + 5 y + 24 (8 z x - y)^2 z > double dfdx = 1 + 5 * y + 24 * z * FastMath.pow(8 * z * > x - y, 2); > Assert.assertEquals(dfdx, ds.getPartialDerivative(1, 0, > 0), > FastMath.abs(epsilon * dfdx)); > + Assert.assertEquals(dfdx, > dsOther.getPartialDerivative(1, 0, 0), > + FastMath.abs(epsilon * dfdx)); > > // df/dxdy = 5 + 48 z*(y - 8 z x) > double dfdxdy = 5 + 48 * z * (y - 8 * z * x); > Assert.assertEquals(dfdxdy, ds.getPartialDerivative(1, > 1, 0), > FastMath.abs(epsilon * dfdxdy)); > + Assert.assertEquals(dfdxdy, > dsOther.getPartialDerivative(1, 1, 0), > + FastMath.abs(epsilon * dfdxdy)); > > // df/dxdydz = 48 (y - 16 z x) > double dfdxdydz = 48 * (y - 16 * z * x); > Assert.assertEquals(dfdxdydz, ds.getPartialDerivative(1, > 1, 1), > FastMath.abs(epsilon * dfdxdydz)); > + Assert.assertEquals(dfdxdydz, > dsOther.getPartialDerivative(1, 1, 1), > + FastMath.abs(epsilon * dfdxdydz)); > > } > > @@ -507,6 +520,51 @@ public class DerivativeStructureTest { > } > > @Test > + public void testPrimitiveRemainder() { > + double epsilon = 1.0e-15; > + for (int maxOrder = 0; maxOrder < 5; ++maxOrder) { > + for (double x = -1.7; x < 2; x += 0.2) { > + DerivativeStructure dsX = new DerivativeStructure(2, > maxOrder, 0, x); > + for (double y = -1.7; y < 2; y += 0.2) { > + DerivativeStructure remainder = dsX.remainder(y); > + DerivativeStructure ref = dsX.subtract(x - (x % y)); > + DerivativeStructure zero = remainder.subtract(ref); > + for (int n = 0; n <= maxOrder; ++n) { > + for (int m = 0; m <= maxOrder; ++m) { > + if (n + m <= maxOrder) { > + Assert.assertEquals(0, > zero.getPartialDerivative(n, m), epsilon); > + } > + } > + } > + } > + } > + } > + } > + > + @Test > + public void testRemainder() { > + double epsilon = 1.0e-15; > + for (int maxOrder = 0; maxOrder < 5; ++maxOrder) { > + for (double x = -1.7; x < 2; x += 0.2) { > + DerivativeStructure dsX = new DerivativeStructure(2, > maxOrder, 0, x); > + for (double y = -1.7; y < 2; y += 0.2) { > + DerivativeStructure dsY = new DerivativeStructure(2, > maxOrder, 1, y); > + DerivativeStructure remainder = dsX.remainder(dsY); > + DerivativeStructure ref = dsX.subtract(dsY.multiply((x - > (x % y)) / y)); > + DerivativeStructure zero = remainder.subtract(ref); > + for (int n = 0; n <= maxOrder; ++n) { > + for (int m = 0; m <= maxOrder; ++m) { > + if (n + m <= maxOrder) { > + Assert.assertEquals(0, > zero.getPartialDerivative(n, m), epsilon); > + } > + } > + } > + } > + } > + } > + } > + > + @Test > public void testExp() { > double[] epsilon = new double[] { 1.0e-16, 1.0e-16, 1.0e-16, > 1.0e-16, 1.0e-16 }; > for (int maxOrder = 0; maxOrder < 5; ++maxOrder) { > > Modified: > commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/FiniteDifferencesDifferentiatorTest.java > URL: > http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/FiniteDifferencesDifferentiatorTest.java?rev=1424107&r1=1424106&r2=1424107&view=diff > ============================================================================== > --- > commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/FiniteDifferencesDifferentiatorTest.java > (original) > +++ > commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/differentiation/FiniteDifferencesDifferentiatorTest.java > Wed Dec 19 21:10:20 2012 > @@ -108,6 +108,7 @@ public class FiniteDifferencesDifferenti > DerivativeStructure dsX = new DerivativeStructure(1, > maxError.length - 1, 0, x); > DerivativeStructure yRef = gaussian.value(dsX); > DerivativeStructure y = f.value(dsX); > + Assert.assertEquals(f.value(dsX.getValue()), > f.value(dsX).getValue(), 1.0e-15); > for (int order = 0; order <= yRef.getOrder(); ++order) { > maxError[order] = FastMath.max(maxError[order], > > FastMath.abs(yRef.getPartialDerivative(order) - > @@ -297,9 +298,16 @@ public class FiniteDifferencesDifferenti > }); > > for (double x = -10; x < 10; x += 0.1) { > - DerivativeStructure[] y = f.value(new DerivativeStructure(1, 2, > 0, x)); > + DerivativeStructure dsX = new DerivativeStructure(1, 2, 0, x); > + DerivativeStructure[] y = f.value(dsX); > double cos = FastMath.cos(x); > double sin = FastMath.sin(x); > + double[] f1 = f.value(dsX.getValue()); > + DerivativeStructure[] f2 = f.value(dsX); > + Assert.assertEquals(f1.length, f2.length); > + for (int i = 0; i < f1.length; ++i) { > + Assert.assertEquals(f1[i], f2[i].getValue(), 1.0e-15); > + } > Assert.assertEquals( cos, y[0].getValue(), 7.0e-16); > Assert.assertEquals( sin, y[1].getValue(), 7.0e-16); > Assert.assertEquals(-sin, y[0].getPartialDerivative(1), 6.0e-14); > @@ -328,11 +336,21 @@ public class FiniteDifferencesDifferenti > }); > > for (double x = -1; x < 1; x += 0.02) { > - DerivativeStructure[][] y = f.value(new DerivativeStructure(1, > 2, 0, x)); > + DerivativeStructure dsX = new DerivativeStructure(1, 2, 0, x); > + DerivativeStructure[][] y = f.value(dsX); > double cos = FastMath.cos(x); > double sin = FastMath.sin(x); > double cosh = FastMath.cosh(x); > double sinh = FastMath.sinh(x); > + double[][] f1 = f.value(dsX.getValue()); > + DerivativeStructure[][] f2 = f.value(dsX); > + Assert.assertEquals(f1.length, f2.length); > + for (int i = 0; i < f1.length; ++i) { > + Assert.assertEquals(f1[i].length, f2[i].length); > + for (int j = 0; j < f1[i].length; ++j) { > + Assert.assertEquals(f1[i][j], f2[i][j].getValue(), > 1.0e-15); > + } > + } > Assert.assertEquals(cos, y[0][0].getValue(), 7.0e-18); > Assert.assertEquals(sin, y[0][1].getValue(), 6.0e-17); > Assert.assertEquals(cosh, y[1][0].getValue(), 3.0e-16); > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org