private static final double epsilon = 1e-9;
@Test
public void shouldFindEigenvalues() {
Matrix A = Matrix.from(3, 3,
0, 1, -1,
1, 1, 0,
-1, 0, 1);
Eigenvalues eigen = new AllEigenvalues(A).run();
assertEquals(-1, eigen.value[0], epsilon);
assertEquals(1, eigen.value[1], epsilon);
assertEquals(2, eigen.value[2], epsilon);
assert A.mult(eigen.vector[0]).equals(eigen.vector[0].times(eigen.value[0]), epsilon);
assert A.mult(eigen.vector[1]).equals(eigen.vector[1].times(eigen.value[1]), epsilon);
assert A.mult(eigen.vector[2]).equals(eigen.vector[2].times(eigen.value[2]), epsilon);
}