Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
            private static MeanSegmentLength GetMeanSegmentLength(ICurve curve)
            {
                var segments          = curve as ISegmentCollection;
                var meanSegmentLentgh = new MeanSegmentLength(curve.Length,
                                                              segments?.SegmentCount ?? 1,
                                                              () => GetErrorGeometry(curve));

                return(meanSegmentLentgh);
            }