@Test
 public void testGetters() {
   assertEquals(DATA.getInterestRateCurve(), CURVE);
   assertEquals(DATA.getCostOfCarry(), B, 0);
   assertEquals(DATA.getDate(), DATE);
   assertEquals(DATA.getSpot(), SPOT, 0);
   assertEquals(DATA.getVolatilitySurface(), SURFACE);
 }
 @Test
 public void testBuilders() {
   assertEquals(
       new SkewKurtosisOptionDataBundle(OTHER_CURVE, B, SURFACE, SPOT, DATE, SKEW, KURTOSIS),
       DATA.withInterestRateCurve(OTHER_CURVE));
   assertEquals(
       new SkewKurtosisOptionDataBundle(CURVE, OTHER_B, SURFACE, SPOT, DATE, SKEW, KURTOSIS),
       DATA.withCostOfCarry(OTHER_B));
   assertEquals(
       new SkewKurtosisOptionDataBundle(CURVE, B, OTHER_SURFACE, SPOT, DATE, SKEW, KURTOSIS),
       DATA.withVolatilitySurface(OTHER_SURFACE));
   assertEquals(
       new SkewKurtosisOptionDataBundle(CURVE, B, SURFACE, OTHER_SPOT, DATE, SKEW, KURTOSIS),
       DATA.withSpot(OTHER_SPOT));
   assertEquals(
       new SkewKurtosisOptionDataBundle(CURVE, B, SURFACE, SPOT, OTHER_DATE, SKEW, KURTOSIS),
       DATA.withDate(OTHER_DATE));
   assertEquals(
       new SkewKurtosisOptionDataBundle(CURVE, B, SURFACE, SPOT, DATE, OTHER_SKEW, KURTOSIS),
       DATA.withSkew(OTHER_SKEW));
   assertEquals(
       new SkewKurtosisOptionDataBundle(CURVE, B, SURFACE, SPOT, DATE, SKEW, OTHER_KURTOSIS),
       DATA.withKurtosis(OTHER_KURTOSIS));
 }
 public SkewKurtosisOptionDataBundle(final SkewKurtosisOptionDataBundle data) {
   super(data);
   _annualizedSkew = data.getAnnualizedSkew();
   _annualizedPearsonKurtosis = data.getAnnualizedPearsonKurtosis();
   _annualizedFisherKurtosis = _annualizedPearsonKurtosis - 3;
 }
 @Test
 public void testEqualsAndHashCode() {
   final SkewKurtosisOptionDataBundle data1 =
       new SkewKurtosisOptionDataBundle(CURVE, B, SURFACE, SPOT, DATE, SKEW, KURTOSIS);
   final SkewKurtosisOptionDataBundle data2 =
       new SkewKurtosisOptionDataBundle(
           new StandardOptionDataBundle(CURVE, B, SURFACE, SPOT, DATE), SKEW, KURTOSIS);
   final SkewKurtosisOptionDataBundle data3 =
       new SkewKurtosisOptionDataBundle(
           new SkewKurtosisOptionDataBundle(CURVE, B, SURFACE, SPOT, DATE, SKEW, KURTOSIS));
   assertEquals(DATA, data1);
   assertEquals(DATA.hashCode(), data1.hashCode());
   assertEquals(DATA, data2);
   assertEquals(DATA.hashCode(), data2.hashCode());
   assertEquals(DATA, data3);
   assertEquals(DATA.hashCode(), data3.hashCode());
   assertFalse(
       DATA.equals(
           new SkewKurtosisOptionDataBundle(OTHER_CURVE, B, SURFACE, SPOT, DATE, SKEW, KURTOSIS)));
   assertFalse(
       DATA.equals(
           new SkewKurtosisOptionDataBundle(CURVE, OTHER_B, SURFACE, SPOT, DATE, SKEW, KURTOSIS)));
   assertFalse(
       DATA.equals(
           new SkewKurtosisOptionDataBundle(CURVE, B, OTHER_SURFACE, SPOT, DATE, SKEW, KURTOSIS)));
   assertFalse(
       DATA.equals(
           new SkewKurtosisOptionDataBundle(CURVE, B, SURFACE, OTHER_SPOT, DATE, SKEW, KURTOSIS)));
   assertFalse(
       DATA.equals(
           new SkewKurtosisOptionDataBundle(CURVE, B, SURFACE, SPOT, OTHER_DATE, SKEW, KURTOSIS)));
   assertFalse(
       DATA.equals(
           new SkewKurtosisOptionDataBundle(CURVE, B, SURFACE, SPOT, DATE, OTHER_SKEW, KURTOSIS)));
   assertFalse(
       DATA.equals(
           new SkewKurtosisOptionDataBundle(CURVE, B, SURFACE, SPOT, DATE, SKEW, OTHER_KURTOSIS)));
 }
 @Test
 public void testGetVolatility() {
   for (int i = 0; i < 10; i++) {
     assertEquals(DATA.getVolatility(Math.random(), Math.random()), SIGMA, 1e-15);
   }
 }
 @Test
 public void testGetInterestRate() {
   for (int i = 0; i < 10; i++) {
     assertEquals(DATA.getInterestRate(Math.random()), R, 1e-15);
   }
 }