private int CheckLength([NotNull] MeanSegmentLength meanSegmentLength, [NotNull] IRow row) { int segmentCount = meanSegmentLength.SegmentCount; double length = meanSegmentLength.FullLength; if (segmentCount <= 0) { return(ReportError("Invalid segment count", meanSegmentLength.GetErrorGeometry(), Codes[Code.InvalidSegmentCount], TestUtils.GetShapeFieldName(row), row)); } double averageSegmentLength = length / segmentCount; if (averageSegmentLength >= _limit) { return(NoError); } string description = string.Format( "Average segment length {0} (segment count: {1:N0}, total length: {2})", FormatLengthComparison(averageSegmentLength, "<", _limit, _spatialReference), segmentCount, FormatLength(length, _spatialReference)); return(ReportError(description, meanSegmentLength.GetErrorGeometry(), Codes[Code.AverageSegmentLengthBelowLimit], TestUtils.GetShapeFieldName(row), row)); }
private static MeanSegmentLength GetMeanSegmentLength(ICurve curve) { var segments = curve as ISegmentCollection; var meanSegmentLentgh = new MeanSegmentLength(curve.Length, segments?.SegmentCount ?? 1, () => GetErrorGeometry(curve)); return(meanSegmentLentgh); }