### Question:
EtdOptionSecurity implements EtdSecurity, ImmutableBean, Serializable { public String summaryDescription() { String putCallStr = putCall == PutCall.PUT ? "P" : "C"; String versionCode = version > 0 ? "V" + version + " " : ""; NumberFormat f = NumberFormat.getIntegerInstance(Locale.ENGLISH); f.setGroupingUsed(false); f.setMaximumFractionDigits(8); String strikeStr = f.format(strikePrice).replace('-', 'M'); return expiry.format(YM_FORMAT) + variant.getCode() + " " + versionCode + putCallStr + strikeStr; } private  EtdOptionSecurity(
      SecurityInfo info,
      EtdContractSpecId contractSpecId,
      YearMonth expiry,
      EtdVariant variant,
      int version,
      PutCall putCall,
      double strikePrice,
      YearMonth underlyingExpiryMonth); static EtdOptionSecurity of(
      EtdContractSpec spec,
      YearMonth expiry,
      EtdVariant variant,
      int version,
      PutCall putCall,
      double strikePrice); static EtdOptionSecurity of(
      EtdContractSpec spec,
      YearMonth expiry,
      EtdVariant variant,
      int version,
      PutCall putCall,
      double strikePrice,
      YearMonth underlyingExpiryMonth); @Override EtdType getType(); @Override EtdOptionSecurity withInfo(SecurityInfo info); @Override EtdOptionSecurity createProduct(ReferenceData refData); @Override EtdOptionTrade createTrade(TradeInfo tradeInfo, double quantity, double tradePrice, ReferenceData refData); @Override EtdOptionPosition createPosition(PositionInfo positionInfo, double quantity, ReferenceData refData); @Override EtdOptionPosition createPosition(
      PositionInfo positionInfo,
      double longQuantity,
      double shortQuantity,
      ReferenceData refData); String summaryDescription(); static EtdOptionSecurity.Meta meta(); static EtdOptionSecurity.Builder builder(); @Override EtdOptionSecurity.Meta metaBean(); @Override SecurityInfo getInfo(); @Override EtdContractSpecId getContractSpecId(); @Override YearMonth getExpiry(); @Override EtdVariant getVariant(); int getVersion(); PutCall getPutCall(); double getStrikePrice(); Optional<YearMonth> getUnderlyingExpiryMonth(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_summaryDescription() { assertThat(sut().summaryDescription()).isEqualTo("Jun17 P2"); assertThat(sut2().summaryDescription()).isEqualTo("Sep17W2 V4 C3"); }