16 lines
625 B
Python
16 lines
625 B
Python
import unittest
|
|
from guardrail_space.contract import SafetyContract
|
|
|
|
|
|
class TestSafetyContract(unittest.TestCase):
|
|
def test_pre_post_eval(self):
|
|
c = SafetyContract(
|
|
contract_id="test-001",
|
|
pre_conditions=["state['speed'] <= 1.0"],
|
|
post_conditions=["state['completed'] == True"],
|
|
budgets={"time": 10.0, "energy": 100.0},
|
|
collision_rules=["state['distance_to_obstacle'] >= 0"],
|
|
)
|
|
self.assertTrue(c.evaluate_pre({"speed": 0.5, "distance_to_obstacle": 5}))
|
|
self.assertFalse(c.evaluate_pre({"speed": 2.0, "distance_to_obstacle": 5}))
|