### Question:
SabrModelFitter extends SmileModelFitter<SabrFormulaData> { @Override protected NonLinearParameterTransforms getTransform(DoubleArray start) { final BitSet fixed = new BitSet(); return new UncoupledParameterTransforms(start, DEFAULT_TRANSFORMS, fixed); } @SuppressWarnings("unchecked")  SabrModelFitter(
      double forward,
      DoubleArray strikes,
      double timeToExpiry,
      DoubleArray impliedVols,
      DoubleArray error,
      SabrVolatilityFormula sabrVolatilityFormula);  SabrModelFitter(
      double forward,
      DoubleArray strikes,
      double timeToExpiry,
      DoubleArray impliedVols,
      DoubleArray error,
      VolatilityFunctionProvider<SabrFormulaData> model); @Override SabrFormulaData toSmileModelData(DoubleArray modelParameters);  }### Answer:
@Test public void testExactFitWithTransform() { double[] start = new double[] {0.01, 0.99, 0.9, 0.4}; NonLinearParameterTransforms transf = _fitter.getTransform(DoubleArray.copyOf(start)); LeastSquareResultsWithTransform results = _fitter.solve(DoubleArray.copyOf(start), transf); double[] res = results.getModelParameters().toArray(); double eps = 1e-6; assertThat(ALPHA).isCloseTo(res[0], offset(eps)); assertThat(BETA).isCloseTo(res[1], offset(eps)); assertThat(RHO).isCloseTo(res[2], offset(eps)); assertThat(NU).isCloseTo(res[3], offset(eps)); assertThat(0.0).isCloseTo(results.getChiSq(), offset(eps)); }