Exemple #1
0
        public void When_ZeroCounts_Expect_CorrectPerSecondRates()
        {
            var t1 = new DateTime(2018, 6, 1, 12, 0, 0);
            var t2 = t1.AddSeconds(2.0);

            var mockClock = new Mock <ITimeProvider>(MockBehavior.Strict);

            mockClock.SetupSequence(x => x.Now).Returns(t1).Returns(t2);

            var p = new ParticleAccumulator(mockClock.Object);

            p.TakeReading(new ParticleReading {
                Alpha = 0, Beta = 0, Gamma = 0
            });
            p.TakeReading(new ParticleReading {
                Alpha = 0, Beta = 0, Gamma = 0
            });
            p.TakeReading(new ParticleReading {
                Alpha = 0, Beta = 0, Gamma = 0
            });
            var s = p.CalcSample();

            mockClock.Verify();
            mockClock.VerifyGet(x => x.Now, Times.Exactly(2));
            Assert.AreEqual(3, s.Samples);
            Assert.AreEqual(0.0, s.Alpha, DblDelta);
            Assert.AreEqual(0.0, s.Beta, DblDelta);
            Assert.AreEqual(0.0, s.Gamma, DblDelta);
        }
Exemple #2
0
        public void When_MissingSomeReadings_Expect_DefaultToZero()
        {
            var t1 = new DateTime(2018, 6, 1, 12, 0, 0);
            var t2 = t1.AddSeconds(1.0);

            var mockClock = new Mock <ITimeProvider>(MockBehavior.Strict);

            mockClock.SetupSequence(x => x.Now).Returns(t1).Returns(t2);

            var reading = new ParticleReading {
                Alpha = 10, Beta = null, Gamma = null
            };
            var p = new ParticleAccumulator(mockClock.Object);

            p.TakeReading(reading);
            var s = p.CalcSample();

            Assert.Throws <InvalidOperationException>(() => p.CalcSample());
            Assert.Throws <InvalidOperationException>(() => p.TakeReading(reading));

            mockClock.Verify();
            mockClock.VerifyGet(x => x.Now, Times.Exactly(2));
            Assert.AreEqual(1, s.Samples);
            Assert.AreEqual(10.0, s.Alpha, DblDelta);
            Assert.AreEqual(0, s.Beta, DblDelta);
            Assert.AreEqual(0, s.Gamma, DblDelta);
        }