Add a test for multiplication of non-square DMats.

Demonstrates a bug in Mul implementation.
This commit is contained in:
Arttu Ylä-Outinen 2015-07-12 09:42:31 +03:00
parent 8711a8602e
commit 8b14cef4e7
1 changed files with 34 additions and 0 deletions

View File

@ -354,6 +354,40 @@ fn test_dmat_multiplication() {
assert!((mat1 * mat2) == res); assert!((mat1 * mat2) == res);
} }
// Tests multiplication of rectangular (non-square) matrices.
#[test]
fn test_dmat_multiplication_rect() {
let mat1 = DMat::from_row_vec(
1,
2,
&[
1.0, 2.0,
]
);
let mat2 = DMat::from_row_vec(
2,
3,
&[
3.0, 4.0, 5.0,
6.0, 7.0, 8.0,
]
);
let res = DMat::from_row_vec(
1,
3,
&[
15.0, 18.0, 21.0,
]
);
assert!((mat1.clone() * mat2.clone()) == res);
assert!((&mat1 * mat2.clone()) == res);
assert!((mat1.clone() * &mat2) == res);
assert!((&mat1 * &mat2) == res);
}
#[test] #[test]
fn test_dmat_subtraction() { fn test_dmat_subtraction() {
let mat1 = DMat::from_row_vec( let mat1 = DMat::from_row_vec(