diff --git a/src/matrix.rs b/src/matrix.rs index 3d9911c..df533ca 100644 --- a/src/matrix.rs +++ b/src/matrix.rs @@ -201,8 +201,8 @@ pub impl Mat2: SquareMatrix { if d.fuzzy_eq(&_0) { None } else { - Some(Mat2::new(self[1][1]/d, -self[1][0]/d, - -self[0][1]/d, self[0][0]/d)) + Some(Mat2::new(self[1][1]/d, -self[0][1]/d, + -self[1][0]/d, self[0][0]/d)) } } diff --git a/src/test/test_matrix.rs b/src/test/test_matrix.rs index 770a21d..0ab73ac 100644 --- a/src/test/test_matrix.rs +++ b/src/test/test_matrix.rs @@ -30,7 +30,7 @@ fn test_Mat2() { assert a.col(0) == Vec2::new(1f, 3f); assert a.col(1) == Vec2::new(2f, 4f); - assert a.det() == 4f; + assert a.det() == -2f; assert a.neg() == Mat2::new(-1f, -3f, -2f, -4f); @@ -50,11 +50,12 @@ fn test_Mat2() { assert a.transpose() == Mat2::new(1f, 2f, 3f, 4f); - assert option::unwrap(a.invert()) == Mat2::new(1f, -0.5f, - -0.75f, 0.25f); + io::println(#fmt("%?", option::unwrap(a.invert()))); + assert option::unwrap(a.invert()) == Mat2::new(-2f, 1.5f, + 1f, -0.5f); assert Mat2::new(0f, 2f, - 3f, 5f).invert().is_none(); + 0f, 5f).invert().is_none(); // exact_eq // fuzzy_eq