fix(CORE-002C): align historical units with workspace weight

This commit is contained in:
Bu5hm4nn
2026-03-25 21:37:55 +01:00
parent aae67dfd9b
commit 87900b01bf
6 changed files with 54 additions and 20 deletions

View File

@@ -9,9 +9,11 @@ from app.domain.backtesting_math import (
PricePerAsset,
asset_quantity_from_floats,
asset_quantity_from_money,
asset_quantity_from_workspace_config,
materialize_backtest_portfolio_state,
)
from app.domain.units import BaseCurrency, Money
from app.models.portfolio import PortfolioConfig
from app.services.backtesting.comparison import EventComparisonService
from app.services.backtesting.historical_provider import SyntheticHistoricalProvider
from app.services.event_comparison_ui import EventComparisonFixtureHistoricalPriceSource
@@ -47,6 +49,20 @@ def test_asset_quantity_from_floats_matches_workspace_backtest_conversion() -> N
assert asset_quantity_from_floats(968000.0, 100.0, "GLD") == 9680.0
def test_asset_quantity_from_workspace_config_uses_instrument_weight_conversion_for_gld() -> None:
config = PortfolioConfig(
gold_ounces=220.0,
entry_price=4400.0,
entry_basis_mode="weight",
loan_amount=222000.0,
margin_threshold=0.80,
)
quantity = asset_quantity_from_workspace_config(config, entry_spot=100.0, symbol="GLD")
assert quantity == 2200.0
def test_materialize_backtest_portfolio_state_uses_typed_asset_boundary() -> None:
portfolio = materialize_backtest_portfolio_state(
symbol="GLD",