Index: lutinmatrix/src/test/org/codelutin/math/matrix/MatrixNDTest.java diff -u lutinmatrix/src/test/org/codelutin/math/matrix/MatrixNDTest.java:1.9 lutinmatrix/src/test/org/codelutin/math/matrix/MatrixNDTest.java:1.10 --- lutinmatrix/src/test/org/codelutin/math/matrix/MatrixNDTest.java:1.9 Mon Apr 2 10:51:44 2007 +++ lutinmatrix/src/test/org/codelutin/math/matrix/MatrixNDTest.java Wed Oct 10 15:56:12 2007 @@ -21,9 +21,9 @@ * * Created: 10 mai 2004 * -* @version $Revision: 1.9 $ +* @version $Revision: 1.10 $ * -* Mise a jour: $Date: 2007/04/02 10:51:44 $ +* Mise a jour: $Date: 2007/10/10 15:56:12 $ * par : $Author: bpoussin $ */ @@ -535,7 +535,94 @@ } - public void testToList() throws Exception { + public void testReduceDims() throws Exception { + + MatrixND mat = null; + + mat = getFactory().create(new int[]{6, 7, 8}); + MatrixHelper.fill(mat, 3); + + mat = mat.sumOverDim(1); + assertEquals(21, mat.getValue(0, 0, 0), 0); + mat = mat.reduceDims(1); + assertEquals(2, mat.getNbDim()); + assertEquals(6, mat.getDim(0)); + assertEquals(8, mat.getDim(1)); + assertEquals(21, mat.getValue(0, 0), 0); + assertEquals(21, mat.getValue(5, 7), 0); + + + mat = getFactory().create(new int[]{2, 2, 2}); + MatrixHelper.fill(mat, 26); + + mat = mat.sumOverDim(1); + mat = mat.sumOverDim(0); + assertEquals(104, mat.getValue(0, 0, 0), 0); + mat = mat.reduceDims(1,0); + assertEquals(1, mat.getNbDim()); + assertEquals(2, mat.getDim(0)); + assertEquals(104, mat.getValue(0), 0); + assertEquals(104, mat.getValue(1), 0); + + + mat = getFactory().create(new int[]{2, 2, 2}); + MatrixHelper.fill(mat, 6); + + mat = mat.sumOverDim(1); + mat = mat.sumOverDim(2); + mat = mat.sumOverDim(0); + assertEquals(48, mat.getValue(0, 0, 0), 0); + mat = mat.reduceDims(1,2,0); + assertEquals(1, mat.getNbDim()); + assertEquals(1, mat.getDim(0)); + assertEquals(48, mat.getValue(0), 0); + + + + mat = getFactory().create(new int[]{6, 7, 8}); + MatrixHelper.fill(mat, 3); + + mat = mat.sumOverDim(1); + assertEquals(21, mat.getValue(0, 0, 0), 0); + mat = mat.reduceDims(0); + assertEquals(3, mat.getNbDim()); + assertEquals(6, mat.getDim(0)); + assertEquals(1, mat.getDim(1)); + assertEquals(8, mat.getDim(2)); + assertEquals(21, mat.getValue(0, 0, 0), 0); + assertEquals(21, mat.getValue(5, 0, 7), 0); + + + mat = getFactory().create(new int[]{2, 2, 2}); + MatrixHelper.fill(mat, 26); + + mat = mat.sumOverDim(1); + mat = mat.sumOverDim(0); + assertEquals(104, mat.getValue(0, 0, 0), 0); + mat = mat.reduceDims(1); + assertEquals(2, mat.getNbDim()); + assertEquals(1, mat.getDim(0)); + assertEquals(2, mat.getDim(1)); + assertEquals(104, mat.getValue(0, 0), 0); + assertEquals(104, mat.getValue(0, 1), 0); + + + mat = getFactory().create(new int[]{2, 2, 2}); + MatrixHelper.fill(mat, 6); + + mat = mat.sumOverDim(1); + mat = mat.sumOverDim(2); + mat = mat.sumOverDim(0); + assertEquals(48, mat.getValue(0, 0, 0), 0); + mat = mat.reduceDims(0, 1, 2); + assertEquals(1, mat.getNbDim()); + assertEquals(1, mat.getDim(0)); + assertEquals(48, mat.getValue(0), 0); + + + } + + public void testToList() throws Exception { MatrixND mat1 = getFactory().create(new int[]{3, 2, 1}); mat1.setValue(0, 0, 0, 1.0E-7); mat1.setValue(1, 1, 0, 2);