guardrail-space-verifiable-.../tests/test_contract.py

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}))