TRLE-Hackethon / tests /test_reward.py
Loosebag's picture
feat(traffic-rl): build adaptive traffic intelligence system
1b72fa2
Raw
History Blame Contribute Delete
1.54 kB
from traffic_rl.reward.reward_engine import RewardEngine
def test_higher_congestion_yields_lower_reward():
reward_engine = RewardEngine()
low = reward_engine.compute(
queue_sum=5,
waiting_sum=8,
throughput=4,
switched=False,
ambulance_wait=0,
ambulance_cleared=False,
)
high = reward_engine.compute(
queue_sum=20,
waiting_sum=30,
throughput=4,
switched=False,
ambulance_wait=0,
ambulance_cleared=False,
)
assert high < low
def test_ambulance_priority_bonus_applies():
reward_engine = RewardEngine()
no_clear = reward_engine.compute(
queue_sum=10,
waiting_sum=10,
throughput=2,
switched=False,
ambulance_wait=3,
ambulance_cleared=False,
)
cleared = reward_engine.compute(
queue_sum=10,
waiting_sum=10,
throughput=2,
switched=False,
ambulance_wait=0,
ambulance_cleared=True,
)
assert cleared > no_clear
def test_switch_penalty_triggers():
reward_engine = RewardEngine()
keep_phase = reward_engine.compute(
queue_sum=8,
waiting_sum=8,
throughput=3,
switched=False,
ambulance_wait=0,
ambulance_cleared=False,
)
switched = reward_engine.compute(
queue_sum=8,
waiting_sum=8,
throughput=3,
switched=True,
ambulance_wait=0,
ambulance_cleared=False,
)
assert switched < keep_phase