### Question:
SabrFormulaData implements SmileModelData, ImmutableBean, Serializable { public static SabrFormulaData of(double alpha, double beta, double rho, double nu) { return new SabrFormulaData(DoubleArray.of(alpha, beta, rho, nu)); } private  SabrFormulaData(
      DoubleArray parameters); static SabrFormulaData of(double alpha, double beta, double rho, double nu); static SabrFormulaData of(double[] parameters); double getAlpha(); double getBeta(); double getRho(); double getNu(); SabrFormulaData withAlpha(double alpha); SabrFormulaData withBeta(double beta); SabrFormulaData withRho(double rho); SabrFormulaData withNu(double nu); @Override int getNumberOfParameters(); @Override double getParameter(int index); @Override boolean isAllowed(int index, double value); @Override SabrFormulaData with(int index, double value); static TypedMetaBean<SabrFormulaData> meta(); @Override TypedMetaBean<SabrFormulaData> metaBean(); DoubleArray getParameters(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testNegativeBETA() { assertThatIllegalArgumentException() .isThrownBy(() -> SabrFormulaData.of(ALPHA, -BETA, RHO, NU)); }
@Test public void testNegativeNu() { assertThatIllegalArgumentException() .isThrownBy(() -> SabrFormulaData.of(ALPHA, BETA, RHO, -NU)); }
@Test public void testLowRho() { assertThatIllegalArgumentException() .isThrownBy(() -> SabrFormulaData.of(ALPHA, BETA, RHO - 10, NU)); }
@Test public void testHighRho() { assertThatIllegalArgumentException() .isThrownBy(() -> SabrFormulaData.of(ALPHA, BETA, RHO + 10, NU)); }
@Test public void testWrongParameterLength() { assertThatIllegalArgumentException() .isThrownBy(() -> SabrFormulaData.of(new double[] {ALPHA, BETA, RHO, NU, 0.1})); }
@Test public void coverage() { coverImmutableBean(DATA); SabrFormulaData another = SabrFormulaData.of(1.2, 0.4, 0.0, 0.2); coverBeanEquals(DATA, another); }