public void TestAllowedCoordinatesForUndefinedShape() { var featureClass = new FeatureClassMock(1, "Fc", esriGeometryType.esriGeometryPoint); featureClass.AddField(FieldUtils.CreateDoubleField(_fieldNameX)); featureClass.AddField(FieldUtils.CreateDoubleField(_fieldNameY)); featureClass.AddField(FieldUtils.CreateDoubleField(_fieldNameZ)); // create point feature const double x = 2600000; const double y = 1200000; const double z = 500; IFeature feature = CreateFeature(featureClass, x, x, y, y, z, z); feature.Shape.SetEmpty(); var test = new QaValidCoordinateFields(featureClass, _fieldNameX, _fieldNameY, _fieldNameZ, _xyTolerance, _zTolerance, _culture) { AllowXYFieldValuesForUndefinedShape = true, AllowZFieldValueForUndefinedShape = true }; var runner = new QaTestRunner(test); runner.Execute(feature); Assert.AreEqual(0, runner.Errors.Count); }
public void TestNonEqualXCoordinateDoubleField() { var featureClass = new FeatureClassMock(1, "Fc", esriGeometryType.esriGeometryPoint); featureClass.AddField(FieldUtils.CreateDoubleField(_fieldNameX)); // create point feature const double x = 2600000; const double y = 1200000; const double z = 500; IFeature feature = CreateFeature(featureClass, x, x + 1.01 * _xyTolerance, y, null, z, null); var test = new QaValidCoordinateFields(featureClass, _fieldNameX, null, null, _xyTolerance, _zTolerance, _culture); var runner = new QaTestRunner(test); runner.Execute(feature); QaError error; AssertUtils.OneError(runner, "ValidCoordinateFields.XYFieldCoordinateValueTooFarFromShape", out error); Assert.AreEqual(_fieldNameX, error.AffectedComponent); }
public void TestNonEqualCoordinatesTextFieldsBothXYJustBelowTolerance() { var featureClass = new FeatureClassMock(1, "Fc", esriGeometryType.esriGeometryPoint); featureClass.AddField(FieldUtils.CreateTextField(_fieldNameX, 50)); featureClass.AddField(FieldUtils.CreateTextField(_fieldNameY, 50)); featureClass.AddField(FieldUtils.CreateTextField(_fieldNameZ, 50)); // create point feature const double x = 2600000.12345; const double y = 1200000.12345; IFeature feature = CreateFeature( featureClass, x, string.Format(_cultureInfo, "{0:N3}", x + 0.9 * _xyTolerance), y, string.Format(_cultureInfo, "{0:N3}", y - 0.9 * _xyTolerance), z: 100, zFieldValue: "100"); var test = new QaValidCoordinateFields(featureClass, _fieldNameX, _fieldNameY, _fieldNameZ, _xyTolerance, _zTolerance, _culture); var runner = new QaTestRunner(test); runner.Execute(feature); AssertUtils.OneError(runner, "ValidCoordinateFields.XYFieldCoordinatesTooFarFromShape"); }
public void TestEqualCoordinatesTextFields() { var featureClass = new FeatureClassMock(1, "Fc", esriGeometryType.esriGeometryPoint); featureClass.AddField(FieldUtils.CreateTextField(_fieldNameX, 50)); featureClass.AddField(FieldUtils.CreateTextField(_fieldNameY, 50)); featureClass.AddField(FieldUtils.CreateTextField(_fieldNameZ, 50)); // create point feature const double x = 2600000.12345; const double y = 1200000.12345; const double z = 500.12345; IFeature feature = CreateFeature( featureClass, x, string.Format(_cultureInfo, "{0:N3}", x), y, string.Format(_cultureInfo, "{0:N3}", y), z, string.Format(_cultureInfo, "{0:N3}", z)); var test = new QaValidCoordinateFields(featureClass, _fieldNameX, _fieldNameY, _fieldNameZ, _xyTolerance, _zTolerance, _culture); var runner = new QaTestRunner(test); runner.Execute(feature); Assert.AreEqual(0, runner.Errors.Count); }
public void TestNonEqualCoordinatesTextFieldsEqualY() { var featureClass = new FeatureClassMock(1, "Fc", esriGeometryType.esriGeometryPoint); featureClass.AddField(FieldUtils.CreateTextField(_fieldNameX, 50)); featureClass.AddField(FieldUtils.CreateTextField(_fieldNameY, 50)); featureClass.AddField(FieldUtils.CreateTextField(_fieldNameZ, 50)); // create point feature const double x = 2600000.12345; const double y = 1200000.12345; const double z = 500.12345; IFeature feature = CreateFeature( featureClass, x, string.Format(_cultureInfo, "{0:N3}", x + 1.01 * _xyTolerance), y, string.Format(_cultureInfo, "{0:N3}", y), z, string.Format(_cultureInfo, "{0:N3}", z + 1.01 * _zTolerance)); var test = new QaValidCoordinateFields(featureClass, _fieldNameX, _fieldNameY, _fieldNameZ, _xyTolerance, _zTolerance, _culture); var runner = new QaTestRunner(test); runner.Execute(feature); Assert.AreEqual(2, runner.Errors.Count); QaError xyError = runner.Errors[0]; IssueCode xyIssueCode = xyError.IssueCode; Assert.IsNotNull(xyIssueCode); Assert.AreEqual("ValidCoordinateFields.XYFieldCoordinateValueTooFarFromShape", xyIssueCode.ID); QaError zError = runner.Errors[1]; IssueCode zIssueCode = zError.IssueCode; Assert.IsNotNull(zIssueCode); Assert.AreEqual("ValidCoordinateFields.ZFieldCoordinateTooFarFromShape", zIssueCode.ID); }
public void TestMissingXYCoordinatesForDefinedShape() { var featureClass = new FeatureClassMock(1, "Fc", esriGeometryType.esriGeometryPoint); featureClass.AddField(FieldUtils.CreateDoubleField(_fieldNameX)); featureClass.AddField(FieldUtils.CreateDoubleField(_fieldNameY)); featureClass.AddField(FieldUtils.CreateDoubleField(_fieldNameZ)); // create point feature const double x = 2600000; const double y = 1200000; const double z = 500; IFeature feature = CreateFeature(featureClass, x, null, y, null, z, z); var test = new QaValidCoordinateFields(featureClass, _fieldNameX, _fieldNameY, _fieldNameZ, _xyTolerance, _zTolerance, _culture) { AllowMissingXYFieldValueForDefinedShape = false, AllowMissingZFieldValueForDefinedShape = false }; var runner = new QaTestRunner(test); runner.Execute(feature); Assert.AreEqual(2, runner.Errors.Count); foreach (QaError error in runner.Errors) { IssueCode issueCode = error.IssueCode; Assert.IsNotNull(issueCode); Assert.AreEqual( "ValidCoordinateFields.ShapeIsDefinedButCoordinateFieldHasNoValue", issueCode.ID); } Assert.AreEqual(_fieldNameX, runner.Errors[0].AffectedComponent); Assert.AreEqual(_fieldNameY, runner.Errors[1].AffectedComponent); }
public void TestInvalidTextFieldValues() { var featureClass = new FeatureClassMock(1, "Fc", esriGeometryType.esriGeometryPoint); featureClass.AddField(FieldUtils.CreateTextField(_fieldNameX, 50)); featureClass.AddField(FieldUtils.CreateTextField(_fieldNameY, 50)); featureClass.AddField(FieldUtils.CreateTextField(_fieldNameZ, 50)); // create point feature const double x = 2600000.12345; const double y = 1200000.12345; const double z = 500.12345; IFeature feature = CreateFeature(featureClass, x, "a", y, "b", z, "c"); var test = new QaValidCoordinateFields(featureClass, _fieldNameX, _fieldNameY, _fieldNameZ, _xyTolerance, _zTolerance, _culture); var runner = new QaTestRunner(test); runner.Execute(feature); Assert.AreEqual(3, runner.Errors.Count); foreach (QaError error in runner.Errors) { IssueCode issueCode = error.IssueCode; Assert.IsNotNull(issueCode); Assert.AreEqual("ValidCoordinateFields.TextFieldValueIsNotNumeric", issueCode.ID); } Assert.AreEqual(_fieldNameX, runner.Errors[0].AffectedComponent); Assert.AreEqual(_fieldNameY, runner.Errors[1].AffectedComponent); Assert.AreEqual(_fieldNameZ, runner.Errors[2].AffectedComponent); }