package jumptest.junit; import java.awt.geom.*; import java.util.ArrayList; import junit.framework.TestCase; import com.vividsolutions.jump.workbench.ui.renderer.java2D.ShapeCollectionPathIterator; public class ShapeCollectionPathIteratorTestCase extends TestCase { public ShapeCollectionPathIteratorTestCase(String Name_) { super(Name_); } public static void main(String[] args) { String[] testCaseName = {ShapeCollectionPathIteratorTestCase.class.getName()}; junit.textui.TestRunner.main(testCaseName); } public void testPathIterator() { PathIterator i = new Rectangle2D.Double(0, 0, 5, 5).getPathIterator(new AffineTransform()); double d[] = new double[] {0, 0, 0, 0, 0, 0}; assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_MOVETO, i.currentSegment(d)); assertEquals(0, d[0], 1E-10); assertEquals(0, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_LINETO, i.currentSegment(d)); assertEquals(5, d[0], 1E-10); assertEquals(0, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_LINETO, i.currentSegment(d)); assertEquals(5, d[0], 1E-10); assertEquals(5, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_LINETO, i.currentSegment(d)); assertEquals(0, d[0], 1E-10); assertEquals(5, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_LINETO, i.currentSegment(d)); assertEquals(0, d[0], 1E-10); assertEquals(0, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_CLOSE, i.currentSegment(d)); i.next(); assertEquals(true, i.isDone()); } public void testEmpty() { ArrayList shapes = new ArrayList(); ShapeCollectionPathIterator i = new ShapeCollectionPathIterator(shapes, new AffineTransform()); assertEquals(true, i.isDone()); } public void test() { ArrayList shapes = new ArrayList(); shapes.add(new Rectangle2D.Double(0, 0, 5, 5)); shapes.add(new Rectangle2D.Double(10, 10, 5, 5)); ShapeCollectionPathIterator i = new ShapeCollectionPathIterator(shapes, new AffineTransform()); double d[] = new double[] {0, 0, 0, 0, 0, 0}; assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_MOVETO, i.currentSegment(d)); assertEquals(0, d[0], 1E-10); assertEquals(0, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_LINETO, i.currentSegment(d)); assertEquals(5, d[0], 1E-10); assertEquals(0, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_LINETO, i.currentSegment(d)); assertEquals(5, d[0], 1E-10); assertEquals(5, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_LINETO, i.currentSegment(d)); assertEquals(0, d[0], 1E-10); assertEquals(5, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_LINETO, i.currentSegment(d)); assertEquals(0, d[0], 1E-10); assertEquals(0, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_CLOSE, i.currentSegment(d)); i.next(); //next rectangle assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_MOVETO, i.currentSegment(d)); assertEquals(10, d[0], 1E-10); assertEquals(10, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_LINETO, i.currentSegment(d)); assertEquals(15, d[0], 1E-10); assertEquals(10, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_LINETO, i.currentSegment(d)); assertEquals(15, d[0], 1E-10); assertEquals(15, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_LINETO, i.currentSegment(d)); assertEquals(10, d[0], 1E-10); assertEquals(15, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_LINETO, i.currentSegment(d)); assertEquals(10, d[0], 1E-10); assertEquals(10, d[1], 1E-10); i.next(); assertEquals(false, i.isDone()); assertEquals(PathIterator.SEG_CLOSE, i.currentSegment(d)); i.next(); assertEquals(true, i.isDone()); } }