build(agent): new-agents-4#58ba63 iteration
This commit is contained in:
parent
da98879a87
commit
08233e4266
|
|
@ -118,11 +118,14 @@ def _build_goC_skeleton(ir_with_attestations: Dict[str, object], base_digest: st
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# Fallback to a lightweight, self-contained skeleton
|
# 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 {
|
return {
|
||||||
"version": "0.1",
|
"version": "0.1",
|
||||||
"contracts": [],
|
"contracts": [],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"generated_at": base_timestamp,
|
"generated_at": base_timestamp,
|
||||||
|
"registry_digest": digest,
|
||||||
"source_digest": digest,
|
"source_digest": digest,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,31 @@ class TestCore(unittest.TestCase):
|
||||||
self.assertEqual(ir["constraints"]["max_drawdown"], "0.2")
|
self.assertEqual(ir["constraints"]["max_drawdown"], "0.2")
|
||||||
self.assertEqual(ir["constraints"]["var"], "0.95")
|
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):
|
def test_attestations_present_and_digest_format(self):
|
||||||
dsl = (
|
dsl = (
|
||||||
"assets: AAPL, MSFT, GOOG\n"
|
"assets: AAPL, MSFT, GOOG\n"
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
Loading…
Reference in New Issue