Merge pull request #1 from pim-n/feature-randroad-test

Adding RandomRoadGenerator test to ensure fixed seed reproduces results.
This commit is contained in:
Pim Nelissen
2026-01-30 19:00:46 +01:00
committed by GitHub
3 changed files with 32 additions and 3 deletions

View File

@ -26,4 +26,7 @@ road-gen = "road_gen.main:main"
[project.urls]
Homepage = "https://github.com/pim-n/road-gen"
Issues = "https://github.com/pim-n/road-gen/issues"
Issues = "https://github.com/pim-n/road-gen/issues"
[project.optional-dependencies]
dev = ["pytest"]

View File

@ -55,10 +55,10 @@ class RandomRoadGenerator(BaseRoadGenerator):
# Randomly add multiple straight sections
i = 0
while i < num_points:
if np.random.rand() < straight_section_prob:
if self._rng.random() < straight_section_prob:
# Random straight segment length
max_len = int(num_points * straight_section_max_rel_size)
seg_len = np.random.randint(1, max_len + 1)
seg_len = self._rng.integers(1, max_len + 1)
curvature[i:i+seg_len] = 0 # set curvature to zero for straight
i += seg_len # skip over straight segment
else:

26
tests/test_generators.py Normal file
View File

@ -0,0 +1,26 @@
import numpy as np
import pytest
from road_gen.generators.random_road_generator import RandomRoadGenerator
@pytest.fixture
def test_params():
length = 1_000
ds = 10
velocity = 10
return length, ds, velocity
def test_random_road_generator(test_params):
"""Test whether fixing the seed for RandomRoadGenerator produces identical output."""
generator_1 = RandomRoadGenerator(*test_params)
x1, y1 = generator_1.generate()
generator_2 = RandomRoadGenerator(seed = generator_1.seed, *test_params)
x2, y2 = generator_2.generate()
assert np.array_equal(x1, x2)
assert np.array_equal(y1, y2)