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));
}