"""Tests for PnL calculation functions.""" from decimal import Decimal from portfolio_manager.pnl import calculate_realized_pnl, calculate_unrealized_pnl def test_unrealized_pnl_profit() -> None: result = calculate_unrealized_pnl( quantity=Decimal("0.1"), avg_entry_price=Decimal("50000"), current_price=Decimal("55000"), ) assert result == Decimal("500") def test_unrealized_pnl_loss() -> None: result = calculate_unrealized_pnl( quantity=Decimal("0.1"), avg_entry_price=Decimal("50000"), current_price=Decimal("45000"), ) assert result == Decimal("-500") def test_realized_pnl_single_trade() -> None: result = calculate_realized_pnl( buy_price=Decimal("50000"), sell_price=Decimal("55000"), quantity=Decimal("0.1"), fee=Decimal("5.5"), ) assert result == Decimal("494.5")