public void TestStintLengthOptimisation() { int raceLaps = 58; var parameters = new[] { 320F, -0.8F, 0.1F, 0.3F, 200F, 2.5F, 0.02F, 60F }; float pitStopLoss = 21; PaceParameterCollection paceParameters = new PaceParameterCollection(parameters, pitStopLoss); Strategy strategy = new Strategy(); strategy.PaceParameters = paceParameters; int primeStints = Convert.ToInt32(TestContext.DataRow["Prime Stints"]); int optionStints = Convert.ToInt32(TestContext.DataRow["Option Stints"]); int expectedPrimeLength = Convert.ToInt32(TestContext.DataRow["Act Prime"]); int expectedOptionLength = Convert.ToInt32(TestContext.DataRow["Act Option"]); strategy.SetStintLengths(raceLaps, primeStints, optionStints); Assert.AreEqual(expectedPrimeLength, strategy.PrimeLaps); Assert.AreEqual(expectedOptionLength, strategy.OptionLaps); }
public void TestStrategyOptimisation() { int primeStints = 2; int optionStints = 1; var parameters = new[] { 320F, -0.8F, 0.1F, 0.3F, 200F, 2.5F, 0.02F, 60F }; float pitStopLoss = 21; Data data = new Data(); Driver driver = new Driver(); PaceParameterCollection paceParameters = new PaceParameterCollection(parameters, pitStopLoss); driver.PaceParameters = paceParameters; Strategy strategy = new Strategy(primeStints + optionStints, primeStints, paceParameters, 0); driver.SelectedStrategy = driver.OptimiseStrategy(0, 0); for (int stintNo = 0; stintNo < primeStints + optionStints; stintNo++) { Assert.AreEqual(strategy.Stints[stintNo].stintLength, driver.SelectedStrategy.Stints[stintNo].stintLength); Assert.AreEqual(strategy.Stints[stintNo].tyreType, driver.SelectedStrategy.Stints[stintNo].tyreType); } }
RaceStrategy[] SetupStrategiesForPitStopSimulation(int trackIndex, int numberOfStrategies) { var data = new Data(); Driver[] drivers = new Driver[numberOfStrategies]; PaceParameterCollection[] paceParameters = new PaceParameterCollection[numberOfStrategies]; Strategy[] strategies = new Strategy[numberOfStrategies]; RaceStrategy[] raceStrategies = new RaceStrategy[numberOfStrategies]; MainForm form = new MainForm(); var parameters = new[] { 320F, -0.8F, 0.1F, 0.3F, 200F, 2.5F, 0.02F, 60F }; float pitStopLoss = 21; for (int strategyIndex = 0; strategyIndex < numberOfStrategies; strategyIndex++) { paceParameters[strategyIndex] = new PaceParameterCollection(parameters, pitStopLoss); drivers[strategyIndex] = new Driver(); drivers[strategyIndex].PaceParameters = paceParameters[strategyIndex]; drivers[strategyIndex].SetDriverIndex(strategyIndex); strategies[strategyIndex] = drivers[strategyIndex].OptimiseStrategy(strategyIndex, trackIndex); raceStrategies[strategyIndex] = new RaceStrategy(strategies[strategyIndex], strategyIndex); } return(raceStrategies); }