public void Constructor_ExteriorRing_CreatesPolygonWithExteriorBoundary() { Polygon target = new Polygon(_exteriorRing3D); Assert.Equal(SRIDList.WSG84, target.Srid); Assert.Same(_exteriorRing3D, target.ExteriorRing); Assert.NotNull(target.InteriorRings); Assert.Empty(target.InteriorRings); }
public void Constructor_SRIDExteriorRingInteriorRings_CreatesPolygonWithExteriorBoundary() { int srid = 1; Polygon target = new Polygon(srid, _exteriorRing3D, _interiorRings3D); Assert.Equal(srid, target.Srid); Assert.NotNull(target.ExteriorRing); Assert.Same(_exteriorRing3D, target.ExteriorRing); CheckInteriorRings(target, _interiorRings3D); }
public void Constructor_SRID_CreatesEmptyPolygonWithCustomSRID() { int srid = 1; Polygon target = new Polygon(srid); Assert.Equal(srid, target.Srid); Assert.NotNull(target.ExteriorRing); Assert.Empty(target.ExteriorRing); Assert.NotNull(target.InteriorRings); Assert.Empty(target.InteriorRings); }
public void ComputeArea_IPolygon_ReturnsAreaOfSimplePolygonCalculatedByIDimensionsCalculator() { Polygon polygon = new Polygon(new CoordinateList()); Random generator = new Random(); double expectedArea = generator.Next(100); Mock<IDimensionsCalculator> calculatorM = new Mock<IDimensionsCalculator>(); calculatorM.Setup(calc => calc.CalculateArea(polygon.ExteriorRing)).Returns(expectedArea); Measurements target = new Measurements(calculatorM.Object); double area = target.ComputeArea(polygon); Assert.Equal(expectedArea, area); }
public void ComputeArea_IMultiPolygon_ReturnsSumOfPolygonAreas() { Random generator = new Random(); Polygon polygon = new Polygon(new CoordinateList()); double polygonArea = generator.Next(100); MultiPolygon multipolygon = new MultiPolygon(new Polygon[] { polygon, polygon }); Mock<IDimensionsCalculator> calculatorM = new Mock<IDimensionsCalculator>(); calculatorM.Setup(calc => calc.CalculateArea(polygon.ExteriorRing)).Returns(() => polygonArea); Measurements target = new Measurements(calculatorM.Object); double area = target.ComputeArea(multipolygon); Assert.Equal(2 * polygonArea, area); }
public void ComputeArea_IPolygon_ReturnsAreaOfPolygonWithoutHolesCalculatedByIDimensionsCalculator() { Random generator = new Random(); Polygon polygon = new Polygon(new CoordinateList()); polygon.InteriorRings.Add(new CoordinateList()); double exteriorArea = generator.Next(100) + 10; double interiorArea = generator.Next(10); Mock<IDimensionsCalculator> calculatorM = new Mock<IDimensionsCalculator>(); calculatorM.Setup(calc => calc.CalculateArea(polygon.ExteriorRing)).Returns(exteriorArea); calculatorM.Setup(calc => calc.CalculateArea(polygon.InteriorRings[0])).Returns(interiorArea); Measurements target = new Measurements(calculatorM.Object); double area = target.ComputeArea(polygon); Assert.Equal(exteriorArea - interiorArea, area); }
private void CheckInteriorRings(Polygon target, CoordinateList[] expected) { Assert.Equal(expected.Length, target.InteriorRings.Count); for (int i = 0; i < expected.Length; i++) { Assert.Same(expected[i], target.InteriorRings[i]); } }
public void IsMeasured_ReturnsTrueForMeasuredExteriorRing() { Polygon target = new Polygon(new CoordinateList(_coordinatesXYZM)); Assert.True(target.IsMeasured); }
public void Write_WritesComplexPolygonWitOuterAndInnerRings() { string wkt = "polygon zm ((-10.1 15.5 100.5 1000.5, 20.2 -25.5 200.5 2000.5, 30.3 35.5 -300.5 -3000.5),(-1.1 1.5 10.5 100.5, 2.2 -2.5 20.5 200.5, 3.3 3.5 -30.5 -300.5),(-1.1 1.5 10.5 100.5, 2.2 -2.5 20.5 200.5, 3.3 3.5 -30.5 -300.5))"; Polygon polygon = new Polygon(new CoordinateList(_coordinatesXYZM)); polygon.InteriorRings.Add(new CoordinateList(_coordinates2XYZM)); polygon.InteriorRings.Add(new CoordinateList(_coordinates2XYZM)); this.TestWriteGeometry(polygon, wkt); }
public void Is3D_ReturnsTrueFor3DExteriorRing() { Polygon target = new Polygon(_exteriorRing3D); Assert.True(target.Is3D); }
public void Is3D_ReturnsFalseForEmptyPolygon() { Polygon target = new Polygon(); Assert.False(target.Is3D); }
public void Is3D_ReturnsFalseFor2DExteriorRing() { Polygon target = new Polygon(new CoordinateList(_coordinatesXY)); Assert.False(target.Is3D); }
public void GetEnvelope_ReturnsEmptyEnvelopeForEmptyPolygon() { Polygon target = new Polygon(); double x = double.NaN; bool test = x == double.NaN; Envelope envelope = target.GetEnvelope(); Assert.Equal(Envelope.Empty, envelope); }
public void GetEnvelopeReturnsEnvelopeOfLineString() { Envelope expectedEnvelope = new Envelope(_coordinatesXYZ); Polygon target = new Polygon(_exteriorRing3D); Envelope envelope = target.GetEnvelope(); Assert.Equal(expectedEnvelope, envelope); }
public void GetBoundary_ReturnsMultiLineStringWithExteriorAndInteriorRingsAndCorrectSRID() { int srid = 1; Polygon target = new Polygon(srid, _exteriorRing3D, _interiorRings3D); IMultiLineString boundary = target.GetBoundary() as IMultiLineString; Assert.NotNull(boundary); Assert.Equal(srid, boundary.Srid); }
public void Constructor__CreatesEmptyPolygonAndInitializesProperties() { Polygon target = new Polygon(); Assert.Equal(SRIDList.WSG84, target.Srid); Assert.NotNull(target.ExteriorRing); Assert.Empty(target.ExteriorRing); Assert.NotNull(target.InteriorRings); Assert.Empty(target.InteriorRings); }
private void ComparePolygons(Polygon polygon, Polygon expected) { this.CompareCoordinateLists(polygon.ExteriorRing, expected.ExteriorRing); Assert.Equal(expected.InteriorRings.Count, polygon.InteriorRings.Count); for (int i = 0; i < expected.InteriorRings.Count; i++) { this.CompareCoordinateLists(polygon.InteriorRings[i], expected.InteriorRings[i]); } }
public void IsMeasured_ReturnsFalseForEmptyPolygon() { Polygon target = new Polygon(); Assert.False(target.IsMeasured); }
public void Write_WritesPolygonsOfAllDimensions(Polygon toWrite, string expectedWkt) { this.TestWriteGeometry(toWrite, expectedWkt); }
public void IsMeasured_ReturnsFalseForNonMeasuredExteriorRing() { Polygon target = new Polygon(new CoordinateList(_coordinatesXYZ)); Assert.False(target.IsMeasured); }