protected List <List <ComparablePredicate> > ComputeOutcomePatterns(ComparablePredicate[] sorted) { ComparablePredicate cp = sorted[0]; var newGroup = new List <ComparablePredicate>(); var outcomePatterns = new List <List <ComparablePredicate> >(); foreach (var predicate in sorted) { if (cp.CompareTo(predicate) == 0) { newGroup.Add(predicate); } else { cp = predicate; outcomePatterns.Add(newGroup); newGroup = new List <ComparablePredicate> { predicate }; } } outcomePatterns.Add(newGroup); #if DEBUG Debug.Print(outcomePatterns.Count + " outcome patterns."); #endif return(outcomePatterns); }
protected internal virtual IList <IList <ComparablePredicate> > compressOutcomes(ComparablePredicate[] sorted) { ComparablePredicate cp = sorted[0]; IList <IList <ComparablePredicate> > outcomePatterns = new List <IList <ComparablePredicate> >(); IList <ComparablePredicate> newGroup = new List <ComparablePredicate>(); for (int i = 0; i < sorted.Length; i++) { if (cp.CompareTo(sorted[i]) == 0) { newGroup.Add(sorted[i]); } else { cp = sorted[i]; outcomePatterns.Add(newGroup); newGroup = new List <ComparablePredicate>(); newGroup.Add(sorted[i]); } } outcomePatterns.Add(newGroup); return(outcomePatterns); }
protected internal virtual IList <IList <ComparablePredicate> > computeOutcomePatterns(ComparablePredicate[] sorted) { ComparablePredicate cp = sorted[0]; IList <IList <ComparablePredicate> > outcomePatterns = new List <IList <ComparablePredicate> >(); IList <ComparablePredicate> newGroup = new List <ComparablePredicate>(); foreach (ComparablePredicate predicate in sorted) { if (cp.CompareTo(predicate) == 0) { newGroup.Add(predicate); } else { cp = predicate; outcomePatterns.Add(newGroup); newGroup = new List <ComparablePredicate>(); newGroup.Add(predicate); } } outcomePatterns.Add(newGroup); Console.Error.WriteLine(outcomePatterns.Count + " outcome patterns"); return(outcomePatterns); }