Skip to content

Commit e5a1c76

Browse files
committed
add error tests
1 parent dc32142 commit e5a1c76

File tree

3 files changed

+47
-35
lines changed

3 files changed

+47
-35
lines changed

+hdf5nc/ncsave.m

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

+hdf5nc/test_hdf5.m

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ function test_exists(tc)
5757

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

6363

@@ -141,3 +141,7 @@ function test_string(tc)
141141
tc.assertClass(astr, "string")
142142
tc.assertClass(achar, "string")
143143
end
144+
145+
function test_real_only(tc)
146+
tc.assertError(@() hdf5nc.h5save(tc.TestData.basic, "/bad_imag", 1j), 'MATLAB:imagesci:hdf5dataset:badInputClass')
147+
end

+hdf5nc/test_netcdf.m

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -37,89 +37,97 @@ function teardownOnce(tc)
3737

3838
function test_get_variables(tc)
3939
vars = hdf5nc.ncvariables(tc.TestData.basic);
40-
assertEqual(tc, sort(vars), ["A0", "A1", "A2", "A3", "A4"], 'missing variables')
40+
tc.assertEqual(sort(vars), ["A0", "A1", "A2", "A3", "A4"], 'missing variables')
4141
end
4242

4343

4444
function test_exists(tc)
4545
e0 = hdf5nc.ncexists(tc.TestData.basic, 'A3');
46-
assertSize(tc, e0, [1,1])
47-
assertTrue(tc, e0, 'A3 exists')
46+
tc.assertTrue(isscalar(e0))
47+
tc.assertTrue(e0, 'A3 exists')
4848

4949
assertFalse(tc, hdf5nc.ncexists(tc.TestData.basic, '/oops'), 'oops not exist')
5050

5151
e1 = hdf5nc.ncexists(tc.TestData.basic, ["A3", "oops"]);
52-
assert(isrow(e1))
53-
assertEqual(tc, e1, [true, false], 'ncexists array')
52+
tc.assertTrue(isrow(e1))
53+
tc.assertEqual(e1, [true, false])
5454
end
5555

5656
function test_size(tc)
5757
import hdf5nc.ncsize
5858
basic = tc.TestData.basic;
5959

6060
s = ncsize(basic, 'A0');
61-
assertSize(tc, s, [1,1])
62-
assertEqual(tc, s, 1, 'A0 shape')
61+
tc.assertTrue(isscalar(s))
62+
tc.assertEqual(s, 1, 'A0 shape')
6363

6464
s = ncsize(basic, 'A1');
65-
assertSize(tc, s, [1,1])
66-
assertEqual(tc, s, 2, 'A1 shape')
65+
tc.assertTrue(isscalar(s))
66+
tc.assertEqual(s, 2, 'A1 shape')
6767

6868
s = ncsize(basic, 'A2');
69-
assert(isvector(s))
70-
assertEqual(tc, s, [4,4], 'A2 shape')
69+
tc.assertTrue(isvector(s))
70+
tc.assertEqual(s, [4,4], 'A2 shape')
7171

7272
s = ncsize(basic, 'A3');
73-
assert(isvector(s))
74-
assertEqual(tc, s, [4,3,2], 'A3 shape')
73+
tc.assertTrue(isvector(s))
74+
tc.assertEqual(s, [4,3,2], 'A3 shape')
7575

7676
s = ncsize(basic, 'A4');
77-
assert(isvector(s))
78-
assertEqual(tc, s, [4,3,2,5], 'A4 shape')
77+
tc.assertTrue(isvector(s))
78+
tc.assertEqual(s, [4,3,2,5], 'A4 shape')
7979
end
8080

8181

8282
function test_read(tc)
8383
basic = tc.TestData.basic;
8484

8585
s = ncread(basic, '/A0');
86-
assertSize(tc, s, [1,1])
87-
assertEqual(tc, s, 42, 'A0 read')
86+
tc.assertTrue(isscalar(s))
87+
tc.assertEqual(s, 42, 'A0 read')
8888

8989
s = ncread(basic, '/A1');
90-
assert(isvector(s))
91-
assertEqual(tc, s, tc.TestData.A1, 'A1 read')
90+
tc.assertTrue(isvector(s))
91+
tc.assertEqual(s, tc.TestData.A1, 'A1 read')
9292

9393
s = ncread(basic, '/A2');
94-
assert(ismatrix(s))
95-
assertEqual(tc, s, tc.TestData.A2, 'A2 read')
94+
tc.assertTrue(ismatrix(s))
95+
tc.assertEqual(s, tc.TestData.A2, 'A2 read')
9696

9797
s = ncread(basic, '/A3');
98-
assert(ndims(s)==3)
99-
assertEqual(tc, s, tc.TestData.A3, 'A3 read')
98+
tc.assertEqual(ndims(s), 3)
99+
tc.assertEqual(s, tc.TestData.A3, 'A3 read')
100100

101101
s = ncread(basic, '/A4');
102-
assert(ndims(s)==4)
103-
assertEqual(tc, s, tc.TestData.A4, 'A4 read')
102+
tc.assertEqual(ndims(s), 4)
103+
tc.assertEqual(s, tc.TestData.A4, 'A4 read')
104104
end
105105

106106

107107
function test_coerce(tc)
108108
import hdf5nc.ncsave
109109

110110
basic = tc.TestData.basic;
111-
A0 = tc.TestData.A0;
112111

113-
ncsave(basic, 'int32', A0, "type", 'int32')
114-
ncsave(basic, 'int64', A0, "type", 'int64')
115-
ncsave(basic, 'float32', A0, "type", 'float32')
112+
ncsave(basic, 'int32', 0, "type", 'int32')
113+
ncsave(basic, 'int64', 0, "type", 'int64')
114+
ncsave(basic, 'float32', 0, "type", 'float32')
116115

117-
assertClass(tc, h5read(basic, '/int32'), 'int32', 'int32')
118-
assertClass(tc, h5read(basic, '/int64'), 'int64', 'int64')
119-
assertClass(tc, h5read(basic, '/float32'), 'single', 'float32')
116+
tc.assertClass(h5read(basic, '/int32'), 'int32', 'int32')
117+
tc.assertClass(h5read(basic, '/int64'), 'int64', 'int64')
118+
tc.assertClass(h5read(basic, '/float32'), 'single', 'float32')
120119
end
121120

122121
function test_rewrite(tc)
123122
hdf5nc.ncsave(tc.TestData.basic, 'A2', 3*magic(4))
124-
assertEqual(tc, ncread(tc.TestData.basic, 'A2'), 3*magic(4), 'rewrite 2D fail')
123+
tc.assertEqual(ncread(tc.TestData.basic, 'A2'), 3*magic(4), 'rewrite 2D fail')
124+
end
125+
126+
function test_no_char_string(tc)
127+
tc.assertError(@() hdf5nc.ncsave(tc.TestData.basic, "/a_string", "hello"), 'MATLAB:validators:mustBeNumeric')
128+
129+
end
130+
131+
function test_real_only(tc)
132+
tc.assertError(@() hdf5nc.ncsave(tc.TestData.basic, "/bad_imag", 1j), 'MATLAB:validators:mustBeReal')
125133
end

0 commit comments

Comments
 (0)