public void test_full_builder() { CdsTrade test = sut(); assertEquals(test.getProduct(), PRODUCT); assertEquals(test.getInfo(), TRADE_INFO); assertEquals(test.getUpfrontFee().get(), UPFRONT); }
public void test_min_builder() { CdsTrade test = CdsTrade.builder() .product(PRODUCT) .info(TRADE_INFO) .build(); assertEquals(test.getProduct(), PRODUCT); assertEquals(test.getInfo(), TRADE_INFO); assertFalse(test.getUpfrontFee().isPresent()); }
public void test_createTrade() { DatesCdsTemplate base = DatesCdsTemplate.of(START, END, CONV1); LocalDate tradeDate = LocalDate.of(2015, 5, 5); CdsTrade test = base.createTrade(LEGAL_ENTITY, tradeDate, BUY, NOTIONAL_2M, 0.05d, REF_DATA); Cds expected = Cds.of(BUY, LEGAL_ENTITY, CONV1.getCurrency(), NOTIONAL_2M, START, END, Frequency.P3M, CONV1.getSettlementDateOffset().getCalendar(), 0.05d); PeriodicSchedule sch1 = expected.getPaymentSchedule(); expected = expected.toBuilder() .paymentSchedule(sch1.toBuilder() .startDateBusinessDayAdjustment(sch1.getBusinessDayAdjustment()) .rollConvention(RollConventions.DAY_20) .build()) .build(); assertEquals(test.getInfo().getTradeDate(), Optional.of(tradeDate)); assertEquals(test.getProduct(), expected); assertEquals(test.getUpfrontFee(), Optional.empty()); }
public void test_createTrade_withFee() { DatesCdsTemplate base = DatesCdsTemplate.of(START, END, CONV1); LocalDate tradeDate = LocalDate.of(2015, 5, 5); AdjustablePayment payment = AdjustablePayment.of(EUR, NOTIONAL_2M, CONV1.getSettlementDateOffset().adjust(tradeDate, REF_DATA)); CdsTrade test = base.createTrade(LEGAL_ENTITY, tradeDate, BUY, NOTIONAL_2M, 0.05d, payment, REF_DATA); Cds expected = Cds.of(BUY, LEGAL_ENTITY, CONV1.getCurrency(), NOTIONAL_2M, START, END, Frequency.P3M, CONV1.getSettlementDateOffset().getCalendar(), 0.05d); PeriodicSchedule sch1 = expected.getPaymentSchedule(); expected = expected.toBuilder() .paymentSchedule(sch1.toBuilder() .startDateBusinessDayAdjustment(sch1.getBusinessDayAdjustment()) .rollConvention(RollConventions.DAY_20) .build()) .build(); assertEquals(test.getInfo().getTradeDate(), Optional.of(tradeDate)); assertEquals(test.getUpfrontFee(), Optional.of(payment)); assertEquals(test.getProduct(), expected); }
assertEquals(test1.getInfo().getTradeDate(), Optional.of(tradeDate)); assertEquals(test1.getProduct(), expected1); assertEquals(test1.getUpfrontFee(), Optional.empty()); assertEquals(test2.getInfo().getTradeDate(), Optional.of(tradeDate)); assertEquals(test2.getUpfrontFee(), Optional.empty()); assertEquals(test2.getProduct(), expected2);
.build(); assertEquals(test1.getInfo().getTradeDate(), Optional.of(tradeDate)); assertEquals(test1.getUpfrontFee(), Optional.of(payment1)); assertEquals(test1.getProduct(), expected1); assertEquals(test2.getInfo().getTradeDate(), Optional.of(tradeDate)); assertEquals(test2.getUpfrontFee(), Optional.of(payment2)); assertEquals(test2.getProduct(), expected2);
public void cds02() { String location = "classpath:com/opengamma/strata/loader/fpml/cd-ex02-2003-short-asia-corp-fixreg.xml"; ByteSource resource = ResourceLocator.of(location).getByteSource(); List<Trade> trades = FpmlDocumentParser.of(FpmlPartySelector.matching("Party2")).parseTrades(resource); assertEquals(trades.size(), 1); CdsTrade cdsTrade = (CdsTrade) trades.get(0); assertEquals(cdsTrade.getInfo().getTradeDate(), Optional.of(date(2002, 12, 4))); Cds expected = Cds.builder() .buySell(SELL) .legalEntityId(StandardId.of("http://www.fpml.org/coding-scheme/external/entity-id-RED-1-0", "008FAQ")) .currency(JPY) .notional(500000000d) .paymentSchedule(PeriodicSchedule.builder() .startDate(date(2002, 12, 5)) .endDate(date(2007, 12, 5)) .startDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .endDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .businessDayAdjustment(BusinessDayAdjustment.NONE) .firstRegularStartDate(date(2003, 3, 5)) .frequency(Frequency.P3M) .rollConvention(RollConventions.DAY_5) .build()) .fixedRate(0.007) .dayCount(ACT_360) .build(); assertEqualsBean(cdsTrade.getProduct(), expected); assertEquals(cdsTrade.getUpfrontFee().isPresent(), false); }
public void cds01() { String location = "classpath:com/opengamma/strata/loader/fpml/cd-ex01-long-asia-corp-fixreg.xml"; ByteSource resource = ResourceLocator.of(location).getByteSource(); List<Trade> trades = FpmlDocumentParser.of(FpmlPartySelector.matching("Party2")).parseTrades(resource); assertEquals(trades.size(), 1); CdsTrade cdsTrade = (CdsTrade) trades.get(0); assertEquals(cdsTrade.getInfo().getTradeDate(), Optional.of(date(2002, 12, 4))); Cds expected = Cds.builder() .buySell(BUY) .legalEntityId(StandardId.of("http://www.fpml.org/spec/2003/entity-id-RED-1-0", "004CC9")) .currency(JPY) .notional(500000000d) .paymentSchedule(PeriodicSchedule.builder() .startDate(date(2002, 12, 5)) .endDate(date(2007, 12, 5)) .startDateBusinessDayAdjustment(BusinessDayAdjustment.NONE) .endDateBusinessDayAdjustment(BusinessDayAdjustment.of(MODIFIED_FOLLOWING, GBLO_USNY_JPTO)) .businessDayAdjustment(BusinessDayAdjustment.of(MODIFIED_FOLLOWING, GBLO_USNY_JPTO)) .firstRegularStartDate(date(2003, 3, 5)) .frequency(Frequency.P3M) .rollConvention(RollConventions.DAY_5) .build()) .fixedRate(0.007) .dayCount(ACT_360) .build(); assertEqualsBean(cdsTrade.getProduct(), expected); assertEquals(cdsTrade.getUpfrontFee().isPresent(), false); }