package vooga.fighter.test;
import static org.junit.Assert.assertTrue;
import java.awt.Rectangle;
import java.awt.geom.Ellipse2D;
import org.junit.Test;
import vooga.fighter.util.ShapeMeasurements;
public class ShapeMeasurementsTester {
ShapeMeasurements myShapeMeasurements;
public ShapeMeasurementsTester() {
}
public void setup(){
myShapeMeasurements = new ShapeMeasurements();
}
@Test
public void testgetQuickCenter() {
setup();
Rectangle rect2 = new Rectangle(100,100);
Ellipse2D ellipse = new Ellipse2D.Float(0,0, 100, 100);
assertTrue(myShapeMeasurements.getRectangleCenter(rect2).getX()==50.0);
assertTrue(myShapeMeasurements.getRectangleCenter(rect2).getY()==50.0);
assertTrue(myShapeMeasurements.getRectangleCenter(ellipse).getX()==50.0);
assertTrue(myShapeMeasurements.getRectangleCenter(ellipse).getY()==50.0);
}
@Test
public void testgetPrecisionCenter() {
setup();
Rectangle rect2 = new Rectangle(100,100);
Ellipse2D ellipse = new Ellipse2D.Double(0,0, 100, 100);
assertTrue(Math.abs(myShapeMeasurements.getArbitraryShapeCenter(rect2).getX()-50.0)<.1);
assertTrue(Math.abs(myShapeMeasurements.getArbitraryShapeCenter(rect2).getY()-50.0)<.1);
assertTrue(Math.abs(myShapeMeasurements.getArbitraryShapeCenter(ellipse).getX()-50.0)<.1);
assertTrue(Math.abs(myShapeMeasurements.getArbitraryShapeCenter(ellipse).getY()-50.0)<.1);
}
@Test
public void testgetPrecisionCenterWDirection() {
setup();
Ellipse2D ellipse = new Ellipse2D.Float(0,0,100,100);
assertTrue(Math.abs(myShapeMeasurements.getArbitraryShapeCenter(ellipse, 90).getX()+50.0)<.1);
assertTrue(Math.abs(myShapeMeasurements.getArbitraryShapeCenter(ellipse, 90).getY()-50.0)<.1);
}
@Test
public void testgetBottomRightCorner() {
setup();
Rectangle rect2 = new Rectangle(100,100);
assertTrue(myShapeMeasurements.getBottomRightCorner(rect2).getX()==100);
assertTrue(myShapeMeasurements.getBottomRightCorner(rect2).getY()==100);
}
@Test
public void testgetBottomLeftCorner() {
setup();
Rectangle rect2 = new Rectangle(100,100);
assertTrue(myShapeMeasurements.getBottomLeftCorner(rect2).getX()==0);
assertTrue(myShapeMeasurements.getBottomLeftCorner(rect2).getY()==100);
}
@Test
public void testRotatingCorner() {
setup();
Rectangle rect2 = new Rectangle(100,100);
assertTrue(Math.abs(myShapeMeasurements.getBottomLeftCorner(rect2).getX()-
myShapeMeasurements.getTurnedBottomLeftCorner(rect2, 0).getX())<.001);
assertTrue(Math.abs(myShapeMeasurements.getBottomRightCorner(rect2).getY()-
myShapeMeasurements.getTurnedBottomRightCorner(rect2, 0).getY())<.001);
assertTrue(Math.abs(-100-myShapeMeasurements.getTurnedBottomLeftCorner(rect2, 90).getX())<.001);
assertTrue(Math.abs(-100 - myShapeMeasurements.getTurnedBottomRightCorner(rect2, 90).getX())<.001);
assertTrue(Math.abs( myShapeMeasurements.getTurnedTopRightCorner(rect2, 90).getX())<.001);
}
}