Skip to content

Commit 16179f5

Browse files
committed
Added option to specify global timing offset.
1 parent d69f5ef commit 16179f5

13 files changed

+141
-2
lines changed

src/main/java/lap_race/Results.java

+9-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ private record IndividualLegStart(int bib_number, int leg_number, Duration start
1919

2020
static final String DUMMY_DURATION_STRING = "23:59:59";
2121
static final Duration DUMMY_DURATION = parseTime(DUMMY_DURATION_STRING);
22-
static final Duration ZERO_TIME = parseTime("0:0");
22+
static final String ZERO_TIME_STRING = "0:0:0";
23+
static final Duration ZERO_TIME = parseTime(ZERO_TIME_STRING);
2324

2425
//////////////////////////////////////////////////////////////////////////////////////////////////
2526

@@ -52,6 +53,7 @@ private record IndividualLegStart(int bib_number, int leg_number, Duration start
5253

5354
boolean[] paired_legs;
5455
IndividualLegStart[] individual_leg_starts;
56+
Duration start_offset;
5557

5658
//////////////////////////////////////////////////////////////////////////////////////////////////
5759

@@ -121,6 +123,7 @@ private void readProperties() {
121123
working_directory_path = Paths.get(properties.getProperty("WORKING_DIRECTORY"));
122124
number_of_legs = Integer.parseInt(properties.getProperty("NUMBER_OF_LEGS"));
123125
dnf_legs_string = properties.getProperty("DNF_LEGS");
126+
start_offset = parseTime(getPropertyWithDefault("START_OFFSET", ZERO_TIME_STRING));
124127
}
125128

126129
private void configureHelpers() throws IOException {
@@ -270,7 +273,11 @@ private void fillLegFinishTimes() {
270273
final LegResult[] leg_results = result.leg_results;
271274

272275
final int leg_index = findIndexOfNextUnfilledLegResult(leg_results);
273-
leg_results[leg_index].finish_time = raw_result.recorded_finish_time;
276+
277+
leg_results[leg_index].finish_time = raw_result.recorded_finish_time.plus(start_offset);
278+
279+
// Provisionally this leg is not DNF since a finish time was recorded.
280+
// However, it might still be set to DNF in fillDNFs() if the runner missed a checkpoint.
274281
leg_results[leg_index].DNF = false;
275282
}
276283
}

src/test/java/lap_race/devils_burdens/ResultsTest.java

+6
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ public void full() throws Exception {
8080
processingCompletes("full");
8181
}
8282

83+
@Test
84+
public void startOffset() throws Exception {
85+
86+
processingCompletes("start_offset");
87+
}
88+
8389
@Test
8490
public void lastFewResultsNotRecorded() throws Exception {
8591

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Pos,No,Team,Category,Runners 1,Leg 1,Split 1,Runners 2,Leg 2,Split 2,Runners 3,Leg 3,Split 3,Runners 4,Leg 4,Total
2+
1,1,Team 1,Women Senior,John Smith,00:43:43,00:43:43,Hailey Dickson:) & Alix Crawford,00:44:17,01:28:00,Rhys Müllar & Paige Thompson,01:08:05,02:36:05,Amé MacDonald,01:12:53,03:48:58
3+
2,2,Team 2,Open 50+,Bartosz Thomson,00:44:52,00:44:52,John Smith & Zuzanna Miller-Ford,00:59:16,01:44:08,Leo McKenzie & Henry Muir,00:52:26,02:36:34,Regan Millar,01:12:48,03:49:22
4+
3,3,Team 3,Open Senior,JackBruce,00:45:59,00:45:59,Martin King & Leland Donaldson,00:58:49,01:44:48,Neil MacDonald & Myles Christie,00:52:11,02:36:59,Hubert Gray,01:12:30,03:49:29
5+
4,4,Team 4,Women 50+,Sofia O'Connor,00:46:35,00:46:35,Philip O’Donohue & Hasan Robertson,01:01:48,01:48:23,Lena K. Maclean & Isabel Ritchie,00:48:47,02:37:10,Martha Gibson,01:13:11,03:50:21
6+
5,5,Team 5,Open Senior,Clark O' Connor,00:46:43,00:46:43,Nina Joan Fiona Walker & Hope Christie,01:02:01,01:48:44,Cayla Duncan & Scott Kelly,00:49:35,02:38:19,Amelia Muir,01:12:33,03:50:52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Pos,Runner,Time
2+
1,John Smith,00:43:43
3+
2,Bartosz Thomson,00:44:52
4+
3,JackBruce,00:45:59
5+
4,Sofia O'Connor,00:46:35
6+
5,Clark O' Connor,00:46:43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Pos,Runners,Time
2+
1,Hailey Dickson:) & Alix Crawford,00:44:17
3+
2,Martin King & Leland Donaldson,00:58:49
4+
3,John Smith & Zuzanna Miller-Ford,00:59:16
5+
4,Philip O’Donohue & Hasan Robertson,01:01:48
6+
5,Nina Joan Fiona Walker & Hope Christie,01:02:01
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Pos,Runners,Time
2+
1,Lena K. Maclean & Isabel Ritchie,00:48:47
3+
2,Cayla Duncan & Scott Kelly,00:49:35
4+
3,Neil MacDonald & Myles Christie,00:52:11
5+
4,Leo McKenzie & Henry Muir,00:52:26
6+
5,Rhys Müllar & Paige Thompson,01:08:05
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Pos,Runner,Time
2+
1,Hubert Gray,01:12:30
3+
2,Amelia Muir,01:12:33
4+
3,Regan Millar,01:12:48
5+
4,Amé MacDonald,01:12:53
6+
5,Martha Gibson,01:13:11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Pos,No,Team,Category,Total
2+
1,1,Team 1,Women Senior,03:48:58
3+
2,2,Team 2,Open 50+,03:49:22
4+
3,3,Team 3,Open Senior,03:49:29
5+
4,4,Team 4,Women 50+,03:50:21
6+
5,5,Team 5,Open Senior,03:50:52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
Devil's Burdens Results 2020
2+
============================
3+
4+
Category: Women Senior
5+
----------------------
6+
7+
1: Team 4 (Women 50+) 03:50:21
8+
9+
10+
Category: Open Senior
11+
---------------------
12+
13+
1: Team 1 (Women Senior) 03:48:58
14+
2: Team 3 (Open Senior) 03:49:29
15+
3: Team 5 (Open Senior) 03:50:52
16+
17+
18+
Category: Women 40+
19+
-------------------
20+
21+
No results
22+
23+
24+
Category: Open 40+
25+
------------------
26+
27+
1: Team 2 (Open 50+) 03:49:22
28+
29+
30+
Category: Women 50+
31+
-------------------
32+
33+
No results
34+
35+
36+
Category: Open 50+
37+
------------------
38+
39+
No results
40+
41+
42+
Category: Women 60+
43+
-------------------
44+
45+
No results
46+
47+
48+
Category: Open 60+
49+
------------------
50+
51+
No results
52+
53+
54+
Category: Mixed Senior
55+
----------------------
56+
57+
No results
58+
59+
60+
Category: Mixed 40+
61+
-------------------
62+
63+
No results
64+
65+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
1 Team 1 Women Senior John Smith Hailey Dickson:) & Alix Crawford Rhys Müllar & Paige Thompson Amé MacDonald
2+
2 Team 2 Open 50+ Bartosz Thomson John Smith & Zuzanna Miller-Ford Leo McKenzie & Henry Muir Regan Millar
3+
3 Team 3 Open Senior JackBruce Martin King & Leland Donaldson Neil MacDonald & Myles Christie Hubert Gray
4+
4 Team 4 Women 50+ Sofia O'Connor Philip O’Donohue & Hasan Robertson Lena K. Maclean & Isabel Ritchie Martha Gibson
5+
5 Team 5 Open Senior Clark O' Connor Nina Joan Fiona Walker & Hope Christie Cayla Duncan & Scott Kelly Amelia Muir

src/test/resources/devils_burdens/start_offset/input/rawtimes.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1 42:432 43:523 44:594 45:355 45:431 1:27:002 1:43:083 1:43:484 1:47:235 1:47:441 2:35:052 2:35:343 2:35:594 2:36:105 2:37:191 3:47:582 3:48:223 3:48:294 3:49:215 3:49:52
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
ENTRIES_FILENAME = entries.txt
2+
RAW_RESULTS_FILENAME = rawtimes.txt
3+
YEAR = 2020
4+
NUMBER_OF_LEGS = 4
5+
PAIRED_LEGS = 2,3
6+
RACE_NAME_FOR_RESULTS = Devil's Burdens
7+
RACE_NAME_FOR_FILENAMES = simple
8+
9+
# Elapsed duration from start of leg 1 to mass start time for each leg.
10+
# 23:59:59 indicates no mass start.
11+
MASS_START_ELAPSED_TIMES =
12+
13+
# Comma-separated sequence of bib-number/leg-number for all legs that have a time
14+
# recorded but the runners DNF'd the leg.
15+
DNF_LEGS =
16+
17+
# Offset applied to all recorded times.
18+
# Positive value means recording began after the actual start.
19+
START_OFFSET = 0:01:00

0 commit comments

Comments
 (0)