1
package org.scilab.tests.modules.hdf5;
3
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4
* Copyright (C) 2009 - DIGITEO - Bruno JOFRET
6
* This file must be used under the terms of the CeCILL.
7
* This source file is licensed as described in the file COPYING, which
8
* you should have received as part of this distribution. The terms
9
* are also available at
10
* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
13
import ncsa.hdf.hdf5lib.exceptions.HDF5Exception;
14
import ncsa.hdf.hdf5lib.exceptions.HDF5LibraryException;
16
import org.scilab.modules.hdf5.H5ScilabConstant;
17
import org.scilab.modules.hdf5.read.H5Read;
18
import org.scilab.modules.hdf5.write.H5Write;
19
import org.scilab.modules.types.ScilabDouble;
20
import org.scilab.modules.types.ScilabList;
21
import org.scilab.modules.types.ScilabString;
27
public class testScilabList {
28
private final static String tempDir = System.getProperty("java.io.tmpdir");
31
public void testEmptyList() throws NullPointerException, HDF5LibraryException, HDF5Exception {
32
ScilabList data = new ScilabList();
33
String fileName = tempDir + "/emptyListFromJava.sod";
35
int fileId = H5Write.createFile(fileName);
36
H5Write.writeInDataSet(fileId, "EmptyList", data);
37
H5Write.closeFile(fileId);
39
data = new ScilabList();
40
fileId = H5Read.openFile(fileName);
41
Assert.assertEquals(H5Read.getRootType(fileId), H5ScilabConstant.SCILAB_CLASS_LIST);
42
H5Read.readDataFromFile(fileId, data);
43
Assert.assertEquals(data.isEmpty(), true);
44
new File(fileName).delete();
48
public void testStringList() throws NullPointerException, HDF5LibraryException, HDF5Exception {
49
ScilabList dataList = new ScilabList();
50
dataList.add(new ScilabString("hello"));
51
String[][] stringData = {{"i", "am", "a"}, {"string", "matrix", "!!!"}};
52
String fileName = tempDir + "/stringListFromJava.sod";
54
dataList.add(new ScilabString(stringData));
56
int fileId = H5Write.createFile(fileName);
57
H5Write.writeInDataSet(fileId, "StringList", dataList);
58
H5Write.closeFile(fileId);
60
ScilabList data = new ScilabList();
61
fileId = H5Read.openFile(fileName);
62
Assert.assertEquals(H5Read.getRootType(fileId), H5ScilabConstant.SCILAB_CLASS_LIST);
63
H5Read.readDataFromFile(fileId, data);
65
Assert.assertEquals(data.getHeight(), dataList.getHeight());
66
Assert.assertEquals(data.getWidth(), dataList.getWidth());
68
Assert.assertEquals(data, dataList); // deep equals
69
new File(fileName).delete();
73
public void testDoubleList() throws NullPointerException, HDF5LibraryException, HDF5Exception {
74
ScilabList dataList = new ScilabList();
75
String fileName = tempDir + "/doubleListFromJava.sod";
76
dataList.add(new ScilabDouble(2));
77
dataList.add(new ScilabDouble(51));
79
int fileId = H5Write.createFile(fileName);
80
H5Write.writeInDataSet(fileId, "DoubleList", dataList);
81
H5Write.closeFile(fileId);
83
ScilabList data = new ScilabList();
84
fileId = H5Read.openFile(fileName);
85
Assert.assertEquals(H5Read.getRootType(fileId), H5ScilabConstant.SCILAB_CLASS_LIST);
86
H5Read.readDataFromFile(fileId, data);
88
Assert.assertEquals(data.getHeight(), dataList.getHeight());
89
Assert.assertEquals(data.getWidth(), dataList.getWidth());
91
Assert.assertEquals(data, dataList); // deep equals
92
new File(fileName).delete();
96
public void testMixedList() throws HDF5Exception {
97
String fileName = tempDir + "/mixedListFromJava.sod";
98
ScilabList dataList = new ScilabList();
99
dataList.add(new ScilabDouble(2));
100
dataList.add(new ScilabDouble(51));
101
String[][] stringData = {{"i", "am", "a"}, {"string", "matrix", "!!!"}};
102
dataList.add(new ScilabString(stringData));
104
int fileId = H5Write.createFile(fileName);
105
H5Write.writeInDataSet(fileId, "MixedList", dataList);
106
H5Write.closeFile(fileId);
108
ScilabList data = new ScilabList();
109
fileId = H5Read.openFile(fileName);
110
Assert.assertEquals(H5Read.getRootType(fileId), H5ScilabConstant.SCILAB_CLASS_LIST);
111
H5Read.readDataFromFile(fileId, data);
113
Assert.assertEquals(data.getHeight(), dataList.getHeight());
114
Assert.assertEquals(data.getWidth(), dataList.getWidth());
116
Assert.assertEquals(data, dataList); // deep equals
117
new File(fileName).delete();
121
* Call all public methods through introspection
122
* @param args not used
123
* @throws Exception on error
125
public static void main(String[] args) throws Exception {
126
final Class < ? > myClass = Class.forName(new Throwable().getStackTrace()[0].getClassName());
128
Object obj = myClass.newInstance();
129
java.lang.reflect.Method[] tests = myClass.getDeclaredMethods();
130
for (java.lang.reflect.Method method : tests) {
131
if (method.getAnnotation(Test.class) != null) {
132
method.invoke(obj, (Object[]) null);