diff options
author | Justin Worthe <justin@worthe-it.co.za> | 2019-01-01 21:49:37 +0200 |
---|---|---|
committer | Justin Worthe <justin@worthe-it.co.za> | 2019-01-01 21:49:37 +0200 |
commit | 1b54b333f4016db7612c3783ca36787fd4046238 (patch) | |
tree | d240be3f9ad90e9c612e700b2ff1b468b9f83f6b | |
parent | edb002c3b073ae18c1e410ec49f362c49d063bc2 (diff) |
Added example unit tests for circles intersecting
-rw-r--r-- | src/hitbox.rs | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/hitbox.rs b/src/hitbox.rs index 75cc89b..191e1a1 100644 --- a/src/hitbox.rs +++ b/src/hitbox.rs @@ -61,3 +61,50 @@ fn capsule_circle_intersect(x: &CapsuleHitbox, y: &CircleHitbox) -> bool { fn capsule_point_intersect(x: &CapsuleHitbox, y: &PointHitbox) -> bool { x.line.distance(y.pos) <= x.radius } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn circle_intersecting_circle_origin_example() { + assert_eq!(Hitbox::intersect( + &Hitbox::Circle(CircleHitbox { + pos: Vec2d::new(0.,0.), + radius: 0. + }), + &Hitbox::Circle(CircleHitbox { + pos: Vec2d::new(0.,0.), + radius: 0. + }) + ), true); + } + + #[test] + fn circle_intersecting_circle_origin_elsewhere() { + assert_eq!(Hitbox::intersect( + &Hitbox::Circle(CircleHitbox { + pos: Vec2d::new(0.,0.), + radius: 0.5 + }), + &Hitbox::Circle(CircleHitbox { + pos: Vec2d::new(1.,0.), + radius: 0.5 + }) + ), true); + } + + #[test] + fn circle_intersecting_circle_origin_outside() { + assert_eq!(Hitbox::intersect( + &Hitbox::Circle(CircleHitbox { + pos: Vec2d::new(0.,0.), + radius: 0.5 + }), + &Hitbox::Circle(CircleHitbox { + pos: Vec2d::new(1.,0.), + radius: 0.4 + }) + ), false); + } +} |