refactor(pre-alpha): align preview and runtime fixture validation
This commit is contained in:
@@ -127,7 +127,9 @@ class EventComparisonService:
|
||||
if not selected_template_slugs:
|
||||
raise ValueError("Event comparison requires at least one template slug")
|
||||
|
||||
resolved_history = history or self._load_preset_history(preset)
|
||||
resolved_history = self._load_preset_history(preset) if history is None else history
|
||||
if not resolved_history:
|
||||
raise ValueError("Event comparison history must not be empty")
|
||||
scenario_portfolio = materialize_backtest_portfolio_state(
|
||||
symbol=preset.symbol,
|
||||
underlying_units=initial_portfolio.underlying_units,
|
||||
|
||||
@@ -68,9 +68,8 @@ class BacktestPageService:
|
||||
template_service=self.template_service,
|
||||
provider=None,
|
||||
)
|
||||
if backtest_service is None:
|
||||
provider = self.backtest_service.provider
|
||||
provider.source = DeterministicBacktestFixtureSource()
|
||||
provider = self.backtest_service.provider
|
||||
provider.source = DeterministicBacktestFixtureSource()
|
||||
|
||||
def template_options(self, symbol: str = "GLD") -> list[dict[str, str | int]]:
|
||||
return [
|
||||
@@ -122,11 +121,13 @@ class BacktestPageService:
|
||||
raise ValueError("Template selection is required")
|
||||
|
||||
self.template_service.get_template(template_slug)
|
||||
resolved_entry_spot = (
|
||||
entry_spot if entry_spot is not None else self.derive_entry_spot(normalized_symbol, start_date, end_date)
|
||||
)
|
||||
_validate_initial_collateral(underlying_units, resolved_entry_spot, loan_amount)
|
||||
return resolved_entry_spot
|
||||
derived_entry_spot = self.derive_entry_spot(normalized_symbol, start_date, end_date)
|
||||
if entry_spot is not None and entry_spot != derived_entry_spot:
|
||||
raise ValueError(
|
||||
f"Supplied entry spot ${entry_spot:,.2f} does not match derived historical entry spot ${derived_entry_spot:,.2f}"
|
||||
)
|
||||
_validate_initial_collateral(underlying_units, derived_entry_spot, loan_amount)
|
||||
return derived_entry_spot
|
||||
|
||||
def run_read_only_scenario(
|
||||
self,
|
||||
|
||||
Reference in New Issue
Block a user