### Question:
CalculationParameters implements ImmutableBean, Serializable { public static CalculationParameters of(CalculationParameter... parameters) { if (parameters.length == 0) { return EMPTY; } return new CalculationParameters(Stream.of(parameters).collect(toImmutableMap(p -> p.queryType()))); } @ImmutableConstructor private  CalculationParameters(Map<Class<? extends CalculationParameter>, CalculationParameter> parameters); static CalculationParameters empty(); static CalculationParameters of(CalculationParameter... parameters); static CalculationParameters of(List<? extends CalculationParameter> parameters); CalculationParameters combinedWith(CalculationParameters other); CalculationParameters with(CalculationParameter parameter); CalculationParameters without(Class<? extends CalculationParameter> type); CalculationParameters filter(CalculationTarget target, Measure measure); @SuppressWarnings("unchecked") Optional<T> findParameter(Class<T> type); @SuppressWarnings("unchecked") T getParameter(Class<T> type); static TypedMetaBean<CalculationParameters> meta(); @Override TypedMetaBean<CalculationParameters> metaBean(); ImmutableMap<Class<? extends CalculationParameter>, CalculationParameter> getParameters(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void of() { CalculationParameters test = CalculationParameters.of(PARAM); assertThat(test.getParameters()).hasSize(1); assertThat(test.findParameter(TestParameter.class)).isEqualTo(Optional.of(PARAM)); }