ForwardStartOptionDefinition extends OptionDefinition { @Override public OptionExerciseFunction<StandardOptionDataBundle> getExerciseFunction() { return _exerciseFunction; } ForwardStartOptionDefinition(final Expiry expiry, final Boolean isCall, final Expiry startTime);  ForwardStartOptionDefinition(final Expiry expiry, final Boolean isCall, final Expiry startTime, final double percent, final Moneyness moneyness); Expiry getStartTime(); double getAlpha(); double getPercent(); Moneyness getMoneyness(); @Override OptionExerciseFunction<StandardOptionDataBundle> getExerciseFunction(); @Override OptionPayoffFunction<StandardOptionDataBundle> getPayoffFunction(); double getTimeToStart(final ZonedDateTime date); @Override int hashCode(); @Override boolean equals(final Object obj);  }
@Test public void testExerciseFunction() { assertFalse(ATM_CALL.getExerciseFunction().shouldExercise(DATA, 0.)); assertFalse(ATM_PUT.getExerciseFunction().shouldExercise(DATA, 0.)); assertFalse(ITM_CALL.getExerciseFunction().shouldExercise(DATA, 0.)); assertFalse(ITM_PUT.getExerciseFunction().shouldExercise(DATA, 0.)); assertFalse(OTM_CALL.getExerciseFunction().shouldExercise(DATA, 0.)); assertFalse(OTM_PUT.getExerciseFunction().shouldExercise(DATA, 0.)); }