import unittest from pathlib import Path try: import tomllib except ModuleNotFoundError: # pragma: no cover import tomli as tomllib ROOT = Path(__file__).resolve().parents[1] AGENT_PATH = ROOT / ".codex" / "agents" / "reference-verification-agent.toml" REFERENCE_VERIFICATIONS_README = ROOT / "docs" / "reference-verifications" / "README.md" class ReferenceVerificationAgentConfigTests(unittest.TestCase): def test_reference_verification_agent_toml_has_required_codex_fields(self): data = tomllib.loads(AGENT_PATH.read_text(encoding="utf-8")) self.assertEqual(data["name"], "reference-verification-agent") self.assertIn("HDF5", data["description"]) self.assertIn("Abaqus reference CSV", data["description"]) self.assertEqual(data["sandbox_mode"], "workspace-write") self.assertEqual(data["model_reasoning_effort"], "extra high") self.assertIn("developer_instructions", data) def test_reference_verification_agent_instructions_enforce_boundaries(self): instructions = AGENT_PATH.read_text(encoding="utf-8") for required_text in ( "Do not edit source code.", "Do not edit tests.", "Do not edit CMake.", "Do not run Abaqus, Nastran, or any reference solver.", "Do not generate or modify Abaqus reference CSV files.", "Do not approve release readiness.", "Do not change tolerance policies.", ): self.assertIn(required_text, instructions) def test_reference_verification_agent_instructions_define_artifact_contract(self): instructions = AGENT_PATH.read_text(encoding="utf-8") for required_text in ( "results.h5", "Abaqus reference CSV", "reference//", "_displacements.csv", "_reactions.csv", "_internalforces.csv", "_stresses.csv", "metadata.json", ): self.assertIn(required_text, instructions) self.assertNotIn("reference" ".h5", instructions) self.assertNotIn("stored reference " "HDF5", instructions) def test_reference_verification_agent_instructions_define_output_contract(self): instructions = AGENT_PATH.read_text(encoding="utf-8") for required_text in ( "Artifact Inventory", "Comparison Contract", "Quantity Results", "Failure Classification", "Handoff Recommendation", "No-Change Assertion", ): self.assertIn(required_text, instructions) def test_reference_verification_report_guide_defines_template_and_status_values(self): guide = REFERENCE_VERIFICATIONS_README.read_text(encoding="utf-8") for required_text in ( "docs/reference-verifications/-reference-verification.md", "Artifact Inventory", "Comparison Contract", "Quantity Results", "Failure Classification", "Handoff Recommendation", "No-Change Assertion", "pass-for-physics-evaluation", "needs-correction", "needs-reference-artifacts", "needs-upstream-decision", ): self.assertIn(required_text, guide) if __name__ == "__main__": unittest.main()