public void IsInRing_ThrowsArgumentExceptionIfCoordinateListDoesNotRepresentRing()
        {
            Coordinate         c      = new Coordinate(0, 0);
            CoordinateList     ring   = new CoordinateList(new Coordinate[] { new Coordinate(0, 1), new Coordinate(1, 0), new Coordinate(1, 2) });
            Euclidean2DLocator target = new Euclidean2DLocator();

            Assert.Throws <ArgumentException>(() => target.IsInRing(c, ring));
        }
        public void IsInRing_ThrowsArgumentExceptionIfRingHasLessThen3Points()
        {
            Coordinate         c      = new Coordinate(0, 0);
            CoordinateList     ring   = new CoordinateList(new Coordinate[] { new Coordinate(0, 1), new Coordinate(1, 0) });
            Euclidean2DLocator target = new Euclidean2DLocator();

            Assert.Throws <ArgumentException>(() => target.IsInRing(c, ring));
        }
        public void IsInRing_ReturnsFalseIfPointIsInRingAndCYCoordinateIsSameAsVertexYCoordinate()
        {
            string     wktRing = "linestring (-1 -1, 1 -1, 1 0.5, 1 1, -1 1, -1 -1)";
            LineString ring    = WktReader.Parse <LineString>(wktRing);

            Coordinate         c      = new Coordinate(-2, 0.5);
            Euclidean2DLocator target = new Euclidean2DLocator();

            Assert.False(target.IsInRing(c, ring.Coordinates));
        }
        public void IsInRing_ReturnsFalseIfPointIsOutsideRing()
        {
            string     wktRing = "linestring (0 0, 2 0, 1 1, 1 2, 0 0)";
            LineString ring    = WktReader.Parse <LineString>(wktRing);

            Coordinate         c      = new Coordinate(3, 0);
            Euclidean2DLocator target = new Euclidean2DLocator();

            Assert.False(target.IsInRing(c, ring.Coordinates));
        }
        public void IsInRing_ReturnsTrueIfPointIsInConcaveRing()
        {
            string     wktRing = "linestring (0 0, 2 0, 1 1, 1 2, 0 0)";
            LineString ring    = WktReader.Parse <LineString>(wktRing);

            Coordinate         c      = new Coordinate(1, 0.5);
            Euclidean2DLocator target = new Euclidean2DLocator();

            Assert.True(target.IsInRing(c, ring.Coordinates));
        }
        public void IsInRing_ReturnsTrueIfPointIsInSimpleRing()
        {
            string     wktRing = "linestring (-1 -1, 1 -1, 1 1, -1 1, -1 -1)";
            LineString ring    = WktReader.Parse <LineString>(wktRing);

            Coordinate         c      = new Coordinate(0.5, 0.5);
            Euclidean2DLocator target = new Euclidean2DLocator();

            Assert.True(target.IsInRing(c, ring.Coordinates));
        }