devils-agent / tests /test_actions.py
devildasdf's picture
Upload experimental BAIM code, research checkpoints and measured evaluations
795f737 verified
Raw
History Blame Contribute Delete
1.4 kB
import unittest
from baim.actions import Action, Kind, Decision
from baim.authority import Authority, Rejected
from baim.state import State
class ActionTests(unittest.TestCase):
def test_round_trip_escaping(self):
action = Action(Kind.TYPE, ('e1', 'quotes " newline\nUnicode नमस्ते'))
self.assertEqual(Action.parse(action.encode()), action)
def test_reject_bad_wire(self):
for wire in ['C["e1", "extra"]', 'Q[]', 'W[true]', 'W[-1]', 'W[2001]',
'F{}', 'T["e1"]', 'C["e1"] trailing', 'S[0,99999]']:
with self.subTest(wire=wire), self.assertRaises(ValueError):
Action.parse(wire)
def test_task_replacement_and_replay(self):
authority = Authority()
authority.replace('First')
state = State('doc', 1, 'http://localhost', ())
ticket = authority.ticket(state)
authority.consume()
with self.assertRaises(Rejected):
authority.validate(ticket, state)
ticket = authority.ticket(state)
authority.replace('Second')
with self.assertRaises(Rejected):
authority.validate(ticket, state)
def test_confidence_is_not_fabricated(self):
self.assertIsNone(Decision(None, Action(Kind.FINISH)).action_confidence)
with self.assertRaises(ValueError):
Decision(None, Action(Kind.FINISH), float('nan'))