Пример #1
0
        public void VerifyErrorTypes()
        {
            var featureClassMock = new FeatureClassMock(1, "mock",
                                                        esriGeometryType.esriGeometryMultiPatch);

            var construction = new MultiPatchConstruction();

            construction.StartRing(5, 4, 0)
            .Add(-5, 4, 0.1)
            .Add(-5, -3, 0.05)
            .Add(5, -7, -0.1)
            .Add(5, -8, -0.1)
            .Add(5, -11, 0.0);

            IFeature row1 = featureClassMock.CreateFeature(construction.MultiPatch);

            var test   = new QaHorizontalSegments(featureClassMock, 5, 0);
            var runner = new QaTestRunner(test);

            runner.Execute(row1);

            Assert.AreEqual(2, runner.Errors.Count);
            Assert.AreNotEqual(runner.Errors[0].Description.Split()[1],
                               runner.Errors[1].Description.Split()[1]);
        }
Пример #2
0
        public void VerifyStepSegmentsNotTested()
        {
            var featureClassMock = new FeatureClassMock(1, "mock",
                                                        esriGeometryType.esriGeometryMultiPatch);

            const double limitAngle = 5;
            const double dy         = 10;
            double       dz         = dy * Math.Tan(MathUtils.ToRadians(limitAngle));

            var construction = new MultiPatchConstruction();

            construction.StartOuterRing(5, 0, 0)
            .Add(5, dy, dz + 0.01)
            .Add(5, 2 * dy, 0)
            .Add(4, 4, 0);

            IFeature row1 = featureClassMock.CreateFeature(construction.MultiPatch);

            var test   = new QaHorizontalSegments(featureClassMock, limitAngle, 0);
            var runner = new QaTestRunner(test);

            runner.Execute(row1);

            Assert.AreEqual(0, runner.Errors.Count);

            construction = new MultiPatchConstruction();
            construction.StartOuterRing(5, 0, 0)
            .Add(5, dy, dz - 0.01)
            .Add(5, 2 * dy, 0)
            .Add(4, 4, 0);

            row1 = featureClassMock.CreateFeature(construction.MultiPatch);

            test   = new QaHorizontalSegments(featureClassMock, limitAngle, 0);
            runner = new QaTestRunner(test);
            runner.Execute(row1);

            Assert.AreEqual(1, runner.Errors.Count);
        }
Пример #3
0
        public void VerifyErrorInToleranceNotReported()
        {
            var featureClassMock = new FeatureClassMock(1, "mock",
                                                        esriGeometryType.esriGeometryMultiPatch);

            const double toleranceAngle = 0.5;
            const double dy             = 10;
            double       dz             = dy * Math.Tan(MathUtils.ToRadians(toleranceAngle));

            var construction = new MultiPatchConstruction();

            construction.StartOuterRing(5, 0, 0)
            .Add(5, dy, 1.1 * dz)
            .Add(5, 2 * dy, 0)
            .Add(4, 4, 0);

            IFeature row1 = featureClassMock.CreateFeature(construction.MultiPatch);

            var test   = new QaHorizontalSegments(featureClassMock, 5, toleranceAngle);
            var runner = new QaTestRunner(test);

            runner.Execute(row1);

            Assert.AreEqual(1, runner.Errors.Count);

            construction = new MultiPatchConstruction();
            construction.StartOuterRing(5, 0, 0)
            .Add(5, dy, 0.9 * dz)
            .Add(5, 2 * dy, 0)
            .Add(4, 4, 0);

            row1 = featureClassMock.CreateFeature(construction.MultiPatch);

            test   = new QaHorizontalSegments(featureClassMock, 5, toleranceAngle);
            runner = new QaTestRunner(test);
            runner.Execute(row1);

            Assert.AreEqual(0, runner.Errors.Count);
        }
Пример #4
0
        public void CanTestPolygons()
        {
            var featureClassMock = new FeatureClassMock(1, "mock",
                                                        esriGeometryType.esriGeometryPolygon);

            CurveConstruction construction = CurveConstruction
                                             .StartPoly(5, 4, 10).LineTo(-5, 4, 10.1)
                                             .LineTo(-5, -3, 10.05)
                                             .LineTo(5, -7, 10);

            IFeature row1 = featureClassMock.CreateFeature(construction.ClosePolygon());

            GeometryUtils.EnsureSpatialReference(row1.Shape, featureClassMock);

            var test   = new QaHorizontalSegments(featureClassMock, 5, 0);
            var runner = new QaTestRunner(test);

            runner.KeepGeometry = true;

            runner.Execute(row1);

            Assert.AreEqual(1, runner.Errors.Count);
            Assert.IsTrue(runner.ErrorGeometries[0].Envelope.ZMin > 5);
        }
Пример #5
0
        public void CanTestMultiPatches()
        {
            var featureClassMock = new FeatureClassMock(1, "mock",
                                                        esriGeometryType.esriGeometryMultiPatch);

            var construction = new MultiPatchConstruction();

            construction.StartOuterRing(5, 4, 10)
            .Add(-5, 4, 10.1)
            .Add(-5, -3, 10.05)
            .Add(5, -7, 10);

            IFeature row1 = featureClassMock.CreateFeature(construction.MultiPatch);

            var test   = new QaHorizontalSegments(featureClassMock, 5, 0);
            var runner = new QaTestRunner(test);

            runner.KeepGeometry = true;

            runner.Execute(row1);

            Assert.AreEqual(1, runner.Errors.Count);
            Assert.IsTrue(runner.ErrorGeometries[0].Envelope.ZMin > 5);
        }