File size: 824 Bytes
557ee65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from typing import Optional

#  src/tools/runner_ai.py


# Convert seconds per kilometer to a min/km string
def sec_to_min_km(sec_per_km) -> str:
    if sec_per_km is None:
        return None
    minutes = int(sec_per_km // 60)
    seconds = int(sec_per_km % 60)
    return f"{minutes}:{seconds:02d} min/km"


# Convert a min/km string to seconds per kilometer
def min_km_to_sec(min_km: str) -> float:
    if min_km is None:
        return None
    minutes, seconds = map(int, min_km.split(":"))
    return minutes * 60 + seconds


# Convert a distance in meters and time in seconds to a pace in seconds per kilometer
def calculate_pace_s_per_km(distance_m: Optional[float], time_s: Optional[float]) -> float:
    if not distance_m or not time_s or distance_m <= 0:
        return 0
    return (time_s * 1000) / distance_m