public void A_valid_multipolygon_should_not_equal_an_invalid_point()
        {
            var multiPolygon = new MultiPolygon(new[] { new Polygon(new[] { new LineString(new[] { new Point(30, 20), new Point(45, 40), new Point(10, 40), new Point(30, 20) }) }) });
            var other        = new MultiPolygon();

            multiPolygon.Equals(other).ShouldBeFalse();
        }
        public void A_multipolygon_should_not_equal_to_a_none_point()
        {
            var multiPolygon = new MultiPolygon();
            var other        = 100;

            multiPolygon.Equals(other).ShouldBeFalse();
        }
        public void Two_valid_multipolygons_with_same_polygon_should_equal()
        {
            var multiPolygon = new MultiPolygon(new[] { new Polygon(new[] { new LineString(new[] { new Point(30, 20), new Point(45, 40), new Point(10, 40), new Point(30, 20) }) }) });
            var other        = new MultiPolygon(new[] { new Polygon(new[] { new LineString(new[] { new Point(30, 20), new Point(45, 40), new Point(10, 40), new Point(30, 20) }) }) });

            multiPolygon.Equals(other).ShouldBeTrue();
            (multiPolygon == other).ShouldBeTrue();
        }
        public void Two_valid_multipolygons_with_different_latlng_should_not_equal()
        {
            var multiPolygon = new MultiPolygon(new[] { new Polygon(new[] { new LineString(new[] { new Point(30, 20), new Point(45, 40), new Point(10, 40), new Point(30, 20) }) }) });
            var other        = new MultiPolygon(new[] { new Polygon(new[] { new LineString(new[] { new Point(30, 20), new Point(47, 40), new Point(10, 40), new Point(30, 20) }) }) });

            multiPolygon.Equals(other).ShouldBeFalse();
            (multiPolygon != other).ShouldBeTrue();
        }
        public void Clone_a_valid_multipolygon_should_equal_but_not_same()
        {
            var multiPolygon = new MultiPolygon(new[] { new Polygon(new[] { new LineString(new[] { new Point(30, 20), new Point(45, 40), new Point(10, 40), new Point(30, 20) }) }) });

            var copiedOne = multiPolygon.Clone();

            ReferenceEquals(multiPolygon, copiedOne).ShouldBeFalse();
            multiPolygon.Equals(copiedOne).ShouldBeTrue();
        }
        public void One_valid_multipolygon_should_equal_to_itself()
        {
            var multiPolygon = new MultiPolygon(new[] { new Polygon(new[] { new LineString(new[] { new Point(30, 20), new Point(45, 40), new Point(10, 40), new Point(30, 20) }) }) });

            multiPolygon.Equals(multiPolygon).ShouldBeTrue();
        }