/// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public virtual bool IsNonNested()
        {
            for (int i = 0; i < rings.Count; i++)
            {
                LinearRing    innerRing    = (LinearRing)rings[i];
                ICoordinate[] innerRingPts = innerRing.Coordinates;

                for (int j = 0; j < rings.Count; j++)
                {
                    LinearRing    searchRing    = (LinearRing)rings[j];
                    ICoordinate[] searchRingPts = searchRing.Coordinates;

                    if (innerRing == searchRing)
                    {
                        continue;
                    }

                    if (!innerRing.EnvelopeInternal.Intersects(searchRing.EnvelopeInternal))
                    {
                        continue;
                    }

                    Coordinate innerRingPt = IsValidOp.FindPointNotNode(innerRingPts, searchRing, graph);
                    Assert.IsTrue(innerRingPt != null, "Unable to find a ring point not a node of the search ring");

                    bool isInside = CGAlgorithms.IsPointInRing(innerRingPt, searchRingPts);
                    if (isInside)
                    {
                        nestedPt = innerRingPt;
                        return(false);
                    }
                }
            }
            return(true);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="innerRing"></param>
        /// <param name="searchRing"></param>
        /// <returns></returns>
        private bool IsInside(LinearRing innerRing, LinearRing searchRing)
        {
            ICoordinate[] innerRingPts  = innerRing.Coordinates;
            ICoordinate[] searchRingPts = searchRing.Coordinates;
            if (!innerRing.EnvelopeInternal.Intersects(searchRing.EnvelopeInternal))
            {
                return(false);
            }
            ICoordinate innerRingPt = IsValidOp.FindPointNotNode(innerRingPts, searchRing, graph);

            Assert.IsTrue(innerRingPt != null, "Unable to find a ring point not a node of the search ring");
            bool isInside = CGAlgorithms.IsPointInRing(innerRingPt, searchRingPts);

            if (isInside)
            {
                nestedPt = new Coordinate(innerRingPt);
                return(true);
            }
            return(false);
        }