I was wondering if there is a good way to test two Eigen matrices for approximate equality using Google Test, or Google Mock.
Take the following test-case as a
A simplified solution would be to compare the norm of the difference with some epsilon, i.e.
(C_expect - C_actual).norm() < 1e-6
In a vector space || X - Y || == 0 if and only if X == Y, and the norm is always non-negative (real). This way, you won't have to manually do the loop and compare element-wise (of course the norm will perform more calculations in the background than simple element-wise comparisons)
PS: the Matrix::norm()
implemented in Eigen is the Frobenius norm, which is computationally very fast to evaluate, see http://mathworld.wolfram.com/FrobeniusNorm.html