### Question:
CalculationResult implements ImmutableBean, Serializable { public static CalculationResult of(int rowIndex, int columnIndex, Result<?> result) { return new CalculationResult(rowIndex, columnIndex, result); } private  CalculationResult(
      int rowIndex,
      int columnIndex,
      Result<?> result); static CalculationResult of(int rowIndex, int columnIndex, Result<?> result); @SuppressWarnings("unchecked") Result<T> getResult(Class<T> type); CalculationResult withResult(Result<?> underlyingResult); static TypedMetaBean<CalculationResult> meta(); @Override TypedMetaBean<CalculationResult> metaBean(); int getRowIndex(); int getColumnIndex(); Result<?> getResult(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void of() { CalculationResult test = CalculationResult.of(1, 2, RESULT); assertThat(test.getRowIndex()).isEqualTo(1); assertThat(test.getColumnIndex()).isEqualTo(2); assertThat(test.getResult()).isEqualTo(RESULT); assertThat(test.getResult(String.class)).isEqualTo(RESULT); assertThatExceptionOfType(ClassCastException.class).isThrownBy(() -> test.getResult(Integer.class)); }