@Test
public void testConjugateGradientSolver() {

  Matrix a = getA();
  Vector b = getB();
  
  ConjugateGradientSolver solver = new ConjugateGradientSolver();
  Vector x = solver.solve(a, b);
  
  assertEquals(0.0, Math.sqrt(a.times(x).getDistanceSquared(b)), EPSILON);    
  assertEquals(0.0, solver.getResidualNorm(), ConjugateGradientSolver.DEFAULT_MAX_ERROR);
  assertEquals(10, solver.getIterations());
}