コード例 #1
0
        public void Intervals_older_than_history_size_are_discarded()
        {
            var intervalSize      = TimeSpan.FromSeconds(10);
            var numberOfIntervals = 100;
            var historySize       = TimeSpan.FromTicks(intervalSize.Ticks * numberOfIntervals);

            var entries = EntriesBuilder.Build(new Dictionary <DateTime, long>
            {
                { now.Subtract(historySize), 3L }
            });

            var store = new IntervalsStore <int>(intervalSize, numberOfIntervals, 0);

            store.Store(0, entries);

            var timings = store.GetIntervals(now.Add(store.IntervalSize));

            Assert.IsTrue(timings[0].Intervals.All(i => i.TotalMeasurements == 0));
        }
コード例 #2
0
        public void Intervals_are_returned_in_descending_order()
        {
            var entries = EntriesBuilder.Build(new Dictionary <DateTime, long>
            {
                { now.AddSeconds(-45), 1L },
                { now.AddSeconds(-30), 1L },
                { now, 1L }
            });

            var store = AnyStore();

            store.Store(0, entries);

            var timings        = store.GetIntervals(now);
            var intervalStarts = timings[0].Intervals.Select(i => i.IntervalStart).ToArray();

            Assert.IsTrue(intervalStarts[0] > intervalStarts[1]);
            Assert.IsTrue(intervalStarts[1] > intervalStarts[2]);
        }
コード例 #3
0
        public void Store_updates_all_supported_historical_periods()
        {
            var store = new VariableHistoryIntervalStore <int>();

            var entries = EntriesBuilder.Build(new Dictionary <DateTime, long>
            {
                { now, 5L }
            });

            store.Store(0, entries);

            foreach (var period in HistoryPeriod.All)
            {
                var reportDelay = TimeSpan.FromTicks(period.IntervalSize.Ticks * period.DelayedIntervals);

                var intervals = store.GetIntervals(period, now.Add(reportDelay));

                Assert.AreEqual(1, intervals.Length);
                Assert.AreEqual(5L, intervals[0].TotalValue);
                Assert.AreEqual(1L, intervals[0].TotalMeasurements);
            }
        }
コード例 #4
0
        public void Delayed_intervals_are_not_reported()
        {
            const int delayedIntervals = 5;
            var       intervalSize     = TimeSpan.FromSeconds(1);
            var       delay            = TimeSpan.FromTicks(delayedIntervals * intervalSize.Ticks);

            var entries = EntriesBuilder.Build(new Dictionary <DateTime, long>
            {
                { now.AddSeconds(-4), 1L },
                { now.AddSeconds(-3), 1L },
                { now, 1L }
            });

            var store = new IntervalsStore <int>(intervalSize, 10, delayedIntervals);

            store.Store(0, entries);

            var timings        = store.GetIntervals(now);
            var delayedTimings = store.GetIntervals(now.Add(delay));

            Assert.AreEqual(0, timings[0].TotalMeasurements);
            Assert.AreEqual(3, delayedTimings[0].TotalMeasurements);
        }