private void CheckOctagonalEnvelope(string wkt, string wktExpected)
        {
            var input = Read(wkt);

            if (!input.IsValid)
            {
                throw new IgnoreException("input geometry not valid");
            }
            var expected = Read(wktExpected);

            if (!expected.IsValid)
            {
                throw new IgnoreException("expected geometry not valid");
            }

            var  octEnv  = OctagonalEnvelope.GetOctagonalEnvelope(input);
            bool isEqual = octEnv.EqualsNormalized(expected);

            double hsmDiff = 1d;

            if (!isEqual)
            {
                var hsm = new HausdorffSimilarityMeasure();
                hsmDiff = hsm.Measure(octEnv, expected);
            }
            Assert.IsTrue(isEqual, $"Failed, Hausdorff Similarity Measure value = {hsmDiff:R}.");
        }
        private void CheckOctagonalEnvelope(string wkt, string wktExpected)
        {
            var input    = Read(wkt);
            var expected = Read(wktExpected);
            var octEnv   = OctagonalEnvelope.GetOctagonalEnvelope(input);
            var isEqual  = octEnv.EqualsNormalized(expected);

            Assert.IsTrue(isEqual);
        }
        public static IGeometry octagonalEnvelope(IGeometry g)
        {
            var octEnv = new OctagonalEnvelope(g);

            return(octEnv.ToGeometry(g.Factory));
        }