Improve polynomial trendline equation representation

Insert a blank between x variable and its coefficient
Aplly also to linear trendline

Change-Id: I7d1e61f12aa1cf98b4181df6a4849df1e5293793
Reviewed-on: https://gerrit.libreoffice.org/27265
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
This commit is contained in:
Laurent Balland-Poirier 2016-07-17 15:10:51 +02:00 committed by Noel Grandin
parent e53bb6a0f0
commit 488c8053dc
2 changed files with 7 additions and 3 deletions

View file

@ -152,7 +152,7 @@ void Chart2TrendCalculators::testLinearRegression1()
xValues[i] = d;
yValues[i] = - 2.0 * d - 5.0 ;
}
checkCalculator( xValues, yValues, "f(x) = "+ OUStringLiteral1(aMinusSign) +" 2x "+ OUStringLiteral1(aMinusSign) +" 5");
checkCalculator( xValues, yValues, "f(x) = "+ OUStringLiteral1(aMinusSign) +" 2 x "+ OUStringLiteral1(aMinusSign) +" 5");
}
// test y = A x ^ B
@ -168,7 +168,7 @@ void Chart2TrendCalculators::testPolynomialRegression1()
xValues[i] = d;
yValues[i] = - 2.0 * d * d + 4 * d - 5;
}
OUString sExpectedFormula( "f(x) = "+ OUStringLiteral1(aMinusSign) +" 2x" + OUStringLiteral1( aSuperscriptFigures[2] ) + " + 4x "+ OUStringLiteral1(aMinusSign) +" 5" );
OUString sExpectedFormula( "f(x) = "+ OUStringLiteral1(aMinusSign) +" 2 x" + OUStringLiteral1( aSuperscriptFigures[2] ) + " + 4 x "+ OUStringLiteral1(aMinusSign) +" 5" );
checkCalculator( xValues, yValues, sExpectedFormula );
}

View file

@ -252,7 +252,7 @@ OUString PolynomialRegressionCurveCalculator::ImplGetRepresentation(
nCharMin += 3; // " + "
if ( i > 0 )
{
nCharMin += mXName.getLength(); // "x"
nCharMin += mXName.getLength() + 1; // " x"
if ( i > 1 )
nCharMin +=1; // "^i"
if ( i >= 10 )
@ -292,7 +292,11 @@ OUString PolynomialRegressionCurveCalculator::ImplGetRepresentation(
sal_Int32* pValueLength = nValueLength ? &nValueLength : nullptr;
OUString aValueString = getFormattedString( xNumFormatter, nNumberFormatKey, aValue, pValueLength );
if ( i == 0 || aValueString != "1" ) // aValueString may be rounded to 1 if nValueLength is small
{
aTmpBuf.append( aValueString );
if ( i > 0 ) // insert blank between coefficient and x
aTmpBuf.append( " " );
}
if(i > 0)
{