You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2015/11/22 17:22:51 UTC

[math] Simplified ODE test harness.

Repository: commons-math
Updated Branches:
  refs/heads/field-ode d75f5090e -> a15e4901b


Simplified ODE test harness.

Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/a15e4901
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/a15e4901
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/a15e4901

Branch: refs/heads/field-ode
Commit: a15e4901bb9605c59c188decc3e0857c1a37aa76
Parents: d75f509
Author: Luc Maisonobe <lu...@apache.org>
Authored: Sun Nov 22 17:22:36 2015 +0100
Committer: Luc Maisonobe <lu...@apache.org>
Committed: Sun Nov 22 17:22:36 2015 +0100

----------------------------------------------------------------------
 .../apache/commons/math3/ode/TestProblem1.java  | 15 ------
 .../apache/commons/math3/ode/TestProblem2.java  | 15 ------
 .../apache/commons/math3/ode/TestProblem3.java  | 16 -------
 .../apache/commons/math3/ode/TestProblem4.java  | 16 -------
 .../apache/commons/math3/ode/TestProblem5.java  | 15 ++----
 .../apache/commons/math3/ode/TestProblem6.java  | 15 ------
 .../commons/math3/ode/TestProblemAbstract.java  | 27 -----------
 .../commons/math3/ode/TestProblemFactory.java   | 50 --------------------
 .../ClassicalRungeKuttaIntegratorTest.java      | 11 +++--
 .../math3/ode/nonstiff/EulerIntegratorTest.java | 12 +++--
 .../math3/ode/nonstiff/GillIntegratorTest.java  | 11 +++--
 .../ode/nonstiff/LutherIntegratorTest.java      | 11 +++--
 .../ode/nonstiff/MidpointIntegratorTest.java    | 12 +++--
 .../nonstiff/ThreeEighthesIntegratorTest.java   | 11 +++--
 14 files changed, 48 insertions(+), 189 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/TestProblem1.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/TestProblem1.java b/src/test/java/org/apache/commons/math3/ode/TestProblem1.java
index 06d19fd..8344904 100644
--- a/src/test/java/org/apache/commons/math3/ode/TestProblem1.java
+++ b/src/test/java/org/apache/commons/math3/ode/TestProblem1.java
@@ -52,21 +52,6 @@ public class TestProblem1
     y = new double[y0.length];
   }
 
-  /**
-   * Copy constructor.
-   * @param problem problem to copy
-   */
-  public TestProblem1(TestProblem1 problem) {
-    super(problem);
-    y = problem.y.clone();
-  }
-
-  /** {@inheritDoc} */
-  @Override
-public TestProblem1 copy() {
-    return new TestProblem1(this);
-  }
-
   @Override
   public void doComputeDerivatives(double t, double[] y, double[] yDot) {
 

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/TestProblem2.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/TestProblem2.java b/src/test/java/org/apache/commons/math3/ode/TestProblem2.java
index 64befe2..912c4d8 100644
--- a/src/test/java/org/apache/commons/math3/ode/TestProblem2.java
+++ b/src/test/java/org/apache/commons/math3/ode/TestProblem2.java
@@ -53,21 +53,6 @@ public class TestProblem2
     y = new double[y0.length];
   }
 
-  /**
-   * Copy constructor.
-   * @param problem problem to copy
-   */
-  public TestProblem2(TestProblem2 problem) {
-    super(problem);
-    y = problem.y.clone();
-  }
-
-  /** {@inheritDoc} */
-  @Override
-public TestProblem2 copy() {
-    return new TestProblem2(this);
-  }
-
   @Override
   public void doComputeDerivatives(double t, double[] y, double[] yDot) {
 

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/TestProblem3.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/TestProblem3.java b/src/test/java/org/apache/commons/math3/ode/TestProblem3.java
index c74bb66..3e714ea 100644
--- a/src/test/java/org/apache/commons/math3/ode/TestProblem3.java
+++ b/src/test/java/org/apache/commons/math3/ode/TestProblem3.java
@@ -67,22 +67,6 @@ public class TestProblem3
     this(0.1);
   }
 
