#![cfg(feature = "unstable-v3-aabb")] use rstest::rstest; use impacted::v3::{Aabb, Collides, Point, Shape, Vec2}; #[rstest] #[case( Aabb::from_size(Vec2::new(2.0, 2.0)), Aabb::from_size(Vec2::new(2.0, 2.0)) )] #[case( Aabb::from_size(Vec2::new(2.0, 2.0)), Aabb::from_size(Vec2::new(2.0, 2.0)).with_center_at(Point::new(1.9, 0.0)) )] #[case( Aabb::from_size(Vec2::new(2.0, 2.0)), Aabb::from_size(Vec2::new(2.0, 2.0)).with_center_at(Point::new(0.0, 1.9)) )] #[case(Point::ORIGIN, Aabb::from_size(Vec2::new(2.0, 2.0)))] #[case( Point::new(10.9, 9.1), Aabb::from_size(Vec2::new(2.0, 2.0)).with_center_at(Point::new(10.0, 10.0)) )] fn test_collides(#[case] shape1: impl Shape, #[case] shape2: impl Shape) { assert!(shape1.collides(&shape2)); } #[rstest] #[case( Aabb::from_size(Vec2::new(2.0, 2.0)), Aabb::from_size(Vec2::new(2.0, 2.0)).with_center_at(Point::new(2.1, 0.0)) )] #[case( Aabb::from_size(Vec2::new(2.0, 2.0)), Aabb::from_size(Vec2::new(2.0, 2.0)).with_center_at(Point::new(0.0, 2.1)) )] #[case( Point::new(12.1, 9.1), Aabb::from_size(Vec2::new(2.0, 2.0)).with_center_at(Point::new(10.0, 10.0)) )] fn test_not_collides(#[case] shape1: impl Shape, #[case] shape2: impl Shape) { assert!(!shape1.collides(&shape2)); }