Exemple #1
0
        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);
        }