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); }
public MergeEnumerator([NotNull, ItemNotNull] IEnumerable <IInterval <T> > intervals, IntervalMergeBehavior behavior) { _Intervals = intervals; _Behavior = behavior; }
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)); }