Exemple #1
0
        public void TestUniqueStringsMulti()
        {
            ISpatialReference sref = SpatialReferenceUtils.CreateSpatialReference
                                         ((int)esriSRProjCS2Type.esriSRProjCS_CH1903Plus_LV95,
                                         true);

            SpatialReferenceUtils.SetXYDomain(sref, -10000, -10000, 10000, 10000, 0.0001, 0.001);

            IFields fields = FieldUtils.CreateFields(
                FieldUtils.CreateOIDField(),
                FieldUtils.CreateTextField("Unique", 100),
                FieldUtils.CreateShapeField(
                    "Shape", esriGeometryType.esriGeometryPoint,
                    sref, 1000));

            IFeatureClass featureClass1 = DatasetUtils.CreateSimpleFeatureClass(_pgdbWorkspace,
                                                                                "TestUniqueStringsMulti1",
                                                                                fields);
            IFeatureClass featureClass2 = DatasetUtils.CreateSimpleFeatureClass(_pgdbWorkspace,
                                                                                "TestUniqueStringsMulti2",
                                                                                fields);

            for (var i = 0; i < 10; i++)
            {
                IFeature feature = featureClass1.CreateFeature();
                feature.set_Value(1, string.Format("A'{0}{1}", i, "\""));
                feature.Shape = GeometryFactory.CreatePoint(100, 100, sref);
                feature.Store();
            }

            for (var i = 0; i < 2; i++)
            {
                IFeature emptyFeature = featureClass1.CreateFeature();
                emptyFeature.set_Value(1, null);
                emptyFeature.Shape = GeometryFactory.CreatePoint(100, 100, sref);
                emptyFeature.Store();
            }

            for (var i = 0; i < 10; i++)
            {
                IFeature feature = featureClass2.CreateFeature();
                feature.set_Value(1, string.Format("B'{0}{1}", i, "\""));
                feature.Shape = GeometryFactory.CreatePoint(100, 100, sref);
                feature.Store();
            }

            for (var i = 0; i < 2; i++)
            {
                IFeature emptyFeature = featureClass2.CreateFeature();
                emptyFeature.set_Value(1, null);
                emptyFeature.Shape = GeometryFactory.CreatePoint(100, 100, sref);
                emptyFeature.Store();
            }

            foreach (bool forceInMemoryTableSort in new[] { true, false })
            {
                var test = new QaUnique(new[] { (ITable)featureClass1, (ITable)featureClass2 },
                                        new[] { "Unique", "Unique" })
                {
                    ForceInMemoryTableSorting = forceInMemoryTableSort
                };

                var runner = new QaTestRunner(test);
                runner.Execute();

                Assert.AreEqual(4, runner.Errors.Count);
            }
        }
Exemple #2
0
        private static void TestStringsWithNulls([NotNull] IFeatureWorkspace workspace)
        {
            ISpatialReference sref = SpatialReferenceUtils.CreateSpatialReference
                                         ((int)esriSRProjCS2Type.esriSRProjCS_CH1903Plus_LV95,
                                         true);

            SpatialReferenceUtils.SetXYDomain(sref, -10000, -10000, 10000, 10000, 0.0001, 0.001);

            IFields fields = FieldUtils.CreateFields(
                FieldUtils.CreateOIDField(),
                FieldUtils.CreateTextField("Unique", 100),
                FieldUtils.CreateShapeField(
                    "Shape", esriGeometryType.esriGeometryPoint,
                    sref, 1000));

            IFeatureClass featureClass = DatasetUtils.CreateSimpleFeatureClass(
                workspace,
                "TestStringsWithNulls",
                fields);

            IFeature f = featureClass.CreateFeature();

            f.Shape = GeometryFactory.CreatePoint(100, 100, sref);
            f.Store();

            for (var i = 0; i < 300; i++)
            {
                IFeature feature = featureClass.CreateFeature();
                feature.set_Value(1, string.Format("A'{0}{1}", i, "\""));
                feature.Shape = GeometryFactory.CreatePoint(100, 100, sref);
                feature.Store();
            }

            f = featureClass.CreateFeature();
            f.set_Value(1, string.Format("A'{0}{1}", 4, "\""));
            f.Shape = GeometryFactory.CreatePoint(100, 100, sref);
            f.Store();

            f       = featureClass.CreateFeature();
            f.Shape = GeometryFactory.CreatePoint(300, 100, sref);
            f.Store();

            IEnvelope testEnvelope = GeometryFactory.CreateEnvelope(0, 0, 200, 200, sref);

            foreach (bool forceInMemoryTableSort in new[] { true, false })
            {
                var test = new QaUnique((ITable)featureClass, "Unique", maxRows: 200)
                {
                    ForceInMemoryTableSorting = forceInMemoryTableSort
                };

                using (var runner = new QaTestRunner(test))
                {
                    runner.Execute();
                    Assert.AreEqual(4, runner.Errors.Count);
                }

                using (var runner = new QaTestRunner(test))
                {
                    runner.Execute(testEnvelope);
                    Assert.AreEqual(4, runner.Errors.Count);
                }

                using (var runner = new QaTestRunner(test))
                {
                    runner.Execute();
                    Assert.AreEqual(4, runner.Errors.Count);
                }

                using (var runner = new QaTestRunner(test))
                {
                    runner.Execute(testEnvelope);
                    Assert.AreEqual(4, runner.Errors.Count);
                }
            }
        }