public void Clone_a_valid_multipoint_should_equal_but_not_same() { var multiPoint = new MultiPoint(new[] { new Point(-170.1, 90), new Point(120, -70) }); var copiedMultiPoint = multiPoint.Clone(); ReferenceEquals(multiPoint, copiedMultiPoint).ShouldBeFalse(); copiedMultiPoint.Equals(multiPoint).ShouldBeTrue(); }
public static Geometry Union(Point point, MultiPoint multiPoint) { if (IntersectCheckOperator.IsIntersects(point, multiPoint)) { return(multiPoint.Clone()); } if (multiPoint?.IsValid != true) { return(point?.IsValid == true?point.Clone() : null); } var nMultiPoint = multiPoint.Clone() as MultiPoint; if (point?.IsValid == true) { nMultiPoint.Geometries.Add(point.Clone()); } return(nMultiPoint); }
public void test_Clone() { //create a new multipoint MultiPoint mp = CreateTester1(); //clone that multipoint MultiPoint mp2 = mp.Clone() as MultiPoint; //Test that they are not the same multipoint Assertion.AssertEquals("Clone-1: ", false, mp == mp2); //Test that they have the same coordinates for (int i = 0; i < mp.GetNumGeometries(); i++) { Assertion.AssertEquals("Clone-2: ", true, mp.GetCoordinate(i).X.Equals(mp2.GetCoordinate(i).X)); Assertion.AssertEquals("Clone-3: ", true, mp.GetCoordinate(i).Y.Equals(mp2.GetCoordinate(i).Y)); } }
public static Geometry Union(MultiPoint multiPoint1, MultiPoint multiPoint2) { if (multiPoint1?.IsValid != true) { return(multiPoint2?.IsValid == true?multiPoint2.Clone() : null); } if (multiPoint2?.IsValid != true) { return(multiPoint1.Clone()); } var points = new List <Point>(); foreach (Point point in multiPoint1.Geometries) { if (multiPoint2.Geometries.All(x => x.Equals(point) == false)) { points.Add(point.Clone() as Point); } } foreach (Point point in multiPoint2.Geometries) { points.Add(point.Clone() as Point); } if (points.Count == 0) { return(null); } else if (points.Count == 1) { return(points[0]); } else { return(new MultiPoint(points)); } }
public void Clone_an_invalid_multipoint_should_be_invalid() { var multiPoint = new MultiPoint(); multiPoint.Clone().IsValid.ShouldBeFalse(); }