package test.models.interfaces; import static org.junit.Assert.*; import net.sf.latexdraw.models.ShapeFactory; import net.sf.latexdraw.models.interfaces.shape.Color; import org.junit.Before; import org.junit.Test; public class TestColor { protected Color color; @Before public void setUp() { color = ShapeFactory.INST.createColor(); } @Test public void testSetGetO() { color.setO(0.2); assertEquals(0.2, color.getO(), 0.0001); color.setO(0); assertEquals(0, color.getO(), 0.0001); color.setO(1); assertEquals(1, color.getO(), 0.0001); } @Test(expected = IllegalArgumentException.class) public void testSetGetOInvalidGreater() { color.setO(1.001); } @Test(expected = IllegalArgumentException.class) public void testSetGetOInvalidLower() { color.setO(-0.001); } @Test(expected = IllegalArgumentException.class) public void testSetGetOInvalidNaN() { color.setO(Double.NaN); } @Test public void testSetGetB() { color.setB(0.2); assertEquals(0.2, color.getB(), 0.0001); color.setB(0); assertEquals(0, color.getB(), 0.0001); color.setB(1); assertEquals(1, color.getB(), 0.0001); } @Test(expected = IllegalArgumentException.class) public void testSetGetBInvalidGreater() { color.setB(1.001); } @Test(expected = IllegalArgumentException.class) public void testSetGetBInvalidLower() { color.setB(-0.001); } @Test(expected = IllegalArgumentException.class) public void testSetGetBInvalidNaN() { color.setB(Double.NaN); } @Test public void testSetGetG() { color.setG(0.2); assertEquals(0.2, color.getG(), 0.0001); color.setG(0); assertEquals(0, color.getG(), 0.0001); color.setG(1); assertEquals(1, color.getG(), 0.0001); } @Test(expected = IllegalArgumentException.class) public void testSetGetGInvalidGreater() { color.setG(1.001); } @Test(expected = IllegalArgumentException.class) public void testSetGetGInvalidLower() { color.setG(-0.001); } @Test(expected = IllegalArgumentException.class) public void testSetGetGInvalidNaN() { color.setG(Double.NaN); } @Test public void testSetGetR() { color.setR(0.2); assertEquals(0.2, color.getR(), 0.0001); color.setR(0); assertEquals(0, color.getR(), 0.0001); color.setR(1); assertEquals(1, color.getR(), 0.0001); } @Test(expected = IllegalArgumentException.class) public void testSetGetRInvalidGreater() { color.setR(1.001); } @Test(expected = IllegalArgumentException.class) public void testSetGetRInvalidLower() { color.setR(-0.001); } @Test(expected = IllegalArgumentException.class) public void testSetGetRInvalidNaN() { color.setR(Double.NaN); } @Test public void testtoJFX() { color.setO(0.2); color.setB(0.1); color.setR(0.3); color.setG(0.7); assertEquals(0.1, color.toJFX().getBlue(), 0.0001); assertEquals(0.3, color.toJFX().getRed(), 0.0001); assertEquals(0.7, color.toJFX().getGreen(), 0.0001); assertEquals(0.2, color.toJFX().getOpacity(), 0.0001); } @Test public void testtoAWT() { color.setO(0.2); color.setB(0.1); color.setR(0.3); color.setG(0.7); assertEquals(Math.ceil(0.1 * 255.0), color.toAWT().getBlue(), 0.0001); assertEquals(Math.ceil(0.3 * 255.0), color.toAWT().getRed(), 0.0001); assertEquals(Math.ceil(0.7 * 255.0), color.toAWT().getGreen(), 0.0001); assertEquals(Math.ceil(0.2 * 255.0), color.toAWT().getAlpha(), 0.0001); } @Test public void testEqualsOK() { color.setO(0.2); color.setB(0.1); color.setR(0.3); color.setG(0.7); assertTrue(color.equals(color)); assertEquals(color, ShapeFactory.INST.createColor(0.3, 0.7, 0.1, 0.2)); } @Test public void testEqualsNOK() { color.setO(0.2); color.setB(0.1); color.setR(0.3); color.setG(0.7); assertNotEquals(color, ShapeFactory.INST.createColor(0.2, 0.7, 0.1, 0.2)); assertNotEquals(color, ShapeFactory.INST.createColor(0.3, 0.8, 0.1, 0.2)); assertNotEquals(color, ShapeFactory.INST.createColor(0.2, 0.7, 0, 0.2)); assertNotEquals(color, ShapeFactory.INST.createColor(0.2, 0.7, 0.1, 0.3)); assertNotEquals(color, new Object()); } @Test public void testtoString() { assertNotNull(color.toString()); } }