Added assert_matrix_eq to allow high max_relative for tests

This commit is contained in:
Jon Janzen
2021-04-02 17:23:44 -06:00
parent ccb4184fb3
commit e148f8ccef

View File

@@ -146,7 +146,9 @@ impl PartialEq for Matrix {
return false; return false;
} }
for col_idx in 0..self.matrix[row_idx].len() { for col_idx in 0..self.matrix[row_idx].len() {
if !relative_eq!(self.matrix[row_idx][col_idx], _rhs.matrix[row_idx][col_idx]) { if !relative_eq!(
self.matrix[row_idx][col_idx],
_rhs.matrix[row_idx][col_idx]) {
return false; return false;
} }
} }
@@ -535,6 +537,24 @@ mod tests {
} }
fn assert_matrix_eq(_lhs: &Matrix, _rhs: &Matrix, max_relative: f32) -> bool {
if _lhs.matrix.len() != _rhs.matrix.len() {
return false;
}
for row_idx in 0.._lhs.matrix.len() {
if _lhs.matrix[row_idx].len() != _rhs.matrix[row_idx].len() {
return false;
}
for col_idx in 0.._lhs.matrix[row_idx].len() {
assert_relative_eq!( _lhs.matrix[row_idx][col_idx],
_rhs.matrix[row_idx][col_idx],
max_relative = max_relative);
}
}
true
}
#[test] #[test]
fn inverse() { fn inverse() {
let m = Matrix::from_array([ let m = Matrix::from_array([
@@ -558,6 +578,6 @@ mod tests {
[-0.52256, -0.81392, -0.30075, 0.30639], [-0.52256, -0.81392, -0.30075, 0.30639],
]); ]);
assert_eq!(expected, b); assert_matrix_eq(&expected, &b, 0.0001);
} }
} }