AK.F1.Timing.Live.LiveDriver.ComputeLapNumber C# (CSharp) Method

ComputeLapNumber() public method

Computes the lap number of this driver given the current race lap number.
/// Thrown when is negative. ///
public ComputeLapNumber ( int raceLapNumber ) : int
raceLapNumber int The race lap number
return int
        public int ComputeLapNumber(int raceLapNumber)
        {
            Guard.InRange(raceLapNumber >= 0, "raceLapNumber");

            LapGap gap = Gap as LapGap;

            return gap != null ? Math.Max(raceLapNumber - gap.Laps, 0) : raceLapNumber;
        }

Usage Example

Example #1
0
        public void can_compute_the_drivers_lap_number()
        {
            var driver = new LiveDriver(1);

            Assert.Equal(10, driver.ComputeLapNumber(10));
            driver.LastGapMessage = new SetDriverGapMessage(1, LapGap.Zero);
            Assert.Equal(10, driver.ComputeLapNumber(10));
            driver.LastGapMessage = new SetDriverGapMessage(1, new LapGap(2));
            Assert.Equal(8, driver.ComputeLapNumber(10));
            // I think this is sensible if the gap is greater than the race lap number.
            driver.LastGapMessage = new SetDriverGapMessage(1, new LapGap(20));
            Assert.Equal(0, driver.ComputeLapNumber(10));

            // TimeGaps should be ignored.
            driver.LastGapMessage = new SetDriverGapMessage(1, TimeGap.Zero);
            Assert.Equal(10, driver.ComputeLapNumber(10));
            driver.LastGapMessage = new SetDriverGapMessage(1, new TimeGap(TimeSpan.FromDays(1D)));
            Assert.Equal(10, driver.ComputeLapNumber(10));
        }
All Usage Examples Of AK.F1.Timing.Live.LiveDriver::ComputeLapNumber