r318 - in trunk/nuiton-matrix/src: main/java/org/nuiton/math/matrix test/java/org/nuiton/math/matrix
Author: echatellier Date: 2010-12-16 18:21:23 +0100 (Thu, 16 Dec 2010) New Revision: 318 Url: http://nuiton.org/repositories/revision/nuiton-matrix/318 Log: Fix les tests Modified: trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java trunk/nuiton-matrix/src/test/java/org/nuiton/math/matrix/MatrixNDTest.java 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 2010-12-16 16:45:33 UTC (rev 317) +++ trunk/nuiton-matrix/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java 2010-12-16 17:21:23 UTC (rev 318) @@ -811,9 +811,17 @@ @Override public MatrixND getSubMatrix(Object[]... elems) { + + // la reduction doit se faire sur le meme nombre de dimension + if (elems.length != dim.length) { + throw new IllegalArgumentException(String.format("Can't get sub matrix with different dimension count (expected: %d, got %d)", dim.length, elems.length)); + } + MatrixND result = this; for (int i = 0; i < elems.length; ++i) { - result = result.getSubMatrix(i, elems[i]); + if (elems[i] != null) { + result = result.getSubMatrix(i, elems[i]); + } } return result; } @@ -825,9 +833,17 @@ @Override public MatrixND getSubMatrix(int[]... elems) { + + // la reduction doit se faire sur le meme nombre de dimension + if (elems.length != dim.length) { + throw new IllegalArgumentException(String.format("Can't get sub matrix with different dimension count (expected: %d, got %d)", dim.length, elems.length)); + } + MatrixND result = this; for (int i = 0; i < elems.length; ++i) { - result = new SubMatrix(result, i, elems[i]); + if (elems[i] != null) { + result = new SubMatrix(result, i, elems[i]); + } } return result; } Modified: trunk/nuiton-matrix/src/test/java/org/nuiton/math/matrix/MatrixNDTest.java =================================================================== --- trunk/nuiton-matrix/src/test/java/org/nuiton/math/matrix/MatrixNDTest.java 2010-12-16 16:45:33 UTC (rev 317) +++ trunk/nuiton-matrix/src/test/java/org/nuiton/math/matrix/MatrixNDTest.java 2010-12-16 17:21:23 UTC (rev 318) @@ -445,9 +445,9 @@ // reduction de "e", "f", "g" en "f", "g" MatrixND mat2 = mat.getSubMatrix(1, new int[]{1,2}); - Assert.assertEquals(new String[]{"f","g"}, mat2.getSemantic(1)); + Assert.assertEquals(Arrays.asList(new String[]{"f","g"}), mat2.getSemantic(1)); mat2 = mat2.getSubMatrix(2, new int[]{2}); - Assert.assertEquals(new String[]{"m"}, mat2.getSemantic(2)); + Assert.assertEquals(Arrays.asList(new String[]{"m"}), mat2.getSemantic(2)); } /** @@ -466,9 +466,9 @@ // reduction de "e", "f", "g" en "f", "g" MatrixND mat2 = mat.getSubMatrix(1, "f", "g"); - Assert.assertEquals(new String[]{"f","g"}, mat2.getSemantic(1)); + Assert.assertEquals(Arrays.asList(new String[]{"f","g"}), mat2.getSemantic(1)); mat2 = mat2.getSubMatrix(2, "m"); - Assert.assertEquals(new String[]{"m"}, mat2.getSemantic(2)); + Assert.assertEquals(Arrays.asList(new String[]{"m"}), mat2.getSemantic(2)); } /** @@ -487,13 +487,13 @@ // reduction de "e", "f", "g" en "f", "g" et "k", "l", "m" en "m" MatrixND mat2 = mat.getSubMatrix(new int[][]{new int[]{0, 1, 2}, new int[]{1,2}, new int[]{2}}); - Assert.assertEquals(new String[]{"f","g"}, mat2.getSemantic(1)); - Assert.assertEquals(new String[]{"m"}, mat2.getSemantic(2)); + Assert.assertEquals(Arrays.asList(new String[]{"f","g"}), mat2.getSemantic(1)); + Assert.assertEquals(Arrays.asList(new String[]{"m"}), mat2.getSemantic(2)); // meme test avec des null mat2 = mat.getSubMatrix(new int[][]{null, new int[]{1,2}, new int[]{2}}); - Assert.assertEquals(new String[]{"f","g"}, mat2.getSemantic(1)); - Assert.assertEquals(new String[]{"m"}, mat2.getSemantic(2)); + Assert.assertEquals(Arrays.asList(new String[]{"f","g"}), mat2.getSemantic(1)); + Assert.assertEquals(Arrays.asList(new String[]{"m"}), mat2.getSemantic(2)); } /**
participants (1)
-
echatellier@users.nuiton.org