fix: address pre-push review findings

This commit is contained in:
Hermes Agent
2026-07-26 23:37:15 +00:00
parent 2da5d20ccd
commit bf77737d88
8 changed files with 68 additions and 9 deletions
+2
View File
@@ -27,9 +27,11 @@ def test_run_backtest_caches_by_input_file_signature(monkeypatch, tmp_path):
second = engine.run_backtest()
ml_first = engine.run_backtest(ml_mode=True)
ml_second = engine.run_backtest(ml_mode=True)
classic_after_ml = engine.run_backtest()
assert first == second == {"ml_mode": False, "calls": 1}
assert ml_first == ml_second == {"ml_mode": True, "calls": 2}
assert classic_after_ml == first
assert calls == [False, True]
history.write_text('{"changed": true}')
+8
View File
@@ -51,3 +51,11 @@ def test_live_and_backtest_outputs_publish_panel_and_coverage_metadata():
"panel_count": 9,
}
assert metadata["staleness_days"] == backtest.METRIC_MAX_AGE_DAYS
def test_chart_data_exposes_metric_values_under_frontend_contract():
result = backtest.run_backtest()
entries = [entry for entry in result["chart_data"] if entry.get("metric_values")]
assert entries
assert all("metrics" not in entry for entry in entries)
+16
View File
@@ -43,3 +43,19 @@ def test_backtest_brackets_publish_bootstrap_confidence_intervals():
assert stats["median_90d"] == 2.5
assert stats["win_rate_90d"] == 50.0
assert stats["avg_90d_ci_low"] <= stats["avg_90d"] <= stats["avg_90d_ci_high"]
def test_long_horizon_returns_use_a_matching_dependence_block(monkeypatch):
observed = {}
def fake_summary(values, *, block_size, n_resamples):
observed.update(block_size=block_size, n_resamples=n_resamples)
return {
"mean": 1.0, "median": 1.0, "win_rate": 100.0,
"mean_ci_low": 0.5, "mean_ci_high": 1.5, "n": len(values),
}
monkeypatch.setattr(engine, "summarize_returns", fake_summary)
engine._add_return_statistics({}, "365d", [1.0] * 500)
assert observed == {"block_size": 365, "n_resamples": 400}
+22
View File
@@ -87,6 +87,28 @@ def test_merge_observation_records_metadata_for_fresh_value():
assert merged["last_error"] is None
def test_merge_observation_rejects_error_only_payload_as_fresh_data():
old = {
"value": 1.25,
"observed_at": "2026-07-25T12:00:00+00:00",
"source": "lookintobitcoin",
"stale": False,
"last_error": None,
}
merged = merge_observation(
old,
{"value": None, "error": "No data returned"},
source="lookintobitcoin",
error="metric missing from scrape",
)
assert merged["value"] == 1.25
assert merged["observed_at"] == old["observed_at"]
assert merged["stale"] is True
assert merged["last_error"] == "No data returned"
@pytest.mark.parametrize("timestamp", [None, "", "not-a-time"])
def test_onchain_refresh_due_when_timestamp_is_missing_or_invalid(timestamp):
assert onchain_refresh_due(timestamp, now=datetime(2026, 7, 26, tzinfo=timezone.utc)) is True