Author: echatellier Date: 2011-12-02 10:47:58 +0100 (Fri, 02 Dec 2011) New Revision: 399 Url: http://nuiton.org/repositories/revision/nuiton-matrix/399 Log: #1842 : importCSV doesn't work with Reader that doesn't suport mark() operation #1840 : Matrix viewer component is buggy with jfreechart 1.0.14 Modified: trunk/nuiton-matrix-gui/pom.xml trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java trunk/nuiton-matrix/src/test/java/org/nuiton/math/matrix/ImportExportMatrixTest.java trunk/pom.xml Modified: trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java =================================================================== --- trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java 2011-11-28 22:21:36 UTC (rev 398) +++ trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java 2011-12-02 09:47:58 UTC (rev 399) @@ -1114,13 +1114,16 @@ */ @Override public void importCSV(Reader reader, int[] origin) throws IOException { - + + // input reader doesn't supprt mark operation + BufferedReader bReader = new BufferedReader(reader); + // test file format - reader.mark(1); - char firstChar = (char)reader.read(); - reader.reset(); + bReader.mark(1); + char firstChar = (char)bReader.read(); + bReader.reset(); if (firstChar == '[') { - importCSVND(reader, origin); + importCSVND(bReader, origin); return; } @@ -1131,7 +1134,7 @@ StringBuffer number = new StringBuffer(20); boolean stop = false; - for (int c = reader.read(); !stop; c = reader.read()) { + for (int c = bReader.read(); !stop; c = bReader.read()) { if (c == -1) { stop = true; } Modified: trunk/nuiton-matrix/src/test/java/org/nuiton/math/matrix/ImportExportMatrixTest.java =================================================================== --- trunk/nuiton-matrix/src/test/java/org/nuiton/math/matrix/ImportExportMatrixTest.java 2011-11-28 22:21:36 UTC (rev 398) +++ trunk/nuiton-matrix/src/test/java/org/nuiton/math/matrix/ImportExportMatrixTest.java 2011-12-02 09:47:58 UTC (rev 399) @@ -26,12 +26,14 @@ package org.nuiton.math.matrix; import java.io.File; +import java.io.FileReader; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.util.Arrays; import java.util.List; +import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.junit.Assert; import org.junit.BeforeClass; @@ -294,6 +296,33 @@ } /** + * Test le même import avec un Reader qui ne support pas l'operation mark(): + * FileReader. + * + * @throws IOException + */ + @Test + public void testMatrix2DImportReader() throws IOException { + + String matrix3D = "[2, 2, 2] , 3.14159265 \n" + + "java.lang.String:2009,2010\n" + + "java.lang.String:Nantes,Lille\n" + + "java.lang.String:Informatique,Administration\n" + + "0;0;0;0.0\n" + + "0;0;1;1.0\n" + + "0;1;1;4.0\n" + + "1;0;0;-4.0E-7\n" + + "1;0;1;2.0\n" + + "1;1;0;4.0\n" + + "1;1;1;42.0"; + File file = File.createTempFile("import-reader", ".txt"); + file.deleteOnExit(); + FileUtils.writeStringToFile(file, matrix3D); + MatrixND m = MatrixFactory.getInstance().create(new int[]{2, 2, 2}); + m.importCSV(new FileReader(file), null); + } + + /** * Test que l'import d'une matrice à partir d'une chaine produit * l'import voulu avec error semantics vide. * Modified: trunk/nuiton-matrix-gui/pom.xml =================================================================== --- trunk/nuiton-matrix-gui/pom.xml 2011-11-28 22:21:36 UTC (rev 398) +++ trunk/nuiton-matrix-gui/pom.xml 2011-12-02 09:47:58 UTC (rev 399) @@ -51,7 +51,7 @@ </dependency> <dependency> - <groupId>org.jfree</groupId> + <groupId>jfree</groupId> <artifactId>jfreechart</artifactId> </dependency> </dependencies> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-11-28 22:21:36 UTC (rev 398) +++ trunk/pom.xml 2011-12-02 09:47:58 UTC (rev 399) @@ -65,9 +65,9 @@ </dependency> <dependency> - <groupId>org.jfree</groupId> + <groupId>jfree</groupId> <artifactId>jfreechart</artifactId> - <version>1.0.14</version> + <version>1.0.13</version> <scope>compile</scope> </dependency> </dependencies>