Inheritance: ScoringRules
Ejemplo n.º 1
0
 public RunningBack(string name, int jerseyNumber, Grouping group, int age, float weight, double rating, int rushingAttempts, int rushingYards, int rushingTouchdowns)
     : base(name, jerseyNumber, group, age, weight, rating)
 {
     this.RushingAttempts = rushingAttempts;
     this.RushingYards = rushingYards;
     this.RushingTouchdowns = rushingTouchdowns;
 }
Ejemplo n.º 2
0
        public TasksGrid()
        {
            this.Title = "All Lists";
            this.IconCls = "icon-folder";
            this.EnableColumnHide = false;
            this.EnableColumnMove = false;

            this.SelectionModel.Add(new RowSelectionModel {
            });

            this.View.Add(new GridView
            {
                MarkDirty = false,
                EmptyText = "There are no tasks to show in this category.",
                GetRowClass = { Fn = TasksGrid.SCOPE + ".getRowClass" },
                LoadMask = true,
                LoadingText = "Loading Tasks...",

                Plugins =
                {
                    new GridDragDrop{ DDGroup = "tasktree" }
                }
            });

            Grouping g = new Grouping();

            this.Features.Add(g);

            this.BuildStore();
            this.BuildColumnModel();
            this.BuildHeaderRow();
            this.BuildContextMenu();
            this.InitLogic();
        }
Ejemplo n.º 3
0
		List<GroupEntry> _NestedGroup;	// group one hierarchy below
	
		public GroupEntry(Grouping g, Sorting s, int start)
		{
			_Group = g;
			_Sort = s;
			_StartRow = start;
			_EndRow = -1;
            _NestedGroup = new List<GroupEntry>();

			// Check to see if grouping and sorting are the same
			if (g == null || s == null)
				return;			// nothing to check if either is null

			if (s.Items.Count != g.GroupExpressions.Items.Count)
				return;

			for (int i = 0; i < s.Items.Count; i++)
			{
				SortBy sb = s.Items[i] as SortBy;

				if (sb.Direction == SortDirectionEnum.Descending)
					return;			// TODO we could optimize this 
				
				FunctionField ff = sb.SortExpression.Expr as FunctionField;
				if (ff == null || ff.GetTypeCode() != TypeCode.String)
					return;

				GroupExpression ge = g.GroupExpressions.Items[i] as GroupExpression;
				FunctionField ff2 = ge.Expression.Expr as FunctionField;
				if (ff2 == null || ff.Fld != ff2.Fld)
					return;
			}
			_Sort = null;		// we won't need to sort since the groupby will handle it correctly
		}
Ejemplo n.º 4
0
        public IAcceptGroups Add(Grouping grouping, object group, int indent)
        {
            if (group is Host || group is VM)
                XenObjects.Add((IXenObject)group);

            return this;
        }
 public void ProcessGrouping(Grouping group)
 {
     if (ProcessGroupingObject != null)
         ProcessGroupingObject(group);
     foreach (var obj in group.Children)
         obj.AcceptVisitor(this);
 }
Ejemplo n.º 6
0
 internal SKSAuthorizationDialog(int key_handle,
                                 PassphraseFormat format,
                                 Grouping grouping,
                                 AppUsage app_usage,
                                 int zero_or_retriesleft)
 {
 	this.key_handle = key_handle;
     this.retry_warning = zero_or_retriesleft != 0;
     this.retriesleft = zero_or_retriesleft;
     this.pin_format = format;
     if (app_usage == AppUsage.SIGNATURE &&
         (grouping == Grouping.UNIQUE || grouping == Grouping.SIGNATURE_PLUS_STANDARD))
     {
     	show_picture = true;
     	add_on_dialog_header = " - SIGNATURE";
     	picture_resource = "sks.signsymb.gif";
     	picture_tooltip_text = "Signature operation requiring a specific PIN"; 
     } 
     if (app_usage == AppUsage.AUTHENTICATION && grouping == Grouping.UNIQUE)
     {
     	show_picture = true;
     	add_on_dialog_header = " - AUTHENTICATION";
     	picture_resource = "sks.idcard.gif";
     	picture_tooltip_text = "Authentication operation requiring a specific PIN"; 
     } 
     if (app_usage == AppUsage.ENCRYPTION && grouping == Grouping.UNIQUE)
     {
     	show_picture = true;
     	add_on_dialog_header = " - ENCRYPTION";
     	picture_resource = "sks.encrypt.gif";
     	picture_tooltip_text = "Encryption operation requiring a specific PIN"; 
     } 
     pin_format = format;
     InitializeComponent();
 }
		Expression _Label;	// (string) The label displayed on the legend.		
	
		public DynamicSeries(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p)
		{
			_Grouping=null;
			_Sorting=null;
			_Label=null;

			// Loop thru all the child nodes
			foreach(XmlNode xNodeLoop in xNode.ChildNodes)
			{
				if (xNodeLoop.NodeType != XmlNodeType.Element)
					continue;
				switch (xNodeLoop.Name)
				{
					case "Grouping":
						_Grouping = new Grouping(r, this, xNodeLoop);
						break;
					case "Sorting":
						_Sorting = new Sorting(r, this, xNodeLoop);
						break;
					case "Label":
						_Label = new Expression(r, this, xNodeLoop, ExpressionType.String);
						break;
					default:
						break;
				}
			}
			if (_Grouping == null)
				OwnerReport.rl.LogError(8, "DynamicSeries requires the Grouping element.");
			if (_Label == null)
				OwnerReport.rl.LogError(8, "DynamicSeries requires the Label element.");
		}
Ejemplo n.º 8
0
 public WideReceiver(string name, int jerseyNumber, Grouping group, int age, float weight, double rating, int receptions, int receivingYards, int receivingTouchdowns)
     : base(name, jerseyNumber, group, age, weight, rating)
 {
     this.Receptions = receptions;
     this.ReceivingYards = receivingYards;
     this.ReceivingTouchdowns = receivingTouchdowns;
 }
		void ServiceDiscovered (object sender, ServiceDiscoveredEventArgs e)
		{
			var grouping = new Grouping<IService, ICharacteristic>(e.Service);
			DiscoveredServices.Add(grouping);

			e.Service.CharacteristicDiscovered += (s, evt) => CharacteristicDiscovered(s, evt, grouping);
			e.Service.DiscoverCharacteristics();
		}
Ejemplo n.º 10
0
 public Player(string name, int jerseyNumber, Grouping group, int age, float weight, double rating)
 {
     this.Name = name;
     this.JerseyNumber = jerseyNumber;
     this.Group = group;
     this.Age = age;
     this.Weight = weight;
     this.Rating = rating;
 }
Ejemplo n.º 11
0
        /// <param name="parent">May be null.</param>
        internal GroupingTag(Grouping grouping, object parent, object group)
        {
            System.Diagnostics.Trace.Assert(grouping != null);
            System.Diagnostics.Trace.Assert(group != null);

            Grouping = grouping;
            Parent = parent;
            Group = group;
        }
Ejemplo n.º 12
0
 public bool CanHaveSameSequence(Grouping other)
 {
     return GroupId == other.GroupId &&
            IndicatorId == other.IndicatorId &&
            AgeId == other.AgeId &&
            SexId == other.SexId &&
            AreaTypeId == other.AreaTypeId &&
            YearRange == other.YearRange;
 }
Ejemplo n.º 13
0
 protected static Group GetGroupFor(Grouping grouping, Search search, Grouping subgrouping)
 {
     if (grouping is FolderGrouping)
         return new FolderGroup(search, grouping);
     else if (subgrouping == null)
         return new LeafGroup(search);
     else
         return new NodeGroup(search, subgrouping);
 }
Ejemplo n.º 14
0
 public Quarterback(string name, int jerseyNumber, Grouping group, int age, float weight, double rating, int attemptedPasses, int completedPasses, int touchdowns, int interceptions, int passingYards)
     : base(name, jerseyNumber, group, age, weight, rating)
 {
     this.AttemptedPasses = attemptedPasses;
     this.CompletedPasses = completedPasses;
     this.TouchdownPasses = touchdowns;
     this.Interceptions = interceptions;
     this.PassingYards = passingYards;
     GetPassingPercentage(completedPasses, attemptedPasses);
     GetPassingRate(completedPasses, attemptedPasses, touchdowns, passingYards, interceptions);
 }
Ejemplo n.º 15
0
        public virtual IAcceptGroups Add(Grouping grouping, Object group, int indent)
        {
            if (group == null)
                return null;

            bool? expandNode = ShouldExpandNode(group);
            VirtualTreeNode node = AddNode(index, grouping, group);
            index++;

            return newAcceptor(node, expandNode);
        }
