/// <summary>
            ///
            /// </summary>
            /// <param name="pts1"></param>
            /// <param name="pts2"></param>
            /// <returns></returns>
            public virtual int Compare(Coordinate[] pts1, Coordinate[] pts2)
            {
                if (pts1.Length < pts2.Length)
                {
                    return(-1);
                }
                if (pts1.Length > pts2.Length)
                {
                    return(1);
                }

                if (pts1.Length == 0)
                {
                    return(0);
                }

                int  forwardComp = CoordinateArrays.Compare(pts1, pts2);
                bool isEqualRev  = IsEqualReversed(pts1, pts2);

                if (isEqualRev)
                {
                    return(0);
                }

                return(forwardComp);
            }
 /// <summary>
 /// Compares the specified <see cref="Coordinate" />s arrays.
 /// </summary>
 /// <param name="pts1"></param>
 /// <param name="pts2"></param>
 /// <returns></returns>
 public virtual int Compare(Coordinate[] pts1, Coordinate[] pts2)
 {
     return(CoordinateArrays.Compare(pts1, pts2));
 }