Exemple #1
0
        public static bool IsMergedWith(this IInterval self, IInterval other)
        {
            var s = self.ToInterval();
            var o = other.ToInterval();

            return(s.Start == o.Start && o.End == s.End);
        }
Exemple #2
0
        public static bool Meets(this IInterval self, IInterval other)
        {
            var s = self.ToInterval();
            var o = other.ToInterval();

            return(s.End == o.Start);
        }
Exemple #3
0
        public static bool Finishes(this IInterval self, IInterval other)
        {
            var s = self.ToInterval();
            var o = other.ToInterval();

            return(s.Start > o.Start && s.End == o.End);
        }
Exemple #4
0
        public static bool Contains(this IInterval self, int index,
                                    ContainsMode mode = ContainsMode.NON_STRICT)
        {
            var s = self.ToInterval();

            if (mode == ContainsMode.NON_STRICT)
            {
                return(s.Start <= index && index <= s.End);
            }
            else
            {
                return(s.Start < index && index < s.End);
            }
        }
Exemple #5
0
        public static bool Contains(this IInterval self, IInterval other,
                                    ContainsMode mode = ContainsMode.NON_STRICT)
        {
            var s = self.ToInterval();
            var o = other.ToInterval();

            if (mode == ContainsMode.NON_STRICT)
            {
                return(s.Start <= o.Start && o.End <= s.End);
            }
            else
            {
                return(s.Start < o.Start && o.End < s.End);
            }
        }
Exemple #6
0
        public static bool IsAfter(this IInterval self, IInterval other,
                                   ContainsMode mode = ContainsMode.NON_STRICT)
        {
            var s = self.ToInterval();
            var o = other.ToInterval();

            if (mode == ContainsMode.NON_STRICT)
            {
                return(s.Start >= o.End);
            }
            else
            {
                return(s.Start > o.End);
            }
        }
Exemple #7
0
        public static string Slice(this IInterval interval, string s)
        {
            var i = interval.ToInterval();

            return(s.Substring(i.Start, i.Length));
        }
Exemple #8
0
        public static T[] Slice <T>(this IInterval interval, IEnumerable <T> list)
        {
            var i = interval.ToInterval();

            return(list.Skip(i.Start).Take(i.Length).ToArray());
        }
Exemple #9
0
 public static int Length(this IInterval interval)
 {
     return(interval.ToInterval().Length);
 }
Exemple #10
0
 public static int End(this IInterval interval)
 {
     return(interval.ToInterval().End);
 }
Exemple #11
0
 public static int Start(this IInterval interval)
 {
     return(interval.ToInterval().Start);
 }
Exemple #12
0
        public static T[] SubArray <T>(this T[] data, IInterval interval)
        {
            var i = interval.ToInterval();

            return(data.SubArray(i.Start, i.Length));
        }