diff --git a/src/tests/matrix.rs b/src/tests/matrix.rs index dbdf74b..6d67e4a 100644 --- a/src/tests/matrix.rs +++ b/src/tests/matrix.rs @@ -20,61 +20,61 @@ pub mod mat2 { use cgmath::matrix::*; use cgmath::vector::*; - pub static A: Mat2 = Mat2 { x: Vec2 { x: 1.0, y: 3.0 }, + pub static A: Mat2 = Mat2 { x: Vec2 { x: 1.0, y: 3.0 }, y: Vec2 { x: 2.0, y: 4.0 } }; - pub static B: Mat2 = Mat2 { x: Vec2 { x: 2.0, y: 4.0 }, + pub static B: Mat2 = Mat2 { x: Vec2 { x: 2.0, y: 4.0 }, y: Vec2 { x: 3.0, y: 5.0 } }; - pub static C: Mat2 = Mat2 { x: Vec2 { x: 2.0, y: 1.0 }, + pub static C: Mat2 = Mat2 { x: Vec2 { x: 2.0, y: 1.0 }, y: Vec2 { x: 1.0, y: 2.0 } }; - pub static V: Vec2 = Vec2 { x: 1.0, y: 2.0 }; - pub static F: float = 0.5; + pub static V: Vec2 = Vec2 { x: 1.0, y: 2.0 }; + pub static F: f64 = 0.5; } pub mod mat3 { use cgmath::matrix::*; use cgmath::vector::*; - pub static A: Mat3 = Mat3 { x: Vec3 { x: 1.0, y: 4.0, z: 7.0 }, + pub static A: Mat3 = Mat3 { x: Vec3 { x: 1.0, y: 4.0, z: 7.0 }, y: Vec3 { x: 2.0, y: 5.0, z: 8.0 }, z: Vec3 { x: 3.0, y: 6.0, z: 9.0 } }; - pub static B: Mat3 = Mat3 { x: Vec3 { x: 2.0, y: 5.0, z: 8.0 }, + pub static B: Mat3 = Mat3 { x: Vec3 { x: 2.0, y: 5.0, z: 8.0 }, y: Vec3 { x: 3.0, y: 6.0, z: 9.0 }, z: Vec3 { x: 4.0, y: 7.0, z: 10.0 } }; - pub static C: Mat3 = Mat3 { x: Vec3 { x: 2.0, y: 4.0, z: 6.0 }, + pub static C: Mat3 = Mat3 { x: Vec3 { x: 2.0, y: 4.0, z: 6.0 }, y: Vec3 { x: 0.0, y: 2.0, z: 4.0 }, z: Vec3 { x: 0.0, y: 0.0, z: 1.0 } }; - pub static D: Mat3 = Mat3 { x: Vec3 { x: 3.0, y: 2.0, z: 1.0 }, + pub static D: Mat3 = Mat3 { x: Vec3 { x: 3.0, y: 2.0, z: 1.0 }, y: Vec3 { x: 2.0, y: 3.0, z: 2.0 }, z: Vec3 { x: 1.0, y: 2.0, z: 3.0 } }; - pub static V: Vec3 = Vec3 { x: 1.0, y: 2.0, z: 3.0 }; - pub static F: float = 0.5; + pub static V: Vec3 = Vec3 { x: 1.0, y: 2.0, z: 3.0 }; + pub static F: f64 = 0.5; } pub mod mat4 { use cgmath::matrix::*; use cgmath::vector::*; - pub static A: Mat4 = Mat4 { x: Vec4 { x: 1.0, y: 5.0, z: 9.0, w: 13.0 }, + pub static A: Mat4 = Mat4 { x: Vec4 { x: 1.0, y: 5.0, z: 9.0, w: 13.0 }, y: Vec4 { x: 2.0, y: 6.0, z: 10.0, w: 14.0 }, z: Vec4 { x: 3.0, y: 7.0, z: 11.0, w: 15.0 }, w: Vec4 { x: 4.0, y: 8.0, z: 12.0, w: 16.0 } }; - pub static B: Mat4 = Mat4 { x: Vec4 { x: 2.0, y: 6.0, z: 10.0, w: 14.0 }, + pub static B: Mat4 = Mat4 { x: Vec4 { x: 2.0, y: 6.0, z: 10.0, w: 14.0 }, y: Vec4 { x: 3.0, y: 7.0, z: 11.0, w: 15.0 }, z: Vec4 { x: 4.0, y: 8.0, z: 12.0, w: 16.0 }, w: Vec4 { x: 5.0, y: 9.0, z: 13.0, w: 17.0 } }; - pub static C: Mat4 = Mat4 { x: Vec4 { x: 3.0, y: 2.0, z: 1.0, w: 1.0 }, + pub static C: Mat4 = Mat4 { x: Vec4 { x: 3.0, y: 2.0, z: 1.0, w: 1.0 }, y: Vec4 { x: 2.0, y: 3.0, z: 2.0, w: 2.0 }, z: Vec4 { x: 1.0, y: 2.0, z: 3.0, w: 3.0 }, w: Vec4 { x: 0.0, y: 1.0, z: 1.0, w: 0.0 } }; - pub static D: Mat4 = Mat4 { x: Vec4 { x: 4.0, y: 3.0, z: 2.0, w: 1.0 }, + pub static D: Mat4 = Mat4 { x: Vec4 { x: 4.0, y: 3.0, z: 2.0, w: 1.0 }, y: Vec4 { x: 3.0, y: 4.0, z: 3.0, w: 2.0 }, z: Vec4 { x: 2.0, y: 3.0, z: 4.0, w: 3.0 }, w: Vec4 { x: 1.0, y: 2.0, z: 3.0, w: 4.0 } }; - pub static V: Vec4 = Vec4 { x: 1.0, y: 2.0, z: 3.0, w: 4.0 }; - pub static F: float = 0.5; + pub static V: Vec4 = Vec4 { x: 1.0, y: 2.0, z: 3.0, w: 4.0 }; + pub static F: f64 = 0.5; } #[test] @@ -227,7 +227,7 @@ fn test_trace() { fn test_transpose() { // Mat2 assert_eq!(mat2::A.transpose(), - Mat2::::new(1.0, 2.0, + Mat2::::new(1.0, 2.0, 3.0, 4.0)); let mut mut_a = mat2::A; mut_a.transpose_self(); @@ -235,7 +235,7 @@ fn test_transpose() { // Mat3 assert_eq!(mat3::A.transpose(), - Mat3::::new(1.0, 2.0, 3.0, + Mat3::::new(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0)); let mut mut_a = mat3::A; @@ -244,7 +244,7 @@ fn test_transpose() { // Mat4 assert_eq!(mat4::A.transpose(), - Mat4::::new( 1.0, 2.0, 3.0, 4.0, + Mat4::::new( 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0)); @@ -256,7 +256,7 @@ fn test_transpose() { #[test] fn test_invert() { // Mat2 - assert!(Mat2::::identity().invert().unwrap().is_identity()); + assert!(Mat2::::identity().invert().unwrap().is_identity()); assert_eq!(mat2::A.invert().unwrap(), Mat2::new(-2.0, 1.5, @@ -268,7 +268,7 @@ fn test_invert() { assert_eq!(mut_a, mat2::A.invert().unwrap()); // Mat3 - assert!(Mat3::::identity().invert().unwrap().is_identity()); + assert!(Mat3::::identity().invert().unwrap().is_identity()); assert_eq!(mat3::A.invert(), None); @@ -281,7 +281,7 @@ fn test_invert() { assert_eq!(mut_c, mat3::C.invert().unwrap()); // Mat4 - assert!(Mat4::::identity().invert().unwrap().is_identity()); + assert!(Mat4::::identity().invert().unwrap().is_identity()); assert_approx_eq!(mat4::C.invert().unwrap(), Mat4::new( 5.0, -4.0, 1.0, 0.0, @@ -297,11 +297,11 @@ fn test_invert() { fn test_predicates() { // Mat2 - assert!(Mat2::::identity().is_identity()); - assert!(Mat2::::identity().is_symmetric()); - assert!(Mat2::::identity().is_diagonal()); - assert!(!Mat2::::identity().is_rotated()); - assert!(Mat2::::identity().is_invertible()); + assert!(Mat2::::identity().is_identity()); + assert!(Mat2::::identity().is_symmetric()); + assert!(Mat2::::identity().is_diagonal()); + assert!(!Mat2::::identity().is_rotated()); + assert!(Mat2::::identity().is_invertible()); assert!(!mat2::A.is_identity()); assert!(!mat2::A.is_symmetric()); @@ -319,11 +319,11 @@ fn test_predicates() { // Mat3 - assert!(Mat3::::identity().is_identity()); - assert!(Mat3::::identity().is_symmetric()); - assert!(Mat3::::identity().is_diagonal()); - assert!(!Mat3::::identity().is_rotated()); - assert!(Mat3::::identity().is_invertible()); + assert!(Mat3::::identity().is_identity()); + assert!(Mat3::::identity().is_symmetric()); + assert!(Mat3::::identity().is_diagonal()); + assert!(!Mat3::::identity().is_rotated()); + assert!(Mat3::::identity().is_invertible()); assert!(!mat3::A.is_identity()); assert!(!mat3::A.is_symmetric()); @@ -341,11 +341,11 @@ fn test_predicates() { // Mat4 - assert!(Mat4::::identity().is_identity()); - assert!(Mat4::::identity().is_symmetric()); - assert!(Mat4::::identity().is_diagonal()); - assert!(!Mat4::::identity().is_rotated()); - assert!(Mat4::::identity().is_invertible()); + assert!(Mat4::::identity().is_identity()); + assert!(Mat4::::identity().is_symmetric()); + assert!(Mat4::::identity().is_diagonal()); + assert!(!Mat4::::identity().is_rotated()); + assert!(Mat4::::identity().is_invertible()); assert!(!mat4::A.is_identity()); assert!(!mat4::A.is_symmetric()); diff --git a/src/tests/plane.rs b/src/tests/plane.rs index 61830ad..cceefc4 100644 --- a/src/tests/plane.rs +++ b/src/tests/plane.rs @@ -18,11 +18,11 @@ use cgmath::point::*; #[test] fn test_from_points() { - assert_eq!(Plane::from_points(Point3::new(5f, 0f, 5f), - Point3::new(5f, 5f, 5f), - Point3::new(5f, 0f, -1f)), Some(Plane::from_abcd(-1f, 0f, 0f, 5f))); + assert_eq!(Plane::from_points(Point3::new(5f64, 0f64, 5f64), + Point3::new(5f64, 5f64, 5f64), + Point3::new(5f64, 0f64, -1f64)), Some(Plane::from_abcd(-1f64, 0f64, 0f64, 5f64))); - assert_eq!(Plane::from_points(Point3::new(0f, 5f, -5f), - Point3::new(0f, 5f, 0f), - Point3::new(0f, 5f, 5f)), None); // The points are parallel + assert_eq!(Plane::from_points(Point3::new(0f64, 5f64, -5f64), + Point3::new(0f64, 5f64, 0f64), + Point3::new(0f64, 5f64, 5f64)), None); // The points are parallel } diff --git a/src/tests/test.rs b/src/tests/test.rs index 693cedf..b2a4f6e 100644 --- a/src/tests/test.rs +++ b/src/tests/test.rs @@ -12,6 +12,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. +#[feature(globs)]; extern mod cgmath; diff --git a/src/tests/vector.rs b/src/tests/vector.rs index 5e7159b..b1e5e19 100644 --- a/src/tests/vector.rs +++ b/src/tests/vector.rs @@ -36,9 +36,9 @@ fn test_comp_add() { assert_eq!(Vec3::new(1, 2, 3).comp_add(), 6); assert_eq!(Vec4::new(1, 2, 3, 4).comp_add(), 10); - assert_eq!(Vec2::new(3f, 4f).comp_add(), 7f); - assert_eq!(Vec3::new(4f, 5f, 6f).comp_add(), 15f); - assert_eq!(Vec4::new(5f, 6f, 7f, 8f).comp_add(), 26f); + assert_eq!(Vec2::new(3f64, 4f64).comp_add(), 7f64); + assert_eq!(Vec3::new(4f64, 5f64, 6f64).comp_add(), 15f64); + assert_eq!(Vec4::new(5f64, 6f64, 7f64, 8f64).comp_add(), 26f64); } #[test] @@ -47,9 +47,9 @@ fn test_comp_mul() { assert_eq!(Vec3::new(1, 2, 3).comp_mul(), 6); assert_eq!(Vec4::new(1, 2, 3, 4).comp_mul(), 24); - assert_eq!(Vec2::new(3f, 4f).comp_mul(), 12f); - assert_eq!(Vec3::new(4f, 5f, 6f).comp_mul(), 120f); - assert_eq!(Vec4::new(5f, 6f, 7f, 8f).comp_mul(), 1680f); + assert_eq!(Vec2::new(3f64, 4f64).comp_mul(), 12f64); + assert_eq!(Vec3::new(4f64, 5f64, 6f64).comp_mul(), 120f64); + assert_eq!(Vec4::new(5f64, 6f64, 7f64, 8f64).comp_mul(), 1680f64); } #[test] @@ -58,9 +58,9 @@ fn test_comp_min() { assert_eq!(Vec3::new(1, 2, 3).comp_min(), 1); assert_eq!(Vec4::new(1, 2, 3, 4).comp_min(), 1); - assert_eq!(Vec2::new(3f, 4f).comp_min(), 3f); - assert_eq!(Vec3::new(4f, 5f, 6f).comp_min(), 4f); - assert_eq!(Vec4::new(5f, 6f, 7f, 8f).comp_min(), 5f); + assert_eq!(Vec2::new(3f64, 4f64).comp_min(), 3f64); + assert_eq!(Vec3::new(4f64, 5f64, 6f64).comp_min(), 4f64); + assert_eq!(Vec4::new(5f64, 6f64, 7f64, 8f64).comp_min(), 5f64); } #[test] @@ -69,9 +69,9 @@ fn test_comp_max() { assert_eq!(Vec3::new(1, 2, 3).comp_max(), 3); assert_eq!(Vec4::new(1, 2, 3, 4).comp_max(), 4); - assert_eq!(Vec2::new(3f, 4f).comp_max(), 4f); - assert_eq!(Vec3::new(4f, 5f, 6f).comp_max(), 6f); - assert_eq!(Vec4::new(5f, 6f, 7f, 8f).comp_max(), 8f); + assert_eq!(Vec2::new(3f64, 4f64).comp_max(), 4f64); + assert_eq!(Vec3::new(4f64, 5f64, 6f64).comp_max(), 6f64); + assert_eq!(Vec4::new(5f64, 6f64, 7f64, 8f64).comp_max(), 8f64); } #[test] @@ -88,9 +88,9 @@ fn test_cross() { #[test] fn test_is_perpendicular() { - assert!(Vec2::new(1f, 0f).is_perpendicular(&Vec2::new(0f, 1f))); - assert!(Vec3::new(0f, 1f, 0f).is_perpendicular(&Vec3::new(0f, 0f, 1f))); - assert!(Vec4::new(1f, 0f, 0f, 0f).is_perpendicular(&Vec4::new(0f, 0f, 0f, 1f))); + assert!(Vec2::new(1f64, 0f64).is_perpendicular(&Vec2::new(0f64, 1f64))); + assert!(Vec3::new(0f64, 1f64, 0f64).is_perpendicular(&Vec3::new(0f64, 0f64, 1f64))); + assert!(Vec4::new(1f64, 0f64, 0f64, 0f64).is_perpendicular(&Vec4::new(0f64, 0f64, 0f64, 1f64))); } #[cfg(test)] @@ -99,8 +99,8 @@ mod test_length { #[test] fn test_vec2(){ - let (a, a_res) = (Vec2::new(3f, 4f), 5f); // (3, 4, 5) Pythagorean triple - let (b, b_res) = (Vec2::new(5f, 12f), 13f); // (5, 12, 13) Pythagorean triple + let (a, a_res) = (Vec2::new(3f64, 4f64), 5f64); // (3, 4, 5) Pythagorean triple + let (b, b_res) = (Vec2::new(5f64, 12f64), 13f64); // (5, 12, 13) Pythagorean triple assert_eq!(a.length2(), a_res * a_res); assert_eq!(b.length2(), b_res * b_res); @@ -111,8 +111,8 @@ mod test_length { #[test] fn test_vec3(){ - let (a, a_res) = (Vec3::new(2f, 3f, 6f), 7f); // (2, 3, 6, 7) Pythagorean quadruple - let (b, b_res) = (Vec3::new(1f, 4f, 8f), 9f); // (1, 4, 8, 9) Pythagorean quadruple + let (a, a_res) = (Vec3::new(2f64, 3f64, 6f64), 7f64); // (2, 3, 6, 7) Pythagorean quadruple + let (b, b_res) = (Vec3::new(1f64, 4f64, 8f64), 9f64); // (1, 4, 8, 9) Pythagorean quadruple assert_eq!(a.length2(), a_res * a_res); assert_eq!(b.length2(), b_res * b_res); @@ -123,8 +123,8 @@ mod test_length { #[test] fn test_vec4(){ - let (a, a_res) = (Vec4::new(1f, 2f, 4f, 10f), 11f); // (1, 2, 4, 10, 11) Pythagorean quintuple - let (b, b_res) = (Vec4::new(1f, 2f, 8f, 10f), 13f); // (1, 2, 8, 10, 13) Pythagorean quintuple + let (a, a_res) = (Vec4::new(1f64, 2f64, 4f64, 10f64), 11f64); // (1, 2, 4, 10, 11) Pythagorean quintuple + let (b, b_res) = (Vec4::new(1f64, 2f64, 8f64, 10f64), 13f64); // (1, 2, 8, 10, 13) Pythagorean quintuple assert_eq!(a.length2(), a_res * a_res); assert_eq!(b.length2(), b_res * b_res); @@ -136,23 +136,23 @@ mod test_length { #[test] fn test_angle() { - assert_approx_eq!(Vec2::new(1f, 0f).angle(&Vec2::new(0f, 1f)), rad(Real::frac_pi_2())); - assert_approx_eq!(Vec2::new(10f, 0f).angle(&Vec2::new(0f, 5f)), rad(Real::frac_pi_2())); - assert_approx_eq!(Vec2::new(-1f, 0f).angle(&Vec2::new(0f, 1f)), -rad(Real::frac_pi_2())); + assert_approx_eq!(Vec2::new(1f64, 0f64).angle(&Vec2::new(0f64, 1f64)), rad(Real::frac_pi_2())); + assert_approx_eq!(Vec2::new(10f64, 0f64).angle(&Vec2::new(0f64, 5f64)), rad(Real::frac_pi_2())); + assert_approx_eq!(Vec2::new(-1f64, 0f64).angle(&Vec2::new(0f64, 1f64)), -rad(Real::frac_pi_2())); - assert_approx_eq!(Vec3::new(1f, 0f, 1f).angle(&Vec3::new(1f, 1f, 0f)), rad(Real::frac_pi_3())); - assert_approx_eq!(Vec3::new(10f, 0f, 10f).angle(&Vec3::new(5f, 5f, 0f)), rad(Real::frac_pi_3())); - assert_approx_eq!(Vec3::new(-1f, 0f, -1f).angle(&Vec3::new(1f, -1f, 0f)), rad(2f * Real::frac_pi_3())); + assert_approx_eq!(Vec3::new(1f64, 0f64, 1f64).angle(&Vec3::new(1f64, 1f64, 0f64)), rad(Real::frac_pi_3())); + assert_approx_eq!(Vec3::new(10f64, 0f64, 10f64).angle(&Vec3::new(5f64, 5f64, 0f64)), rad(Real::frac_pi_3())); + assert_approx_eq!(Vec3::new(-1f64, 0f64, -1f64).angle(&Vec3::new(1f64, -1f64, 0f64)), rad(2f64 * Real::frac_pi_3())); - assert_approx_eq!(Vec4::new(1f, 0f, 1f, 0f).angle(&Vec4::new(0f, 1f, 0f, 1f)), rad(Real::frac_pi_2())); - assert_approx_eq!(Vec4::new(10f, 0f, 10f, 0f).angle(&Vec4::new(0f, 5f, 0f, 5f)), rad(Real::frac_pi_2())); - assert_approx_eq!(Vec4::new(-1f, 0f, -1f, 0f).angle(&Vec4::new(0f, 1f, 0f, 1f)), rad(Real::frac_pi_2())); + assert_approx_eq!(Vec4::new(1f64, 0f64, 1f64, 0f64).angle(&Vec4::new(0f64, 1f64, 0f64, 1f64)), rad(Real::frac_pi_2())); + assert_approx_eq!(Vec4::new(10f64, 0f64, 10f64, 0f64).angle(&Vec4::new(0f64, 5f64, 0f64, 5f64)), rad(Real::frac_pi_2())); + assert_approx_eq!(Vec4::new(-1f64, 0f64, -1f64, 0f64).angle(&Vec4::new(0f64, 1f64, 0f64, 1f64)), rad(Real::frac_pi_2())); } #[test] fn test_normalize() { // TODO: test normalize_to, normalize_self, and normalize_self_to - assert_approx_eq!(Vec2::new(3f, 4f).normalize(), Vec2::new(3f/5f, 4f/5f)); - assert_approx_eq!(Vec3::new(2f, 3f, 6f).normalize(), Vec3::new(2f/7f, 3f/7f, 6f/7f)); - assert_approx_eq!(Vec4::new(1f, 2f, 4f, 10f).normalize(), Vec4::new(1f/11f, 2f/11f, 4f/11f, 10f/11f)); + assert_approx_eq!(Vec2::new(3f64, 4f64).normalize(), Vec2::new(3f64/5f64, 4f64/5f64)); + assert_approx_eq!(Vec3::new(2f64, 3f64, 6f64).normalize(), Vec3::new(2f64/7f64, 3f64/7f64, 6f64/7f64)); + assert_approx_eq!(Vec4::new(1f64, 2f64, 4f64, 10f64).normalize(), Vec4::new(1f64/11f64, 2f64/11f64, 4f64/11f64, 10f64/11f64)); }