55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
from lap_detection.api import Coordinate
|
|
from lap_detection.lap_detector import count_laps
|
|
|
|
|
|
def test_no_laps():
|
|
# arrange
|
|
start = Coordinate(lat=47.0, lon=8.0)
|
|
coords = [
|
|
Coordinate(lat=47.0001, lon=8.0001),
|
|
Coordinate(lat=47.0002, lon=8.0002),
|
|
Coordinate(lat=47.0003, lon=8.0003),
|
|
]
|
|
|
|
# act
|
|
result = count_laps(coords, start, radius=20)
|
|
|
|
# assert
|
|
assert result == 0
|
|
|
|
|
|
def test_single_lap():
|
|
# arrange
|
|
start = Coordinate(lat=47.0, lon=8.0)
|
|
coords = [
|
|
Coordinate(lat=47.0030, lon=8.0000), # far from start
|
|
Coordinate(lat=47.0020, lon=8.0010),
|
|
Coordinate(lat=47.0010, lon=8.0020),
|
|
Coordinate(lat=47.0001, lon=8.0001), # back near start -> lap counted
|
|
Coordinate(lat=47.0030, lon=8.0000), # far again -> no second lap
|
|
]
|
|
|
|
# act
|
|
result = count_laps(coords, start, radius=20)
|
|
|
|
# assert
|
|
assert result == 1
|
|
|
|
|
|
def test_two_laps():
|
|
# arrange
|
|
start = Coordinate(lat=47.0, lon=8.0)
|
|
coords = [
|
|
Coordinate(lat=47.0030, lon=8.0000), # far from start
|
|
Coordinate(lat=47.0001, lon=8.0001), # back near start -> lap 1
|
|
Coordinate(lat=47.0002, lon=8.0002), # still near start -> don't count twice
|
|
Coordinate(lat=47.0030, lon=8.0000), # far again
|
|
Coordinate(lat=47.0001, lon=8.0001), # back near start -> lap 2
|
|
]
|
|
|
|
# act
|
|
result = count_laps(coords, start, radius=20)
|
|
|
|
# assert
|
|
assert result == 2
|