Skip to content

Commit 8e8a617

Browse files
committed
test:hdf5 use param
test:netcdf use param
1 parent 0284ebc commit 8e8a617

File tree

3 files changed

+161
-180
lines changed

3 files changed

+161
-180
lines changed

test/TestHDF4.m

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,35 @@
11
classdef TestHDF4 < matlab.unittest.TestCase
22

33
properties
4-
TestData
4+
file
55
end
66

77
methods (TestClassSetup)
88
function setup_file(tc)
99
import matlab.unittest.constraints.IsFile
10-
tc.TestData.basic = fullfile(matlabroot, "toolbox/matlab/demos/example.hdf");
11-
tc.assumeThat(tc.TestData.basic, IsFile)
10+
tc.file = fullfile(matlabroot, "toolbox/matlab/demos/example.hdf");
11+
tc.assumeThat(tc.file, IsFile)
1212
end
1313
end
1414

1515
methods (Test, TestTags="hdf4")
1616

1717
function test_exists(tc)
1818
import matlab.unittest.constraints.IsScalar
19-
basic = tc.TestData.basic;
2019

21-
e = stdlib.h4exists(basic, "Example SDS");
20+
e = stdlib.h4exists(tc.file, "Example SDS");
2221

2322
tc.verifyThat(e, IsScalar)
2423
tc.verifyTrue(e);
2524

26-
tc.verifyFalse(stdlib.h4exists(basic, "/j"))
25+
tc.verifyFalse(stdlib.h4exists(tc.file, "/j"))
2726

2827
end
2928

3029

3130
function test_size(tc)
32-
basic = tc.TestData.basic;
3331

34-
s = stdlib.h4size(basic, "Example SDS");
32+
s = stdlib.h4size(tc.file, "Example SDS");
3533
tc.verifyEqual(s, [16, 5])
3634

3735
end
@@ -40,9 +38,8 @@ function test_size(tc)
4038
function test_vars(tc)
4139
import matlab.unittest.constraints.AnyElementOf
4240
import matlab.unittest.constraints.IsEqualTo
43-
basic = tc.TestData.basic;
4441

45-
v = stdlib.h4variables(basic);
42+
v = stdlib.h4variables(tc.file);
4643
tc.verifyThat(AnyElementOf(v), IsEqualTo("Example SDS"))
4744
end
4845

test/TestHDF5.m

Lines changed: 76 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
classdef TestHDF5 < matlab.unittest.TestCase
22

33
properties
4-
TestData
4+
file
5+
A0
6+
A1
7+
A2
8+
A3
9+
A4
10+
utf
11+
utf2
512
end
613

714
properties (TestParameter)
@@ -16,44 +23,35 @@ function setup_file(tc)
1623

1724
td = tc.createTemporaryFolder();
1825

19-
A0 = 42.;
20-
A1 = [42.; 43.];
21-
A2 = magic(4);
22-
A3 = A2(:,1:3,1);
23-
A3(:,:,2) = 2*A3;
24-
A4(:,:,:,5) = A3;
25-
utf = 'Hello There 😄';
26-
utf2 = [utf; ""];
27-
28-
tc.TestData.A0 = A0;
29-
tc.TestData.A1 = A1;
30-
tc.TestData.A2 = A2;
31-
tc.TestData.A3 = A3;
32-
tc.TestData.A4 = A4;
33-
tc.TestData.utf = utf;
34-
tc.TestData.utf2 = utf2;
35-
36-
tc.TestData.basic = td + "/basic.h5";
37-
bf = tc.TestData.basic;
26+
tc.A0 = 42.;
27+
tc.A1 = [42.; 43.];
28+
tc.A2 = magic(4);
29+
tc.A3 = tc.A2(:,1:3,1);
30+
tc.A3(:,:,2) = 2*tc.A3;
31+
tc.A4(:,:,:,5) = tc.A3;
32+
tc.utf = 'Hello There 😄';
33+
tc.utf2 = [tc.utf; ""];
34+
35+
tc.file = td + "/basic.h5";
3836