Ejemplo n.º 16
0
 /// <summary>
 /// This eventhandler handles the OnServerValidate event fired from the "DupeValidator" object.
 /// It checks the text input into the txtName control and determines if a group by that name already exists
 /// </summary>
 /// <param name="source">The object that fired this event</param>
 /// <param name="args">ServerValidateEventArgs passed to the eventhandler</param>
 protected void CheckForDuplicateGroupName(object source, ServerValidateEventArgs args)
 {
     if (string.IsNullOrWhiteSpace(txtName.Text))
     {
         args.IsValid = true;
     }
     else
     {
         var grouping = new Grouping(_environmentParametersViewModel);
         args.IsValid = !grouping.GetDuplicateExists(txtName.Text);
     }
 }
Ejemplo n.º 17
0
        public IAcceptGroups Add(Grouping grouping, Object group, int indent)
        {
            if (group == null)
                return null;

            VirtualTreeNode node = new VirtualTreeNode(group.ToString());
            node.Tag = group;
            parent.Nodes.Insert(index, node);
            index++;

            return new TreeNodeGroupAcceptor(node, null);
        }
		public TrackNodeCurve (CubicBezier cubicBezier, TrackSegmentModify segmentModify,Grouping grouping)
		{
			this.Group = grouping;
			this.cubicBezier = cubicBezier;
			this.SegmentModify = segmentModify;


			P0 = AddTrackCurveNode ( SegmentModify.TrackSegment.transform.TransformPoint (cubicBezier.p0),TrackNode.NodeType.PO );
			P1 = AddTrackCurveNode (SegmentModify.TrackSegment.transform.TransformPoint (cubicBezier.p1), TrackNode.NodeType.P1);
			P2 = AddTrackCurveNode (SegmentModify.TrackSegment.transform.TransformPoint (cubicBezier.p2),TrackNode.NodeType.P2);
			P3 = AddTrackCurveNode (SegmentModify.TrackSegment.transform.TransformPoint (cubicBezier.p3),TrackNode.NodeType.P3);
			if ((grouping == Grouping.End || grouping == Grouping.Both) && SegmentModify.GetNextSegment(true) == null) {
				ExtrudeNode = AddExtrudeNode (SegmentModify.TrackSegment.transform.TransformPoint (cubicBezier.p3) + SegmentModify.TrackSegment.getTangentPoint(1f)*.3f);
			}
		}
Ejemplo n.º 19
0
		string _ExprName;			// name of the expression; this isn't always set

		public NameLookup(IDictionary f, IDictionary p, IDictionary r, 
			IDictionary gbl, IDictionary u, IDictionary ascope, 
			Grouping ag, Matrix mt, CodeModules cm, Classes i, DataSetsDefn ds, Type ct)
		{
			fields=f;
			parameters=p;
			reportitems=r;
			globals=gbl;
			user=u;
			aggrScope = ascope;
			g=ag;
			m = mt;
			cms = cm;
			instances = i;
			dsets = ds;
			codeType = ct;
		}
Ejemplo n.º 20
0
        protected void Save(object sender, EventArgs e)
        {
            if (!Page.IsValid) return;

            _groupViewModel = GetGroupViewModel();
            var groupViewModel = new GroupViewModel
            {
                DisplayName = txtName.Text,
                Description = txtDescription.Text,
                VisibilityType = _groupViewModel.VisibilityType
            };

            var grouping = new Grouping(_environmentParametersViewModel);
            Guid roleId = grouping.CopyGroup(groupViewModel, SessionObject.LoggedInUser.School, RoleId, _rolePortalId);
            string script = string.Format("CloseDialog('{0}');", roleId.ToString());
            ScriptManager.RegisterStartupScript(Page, typeof(Page), "closeScript", script, true);
        }
Ejemplo n.º 21
0
		Visibility _Visibility;	// Indicates if all of the dynamic rows for this grouping
							// should be hidden and replaced with a subtotal row for
							// this grouping scope		

		public DynamicRows(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p)
		{
			_Grouping=null;
			_Sorting=null;
			_Subtotal=null;
			_ReportItems=null;
			_Visibility=null;
			// Run thru the attributes
			//			foreach(XmlAttribute xAttr in xNode.Attributes)
			//			{
			//			}

			// Loop thru all the child nodes
			foreach(XmlNode xNodeLoop in xNode.ChildNodes)
			{
				if (xNodeLoop.NodeType != XmlNodeType.Element)
					continue;
				switch (xNodeLoop.Name)
				{
					case "Grouping":
						_Grouping = new Grouping(r, this, xNodeLoop);
						break;
					case "Sorting":
						_Sorting = new Sorting(r, this, xNodeLoop);
						break;
					case "Subtotal":
						_Subtotal = new Subtotal(r, this, xNodeLoop);
						break;
					case "ReportItems":
						_ReportItems = new ReportItems(r, this, xNodeLoop);
						break;
					case "Visibility":
						_Visibility = new Visibility(r, this, xNodeLoop);
						break;
					default:	
						// don't know this element - log it
						OwnerReport.rl.LogError(4, "Unknown DynamicRow element '" + xNodeLoop.Name + "' ignored.");
						break;
				}
			}
			if (_Grouping == null)
				OwnerReport.rl.LogError(8, "DynamicRows requires the Grouping element.");
			if (_ReportItems == null || _ReportItems.Items.Count != 1)
				OwnerReport.rl.LogError(8, "DynamicRows requires the ReportItems element defined with exactly one report item.");
		}
Ejemplo n.º 22
0
		List<Textbox> _GrowList;	// list of TextBox's that need to be checked for growth

		public List(ReportDefn r, ReportLink p, XmlNode xNode):base(r,p,xNode)
		{
			_Grouping=null;
			_Sorting=null;
			_ReportItems=null;
			_DataInstanceName="Item";
			_DataInstanceElementOutput=DataInstanceElementOutputEnum.Output;

			// Loop thru all the child nodes
			foreach(XmlNode xNodeLoop in xNode.ChildNodes)
			{
				if (xNodeLoop.NodeType != XmlNodeType.Element)
					continue;
				switch (xNodeLoop.Name)
				{
					case "Grouping":
						_Grouping = new Grouping(r, this, xNodeLoop);
						break;
					case "Sorting":
						_Sorting = new Sorting(r, this, xNodeLoop);
						break;
					case "ReportItems":
						_ReportItems = new ReportItems(r, this, xNodeLoop);
						break;
					case "DataInstanceName":
						_DataInstanceName = xNodeLoop.InnerText;
						break;
					case "DataInstanceElementOutput":
						_DataInstanceElementOutput = Oranikle.Report.Engine.DataInstanceElementOutput.GetStyle(xNodeLoop.InnerText, OwnerReport.rl);
						break;
					default:	
						if (DataRegionElement(xNodeLoop))	// try at DataRegion level
							break;
						// don't know this element - log it
						OwnerReport.rl.LogError(4, "Unknown List element '" + xNodeLoop.Name + "' ignored.");
						break;
				}
			}
			DataRegionFinish();			// Tidy up the DataRegion
		}
Ejemplo n.º 23
0
		Textbox _ToggleTextbox;	//  resolved TextBox for toggling visibility
	
		public TableGroup(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p)
		{
			_Grouping=null;
			_Sorting=null;
			_Header=null;
			_Footer=null;
			_Visibility=null;
			_ToggleTextbox=null;

			// Loop thru all the child nodes
			foreach(XmlNode xNodeLoop in xNode.ChildNodes)
			{
				if (xNodeLoop.NodeType != XmlNodeType.Element)
					continue;
				switch (xNodeLoop.Name)
				{
					case "Grouping":
						_Grouping = new Grouping(r, this, xNodeLoop);
						break;
					case "Sorting":
						_Sorting = new Sorting(r, this, xNodeLoop);
						break;
					case "Header":
						_Header = new Header(r, this, xNodeLoop);
						break;
					case "Footer":
						_Footer = new Footer(r, this, xNodeLoop);
						break;
					case "Visibility":
						_Visibility = new Visibility(r, this, xNodeLoop);
						break;
					default:	
						// don't know this element - log it
						OwnerReport.rl.LogError(4, "Unknown TableGroup element '" + xNodeLoop.Name + "' ignored.");
						break;
				}
			}
			if (_Grouping == null)
				OwnerReport.rl.LogError(8, "TableGroup requires the Grouping element.");
		}
Ejemplo n.º 24
0
        public IAcceptGroups Add(Grouping grouping, object group, int indent)
        {
            XmlNode child = parent.ChildNodes[i];
            Assert.IsNotNull(child, "Too many results under " + parent.OuterXml + " in the search '" + search.Name + "'");

            IXenObject o = group as IXenObject;
            XmlAttribute opaqueref = child.Attributes["opaqueref"];
            XmlAttribute toString = child.Attributes["ToString"];
            if (o != null)
            {
                Assert.IsNotNull(opaqueref, "Expected group " + (toString == null ? "" : toString.Value) + ", found resource " + o.opaque_ref + " in the search '" + search.Name + "'");
                Assert.AreEqual(opaqueref.Value, o.opaque_ref, "Wrong resource found in the search '" + search.Name + "'");
            }
            else
            {
                string expected = grouping.GetGroupName(group);
                Assert.IsNotNull(toString, "Expected resource " + (opaqueref == null ? "" : opaqueref.Value) + ", found group " + expected + " in the search '" + search.Name + "'");
                Assert.AreEqual(toString.Value, expected, "Wrong group found in the search '" + search.Name + "'");
            }

            ++i;
            return new ComparerAdapter(search, child);
        }
