예제 #1
0
        public void MergePatterns(int testIndex, string input, string output, string outputExplanation, IntervalMergeBehavior behavior)
        {
            List <IInterval <int> > inputIntervals = GetIntervals(input).ToList();
            var slices = inputIntervals.Merge(behavior).OfType <Slice <int> >().ToArray();

            CompareInputAndOutput(inputIntervals, output, outputExplanation, slices);
        }
예제 #2
0
 public MergeEnumerator([NotNull, ItemNotNull] IEnumerable <IInterval <T> > intervals, IntervalMergeBehavior behavior)
 {
     _Intervals = intervals;
     _Behavior  = behavior;
 }
예제 #3
0
        public static IEnumerable <Slice <T> > Merge <T>([NotNull, ItemNotNull] this IEnumerable <IInterval <T> > intervals, IntervalMergeBehavior behavior = IntervalMergeBehavior.Default)
            where T : struct, IComparable <T>
        {
            if (intervals == null)
            {
                throw new ArgumentNullException(nameof(intervals));
            }

            return(new MergeEnumerator <T>(intervals, behavior));
        }