On 08/14/2012 05:25 PM, luc wrote:
> Hi,
> 
> Since a few weeks, I have lots of tests failures due to matrix formats.
> 
> I'm not sure exactly when this started, but I think this may be related
> to MATH-831 and the fix introduced as of r1364775 in late July. This
> changed the behaviour of toString in AbstractRealMatrix. The difference
> is that despite the default number of digits is set to one, matrix
> entries that happen to be integer are displayed as "1" or "0" and not as
> "1.0" or "0.0" as expected by the Junit tests.
> 
> The tests that fail for me are:
> 
> MultivariateSummaryStatisticsTest: testToString,
> SparseRealMatrixTest: testToString
> SynchronizedMultivariateSummaryStatisticsTest: testToString
> Array2DRowRealMatrixTest: testToString
> BlockRealMatrixTest: testToString
> 
> They fail both when I use eclipse and when I use maven from the command
> line.  Eclipse is configured to use Sun Java 1.5.0_22 JVM. Maven is
> configured with OpenJDK 1.6.0_24. I use a Linux computer running Debian,
> configured with the French locale (but the tests do reset the locale
> themselves).
> 
> Here is the output from Maven:
> 
> Results :
> 
> Failed tests:  
> testForgottenSeparator(org.apache.commons.math3.linear.RealMatrixFormatTest):
> expected:<7> but was:<5>
>  
> testForgottenSuffix(org.apache.commons.math3.linear.RealMatrixFormatTest):
> expected:<9> but was:<5>
>   testToString(org.apache.commons.math3.linear.BlockRealMatrixTest):
> expected:<BlockRealMatrix{{1[.0,2.0,3.0},{2.0,5.0,3.0},{1.0,0.0,8.]0}}>
> but was:<BlockRealMatrix{{1[,0,2,0,3,0},{2,0,5,0,3,0},{1,0,0,0,8,]0}}>
>  
> testToString(org.apache.commons.math3.linear.Array2DRowRealMatrixTest):
> expected:<...ay2DRowRealMatrix{{1[.0,2.0,3.0},{2.0,5.0,3.0},{1.0,0.0,8.]0}}>
> but was:<...ay2DRowRealMatrix{{1[,0,2,0,3,0},{2,0,5,0,3,0},{1,0,0,0,8,]0}}>
>   testToString(org.apache.commons.math3.linear.SparseRealMatrixTest):
> expected:<OpenMapRealMatrix{{1[.0,2.0,3.0},{2.0,5.0,3.0},{1.0,0.0,8.]0}}> but
> was:<OpenMapRealMatrix{{1[,0,2,0,3,0},{2,0,5,0,3,0},{1,0,0,0,8,]0}}>
>  
> testToString(org.apache.commons.math3.stat.descriptive.MultivariateSummaryStatisticsTest):
> expected:<...ay2DRowRealMatrix{{1[.0,-1.0},{-1.0,1.]0}}(..)
>  
> testToString(org.apache.commons.math3.stat.descriptive.SynchronizedMultivariateSummaryStatisticsTest):
> expected:<...ay2DRowRealMatrix{{1[.0,-1.0},{-1.0,1.]0}}(..)
> 
> Tests run: 4067, Failures: 7, Errors: 0, Skipped: 40
> 
> [INFO]
> ------------------------------------------------------------------------
> [ERROR] BUILD FAILURE
> [INFO]
> ------------------------------------------------------------------------
> [INFO] There are test failures.
> 
> 
> Do someone else experience the same problems?

Hi Luc,

the problem is that

 * not all tests override the locale with US
 * in some locales (like yours) the decimal point is a ',' instead of a
   '.'

The RealMatrixFormat tests have to be improved to include always the
currently configured decimal separator for the expected result (as in
the RealVectorFormatTest class).

For the RealMatrix.toString, I kept the ',' as element separator for
backwards compatibility, but this will fail for certain locales, so I
guess it would be better to also set the used locale to US instead of
the local configured one to prevent such situations.

The same may also happen if some tests depend on the output of
RealVectorFormat (e.g. in ArrayRealVector), so maybe we should do the
same there?

Thomas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to