### Question:
RawOptionData implements ImmutableBean, Serializable { public static RawOptionData ofBlackVolatility( List<Period> expiries, DoubleArray strikes, ValueType strikeType, DoubleMatrix data, Double shift) { ArgChecker.isTrue(expiries.size() == data.rowCount(), "expiries list should be of the same size as the external data dimension"); for (int i = 0; i < expiries.size(); i++) { ArgChecker.isTrue(strikes.size() == data.columnCount(), "strikes should be of the same size as the inner data dimension"); } return new RawOptionData(expiries, strikes, strikeType, data, null, ValueType.BLACK_VOLATILITY, shift); } private  RawOptionData(
      List<Period> expiries,
      DoubleArray strikes,
      ValueType strikeType,
      DoubleMatrix data,
      DoubleMatrix error,
      ValueType dataType,
      Double shift); static RawOptionData of(
      List<Period> expiries,
      DoubleArray strikes,
      ValueType strikeType,
      DoubleMatrix data,
      ValueType dataType); static RawOptionData ofBlackVolatility(
      List<Period> expiries,
      DoubleArray strikes,
      ValueType strikeType,
      DoubleMatrix data,
      Double shift); static RawOptionData of(
      List<Period> expiries,
      DoubleArray strikes,
      ValueType strikeType,
      DoubleMatrix data,
      DoubleMatrix error,
      ValueType dataType); static RawOptionData ofBlackVolatility(
      List<Period> expiries,
      DoubleArray strikes,
      ValueType strikeType,
      DoubleMatrix data,
      DoubleMatrix error,
      Double shift); Pair<DoubleArray, DoubleArray> availableSmileAtExpiry(Period expiry); static TypedMetaBean<RawOptionData> meta(); @Override TypedMetaBean<RawOptionData> metaBean(); ImmutableList<Period> getExpiries(); DoubleArray getStrikes(); ValueType getStrikeType(); DoubleMatrix getData(); Optional<DoubleMatrix> getError(); ValueType getDataType(); OptionalDouble getShift(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void ofBlackVolatility() { double shift = 0.0075; RawOptionData test = RawOptionData.ofBlackVolatility(EXPIRIES, STRIKES, ValueType.STRIKE, DATA_SPARSE, shift); assertThat(test.getStrikes()).isEqualTo(STRIKES); assertThat(test.getStrikeType()).isEqualTo(ValueType.STRIKE); assertThat(test.getData()).isEqualTo(DATA_SPARSE); assertThat(test.getDataType()).isEqualTo(ValueType.BLACK_VOLATILITY); assertThat(test.getShift()).isEqualTo(OptionalDouble.of(shift)); assertThat(test.getError().isPresent()).isFalse(); }