Skip to content

Commit 253278b

Browse files
committed
Added summary of remaining lap race discrepancies.
1 parent 9ffae44 commit 253278b

File tree

4 files changed

+49
-2
lines changed

4 files changed

+49
-2
lines changed

src/main/java/lap_race/LapRace.java

+1
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ record TeamSummaryAtPosition(int team_number, int finishes_before, int finishes_
220220
}
221221
}
222222

223+
223224
private int getNumberOfTeamFinishesBefore(int position, int bib_number) {
224225

225226
int count = 0;

src/main/java/lap_race/LapRaceOutputText.java

+35
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import java.io.OutputStreamWriter;
88
import java.nio.file.Files;
99
import java.nio.file.Path;
10+
import java.time.Duration;
11+
import java.util.ArrayList;
1012
import java.util.HashMap;
1113
import java.util.List;
1214
import java.util.Map;
@@ -122,6 +124,39 @@ public void printCollatedTimes() throws IOException {
122124

123125
writer.append("\n");
124126
}
127+
128+
List<Integer> bib_numbers_with_missing_times = new ArrayList<>();
129+
130+
for (Team team : race.entries) {
131+
132+
int legs_finished = leg_finished_count.getOrDefault(team.bib_number, 0);
133+
for (int i = 0; i < race.number_of_legs - legs_finished; i++)
134+
bib_numbers_with_missing_times.add(team.bib_number);
135+
}
136+
137+
bib_numbers_with_missing_times.sort(Integer::compareTo);
138+
139+
List<Duration> times_with_missing_bib_numbers = new ArrayList<>();
140+
141+
for (int i = 0; i < race.getRawResults().length; i++) {
142+
143+
if (race.getRawResults()[i].getBibNumber() == null)
144+
times_with_missing_bib_numbers.add(race.getRawResults()[i].getRecordedFinishTime());
145+
}
146+
147+
if (!bib_numbers_with_missing_times.isEmpty()) {
148+
149+
writer.append("\nDiscrepancies:\n-------------\n\nBib numbers with missing times: ");
150+
for (int i = 0; i < bib_numbers_with_missing_times.size(); i++) {
151+
if (i > 0) writer.append(", ");
152+
writer.append(String.valueOf(bib_numbers_with_missing_times.get(i)));
153+
}
154+
155+
writer.append("\n\nTimes with missing bib numbers:\n\n");
156+
for (Duration timesWithMissingBibNumber : times_with_missing_bib_numbers)
157+
writer.append(format(timesWithMissingBibNumber)).append("\n");
158+
}
159+
125160
}
126161
}
127162
}

src/test/java/common/RaceTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ protected void configureTest(String test_resource_root) throws IOException {
3535

3636
// Swap these when debugging and you don't want the test results to be immediately deleted.
3737

38-
temp_directory = Files.createTempDirectory(null);
39-
//temp_directory = Paths.get("/Users/gnck/Desktop/temp");
38+
//temp_directory = Files.createTempDirectory(null);
39+
temp_directory = Paths.get("/Users/gnck/Desktop/temp");
4040

4141
Path temp_input_sub_directory = Files.createDirectories(temp_directory.resolve("input"));
4242
temp_output_sub_directory = Files.createDirectories(temp_directory.resolve("output"));

src/test/resources/lap_race/devils_burdens/guessed_missing_bib_numbers_b/expected/times_collated.txt

+11
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,14 @@
1818
? 03:48:29 # Time but not bib number recorded electronically. Bib number not recorded on paper. Too many missing times to guess from DNF teams.
1919
4 03:49:21
2020

21+
Discrepancies:
22+
-------------
23+
24+
Bib numbers with missing times: 3, 4, 4, 5, 5
25+
26+
Times with missing bib numbers:
27+
28+
00:45:35
29+
01:47:23
30+
01:47:44
31+
03:48:29

0 commit comments

Comments
 (0)