Fixed PMD warnings.

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1462503 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Luc Maisonobe 2013-03-29 15:48:27 +00:00
parent 3e1c032c4e
commit 8a25d709f5
31 changed files with 141 additions and 247 deletions

View File

@ -193,11 +193,10 @@ public class DSCompiler {
// get the cached compilers
final DSCompiler[][] cache = compilers.get();
if (cache != null && cache.length > parameters && cache[parameters].length > order) {
if (cache[parameters][order] != null) {
// the compiler has already been created
return cache[parameters][order];
}
if (cache != null && cache.length > parameters &&
cache[parameters].length > order && cache[parameters][order] != null) {
// the compiler has already been created
return cache[parameters][order];
}
// we need to create more compilers

View File

@ -653,11 +653,9 @@ public class DfpMath {
r = exp(log(x).multiply(y));
}
if (invert) {
if (invert && y.rint().equals(y) && !y.remainder(two).equals(zero)) {
// if y is odd integer
if (y.rint().equals(y) && !y.remainder(two).equals(zero)) {
r = r.negate();
}
r = r.negate();
}
return x.newInstance(r);

View File

@ -254,10 +254,8 @@ public abstract class VectorFormat<S extends Space> {
CompositeFormat.parseAndIgnoreWhitespace(source, pos);
// parse separator
if (i > 0) {
if (!CompositeFormat.parseFixedstring(source, trimmedSeparator, pos)) {
return null;
}
if (i > 0 && !CompositeFormat.parseFixedstring(source, trimmedSeparator, pos)) {
return null;
}
// skip whitespace

View File

@ -530,10 +530,8 @@ public class OpenMapRealVector extends SparseRealVector
while (iter.hasNext()) {
iter.advance();
int key = iter.key();
if (!entries.containsKey(key)) {
if (iter.value() > max) {
max = iter.value();
}
if (!entries.containsKey(key) && iter.value() > max) {
max = iter.value();
}
}
return max;

View File

@ -113,10 +113,8 @@ public class SimplePointChecker<PAIR extends Pair<double[], ? extends Object>>
public boolean converged(final int iteration,
final PAIR previous,
final PAIR current) {
if (maxIterationCount != ITERATION_CHECK_DISABLED) {
if (iteration >= maxIterationCount) {
return true;
}
if (maxIterationCount != ITERATION_CHECK_DISABLED && iteration >= maxIterationCount) {
return true;
}
final double[] p = previous.getKey();

View File

@ -112,10 +112,8 @@ public class SimpleValueChecker
public boolean converged(final int iteration,
final PointValuePair previous,
final PointValuePair current) {
if (maxIterationCount != ITERATION_CHECK_DISABLED) {
if (iteration >= maxIterationCount) {
return true;
}
if (maxIterationCount != ITERATION_CHECK_DISABLED && iteration >= maxIterationCount) {
return true;
}
final double p = previous.getValue();

View File

@ -114,10 +114,8 @@ public class SimpleVectorValueChecker
public boolean converged(final int iteration,
final PointVectorValuePair previous,
final PointVectorValuePair current) {
if (maxIterationCount != ITERATION_CHECK_DISABLED) {
if (iteration >= maxIterationCount) {
return true;
}
if (maxIterationCount != ITERATION_CHECK_DISABLED && iteration >= maxIterationCount) {
return true;
}
final double[] p = previous.getValueRef();

View File

@ -200,11 +200,9 @@ public class SimplexSolver extends LinearOptimizer {
for (Integer row : minRatioPositions) {
for (int i = varStart; i < varEnd && !row.equals(minRow); i++) {
final Integer basicRow = tableau.getBasicRow(i);
if (basicRow != null && basicRow.equals(row)) {
if (i < minIndex) {
minIndex = i;
minRow = row;
}
if (basicRow != null && basicRow.equals(row) && i < minIndex) {
minIndex = i;
minRow = row;
}
}
}

View File

@ -218,11 +218,9 @@ public class NonLinearConjugateGradientOptimizer
final double objective = computeObjectiveValue(point);
PointValuePair previous = current;
current = new PointValuePair(point, objective);
if (previous != null) {
if (checker.converged(getIterations(), previous, current)) {
// We have found an optimum.
return current;
}
if (previous != null && checker.converged(getIterations(), previous, current)) {
// We have found an optimum.
return current;
}
// Find the optimal step in the search direction.

View File

@ -1388,12 +1388,10 @@ public class BOBYQAOptimizer
vlag = tmp;
isbd = iubd;
}
if (subd > HALF) {
if (Math.abs(vlag) < ONE_OVER_FOUR) {
step = HALF;
vlag = ONE_OVER_FOUR;
isbd = 0;
}
if (subd > HALF && Math.abs(vlag) < ONE_OVER_FOUR) {
step = HALF;
vlag = ONE_OVER_FOUR;
isbd = 0;
}
vlag *= dderiv;
}
@ -1713,16 +1711,14 @@ public class BOBYQAOptimizer
final double diff = stepb - stepa;
modelSecondDerivativesValues.setEntry(ih, TWO * (tmp - gradientAtTrustRegionCenter.getEntry(nfxm)) / diff);
gradientAtTrustRegionCenter.setEntry(nfxm, (gradientAtTrustRegionCenter.getEntry(nfxm) * stepb - tmp * stepa) / diff);
if (stepa * stepb < ZERO) {
if (f < fAtInterpolationPoints.getEntry(nfm - n)) {
fAtInterpolationPoints.setEntry(nfm, fAtInterpolationPoints.getEntry(nfm - n));
fAtInterpolationPoints.setEntry(nfm - n, f);
if (trustRegionCenterInterpolationPointIndex == nfm) {
trustRegionCenterInterpolationPointIndex = nfm - n;
}
interpolationPoints.setEntry(nfm - n, nfxm, stepb);
interpolationPoints.setEntry(nfm, nfxm, stepa);
if (stepa * stepb < ZERO && f < fAtInterpolationPoints.getEntry(nfm - n)) {
fAtInterpolationPoints.setEntry(nfm, fAtInterpolationPoints.getEntry(nfm - n));
fAtInterpolationPoints.setEntry(nfm - n, f);
if (trustRegionCenterInterpolationPointIndex == nfm) {
trustRegionCenterInterpolationPointIndex = nfm - n;
}
interpolationPoints.setEntry(nfm - n, nfxm, stepb);
interpolationPoints.setEntry(nfm, nfxm, stepa);
}
bMatrix.setEntry(0, nfxm, -(stepa + stepb) / (stepa * stepb));
bMatrix.setEntry(nfm, nfxm, -HALF / interpolationPoints.getEntry(nfm - n, nfxm));
@ -1850,10 +1846,9 @@ public class BOBYQAOptimizer
if (gradientAtTrustRegionCenter.getEntry(i) >= ZERO) {
xbdi.setEntry(i, MINUS_ONE);
}
} else if (trustRegionCenterOffset.getEntry(i) >= upperDifference.getEntry(i)) {
if (gradientAtTrustRegionCenter.getEntry(i) <= ZERO) {
xbdi.setEntry(i, ONE);
}
} else if (trustRegionCenterOffset.getEntry(i) >= upperDifference.getEntry(i) &&
gradientAtTrustRegionCenter.getEntry(i) <= ZERO) {
xbdi.setEntry(i, ONE);
}
if (xbdi.getEntry(i) != ZERO) {
++nact;
@ -2432,21 +2427,6 @@ public class BOBYQAOptimizer
modelSecondDerivativesValues = new ArrayRealVector(dimension * (dimension + 1) / 2);
}
/**
* Creates a new array.
*
* @param n Dimension of the returned array.
* @param value Value for each element.
* @return an array containing {@code n} elements set to the given
* {@code value}.
*/
private static double[] fillNewArray(int n,
double value) {
double[] ds = new double[n];
Arrays.fill(ds, value);
return ds;
}
// XXX utility for figuring out call sequence.
private static String caller(int n) {
final Throwable t = new Throwable();

View File

@ -439,19 +439,15 @@ public class CMAESOptimizer
lastResult = optimum;
optimum = new PointValuePair(fitfun.repair(bestArx.getColumn(0)),
isMinimize ? bestFitness : -bestFitness);
if (getConvergenceChecker() != null &&
lastResult != null) {
if (getConvergenceChecker().converged(iterations, optimum, lastResult)) {
break generationLoop;
}
if (getConvergenceChecker() != null && lastResult != null &&
getConvergenceChecker().converged(iterations, optimum, lastResult)) {
break generationLoop;
}
}
// handle termination criteria
// Break, if fitness is good enough
if (stopFitness != 0) { // only if stopFitness is defined
if (bestFitness < (isMinimize ? stopFitness : -stopFitness)) {
break generationLoop;
}
if (stopFitness != 0 && bestFitness < (isMinimize ? stopFitness : -stopFitness)) {
break generationLoop;
}
final double[] sqrtDiagC = sqrt(diagC).getColumn(0);
final double[] pcCol = pc.getColumn(0);

View File

@ -221,10 +221,8 @@ public class PowellOptimizer
final PointValuePair previous = new PointValuePair(x1, fX);
final PointValuePair current = new PointValuePair(x, fVal);
if (!stop) { // User-defined stopping criteria.
if (checker != null) {
stop = checker.converged(getIterations(), previous, current);
}
if (!stop && checker != null) { // User-defined stopping criteria.
stop = checker.converged(getIterations(), previous, current);
}
if (stop) {
if (goal == GoalType.MINIMIZE) {

View File

@ -486,12 +486,9 @@ public class LevenbergMarquardtOptimizer
xNorm = FastMath.sqrt(xNorm);
// tests for convergence.
if (checker != null) {
// we use the vectorial convergence checker
if (checker.converged(getIterations(), previous, current)) {
setCost(currentCost);
return current;
}
if (checker != null && checker.converged(getIterations(), previous, current)) {
setCost(currentCost);
return current;
}
} else {
// failed iteration, reset the previous values

View File

@ -238,10 +238,8 @@ public class BrentOptimizer extends UnivariateOptimizer {
isMinim),
isMinim);
if (checker != null) {
if (checker.converged(iter, previous, current)) {
return best;
}
if (checker != null && checker.converged(iter, previous, current)) {
return best;
}
// Update a, b, v, w and x.

View File

@ -114,10 +114,8 @@ public class SimpleUnivariateValueChecker
public boolean converged(final int iteration,
final UnivariatePointValuePair previous,
final UnivariatePointValuePair current) {
if (maxIterationCount != ITERATION_CHECK_DISABLED) {
if (iteration >= maxIterationCount) {
return true;
}
if (maxIterationCount != ITERATION_CHECK_DISABLED && iteration >= maxIterationCount) {
return true;
}
final double p = previous.getValue();

View File

@ -125,10 +125,8 @@ public class SimplePointChecker<PAIR extends Pair<double[], ? extends Object>>
public boolean converged(final int iteration,
final PAIR previous,
final PAIR current) {
if (maxIterationCount != ITERATION_CHECK_DISABLED) {
if (iteration >= maxIterationCount) {
return true;
}
if (maxIterationCount != ITERATION_CHECK_DISABLED && iteration >= maxIterationCount) {
return true;
}
final double[] p = previous.getKey();

View File

@ -123,10 +123,8 @@ public class SimpleValueChecker
public boolean converged(final int iteration,
final PointValuePair previous,
final PointValuePair current) {
if (maxIterationCount != ITERATION_CHECK_DISABLED) {
if (iteration >= maxIterationCount) {
return true;
}
if (maxIterationCount != ITERATION_CHECK_DISABLED && iteration >= maxIterationCount) {
return true;
}
final double p = previous.getValue();

View File

@ -125,10 +125,8 @@ public class SimpleVectorValueChecker
public boolean converged(final int iteration,
final PointVectorValuePair previous,
final PointVectorValuePair current) {
if (maxIterationCount != ITERATION_CHECK_DISABLED) {
if (iteration >= maxIterationCount) {
return true;
}
if (maxIterationCount != ITERATION_CHECK_DISABLED && iteration >= maxIterationCount) {
return true;
}
final double[] p = previous.getValueRef();

View File

@ -1394,12 +1394,10 @@ public class BOBYQAOptimizer
vlag = tmp;
isbd = iubd;
}
if (subd > HALF) {
if (Math.abs(vlag) < ONE_OVER_FOUR) {
step = HALF;
vlag = ONE_OVER_FOUR;
isbd = 0;
}
if (subd > HALF && Math.abs(vlag) < ONE_OVER_FOUR) {
step = HALF;
vlag = ONE_OVER_FOUR;
isbd = 0;
}
vlag *= dderiv;
}
@ -1719,16 +1717,14 @@ public class BOBYQAOptimizer
final double diff = stepb - stepa;
modelSecondDerivativesValues.setEntry(ih, TWO * (tmp - gradientAtTrustRegionCenter.getEntry(nfxm)) / diff);
gradientAtTrustRegionCenter.setEntry(nfxm, (gradientAtTrustRegionCenter.getEntry(nfxm) * stepb - tmp * stepa) / diff);
if (stepa * stepb < ZERO) {
if (f < fAtInterpolationPoints.getEntry(nfm - n)) {
fAtInterpolationPoints.setEntry(nfm, fAtInterpolationPoints.getEntry(nfm - n));
fAtInterpolationPoints.setEntry(nfm - n, f);
if (trustRegionCenterInterpolationPointIndex == nfm) {
trustRegionCenterInterpolationPointIndex = nfm - n;
}
interpolationPoints.setEntry(nfm - n, nfxm, stepb);
interpolationPoints.setEntry(nfm, nfxm, stepa);
if (stepa * stepb < ZERO && f < fAtInterpolationPoints.getEntry(nfm - n)) {
fAtInterpolationPoints.setEntry(nfm, fAtInterpolationPoints.getEntry(nfm - n));
fAtInterpolationPoints.setEntry(nfm - n, f);
if (trustRegionCenterInterpolationPointIndex == nfm) {
trustRegionCenterInterpolationPointIndex = nfm - n;
}
interpolationPoints.setEntry(nfm - n, nfxm, stepb);
interpolationPoints.setEntry(nfm, nfxm, stepa);
}
bMatrix.setEntry(0, nfxm, -(stepa + stepb) / (stepa * stepb));
bMatrix.setEntry(nfm, nfxm, -HALF / interpolationPoints.getEntry(nfm - n, nfxm));
@ -1856,10 +1852,9 @@ public class BOBYQAOptimizer
if (gradientAtTrustRegionCenter.getEntry(i) >= ZERO) {
xbdi.setEntry(i, MINUS_ONE);
}
} else if (trustRegionCenterOffset.getEntry(i) >= upperDifference.getEntry(i)) {
if (gradientAtTrustRegionCenter.getEntry(i) <= ZERO) {
xbdi.setEntry(i, ONE);
}
} else if (trustRegionCenterOffset.getEntry(i) >= upperDifference.getEntry(i) &&
gradientAtTrustRegionCenter.getEntry(i) <= ZERO) {
xbdi.setEntry(i, ONE);
}
if (xbdi.getEntry(i) != ZERO) {
++nact;
@ -2438,21 +2433,6 @@ public class BOBYQAOptimizer
modelSecondDerivativesValues = new ArrayRealVector(dimension * (dimension + 1) / 2);
}
/**
* Creates a new array.
*
* @param n Dimension of the returned array.
* @param value Value for each element.
* @return an array containing {@code n} elements set to the given
* {@code value}.
*/
private static double[] fillNewArray(int n,
double value) {
double[] ds = new double[n];
Arrays.fill(ds, value);
return ds;
}
// XXX utility for figuring out call sequence.
private static String caller(int n) {
final Throwable t = new Throwable();

View File

@ -64,20 +64,6 @@ public abstract class BaseAbstractMultivariateSimpleBoundsOptimizer<FUNC extends
super(checker);
}
/**
* @return the lower bounds.
*/
public double[] getLowerBound() {
return super.getLowerBound();
}
/**
* @return the upper bounds.
*/
public double[] getUpperBound() {
return super.getUpperBound();
}
/** {@inheritDoc} */
@Override
public PointValuePair optimize(int maxEval, FUNC f, GoalType goalType,

View File

@ -565,19 +565,15 @@ public class CMAESOptimizer
lastResult = optimum;
optimum = new PointValuePair(fitfun.repair(bestArx.getColumn(0)),
isMinimize ? bestFitness : -bestFitness);
if (getConvergenceChecker() != null &&
lastResult != null) {
if (getConvergenceChecker().converged(iterations, optimum, lastResult)) {
break generationLoop;
}
if (getConvergenceChecker() != null && lastResult != null &&
getConvergenceChecker().converged(iterations, optimum, lastResult)) {
break generationLoop;
}
}
// handle termination criteria
// Break, if fitness is good enough
if (stopFitness != 0) { // only if stopFitness is defined
if (bestFitness < (isMinimize ? stopFitness : -stopFitness)) {
break generationLoop;
}
if (stopFitness != 0 && bestFitness < (isMinimize ? stopFitness : -stopFitness)) {
break generationLoop;
}
final double[] sqrtDiagC = sqrt(diagC).getColumn(0);
final double[] pcCol = pc.getColumn(0);

View File

@ -211,10 +211,8 @@ public class PowellOptimizer
final PointValuePair previous = new PointValuePair(x1, fX);
final PointValuePair current = new PointValuePair(x, fVal);
if (!stop) { // User-defined stopping criteria.
if (checker != null) {
stop = checker.converged(iter, previous, current);
}
if (!stop && checker != null) {
stop = checker.converged(iter, previous, current);
}
if (stop) {
if (goal == GoalType.MINIMIZE) {

View File

@ -480,14 +480,11 @@ public class LevenbergMarquardtOptimizer extends AbstractLeastSquaresOptimizer {
xNorm = FastMath.sqrt(xNorm);
// tests for convergence.
if (checker != null) {
// we use the vectorial convergence checker
if (checker.converged(iter, previous, current)) {
setCost(currentCost);
// Update (deprecated) "point" field.
point = current.getPoint();
return current;
}
if (checker != null && checker.converged(iter, previous, current)) {
setCost(currentCost);
// Update (deprecated) "point" field.
point = current.getPoint();
return current;
}
} else {
// failed iteration, reset the previous values

View File

@ -177,11 +177,9 @@ public class NonLinearConjugateGradientOptimizer
final double objective = computeObjectiveValue(point);
PointValuePair previous = current;
current = new PointValuePair(point, objective);
if (previous != null) {
if (checker.converged(iter, previous, current)) {
// We have found an optimum.
return current;
}
if (previous != null && checker.converged(iter, previous, current)) {
// We have found an optimum.
return current;
}
// Find the optimal step in the search direction.

View File

@ -148,11 +148,9 @@ public class SimplexSolver extends AbstractLinearOptimizer {
for (Integer row : minRatioPositions) {
for (int i = varStart; i < varEnd && !row.equals(minRow); i++) {
final Integer basicRow = tableau.getBasicRow(i);
if (basicRow != null && basicRow.equals(row)) {
if (i < minIndex) {
minIndex = i;
minRow = row;
}
if (basicRow != null && basicRow.equals(row) && i < minIndex) {
minIndex = i;
minRow = row;
}
}
}

View File

@ -240,10 +240,8 @@ public class BrentOptimizer extends BaseAbstractUnivariateOptimizer {
isMinim),
isMinim);
if (checker != null) {
if (checker.converged(iter, previous, current)) {
return best;
}
if (checker != null && checker.converged(iter, previous, current)) {
return best;
}
// Update a, b, v, w and x.

View File

@ -126,10 +126,8 @@ public class SimpleUnivariateValueChecker
public boolean converged(final int iteration,
final UnivariatePointValuePair previous,
final UnivariatePointValuePair current) {
if (maxIterationCount != ITERATION_CHECK_DISABLED) {
if (iteration >= maxIterationCount) {
return true;
}
if (maxIterationCount != ITERATION_CHECK_DISABLED && iteration >= maxIterationCount) {
return true;
}
final double p = previous.getValue();

View File

@ -118,11 +118,10 @@ public class CompositeFormat {
final int n = sb.length();
final int startIndex = pos.getIndex();
final int endIndex = startIndex + n;
if (endIndex < source.length()) {
if (source.substring(startIndex, endIndex).compareTo(sb.toString()) == 0) {
ret = Double.valueOf(value);
pos.setIndex(endIndex);
}
if (endIndex < source.length() &&
source.substring(startIndex, endIndex).compareTo(sb.toString()) == 0) {
ret = Double.valueOf(value);
pos.setIndex(endIndex);
}
return ret;

View File

@ -1139,14 +1139,12 @@ public class FastMath {
long bits = Double.doubleToRawLongBits(x);
/* Handle special cases of negative input, and NaN */
if ((bits & 0x8000000000000000L) != 0 || x != x) {
if (x != 0.0) {
if (hiPrec != null) {
hiPrec[0] = Double.NaN;
}
return Double.NaN;
if (((bits & 0x8000000000000000L) != 0 || x != x) && x != 0.0) {
if (hiPrec != null) {
hiPrec[0] = Double.NaN;
}
return Double.NaN;
}
/* Handle special cases of Positive infinity. */
@ -1181,43 +1179,24 @@ public class FastMath {
}
if (exp == -1 || exp == 0) {
if (x < 1.01 && x > 0.99 && hiPrec == null) {
/* The normal method doesn't work well in the range [0.99, 1.01], so call do a straight
if ((exp == -1 || exp == 0) && x < 1.01 && x > 0.99 && hiPrec == null) {
/* The normal method doesn't work well in the range [0.99, 1.01], so call do a straight
polynomial expansion in higer precision. */
/* Compute x - 1.0 and split it */
double xa = x - 1.0;
double xb = xa - x + 1.0;
double tmp = xa * HEX_40000000;
double aa = xa + tmp - tmp;
double ab = xa - aa;
xa = aa;
xb = ab;
/* Compute x - 1.0 and split it */
double xa = x - 1.0;
double xb = xa - x + 1.0;
double tmp = xa * HEX_40000000;
double aa = xa + tmp - tmp;
double ab = xa - aa;
xa = aa;
xb = ab;
final double[] lnCoef_last = LN_QUICK_COEF[LN_QUICK_COEF.length - 1];
double ya = lnCoef_last[0];
double yb = lnCoef_last[1];
for (int i = LN_QUICK_COEF.length - 2; i >= 0; i--) {
/* Multiply a = y * x */
aa = ya * xa;
ab = ya * xb + yb * xa + yb * xb;
/* split, so now y = a */
tmp = aa * HEX_40000000;
ya = aa + tmp - tmp;
yb = aa - ya + ab;
/* Add a = y + lnQuickCoef */
final double[] lnCoef_i = LN_QUICK_COEF[i];
aa = ya + lnCoef_i[0];
ab = yb + lnCoef_i[1];
/* Split y = a */
tmp = aa * HEX_40000000;
ya = aa + tmp - tmp;
yb = aa - ya + ab;
}
final double[] lnCoef_last = LN_QUICK_COEF[LN_QUICK_COEF.length - 1];
double ya = lnCoef_last[0];
double yb = lnCoef_last[1];
for (int i = LN_QUICK_COEF.length - 2; i >= 0; i--) {
/* Multiply a = y * x */
aa = ya * xa;
ab = ya * xb + yb * xa + yb * xb;
@ -1226,8 +1205,25 @@ public class FastMath {
ya = aa + tmp - tmp;
yb = aa - ya + ab;
return ya + yb;
/* Add a = y + lnQuickCoef */
final double[] lnCoef_i = LN_QUICK_COEF[i];
aa = ya + lnCoef_i[0];
ab = yb + lnCoef_i[1];
/* Split y = a */
tmp = aa * HEX_40000000;
ya = aa + tmp - tmp;
yb = aa - ya + ab;
}
/* Multiply a = y * x */
aa = ya * xa;
ab = ya * xb + yb * xa + yb * xb;
/* split, so now y = a */
tmp = aa * HEX_40000000;
ya = aa + tmp - tmp;
yb = aa - ya + ab;
return ya + yb;
}
// lnm is a log of a number in the range of 1.0 - 2.0, so 0 <= lnm < ln(2)

View File

@ -30,6 +30,7 @@ import org.apache.commons.math3.optim.PointValuePair;
import org.apache.commons.math3.optim.InitialGuess;
import org.apache.commons.math3.optim.SimpleBounds;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
/**
@ -235,7 +236,9 @@ public class BOBYQAOptimizerTest {
}
// See MATH-728
@Test
// TODO: this test is temporarily disabled for 3.2 release as a bug in Cobertura
// makes it run for several hours before completing
@Ignore @Test
public void testConstrainedRosenWithMoreInterpolationPoints() {
final double[] startPoint = point(DIM, 0.1);
final double[][] boundaries = boundaries(DIM, -1, 2);

View File

@ -29,6 +29,7 @@ import org.apache.commons.math3.optimization.PointValuePair;
import org.apache.commons.math3.optimization.InitialGuess;
import org.apache.commons.math3.optimization.SimpleBounds;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
/**
@ -234,7 +235,9 @@ public class BOBYQAOptimizerTest {
}
// See MATH-728
@Test
// TODO: this test is temporarily disabled for 3.2 release as a bug in Cobertura
// makes it run for several hours before completing
@Ignore @Test
public void testConstrainedRosenWithMoreInterpolationPoints() {
final double[] startPoint = point(DIM, 0.1);
final double[][] boundaries = boundaries(DIM, -1, 2);