fix(backtest): improve error message for dates outside fixture window
- Add helpful message suggesting Databento/Yahoo Finance for dates outside fixture range - Update test to expect BOUNDED policy for backtest UI
This commit is contained in:
@@ -54,7 +54,8 @@ class SharedHistoricalFixtureSource:
|
|||||||
if start_date < self.start_date or end_date > self.end_date:
|
if start_date < self.start_date or end_date > self.end_date:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
f"{self.feature_label} deterministic fixture data only supports the seeded "
|
f"{self.feature_label} deterministic fixture data only supports the seeded "
|
||||||
f"{self.start_date.isoformat()} through {self.end_date.isoformat()} window"
|
f"{self.start_date.isoformat()} through {self.end_date.isoformat()} window. "
|
||||||
|
f"For dates outside this range, please use Databento or Yahoo Finance data source."
|
||||||
)
|
)
|
||||||
return [point for point in self.history if start_date <= point.date <= end_date]
|
return [point for point in self.history if start_date <= point.date <= end_date]
|
||||||
|
|
||||||
|
|||||||
@@ -54,14 +54,14 @@ def test_shared_fixture_source_bounded_window_allows_subranges_but_fails_closed_
|
|||||||
source.load_daily_closes("GLD", date(2024, 1, 5), date(2024, 1, 3))
|
source.load_daily_closes("GLD", date(2024, 1, 5), date(2024, 1, 3))
|
||||||
|
|
||||||
|
|
||||||
def test_backtest_page_service_uses_shared_exact_fixture_source() -> None:
|
def test_backtest_page_service_uses_shared_bounded_fixture_source() -> None:
|
||||||
service = BacktestPageService()
|
service = BacktestPageService()
|
||||||
|
|
||||||
source = service.backtest_service.provider.source
|
source = service.backtest_service.provider.source
|
||||||
|
|
||||||
assert isinstance(source, SharedHistoricalFixtureSource)
|
assert isinstance(source, SharedHistoricalFixtureSource)
|
||||||
assert source.feature_label == "BT-001A"
|
assert source.feature_label == "BT-001A"
|
||||||
assert source.window_policy is WindowPolicy.EXACT
|
assert source.window_policy is WindowPolicy.BOUNDED
|
||||||
|
|
||||||
|
|
||||||
def test_event_comparison_page_service_uses_shared_bounded_fixture_source() -> None:
|
def test_event_comparison_page_service_uses_shared_bounded_fixture_source() -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user