P08-03: 配置の通常操作受入

This commit is contained in:
Agent Control Runner
2026-10-14 07:18:17 +09:00
parent 0c5e0022f2
commit 1f0a2bcd53
14 changed files with 6962 additions and 24 deletions
@@ -329,6 +329,41 @@ class EvidenceTests(unittest.TestCase):
self.edit('os-pair/unsupported-1/observed.json', lambda d: d.update(events=[]))
self.reject('missing OS events')
def test_os_dispatch_missing(self):
self.edit('os-pair/writer-actions.json', lambda d: d['actions'][0]['position'].pop('dispatch'))
self.reject('dispatch')
def test_os_wrong_actual_input_cell(self):
# Keep event and action mutually consistent; independent conversion must reject.
self.edit('os-pair/writer-actions.json', lambda d: d['actions'][0]['position']['dispatch']['world_cell'].__setitem__(0, 99))
self.edit('os-pair/unsupported-1/observed.json', lambda d: d['events'][0]['dispatch']['world_cell'].__setitem__(0, 99))
self.reject('OS actual input cell drift')
def test_os_event_position_disagrees(self):
self.edit('os-pair/unsupported-1/observed.json', lambda d: d['events'][0].update(position=[0,0]))
self.reject('OS dispatch event mismatch')
def test_os_wrong_selected_entity(self):
self.edit('os-pair/writer-actions.json', lambda d: d['actions'][-1]['position']['selection'].update(entity_id='wrong'))
self.reject('OS selected entity mismatch')
def test_os_wrong_selected_occupancy(self):
self.edit('os-pair/writer-actions.json', lambda d: d['actions'][-1]['position']['selection'].update(entity_id='wrong', occupant_id='wrong'))
self.reject('OS selected occupancy mismatch')
def test_os_selection_requirement_cannot_be_removed(self):
self.edit('os-pair/writer-actions.json', lambda d: d['actions'][-1]['position']['selection'].update(required=False))
self.reject('OS missing entity selection')
def test_os_dispatch_transform_drift(self):
self.edit('os-pair/writer-actions.json', lambda d: d['actions'][0]['position']['dispatch'].update(pan=[100,0]))
self.edit('os-pair/unsupported-1/observed.json', lambda d: d['events'][0]['dispatch'].update(pan=[100,0]))
self.reject('OS dispatch transform drift')
def test_os_later_getter_is_diagnostic(self):
self.edit('os-pair/writer-actions.json', lambda d: d['actions'][-1]['position']['diagnostics'].update(getter_cell=[999,999,0]))
self.assertEqual([], C.check(self.root, self.out))
def test_os_ack_for_another_request(self):
self.edit('os-pair/unsupported-1/ack.json', lambda d: d.update(request_sha256='0'*64))
self.reject('OS ack request mismatch')