feat(simulation): add Worker AI polygon runtime and terrain navigation
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
"""Worker-only numeric equivalence at hazard boundaries and disconnected patches."""
|
||||
|
||||
import argparse
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
import numpy as np
|
||||
import terrain_costs as costs
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--output", type=Path, required=True)
|
||||
args = parser.parse_args()
|
||||
assert costs._NATIVE is not None, "Compiled implementation must be installed"
|
||||
engine = costs._NATIVE
|
||||
rng = np.random.default_rng(230923)
|
||||
cases = []
|
||||
for dtype in (np.float32, np.float64):
|
||||
for _ in range(200):
|
||||
points = rng.uniform(-0.4, 0.4, (rng.integers(8, 180), 3)).astype(dtype)
|
||||
points[:, 2] *= 0.3
|
||||
cases.append(points)
|
||||
for distance in (0.119999, 0.12, 0.120001):
|
||||
for jump in (0.100099, 0.1001, 0.100101):
|
||||
cases.append(np.array([[0, 0, 0], [distance, 0, jump]], dtype=dtype))
|
||||
for points in cases:
|
||||
costs._NATIVE = None
|
||||
expected = costs.connected_grade(points)
|
||||
costs._NATIVE = engine
|
||||
assert costs.connected_grade(points) == expected
|
||||
args.output.write_text(json.dumps({"passed": True, "cases": len(cases)}))
|
||||
print(json.dumps({"passed": True, "cases": len(cases)}))
|
||||
Reference in New Issue
Block a user