package vooga.fighter.test;
import static org.junit.Assert.*;
import java.awt.Rectangle;
import java.awt.geom.Ellipse2D;
import org.junit.Test;
import util.Location;
import util.Vector;
import vooga.fighter.util.CollisionDetector;
public class CollisionDetectorTester {
CollisionDetector myDetector;
public void setUp(){
myDetector = new CollisionDetector();
}
@Test
public void testpreciseDetectCollisionPoint (){
setUp();
Location loc = new Location(0,50);
Ellipse2D ellipse = new Ellipse2D.Float(0,0, 100, 100);
assertTrue(myDetector.preciseDetectCollision(ellipse,loc));
}
@Test
public void testquickDetectCollision (){
setUp();
Rectangle rect2 = new Rectangle(100,100);
Location loc = new Location(0,0);
assertTrue(myDetector.quickDetectCollision(rect2, loc));
}
@Test
public void testHitTopPoint() {
setUp();
Rectangle rect1 = new Rectangle(100,100);
Location loc = new Location(50,10);
assertTrue(myDetector.hitTop(rect1,loc));
}
@Test
public void testHitBottomPoint() {
setUp();
Rectangle rect1 = new Rectangle(100,100);
Location loc = new Location(50,90);
assertTrue(myDetector.hitBottom(rect1,loc));
}
@Test
public void testHitRightPoint() {
setUp();
Rectangle rect1 = new Rectangle(100,100);
Location loc = new Location(95,50);
assertTrue(myDetector.hitRight(rect1,loc));
}
@Test
public void testHitLeftPoint() {
setUp();
Rectangle rect1 = new Rectangle(100,100);
Location loc = new Location(10,50);
assertTrue(myDetector.hitLeft(rect1,loc));
}
@Test
public void testHitTop() {
setUp();
Rectangle rect1 = new Rectangle(100,100);
Rectangle rect2 = new Rectangle(50,10,1,1);
assertTrue(myDetector.hitTop(rect1,rect2));
}
@Test
public void testHitBottom() {
setUp();
Rectangle rect1 = new Rectangle(100,100);
Rectangle rect2 = new Rectangle(50,90,20,200);
assertTrue(myDetector.hitBottom(rect1,rect2));
}
@Test
public void testHitRight() {
setUp();
Rectangle rect1 = new Rectangle(100,100);
Rectangle rect2 = new Rectangle(90, 50,20,200);
assertTrue(myDetector.hitRight(rect1,rect2));
}
@Test
public void testHitLeft() {
setUp();
Rectangle rect1 = new Rectangle(100,100);
Rectangle rect2 = new Rectangle(10,50,1,1);
assertTrue(myDetector.hitLeft(rect1,rect2));
}
@Test
public void testHitTopwvelocity() {
setUp();
Rectangle rect1 = new Rectangle(100,100);
Location loc = new Location(99, 50);
Vector speed1 = new Vector(0,0);
Vector speed2 = new Vector(90, 10);
assertTrue(myDetector.hitTop(rect1, loc, speed1, speed2));
}
@Test
public void testHitBottomwvelocity() {
setUp();
Rectangle rect1 = new Rectangle(100,100);
Location loc = new Location(99, 50);
Vector speed1 = new Vector(0,0);
Vector speed2 = new Vector(270, 10);
assertTrue(myDetector.hitBottom(rect1, loc, speed1, speed2));
}
@Test
public void testHitleftwvelocity() {
setUp();
Rectangle rect1 = new Rectangle(100,100);
Location loc = new Location(50, 50);
Vector speed1 = new Vector(0,0);
Vector speed2 = new Vector(45, 10);
assertTrue(myDetector.hitLeft(rect1, loc, speed1, speed2));
}
@Test
public void testHitwvelocity() {
setUp();
Rectangle rect1 = new Rectangle(100,100);
Rectangle rect2 = new Rectangle(10, 10, 10, 10);
Vector speed1 = new Vector(0,0);
Vector speed2 = new Vector(0, 10);
assertTrue(myDetector.hitLeft(rect1, rect2, speed1, speed2));
}
}