{8, 6, 10, 9},
{7, 5, 9, 10}
}, new double[]{32, 23, 33, 31});
final double[] start = {0, 1, 2, 3};
Optimum optimum = optimizer
.optimize(problem1.getBuilder().start(start).build());
Assert.assertEquals(0, optimum.getRMS(), TOl);
assertEquals(TOl, optimum.getPoint(), 1, 1, 1, 1);
LinearProblem problem2 = new LinearProblem(new double[][]{
{10.00, 7.00, 8.10, 7.20},
{7.08, 5.04, 6.00, 5.00},
{8.00, 5.98, 9.89, 9.00},
{6.99, 4.99, 9.00, 9.98}
}, new double[]{32, 23, 33, 31});
optimum = optimizer.optimize(problem2.getBuilder().start(start).build());
Assert.assertEquals(0, optimum.getRMS(), TOl);
assertEquals(1e-8, optimum.getPoint(), -81, 137, -34, 22);
}