public void TestRobust2() { IList <Point2d> points = DuplicatePoints(new[] { new Point2d(0, 0), new Point2d(10, 0), new Point2d(10, 10), new Point2d(0, 10) }); ListUtils.ShiftLeft(points, 1); PolyEnumeratorRobust <Point2d> enumer = new PolyEnumeratorRobust <Point2d>(points, 0, true); Assert.AreEqual(enumer.Index, 7); enumer.Next(); Assert.AreEqual(enumer.Index, 1); enumer.Next(); Assert.AreEqual(enumer.Index, 3); enumer.Next(); Assert.AreEqual(enumer.Index, 5); enumer.Next(); Assert.AreEqual(enumer.Index, 7); enumer.Prev(); Assert.AreEqual(enumer.Index, 5); enumer.Prev(); Assert.AreEqual(enumer.Index, 3); enumer.Prev(); Assert.AreEqual(enumer.Index, 1); enumer.Prev(); Assert.AreEqual(enumer.Index, 7); }
public void TestRobust() { IList <Point2d> points = DuplicatePoints(new[] { new Point2d(0, 0), new Point2d(10, 0), new Point2d(10, 10), new Point2d(0, 10) }); PolyEnumeratorRobust <Point2d> enumer = new PolyEnumeratorRobust <Point2d>(points); Assert.AreEqual(enumer.Index, 0); enumer.Next(); Assert.AreEqual(enumer.Index, 2); enumer.Next(); Assert.AreEqual(enumer.Index, 4); enumer.Next(); Assert.AreEqual(enumer.Index, 6); enumer.Next(); Assert.AreEqual(enumer.Index, 0); enumer.Prev(); Assert.AreEqual(enumer.Index, 6); enumer.Prev(); Assert.AreEqual(enumer.Index, 4); enumer.Prev(); Assert.AreEqual(enumer.Index, 2); enumer.Prev(); Assert.AreEqual(enumer.Index, 0); }