package test.svg;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.text.ParseException;
import net.sf.latexdraw.parsers.svg.parsers.SVGPathParser;
import net.sf.latexdraw.parsers.svg.path.SVGPathHandler;
import net.sf.latexdraw.parsers.svg.path.SVGPathSeg;
import net.sf.latexdraw.parsers.svg.path.SVGPathSegArc;
import net.sf.latexdraw.parsers.svg.path.SVGPathSegMoveto;
import org.junit.Test;
public class TestSVGPathSegArc implements SVGPathHandler {
protected final SVGPathSegArc seg = new SVGPathSegArc(1, 2, 3, 4, 5, true, false, true);
protected int cpt = 0;
@Test
public void testGetters() {
SVGPathSegArc seg2 = new SVGPathSegArc(1, 2, 3, 4, 5, false, true, false);
assertEquals(seg.getAngle(), 5., 0.0001);
assertEquals(seg.getRX(), 3., 0.0001);
assertEquals(seg.getRY(), 4., 0.0001);
assertEquals(seg.getX(), 1., 0.0001);
assertEquals(seg.getY(), 2., 0.0001);
assertTrue(seg.isLargeArcFlag());
assertFalse(seg.isSweepFlag());
assertTrue(seg.isRelative());
assertFalse(seg2.isLargeArcFlag());
assertTrue(seg2.isSweepFlag());
assertFalse(seg2.isRelative());
}
@Test
public void testToString() throws ParseException {
SVGPathSegMoveto m = new SVGPathSegMoveto(0, 0, false);
SVGPathParser parser = new SVGPathParser(m.toString() + " " + seg.toString(), this); //$NON-NLS-1$
parser.parse();
}
@Override
public void onPathSeg(SVGPathSeg pathSeg) {
if(pathSeg instanceof SVGPathSegMoveto && cpt == 0) {
cpt++;
return;
}
assertTrue(pathSeg instanceof SVGPathSegArc);
SVGPathSegArc seg2 = (SVGPathSegArc)pathSeg;
assertEquals(seg.getAngle(), seg2.getAngle(), 0.0001);
assertEquals(seg.getRX(), seg2.getRX(), 0.0001);
assertEquals(seg.getRY(), seg2.getRY(), 0.0001);
assertEquals(seg.getX(), seg2.getX(), 0.0001);
assertEquals(seg.getY(), seg2.getY(), 0.0001);
assertEquals(seg.isLargeArcFlag(), seg2.isLargeArcFlag());
assertEquals(seg.isRelative(), seg2.isRelative());
assertEquals(seg.isSweepFlag(), seg2.isSweepFlag());
}
}