Files
nappMATLAB-toolbox/utils/h5tools-matlab-main/test/GroupTest.m
T

71 lines
2.7 KiB
Matlab

classdef GroupTest < matlab.unittest.TestCase
properties
FILE
end
methods (TestClassSetup)
function createFile(testCase)
testFolder = fileparts(mfilename('fullpath'));
testCase.FILE = fullfile(testFolder, 'GroupTest.h5');
% Create the file, overwriting if it already exists
h5tools.createFile(testCase.FILE, true);
% Test collect groups from fileID
fileID = h5tools.files.openFile(testCase.FILE);
fileIDx = onCleanup(@()H5F.close(fileID));
testCase.verifyEmpty(h5tools.collectGroups(fileID), 1);
end
end
% The order of test execution is not predictable so these must be
% tested all together
methods (Test, TestTags=["Group"])
function RootGroupIO(testCase)
out = h5tools.collectGroups(testCase.FILE);
testCase.verifyEmpty(out);
% Create a single group
h5tools.createGroup(testCase.FILE, '/', 'GroupOne');
out = h5tools.collectGroups(testCase.FILE);
testCase.verifyNumElements(out, 1);
% Create multiple groups
h5tools.createGroup(testCase.FILE, '/', 'GroupTwo', 'GroupThree');
out = h5tools.collectGroups(testCase.FILE);
testCase.verifyNumElements(out, 3);
% Check for warning when group already exists
testCase.verifyWarning(...
@() h5tools.createGroup(testCase.FILE, '/', 'GroupOne'),...
"createGroup:GroupExists");
end
function DatasetToExistingGroup(testCase)
h5tools.createGroup(testCase.FILE, '/', 'GroupFive');
% There should be no error here:
h5tools.write(testCase.FILE, '/GroupFour', 'Dataset', eye(3));
end
function SplitPath(testCase)
h5tools.createGroup(testCase.FILE, '/', 'GroupSix', 'GroupSix/GroupSixA');
[parentPath, endPath] = h5tools.util.splitPath('/GroupSix/GroupSixA');
testCase.verifyEqual(parentPath, '/GroupSix');
testCase.verifyEqual(endPath, 'GroupSixA');
end
end
methods (Test, TestTags=["Deletion", "Group"])
function DeleteGroup(testCase)
% Create the group
h5tools.createGroup(testCase.FILE, '/', 'GroupFour');
out = h5tools.collectGroups(testCase.FILE);
testCase.verifyTrue(ismember("/GroupFour", out));
% Delete the group
h5tools.deleteObject(testCase.FILE, '/GroupFour');
out = h5tools.collectGroups(testCase.FILE);
testCase.verifyFalse(ismember("/GroupFour", out));
end
end
end