3937
% create test data first, so that parallel tests works
40-
stdlib.h5save(bf, '/A0', A0)
38+
stdlib.h5save(tc.file, '/A0', tc.A0)
4139

42-
tc.assertTrue(stdlib.is_hdf5(bf))
40+
tc.assertTrue(stdlib.is_hdf5(tc.file))
4341

44-
stdlib.h5save(bf, '/A1', A1)
45-
stdlib.h5save(bf, '/A2', A2)
46-
stdlib.h5save(bf, '/A3', A3, "size", size(A3))
47-
stdlib.h5save(bf, '/A4', A4)
42+
stdlib.h5save(tc.file, '/A1', tc.A1)
43+
stdlib.h5save(tc.file, '/A2', tc.A2)
44+
stdlib.h5save(tc.file, '/A3', tc.A3, size=size(tc.A3))
45+
stdlib.h5save(tc.file, '/A4', tc.A4)
4846

49-
stdlib.h5save(bf, "/utf", utf)
50-
stdlib.h5save(bf, "/utf2", utf2)
47+
stdlib.h5save(tc.file, "/utf", tc.utf)
48+
stdlib.h5save(tc.file, "/utf2", tc.utf2)
5149

52-
stdlib.h5save(bf, '/t/x', 12)
53-
stdlib.h5save(bf, '/t/y', 13)
54-
stdlib.h5save(bf, '/j/a/b', 6)
50+
stdlib.h5save(tc.file, '/t/x', 12)
51+
stdlib.h5save(tc.file, '/t/y', 13)
52+
stdlib.h5save(tc.file, '/j/a/b', 6)
5553

56-
tc.assertThat(bf, matlab.unittest.constraints.IsFile)
54+
tc.assertThat(tc.file, matlab.unittest.constraints.IsFile)
5755
end
5856
end
5957

@@ -70,30 +68,27 @@ function test_auto_chunk_size(tc)
7068

7169
function test_get_variables(tc)
7270

73-
basic = tc.TestData.basic;
74-
75-
v = stdlib.h5variables(basic);
71+
v = stdlib.h5variables(tc.file);
7672
k = ["A0", "A1", "A2", "A3", "A4", "utf", "utf2"];
7773

7874
tc.verifyEqual(sort(v), k)
7975

8076
% 1-level group
81-
v = stdlib.h5variables(basic, "/t");
77+
v = stdlib.h5variables(tc.file, "/t");
8278
tc.verifyEqual(sort(v), ["x", "y"])
8379

8480
% traversal
85-
tc.verifyEmpty(stdlib.h5variables(basic, "/j") )
81+
tc.verifyEmpty(stdlib.h5variables(tc.file, "/j") )
8682

87-
tc.verifyEqual(stdlib.h5variables(basic, "/j/a") , "b")
83+
tc.verifyEqual(stdlib.h5variables(tc.file, "/j/a") , "b")
8884

8985
end
9086

9187

9288
function test_exists(tc)
9389
import matlab.unittest.constraints.IsScalar
94-
basic = tc.TestData.basic;
9590

96-
e = stdlib.h5exists(basic, "/A0");
91+
e = stdlib.h5exists(tc.file, "/A0");
9792

9893
tc.verifyThat(e, IsScalar)
9994
tc.verifyTrue(e);
@@ -103,31 +98,30 @@ function test_exists(tc)
10398

10499
function test_size(tc)
105100
import matlab.unittest.constraints.IsScalar
106-
basic = tc.TestData.basic;
107101

108-
s = stdlib.h5size(basic, '/A0');
102+
s = stdlib.h5size(tc.file, '/A0');
109103
tc.verifyEmpty(s)
110104

