@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 244977400: // buySell return ((ResolvedCdsIndex) bean).getBuySell(); case -464117509: // cdsIndexId return ((ResolvedCdsIndex) bean).getCdsIndexId(); case 1085098268: // legalEntityIds return ((ResolvedCdsIndex) bean).getLegalEntityIds(); case -1674414612: // paymentPeriods return ((ResolvedCdsIndex) bean).getPaymentPeriods(); case -1193325040: // protectionEndDate return ((ResolvedCdsIndex) bean).getProtectionEndDate(); case 1905311443: // dayCount return ((ResolvedCdsIndex) bean).getDayCount(); case -480203780: // paymentOnDefault return ((ResolvedCdsIndex) bean).getPaymentOnDefault(); case 2103482633: // protectionStart return ((ResolvedCdsIndex) bean).getProtectionStart(); case 852621746: // stepinDateOffset return ((ResolvedCdsIndex) bean).getStepinDateOffset(); case 135924714: // settlementDateOffset return ((ResolvedCdsIndex) bean).getSettlementDateOffset(); } return super.propertyGet(bean, propertyName, quiet); }
/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(ResolvedCdsIndex beanToCopy) { this.buySell = beanToCopy.getBuySell(); this.cdsIndexId = beanToCopy.getCdsIndexId(); this.legalEntityIds = beanToCopy.getLegalEntityIds(); this.paymentPeriods = beanToCopy.getPaymentPeriods(); this.protectionEndDate = beanToCopy.getProtectionEndDate(); this.dayCount = beanToCopy.getDayCount(); this.paymentOnDefault = beanToCopy.getPaymentOnDefault(); this.protectionStart = beanToCopy.getProtectionStart(); this.stepinDateOffset = beanToCopy.getStepinDateOffset(); this.settlementDateOffset = beanToCopy.getSettlementDateOffset(); }
public void jumpToDefaultTest() { JumpToDefault computed = PRICER.jumpToDefault(PRODUCT, RATES_PROVIDER, SETTLEMENT_STD, REF_DATA); LocalDate stepinDate = PRODUCT.getStepinDateOffset().adjust(VALUATION_DATE, REF_DATA); double dirtyPvMod = PRICER.presentValue(PRODUCT, RATES_PROVIDER, SETTLEMENT_STD, PriceType.DIRTY, REF_DATA).getAmount() / INDEX_FACTOR; double accrued = PRODUCT.accruedYearFraction(stepinDate) * PRODUCT.getFixedRate() * PRODUCT.getBuySell().normalize(NOTIONAL); double protection = PRODUCT.getBuySell().normalize(NOTIONAL) * (1d - RECOVERY_RATE); double expected = (protection - accrued - dirtyPvMod) / ((double) LEGAL_ENTITIES.size()); assertEquals(computed.getCurrency(), USD); assertTrue(computed.getAmounts().size() == 1); assertEquals(computed.getAmounts().get(INDEX_ID), expected, NOTIONAL * TOL); }
public void test_builder() { ResolvedCdsIndex test = ResolvedCdsIndex.builder() .buySell(BUY) .dayCount(ACT_360) .cdsIndexId(INDEX_ID) .legalEntityIds(LEGAL_ENTITIES) .paymentOnDefault(ACCRUED_PREMIUM) .protectionStart(BEGINNING) .paymentPeriods(PAYMENTS) .protectionEndDate(PAYMENTS.get(PAYMENTS.size() - 1).getEffectiveEndDate()) .settlementDateOffset(SETTLE_DAY_ADJ) .stepinDateOffset(STEPIN_DAY_ADJ) .build(); assertEquals(test.getBuySell(), BUY); assertEquals(test.getCurrency(), USD); assertEquals(test.getAccrualStartDate(), PAYMENTS.get(0).getStartDate()); assertEquals(test.getAccrualEndDate(), PAYMENTS.get(42).getEndDate()); assertEquals(test.getDayCount(), ACT_360); assertEquals(test.getFixedRate(), COUPON); assertEquals(test.getCdsIndexId(), INDEX_ID); assertEquals(test.getLegalEntityIds(), LEGAL_ENTITIES); assertEquals(test.getNotional(), NOTIONAL); assertEquals(test.getPaymentOnDefault(), ACCRUED_PREMIUM); assertEquals(test.getPaymentPeriods(), PAYMENTS); assertEquals(test.getProtectionEndDate(), PAYMENTS.get(42).getEffectiveEndDate()); assertEquals(test.getSettlementDateOffset(), SETTLE_DAY_ADJ); assertEquals(test.getProtectionStart(), BEGINNING); assertEquals(test.getStepinDateOffset(), STEPIN_DAY_ADJ); }
/** * Reduce this instance to {@code ResolvedCds}. * <p> * The resultant object is used for pricing CDS index products under the homogeneous pool assumption on constituent * credit curves. * * @return the CDS product */ public ResolvedCds toSingleNameCds() { return ResolvedCds.builder() .buySell(getBuySell()) .dayCount(getDayCount()) .legalEntityId(getCdsIndexId()) .paymentOnDefault(getPaymentOnDefault()) .paymentPeriods(getPaymentPeriods()) .protectionEndDate(getProtectionEndDate()) .protectionStart(getProtectionStart()) .stepinDateOffset(getStepinDateOffset()) .settlementDateOffset(getSettlementDateOffset()) .build(); }