Skip to content

Commit dc32142

Browse files
committed
reenable hdf5 string
1 parent e9f706f commit dc32142

File tree

3 files changed

+50
-39
lines changed

3 files changed

+50
-39
lines changed

+hdf5nc/coerce_ds.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
function A = coerce_ds(A, dtype)
22
% used by h5save and ncsave
33
arguments
4-
A {mustBeNumeric,mustBeNonempty}
4+
A {mustBeNonempty}
55
dtype string
66
end
77

+hdf5nc/h5save.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ function h5save(filename, varname, A, opts)
55
arguments
66
filename (1,1) string
77
varname (1,1) string
8-
A {mustBeNumeric,mustBeNonempty}
8+
A {mustBeNonempty}
99
opts.size (1,:) {mustBeInteger,mustBeNonnegative} = []
1010
opts.type string = string.empty
1111
end

+hdf5nc/test_hdf5.m

Lines changed: 48 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -35,29 +35,29 @@ function teardownOnce(tc)
3535

3636
function test_auto_chunk_size(tc)
3737

38-
assertEqual(tc, hdf5nc.auto_chunk_size([1500,2500,1000,500,100]), [12,20,8,8,2], '5D chunk fail')
39-
assertEqual(tc, hdf5nc.auto_chunk_size([15,250,100]), [2,32,25], '3D chunk fail')
40-
assertEqual(tc, hdf5nc.auto_chunk_size([15,250]), [15,250], '2D small chunk fail')
38+
tc.assertEqual(hdf5nc.auto_chunk_size([1500,2500,1000,500,100]), [12,20,8,8,2], '5D chunk fail')
39+
tc.assertEqual(hdf5nc.auto_chunk_size([15,250,100]), [2,32,25], '3D chunk fail')
40+
tc.assertEqual(hdf5nc.auto_chunk_size([15,250]), [15,250], '2D small chunk fail')
4141

4242
end
4343

4444

4545
function test_get_variables(tc)
4646
vars = hdf5nc.h5variables(tc.TestData.basic);
47-
assertEqual(tc, sort(vars), ["A0", "A1", "A2", "A3", "A4"], 'missing variables')
47+
tc.assertEqual(sort(vars), ["A0", "A1", "A2", "A3", "A4"], 'missing variables')
4848
end
4949

5050

5151
function test_exists(tc)
5252
e0 = hdf5nc.h5exists(tc.TestData.basic, '/A3');
53-
assertSize(tc, e0, [1,1])
54-
assertTrue(tc, e0, 'A3 exists')
53+
tc.assertTrue(isscalar(e0))
54+
tc.assertTrue(e0, 'A3 exists')
5555

56-
assertFalse(tc, hdf5nc.h5exists(tc.TestData.basic, '/oops'), 'oops not exist')
56+
tc.assertFalse(hdf5nc.h5exists(tc.TestData.basic, '/oops'), 'oops not exist')
5757

5858
e1 = hdf5nc.h5exists(tc.TestData.basic, ["A3", "oops"]);
59-
assert(isrow(e1))
60-
assertEqual(tc, e1, [true, false], 'h5exists array')
59+
tc.assertTrue(isrow(e1))
60+
tc.assertEqual(e1, [true, false], 'h5exists array')
6161
end
6262

6363

@@ -66,67 +66,78 @@ function test_size(tc)
6666
basic = tc.TestData.basic;
6767

6868
s = h5size(basic, '/A0');
69-
assertSize(tc, s, [1,1])
70-
assertEqual(tc, s, 1, 'A0 shape')
69+
tc.assertTrue(isscalar(s))
70+
tc.assertEqual(s, 1, 'A0 shape')
7171

7272
s = h5size(basic, '/A1');
73-
assertSize(tc, s, [1,1])
74-
assertEqual(tc, s, 2, 'A1 shape')
73+
tc.assertTrue(isscalar(s))
74+
tc.assertEqual(s, 2, 'A1 shape')
7575

7676
s = h5size(basic, '/A2');
77-
assert(isvector(s))
78-
assertEqual(tc, s, [4,4], 'A2 shape')
77+
tc.assertTrue(isvector(s))
78+
tc.assertEqual(s, [4,4], 'A2 shape')
7979

