Added tests for the added cast functions of matrix and point.

This commit is contained in:
Marckvdv 2016-10-03 13:20:57 +02:00
parent d2d35b808b
commit c9a9cad256
2 changed files with 35 additions and 1 deletions

View file

@ -704,6 +704,33 @@ pub mod matrix4 {
assert_eq!(res, Vector4::new(1., 2., 3., 1.)); assert_eq!(res, Vector4::new(1., 2., 3., 1.));
} }
#[test]
fn test_cast() {
assert_ulps_eq!(Matrix2::new(0.2f64, 1.5, 4.7, 2.3).cast(), Matrix2::new(0.2f32, 1.5, 4.7, 2.3));
assert_ulps_eq!(Matrix3::new(
0.2f64, 1.5, 4.7,
2.3, 5.7, 2.1,
4.6, 5.2, 6.6,
).cast(), Matrix3::new(
0.2f32, 1.5, 4.7,
2.3, 5.7, 2.1,
4.6, 5.2, 6.6,
));
assert_ulps_eq!(Matrix4::new(
0.2f64, 1.5, 4.7, 2.5,
2.3, 5.7, 2.1, 1.1,
4.6, 5.2, 6.6, 0.2,
3.2, 1.8, 0.4, 2.9,
).cast(), Matrix4::new(
0.2f32, 1.5, 4.7, 2.5,
2.3, 5.7, 2.1, 1.1,
4.6, 5.2, 6.6, 0.2,
3.2, 1.8, 0.4, 2.9,
));
}
mod from { mod from {
use cgmath::*; use cgmath::*;

View file

@ -17,7 +17,7 @@
extern crate approx; extern crate approx;
extern crate cgmath; extern crate cgmath;
use cgmath::{Point2, Point3}; use cgmath::{Point1, Point2, Point3};
macro_rules! impl_test_mul { macro_rules! impl_test_mul {
($PointN:ident { $($field:ident),+ }, $s:expr, $v:expr) => ( ($PointN:ident { $($field:ident),+ }, $s:expr, $v:expr) => (
@ -74,3 +74,10 @@ fn test_rem() {
impl_test_rem!(Point3 { x, y, z }, 2.0f32, Point3::new(2.0f32, 4.0, 6.0)); impl_test_rem!(Point3 { x, y, z }, 2.0f32, Point3::new(2.0f32, 4.0, 6.0));
impl_test_rem!(Point2 { x, y }, 2.0f32, Point2::new(2.0f32, 4.0)); impl_test_rem!(Point2 { x, y }, 2.0f32, Point2::new(2.0f32, 4.0));
} }
#[test]
fn test_cast() {
assert_ulps_eq!(Point1::new(0.9f64).cast(), Point1::new(0.9f32));
assert_ulps_eq!(Point2::new(0.9f64, 1.5).cast(), Point2::new(0.9f32, 1.5));
assert_ulps_eq!(Point3::new(1.0f64, 2.4, -3.13).cast(), Point3::new(1.0f32, 2.4, -3.13));
}