Ejemplo n.º 25
0
		Textbox _ToggleTextbox;	//  resolved TextBox for toggling visibility
	
		public Details(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p)
		{
			_TableRows=null;
			_Grouping=null;
			_Sorting=null;
			_Visibility=null;
			_ToggleTextbox = null;

			// Loop thru all the child nodes
			foreach(XmlNode xNodeLoop in xNode.ChildNodes)
			{
				if (xNodeLoop.NodeType != XmlNodeType.Element)
					continue;
				switch (xNodeLoop.Name)
				{
					case "TableRows":
						_TableRows = new TableRows(r, this, xNodeLoop);
						break;
					case "Grouping":
						_Grouping = new Grouping(r, this, xNodeLoop);
						break;
					case "Sorting":
						_Sorting = new Sorting(r, this, xNodeLoop);
						break;
					case "Visibility":
						_Visibility = new Visibility(r, this, xNodeLoop);
						break;
					default:
						// don't know this element - log it
						OwnerReport.rl.LogError(4, "Unknown Details element " + xNodeLoop.Name + " ignored.");
						break;
				}
			}
			if (_TableRows == null)
				OwnerReport.rl.LogError(8, "Details requires the TableRows element.");
		}
Ejemplo n.º 26
0
        public IAcceptGroups Add(Grouping grouping, object group, int indent)
        {
            IXenObject o = group as IXenObject;
            if (o != null)
            {
                XmlElement resultElement = doc.CreateElement("IXenObject");
                parent.AppendChild(resultElement);
                XmlAttribute uuidAttr = doc.CreateAttribute("opaqueref");
                uuidAttr.Value = (String)o.opaque_ref;
                resultElement.Attributes.Append(uuidAttr);

                return new XmlResultsAdapter(doc, resultElement);
            }
            else
            {
                XmlElement resultElement = doc.CreateElement("Object");
                parent.AppendChild(resultElement);
                XmlAttribute uuidAttr = doc.CreateAttribute("ToString");
                uuidAttr.Value = group.ToString();
                resultElement.Attributes.Append(uuidAttr);

                return new XmlResultsAdapter(doc, resultElement);
            }
        }
Ejemplo n.º 27
0
        /// <summary>
        /// Convert the condition JSON structure to a pretty-printed string
        /// </summary>
        /// <param name="cond">The condition JSON structure </param>
        /// <param name="parenGrouping">The internal grouping used for the parenthesis</param>
        /// <returns>The pretty-printed string</returns>
        static string ConditionToString(IReadOnlyDictionary <string, object> cond, out Grouping parenGrouping)
        {
            parenGrouping = Grouping.none;

            // get the conditionType against which we'll cross reference everything
            if (!cond.TryGetValue(k_conditionType, out var _conditionType))
            {
                // Missing condition type
                return(null);
            }
            var conditionType = (string)_conditionType;

            // Try the simple compounds
            if ("Compound" == conditionType)
            {
                // not, and, or
                if (cond.TryGetValue(k_not, out var _not))
                {
                    var s = ConditionToString((Dictionary <string, object>)_not, out var needsParen2);
                    if (Grouping.none != needsParen2)
                    {
                        s = "(" + s + ")";
                    }
                    return("not " + s);
                }
                if (cond.TryGetValue(k_and, out var _and))
                {
                    parenGrouping = Grouping.and;
                    return(ExprJoin("&&", (ICollection <object>)_and, Grouping.and));
                }
                if (cond.TryGetValue("or", out var _or))
                {
                    parenGrouping = Grouping.or;
                    return(ExprJoin("||", (ICollection <object>)_or, Grouping.or));
                }
                return("???");
            }

            // Handle emotion dimensions
            if ("Emotion" == conditionType)
            {
                parenGrouping = Grouping.comparison;
                return(cond[k_emotion] + " >= " + cond["min"]);
            }

            // Handle timers
            if ("BehaviorTimer" == conditionType)
            {
                return("Timer " + cond["timerName"] + " expired" + ConditionParams(cond, new string[] { "cooldown_s" }));
            }
            if ("TimedDedup" == conditionType)
            {
                return("Timer Dedup " + ConditionParams(cond, new string[] { "dedupInterval_ms" }) +
                       "{" + ConditionToString((Dictionary <string, object>)cond["subCondition"], out _) + "}");
            }

            // Handle on / off treads
            if ("OffTreadsState" == conditionType)
            {
                var targetState = (string)cond["targetState"];
                var s           = Localized(targetState);

                if (null == s)
                {
                    s = Localized("OffTreads");
                }
                return(s + ConditionParams(cond, new string[] { "minTimeSinceChange_ms", "maxTimeSinceChange_ms" }));
            }

            // Handle battery level
            if ("BatteryLevel" == conditionType)
            {
                var targetBatteryLevel = (string)cond["targetBatteryLevel"];
                return(string.Format(Localized(conditionType), targetBatteryLevel));
            }

            // Handle being held
            if ("BeingHeld" == conditionType)
            {
                return((bool)cond["shouldBeHeld"] ? "being held" : "not being held");
            }
            if ("RobotHeldInPalm" == conditionType)
            {
                var s = (bool)cond["shouldBeHeldInPalm"] ? "being held in palm" : "not being held in palm";
                return(s + ConditionParams(cond, new string[] { "minDuration_s" }));
            }

            // Handle feature gate
            if ("FeatureGate" == conditionType)
            {
                var feature  = (string)cond["feature"];
                var expected = true;
                if (cond.TryGetValue("expected", out var _expected))
                {
                    expected = (bool)_expected;
                }
                return($"{feature} is " + (expected ? "enabled" : "disabled"));
            }
            if ("TrueCondition" == conditionType)
            {
                return("true");
            }

            // Look up the short description for the condition type
            var desc = Localized(conditionType);

            // Look up the parameters and add them i
            var type2keys = conditionSchema.type2keys;

            if (type2keys.TryGetValue(conditionType, out var _acceptableKeys))
            {
                // Append the parameters to the condition
                desc += ConditionParams(cond, (ICollection <object>)_acceptableKeys);
            }

            // Return the result
            return(desc);
        }
 public TypeItem(Type type, Grouping grouping)
 {
     FullTypeName = type.FullName ?? string.Empty;
     Type         = type;
     Path         = TypeNameFormatter.Format(Type, FullTypeName, grouping);
 }
Ejemplo n.º 29
0
 public override bool ForGrouping(Grouping grouping)
 {
     return(grouping is AllCustomFieldsGrouping);
 }
Ejemplo n.º 30
0
 void CharacteristicDiscovered(object sender, CharacteristicDiscoveredEventArgs e, Grouping <IService, ICharacteristic> grouping)
 {
     grouping.Add(e.Characteristic);
 }
Ejemplo n.º 31
0
 public Object visitGroupingExpr(Grouping expr)
 {
     resolve(expr.expression);
     return(null);
 }
Ejemplo n.º 32
0
        public void ApplyTest2()
        {
            DataTable input = new DataTable("Sample data");

            input.Columns.Add("Age", typeof(int));
            input.Columns.Add("Classification", typeof(string));

            for (int i = 0; i < 80; i++)
            {
                input.Rows.Add(i, 0);
            }

            for (int i = 0; i < 20; i++)
            {
                input.Rows.Add(i, 1);
            }

            {
                Grouping target = new Grouping();

                target.Proportion = 0.2;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(20, a.Length);
                Assert.AreEqual(80, b.Length);
            }


            {
                Grouping target = new Grouping();

                target.Proportion = 0.5;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(50, a.Length);
                Assert.AreEqual(50, b.Length);
            }

            {
                Grouping target = new Grouping();

                target.Columns.Add(new Grouping.Options("Classification"));

                target.Proportion = 0.5;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(50, a.Length);
                Assert.AreEqual(50, b.Length);

                DataRow[] a0 = actual.Select("Group = 0 AND Classification = 0");
                DataRow[] a1 = actual.Select("Group = 0 AND Classification = 1");
                DataRow[] b0 = actual.Select("Group = 1 AND Classification = 0");
                DataRow[] b1 = actual.Select("Group = 1 AND Classification = 1");

                Assert.AreEqual(40, a0.Length);
                Assert.AreEqual(10, a1.Length);
                Assert.AreEqual(40, b0.Length);
                Assert.AreEqual(10, b1.Length);
            }

            {
                Grouping target = new Grouping();

                target.Columns.Add(new Grouping.Options("Classification"));

                target.Proportion = 0.6;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(60, a.Length);
                Assert.AreEqual(40, b.Length);

                DataRow[] a0 = actual.Select("Group = 0 AND Classification = 0");
                DataRow[] a1 = actual.Select("Group = 0 AND Classification = 1");
                DataRow[] b0 = actual.Select("Group = 1 AND Classification = 0");
                DataRow[] b1 = actual.Select("Group = 1 AND Classification = 1");

                Assert.AreEqual(48, a0.Length);
                Assert.AreEqual(12, a1.Length);
                Assert.AreEqual(32, b0.Length);
                Assert.AreEqual(8, b1.Length);
            }
        }
