Fix coverage for inverse.

This commit is contained in:
James Goppert
2017-02-03 17:24:15 -05:00
parent db6dfeafbe
commit a154e14439
2 changed files with 26 additions and 4 deletions
+2 -3
View File
@@ -232,9 +232,8 @@ bool inv(const SquareMatrix<Type, M> & A, SquareMatrix<Type, M> & inv)
// divide by the factor
// on current
// term to be solved
if(fabsf(U(i,i)) < 1e-8f) {
return false;
}
//
// we know that U(i, i) != 0 from above
P(i, c) /= U(i, i);
}
}
+24 -1
View File
@@ -82,7 +82,30 @@ int main()
SquareMatrix<float, 3> A3(data3);
SquareMatrix<float, 3> A3_I = inv(A3);
SquareMatrix<float, 3> A3_I_check(data3_check);
TEST((A3_I - A3_I_check).abs().max() < 1e-5);
TEST(isEqual(inv(A3), A3_I_check));
TEST(isEqual(A3_I, A3_I_check));
TEST(A3.I(A3_I));
TEST(isEqual(A3_I, A3_I_check));
// cover singular matrices
A3(0, 0) = 0;
A3(0, 1) = 0;
A3(0, 2) = 0;
A3_I = inv(A3);
SquareMatrix<float, 3> Z3 = zeros<float, 3, 3>();
TEST(!A3.I(A3_I));
TEST(!Z3.I(A3_I));
TEST(isEqual(A3_I, Z3));
TEST(isEqual(A3.I(), Z3));
// cover NaN
A3(0, 0) = NAN;
A3(0, 1) = 0;
A3(0, 2) = 0;
A3_I = inv(A3);
TEST(isEqual(A3_I, Z3));
TEST(isEqual(A3.I(), Z3));
return 0;
}