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); } }
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); } } }