Example #1
0
        public void TestCalculateAverageSpeed()
        {
            // arrange
            int       delayTime             = 50;
            int       receivedBytesPerDelay = 250;
            int       testElapsedTime       = 4000; // 4s
            int       repeatCount           = testElapsedTime / delayTime;
            Bandwidth calculator            = new Bandwidth();
            var       speedHistory          = new List <double>();

            // act
            for (int i = 0; i < repeatCount; i++)
            {
                Thread.Sleep(delayTime);
                calculator.CalculateSpeed(receivedBytesPerDelay);
                speedHistory.Add(calculator.Speed);
            }

            // assert
            var expectedAverageSpeed = Math.Ceiling(speedHistory.Average());
            var actualAverageSpeed   = Math.Ceiling(calculator.AverageSpeed);
            var theoryAverageSpeed   = 1000 / delayTime * receivedBytesPerDelay;

            Assert.IsTrue(expectedAverageSpeed < actualAverageSpeed, $"Actual Average Speed is: {actualAverageSpeed} , Expected Average Speed is: {expectedAverageSpeed}");
            Assert.IsTrue(actualAverageSpeed < theoryAverageSpeed, $"Actual Average Speed is: {actualAverageSpeed} , Theory Average Speed is: {theoryAverageSpeed}");
        }