P23-03: 生活の観察

This commit is contained in:
Agent Control Runner
2026-10-15 12:08:24 +09:00
parent 336a8cd0b3
commit 49445d4a4d
8 changed files with 528 additions and 6 deletions
@@ -18,6 +18,30 @@ sys.dont_write_bytecode = True
import check_p23_life_observation_evidence as check
class SetupBudgetTests(unittest.TestCase):
def setUp(self):
self.source = (check.ROOT / 'tests/fixtures/p23-03/observation.gd').read_text()
def test_all_planned_spends_enter_common_needed_and_deltas(self):
self.assertEqual(check.check_setup_budget_source(self.source),
{'construction', 'signing', 'purchase'})
def test_missing_spend_category_fails_before_os_replay(self):
expressions = {
'construction': 'needed[key] += int(definition.construction_cost.get(key, 0))',
'signing': 'needed[&"gold"] += signing_total',
'purchase': 'needed[&"gold"] += purchase_total',
}
for category, expression in expressions.items():
with self.subTest(category=category), self.assertRaisesRegex(ValueError, category):
check.check_setup_budget_source(self.source.replace(expression, 'pass'))
def test_missing_delta_coverage_fails(self):
with self.assertRaisesRegex(ValueError, 'deltas'):
check.check_setup_budget_source(self.source.replace(
'deltas[key] = needed[key] - state.get_resource(key)', 'pass'))
class QueuedElevatorTests(unittest.TestCase):
def setUp(self):
fixture = json.loads((check.ROOT / 'tests/fixtures/p23-03/queued_elevator.json').read_text())