def test_duplicate_instrument(mocker): set_session() dollar_price_values = [[[{ '$type': 'Risk', 'val': 0.01 }], [{ '$type': 'Risk', 'val': 0.02 }], [{ '$type': 'Risk', 'val': 0.03 }]]] mocker.return_value = [dollar_price_values] swap1 = IRSwap('Pay', '10y', 'USD', fixed_rate=0.01, name='swap1') swap2 = IRSwap('Pay', '10y', 'USD', fixed_rate=0.02, name='swap2') swap3 = IRSwap('Pay', '10y', 'USD', fixed_rate=0.03, name='swap3') portfolio = Portfolio((swap1, swap2, swap3, swap1)) assert portfolio.index('swap1') == (0, 3) assert portfolio.index('swap2') == 1 prices: PortfolioRiskResult = portfolio.dollar_price() assert tuple(prices) == (0.01, 0.02, 0.03, 0.01) assert round(prices.aggregate(), 2) == 0.07 assert prices[swap1] == (0.01, 0.01)
def test_single_instrument(mocker): set_session() mocker.return_value = [[[[{'$type': 'Risk', 'val': 0.01}]]]] swap1 = IRSwap('Pay', '10y', 'USD', fixed_rate=0.01, name='swap1') portfolio = Portfolio(swap1) assert portfolio.index('swap1') == 0 prices: PortfolioRiskResult = portfolio.dollar_price() assert tuple(prices) == (0.01, ) assert round(prices.aggregate(), 2) == 0.01 assert prices[swap1] == 0.01