111-
s = stdlib.h5size(basic, '/A1');
105+
s = stdlib.h5size(tc.file, '/A1');
112106
tc.verifyThat(s, IsScalar)
113107
tc.verifyEqual(s, 2)
114108

115-
s = stdlib.h5size(basic, '/A2');
109+
s = stdlib.h5size(tc.file, '/A2');
116110
tc.verifyTrue(isvector(s))
117111
tc.verifyEqual(s, [4,4])
118112

119-
s = stdlib.h5size(basic, '/A3');
113+
s = stdlib.h5size(tc.file, '/A3');
120114
tc.verifyTrue(isvector(s))
121115
tc.verifyEqual(s, [4,3,2])
122116

123-
s = stdlib.h5size(basic, '/A4');
117+
s = stdlib.h5size(tc.file, '/A4');
124118
tc.verifyTrue(isvector(s))
125119
tc.verifyEqual(s, [4,3,2,5])
126120

127-
s = stdlib.h5size(basic, '/utf');
121+
s = stdlib.h5size(tc.file, '/utf');
128122
tc.verifyEmpty(s)
129123

130-
s = stdlib.h5size(basic, '/utf2');
124+
s = stdlib.h5size(tc.file, '/utf2');
131125
tc.verifyEqual(s, 2)
132126

133127
end
@@ -136,119 +130,110 @@ function test_size(tc)
136130
function test_read(tc)
137131
import matlab.unittest.constraints.IsScalar
138132

139-
basic = tc.TestData.basic;
140133

141-
s = h5read(basic, '/A0');
134+
s = h5read(tc.file, '/A0');
142135
tc.verifyThat(s, IsScalar)
143-
tc.verifyEqual(s, tc.TestData.A0)
136+
tc.verifyEqual(s, tc.A0)
144137

145-
s = h5read(basic, '/A1');
138+
s = h5read(tc.file, '/A1');
146139
tc.verifyTrue(isvector(s))
147-
tc.verifyEqual(s, tc.TestData.A1)
140+
tc.verifyEqual(s, tc.A1)
148141

149-
s = h5read(basic, '/A2');
142+
s = h5read(tc.file, '/A2');
150143
tc.verifyTrue(ismatrix(s))
151-
tc.verifyEqual(s, tc.TestData.A2)
144+
tc.verifyEqual(s, tc.A2)
152145

153-
s = h5read(basic, '/A3');
146+
s = h5read(tc.file, '/A3');
154147
tc.verifyEqual(ndims(s), 3)
155-
tc.verifyEqual(s, tc.TestData.A3)
148+
tc.verifyEqual(s, tc.A3)
156149

157-
s = h5read(basic, '/A4');
150+
s = h5read(tc.file, '/A4');
158151
tc.verifyEqual(ndims(s), 4)
159-
tc.verifyEqual(s, tc.TestData.A4)
152+
tc.verifyEqual(s, tc.A4)
160153

161-
s = h5read(basic, '/utf');
154+
s = h5read(tc.file, '/utf');
162155
tc.verifyTrue(ischar(s))
163-
tc.verifyEqual(s, tc.TestData.utf)
156+
tc.verifyEqual(s, tc.utf)
164157

165-
s = h5read(basic, '/utf2');
158+
s = h5read(tc.file, '/utf2');
166159
tc.verifyClass(s, 'string')
167-
tc.verifyEqual(s, tc.TestData.utf2)
160+
tc.verifyEqual(s, tc.utf2)
168161

169162
end
170163

171164

172165
function test_shape(tc)
173166

174-
basic = tc.TestData.basic;
175-
176-
stdlib.h5save(basic, "/vector1", 34, "size", 1)
177-
s = stdlib.h5size(basic, '/vector1');
167+
stdlib.h5save(tc.file, "/vector1", 34, "size", 1)
168+
s = stdlib.h5size(tc.file, '/vector1');
178169
tc.verifyEqual(s, 1);
179170