8080
s = h5size(basic, '/A3');
81-
assert(isvector(s))
82-
assertEqual(tc, s, [4,3,2], 'A3 shape')
81+
tc.assertTrue(isvector(s))
82+
tc.assertEqual(s, [4,3,2], 'A3 shape')
8383

8484
s = h5size(basic, '/A4');
85-
assert(isvector(s))
86-
assertEqual(tc, s, [4,3,2,5], 'A4 shape')
85+
tc.assertTrue(isvector(s))
86+
tc.assertEqual(s, [4,3,2,5], 'A4 shape')
8787
end
8888

8989

9090
function test_read(tc)
9191
basic = tc.TestData.basic;
9292
s = h5read(basic, '/A0');
93-
assertSize(tc, s, [1,1])
94-
assertEqual(tc, s, 42, 'A0 read')
93+
tc.assertTrue(isscalar(s))
94+
tc.assertEqual(s, 42, 'A0 read')
9595

9696
s = h5read(basic, '/A1');
97-
assert(isvector(s))
98-
assertEqual(tc, s, tc.TestData.A1, 'A1 read')
97+
tc.assertTrue(isvector(s))
98+
tc.assertEqual(s, tc.TestData.A1, 'A1 read')
9999

100100
s = h5read(basic, '/A2');
101-
assert(ismatrix(s))
102-
assertEqual(tc, s, tc.TestData.A2, 'A2 read')
101+
tc.assertTrue(ismatrix(s))
102+
tc.assertEqual(s, tc.TestData.A2, 'A2 read')
103103

104104
s = h5read(tc.TestData.basic, '/A3');
105-
assert(ndims(s)==3)
106-
assertEqual(tc, s, tc.TestData.A3, 'A3 read')
105+
tc.assertEqual(ndims(s), 3)
106+
tc.assertEqual(s, tc.TestData.A3, 'A3 read')
107107

108108
s = h5read(tc.TestData.basic, '/A4');
109-
assert(ndims(s)==4)
110-
assertEqual(tc, s, tc.TestData.A4, 'A4 read')
109+
tc.assertEqual(ndims(s), 4)
110+
tc.assertEqual(s, tc.TestData.A4, 'A4 read')
111111
end
112112

113113

114114
function test_coerce(tc)
115115

116116
basic = tc.TestData.basic;
117-
A0 = tc.TestData.A0;
118117

119-
hdf5nc.h5save(basic, '/int32', A0, "type", 'int32')
120-
hdf5nc.h5save(basic, '/int64', A0, "type", 'int64')
121-
hdf5nc.h5save(basic, '/float32', A0, "type", 'float32')
118+
hdf5nc.h5save(basic, '/int32', 0, "type", 'int32')
119+
hdf5nc.h5save(basic, '/int64', 0, "type", 'int64')
120+
hdf5nc.h5save(basic, '/float32', 0, "type", 'float32')
122121

123-
assertClass(tc, h5read(basic, '/int32'), 'int32', 'int32')
124-
assertClass(tc, h5read(basic, '/int64'), 'int64', 'int64')
125-
assertClass(tc, h5read(basic, '/float32'), 'single', 'float32')
122+
tc.assertClass(h5read(basic, '/int32'), 'int32', 'int32')
123+
tc.assertClass(h5read(basic, '/int64'), 'int64', 'int64')
124+
tc.assertClass(h5read(basic, '/float32'), 'single', 'float32')
126125
end
127126

128127

129128
function test_rewrite(tc)
130129
hdf5nc.h5save(tc.TestData.basic, '/A2', 3*magic(4))
131-
assertEqual(tc, h5read(tc.TestData.basic, '/A2'), 3*magic(4), 'rewrite 2D fail')
130+
tc.assertEqual(h5read(tc.TestData.basic, '/A2'), 3*magic(4), 'rewrite 2D fail')
131+
end
132+
133+
function test_string(tc)
134+
hdf5nc.h5save(tc.TestData.basic, "/a_string", "hello")
135+
hdf5nc.h5save(tc.TestData.basic, "/a_char", 'there')
136+
137+
astr = h5read(tc.TestData.basic, "/a_string");
138+
achar = h5read(tc.TestData.basic, "/a_char");
139+
tc.assertEqual(astr, "hello")
140+
tc.assertEqual(achar, "there")
141+
tc.assertClass(astr, "string")
142+
tc.assertClass(achar, "string")
132143
end

0 commit comments

Comments
 (0)