Example #1
0
        public void BrakingForceIsProportionalToVelocity(Vector2 velocity0, Vector2 velocity1)
        {
            var forceCalculator = new VehicleForces(constants.Object);
            var brakePedal      = 1.0f;

            var force0 = forceCalculator.GetBrakingForce(brakePedal, velocity0);
            var force1 = forceCalculator.GetBrakingForce(brakePedal, velocity1);

            var ratio = force1.Length() / force0.Length();

            Assert.True(ratio >= 1);
        }
Example #2
0
        public void BrakingForceIsProportionalToBrakePedal(float brakePedal0, float brakePedal1)
        {
            var forceCalculator = new VehicleForces(constants.Object);
            var velocity        = new Vector2(0, 28);

            var force0 = forceCalculator.GetBrakingForce(brakePedal0, velocity);
            var force1 = forceCalculator.GetBrakingForce(brakePedal1, velocity);

            var ratio = force1.Length() / force0.Length();
            var ratioIsGreaterThanOne = ratio > 1;

            var ratioEqualsOne           = Math.Abs(1 - ratio) < float.Epsilon;
            var brakePedalRatiosAreEqual = Math.Abs(brakePedal1 - brakePedal0) < float.Epsilon;

            // The ratio is either greater than one OR the ratio is one if and
            // only if the brake pedal ratios are equal.
            Assert.True(ratioIsGreaterThanOne || ((ratioEqualsOne && brakePedalRatiosAreEqual) || (!ratioEqualsOne && !brakePedalRatiosAreEqual)));
        }