Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java Thu Jan 20 20:57:11 2011 @@ -134,7 +134,8 @@ public class ClassicalRungeKuttaIntegrat TestProblemAbstract[] problems = TestProblemFactory.getProblems(); for (int k = 0; k < problems.length; ++k) { - double previousError = Double.NaN; + double previousValueError = Double.NaN; + double previousTimeError = Double.NaN; for (int i = 4; i < 10; ++i) { TestProblemAbstract pb = problems[k].copy(); @@ -157,10 +158,16 @@ public class ClassicalRungeKuttaIntegrat double error = handler.getMaximalValueError(); if (i > 4) { - assertTrue(error < FastMath.abs(previousError)); + assertTrue(error < FastMath.abs(previousValueError)); } - previousError = error; - assertEquals(0, handler.getMaximalTimeError(), 1.0e-12); + previousValueError = error; + + double timeError = handler.getMaximalTimeError(); + if (i > 4) { + assertTrue(timeError <= FastMath.abs(previousTimeError)); + } + previousTimeError = timeError; + integ.clearEventHandlers(); assertEquals(0, integ.getEventHandlers().size()); }
Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ClassicalRungeKuttaStepInterpolatorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ClassicalRungeKuttaStepInterpolatorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ClassicalRungeKuttaStepInterpolatorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ClassicalRungeKuttaStepInterpolatorTest.java Thu Jan 20 20:57:11 2011 @@ -64,8 +64,8 @@ public class ClassicalRungeKuttaStepInte oos.writeObject(handler); } - assertTrue(bos.size () > 700000); - assertTrue(bos.size () < 701000); + assertTrue(bos.size () > 753000); + assertTrue(bos.size () < 754000); ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bis); Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince54IntegratorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince54IntegratorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince54IntegratorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince54IntegratorTest.java Thu Jan 20 20:57:11 2011 @@ -217,9 +217,10 @@ public class DormandPrince54IntegratorTe TestProblemHandler handler = new TestProblemHandler(pb, integ); integ.addStepHandler(handler); EventHandler[] functions = pb.getEventsHandlers(); + double convergence = 1.0e-8 * maxStep; for (int l = 0; l < functions.length; ++l) { integ.addEventHandler(functions[l], - Double.POSITIVE_INFINITY, 1.0e-8 * maxStep, 1000); + Double.POSITIVE_INFINITY, convergence, 1000); } assertEquals(functions.length, integ.getEventHandlers().size()); integ.integrate(pb, @@ -227,8 +228,8 @@ public class DormandPrince54IntegratorTe pb.getFinalTime(), new double[pb.getDimension()]); assertTrue(handler.getMaximalValueError() < 5.0e-6); - assertEquals(0, handler.getMaximalTimeError(), 1.0e-12); - assertEquals(12.0, handler.getLastTime(), 1.0e-8 * maxStep); + assertEquals(0, handler.getMaximalTimeError(), convergence); + assertEquals(12.0, handler.getLastTime(), convergence); integ.clearEventHandlers(); assertEquals(0, integ.getEventHandlers().size()); Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince54StepInterpolatorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince54StepInterpolatorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince54StepInterpolatorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince54StepInterpolatorTest.java Thu Jan 20 20:57:11 2011 @@ -77,8 +77,8 @@ public class DormandPrince54StepInterpol oos.writeObject(handler); } - assertTrue(bos.size () > 119500); - assertTrue(bos.size () < 120500); + assertTrue(bos.size () > 126000); + assertTrue(bos.size () < 127000); ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bis); Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince853IntegratorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince853IntegratorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince853IntegratorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince853IntegratorTest.java Thu Jan 20 20:57:11 2011 @@ -205,7 +205,7 @@ public class DormandPrince853IntegratorT integ.integrate(pb, pb.getInitialTime(), pb.getInitialState(), pb.getFinalTime(), new double[pb.getDimension()]); - assertTrue(handler.getLastError() < 8.1e-8); + assertTrue(handler.getLastError() < 1.1e-7); assertTrue(handler.getMaximalValueError() < 1.1e-7); assertEquals(0, handler.getMaximalTimeError(), 1.0e-12); assertEquals("Dormand-Prince 8 (5, 3)", integ.getName()); @@ -226,9 +226,10 @@ public class DormandPrince853IntegratorT TestProblemHandler handler = new TestProblemHandler(pb, integ); integ.addStepHandler(handler); EventHandler[] functions = pb.getEventsHandlers(); + double convergence = 1.0e-8 * maxStep; for (int l = 0; l < functions.length; ++l) { integ.addEventHandler(functions[l], - Double.POSITIVE_INFINITY, 1.0e-8 * maxStep, 1000); + Double.POSITIVE_INFINITY, convergence, 1000); } assertEquals(functions.length, integ.getEventHandlers().size()); integ.integrate(pb, @@ -236,8 +237,8 @@ public class DormandPrince853IntegratorT pb.getFinalTime(), new double[pb.getDimension()]); assertEquals(0, handler.getMaximalValueError(), 1.1e-7); - assertEquals(0, handler.getMaximalTimeError(), 1.0e-12); - assertEquals(12.0, handler.getLastTime(), 1.0e-8 * maxStep); + assertEquals(0, handler.getMaximalTimeError(), convergence); + assertEquals(12.0, handler.getLastTime(), convergence); integ.clearEventHandlers(); assertEquals(0, integ.getEventHandlers().size()); Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince853StepInterpolatorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince853StepInterpolatorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince853StepInterpolatorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/DormandPrince853StepInterpolatorTest.java Thu Jan 20 20:57:11 2011 @@ -77,8 +77,8 @@ public class DormandPrince853StepInterpo oos.writeObject(handler); } - assertTrue(bos.size () > 86000); - assertTrue(bos.size () < 87000); + assertTrue(bos.size () > 88000); + assertTrue(bos.size () < 89000); ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bis); Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/EulerIntegratorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/EulerIntegratorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/EulerIntegratorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/EulerIntegratorTest.java Thu Jan 20 20:57:11 2011 @@ -60,12 +60,12 @@ public class EulerIntegratorTest TestProblemAbstract[] problems = TestProblemFactory.getProblems(); for (int k = 0; k < problems.length; ++k) { - double previousError = Double.NaN; - for (int i = 4; i < 10; ++i) { + double previousValueError = Double.NaN; + double previousTimeError = Double.NaN; + for (int i = 4; i < 8; ++i) { TestProblemAbstract pb = problems[k].copy(); - double step = (pb.getFinalTime() - pb.getInitialTime()) - * FastMath.pow(2.0, -i); + double step = (pb.getFinalTime() - pb.getInitialTime()) * FastMath.pow(2.0, -i); FirstOrderIntegrator integ = new EulerIntegrator(step); TestProblemHandler handler = new TestProblemHandler(pb, integ); @@ -81,12 +81,17 @@ public class EulerIntegratorTest assertEquals(pb.getFinalTime(), stopTime, 1.0e-10); } - double error = handler.getMaximalValueError(); + double valueError = handler.getMaximalValueError(); if (i > 4) { - assertTrue(error < FastMath.abs(previousError)); + assertTrue(valueError < FastMath.abs(previousValueError)); } - previousError = error; - assertEquals(0, handler.getMaximalTimeError(), 1.0e-12); + previousValueError = valueError; + + double timeError = handler.getMaximalTimeError(); + if (i > 4) { + assertTrue(timeError <= FastMath.abs(previousTimeError)); + } + previousTimeError = timeError; } Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GillIntegratorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GillIntegratorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GillIntegratorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GillIntegratorTest.java Thu Jan 20 20:57:11 2011 @@ -61,12 +61,12 @@ public class GillIntegratorTest TestProblemAbstract[] problems = TestProblemFactory.getProblems(); for (int k = 0; k < problems.length; ++k) { - double previousError = Double.NaN; + double previousValueError = Double.NaN; + double previousTimeError = Double.NaN; for (int i = 5; i < 10; ++i) { TestProblemAbstract pb = problems[k].copy(); - double step = (pb.getFinalTime() - pb.getInitialTime()) - * FastMath.pow(2.0, -i); + double step = (pb.getFinalTime() - pb.getInitialTime()) * FastMath.pow(2.0, -i); FirstOrderIntegrator integ = new GillIntegrator(step); TestProblemHandler handler = new TestProblemHandler(pb, integ); @@ -82,12 +82,17 @@ public class GillIntegratorTest assertEquals(pb.getFinalTime(), stopTime, 1.0e-10); } - double error = handler.getMaximalValueError(); + double valueError = handler.getMaximalValueError(); if (i > 5) { - assertTrue(error < FastMath.abs(previousError)); + assertTrue(valueError < FastMath.abs(previousValueError)); } - previousError = error; - assertEquals(0, handler.getMaximalTimeError(), 1.0e-12); + previousValueError = valueError; + + double timeError = handler.getMaximalTimeError(); + if (i > 5) { + assertTrue(timeError <= FastMath.abs(previousTimeError)); + } + previousTimeError = timeError; } Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GillStepInterpolatorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GillStepInterpolatorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GillStepInterpolatorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GillStepInterpolatorTest.java Thu Jan 20 20:57:11 2011 @@ -65,8 +65,8 @@ public class GillStepInterpolatorTest { oos.writeObject(handler); } - assertTrue(bos.size () > 700000); - assertTrue(bos.size () < 701000); + assertTrue(bos.size () > 753000); + assertTrue(bos.size () < 754000); ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bis); Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerIntegratorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerIntegratorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerIntegratorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerIntegratorTest.java Thu Jan 20 20:57:11 2011 @@ -113,8 +113,8 @@ public class GraggBulirschStoerIntegrato integ.integrate(pb, pb.getInitialTime(), pb.getInitialState(), pb.getFinalTime(), new double[pb.getDimension()]); - assertTrue(handler.getLastError() < 9.0e-10); - assertTrue(handler.getMaximalValueError() < 9.0e-10); + assertTrue(handler.getLastError() < 7.5e-9); + assertTrue(handler.getMaximalValueError() < 8.1e-9); assertEquals(0, handler.getMaximalTimeError(), 1.0e-12); assertEquals("Gragg-Bulirsch-Stoer", integ.getName()); } @@ -210,9 +210,9 @@ public class GraggBulirschStoerIntegrato TestProblemHandler handler = new TestProblemHandler(pb, integ); integ.addStepHandler(handler); EventHandler[] functions = pb.getEventsHandlers(); + double convergence = 1.0e-8 * maxStep; for (int l = 0; l < functions.length; ++l) { - integ.addEventHandler(functions[l], - Double.POSITIVE_INFINITY, 1.0e-8 * maxStep, 1000); + integ.addEventHandler(functions[l], Double.POSITIVE_INFINITY, convergence, 1000); } assertEquals(functions.length, integ.getEventHandlers().size()); integ.integrate(pb, @@ -220,8 +220,8 @@ public class GraggBulirschStoerIntegrato pb.getFinalTime(), new double[pb.getDimension()]); assertTrue(handler.getMaximalValueError() < 5.0e-8); - assertEquals(0, handler.getMaximalTimeError(), 1.0e-12); - assertEquals(12.0, handler.getLastTime(), 1.0e-8 * maxStep); + assertEquals(0, handler.getMaximalTimeError(), convergence); + assertEquals(12.0, handler.getLastTime(), convergence); integ.clearEventHandlers(); assertEquals(0, integ.getEventHandlers().size()); Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerStepInterpolatorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerStepInterpolatorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerStepInterpolatorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerStepInterpolatorTest.java Thu Jan 20 20:57:11 2011 @@ -79,8 +79,8 @@ public class GraggBulirschStoerStepInter oos.writeObject(handler); } - assertTrue(bos.size () > 33000); - assertTrue(bos.size () < 34000); + assertTrue(bos.size () > 34000); + assertTrue(bos.size () < 35000); ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bis); Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/HighamHall54IntegratorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/HighamHall54IntegratorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/HighamHall54IntegratorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/HighamHall54IntegratorTest.java Thu Jan 20 20:57:11 2011 @@ -32,8 +32,6 @@ import org.apache.commons.math.ode.TestP import org.apache.commons.math.ode.TestProblemHandler; import org.apache.commons.math.ode.events.EventException; import org.apache.commons.math.ode.events.EventHandler; -import org.apache.commons.math.ode.sampling.StepHandler; -import org.apache.commons.math.ode.sampling.StepInterpolator; import org.apache.commons.math.util.FastMath; public class HighamHall54IntegratorTest @@ -176,9 +174,10 @@ public class HighamHall54IntegratorTest TestProblemHandler handler = new TestProblemHandler(pb, integ); integ.addStepHandler(handler); EventHandler[] functions = pb.getEventsHandlers(); + double convergence = 1.0e-8 * maxStep; for (int l = 0; l < functions.length; ++l) { integ.addEventHandler(functions[l], - Double.POSITIVE_INFINITY, 1.0e-8 * maxStep, 1000); + Double.POSITIVE_INFINITY, convergence, 1000); } assertEquals(functions.length, integ.getEventHandlers().size()); integ.integrate(pb, @@ -186,8 +185,8 @@ public class HighamHall54IntegratorTest pb.getFinalTime(), new double[pb.getDimension()]); assertTrue(handler.getMaximalValueError() < 1.0e-7); - assertEquals(0, handler.getMaximalTimeError(), 1.0e-12); - assertEquals(12.0, handler.getLastTime(), 1.0e-8 * maxStep); + assertEquals(0, handler.getMaximalTimeError(), convergence); + assertEquals(12.0, handler.getLastTime(), convergence); integ.clearEventHandlers(); assertEquals(0, integ.getEventHandlers().size()); @@ -343,46 +342,13 @@ public class HighamHall54IntegratorTest FirstOrderIntegrator integ = new HighamHall54Integrator(minStep, maxStep, vecAbsoluteTolerance, vecRelativeTolerance); - integ.addStepHandler(new KeplerHandler(pb)); + TestProblemHandler handler = new TestProblemHandler(pb, integ); + integ.addStepHandler(handler); integ.integrate(pb, pb.getInitialTime(), pb.getInitialState(), pb.getFinalTime(), new double[pb.getDimension()]); + assertEquals(0.0, handler.getMaximalValueError(), 1.5e-4); assertEquals("Higham-Hall 5(4)", integ.getName()); } - private static class KeplerHandler implements StepHandler { - public KeplerHandler(TestProblem3 pb) { - this.pb = pb; - nbSteps = 0; - maxError = 0; - } - public boolean requiresDenseOutput() { - return false; - } - public void reset() { - nbSteps = 0; - maxError = 0; - } - public void handleStep(StepInterpolator interpolator, - boolean isLast) throws MathUserException { - - ++nbSteps; - double[] interpolatedY = interpolator.getInterpolatedState(); - double[] theoreticalY = pb.computeTheoreticalState(interpolator.getCurrentTime()); - double dx = interpolatedY[0] - theoreticalY[0]; - double dy = interpolatedY[1] - theoreticalY[1]; - double error = dx * dx + dy * dy; - if (error > maxError) { - maxError = error; - } - if (isLast) { - assertTrue(maxError < 4.2e-11); - assertTrue(nbSteps < 670); - } - } - private TestProblem3 pb; - private int nbSteps; - private double maxError; - } - } Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/HighamHall54StepInterpolatorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/HighamHall54StepInterpolatorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/HighamHall54StepInterpolatorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/HighamHall54StepInterpolatorTest.java Thu Jan 20 20:57:11 2011 @@ -77,8 +77,8 @@ public class HighamHall54StepInterpolato oos.writeObject(handler); } - assertTrue(bos.size () > 158000); - assertTrue(bos.size () < 159000); + assertTrue(bos.size () > 167000); + assertTrue(bos.size () < 168000); ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bis); Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/MidpointIntegratorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/MidpointIntegratorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/MidpointIntegratorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/MidpointIntegratorTest.java Thu Jan 20 20:57:11 2011 @@ -60,12 +60,12 @@ public class MidpointIntegratorTest TestProblemAbstract[] problems = TestProblemFactory.getProblems(); for (int k = 0; k < problems.length; ++k) { - double previousError = Double.NaN; + double previousValueError = Double.NaN; + double previousTimeError = Double.NaN; for (int i = 4; i < 10; ++i) { TestProblemAbstract pb = problems[k].copy(); - double step = (pb.getFinalTime() - pb.getInitialTime()) - * FastMath.pow(2.0, -i); + double step = (pb.getFinalTime() - pb.getInitialTime()) * FastMath.pow(2.0, -i); FirstOrderIntegrator integ = new MidpointIntegrator(step); TestProblemHandler handler = new TestProblemHandler(pb, integ); integ.addStepHandler(handler); @@ -81,12 +81,17 @@ public class MidpointIntegratorTest assertEquals(pb.getFinalTime(), stopTime, 1.0e-10); } - double error = handler.getMaximalValueError(); + double valueError = handler.getMaximalValueError(); if (i > 4) { - assertTrue(error < FastMath.abs(previousError)); + assertTrue(valueError < FastMath.abs(previousValueError)); } - previousError = error; - assertEquals(0, handler.getMaximalTimeError(), 1.0e-12); + previousValueError = valueError; + + double timeError = handler.getMaximalTimeError(); + if (i > 4) { + assertTrue(timeError <= FastMath.abs(previousTimeError)); + } + previousTimeError = timeError; } Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/MidpointStepInterpolatorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/MidpointStepInterpolatorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/MidpointStepInterpolatorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/MidpointStepInterpolatorTest.java Thu Jan 20 20:57:11 2011 @@ -65,8 +65,8 @@ public class MidpointStepInterpolatorTes oos.writeObject(handler); } - assertTrue(bos.size () > 98000); - assertTrue(bos.size () < 99000); + assertTrue(bos.size () > 114000); + assertTrue(bos.size () < 115000); ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bis); Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ThreeEighthesIntegratorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ThreeEighthesIntegratorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ThreeEighthesIntegratorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ThreeEighthesIntegratorTest.java Thu Jan 20 20:57:11 2011 @@ -61,12 +61,12 @@ public class ThreeEighthesIntegratorTest TestProblemAbstract[] problems = TestProblemFactory.getProblems(); for (int k = 0; k < problems.length; ++k) { - double previousError = Double.NaN; + double previousValueError = Double.NaN; + double previousTimeError = Double.NaN; for (int i = 4; i < 10; ++i) { TestProblemAbstract pb = problems[k].copy(); - double step = (pb.getFinalTime() - pb.getInitialTime()) - * FastMath.pow(2.0, -i); + double step = (pb.getFinalTime() - pb.getInitialTime()) * FastMath.pow(2.0, -i); FirstOrderIntegrator integ = new ThreeEighthesIntegrator(step); TestProblemHandler handler = new TestProblemHandler(pb, integ); @@ -84,10 +84,15 @@ public class ThreeEighthesIntegratorTest double error = handler.getMaximalValueError(); if (i > 4) { - assertTrue(error < FastMath.abs(previousError)); + assertTrue(error < FastMath.abs(previousValueError)); } - previousError = error; - assertEquals(0, handler.getMaximalTimeError(), 1.0e-12); + previousValueError = error; + + double timeError = handler.getMaximalTimeError(); + if (i > 4) { + assertTrue(timeError <= FastMath.abs(previousTimeError)); + } + previousTimeError = timeError; } Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ThreeEighthesStepInterpolatorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ThreeEighthesStepInterpolatorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ThreeEighthesStepInterpolatorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/ThreeEighthesStepInterpolatorTest.java Thu Jan 20 20:57:11 2011 @@ -64,8 +64,8 @@ public class ThreeEighthesStepInterpolat oos.writeObject(handler); } - assertTrue(bos.size () > 700000); - assertTrue(bos.size () < 701000); + assertTrue(bos.size () > 753000); + assertTrue(bos.size () < 754000); ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bis); Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/sampling/DummyStepInterpolatorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/sampling/DummyStepInterpolatorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/sampling/DummyStepInterpolatorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/sampling/DummyStepInterpolatorTest.java Thu Jan 20 20:57:11 2011 @@ -91,8 +91,8 @@ public class DummyStepInterpolatorTest { ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(interpolator); - assertTrue(bos.size () > 150); - assertTrue(bos.size () < 250); + assertTrue(bos.size () > 200); + assertTrue(bos.size () < 300); ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bis); Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/sampling/NordsieckStepInterpolatorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/sampling/NordsieckStepInterpolatorTest.java?rev=1061508&r1=1061507&r2=1061508&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/sampling/NordsieckStepInterpolatorTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/sampling/NordsieckStepInterpolatorTest.java Thu Jan 20 20:57:11 2011 @@ -41,7 +41,7 @@ public class NordsieckStepInterpolatorTe throws MathUserException, IntegratorException { TestProblem3 pb = new TestProblem3(); AdamsBashforthIntegrator integ = new AdamsBashforthIntegrator(4, 0.0, 1.0, 1.0e-10, 1.0e-10); - StepInterpolatorTestUtils.checkDerivativesConsistency(integ, pb, 7e-10); + StepInterpolatorTestUtils.checkDerivativesConsistency(integ, pb, 5e-9); } @Test @@ -62,8 +62,8 @@ public class NordsieckStepInterpolatorTe oos.writeObject(handler); } - assertTrue(bos.size () > 20000); - assertTrue(bos.size () < 25000); + assertTrue(bos.size () > 25500); + assertTrue(bos.size () < 26500); ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bis);
