#[cfg(all(feature = "polygon2", any(feature = "std", feature = "alloc")))]
mod tests {
use gemath::*;
#[test]
fn polygon2_contains_point_convex_square() {
let poly: Polygon2<(), ()> = Polygon2::new(vec![
Vec2::new(-1.0, -1.0),
Vec2::new(1.0, -1.0),
Vec2::new(1.0, 1.0),
Vec2::new(-1.0, 1.0),
]);
assert!(poly.contains_point(Vec2::new(0.0, 0.0)));
assert!(!poly.contains_point(Vec2::new(2.0, 0.0)));
assert!(poly.contains_point(Vec2::new(1.0, 0.25)));
assert!(poly.contains_point(Vec2::new(0.0, -1.0)));
assert!(poly.contains_point(Vec2::new(-1.0, 1.0)));
}
#[test]
fn polygon2_contains_point_concave_l_shape() {
let poly: Polygon2<(), ()> = Polygon2::new(vec![
Vec2::new(0.0, 0.0),
Vec2::new(3.0, 0.0),
Vec2::new(3.0, 2.0),
Vec2::new(2.0, 2.0),
Vec2::new(2.0, 3.0),
Vec2::new(0.0, 3.0),
]);
assert!(poly.contains_point(Vec2::new(0.5, 2.5)));
assert!(poly.contains_point(Vec2::new(2.5, 0.5)));
assert!(!poly.contains_point(Vec2::new(2.5, 2.5)));
assert!(poly.contains_point(Vec2::new(2.0, 2.5))); assert!(poly.contains_point(Vec2::new(2.5, 2.0))); }
}