/** Not working, but probably not critical right now. Get this to work some day TODO */ @Ignore @DeployableTestMethod(estimatedDuration = 0.0) @Test(timeout = 525) public void testFullyConstrained() { int objectiveSize = 3; int solutionSize = 5; int constraintSize = 5; Random random = new Random(1235125L); QuadraticProgram quadraticProgram = createRandomQuadraticProgram(random, objectiveSize, solutionSize, constraintSize); DenseMatrix64F initialGuess = new DenseMatrix64F(solutionSize, 1); // need a feasible initial guess, so initial guess should already be the answer CommonOps.solve(quadraticProgram.getC(), quadraticProgram.getD(), initialGuess); ActiveSearchSolutionInfo solutionInfo = solve(quadraticProgram, initialGuess); assertTrue(solutionInfo.isConverged()); // TODO: assert that answer is initial guess }
@DeployableTestMethod(estimatedDuration = 0.0) @Test(timeout = 30000) public void testUnconstrained() { Random random = new Random(12355L); int objectiveSize = 5; int solutionSize = 5; int constraintSize = 0; QuadraticProgram quadraticProgram = createRandomQuadraticProgram(random, objectiveSize, solutionSize, constraintSize); DenseMatrix64F initialGuess = new DenseMatrix64F(solutionSize, 1); ActiveSearchSolutionInfo solutionInfo = solve(quadraticProgram, initialGuess); assertTrue(solutionInfo.isConverged()); DenseMatrix64F axMinusB = new DenseMatrix64F(solutionSize, 1); CommonOps.mult(quadraticProgram.getA(), solutionInfo.getSolution(), axMinusB); CommonOps.subtractEquals(axMinusB, quadraticProgram.getB()); assertTrue(MatrixFeatures.isConstantVal(axMinusB, 0.0, 1e-12)); }