summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Worthe <justin@worthe-it.co.za>2019-01-01 21:49:37 +0200
committerJustin Worthe <justin@worthe-it.co.za>2019-01-01 21:49:37 +0200
commit1b54b333f4016db7612c3783ca36787fd4046238 (patch)
treed240be3f9ad90e9c612e700b2ff1b468b9f83f6b
parentedb002c3b073ae18c1e410ec49f362c49d063bc2 (diff)
Added example unit tests for circles intersecting
-rw-r--r--src/hitbox.rs47
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);
+ }
+}