Add Python TrainSim with loop track map and physics.
FastAPI server, replaceable JSON config, tests, Dockerfile. Pairs with ATO via spec/interface.md contract. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
45c95836ef
commit
9c5ef3a5cd
18 changed files with 414 additions and 18 deletions
22
tests/test_physics.py
Normal file
22
tests/test_physics.py
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
from trainsim.config_loader import SimParams
|
||||
from trainsim.physics import Train
|
||||
|
||||
|
||||
def test_train_accelerates_with_traction():
|
||||
p = SimParams(1000, 20, 0.15, 0.25, 0.02, 25)
|
||||
t = Train()
|
||||
t.sim_running = True
|
||||
t.actuate(100, 0)
|
||||
for _ in range(120):
|
||||
t.tick(p, 0.05)
|
||||
assert t.speed_mps > 0.5
|
||||
|
||||
|
||||
def test_brake_slows_train():
|
||||
p = SimParams(1000, 20, 0.15, 0.25, 0.02, 25)
|
||||
t = Train(speed_mps=10.0)
|
||||
t.sim_running = True
|
||||
t.actuate(0, 100)
|
||||
for _ in range(200):
|
||||
t.tick(p, 0.05)
|
||||
assert t.speed_mps < 10.0
|
||||
Loading…
Add table
Add a link
Reference in a new issue