public virtual void test_yearFraction_scheduleInfo() { ResolvedFixedCouponBond @base = sut(); FixedCouponBondPaymentPeriod period = @base.PeriodicPayments.get(0); AtomicBoolean eom = new AtomicBoolean(false); DayCount dc = new DayCountAnonymousInnerClass(this, @base, period, eom); ResolvedFixedCouponBond test = @base.toBuilder().dayCount(dc).build(); assertEquals(test.yearFraction(period.UnadjustedStartDate, period.UnadjustedEndDate), 0.5); // test with EOM=true ResolvedFixedCouponBond test2 = test.toBuilder().rollConvention(RollConventions.EOM).build(); eom.set(true); assertEquals(test2.yearFraction(period.UnadjustedStartDate, period.UnadjustedEndDate), 0.5); }
public virtual void test_builder_fail() { ResolvedBondFuture @base = sut(); // wrong size assertThrowsIllegalArg(() => ResolvedBondFuture.builder().securityId(@base.SecurityId).deliveryBasket(@base.DeliveryBasket.subList(0, 1)).conversionFactors(@base.ConversionFactors).firstNoticeDate(@base.FirstNoticeDate).lastNoticeDate(@base.LastNoticeDate).lastTradeDate(@base.LastTradeDate).build()); // first notice date missing assertThrowsIllegalArg(() => ResolvedBondFuture.builder().securityId(@base.SecurityId).deliveryBasket(@base.DeliveryBasket).conversionFactors(@base.ConversionFactors).lastNoticeDate(@base.LastNoticeDate).lastTradeDate(@base.LastTradeDate).build()); // last notice date missing assertThrowsIllegalArg(() => ResolvedBondFuture.builder().securityId(@base.SecurityId).deliveryBasket(@base.DeliveryBasket).conversionFactors(@base.ConversionFactors).firstNoticeDate(@base.FirstNoticeDate).lastTradeDate(@base.LastTradeDate).build()); // basket list empty assertThrowsIllegalArg(() => ResolvedBondFuture.builder().securityId(@base.SecurityId).firstNoticeDate(@base.FirstNoticeDate).lastNoticeDate(@base.LastNoticeDate).lastTradeDate(@base.LastTradeDate).build()); // notional mismatch ResolvedFixedCouponBond bond0 = @base.DeliveryBasket.get(0); ResolvedFixedCouponBond bond1 = bond0.toBuilder().nominalPayment(Payment.of(USD, 100, date(2016, 6, 30))).build(); assertThrowsIllegalArg(() => ResolvedBondFuture.builder().securityId(@base.SecurityId).deliveryBasket(bond0, bond1).conversionFactors(1d, 2d).firstNoticeDate(@base.FirstNoticeDate).firstDeliveryDate(@base.FirstDeliveryDate).lastNoticeDate(@base.LastNoticeDate).lastDeliveryDate(@base.LastDeliveryDate).lastTradeDate(@base.LastTradeDate).rounding(@base.Rounding).build()); }
public virtual void coverage_builder() { ResolvedFixedCouponBond test = sut(); test.toBuilder().periodicPayments(test.PeriodicPayments.toArray(new FixedCouponBondPaymentPeriod[0])).build(); }