package test.svg; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import net.sf.latexdraw.parsers.svg.SVGMatrix; import net.sf.latexdraw.parsers.svg.SVGTransform; import org.junit.Before; import org.junit.Test; public class TestSVGTransform { SVGTransform t; SVGMatrix m; @Before public void setUp() { t = new SVGTransform(); m = t.getMatrix(); } @Test public void testConstructors() { assertEquals(t.getType(), SVGTransform.SVG_TRANSFORM_UNKNOWN); assertNotNull(t.getMatrix()); } @SuppressWarnings("unused") @Test(expected = IllegalArgumentException.class) public void testConstructorNull() { new SVGTransform(null); } @SuppressWarnings("unused") @Test(expected = IllegalArgumentException.class) public void testConstructorEmpty() { new SVGTransform(""); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationNull() { t.setTransformation(null); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationEmpty() { t.setTransformation(""); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid() { t.setTransformation("iueozi"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid1() { t.setTransformation("\n \t translate"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid2() { t.setTransformation("\n \t translate("); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid3() { t.setTransformation("\n \t translate(ds"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid4() { t.setTransformation("\n \t translate(2 "); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid5() { t.setTransformation("\n \t translate(2 ,"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid6() { t.setTransformation("\n \t translate(2 , ds"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid7() { t.setTransformation("\n \t translate(2 , 2"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid8() { t.setTransformation("\n \t scale"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid9() { t.setTransformation("\n \t scale("); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid10() { t.setTransformation("\n \t scale(ds"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid11() { t.setTransformation("\n \t scale(2 "); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid12() { t.setTransformation("\n \t scale(2 ,"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid13() { t.setTransformation("\n \t scale(2 , ds"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid14() { t.setTransformation("\n \t scale(2 , 2"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid15() { t.setTransformation("\n \t matrix"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid16() { t.setTransformation("\n \t matrix("); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid17() { t.setTransformation("\n \t matrix(ds"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid18() { t.setTransformation("\n \t matrix(2 "); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid19() { t.setTransformation("\n \t matrix(2 ,"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid20() { t.setTransformation("\n \t matrix(2 , ds"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid21() { t.setTransformation("\n \t skewX("); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid22() { t.setTransformation("\n \t skewX"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid23() { t.setTransformation("\n \t skewY("); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid24() { t.setTransformation("\n \t skewY"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid25() { t.setTransformation("\n \t rotate"); } @Test(expected = IllegalArgumentException.class) public void testSetTransformationInvalid26() { t.setTransformation("\n \t rotate("); } @Test public void testSetTransformation() { t.setTransformation("\n \t translate ( 2\n \n\t 4 ) \n"); //$NON-NLS-1$ assertEquals(t.getType(), SVGTransform.SVG_TRANSFORM_TRANSLATE); assertTrue(t.isTranslation()); assertEquals(t.getTX(), 2., 0.0001); assertEquals(t.getTY(), 4., 0.0001); } @Test public void testSetTransformation2() { t.setTransformation("\n \t translate ( 2\n \n\t , 4 ) \n"); //$NON-NLS-1$ assertEquals(t.getType(), SVGTransform.SVG_TRANSFORM_TRANSLATE); assertTrue(t.isTranslation()); assertEquals(t.getTX(), 2., 0.0001); assertEquals(t.getTY(), 4., 0.0001); } @Test public void testSetTransformation3() { t.setTransformation("\n \t translate ( 2\n \n\t ) \n"); //$NON-NLS-1$ assertEquals(t.getType(), SVGTransform.SVG_TRANSFORM_TRANSLATE); assertTrue(t.isTranslation()); assertEquals(t.getTX(), 2., 0.0001); assertEquals(t.getTY(), 2., 0.0001); } @Test public void testSetTransformation4() { t.setTransformation("\n \t scale ( 2\n \n\t 4 ) \n"); //$NON-NLS-1$ assertEquals(t.getType(), SVGTransform.SVG_TRANSFORM_SCALE); assertTrue(t.isScale()); assertEquals(t.getXScaleFactor(), 2., 0.0001); assertEquals(t.getYScaleFactor(), 4., 0.0001); } @Test public void testSetTransformation5() { t.setTransformation("\n \t scale ( 2\n \n\t , 4 ) \n"); //$NON-NLS-1$ assertEquals(t.getType(), SVGTransform.SVG_TRANSFORM_SCALE); assertTrue(t.isScale()); assertEquals(t.getXScaleFactor(), 2., 0.0001); assertEquals(t.getYScaleFactor(), 4., 0.0001); } @Test public void testSetTransformation6() { t.setTransformation("\n \t scale ( 2\n \n\t ) \n"); //$NON-NLS-1$ assertEquals(t.getType(), SVGTransform.SVG_TRANSFORM_SCALE); assertTrue(t.isScale()); assertEquals(t.getXScaleFactor(), 2., 0.0001); assertEquals(t.getYScaleFactor(), 2., 0.0001); } @Test public void testSetTransformation7() { t.setTransformation("\n \t matrix ( 2\n \n\t 4 \t 5 \n 6 7 8 ) \n"); //$NON-NLS-1$ assertEquals(t.getType(), SVGTransform.SVG_TRANSFORM_MATRIX); m = t.getMatrix(); assertEquals(m.getA(), 2., 0.0001); assertEquals(m.getB(), 4., 0.0001); assertEquals(m.getC(), 5., 0.0001); assertEquals(m.getD(), 6., 0.0001); assertEquals(m.getE(), 7., 0.0001); assertEquals(m.getF(), 8., 0.0001); } @Test public void testSetTransformation8() { t.setTransformation("\n \t matrix ( 2 ,\n \n\t 4 \t 5 ,\n 6 7 , 8 ) \n"); //$NON-NLS-1$ assertEquals(t.getType(), SVGTransform.SVG_TRANSFORM_MATRIX); m = t.getMatrix(); assertEquals(m.getA(), 2., 0.0001); assertEquals(m.getB(), 4., 0.0001); assertEquals(m.getC(), 5., 0.0001); assertEquals(m.getD(), 6., 0.0001); assertEquals(m.getE(), 7., 0.0001); assertEquals(m.getF(), 8., 0.0001); } @Test public void testSetTransformation9() { t.setTransformation("\n \t skewX ( 2\n \n\t ) \n"); //$NON-NLS-1$ assertEquals(t.getType(), SVGTransform.SVG_TRANSFORM_SKEWX); assertTrue(t.isXSkew()); assertEquals(t.getXSkewAngle(), 2., 0.0001); } @Test public void testSetTransformation10() { t.setTransformation("\n \t skewY ( 3\n \n\t ) \n"); //$NON-NLS-1$ assertEquals(t.getType(), SVGTransform.SVG_TRANSFORM_SKEWY); assertTrue(t.isYSkew()); assertEquals(t.getYSkewAngle(), 3., 0.0001); } @Test public void testSetTransformation11() { t.setTransformation("\n \t rotate ( 3\n \n\t ) \n"); //$NON-NLS-1$ assertEquals(t.getType(), SVGTransform.SVG_TRANSFORM_ROTATE); assertTrue(t.isRotation()); assertEquals(t.getRotationAngle(), 3., 0.0001); } @Test public void testSetTransformation12() { t.setTransformation("\n \t rotate ( 1\n \n\t , 4 \n 6 \n \t ) \n"); //$NON-NLS-1$ assertEquals(t.getType(), SVGTransform.SVG_TRANSFORM_ROTATE); assertTrue(t.isRotation()); assertEquals(t.getRotationAngle(), 1., 0.0001); } @Test public void testSetTranslate() { t.setTranslate(1, 2); assertEquals(m.getE(), 1., 0.0001); assertEquals(m.getF(), 2., 0.0001); assertTrue(t.isTranslation()); assertFalse(t.isYSkew()); assertFalse(t.isXSkew()); assertFalse(t.isRotation()); assertFalse(t.isScale()); assertEquals(1., t.getTX(), 0.0001); assertEquals(2., t.getTY(), 0.0001); assertEquals(Double.NaN, t.getXScaleFactor(), 0.0001); assertEquals(Double.NaN, t.getYScaleFactor(), 0.0001); assertEquals(Double.NaN, t.getXSkewAngle(), 0.0001); assertEquals(Double.NaN, t.getYSkewAngle(), 0.0001); assertEquals(Double.NaN, t.getRotationAngle(), 0.0001); assertEquals(SVGTransform.SVG_TRANSFORM_TRANSLATE, t.getType()); } @Test public void testSetScale() { t.setScale(3, 4); assertEquals(m.getA(), 3., 0.0001); assertEquals(m.getD(), 4., 0.0001); assertTrue(t.isScale()); assertFalse(t.isYSkew()); assertFalse(t.isXSkew()); assertFalse(t.isRotation()); assertFalse(t.isTranslation()); assertEquals(Double.NaN, t.getTX(), 0.0001); assertEquals(Double.NaN, t.getTY(), 0.0001); assertEquals(3., t.getXScaleFactor(), 0.0001); assertEquals(4., t.getYScaleFactor(), 0.0001); assertEquals(Double.NaN, t.getXSkewAngle(), 0.0001); assertEquals(Double.NaN, t.getYSkewAngle(), 0.0001); assertEquals(Double.NaN, t.getRotationAngle(), 0.0001); assertEquals(SVGTransform.SVG_TRANSFORM_SCALE, t.getType()); } @Test public void testSetXSkew() { t.setSkewX(30); assertEquals(m.getC(), Math.tan(Math.toRadians(30)), 0.0001); assertEquals(t.getXSkewAngle(), 30., 0.0001); assertTrue(t.isXSkew()); assertFalse(t.isScale()); assertFalse(t.isYSkew()); assertFalse(t.isRotation()); assertFalse(t.isTranslation()); assertEquals(Double.NaN, t.getTX(), 0.0001); assertEquals(Double.NaN, t.getTY(), 0.0001); assertEquals(Double.NaN, t.getXScaleFactor(), 0.0001); assertEquals(Double.NaN, t.getYScaleFactor(), 0.0001); assertEquals(Double.NaN, t.getYSkewAngle(), 0.0001); assertEquals(Double.NaN, t.getRotationAngle(), 0.0001); assertEquals(SVGTransform.SVG_TRANSFORM_SKEWX, t.getType()); } @Test public void testSetYSkew() { t.setSkewY(30); assertEquals(m.getB(), Math.tan(Math.toRadians(30)), 0.0001); assertEquals(t.getYSkewAngle(), 30., 0.0001); assertTrue(t.isYSkew()); assertFalse(t.isScale()); assertFalse(t.isXSkew()); assertFalse(t.isRotation()); assertFalse(t.isTranslation()); assertEquals(Double.NaN, t.getTX(), 0.0001); assertEquals(Double.NaN, t.getTY(), 0.0001); assertEquals(Double.NaN, t.getXScaleFactor(), 0.0001); assertEquals(Double.NaN, t.getYScaleFactor(), 0.0001); assertEquals(Double.NaN, t.getXSkewAngle(), 0.0001); assertEquals(Double.NaN, t.getRotationAngle(), 0.0001); assertEquals(SVGTransform.SVG_TRANSFORM_SKEWY, t.getType()); } @Test public void testSetRotate() { t.setRotate(2, 0, 0); assertTrue(t.isRotation()); assertFalse(t.isScale()); assertFalse(t.isXSkew()); assertFalse(t.isYSkew()); assertFalse(t.isTranslation()); assertEquals(Double.NaN, t.getTX(), 0.0001); assertEquals(Double.NaN, t.getTY(), 0.0001); assertEquals(Double.NaN, t.getXScaleFactor(), 0.0001); assertEquals(Double.NaN, t.getYScaleFactor(), 0.0001); assertEquals(Double.NaN, t.getXSkewAngle(), 0.0001); assertEquals(Double.NaN, t.getYSkewAngle(), 0.0001); assertEquals(SVGTransform.SVG_TRANSFORM_ROTATE, t.getType()); m = t.getMatrix(); assertEquals(t.getRotationAngle(), 2., 0.0001); assertEquals(m.getE(), 0., 0.0001); assertEquals(m.getF(), 0., 0.0001); t.setRotate(2, 3, 4); assertEquals(t.getRotationAngle(), 2., 0.0001); m = t.getMatrix(); assertEquals(m.getE(), 3., 0.0001); assertEquals(m.getF(), 4., 0.0001); } @Test public void testSetMatrix() { t.setMatrix(2, 3, 4, 5, 6, 7); assertEquals(m.getA(), 2., 0.0001); assertEquals(m.getB(), 3., 0.0001); assertEquals(m.getC(), 4., 0.0001); assertEquals(m.getD(), 5., 0.0001); assertEquals(m.getE(), 6., 0.0001); assertEquals(m.getF(), 7., 0.0001); assertEquals(SVGTransform.SVG_TRANSFORM_MATRIX, t.getType()); assertEquals(Double.NaN, t.getTX(), 0.0001); assertEquals(Double.NaN, t.getTY(), 0.0001); assertEquals(Double.NaN, t.getXScaleFactor(), 0.0001); assertEquals(Double.NaN, t.getYScaleFactor(), 0.0001); assertEquals(Double.NaN, t.getXSkewAngle(), 0.0001); assertEquals(Double.NaN, t.getYSkewAngle(), 0.0001); assertEquals(Double.NaN, t.getRotationAngle(), 0.0001); assertFalse(t.isRotation()); assertFalse(t.isScale()); assertFalse(t.isXSkew()); assertFalse(t.isYSkew()); assertFalse(t.isTranslation()); } }