180-
stdlib.h5save(basic, "/scalar", 34, "size", 0)
181-
s = stdlib.h5size(basic, '/scalar');
171+
stdlib.h5save(tc.file, "/scalar", 34, "size", 0)
172+
s = stdlib.h5size(tc.file, '/scalar');
182173
tc.verifyEmpty(s);
183174

184175
end
185176

186177

187178
function test_coerce(tc, type)
188-
basic = tc.TestData.basic;
189179

190-
stdlib.h5save(basic, "/" + type, 0, "type", type)
180+
stdlib.h5save(tc.file, "/" + type, 0, "type", type)
191181

192182
switch type
193183
case "string", vt = 'char';
194184
otherwise, vt = type;
195185
end
196186

197-
tc.verifyClass(h5read(basic, "/"+type), vt)
187+
tc.verifyClass(h5read(tc.file, "/"+type), vt)
198188

199189
end
200190

201191

202192
function test_rewrite(tc)
203-
basic = tc.TestData.basic;
204193

205-
stdlib.h5save(basic, '/A2', 3*magic(4))
194+
stdlib.h5save(tc.file, '/A2', 3*magic(4))
206195

207-
tc.verifyEqual(h5read(basic, '/A2'), 3*magic(4))
196+
tc.verifyEqual(h5read(tc.file, '/A2'), 3*magic(4))
208197
end
209198

210199
function test_int8(tc)
211-
basic = tc.TestData.basic;
212200

213-
stdlib.h5save(basic, "/i1", int8(127))
201+
stdlib.h5save(tc.file, "/i1", int8(127))
214202

215-
a = h5read(basic, "/i1");
203+
a = h5read(tc.file, "/i1");
216204
tc.verifyEqual(a, int8(127))
217205

218206
% test rewrite
219-
stdlib.h5save(basic, "/i1", int8(-128))
207+
stdlib.h5save(tc.file, "/i1", int8(-128))
220208

221-
a = h5read(basic, "/i1");
209+
a = h5read(tc.file, "/i1");
222210
tc.verifyEqual(a, int8(-128))
223211

224212
% test int8 array
225-
stdlib.h5save(basic, "/Ai1", int8([1, 2]))
226-
a = h5read(basic, "/Ai1");
213+
stdlib.h5save(tc.file, "/Ai1", int8([1, 2]))
214+
a = h5read(tc.file, "/Ai1");
227215
tc.verifyEqual(a, int8([1;2]))
228216
end
229217

230218
function test_string(tc, str)
231219

232-
basic = tc.TestData.basic;
233-
234-
stdlib.h5save(basic, "/"+str, str)
220+
stdlib.h5save(tc.file, "/"+str, str)
235221

236-
a = h5read(basic, "/"+str);
222+
a = h5read(tc.file, "/"+str);
237223
tc.verifyEqual(a, char(str))
238224

239225
% test rewrite
240-
stdlib.h5save(basic, "/"+str, str+"hi")
226+
stdlib.h5save(tc.file, "/"+str, str+"hi")
241227

242-
a = h5read(basic, "/"+str);
228+
a = h5read(tc.file, "/"+str);
243229
tc.verifyEqual(a, char(str+"hi"))
244230
end
245231

246232

247233
function test_real_only(tc)
248-
basic = tc.TestData.basic;
249234

250-
tc.verifyError(@() stdlib.h5save(basic, "/bad_imag", 1j), 'MATLAB:validators:mustBeReal')
251-
tc.verifyError(@() stdlib.h5variables(basic, '/nothere'), 'MATLAB:imagesci:h5info:unableToFind')
235+
tc.verifyError(@() stdlib.h5save(tc.file, "/bad_imag", 1j), 'MATLAB:validators:mustBeReal')
236+
tc.verifyError(@() stdlib.h5variables(tc.file, '/nothere'), 'MATLAB:imagesci:h5info:unableToFind')
252237
end
253238

254239
end

0 commit comments

Comments
 (0)