package test.models.interfaces;
import net.sf.latexdraw.models.ShapeFactory;
import net.sf.latexdraw.models.interfaces.shape.IPoint;
import net.sf.latexdraw.models.interfaces.shape.IPositionShape;
import org.junit.Test;
public abstract class TestIPositionShape<T extends IPositionShape> extends TestIShape<T> {
@Override
@Test
public void testTranslate() {
shape.setPosition(0, 0);
shape.translate(100, 50);
assertEqualsDouble(100., shape.getPosition().getX());
assertEqualsDouble(50., shape.getPosition().getY());
}
@Test
public void testGetSetX() {
shape.setX(10.);
assertEqualsDouble(10., shape.getX());
shape.setX(-20.);
assertEqualsDouble(-20., shape.getX());
shape.setX(Double.NaN);
assertEqualsDouble(-20., shape.getX());
shape.setX(Double.POSITIVE_INFINITY);
assertEqualsDouble(-20., shape.getX());
shape.setX(Double.NEGATIVE_INFINITY);
assertEqualsDouble(-20., shape.getX());
}
@Test
public void testGetSetY() {
shape.setY(10.);
assertEqualsDouble(10., shape.getY());
shape.setY(-20.);
assertEqualsDouble(-20., shape.getY());
shape.setY(Double.NaN);
assertEqualsDouble(-20., shape.getY());
shape.setY(Double.POSITIVE_INFINITY);
assertEqualsDouble(-20., shape.getY());
shape.setY(Double.NEGATIVE_INFINITY);
assertEqualsDouble(-20., shape.getY());
}
@Test
public void testSetXThenSetY() {
shape.setX(40.);
assertEqualsDouble(40., shape.getX());
shape.setX(-30.);
assertEqualsDouble(-30., shape.getX());
shape.setY(10.);
assertEqualsDouble(10., shape.getY());
assertEqualsDouble(-30., shape.getX());
shape.setY(-20.);
assertEqualsDouble(-20., shape.getY());
assertEqualsDouble(-30., shape.getX());
}
@Test
public void testSetYThenSetX() {
shape.setY(10.);
assertEqualsDouble(10., shape.getY());
shape.setY(-20.);
assertEqualsDouble(-20., shape.getY());
shape.setX(40.);
assertEqualsDouble(40., shape.getX());
assertEqualsDouble(-20., shape.getY());
shape.setX(-30.);
assertEqualsDouble(-30., shape.getX());
assertEqualsDouble(-20., shape.getY());
}
@Test
public void testGetSetPosition() {
IPoint pt = ShapeFactory.INST.createPoint(15, 25);
shape.setPosition(pt);
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
assertEqualsDouble(15., shape.getX());
assertEqualsDouble(25., shape.getY());
shape.setPosition(null);
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
shape.setPosition(ShapeFactory.INST.createPoint(Double.NaN, 0));
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
shape.setPosition(ShapeFactory.INST.createPoint(Double.NEGATIVE_INFINITY, 0));
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
shape.setPosition(ShapeFactory.INST.createPoint(Double.POSITIVE_INFINITY, 0));
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
shape.setPosition(ShapeFactory.INST.createPoint(0, Double.NaN));
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
shape.setPosition(ShapeFactory.INST.createPoint(0, Double.NEGATIVE_INFINITY));
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
shape.setPosition(ShapeFactory.INST.createPoint(0, Double.POSITIVE_INFINITY));
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
shape.setPosition(15, 25);
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
assertEqualsDouble(15., shape.getX());
assertEqualsDouble(25., shape.getY());
shape.setPosition(Double.NaN, 0);
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
shape.setPosition(Double.NEGATIVE_INFINITY, 0);
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
shape.setPosition(Double.POSITIVE_INFINITY, 0);
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
shape.setPosition(0, Double.NaN);
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
shape.setPosition(0, Double.NEGATIVE_INFINITY);
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
shape.setPosition(0, Double.POSITIVE_INFINITY);
assertEqualsDouble(pt.getX(), shape.getPosition().getX());
assertEqualsDouble(pt.getY(), shape.getPosition().getY());
}
}