public void When_CurrentSpeed_IsBelow_InitialSpeed_Always_Return_0_Percent()
        {
            var speedProgress = new SpeedProgress(
                initialSpeed: 60,
                currentSpeed: 50,
                targetSpeed: 100,
                weighting: 100
                );

            Assert.That(speedProgress.CalculateProgress(), Is.EqualTo(0));
        }
        public void No_TargetSpeed_Always_Has_100_Percent_Complete()
        {
            var speedProgress = new SpeedProgress(
                initialSpeed: 60,
                currentSpeed: 80,
                targetSpeed: 0,
                weighting: 100
                );

            Assert.That(speedProgress.CalculateProgress(), Is.EqualTo(100));
        }
        public void Quarter_Way_Between_Initial_And_Target_Speeds_Means_Quarter_Progress()
        {
            var speedProgress = new SpeedProgress(
                initialSpeed: 10,
                currentSpeed: 35,
                targetSpeed: 110,
                weighting: 100
                );

            Assert.That(speedProgress.CalculateProgress(), Is.EqualTo(25));
        }
        public void No_InitialSpeed_But_Has_TargetSpeed_Calcs_Correctly()
        {
            var speedProgress = new SpeedProgress(
                initialSpeed: 0,
                currentSpeed: 35,
                targetSpeed: 100,
                weighting: 100
                );

            Assert.That(speedProgress.CalculateProgress(), Is.EqualTo(35));
        }
        public void Half_Way_Between_Initial_And_Target_Speeds_Means_Fifty_Percent_Progress()
        {
            var speedProgress = new SpeedProgress(
                initialSpeed: 10,
                currentSpeed: 60,
                targetSpeed: 110,
                weighting: 100
                );

            Assert.That(speedProgress.CalculateProgress(), Is.EqualTo(50));
        }