54 lines
2.1 KiB
Python
54 lines
2.1 KiB
Python
from backtesting import engine as backtest
|
|
from scoring import engine as scoring
|
|
|
|
|
|
def test_metric_specific_staleness_does_not_apply_generic_30_day_fill():
|
|
lookup = {"2024-01-01": 42}
|
|
|
|
assert backtest._metric_observation(lookup, "2024-01-03", "fear_greed") == (42, "2024-01-01", 2)
|
|
assert backtest._metric_observation(lookup, "2024-01-04", "fear_greed") == (None, None, None)
|
|
assert backtest._metric_observation(lookup, "2024-01-08", "200w_sma") == (42, "2024-01-01", 7)
|
|
assert backtest._metric_observation(lookup, "2024-01-02", "unknown_metric") == (None, None, None)
|
|
|
|
|
|
def test_current_context_score_uses_only_the_common_backtest_panel():
|
|
cached_scored = {
|
|
"composite_score": 100,
|
|
"metrics": [
|
|
{"key": "fear_greed", "score": 10},
|
|
{"key": "puell_multiple", "score": 0},
|
|
{"key": "sopr", "score": 10},
|
|
{"key": "vdd_multiple", "score": 10},
|
|
],
|
|
}
|
|
|
|
score, coverage = backtest._common_panel_current_score(cached_scored)
|
|
|
|
assert score == 50.0
|
|
assert coverage == {
|
|
"available_count": 2,
|
|
"panel_count": len(backtest.BACKTEST_METRIC_PANEL),
|
|
"available_keys": ["fear_greed", "puell_multiple"],
|
|
}
|
|
|
|
|
|
def test_live_and_backtest_outputs_publish_panel_and_coverage_metadata():
|
|
live = scoring.score_all({"fear_greed": {"value": 10}})
|
|
|
|
assert live["metric_panel"]["id"] == "live-all-v1"
|
|
assert live["metric_panel"]["count"] == live["total_count"]
|
|
assert live["coverage"]["available_count"] == live["scored_count"]
|
|
assert live["coverage"]["ratio"] == live["scored_count"] / live["total_count"]
|
|
assert "score_version" in live
|
|
|
|
metadata = backtest._backtest_data_quality_metadata([3, 5, 9])
|
|
assert metadata["metric_panel"]["id"] == "historical-common-v1"
|
|
assert metadata["metric_panel"]["keys"] == list(backtest.BACKTEST_METRIC_PANEL)
|
|
assert metadata["coverage"] == {
|
|
"minimum_metrics": 3,
|
|
"maximum_metrics": 9,
|
|
"average_metrics": 5.7,
|
|
"panel_count": 9,
|
|
}
|
|
assert metadata["staleness_days"] == backtest.METRIC_MAX_AGE_DAYS
|