public virtual void test_trade_noMarketData()
        {
            XCcyIborIborSwapCurveNode node = XCcyIborIborSwapCurveNode.of(TEMPLATE, SPREAD_ID, SPREAD_ADJ);
            MarketData marketData          = MarketData.empty(VAL_DATE);

            assertThrows(() => node.trade(1d, marketData, REF_DATA), typeof(MarketDataNotFoundException));
        }
        public virtual void test_trade()
        {
            XCcyIborIborSwapCurveNode node = XCcyIborIborSwapCurveNode.of(TEMPLATE, SPREAD_ID, SPREAD_ADJ);
            double    quantity             = -1234.56;
            SwapTrade trade    = node.trade(quantity, MARKET_DATA, REF_DATA);
            double    rate     = FX_EUR_USD.fxRate(Currency.EUR, Currency.USD);
            SwapTrade expected = TEMPLATE.createTrade(VAL_DATE, BUY, -quantity, rate, SPREAD_XCS + SPREAD_ADJ, REF_DATA);

            assertEquals(trade, expected);
            assertEquals(node.resolvedTrade(quantity, MARKET_DATA, REF_DATA), trade.resolve(REF_DATA));
        }