MATH-1411: Relaxing tolerance.

Unit test now succeeds reasonably often, even when using a random seed.
This commit is contained in:
Gilles Sadowski 2021-05-28 19:16:54 +02:00
parent 2977d26a0f
commit bab2a8b991
2 changed files with 6 additions and 11 deletions

View File

@ -252,11 +252,9 @@ public class LevenbergMarquardtOptimizerTest
final double ySigma = 15;
final double radius = 111.111;
// The test is extremely sensitive to the seed.
final long seed = 59321761419L;
final RandomCirclePointGenerator factory
= new RandomCirclePointGenerator(xCenter, yCenter, radius,
xSigma, ySigma,
seed);
xSigma, ySigma);
final CircleProblem circle = new CircleProblem(xSigma, ySigma);
final int numPoints = 10;
@ -276,8 +274,8 @@ public class LevenbergMarquardtOptimizerTest
final double[] asymptoticStandardErrorFound = optimum.getSigma(1e-14).toArray();
// Check that the parameters are found within the assumed error bars.
Assert.assertEquals(xCenter, paramFound[0], asymptoticStandardErrorFound[0]);
Assert.assertEquals(yCenter, paramFound[1], asymptoticStandardErrorFound[1]);
Assert.assertEquals(xCenter, paramFound[0], 1.5 * asymptoticStandardErrorFound[0]);
Assert.assertEquals(yCenter, paramFound[1], 1.5 * asymptoticStandardErrorFound[1]);
Assert.assertEquals(radius, paramFound[2], asymptoticStandardErrorFound[2]);
}
@ -289,11 +287,9 @@ public class LevenbergMarquardtOptimizerTest
final double xSigma = 10;
final double ySigma = 15;
final double radius = 111.111;
final long seed = 3456789L;
final RandomCirclePointGenerator factory
= new RandomCirclePointGenerator(xCenter, yCenter, radius,
xSigma, ySigma,
seed);
xSigma, ySigma);
final CircleProblem circle = new CircleProblem(xSigma, ySigma);
final int numPoints = 10;

View File

@ -50,9 +50,8 @@ public class RandomCirclePointGenerator {
double y,
double radius,
double xSigma,
double ySigma,
long seed) {
final UniformRandomProvider rng = RandomSource.create(RandomSource.WELL_44497_B, seed);
double ySigma) {
final UniformRandomProvider rng = RandomSource.create(RandomSource.WELL_44497_B);
this.radius = radius;
cX = new NormalDistribution(x, xSigma).createSampler(rng);
cY = new NormalDistribution(y, ySigma).createSampler(rng);