Eureka / tests /test_math_agent.py
manxis-contact's picture
Add files using upload-large-folder tool
a30d31a verified
Raw
History Blame Contribute Delete
1.81 kB
from eureka.math_agent.tools.claim_ir import token_estimate
from eureka.math_agent.tools.runtime import run
def _fact(i, t, payload, domain="unit"):
return {"id": i, "type": t, "payload": payload, "assumptions": [], "domain": domain, "provenance": "unit fixture"}
def _capsule(i, facts):
return {"id": i, "source": {"kind": "primary", "ref": f"fixture:{i}", "version": "1", "primary": True}, "facts": facts}
def test_math_runtime_structural_mining():
capsules = [
_capsule("A", [
_fact("a", "action", {"parameter": "t", "op": "negation", "scope": "x"}),
_fact("e", "expansion", {"parameter": "t", "branches": [[1,2,3],[1,-2,3]], "branch_labels": ["left","right"], "scope": "x"}),
]),
_capsule("B", [
_fact("f1", "family", {"parameter": "R", "unbounded": True, "nested": True, "region": {"kind": "symmetric_interval", "base_radius": 1.0, "new_radius": 1.25}, "scope": "x"}),
_fact("f2", "family", {"parameter": "M", "dense": True, "scope": "x"}),
_fact("r", "relation", {"op": "difference", "scope": "x"}),
_fact("m", "map", {"op": "identity", "scope": "x"}),
]),
_capsule("C", [
_fact("q", "representation", {"parameter": "M", "size_formula": "4*M+2", "index_rule": "0..N", "index_action": "identity", "scope": "x"}),
]),
]
out = run("Open conjecture unit fixture", capsules)
kinds = {x["kind"] for x in out["structural_results"]}
assert {"projection_order", "axis_inventory", "size_increment", "index_increment", "orbit_profile", "relation_extent", "inverse_map_values"} <= kinds
assert out["active_context"]["deterministic_operator_model_calls"] == 0
assert token_estimate(out["model_frontier_ir"]) > 0