Skip to content

Commit 6ae23c6

Browse files
committed
Printing metrics for the blog post
1 parent 1355dbb commit 6ae23c6

File tree

2 files changed

+85
-3
lines changed

2 files changed

+85
-3
lines changed

src/Tyres/Program.cs

Lines changed: 82 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,12 @@ static void Main(string[] args)
8787
AirTemperature = 20.5f,
8888
TrackTemperature = 28.3f
8989
};
90-
PrintPredictions(predictionEngine, bahrain2021);
90+
//PrintAllPredictions(predictionEngine, bahrain2021);
91+
92+
PrintTop10ImolaPortimao(predictionEngine);
9193
}
9294

93-
private static void PrintPredictions(PredictionEngine<TyreStint, TyreStintPrediction> predictionEngine, Race race)
95+
private static void PrintAllPredictions(PredictionEngine<TyreStint, TyreStintPrediction> predictionEngine, Race race)
9496
{
9597
foreach (var d in race.Drivers)
9698
{
@@ -113,5 +115,83 @@ private static void PrintPredictions(PredictionEngine<TyreStint, TyreStintPredic
113115
}
114116

115117
}
118+
119+
private static void PrintTop10ImolaPortimao(PredictionEngine<TyreStint, TyreStintPrediction> predictionEngine)
120+
{
121+
var ImolaTop10 = new List<Top10Driver>()
122+
{
123+
new Top10Driver() {Team = "Mercedes", Car = "W12", Name = "Lewis Hamilton", StartingCompound = "C3"},
124+
new Top10Driver() {Team = "Red Bull", Car = "RB16B", Name = "Sergio Pérez", StartingCompound = "C4"},
125+
new Top10Driver() {Team = "Red Bull", Car = "RB16B", Name = "Max Verstappen", StartingCompound = "C3"},
126+
new Top10Driver() {Team = "Ferrari", Car = "SF21", Name = "Charles Leclerc", StartingCompound = "C4"},
127+
new Top10Driver() {Team = "Toro Rosso / AlphaTauri", Car = "AT02", Name = "Pierre Gasly", StartingCompound = "C4"},
128+
new Top10Driver() {Team = "McLaren", Car = "MCL35M", Name = "Daniel Ricciardo", StartingCompound = "C4"},
129+
new Top10Driver() {Team = "McLaren", Car = "MCL35M", Name = "Lando Norris", StartingCompound = "C4"},
130+
new Top10Driver() {Team = "Mercedes", Car = "W12", Name = "Valtteri Bottas", StartingCompound = "C3"},
131+
new Top10Driver() {Team = "Renault / Alpine", Car = "A521", Name = "Esteban Ocon", StartingCompound = "C4"},
132+
new Top10Driver() {Team = "Force India / Racing Point / Aston Martin", Car = "AMR21", Name = "Lance Stroll", StartingCompound = "C4"},
133+
};
134+
135+
var PortimaoTop10 = new List<Top10Driver>()
136+
{
137+
new Top10Driver() {Team = "Mercedes", Car = "W12", Name = "Valtteri Bottas", StartingCompound = "C2"},
138+
new Top10Driver() {Team = "Mercedes", Car = "W12", Name = "Lewis Hamilton", StartingCompound = "C2"},
139+
new Top10Driver() {Team = "Red Bull", Car = "RB16B", Name = "Max Verstappen", StartingCompound = "C2"},
140+
new Top10Driver() {Team = "Red Bull", Car = "RB16B", Name = "Sergio Pérez", StartingCompound = "C2"},
141+
new Top10Driver() {Team = "Ferrari", Car = "SF21", Name = "Carlos Sainz", StartingCompound = "C3"},
142+
new Top10Driver() {Team = "Renault / Alpine", Car = "A521", Name = "Esteban Ocon", StartingCompound = "C3"},
143+
new Top10Driver() {Team = "McLaren", Car = "MCL35M", Name = "Lando Norris", StartingCompound = "C3"},
144+
new Top10Driver() {Team = "Ferrari", Car = "SF21", Name = "Charles Leclerc", StartingCompound = "C2"},
145+
new Top10Driver() {Team = "Toro Rosso / AlphaTauri", Car = "AT02", Name = "Pierre Gasly", StartingCompound = "C3"},
146+
new Top10Driver() {Team = "Force India / Racing Point / Aston Martin", Car = "AMR21", Name = "Sebastian Vettel", StartingCompound = "C3"},
147+
};
148+
149+
150+
Console.WriteLine("Imola");
151+
Console.WriteLine("==========");
152+
foreach (var d in ImolaTop10)
153+
{
154+
var prediction = predictionEngine.Predict(new TyreStint()
155+
{
156+
Track = Season2021.Tracks["Imola"].Name,
157+
TrackLength = Season2021.Tracks["Imola"].Distance,
158+
Team = d.Team,
159+
Car = d.Car,
160+
Driver = d.Name,
161+
Compound = d.StartingCompound,
162+
AirTemperature = 9.3f,
163+
TrackTemperature = 17.5f,
164+
Reason = "Pit Stop"
165+
});
166+
Console.WriteLine($"| {d.Name} | {d.StartingCompound} | {prediction.Distance / Season2021.Tracks["Imola"].Distance} | | |");
167+
}
168+
Console.WriteLine("");
169+
170+
Console.WriteLine("Portimão");
171+
Console.WriteLine("==========");
172+
foreach (var d in PortimaoTop10)
173+
{
174+
var prediction = predictionEngine.Predict(new TyreStint()
175+
{
176+
Track = Season2021.Tracks["Portimão"].Name,
177+
TrackLength = Season2021.Tracks["Portimão"].Distance,
178+
Team = d.Team,
179+
Car = d.Car,
180+
Driver = d.Name,
181+
Compound = d.StartingCompound,
182+
AirTemperature = 19.8f,
183+
TrackTemperature = 40.3f,
184+
Reason = "Pit Stop"
185+
});
186+
Console.WriteLine($"| {d.Name} | {d.StartingCompound} | {prediction.Distance / Season2021.Tracks["Portimão"].Distance} | | |");
187+
}
188+
}
189+
190+
191+
}
192+
193+
public class Top10Driver : Driver
194+
{
195+
public string StartingCompound { get; set; }
116196
}
117197
}

src/Tyres/StaticData/Season2021.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ public static class Season2021
3333

3434
public static Dictionary<string, Track> Tracks = new Dictionary<string, Track>()
3535
{
36-
{ "Bahrain", new Track() {Name = "Bahrain International Circuit", Distance = 5412f} }
36+
{ "Bahrain", new Track() {Name = "Bahrain International Circuit", Distance = 5412f} },
37+
{ "Imola", new Track() {Name = "Imola", Distance = 4909f } },
38+
{ "Portimão", new Track() {Name = "Portimão", Distance = 4653f } },
3739
};
3840
}
3941
}

0 commit comments

Comments
 (0)