/** 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));
  }