public void CanGetSubcurveWithNaNRange() { var polyline = (IPolyline)CurveConstruction.StartLine(CreatePoint(0, 0, 100)) .LineTo(CreatePoint(100, 0, 200)) .Curve; polyline.SpatialReference = CreateSpatialReference(_mTolerance, _xyTolerance); GeometryUtils.MakeMAware(polyline); IList <IPoint> points; IPolyline subcurves = MeasureUtils.GetSubcurves(polyline, 150, double.NaN, out points); Console.WriteLine(GeometryUtils.ToString(subcurves)); Assert.IsNull(subcurves); Assert.AreEqual(1, points.Count); }
public void CanGetLinearSubcurveLargerThanTolerance() { var polyline = (IPolyline)CurveConstruction.StartLine(CreatePoint(0, 0, 100)) .LineTo(CreatePoint(100, 0, 200)) .Curve; polyline.SpatialReference = CreateSpatialReference(_mTolerance, _xyTolerance); GeometryUtils.MakeMAware(polyline); IList <IPoint> points; IPolyline subcurves = MeasureUtils.GetSubcurves(polyline, 150, 150 + (_mTolerance * 2), out points); Console.WriteLine(GeometryUtils.ToString(subcurves)); Assert.IsNotNull(subcurves); Assert.AreEqual(0.020000000000010232, subcurves.Length); Assert.AreEqual(0, points.Count); }
public void CanGetOvershootingLinearSubcurveSmallerThanTolerance() { var polyline = (IPolyline)CurveConstruction.StartLine(CreatePoint(0, 0, 100)) .LineTo(CreatePoint(100, 0, 200)) .Curve; polyline.SpatialReference = CreateSpatialReference(_mTolerance, _xyTolerance); GeometryUtils.MakeMAware(polyline); IList <IPoint> points; IPolyline subcurves = MeasureUtils.GetSubcurves(polyline, 200, 300, out points); Console.WriteLine(GeometryUtils.ToString(subcurves)); Assert.IsNull(subcurves); Assert.AreEqual(1, points.Count); Assert.AreEqual(100, points[0].X); Assert.AreEqual(0, points[0].Y); }