Ejemplo n.º 33
0
        private void CreateTable_NativeObjects(List <APITable> tables)
        {
            APITable table = new APITable(this, m_Snapshot, m_Snapshot.nativeObjects.dataSet);

            table.AddColumn(
                new MetaColumn("name", "name", typeof(string), false, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn(m_Snapshot.nativeObjects.objectName)
                );
            table.AddColumn(
                new MetaColumn("instanceId", "instanceId", typeof(int), true, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn(m_Snapshot.nativeObjects.instanceId)
                );
            table.AddColumn(
                new MetaColumn("size", "size", typeof(ulong), false, Grouping.groupByDuplicate
                               , Grouping.GetMergeAlgo(Grouping.MergeAlgo.sum, typeof(ulong)), "size")
                , DataArray.MakeColumn(m_Snapshot.nativeObjects.size)
                );

            table.AddColumn(
                new MetaColumn("nativeObjectAddress", "nativeObjectAddress", typeof(ulong), false, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn(m_Snapshot.nativeObjects.nativeObjectAddress)
                );
            table.AddColumn(
                new MetaColumn("rootReferenceId", "rootReferenceId", typeof(long), false, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn(m_Snapshot.nativeObjects.rootReferenceId)
                );

            table.AddColumn(
                new MetaColumn("nativeTypeArrayIndex", "nativeTypeArrayIndex", typeof(int), false, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn(m_Snapshot.nativeObjects.nativeTypeArrayIndex)
                );

            table.AddColumn(
                new MetaColumn("isPersistent", "isPersistent", typeof(bool), false, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.flags, (a) => HasBit(a, ObjectFlags.IsPersistent), (ref ObjectFlags o, bool v) => SetBit(ref o, ObjectFlags.IsPersistent, v))
                );
            table.AddColumn(
                new MetaColumn("isDontDestroyOnLoad", "isDontDestroyOnLoad", typeof(bool), false, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.flags, (a) => HasBit(a, ObjectFlags.IsDontDestroyOnLoad), (ref ObjectFlags o, bool v) => SetBit(ref o, ObjectFlags.IsDontDestroyOnLoad, v))
                );
            table.AddColumn(
                new MetaColumn("isManager", "isManager", typeof(bool), false, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.flags, (a) => HasBit(a, ObjectFlags.IsManager), (ref ObjectFlags o, bool v) => SetBit(ref o, ObjectFlags.IsManager, v))
                );

            table.AddColumn(
                new MetaColumn("HideInHierarchy", "HideInHierarchy", typeof(bool), false, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.hideFlags, (a) => HasBit(a, HideFlags.HideInHierarchy), (ref HideFlags o, bool v) => SetBit(ref o, HideFlags.HideInHierarchy, v))
                );
            table.AddColumn(
                new MetaColumn("HideInInspector", "HideInInspector", typeof(bool), false, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.hideFlags, (a) => HasBit(a, HideFlags.HideInInspector), (ref HideFlags o, bool v) => SetBit(ref o, HideFlags.HideInInspector, v))
                );
            table.AddColumn(
                new MetaColumn("DontSaveInEditor", "DontSaveInEditor", typeof(bool), false, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.hideFlags, (a) => HasBit(a, HideFlags.DontSaveInEditor), (ref HideFlags o, bool v) => SetBit(ref o, HideFlags.DontSaveInEditor, v))
                );
            table.AddColumn(
                new MetaColumn("NotEditable", "NotEditable", typeof(bool), false, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.hideFlags, (a) => HasBit(a, HideFlags.NotEditable), (ref HideFlags o, bool v) => SetBit(ref o, HideFlags.NotEditable, v))
                );
            table.AddColumn(
                new MetaColumn("DontSaveInBuild", "DontSaveInBuild", typeof(bool), false, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.hideFlags, (a) => HasBit(a, HideFlags.DontSaveInBuild), (ref HideFlags o, bool v) => SetBit(ref o, HideFlags.DontSaveInBuild, v))
                );
            table.AddColumn(
                new MetaColumn("DontUnloadUnusedAsset", "DontUnloadUnusedAsset", typeof(bool), false, Grouping.groupByDuplicate, null)
                , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.hideFlags, (a) => HasBit(a, HideFlags.DontUnloadUnusedAsset), (ref HideFlags o, bool v) => SetBit(ref o, HideFlags.DontUnloadUnusedAsset, v))
                );

            table.CreateTable(kPrefixTableName + "NativeObject", kPrefixTableDisplayName + "Native Object");
            AddTable(table, tables);
        }
Ejemplo n.º 34
0
 public override Grouping GetGroup(Grouping subgrouping)
 {
     return(new FolderGrouping(subgrouping));
 }
Ejemplo n.º 35
0
 public override bool ForGrouping(Grouping grouping)
 {
     return(grouping is FolderGrouping);
 }
Ejemplo n.º 36
0
 public abstract Grouping GetGroup(Grouping subgrouping);
Ejemplo n.º 37
0
 public abstract bool ForGrouping(Grouping grouping);
Ejemplo n.º 38
0
        private void test(int[] orderNums)
        {
            string testNum  = string.Empty;
            int    index    = 0;
            int    orderNum = 0;
            int    indexOld = 0;
            int    indexNew = 0;

            ObservableCollection <Item> items;
            Grouping <Item, int?>       grouping;

            try
            {
                trace(testNum = "1", orderNums, index, orderNum, indexOld, indexNew);
                items         = getObservableCollection(orderNums);
                grouping      = items.Grouping(i => i.Key).IsNeededFor(consumer);
                grouping.ValidateConsistency();
                consumer.Dispose();

                for (index = 0; index < orderNums.Length; index++)
                {
                    trace(testNum = "2", orderNums, index, orderNum, indexOld, indexNew);
                    items         = getObservableCollection(orderNums);
                    Grouping <Item, int?> grouping1 = items.Grouping(i => i.Key).IsNeededFor(consumer);
                    items.RemoveAt(index);
                    grouping1.ValidateConsistency();
                    consumer.Dispose();
                }

                for (index = 0; index <= orderNums.Length; index++)
                {
                    for (orderNum = 0; orderNum <= orderNums.Length; orderNum++)
                    {
                        trace(testNum = "8", orderNums, index, orderNum, indexOld, indexNew);
                        items         = getObservableCollection(orderNums);
                        Grouping <Item, int?> grouping1 = items.Grouping(i => i.Key).IsNeededFor(consumer);
                        items.Insert(index, new Item(orderNum));
                        grouping1.ValidateConsistency();
                        consumer.Dispose();
                    }
                }

                for (index = 0; index < orderNums.Length; index++)
                {
                    trace(testNum = "6", orderNums, index, orderNum, indexOld, indexNew);
                    items         = getObservableCollection(orderNums);
                    Grouping <Item, int?> grouping3 = items.Grouping(i => i.Key).IsNeededFor(consumer);
                    items[index] = new Item(null);
                    grouping3.ValidateConsistency();
                    consumer.Dispose();

                    for (orderNum = -1; orderNum <= orderNums.Length; orderNum++)
                    {
                        trace(testNum = "3", orderNums, index, orderNum, indexOld, indexNew);
                        items         = getObservableCollection(orderNums);
                        Grouping <Item, int?> grouping2 = items.Grouping(i => i.Key).IsNeededFor(consumer);
                        items[index] = new Item(orderNum);
                        grouping2.ValidateConsistency();
                        consumer.Dispose();
                    }
                }

                for (index = 0; index < orderNums.Length; index++)
                {
                    trace(testNum = "4", orderNums, index, orderNum, indexOld, indexNew);
                    items         = getObservableCollection(orderNums);
                    Grouping <Item, int?> grouping1 = items.Grouping(i => i.Key).IsNeededFor(consumer);
                    items[index].Key = null;
                    grouping1.ValidateConsistency();
                    consumer.Dispose();

                    for (orderNum = -1; orderNum <= orderNums.Length; orderNum++)
                    {
                        trace(testNum = "5", orderNums, index, orderNum, indexOld, indexNew);
                        items         = getObservableCollection(orderNums);
                        Grouping <Item, int?> grouping2 = items.Grouping(i => i.Key).IsNeededFor(consumer);
                        items[index].Key = orderNum;
                        grouping2.ValidateConsistency();
                        consumer.Dispose();
                    }
                }
                for (indexOld = 0; indexOld < orderNums.Length; indexOld++)
                {
                    for (indexNew = 0; indexNew < orderNums.Length; indexNew++)
                    {
                        trace(testNum = "7", orderNums, index, orderNum, indexOld, indexNew);
                        items         = getObservableCollection(orderNums);
                        Grouping <Item, int?> grouping2 = items.Grouping(i => i.Key).IsNeededFor(consumer);
                        items.Move(indexOld, indexNew);
                        grouping2.ValidateConsistency();
                        consumer.Dispose();
                    }
                }
            }
            catch (Exception e)
            {
                string traceString = getTraceString(testNum, orderNums, index, orderNum, indexOld, indexNew);
                _textFileOutputLog.AppentLine(traceString);
                _textFileOutputLog.AppentLine(e.Message);
                _textFileOutputLog.AppentLine(e.StackTrace);
                throw new Exception(traceString, e);
            }
        }
Ejemplo n.º 39
0
        public void ApplyTest2()
        {

            DataTable input = new DataTable("Sample data");

            input.Columns.Add("Age", typeof(int));
            input.Columns.Add("Classification", typeof(string));

            for (int i = 0; i < 80; i++)
                input.Rows.Add(i, 0);

            for (int i = 0; i < 20; i++)
                input.Rows.Add(i, 1);

            {
                Grouping target = new Grouping();

                target.Proportion = 0.2;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(20, a.Length);
                Assert.AreEqual(80, b.Length);
            }


            {
                Grouping target = new Grouping();

                target.Proportion = 0.5;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(50, a.Length);
                Assert.AreEqual(50, b.Length);
            }

            {
                Grouping target = new Grouping();

                target.Columns.Add(new Grouping.Options("Classification"));

                target.Proportion = 0.5;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(50, a.Length);
                Assert.AreEqual(50, b.Length);

                DataRow[] a0 = actual.Select("Group = 0 AND Classification = 0");
                DataRow[] a1 = actual.Select("Group = 0 AND Classification = 1");
                DataRow[] b0 = actual.Select("Group = 1 AND Classification = 0");
                DataRow[] b1 = actual.Select("Group = 1 AND Classification = 1");

                Assert.AreEqual(40, a0.Length);
                Assert.AreEqual(10, a1.Length);
                Assert.AreEqual(40, b0.Length);
                Assert.AreEqual(10, b1.Length);
            }

            {
                Grouping target = new Grouping();

                target.Columns.Add(new Grouping.Options("Classification"));

                target.Proportion = 0.6;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(60, a.Length);
                Assert.AreEqual(40, b.Length);

                DataRow[] a0 = actual.Select("Group = 0 AND Classification = 0");
                DataRow[] a1 = actual.Select("Group = 0 AND Classification = 1");
                DataRow[] b0 = actual.Select("Group = 1 AND Classification = 0");
                DataRow[] b1 = actual.Select("Group = 1 AND Classification = 1");

                Assert.AreEqual(48, a0.Length);
                Assert.AreEqual(12, a1.Length);
                Assert.AreEqual(32, b0.Length);
                Assert.AreEqual(8, b1.Length);
            }


        }
Ejemplo n.º 40
0
 public GroupKey(Grouping grouping, object key)
 {
     this.grouping = grouping;
     this.key = key;
 }
Ejemplo n.º 41
0
        public JsonResult GetNavWithCountsAndUser(int appuserid)
        {
            //IQueryable<BwqNavData> barnav = _context.BwqNavData.FromSql(@"usp_BWQGetNavigation_sel")
            IQueryable <BwqNavDataWithUser> barnavall = _context.BwqNavDataWithUser.AsNoTracking().FromSql(@"usp_BWQGetNavigation_sel")
                                                        .Select(navdata => new BwqNavDataWithUser
            {
                CountryID              = navdata.CountryID,
                CountryName            = navdata.CountryName,
                FunctionTypeID         = navdata.FunctionTypeID,
                FunctionTypeName       = navdata.FunctionTypeName,
                MMMEntityID            = navdata.MMMEntityID,
                BWQID                  = navdata.BWQID,
                BatchName              = navdata.BatchName,
                StatusCollectionItemID = navdata.StatusCollectionItemID,
                StartDateUTC           = navdata.StartDateUTC,
                AppUserId              = navdata.AppUserId,
                Aging                  = navdata.Aging
            });

            //  My Work
            #region My Work
            IQueryable <BwqNavDataWithUser> barnavuser = _context.BwqNavDataWithUser.AsNoTracking().FromSql($"usp_BWQGetNavigationWithUser_sel {appuserid} ")
                                                         .Select(navdata => new BwqNavDataWithUser
            {
                CountryID              = navdata.CountryID,
                CountryName            = navdata.CountryName,
                FunctionTypeID         = navdata.FunctionTypeID,
                FunctionTypeName       = navdata.FunctionTypeName,
                MMMEntityID            = navdata.MMMEntityID,
                BWQID                  = navdata.BWQID,
                BatchName              = navdata.BatchName,
                StatusCollectionItemID = navdata.StatusCollectionItemID,
                StartDateUTC           = navdata.StartDateUTC,
                AppUserId              = navdata.AppUserId,
                Aging                  = navdata.Aging
            });

            /*
             * IQueryable<BwqNavDataWithUser> barnavuser = (from withuser in barnavall
             *                                           where withuser.AppUserId == appuserid
             *                                           select withuser);
             */

            // By Category
            #region By Category
            var funcNavData = (from byfunction in barnavuser
                               group byfunction by byfunction.FunctionTypeName into Grouping
                               //orderby Grouping.Key
                               select new
            {
                label = Grouping.Key + " (" + Grouping.Count() + ")",
                data = Grouping.Key,
                children = from subg in Grouping
                           group subg by subg.CountryName into SubGrouping
                           //orderby SubGrouping.Key
                           select new
                {
                    label = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    data = new
                    {
                        countryName = SubGrouping.Key,
                        categoryName = Grouping.Key,
                        batchName = "",
                        aging = 1,
                        appUserID = appuserid
                    }
                }
            });
            #endregion
            //By Country
            #region By Country
            var counNavData = (from bycountry in barnavuser
                               group bycountry by bycountry.CountryName into Grouping
                               //orderby Grouping.Key
                               select new
            {
                label = Grouping.Key + " (" + Grouping.Count() + ")",
                children = (from subg in Grouping
                            group subg by subg.FunctionTypeName into SubGrouping
                            //orderby SubGrouping.Key
                            select new
                {
                    label = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    data = new
                    {
                        countryName = Grouping.Key,
                        categoryName = SubGrouping.Key,
                        batchName = "",
                        aging = 1,
                        appUserID = appuserid
                    }
                })
            });
            #endregion
            // By Batch
            #region By Batch
            var bactNavData = (from byfunction in barnavuser
                               group byfunction by byfunction.BatchName into Grouping
                               //orderby Grouping.Key
                               select new
            {
                label = Grouping.Key + " (" + Grouping.Count() + ")",
                data = new
                {
                    countryName = "",
                    categoryName = "",
                    batchName = Grouping.Key,
                    aging = 1,
                    appUserID = appuserid
                }
            });
            #endregion
            //By Aging
            #region By Aging

            var agingData = (from byaging in barnavuser
                             group byaging by byaging.Aging into Grouping
                             //orderby Grouping.Key
                             select new
            {
                label = ((Grouping.Key == 1) ? "11+ days" : "1-10 days") + " (" + Grouping.Count() + ")",
                data = (Grouping.Key == 1) ? "11+ days" : "1-10 days",
                children = from subg in Grouping
                           group subg by subg.CountryName into SubGrouping
                           //orderby SubGrouping.Key
                           select new
                {
                    label = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    data = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    children = from subsubg in SubGrouping
                               group subsubg by subsubg.FunctionTypeName into SubSubGrouping
                               //orderby SubSubGrouping.Key
                               select new
                    {
                        label = SubSubGrouping.Key + " (" + SubSubGrouping.Count() + ")",
                        data = new
                        {
                            countryName = SubGrouping.Key,
                            categoryName = SubSubGrouping.Key,
                            batchName = "",
                            aging = Grouping.Key,
                            appUserID = appuserid
                        }
                    }
                }
            });


            #endregion

            var userdata1 = JObject.FromObject(new { label = "Batch", data = "Batch branch", children = bactNavData });
            var userdata2 = JObject.FromObject(new { label = "Country", data = "Country branch", children = counNavData });
            var userdata3 = JObject.FromObject(new { label = "Category", data = "Category branch", children = funcNavData });
            var userdata4 = JObject.FromObject(new { label = "Aging", data = "Aging branch", children = agingData });

            var alluserdata = JObject.FromObject(new { label = "My Work", children = new JArray(userdata4, userdata1, userdata2, userdata3) });

            #endregion

            // All
            #region all BWQ
            // By Category
            #region By Category
            var funcNavDataAll = (from byfunction in barnavall
                                  group byfunction by byfunction.FunctionTypeName into Grouping
                                  //orderby Grouping.Key
                                  select new
            {
                label = Grouping.Key + " (" + Grouping.Count() + ")",
                data = Grouping.Key,
                children = from subg in Grouping
                           group subg by subg.CountryName into SubGrouping
                           //orderby SubGrouping.Key
                           select new
                {
                    label = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    data = new
                    {
                        countryName = SubGrouping.Key,
                        categoryName = Grouping.Key,
                        batchName = "",
                        aging = 1
                    }
                }
            });

            #endregion
            //By Country
            #region By Country
            var counNavDataAll = (from bycountry in barnavall
                                  group bycountry by bycountry.CountryName into Grouping
                                  //orderby Grouping.Key
                                  select new
            {
                label = Grouping.Key + " (" + Grouping.Count() + ")",
                children = (from subg in Grouping
                            group subg by subg.FunctionTypeName into SubGrouping
                            //orderby SubGrouping.Key
                            select new
                {
                    label = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    data = new
                    {
                        countryName = Grouping.Key,
                        categoryName = SubGrouping.Key,
                        batchName = "",
                        aging = 1
                    }
                })
            });

            #endregion
            // By Batch
            #region By Batch
            var bactNavDataAll = (from byfunction in barnavall
                                  group byfunction by byfunction.BatchName into Grouping
                                  //orderby Grouping.Key
                                  select new
            {
                label = Grouping.Key + " (" + Grouping.Count() + ")",
                data = new
                {
                    countryName = "",
                    categoryName = "",
                    batchName = Grouping.Key,
                    aging = 1
                }
            });

            #endregion
            //By Aging
            #region By Aging

            var agingAll = (from byaging in barnavall
                            group byaging by byaging.Aging into Grouping
                            //orderby Grouping.Key
                            select new
            {
                label = ((Grouping.Key == 1) ? "11+ days" : "1-10 days") + " (" + Grouping.Count() + ")",
                data = (Grouping.Key == 1) ? "11+ days" : "1-10 days",
                children = from subg in Grouping
                           group subg by subg.CountryName into SubGrouping
                           //orderby SubGrouping.Key
                           select new
                {
                    label = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    data = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    children = from subsubg in SubGrouping
                               group subsubg by subsubg.FunctionTypeName into SubSubGrouping
                               //orderby SubSubGrouping.Key
                               select new
                    {
                        label = SubSubGrouping.Key + " (" + SubSubGrouping.Count() + ")",
                        data = new
                        {
                            countryName = SubGrouping.Key,
                            categoryName = SubSubGrouping.Key,
                            aging = Grouping.Key
                        }
                    }
                }
            });

            #endregion

            var alldata1 = JObject.FromObject(new { label = "Batch", data = "Batch branch", children = bactNavDataAll });
            var alldata2 = JObject.FromObject(new { label = "Country", data = "Country branch", children = counNavDataAll });
            var alldata3 = JObject.FromObject(new { label = "Category", data = "Category branch", children = funcNavDataAll });
            var alldata4 = JObject.FromObject(new { label = "Aging", data = "Aging branch", children = agingAll });

            var alldata = JObject.FromObject(new { label = "All", children = new JArray(alldata4, alldata1, alldata2, alldata3) });

            #endregion
            var t = new JArray(alluserdata, alldata);

            return(Json(t));
        }
Ejemplo n.º 42
0
 public override Grouping GetGroup(Grouping subgrouping)
 {
     return(new PropertyGrouping <T>(property, subgrouping));
 }
Ejemplo n.º 43
0
 public object Visit(Grouping expr) => Evaluate(expr.Expr);
Ejemplo n.º 44
0
 public override Grouping GetGroup(Grouping subgrouping)
 {
     return(new BoolGrouping(property, subgrouping));
 }
Ejemplo n.º 45
0
        public void ApplyTest()
        {
            DataTable input = new DataTable("Sample data");

            input.Columns.Add("Age", typeof(int));
            input.Columns.Add("Classification", typeof(string));

            input.Rows.Add(10, 0);
            input.Rows.Add(7, 0);
            input.Rows.Add(4, 0);
            input.Rows.Add(21, 1);
            input.Rows.Add(27, 1);
            input.Rows.Add(12, 0);
            input.Rows.Add(79, 0);
            input.Rows.Add(40, 0);
            input.Rows.Add(30, 0);
            input.Rows.Add(32, 0);


            {
                Grouping target = new Grouping();

                target.Proportion = 0.2;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(2, a.Length);
                Assert.AreEqual(8, b.Length);
            }


            {
                Grouping target = new Grouping();

                target.Proportion = 0.5;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(5, a.Length);
                Assert.AreEqual(5, b.Length);
            }

            {
                Grouping target = new Grouping();

                target.Columns.Add(new Grouping.Options("Classification"));

                target.Proportion = 0.5;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(5, a.Length);
                Assert.AreEqual(5, b.Length);

                DataRow[] a0 = actual.Select("Group = 0 AND Classification = 0");
                DataRow[] a1 = actual.Select("Group = 0 AND Classification = 1");
                DataRow[] b0 = actual.Select("Group = 1 AND Classification = 0");
                DataRow[] b1 = actual.Select("Group = 1 AND Classification = 1");

                Assert.AreEqual(4, a0.Length);
                Assert.AreEqual(1, a1.Length);
                Assert.AreEqual(4, b0.Length);
                Assert.AreEqual(1, b1.Length);
            }
        }
Ejemplo n.º 46
0
 public string VisitGroupingExpression(Grouping expression)
 {
     return(Parenthesize("group", expression.Expression));
 }
Ejemplo n.º 47
0
 public string VisitGroupingExpression(Grouping expression) => throw new System.NotImplementedException();
        public static Task <int> ExecuteAsync(DirectoryInfo directory, Grouping grouping, string filter)
        {
            var assemblies =
                directory.EnumerateFiles("*.dll", SearchOption.AllDirectories)
                .Concat(directory.EnumerateFiles("*.exe", SearchOption.AllDirectories));

            var methods = new List <MethodILEntry>();

            foreach (var assembly in assemblies)
            {
                PEReader pe;
                using (var stream = assembly.OpenRead())
                {
                    pe = new PEReader(stream, PEStreamOptions.PrefetchEntireImage);
                }

                if (!pe.HasMetadata)
                {
                    continue;
                }

                var metadata = pe.GetMetadataReader();
                methods.AddRange(MethodILReader.ReadMethods(pe));
            }

            IEnumerable <IGrouping <string, MethodILEntry> > groups;

            switch (grouping)
            {
            case Grouping.Assembly:
            {
                groups = methods.GroupBy(m => m.AssemblyName);
                break;
            }

            case Grouping.Namespace:
            {
                groups = methods.GroupBy(m => m.NamespaceName);
                break;
            }

            case Grouping.Type:
            {
                groups = methods.GroupBy(m => m.FullyQualifiedTypeName);
                break;
            }

            case Grouping.Method:
            {
                groups = methods.GroupBy(m => $"{m.FullyQualifiedTypeName}.{m.MethodName}");
                break;
            }

            default:
            {
                throw new Exception($"Unknown grouping type: {grouping}.");
            }
            }

            if (filter != null)
            {
                groups = groups.Where(g => g.Key.StartsWith(filter));
            }

            foreach (var group in groups)
            {
                Console.WriteLine($"{group.Key}: {group.Sum(m => m.TotalSizeInBytes)} bytes");
            }

            return(Task.FromResult(0));
        }
Ejemplo n.º 49
0
        public void GroupByAdjacentlyTest()
        {
            {
                string[] source = new string[0];
                List <Grouping <string, string> > result = source.GroupByAdjacently(item => item);
                Assert.AreEqual(0, result.Count);
            }

            {
                string[] source = new string[] { "abc" };
                List <Grouping <int, string> > result = source.GroupByAdjacently(item => item.Length);
                Assert.AreEqual(1, result.Count);
                {
                    Grouping <int, string> resultItem = result[0];
                    Assert.AreEqual(3, resultItem.Key);
                    Assert.AreEqual(1, resultItem.Elements.Count);
                    Assert.AreEqual("abc", resultItem[0]);
                }
            }

            {
                string[] source = new string[] { "a", "b", "b", "c", "c", "c", "b", "b", null, null, "a" };
                List <Grouping <string, string> > result = source.GroupByAdjacently(item => item);
                Assert.AreEqual(6, result.Count);
                {
                    Grouping <string, string> resultItem = result[0];
                    Assert.AreEqual("a", resultItem.Key);
                    Assert.AreEqual(1, resultItem.Elements.Count);
                    Assert.True(resultItem.Elements.All(e => e == "a"));
                }
                {
                    Grouping <string, string> resultItem = result[1];
                    Assert.AreEqual("b", resultItem.Key);
                    Assert.AreEqual(2, resultItem.Elements.Count);
                    Assert.True(resultItem.Elements.All(e => e == "b"));
                }
                {
                    Grouping <string, string> resultItem = result[2];
                    Assert.AreEqual("c", resultItem.Key);
                    Assert.AreEqual(3, resultItem.Elements.Count);
                    Assert.True(resultItem.Elements.All(e => e == "c"));
                }
                {
                    Grouping <string, string> resultItem = result[3];
                    Assert.AreEqual("b", resultItem.Key);
                    Assert.AreEqual(2, resultItem.Elements.Count);
                    Assert.True(resultItem.Elements.All(e => e == "b"));
                }
                {
                    Grouping <string, string> resultItem = result[4];
                    Assert.AreEqual(null, resultItem.Key);
                    Assert.AreEqual(2, resultItem.Elements.Count);
                    Assert.True(resultItem.Elements.All(e => e == null));
                }
                {
                    Grouping <string, string> resultItem = result[5];
                    Assert.AreEqual("a", resultItem.Key);
                    Assert.AreEqual(1, resultItem.Elements.Count);
                    Assert.True(resultItem.Elements.All(e => e == "a"));
                }
            }
        }
Ejemplo n.º 50
0
        private IEnumerable<IGrouping<ObjectVariants, Triple<ObjectVariants,ObjectVariants,ObjectVariants>>> SPoCacheGraphs(ObjectVariants objectNode, DataSet variableDataSet)
        {
            if (variableDataSet.Any())
                if (SPoGCache.Contains(objectNode))
                    return SPoGCache.Get(objectNode);
                else
                {
                    var result = store.NamedGraphs.GetTriplesWithObjectFromGraphs(objectNode, variableDataSet).ToList();
                    SPoGCache.Add(objectNode, result);
                    foreach (var grouping in result)
                    {
                        SPogCache.Add(objectNode, grouping.Key, grouping);
                        foreach (var tripleGroup in grouping.GroupBy(triple => triple.Subject))
                        {
                            var pGroup = new Grouping<ObjectVariants, ObjectVariants>(grouping.Key,
                                tripleGroup.Select(triple => triple.Predicate));
                            sPogCache.Add(tripleGroup.Key, objectNode, grouping.Key, pGroup);

                            sPoGCache.Get(tripleGroup.Key, objectNode).Add(pGroup);
                            foreach (var p in pGroup)
                            {
                                spoGCache.Get(tripleGroup.Key, p, objectNode).Add(grouping.Key);
                                spogCache.Add(tripleGroup.Key, p, objectNode, grouping.Key, true);
                            }
                        }
                        foreach (var tripleGroup in grouping.GroupBy(triple => triple.Predicate))
                        {
                            var sGroup = new Grouping<ObjectVariants, ObjectVariants>(grouping.Key,
                                tripleGroup.Select(triple => triple.Subject));
                            SpogCache.Add(tripleGroup.Key, objectNode, grouping.Key, sGroup);
                            SpoGCache.Get(tripleGroup.Key, objectNode).Add(sGroup);
                        }
                    }
                    return result;
                }
            var res = new List<IGrouping<ObjectVariants, Triple<ObjectVariants,ObjectVariants,ObjectVariants>>>();
            var gList = new DataSet();
            foreach (var g in variableDataSet)
                if (SPogCache.Contains(objectNode, g))
                    res.Add(SPogCache.Get(objectNode, g));
                else
                    gList.Add(g);
            foreach (var gRes in store.NamedGraphs.GetTriplesWithObjectFromGraphs(objectNode, gList))
            {
                SPogCache.Add(objectNode, gRes.Key, gRes);
                res.Add(gRes);
                foreach (var tripleGroup in gRes.GroupBy(triple => triple.Subject))
                {
                    var pGroup = new Grouping<ObjectVariants, ObjectVariants>(gRes.Key,
                        tripleGroup.Select(triple => triple.Predicate));
                    sPogCache.Add(tripleGroup.Key, objectNode, gRes.Key, pGroup);

                    sPoGCache.Get(tripleGroup.Key, objectNode).Add(pGroup);
                    foreach (var p in pGroup)
                    {
                        spoGCache.Get(tripleGroup.Key, p, objectNode).Add(gRes.Key);
                        spogCache.Add(tripleGroup.Key, p, objectNode, gRes.Key, true);
                    }
                }
                foreach (var tripleGroup in gRes.GroupBy(triple => triple.Predicate))
                {
                    var sGroup = new Grouping<ObjectVariants, ObjectVariants>(gRes.Key,
                        tripleGroup.Select(triple => triple.Subject));
                    SpogCache.Add(tripleGroup.Key, objectNode, gRes.Key, sGroup);
                    SpoGCache.Get(tripleGroup.Key, objectNode).Add(sGroup);
                }
            }
            return res;
        }
Ejemplo n.º 51
0
 public override Grouping GetGroup(Grouping subgrouping)
 {
     return(new XenModelObjectPropertyGrouping <T>(property, subgrouping));
 }
 public TypeItem(Type type, Grouping grouping)
     : this(type, type.FullName ?? string.Empty, grouping)
 {
 }
Ejemplo n.º 53
0
 public override Grouping GetGroup(Grouping subgrouping)
 {
     return(new CustomFieldGrouping(definition, subgrouping));
 }
Ejemplo n.º 54
0
 public override Grouping GetGroup(Grouping subgrouping)
 {
     return(new AllCustomFieldsGrouping(subgrouping));
 }
Ejemplo n.º 55
0
        public static Node CreateNodeFromV1NodeData(V1.NodeData v1, NodeData data)
        {
            NodeDataImporter imp = null;
            Node             n   = null;

            switch (v1.Kind)
            {
            case V1.NodeKind.LOADER_GUI:
            {
                var v = new Loader();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.FILTER_GUI:
            {
                var v = new Filter();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.IMPORTSETTING_GUI:
            {
                var v = new ImportSetting();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.MODIFIER_GUI:
            {
                var v = new Modifier();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.GROUPING_GUI:
            {
                var v = new Grouping();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.PREFABBUILDER_GUI:
            {
                var v = new PrefabBuilder();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.BUNDLECONFIG_GUI:
            {
                var v = new BundleConfigurator();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.BUNDLEBUILDER_GUI:
            {
                var v = new BundleBuilder();
                imp = v;
                n   = v;
            }
            break;

            case V1.NodeKind.EXPORTER_GUI:
            {
                var v = new Exporter();
                imp = v;
                n   = v;
            }
            break;
            }

            n.Initialize(data);
            imp.Import(v1, data);

            return(n);
        }
Ejemplo n.º 56
0
 public override void VisitGrouping(Grouping grouping)
 {
     VisitExpression(grouping.InnerExpression);
 }
Ejemplo n.º 57
0
        protected Group ungrouped = null; //this is late bound

        #endregion Fields

        #region Constructors

        protected AbstractNodeGroup(Search search, Grouping grouping)
            : base(search)
        {
            this.grouped = new Dictionary<GroupKey, Group>();
            this.grouping = grouping;
        }
Ejemplo n.º 58
0
        /// <summary>
        /// BWQ Left Navigation pane
        /// SP usp_BWQGetNavigation_sel gathers information from the Editorial DB
        /// Script below groups the result BY Country, Category, Batch name and Aging
        /// All data shows all
        /// My Work shows data for the logged in Editorial user through the appuserid varible
        /// </summary>
        /// <param name="appuserid"></param>
        /// <returns></returns>
        public object GetNavCountsWithUser(int appuserid)
        {
            // All Data
            var barnavall = _context.BwqNavDataWithUser.AsNoTracking().FromSql($"usp_BWQGetNavigation_sel").ToList();

            // By Category
            #region By Category
            var funcNavDataAll = (from byfunction in barnavall
                                  group byfunction by new { byfunction.FunctionTypeName, byfunction.Aging } into Grouping
                                  select new
            {
                label = Grouping.Key.FunctionTypeName + " (" + Grouping.Count() + ")",
                //data = Grouping.Key.FunctionTypeName,
                data = new
                {
                    categoryName = Grouping.Key.FunctionTypeName,
                    aging = Grouping.Key.Aging,
                },
                children = from subg in Grouping
                           group subg by subg.CountryName into SubGrouping
                           select new
                {
                    label = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    data = new
                    {
                        countryName = SubGrouping.Key,
                        categoryName = Grouping.Key.FunctionTypeName,
                        batchName = "",
                        aging = Grouping.Key.Aging
                    }
                }
            });

            #endregion
            //By Country
            #region By Country
            var counNavDataAll = (from bycountry in barnavall
                                  group bycountry by new { bycountry.CountryName, bycountry.Aging } into Grouping
                                  select new
            {
                label = Grouping.Key.CountryName + " (" + Grouping.Count() + ")",
                data = new
                {
                    countryName = Grouping.Key.CountryName,
                    aging = Grouping.Key.Aging,
                },
                children = (from subg in Grouping
                            group subg by subg.FunctionTypeName into SubGrouping
                            select new
                {
                    label = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    data = new
                    {
                        countryName = Grouping.Key.CountryName,
                        categoryName = SubGrouping.Key,
                        batchName = "",
                        aging = Grouping.Key.Aging,
                    }
                })
            }).OrderBy(x => x.label);

            #endregion
            // By Batch
            #region By Batch
            var bactNavDataAll = (from byfunction in barnavall
                                  group byfunction by byfunction.BatchName into Grouping
                                  select new
            {
                label = Grouping.Key + " (" + Grouping.Count() + ")",
                data = new
                {
                    countryName = "",
                    categoryName = "",
                    batchName = Grouping.Key,
                    aging = 1
                }
            });

            #endregion
            //By Aging
            #region By Aging

            var agingAll = (from byaging in barnavall
                            group byaging by byaging.Aging into Grouping
                            select new
            {
                label = ((Grouping.Key == 1) ? "11+ days" : "1-10 days") + " (" + Grouping.Count() + ")",
                //data = (Grouping.Key == 1) ? "11+ days" : "1-10 days",
                children = from subg in Grouping
                           group subg by subg.CountryName into SubGrouping
                           select new
                {
                    label = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    data = new {
                        countryName = SubGrouping.Key,
                        aging = Grouping.Key,
                    },
                    //data = SubGrouping.Key + " (" + SubGrouping.Count() + ")",

                    children = from subsubg in SubGrouping
                               group subsubg by subsubg.FunctionTypeName into SubSubGrouping
                               select new
                    {
                        label = SubSubGrouping.Key + " (" + SubSubGrouping.Count() + ")",
                        data = new
                        {
                            countryName = SubGrouping.Key,
                            categoryName = SubSubGrouping.Key,
                            aging = Grouping.Key
                        }
                    }
                }
            });

            #endregion

            /*
             * var alldata1 = JObject.FromObject(new { label = "Batch", data = "Batch branch", children = bactNavDataAll });
             * var alldata2 = JObject.FromObject(new { label = "Country", data = "Country branch", children = counNavDataAll });
             * var alldata3 = JObject.FromObject(new { label = "Category", data = "Category branch", children = funcNavDataAll });
             * var alldata4 = JObject.FromObject(new { label = "Aging", data = "Aging branch", children = agingAll });
             */
            var alldata1 = JObject.FromObject(new { label = "Batch", children = bactNavDataAll });
            var alldata2 = JObject.FromObject(new { label = "Country", children = counNavDataAll });
            var alldata3 = JObject.FromObject(new { label = "Category", children = funcNavDataAll });
            var alldata4 = JObject.FromObject(new { label = "Aging", children = agingAll });
            var alldata  = JObject.FromObject(new { label = "All", children = new JArray(alldata4, alldata1, alldata2, alldata3) });

            //  My Work
            var barnavuser = _context.BwqNavDataWithUser.AsNoTracking().FromSql("usp_BWQGetNavigationWithUser_sel {0} ", appuserid).ToList();

            // By Category
            #region By Category
            var funcNavData = (from byfunction in barnavuser
                               group byfunction by new { byfunction.FunctionTypeName, byfunction.Aging } into Grouping
                               select new
            {
                label = Grouping.Key.FunctionTypeName + " (" + Grouping.Count() + ")",
                //data = Grouping.Key.FunctionTypeName,
                data = new
                {
                    categoryName = Grouping.Key.FunctionTypeName,
                    aging = Grouping.Key.Aging,
                    appUserID = appuserid
                },
                children = from subg in Grouping
                           group subg by subg.CountryName into SubGrouping
                           select new
                {
                    label = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    data = new
                    {
                        countryName = SubGrouping.Key,
                        categoryName = Grouping.Key.FunctionTypeName,
                        batchName = "",
                        aging = Grouping.Key.Aging,
                        appUserID = appuserid
                    }
                }
            });
            #endregion
            //By Country
            #region By Country
            var counNavData = (from bycountry in barnavuser
                               group bycountry by new { bycountry.CountryName, bycountry.Aging } into Grouping
                               select new
            {
                label = Grouping.Key.CountryName + " (" + Grouping.Count() + ")",
                data = new
                {
                    countryName = Grouping.Key.CountryName,
                    aging = Grouping.Key.Aging,
                    appUserID = appuserid
                },
                children = (from subg in Grouping
                            group subg by subg.FunctionTypeName into SubGrouping
                            select new
                {
                    label = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    data = new
                    {
                        countryName = Grouping.Key.CountryName,
                        categoryName = SubGrouping.Key,
                        batchName = "",
                        aging = Grouping.Key.Aging,
                        appUserID = appuserid
                    }
                })
            });
            #endregion
            // By Batch
            #region By Batch
            var bactNavData = (from byfunction in barnavuser
                               group byfunction by byfunction.BatchName into Grouping
                               select new
            {
                label = Grouping.Key + " (" + Grouping.Count() + ")",
                data = new
                {
                    countryName = "",
                    categoryName = "",
                    batchName = Grouping.Key,
                    aging = 1,
                    appUserID = appuserid
                }
            });
            #endregion
            //By Aging
            #region By Aging

            var agingData = (from byaging in barnavuser
                             group byaging by byaging.Aging into Grouping
                             select new
            {
                label = ((Grouping.Key == 1) ? "11+ days" : "1-10 days") + " (" + Grouping.Count() + ")",
                //data = (Grouping.Key == 1) ? "11+ days" : "1-10 days",
                children = from subg in Grouping
                           group subg by subg.CountryName into SubGrouping
                           select new
                {
                    label = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    //data = SubGrouping.Key + " (" + SubGrouping.Count() + ")",
                    data = new
                    {
                        countryName = SubGrouping.Key,
                        aging = Grouping.Key,
                        appUserID = appuserid
                    },
                    children = from subsubg in SubGrouping
                               group subsubg by subsubg.FunctionTypeName into SubSubGrouping
                               select new
                    {
                        label = SubSubGrouping.Key + " (" + SubSubGrouping.Count() + ")",
                        data = new
                        {
                            countryName = SubGrouping.Key,
                            categoryName = SubSubGrouping.Key,
                            batchName = "",
                            aging = Grouping.Key,
                            appUserID = appuserid
                        }
                    }
                }
            });


            #endregion

            /*
             * var userdata1 = JObject.FromObject(new { label = "Batch", data = "Batch branch", children = bactNavData });
             * var userdata2 = JObject.FromObject(new { label = "Country", data = "Country branch", children = counNavData });
             * var userdata3 = JObject.FromObject(new { label = "Category", data = "Category branch", children = funcNavData });
             * var userdata4 = JObject.FromObject(new { label = "Aging", data = "Aging branch", children = agingData });
             */
            var userdata1   = JObject.FromObject(new { label = "Batch", children = bactNavData });
            var userdata2   = JObject.FromObject(new { label = "Country", children = counNavData });
            var userdata3   = JObject.FromObject(new { label = "Category", children = funcNavData });
            var userdata4   = JObject.FromObject(new { label = "Aging", children = agingData });
            var alluserdata = JObject.FromObject(new { label = "My Work", children = new JArray(userdata4, userdata1, userdata2, userdata3) });

            var result = new JArray(alluserdata, alldata);

            return(result);
        }
Ejemplo n.º 59
0
        public void ApplyTest()
        {
            DataTable input = new DataTable("Sample data");

            input.Columns.Add("Age", typeof(int));
            input.Columns.Add("Classification", typeof(string));

            input.Rows.Add(10, 0);
            input.Rows.Add(7, 0);
            input.Rows.Add(4, 0);
            input.Rows.Add(21, 1);
            input.Rows.Add(27, 1);
            input.Rows.Add(12, 0);
            input.Rows.Add(79, 0);
            input.Rows.Add(40, 0);
            input.Rows.Add(30, 0);
            input.Rows.Add(32, 0);


            {
                Grouping target = new Grouping();

                target.Proportion = 0.2;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(2, a.Length);
                Assert.AreEqual(8, b.Length);
            }


            {
                Grouping target = new Grouping();

                target.Proportion = 0.5;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(5, a.Length);
                Assert.AreEqual(5, b.Length);
            }

            {
                Grouping target = new Grouping();

                target.Columns.Add(new Grouping.Options("Classification"));

                target.Proportion = 0.5;
                DataTable actual = target.Apply(input);

                DataRow[] a = actual.Select("Group = 0");
                DataRow[] b = actual.Select("Group = 1");

                Assert.AreEqual(5, a.Length);
                Assert.AreEqual(5, b.Length);

                DataRow[] a0 = actual.Select("Group = 0 AND Classification = 0");
                DataRow[] a1 = actual.Select("Group = 0 AND Classification = 1");
                DataRow[] b0 = actual.Select("Group = 1 AND Classification = 0");
                DataRow[] b1 = actual.Select("Group = 1 AND Classification = 1");

                Assert.AreEqual(4, a0.Length);
                Assert.AreEqual(1, a1.Length);
                Assert.AreEqual(4, b0.Length);
                Assert.AreEqual(1, b1.Length);
            }

        }
        public object VisitGroupingExpression(Grouping expression)
        {
            expression.Expression.Accept(this);

            return(null);
        }