private void CheckTypeDetermination(string numericColumnTypeName) { // Create a numeric column with 0-10 in it IUntypedColumn column = ColumnFactory.Build(new ColumnDetails("Unused", numericColumnTypeName, 10), 0); column.SetSize(10); for (int i = 0; i < 10; ++i) { column[(ushort)i] = i; } // Include 0, 2, 4, 6, 8 in the results ShortSet matches = new ShortSet(10); for (int i = 0; i < 10; i += 2) { matches.Add((ushort)i); } // Ask for the Min and verify both the value and type are correct // This verifies the type checks in BaseAggregator.Aggregate determine type correctly MinAggregator aggregator = new MinAggregator(); object context = aggregator.CreateContext(); object result = aggregator.Aggregate(context, matches, new IUntypedColumn[] { column }); Assert.AreEqual(column[0], result); }
public void MinAggregator_Merge() { var minAggr1 = new MinAggregator("test"); var minAggr2 = new MinAggregator("test"); Func <object, string, object> getVal = (r, f) => { return(r); }; minAggr1.Push(5, getVal); minAggr2.Push(3, getVal); minAggr2.Merge(minAggr1); Assert.Equal(3, minAggr2.Value); minAggr1.Merge(minAggr2); Assert.Equal(3, minAggr1.Value); // datetime values var maxAggr3 = new MinAggregator("test"); maxAggr3.Push(new DateTime(1983, 5, 6), getVal); maxAggr3.Push(new DateTime(2000, 1, 1), getVal); Assert.Equal(1983, ((DateTime)maxAggr3.Value).Year); var maxAggr4 = new MinAggregator("test"); maxAggr4.Push(new DateTime(2010, 2, 2), getVal); maxAggr3.Merge(maxAggr4); Assert.Equal(1983, ((DateTime)maxAggr3.Value).Year); }
public void MinAggregator() { var minAggr = new MinAggregator("test"); Func <object, string, object> getVal = (r, f) => { Assert.Equal("test", f); return(r); }; minAggr.Push(5, getVal); Assert.Equal(5, minAggr.Value); minAggr.Push(3, getVal); Assert.Equal(3, minAggr.Value); minAggr.Push(7, getVal); Assert.Equal(3, minAggr.Value); }
protected override void InitializeSystemUnderTests() { SystemUnderTests = new MinAggregator(); }