Exemple #1
0
        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();
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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));
            }
        }
Exemple #4
0
        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));
            }
        }
Exemple #5
0
        public void Clone_an_invalid_multipoint_should_be_invalid()
        {
            var multiPoint = new MultiPoint();

            multiPoint.Clone().IsValid.ShouldBeFalse();
        }