feat(portfolio): add stock consolidation domain and schema

This commit is contained in:
2026-09-13 13:40:08 +09:00
parent dfcafade94
commit dc755889b3
5 changed files with 135 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
from decimal import Decimal
from app.domain.corporate_actions import calculate_stock_consolidation
def test_stock_consolidation_preserves_cost_and_scales_wac():
result = calculate_stock_consolidation(Decimal("1452"), Decimal("726"), Decimal("1086.23"))
assert result.average_price_after == Decimal("2172.46")
assert result.total_cost_basis == Decimal("1577205.96000000")
assert result.ratio == Decimal("0.5")
def test_stock_consolidation_rejects_fractional_result():
import pytest
from app.domain.corporate_actions import CorporateActionError
with pytest.raises(CorporateActionError) as exc:
calculate_stock_consolidation(Decimal("3"), Decimal("1.5"), Decimal("10"))
assert exc.value.code == "FRACTIONAL_RESULT_UNSUPPORTED"