mirror of
https://github.com/pim-n/road-gen.git
synced 2026-02-03 09:23:09 +01:00
Merge pull request #1 from pim-n/feature-randroad-test
Adding RandomRoadGenerator test to ensure fixed seed reproduces results.
This commit is contained in:
@ -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"]
|
||||
@ -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
26
tests/test_generators.py
Normal 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)
|
||||
|
||||
Reference in New Issue
Block a user