package test.svg; import static org.junit.Assert.assertEquals; import net.sf.latexdraw.parsers.svg.SVGMatrix; import org.junit.Test; public class TestSVGMatrix { @Test public void testConstructor() { SVGMatrix m = new SVGMatrix(); assertEquals(m.getA(), 1., 0.0001); assertEquals(m.getD(), 1., 0.0001); assertEquals(m.getE(), 0., 0.0001); assertEquals(m.getB(), 0., 0.0001); assertEquals(m.getC(), 0., 0.0001); assertEquals(m.getF(), 0., 0.0001); } @Test public void testInitMatrix() { SVGMatrix m = new SVGMatrix(); m.initMatrix(); assertEquals(m.getA(), 1., 0.0001); assertEquals(m.getD(), 1., 0.0001); assertEquals(m.getE(), 0., 0.0001); assertEquals(m.getB(), 0., 0.0001); assertEquals(m.getC(), 0., 0.0001); assertEquals(m.getF(), 0., 0.0001); } @Test public void testRotate() { SVGMatrix m = new SVGMatrix(); double angle = 0.14; m.rotate(angle); assertEquals(m.getA(), Math.cos(angle), 0.0001); assertEquals(m.getB(), Math.sin(angle), 0.0001); assertEquals(m.getC(), -Math.sin(angle), 0.0001); assertEquals(m.getD(), Math.cos(angle), 0.0001); assertEquals(m.getE(), 0., 0.0001); assertEquals(m.getF(), 0., 0.0001); } @Test public void testTranslate() { SVGMatrix m = new SVGMatrix(); double tx = 1.4, ty = -0.4; m.translate(tx, ty); assertEquals(m.getA(), 1., 0.0001); assertEquals(m.getB(), 0., 0.0001); assertEquals(m.getC(), 0., 0.0001); assertEquals(m.getD(), 1., 0.0001); assertEquals(m.getE(), tx, 0.0001); assertEquals(m.getF(), ty, 0.0001); } @Test public void testScaleNonUniform() { SVGMatrix m = new SVGMatrix(); double sx = 5.877423, sy = -0.04; m.scaleNonUniform(sx, sy); assertEquals(m.getA(), sx, 0.0001); assertEquals(m.getB(), 0., 0.0001); assertEquals(m.getC(), 0., 0.0001); assertEquals(m.getD(), sy, 0.0001); assertEquals(m.getE(), 0., 0.0001); assertEquals(m.getF(), 0., 0.0001); } @Test public void testScale() { SVGMatrix m = new SVGMatrix(); double s = 5.877423; m.scale(s); assertEquals(m.getA(), s, 0.0001); assertEquals(m.getB(), 0., 0.0001); assertEquals(m.getC(), 0., 0.0001); assertEquals(m.getD(), s, 0.0001); assertEquals(m.getE(), 0., 0.0001); assertEquals(m.getF(), 0., 0.0001); } @Test public void testSkewX() { SVGMatrix m = new SVGMatrix(); double angle = 1.92837; m.skewX(angle); assertEquals(m.getA(), 1., 0.0001); assertEquals(m.getB(), 0., 0.0001); assertEquals(m.getC(), Math.tan(angle), 0.0001); assertEquals(m.getD(), 1., 0.0001); assertEquals(m.getE(), 0., 0.0001); assertEquals(m.getF(), 0., 0.0001); } @Test public void testSkewY() { SVGMatrix m = new SVGMatrix(); double angle = -7.7283; m.skewY(angle); assertEquals(m.getA(), 1., 0.0001); assertEquals(m.getB(), Math.tan(angle), 0.0001); assertEquals(m.getC(), 0., 0.0001); assertEquals(m.getD(), 1., 0.0001); assertEquals(m.getE(), 0., 0.0001); assertEquals(m.getF(), 0., 0.0001); } @Test public void testSetMatrix() { SVGMatrix m = new SVGMatrix(); m.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); } @Test public void testMultiply() { SVGMatrix m1 = new SVGMatrix(); SVGMatrix m2 = new SVGMatrix(); SVGMatrix m3; m1.setMatrix(1, 2, 3, 4, 5, 6); m2.setMatrix(7, 8, 9, 10, 11, 12); m3 = m1.multiply(m2); assertEquals(m3.getA(), 31., 0.0001); assertEquals(m3.getB(), 46., 0.0001); assertEquals(m3.getC(), 39., 0.0001); assertEquals(m3.getD(), 58., 0.0001); assertEquals(m3.getE(), 52., 0.0001); assertEquals(m3.getF(), 76., 0.0001); } }