private Curve getCurve(DiscountFactors discountFactors) { if (discountFactors instanceof SimpleDiscountFactors) { return ((SimpleDiscountFactors) discountFactors).getCurve(); } if (discountFactors instanceof ZeroRateDiscountFactors) { return ((ZeroRateDiscountFactors) discountFactors).getCurve(); } if (discountFactors instanceof ZeroRatePeriodicDiscountFactors) { return ((ZeroRatePeriodicDiscountFactors) discountFactors).getCurve(); } throw new IllegalArgumentException("Unsupported DiscountFactors type"); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 575402001: // currency return ((ZeroRatePeriodicDiscountFactors) bean).getCurrency(); case 113107279: // valuationDate return ((ZeroRatePeriodicDiscountFactors) bean).getValuationDate(); case 95027439: // curve return ((ZeroRatePeriodicDiscountFactors) bean).getCurve(); } return super.propertyGet(bean, propertyName, quiet); }
public void test_withCurve() { ZeroRatePeriodicDiscountFactors test = ZeroRatePeriodicDiscountFactors.of(GBP, DATE_VAL, CURVE).withCurve(CURVE2); assertEquals(test.getCurve(), CURVE2); }
public void test_of() { ZeroRatePeriodicDiscountFactors test = ZeroRatePeriodicDiscountFactors.of(GBP, DATE_VAL, CURVE); assertEquals(test.getCurrency(), GBP); assertEquals(test.getValuationDate(), DATE_VAL); assertEquals(test.getCurve(), CURVE); assertEquals(test.getParameterCount(), CURVE.getParameterCount()); assertEquals(test.getParameter(0), CURVE.getParameter(0)); assertEquals(test.getParameterMetadata(0), CURVE.getParameterMetadata(0)); assertEquals(test.withParameter(0, 1d).getCurve(), CURVE.withParameter(0, 1d)); assertEquals(test.withPerturbation((i, v, m) -> v + 1d).getCurve(), CURVE.withPerturbation((i, v, m) -> v + 1d)); assertEquals(test.findData(CURVE.getName()), Optional.of(CURVE)); assertEquals(test.findData(CurveName.of("Rubbish")), Optional.empty()); }