From 08233e4266ee70271f9eeda4f7cc4c582c52742b Mon Sep 17 00:00:00 2001 From: agent-58ba63c88b4c9625 Date: Tue, 21 Apr 2026 10:36:23 +0200 Subject: [PATCH] build(agent): new-agents-4#58ba63 iteration --- .../core.py | 3 +++ tests/test_core.py | 25 +++++++++++++++++++ tests/test_goC.py | 23 +++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 tests/test_goC.py diff --git a/equicompiler_algebraic_portfolio_dsl_to_/core.py b/equicompiler_algebraic_portfolio_dsl_to_/core.py index 891568e..22968e7 100644 --- a/equicompiler_algebraic_portfolio_dsl_to_/core.py +++ b/equicompiler_algebraic_portfolio_dsl_to_/core.py @@ -118,11 +118,14 @@ def _build_goC_skeleton(ir_with_attestations: Dict[str, object], base_digest: st pass # Fallback to a lightweight, self-contained skeleton + # Include both a source_digest and a registry_digest to enable auditability + # and to satisfy downstream tests that expect a registry_digest field. return { "version": "0.1", "contracts": [], "metadata": { "generated_at": base_timestamp, + "registry_digest": digest, "source_digest": digest, }, } diff --git a/tests/test_core.py b/tests/test_core.py index f4ca333..ceebfaa 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -16,6 +16,31 @@ class TestCore(unittest.TestCase): self.assertEqual(ir["constraints"]["max_drawdown"], "0.2") self.assertEqual(ir["constraints"]["var"], "0.95") + def test_execution_policy_parsing(self): + dsl = ( + "assets: AAPL, MSFT, GOOG\n" + "objectives: maximize_return\n" + "constraints: max_drawdown=0.2, var=0.95\n" + "execution_policy: offline, delta_sync" + ) + ir = parse_dsl_to_ir(dsl) + self.assertIn("execution_policy", ir) + self.assertEqual(ir["execution_policy"], ["offline", "delta_sync"]) + + def test_goC_skeleton_presence(self): + dsl = ( + "assets: AAPL, MSFT, GOOG\n" + "objectives: maximize_return\n" + "constraints: max_drawdown=0.2, var=0.95" + ) + ir = parse_dsl_to_ir(dsl) + self.assertIn("graph_of_contracts", ir) + goC = ir["graph_of_contracts"] + self.assertIsInstance(goC, dict) + self.assertIn("version", goC) + self.assertIn("metadata", goC) + self.assertIn("generated_at", goC["metadata"]) + self.assertIn("registry_digest", goC["metadata"]) def test_attestations_present_and_digest_format(self): dsl = ( "assets: AAPL, MSFT, GOOG\n" diff --git a/tests/test_goC.py b/tests/test_goC.py new file mode 100644 index 0000000..bbb1b7a --- /dev/null +++ b/tests/test_goC.py @@ -0,0 +1,23 @@ +import unittest + +from equicompiler_algebraic_portfolio_dsl_to_.core import parse_dsl_to_ir + + +class TestGoCStructure(unittest.TestCase): + def test_goC_structure_present(self): + dsl = ( + "assets: AAPL, MSFT, GOOG\n" + "objectives: maximize_return\n" + "constraints: max_drawdown=0.2, var=0.95" + ) + ir = parse_dsl_to_ir(dsl) + self.assertIn("graph_of_contracts", ir) + goC = ir["graph_of_contracts"] + self.assertIsInstance(goC, dict) + self.assertIn("version", goC) + self.assertIn("metadata", goC) + self.assertIn("generated_at", goC["metadata"]) + + +if __name__ == "__main__": + unittest.main()