@Test
public void testMultipleDimArrayRealFromMatlabCreatedFile() throws IOException {
int ndims = 5;
int[] dims = new int[]{2, 3, 4, 5, 6};
File file = getTestFile("multiDimMatrix.mat");
MatFileReader reader = new MatFileReader(file);
MLDouble mlArray = (MLDouble) reader.getMLArray("in");
int testNDims = mlArray.getNDimensions();
Assert.assertEquals(ndims, testNDims);
int[] testDims = mlArray.getDimensions();
for (int i = 0; i < ndims; i++) {
Assert.assertEquals(dims[i], testDims[i]);
}
Double expectedVal = 0.0;
for (int i = 0; i < dims[4]; i++) {
for (int j = 0; j < dims[3]; j++) {
for (int k = 0; k < dims[2]; k++) {
for (int l = 0; l < dims[1]; l++) {
for (int m = 0; m < dims[0]; m++, expectedVal += 1.0) {
Double actual = mlArray.get(mlArray.getIndex(m, l, k, j, i));
Assert.assertEquals(expectedVal, actual);
}
}
}
}
}
}