public void ShouldConfirmTypeIsSame()
            {
                var reduceMethod = new ReduceMethodAverage();

                Assert.True(reduceMethod.ValidateMonitorConfiguration(MonitorReductionType.DefaultAverage));
                Assert.False(reduceMethod.ValidateMonitorConfiguration(MonitorReductionType.DefaultAccumulate));
            }
            public void ShouldReduceDown()
            {
                var record1 = new MonitorRecord<double> { Value = 5, Number = 1 };
                var record2 = new MonitorRecord<double> { Value = 9, Number = 2 };
                var record3 = new MonitorRecord<double> { Value = 3, Number = 4 };

                var receords = new List<MonitorRecord<double>> { record1, record2, record3 };

                var reduceMethod = new ReduceMethodAverage();
                var result = reduceMethod.Reduce(new DateTime(2012, 05, 12), receords);

                Assert.Equal(new DateTime(2012, 05, 12), result.TimeStamp);
                Assert.Equal(7, result.Number);
                Assert.Equal(5, result.Value);
                Assert.Equal(35, result.IntervalSum);
            }
            public void ShoudlAverage()
            {
                var record = new MonitorRecord<double> { Value = 10, Number = 5 };

                var reduceMethod = new ReduceMethodAverage();
                var result = reduceMethod.IntervalAggregate(new DateTime(2012, 05, 12), record, 100);

                Assert.Equal(new DateTime(2012, 05, 12), result.TimeStamp);
                Assert.Equal(6, result.Number);
                Assert.Equal(25, result.Value);
                Assert.Equal(10000, result.IntervalSumOfSquares);
                Assert.Equal(150, result.IntervalSum);
                Assert.NotSame(record, result);

                result = reduceMethod.IntervalAggregate(new DateTime(2012, 05, 12), result, 4);
                Assert.Equal(7, result.Number);
                Assert.Equal(22, result.Value);
                Assert.Equal(10016, result.IntervalSumOfSquares);
                Assert.Equal(154, result.IntervalSum);
            }