//private static IEnumerable<GroupOfDataObjects> GetAttributeGroup1(
        //    ICollection<IGrouping<double, GroupMember>> groups,
        //    int minimumNumberOfMembers)
        //{
        //    var elemGroup = new GroupOfDataObjects(groups.First().ToList());
        //    elemGroup.MinValue = elemGroup.AttributeValues.Min(member => member.Value);
        //    var min = elemGroup.MinValue;
        //    var previous = elemGroup;

        //    foreach (var group in groups.Skip(1))
        //    {
        //        if (minimumNumberOfMembers >= elemGroup.AttributeValues.Count)
        //        {
        //            elemGroup.AttributeValues.AddRange(group);
        //            continue;
        //        }

        //        previous = elemGroup;

        //        min = FindGroupRange(elemGroup, min);

        //        yield return elemGroup;

        //        elemGroup = new GroupOfDataObjects(group.ToList());
        //    }

        //    if (minimumNumberOfMembers >= elemGroup.AttributeValues.Count)
        //    {
        //        previous.AttributeValues.AddRange(elemGroup.AttributeValues);
        //        FindGroupRange(previous, min);
        //    }
        //    else
        //    {
        //        yield return elemGroup;
        //    }
        //}

        private static double FindGroupRange(
            GroupOfDataObjects elemGroup,
            double min)
        {
            elemGroup.MaxValue = elemGroup.AttributeValues.Max(member => member.Value);
            elemGroup.MinValue = min;
            min = elemGroup.MaxValue;
            return(min);
        }
        private static IEnumerable <GroupOfDataObjects> CreateGroups(List <GroupMember>[] groupOfDataObjects)
        {
            var min = groupOfDataObjects.First().ToArray().Min(member => member.Value);

            foreach (var groupOfDataObject in groupOfDataObjects)
            {
                var elemGroup = new GroupOfDataObjects(groupOfDataObject.ToArray());
                FindGroupRange(elemGroup, min);
                min = elemGroup.MaxValue;
                yield return(elemGroup);
            }
        }
Exemple #3
0
 public GroupOfDataObjectsCover(
     GroupOfDataObjects group)
 {
     Group = group;
 }