-  /**
-   * Copy constructor.
-   * @param problem problem to copy
-   */
-  public TestProblem3(TestProblem3 problem) {
-    super(problem);
-    e = problem.e;
-    y = problem.y.clone();
-  }
-
-  /** {@inheritDoc} */
-  @Override
-public TestProblem3 copy() {
-    return new TestProblem3(this);
-  }
-
   @Override
   public void doComputeDerivatives(double t, double[] y, double[] yDot) {
 

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/TestProblem4.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/TestProblem4.java b/src/test/java/org/apache/commons/math3/ode/TestProblem4.java
index e5c6219..14e6c45 100644
--- a/src/test/java/org/apache/commons/math3/ode/TestProblem4.java
+++ b/src/test/java/org/apache/commons/math3/ode/TestProblem4.java
@@ -56,22 +56,6 @@ public class TestProblem4
     y = new double[y0.length];
   }
 
-  /**
-   * Copy constructor.
-   * @param problem problem to copy
-   */
-  public TestProblem4(TestProblem4 problem) {
-    super(problem);
-    a = problem.a;
-    y = problem.y.clone();
-  }
-
-  /** {@inheritDoc} */
-  @Override
-public TestProblem4 copy() {
-    return new TestProblem4(this);
-  }
-
   @Override
   public EventHandler[] getEventsHandlers() {
     return new EventHandler[] { new Bounce(), new Stop() };

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/TestProblem5.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/TestProblem5.java b/src/test/java/org/apache/commons/math3/ode/TestProblem5.java
index 4c3c44a..8bb04e0 100644
--- a/src/test/java/org/apache/commons/math3/ode/TestProblem5.java
+++ b/src/test/java/org/apache/commons/math3/ode/TestProblem5.java
@@ -22,20 +22,13 @@ package org.apache.commons.math3.ode;
  * <p>This is the same as problem 1 except integration is done
  * backward in time</p>
  */
-public class TestProblem5
-  extends TestProblem1 {
+public class TestProblem5 extends TestProblem1 {
 
   /**
    * Simple constructor.
    */
-  public TestProblem5() {
-    super();
-    setFinalConditions(2 * t0 - t1);
-  }
+    public TestProblem5() {
+        setFinalConditions(2 * t0 - t1);
+    }
 
-  /** {@inheritDoc} */
-  @Override
-  public TestProblem5 copy() {
-    return new TestProblem5();
-  }
 }

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/TestProblem6.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/TestProblem6.java b/src/test/java/org/apache/commons/math3/ode/TestProblem6.java
index 8530499..6d69158 100644
--- a/src/test/java/org/apache/commons/math3/ode/TestProblem6.java
+++ b/src/test/java/org/apache/commons/math3/ode/TestProblem6.java
@@ -51,21 +51,6 @@ public class TestProblem6
         y = new double[y0.length];
     }
 
-    /**
-     * Copy constructor.
-     * @param problem problem to copy
-     */
-    public TestProblem6(TestProblem6 problem) {
-        super(problem);
-        y = problem.y.clone();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public TestProblem6 copy() {
-      return new TestProblem6(this);
-    }
-
     @Override
     public void doComputeDerivatives(double t, double[] y, double[] yDot) {
 

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/TestProblemAbstract.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/TestProblemAbstract.java b/src/test/java/org/apache/commons/math3/ode/TestProblemAbstract.java
index bfb4ecb..e17eda5 100644
--- a/src/test/java/org/apache/commons/math3/ode/TestProblemAbstract.java
+++ b/src/test/java/org/apache/commons/math3/ode/TestProblemAbstract.java
@@ -58,33 +58,6 @@ public abstract class TestProblemAbstract
   }
 
   /**
-   * Copy constructor.
-   * @param problem problem to copy
-   */
-  protected TestProblemAbstract(TestProblemAbstract problem) {
-    n     = problem.n;
-    calls = problem.calls;
-    t0    = problem.t0;
-    if (problem.y0 == null) {
-      y0 = null;
-    } else {
-      y0 = problem.y0.clone();
-    }
-    if (problem.errorScale == null) {
-      errorScale = null;
-    } else {
-      errorScale = problem.errorScale.clone();
-    }
-    t1 = problem.t1;
-  }
-
-  /**
-   * Copy operation.
-   * @return a copy of the instance
-   */
-  public abstract TestProblemAbstract copy();
-
-  /**
    * Set the initial conditions
    * @param t0 initial time
    * @param y0 initial state vector

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/TestProblemFactory.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/TestProblemFactory.java b/src/test/java/org/apache/commons/math3/ode/TestProblemFactory.java
deleted file mode 100644
index 706e140..0000000
--- a/src/test/java/org/apache/commons/math3/ode/TestProblemFactory.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.commons.math3.ode;
-
-/**
- * This class is used in the junit tests for the ODE integrators.
- */
-public class TestProblemFactory {
-
-  /** Problems pool. */
-  private static final TestProblemAbstract[] pool = {
-    new TestProblem1(),
-    new TestProblem2(),
-    new TestProblem3(),
-    new TestProblem4(),
-    new TestProblem5(),
-    new TestProblem6()
-  };
-
-  /**
-   * Private constructor.
-   * This is a utility class, so there are no instance at all.
-   */
-  private TestProblemFactory() {
-  }
-
-  /**
-   * Get the problems.
-   * @return array of problems to solve
-   */
-  public static TestProblemAbstract[] getProblems() {
-    return pool;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java b/src/test/java/org/apache/commons/math3/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java
index c527680..ac31092 100644
--- a/src/test/java/org/apache/commons/math3/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java
+++ b/src/test/java/org/apache/commons/math3/ode/nonstiff/ClassicalRungeKuttaIntegratorTest.java
@@ -25,10 +25,12 @@ import org.apache.commons.math3.exception.NumberIsTooSmallException;
 import org.apache.commons.math3.ode.FirstOrderDifferentialEquations;
 import org.apache.commons.math3.ode.FirstOrderIntegrator;
 import org.apache.commons.math3.ode.TestProblem1;
+import org.apache.commons.math3.ode.TestProblem2;
 import org.apache.commons.math3.ode.TestProblem3;
+import org.apache.commons.math3.ode.TestProblem4;
 import org.apache.commons.math3.ode.TestProblem5;
+import org.apache.commons.math3.ode.TestProblem6;
 import org.apache.commons.math3.ode.TestProblemAbstract;
-import org.apache.commons.math3.ode.TestProblemFactory;
 import org.apache.commons.math3.ode.TestProblemHandler;
 import org.apache.commons.math3.ode.events.EventHandler;
 import org.apache.commons.math3.ode.sampling.StepHandler;
@@ -133,14 +135,15 @@ public class ClassicalRungeKuttaIntegratorTest {
       throws DimensionMismatchException, NumberIsTooSmallException,
              MaxCountExceededException, NoBracketingException {
 
-    TestProblemAbstract[] problems = TestProblemFactory.getProblems();
-    for (int k = 0; k < problems.length; ++k) {
+    for (TestProblemAbstract pb : new TestProblemAbstract[] {
+        new TestProblem1(), new TestProblem2(), new TestProblem3(),
+        new TestProblem4(), new TestProblem5(), new TestProblem6()
+    }) {
 
       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);
 
         FirstOrderIntegrator integ = new ClassicalRungeKuttaIntegrator(step);

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/nonstiff/EulerIntegratorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/nonstiff/EulerIntegratorTest.java b/src/test/java/org/apache/commons/math3/ode/nonstiff/EulerIntegratorTest.java
index eaef55b..54f0330 100644
--- a/src/test/java/org/apache/commons/math3/ode/nonstiff/EulerIntegratorTest.java
+++ b/src/test/java/org/apache/commons/math3/ode/nonstiff/EulerIntegratorTest.java
@@ -25,9 +25,12 @@ import org.apache.commons.math3.exception.NumberIsTooSmallException;
 import org.apache.commons.math3.ode.FirstOrderDifferentialEquations;
 import org.apache.commons.math3.ode.FirstOrderIntegrator;
 import org.apache.commons.math3.ode.TestProblem1;
+import org.apache.commons.math3.ode.TestProblem2;
+import org.apache.commons.math3.ode.TestProblem3;
+import org.apache.commons.math3.ode.TestProblem4;
 import org.apache.commons.math3.ode.TestProblem5;
+import org.apache.commons.math3.ode.TestProblem6;
 import org.apache.commons.math3.ode.TestProblemAbstract;
-import org.apache.commons.math3.ode.TestProblemFactory;
 import org.apache.commons.math3.ode.TestProblemHandler;
 import org.apache.commons.math3.ode.events.EventHandler;
 import org.apache.commons.math3.ode.sampling.StepHandler;
@@ -54,14 +57,15 @@ public class EulerIntegratorTest {
       throws DimensionMismatchException, NumberIsTooSmallException,
              MaxCountExceededException, NoBracketingException {
 
-    TestProblemAbstract[] problems = TestProblemFactory.getProblems();
-    for (int k = 0; k < problems.length; ++k) {
+      for (TestProblemAbstract pb : new TestProblemAbstract[] {
+          new TestProblem1(), new TestProblem2(), new TestProblem3(),
+          new TestProblem4(), new TestProblem5(), new TestProblem6()
+      }) {
 
       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);
 
         FirstOrderIntegrator integ = new EulerIntegrator(step);

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/nonstiff/GillIntegratorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/nonstiff/GillIntegratorTest.java b/src/test/java/org/apache/commons/math3/ode/nonstiff/GillIntegratorTest.java
index e165e20..8d0fb65 100644
--- a/src/test/java/org/apache/commons/math3/ode/nonstiff/GillIntegratorTest.java
+++ b/src/test/java/org/apache/commons/math3/ode/nonstiff/GillIntegratorTest.java
@@ -25,10 +25,12 @@ import org.apache.commons.math3.exception.NumberIsTooSmallException;
 import org.apache.commons.math3.ode.FirstOrderDifferentialEquations;
 import org.apache.commons.math3.ode.FirstOrderIntegrator;
 import org.apache.commons.math3.ode.TestProblem1;
+import org.apache.commons.math3.ode.TestProblem2;
 import org.apache.commons.math3.ode.TestProblem3;
+import org.apache.commons.math3.ode.TestProblem4;
 import org.apache.commons.math3.ode.TestProblem5;
+import org.apache.commons.math3.ode.TestProblem6;
 import org.apache.commons.math3.ode.TestProblemAbstract;
-import org.apache.commons.math3.ode.TestProblemFactory;
 import org.apache.commons.math3.ode.TestProblemHandler;
 import org.apache.commons.math3.ode.events.EventHandler;
 import org.apache.commons.math3.ode.sampling.StepHandler;
@@ -55,14 +57,15 @@ public class GillIntegratorTest {
       throws DimensionMismatchException, NumberIsTooSmallException,
              MaxCountExceededException, NoBracketingException {
 
-    TestProblemAbstract[] problems = TestProblemFactory.getProblems();
-    for (int k = 0; k < problems.length; ++k) {
+      for (TestProblemAbstract pb : new TestProblemAbstract[] {
+          new TestProblem1(), new TestProblem2(), new TestProblem3(),
+          new TestProblem4(), new TestProblem5(), new TestProblem6()
+      }) {
 
       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);
 
         FirstOrderIntegrator integ = new GillIntegrator(step);

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/nonstiff/LutherIntegratorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/nonstiff/LutherIntegratorTest.java b/src/test/java/org/apache/commons/math3/ode/nonstiff/LutherIntegratorTest.java
index e3c5fe2..f8e0fd3 100644
--- a/src/test/java/org/apache/commons/math3/ode/nonstiff/LutherIntegratorTest.java
+++ b/src/test/java/org/apache/commons/math3/ode/nonstiff/LutherIntegratorTest.java
@@ -25,10 +25,12 @@ import org.apache.commons.math3.exception.NumberIsTooSmallException;
 import org.apache.commons.math3.ode.FirstOrderDifferentialEquations;
 import org.apache.commons.math3.ode.FirstOrderIntegrator;
 import org.apache.commons.math3.ode.TestProblem1;
+import org.apache.commons.math3.ode.TestProblem2;
 import org.apache.commons.math3.ode.TestProblem3;
+import org.apache.commons.math3.ode.TestProblem4;
 import org.apache.commons.math3.ode.TestProblem5;
+import org.apache.commons.math3.ode.TestProblem6;
 import org.apache.commons.math3.ode.TestProblemAbstract;
-import org.apache.commons.math3.ode.TestProblemFactory;
 import org.apache.commons.math3.ode.TestProblemHandler;
 import org.apache.commons.math3.ode.events.EventHandler;
 import org.apache.commons.math3.ode.sampling.StepHandler;
@@ -133,14 +135,15 @@ public class LutherIntegratorTest {
             throws DimensionMismatchException, NumberIsTooSmallException,
             MaxCountExceededException, NoBracketingException {
 
-        TestProblemAbstract[] problems = TestProblemFactory.getProblems();
-        for (int k = 0; k < problems.length; ++k) {
+        for (TestProblemAbstract pb : new TestProblemAbstract[] {
+            new TestProblem1(), new TestProblem2(), new TestProblem3(),
+            new TestProblem4(), new TestProblem5(), new TestProblem6()
+        }) {
 
             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);
 
                 FirstOrderIntegrator integ = new LutherIntegrator(step);

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/nonstiff/MidpointIntegratorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/nonstiff/MidpointIntegratorTest.java b/src/test/java/org/apache/commons/math3/ode/nonstiff/MidpointIntegratorTest.java
index 0b01ddf..e8080af 100644
--- a/src/test/java/org/apache/commons/math3/ode/nonstiff/MidpointIntegratorTest.java
+++ b/src/test/java/org/apache/commons/math3/ode/nonstiff/MidpointIntegratorTest.java
@@ -25,9 +25,12 @@ import org.apache.commons.math3.exception.NumberIsTooSmallException;
 import org.apache.commons.math3.ode.FirstOrderDifferentialEquations;
 import org.apache.commons.math3.ode.FirstOrderIntegrator;
 import org.apache.commons.math3.ode.TestProblem1;
+import org.apache.commons.math3.ode.TestProblem2;
+import org.apache.commons.math3.ode.TestProblem3;
+import org.apache.commons.math3.ode.TestProblem4;
 import org.apache.commons.math3.ode.TestProblem5;
+import org.apache.commons.math3.ode.TestProblem6;
 import org.apache.commons.math3.ode.TestProblemAbstract;
-import org.apache.commons.math3.ode.TestProblemFactory;
 import org.apache.commons.math3.ode.TestProblemHandler;
 import org.apache.commons.math3.ode.events.EventHandler;
 import org.apache.commons.math3.ode.sampling.StepHandler;
@@ -54,14 +57,15 @@ public class MidpointIntegratorTest {
       throws DimensionMismatchException, NumberIsTooSmallException,
              MaxCountExceededException, NoBracketingException {
 
-    TestProblemAbstract[] problems = TestProblemFactory.getProblems();
-    for (int k = 0; k < problems.length; ++k) {
+      for (TestProblemAbstract pb : new TestProblemAbstract[] {
+          new TestProblem1(), new TestProblem2(), new TestProblem3(),
+          new TestProblem4(), new TestProblem5(), new TestProblem6()
+      }) {
 
       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);
         FirstOrderIntegrator integ = new MidpointIntegrator(step);
         TestProblemHandler handler = new TestProblemHandler(pb, integ);

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a15e4901/src/test/java/org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.java b/src/test/java/org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.java
index ffc33c4..99212a8 100644
--- a/src/test/java/org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.java
+++ b/src/test/java/org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.java
@@ -25,10 +25,12 @@ import org.apache.commons.math3.exception.NumberIsTooSmallException;
 import org.apache.commons.math3.ode.FirstOrderDifferentialEquations;
 import org.apache.commons.math3.ode.FirstOrderIntegrator;
 import org.apache.commons.math3.ode.TestProblem1;
+import org.apache.commons.math3.ode.TestProblem2;
 import org.apache.commons.math3.ode.TestProblem3;
+import org.apache.commons.math3.ode.TestProblem4;
 import org.apache.commons.math3.ode.TestProblem5;
+import org.apache.commons.math3.ode.TestProblem6;
 import org.apache.commons.math3.ode.TestProblemAbstract;
-import org.apache.commons.math3.ode.TestProblemFactory;
 import org.apache.commons.math3.ode.TestProblemHandler;
 import org.apache.commons.math3.ode.events.EventHandler;
 import org.apache.commons.math3.ode.sampling.StepHandler;
@@ -55,14 +57,15 @@ public class ThreeEighthesIntegratorTest {
       throws DimensionMismatchException, NumberIsTooSmallException,
              MaxCountExceededException, NoBracketingException {
 
-    TestProblemAbstract[] problems = TestProblemFactory.getProblems();
-    for (int k = 0; k < problems.length; ++k) {
+      for (TestProblemAbstract pb : new TestProblemAbstract[] {
+          new TestProblem1(), new TestProblem2(), new TestProblem3(),
+          new TestProblem4(), new TestProblem5(), new TestProblem6()
+      }) {
 
       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);
 
         FirstOrderIntegrator integ = new ThreeEighthesIntegrator(step);