@Test
 /** Tests the equal and hash code. */
 public void testEqualHash() {
   assertEquals("CouponIbor: equal-hash", COUPON, COUPON);
   final CouponFixedCompoundingDefinition other =
       CouponFixedCompoundingDefinition.from(
           CURRENCY,
           PAYMENT_DATE,
           ACCRUAL_START_DATES[0],
           ACCRUAL_END_DATES[NB_SUB_PERIOD - 1],
           PAYMENT_ACCRUAL_FACTOR,
           NOTIONAL,
           FIXED_RATE,
           ACCRUAL_START_DATES,
           ACCRUAL_END_DATES,
           PAYMENT_ACCRUAL_FACTORS);
   assertEquals("CouponFixedCompoundingDefinition: equal-hash", other, COUPON);
   assertEquals(
       "CouponFixedCompoundingDefinition: equal-hash", other.hashCode(), COUPON.hashCode());
   CouponFixedCompoundingDefinition modified;
   modified =
       CouponFixedCompoundingDefinition.from(
           CURRENCY,
           PAYMENT_DATE.plusDays(1),
           ACCRUAL_START_DATES[0],
           ACCRUAL_END_DATES[NB_SUB_PERIOD - 1],
           PAYMENT_ACCRUAL_FACTOR,
           NOTIONAL,
           FIXED_RATE,
           ACCRUAL_START_DATES,
           ACCRUAL_END_DATES,
           PAYMENT_ACCRUAL_FACTORS);
   assertFalse("CouponIbor: equal-hash", COUPON.equals(modified));
   modified =
       CouponFixedCompoundingDefinition.from(
           CURRENCY,
           PAYMENT_DATE,
           ACCRUAL_START_DATES[0].plusDays(1),
           ACCRUAL_END_DATES[NB_SUB_PERIOD - 1],
           PAYMENT_ACCRUAL_FACTOR,
           NOTIONAL,
           FIXED_RATE,
           ACCRUAL_START_DATES,
           ACCRUAL_END_DATES,
           PAYMENT_ACCRUAL_FACTORS);
   assertFalse("CouponIbor: equal-hash", COUPON.equals(modified));
   modified =
       CouponFixedCompoundingDefinition.from(
           CURRENCY,
           PAYMENT_DATE,
           ACCRUAL_START_DATES[0],
           ACCRUAL_END_DATES[NB_SUB_PERIOD - 1].plusDays(1),
           PAYMENT_ACCRUAL_FACTOR,
           NOTIONAL,
           FIXED_RATE,
           ACCRUAL_START_DATES,
           ACCRUAL_END_DATES,
           PAYMENT_ACCRUAL_FACTORS);
   assertFalse("CouponIbor: equal-hash", COUPON.equals(modified));
   modified =
       CouponFixedCompoundingDefinition.from(
           CURRENCY,
           PAYMENT_DATE,
           ACCRUAL_START_DATES[0],
           ACCRUAL_END_DATES[NB_SUB_PERIOD - 1],
           PAYMENT_ACCRUAL_FACTOR + 1,
           NOTIONAL,
           FIXED_RATE,
           ACCRUAL_START_DATES,
           ACCRUAL_END_DATES,
           PAYMENT_ACCRUAL_FACTORS);
   assertFalse("CouponIbor: equal-hash", COUPON.equals(modified));
   modified =
       CouponFixedCompoundingDefinition.from(
           CURRENCY,
           PAYMENT_DATE,
           ACCRUAL_START_DATES[0],
           ACCRUAL_END_DATES[NB_SUB_PERIOD - 1],
           PAYMENT_ACCRUAL_FACTOR,
           NOTIONAL + 1,
           FIXED_RATE,
           ACCRUAL_START_DATES,
           ACCRUAL_END_DATES,
           PAYMENT_ACCRUAL_FACTORS);
   assertFalse("CouponIbor: equal-hash", COUPON.equals(modified));
   modified =
       CouponFixedCompoundingDefinition.from(
           CURRENCY,
           PAYMENT_DATE,
           ACCRUAL_START_DATES[0],
           ACCRUAL_END_DATES[NB_SUB_PERIOD - 1],
           PAYMENT_ACCRUAL_FACTOR,
           NOTIONAL,
           FIXED_RATE + 1,
           ACCRUAL_START_DATES,
           ACCRUAL_END_DATES,
           PAYMENT_ACCRUAL_FACTORS);
   assertFalse("CouponIbor: equal-hash", COUPON.equals(modified));
 }