1// =============================================================================
2// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3// Copyright (C) 2012 - SCILAB ENTERPRISES - Simon GARESTE
4//
5//  This file is distributed under the same license as the Scilab package.
6// =============================================================================
7//
8// <-- CLI SHELL MODE -->
9msgerr = msprintf(gettext("%s: Wrong number of input argument(s): %d to %d expected.\n"), "h5dataset", 5, 7);
10assert_checkerror("h5dataset()",msgerr,77);
11assert_checkerror("h5dataset(42)",msgerr,77);
12msgerr = msprintf(gettext("%s: Wrong type for input argument #%d: string or H5Object expected.\n"), "h5dataset", 1);
13assert_checkerror("h5dataset(42,42,42,42,42)",msgerr,999);
14msgerr = msprintf(gettext("%s: Wrong type for input argument #%d: string expected.\n"), "h5dataset", 2);
15assert_checkerror("h5dataset(""42"",42,42,42,42)",msgerr,999);
16//msgerr = msprintf(gettext("%s: Wrong size for input argument #%d: five row vector expected.\n"), "h5dataset", 3);
17//assert_checkerror("h5dataset(""42"",""42"",42,42,42)",msgerr,999);
18msgerr = msprintf(gettext("%s: Wrong type for input argument #%d: A double matrix expected.\n"), "h5dataset", 3);
19assert_checkerror("h5dataset(""42"",""42"",[""42"",""42"",""42"",""42"",""42""],42,42)",msgerr,999);
20msgerr = msprintf(gettext("%s: Wrong size for input argument #%d: six row vector expected.\n"), "h5dataset", 5);
21assert_checkerror("h5dataset(""42"",""42"",[42;42;42;42;42],42,42)",msgerr,999);
22msgerr = msprintf(gettext("%s: %s\n"), "h5dataset", msprintf(gettext("Invalid hdf5 file: %s."), "42"));
23assert_checkerror("h5dataset(""42"",""42"",[42;42;42;42;42],42,[42;42;42;42;42;42])",msgerr,999);
24a = h5open(TMPDIR + "/test.h5", "w");
25msgerr = msprintf(gettext("%s: %s\n"), "h5dataset", gettext("Incompatible dimensions"));
26assert_checkerror("h5dataset(a,""42"",[42;42;42;42;42],42,[42;42;42;42;42;42])",msgerr,999);
27x = uint32(1:100);
28y = uint32(matrix(1:100,10,10));
29z = uint32(zeros(7,12));
30h5write(a,"dx",y',[2 1 ],[ 4 1 ],[ 2 1 ],[ 1 9 ]);
31z(3:6,3:11) = a.root.dx.Data;
32msgerr = msprintf(gettext("%s: %s\n"), "h5dataset", msprintf(gettext("Cannot create the dataset: %s"), ""));
33assert_checkerror("h5dataset(a, """", [10 10 ; 2 1 ; 4 1 ; 2 1 ; 1 9], x, [7 12 ; 9 14 ; 3 3 ; 1 1 ; 1 1 ; 4 9])",msgerr,999);
34h5dataset(a, "D_set1", [10 10 ; 2 1 ; 4 1 ; 2 1 ; 1 9], x, [7 12 ; 9 14 ; 3 3 ; 1 1 ; 1 1 ; 4 9]);
35assert_checkequal(a.root.D_set1.Data,z');
36z = uint32(zeros(9,12));
37z(1:5,1) = uint32([1;21;41;61;81]);
38h5dataset(a, "D_set2", [5 20 ; 1 1 ; 1 1 ; 1 1 ; 5 1], y, [9 12 ; 9 14 ; 1 1 ; 1 1 ; 1 1 ; 5 1]);
39assert_checkequal(a.root.D_set2.Data,z');
40msgerr = msprintf(gettext("%s: %s\n") + "%s: %s\n", "h5dataset", gettext("Cannot write data in the dataset."), gettext("HDF5 description"), "src and dest data spaces have different sizes.");
41assert_checkerror("h5dataset(a, ""Dset_3"", [10 10 ; 2 1 ; 4 1 ; 2 1 ; 1 9], x, [10 10 ; 11 14 ; 3 3 ; 1 1 ; 1 1 ; 1 1])",msgerr,999);
42msgerr = msprintf(gettext("%s: %s\n"), "h5dataset", gettext("Invalid target dataspace."));
43assert_checkerror("h5dataset(a, ""D_set4"", [10 10 ; 2 1 ; 4 1 ; 2 1 ; 1 9], x, [7 12 ; 6 11 ; 3 3 ; 1 1 ; 1 1 ; 4 9])",msgerr,999);
44