Download engine/tests/test_withheld_fixes.py from s-ttp/crucible: direct link, hf CLI and curl.
- Browser
- Download file 9.51 kB
-
https://huggingface.co/spaces/s-ttp/crucible/resolve/main/engine/tests/test_withheld_fixes.py
- Command line
-
hf download hf://spaces/s-ttp/crucible/engine/tests/test_withheld_fixes.py
-
curl -L -o test_withheld_fixes.py https://huggingface.co/spaces/s-ttp/crucible/resolve/main/engine/tests/test_withheld_fixes.py
9.51 kB
| """The four withheld-run causes of 2026-09-28 … 10-01 (NVDA, PGY, NNE, and the retry wording), each with the generic fix: | |
| NVDA a floor raised the segments' blended margin (53.5% → 60%) but the segment check knew only a cap; | |
| PGY a GAAP re-blend after the sanity cap left the composite above its recorded bound (S6), and the break-even revenue | |
| was stored more coarsely than the growth rate computed from it (RELATION_MAGNITUDE); a negative rate also rendered | |
| as "requires … growth"; | |
| NNE a pre-revenue company fails the forecast checks on every run and was told to "try again later"; | |
| all deterministic failures invited a retry. | |
| """ | |
| import copy | |
| import json | |
| import os | |
| import sys | |
| import pytest | |
| sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) | |
| import business as BZ # noqa: E402 | |
| import pipeline_fixtures as F # noqa: E402 | |
| import relations as RL # noqa: E402 | |
| import report_model as RM # noqa: E402 | |
| import story_dcf as SD # noqa: E402 | |
| import test_pipeline as TP # noqa: E402 (_canon_two: two reconciled filed segments) | |
| # ── NVDA: the margin floor is recorded, accepted by the segment check and disclosed ── | |
| def _nvda_ctx(): | |
| return {"ticker": "NVDA", "revenue": 187e9, "shares": 24.3e9, "price": 180.0, "op_margin": 0.652, "rf": 0.0524, "erp": 0.0409, | |
| "beta": 1.6, "debt": 10e9, "cash": 60e9, "market_cap": 4.4e12, "stage": "high-growth", "interest_coverage": 300, | |
| "sector": "TECHNOLOGY", "industry": "SEMICONDUCTORS", | |
| "business_decomposition": BZ.declared("NVDA", ["Compute And Networking", "Graphics"], "test")} | |
| NVDA_A = {"tam_at_maturity_usd_b": 2670.0, "plausible_peak_share": 0.43, "years_to_maturity": 10, "target_operating_margin": 0.535, | |
| "sales_to_capital": 2.25, "failure_probability": 0.0, | |
| "segments": [{"name": "Compute And Networking", "tam_at_maturity_usd_b": 2450.0, "plausible_peak_share": 0.44, | |
| "target_operating_margin": 0.55, "sales_to_capital": 2.3}, | |
| {"name": "Graphics", "tam_at_maturity_usd_b": 220.0, "plausible_peak_share": 0.35, | |
| "target_operating_margin": 0.32, "sales_to_capital": 1.8}]} | |
| def test_nvda_the_margin_floor_is_recorded(): | |
| a = SD.story_fcff(_nvda_ctx(), copy.deepcopy(NVDA_A))["assumptions"] | |
| assert a["margin_proposed"] == pytest.approx(0.535, abs=0.001) and a["margin_target"] == 0.6 and a["margin_floor"] == 0.6 | |
| # a storyteller margin above the floor records none | |
| hi = copy.deepcopy(NVDA_A) | |
| for g in hi["segments"]: | |
| g["target_operating_margin"] = 0.62 | |
| assert SD.story_fcff(_nvda_ctx(), hi)["assumptions"]["margin_floor"] is None | |
| def _floored_story(floor): | |
| st = F.story() | |
| st["assumptions"].update(segments=[{"name": "Generation", "rev_usd_b": 70.0, "margin": 0.55, "sales_to_capital": 2.3}, | |
| {"name": "Retail", "rev_usd_b": 30.0, "margin": 0.32, "sales_to_capital": 1.8}], | |
| revenue_N_usd_b=100.0, margin_proposed=0.481, margin_target=0.6, margin_cap=0.652, margin_floor=floor) | |
| return st | |
| def test_nvda_a_recorded_floor_passes_the_segment_check_and_is_disclosed(): | |
| d = F.all_data(); d["segments_canonical"] = TP._canon_two() | |
| run, payload, failed = F.run_pipeline(data=d, forecast_over={"story": _floored_story(0.6)}) | |
| chk = next(c for v in run.validations for c in v.checks if c.id == "SEGMENT_BUILD_RECONCILES") | |
| assert failed is None and chk.status == "PASS", (failed, chk.detail) | |
| md = payload["markdown"] | |
| assert "is raised to 60.0%" in md and "best sustained margin in its sector" in md | |
| # the same difference with no recorded floor is unexplained and still blocks | |
| run, payload, failed = F.run_pipeline(data=d, forecast_over={"story": _floored_story(None)}) | |
| chk = next(c for v in run.validations for c in v.checks if c.id == "SEGMENT_BUILD_RECONCILES") | |
| assert failed == "FORECAST" and chk.status == "FAIL" and "nor a recorded floor" in chk.detail | |
| # ── PGY: a later composite step stays inside the recorded cap ── | |
| def test_pgy_the_gaap_reblend_is_bounded_by_the_recorded_cap(): | |
| import predict_yearly as PY | |
| price = 17.62 | |
| fv = {"methods": {"P/E": {"price": 54.2, "conf": 0.54}, "PEG": {"price": 94.0, "conf": 0.43}, "P/FCF": {"price": 42.0, "conf": 0.38}, | |
| "P/S": {"price": 45.4, "conf": 0.36}, "Analyst Target": {"price": 24.0, "conf": 0.40}, "DCF": {"price": 75.4, "conf": 0.49}}, | |
| "fair_price": 44.05, "composite_audit": {"cap_upper": 2.5, "cap_lower": 0.78, "methods": [], "final": 44.05, | |
| "steps": [{"step": "sanity cap", "set_to": 44.05, "note": "FV_CAPPED_HIGH"}]}} | |
| PY._gaap_reblend(fv, {"gaap_distortion": True, "distortion_reason": "reported EPS far below adjusted"}, price) | |
| steps = fv["composite_audit"]["steps"] | |
| assert [s["step"] for s in steps] == ["sanity cap", "GAAP-distortion re-blend", "sanity cap"] | |
| assert steps[1]["set_to"] > 2.5 * price # the re-blend alone would have left the bound | |
| assert fv["fair_price"] == pytest.approx(2.5 * price) == pytest.approx(fv["composite_audit"]["final"]) == pytest.approx(steps[-1]["set_to"]) | |
| # a re-blend inside the bound adds no cap step | |
| fv2 = copy.deepcopy(fv); fv2["composite_audit"]["steps"] = fv2["composite_audit"]["steps"][:1] | |
| for m in fv2["methods"].values(): | |
| m["price"] = 30.0 | |
| PY._gaap_reblend(fv2, {"gaap_distortion": True, "distortion_reason": "x"}, price) | |
| assert [s["step"] for s in fv2["composite_audit"]["steps"]] == ["sanity cap", "GAAP-distortion re-blend"] | |
| # ── PGY: the break-even revenue keeps the precision of its growth rate; a shrinking path is not "growth" ── | |
| def test_pgy_break_even_revenue_and_its_growth_reproduce_each_other(): | |
| ctx = {"revenue": 1.325553e9, "shares": 77e6, "price": 17.62, "op_margin": 0.212, "rf": 0.0524, "erp": 0.0409, "beta": 1.5, | |
| "debt": 0.7e9, "cash": 0.3e9, "market_cap": 1.36e9, "stage": "mature-growth", "interest_coverage": 5, | |
| "sector": "FINANCIAL SERVICES"} | |
| A = {"tam_at_maturity_usd_b": 51.0, "plausible_peak_share": 0.08, "years_to_maturity": 8, "target_operating_margin": 0.256, | |
| "sales_to_capital": 2.0, "failure_probability": 0.0} | |
| base = SD.story_fcff(ctx, A, strict=False)["value"] | |
| ctx["price"] = 0.75 * base # a price the solve brackets | |
| be = SD.story_breakeven(ctx, A) | |
| rev, g = be["revenue_needed_N_usd_b"], be["rev_cagr_needed"] | |
| assert rev != round(rev, 2) # not rounded to the printed two decimals | |
| assert abs((rev / 1.325553) ** (1 / 8) - 1 - g) < 1e-4 # the relation recomputes the stored rate | |
| def test_a_negative_growth_rate_is_rendered_as_shrinkage(): | |
| import catalog as C | |
| spec = RL.Spec("REL_BREAK_EVEN_REVENUE_GROWTH", "BE_REVENUE", "STORY_START_REVENUE", "path", RL.CAGR, RL.GROWTH_FROM, | |
| RL.GROWTH_FROM, "BE_REVENUE_CAGR", lhs_words="the revenue today's price needs at maturity", | |
| rhs_words="the story's starting revenue") | |
| d = C.BY_ID["BE_REVENUE"] | |
| down = RL._render(spec, RL.GROWTH_FROM, -0.0612, 0.8e9, 1.3256e9, d, d, 8) | |
| up = RL._render(spec, RL.GROWTH_FROM, 0.092, 50.4e9, 21.0e9, d, d, 10) | |
| flat = RL._render(spec, RL.GROWTH_FROM, 0.0001, 1.3e9, 1.3e9, d, d, 8) | |
| assert "allows revenue to shrink 6.1% a year" in down and "requires" not in down | |
| assert "requires 9.2% annual revenue growth" in up and "requires no revenue growth" in flat | |
| # ── NNE and the retry wording ── | |
| def _patched_run(revenue, operating_income, financial=False): | |
| run, payload, failed = F.run_pipeline() | |
| s = run.state | |
| h = s.historical._data | |
| h["revenue_ttm"] = h["revenue_ttm"].with_value(revenue) | |
| h["operating_income_ttm"] = h["operating_income_ttm"].with_value(operating_income) | |
| s.issuer._data["is_financial"] = financial | |
| return run | |
| def test_nne_a_pre_revenue_company_is_told_so(tmp_path): | |
| run = _patched_run(214042.0, -51.87e6) | |
| assert run.withheld_reason() == "PRE_REVENUE" | |
| out = run.write(tmp_path / "x.json") | |
| assert out["user"]["status"] == "WITHHELD" and out["user"]["reason"] == "PRE_REVENUE" | |
| assert "little or no revenue" in out["user"]["message"] and "try again" not in out["user"]["message"] | |
| assert _patched_run(0.0, -5e6).withheld_reason() == "PRE_REVENUE" | |
| assert _patched_run(19e9, 3.4e9).withheld_reason() is None # an established business | |
| assert _patched_run(214042.0, -51.87e6, financial=True).withheld_reason() is None | |
| assert _patched_run(None, None).withheld_reason() is None # no figures is a data failure, not this | |
| def test_deterministic_failures_do_not_invite_a_retry(): | |
| for stage in ("INITIAL", "DATA_VALIDATED"): | |
| m = RM.withheld_payload("X", stage_reached=stage)["message"] | |
| assert "try again later" not in m.lower() and "same result" in m | |
| for stage in ("FORECAST_VALIDATED", "ANALYSIS_FINALIZED"): # these depend on the analyst models' answers | |
| assert "try again later" in RM.withheld_payload("X", stage_reached=stage)["message"].lower() | |
| assert "reason" not in RM.withheld_payload("X", stage_reached="DATA_VALIDATED") | |