cgmath/src/test/aabb.rs

48 lines
1.9 KiB
Rust
Raw Normal View History

2014-01-31 18:02:42 +00:00
use cgmath::aabb::*;
use cgmath::point::{Point2, Point3};
2014-01-31 18:02:42 +00:00
use cgmath::vector::{Vec2, Vec3};
#[test]
fn test_aabb() {
2014-01-31 18:02:42 +00:00
let aabb = Aabb2::new(&Point2::new(-20, 30), &Point2::new(10, -10));
assert_eq!(aabb.min(), &Point2::new(-20, -10));
assert_eq!(aabb.max(), &Point2::new(10, 30));
assert_eq!(aabb.dim(), Vec2::new(30, 40));
assert_eq!(aabb.volume(), 30 * 40);
assert_eq!(aabb.center(), Point2::new(-5, 10));
2014-01-31 18:02:42 +00:00
assert!(aabb.contains(&Point2::new(0, 0)));
assert!(!aabb.contains(&Point2::new(-50, -50)));
assert!(!aabb.contains(&Point2::new(50, 50)));
assert_eq!(aabb.grow(&Point2::new(0, 0)), aabb);
assert_eq!(aabb.grow(&Point2::new(100, 100)),
Aabb2::new(&Point2::new(-20, -10), &Point2::new(100, 100)));
assert_eq!(aabb.grow(&Point2::new(-100, -100)),
Aabb2::new(&Point2::new(-100, -100), &Point2::new(10, 30)));
let aabb = Aabb3::new(&Point3::new(-20, 30, 5), &Point3::new(10, -10, -5));
assert_eq!(aabb.min(), &Point3::new(-20, -10, -5));
assert_eq!(aabb.max(), &Point3::new(10, 30, 5));
assert_eq!(aabb.dim(), Vec3::new(30, 40, 10));
assert_eq!(aabb.volume(), 30 * 40 * 10);
assert_eq!(aabb.center(), Point3::new(-5, 10, 0));
assert!(aabb.contains(&Point3::new(0, 0, 0)));
assert!(!aabb.contains(&Point3::new(-100, 0, 0)));
assert!(!aabb.contains(&Point3::new(100, 0, 0)));
assert!(aabb.contains(&Point3::new(9, 29, -1)));
assert!(!aabb.contains(&Point3::new(10, 30, 5)));
assert!(aabb.contains(&Point3::new(-20, -10, -5)));
assert!(!aabb.contains(&Point3::new(-21, -11, -6)));
2014-02-01 08:12:27 +00:00
2014-02-01 08:29:59 +00:00
assert_eq!(aabb.add_v(&Vec3::new(1, 2, 3)),
2014-02-01 08:12:27 +00:00
Aabb3::new(&Point3::new(-19, 32, 8), &Point3::new(11, -8, -2)));
2014-02-01 08:29:59 +00:00
assert_eq!(aabb.mul_s(2),
Aabb3::new(&Point3::new(-40, -20, -10), &Point3::new(20, 60, 10)));
assert_eq!(aabb.mul_v(&Vec3::new(1, 2, 3)),
Aabb3::new(&Point3::new(-20, -20, -15), &Point3::new(10, 60, 15)));
}