Skip to content

Commit bf0fa4a

Browse files
committed
add block metadata setter
1 parent 5381505 commit bf0fa4a

File tree

2 files changed

+24
-8
lines changed

2 files changed

+24
-8
lines changed

nix_mx.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ void mexFunction(int nlhs,
117117
.reg("openTag", GETBYSTR(nix::Tag, nix::Block, getTag))
118118
.reg("openMultiTag", GETBYSTR(nix::MultiTag, nix::Block, getMultiTag))
119119
.reg("openMetadataSection", GETCONTENT(nix::Section, nix::Block, metadata))
120+
.reg("set_metadata", SETTER(const std::string&, nix::Block, metadata))
121+
.reg("set_none_metadata", SETTER(const boost::none_t, nix::Block, metadata))
120122
.reg("deleteDataArray", REMOVER(nix::DataArray, nix::Block, deleteDataArray))
121123
.reg("deleteSource", REMOVER(nix::Source, nix::Block, deleteSource))
122124
.reg("deleteTag", REMOVER(nix::Tag, nix::Block, deleteTag))

tests/TestBlock.m

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
funcs{end+1} = @test_open_source;
2424
funcs{end+1} = @test_has_multitag;
2525
funcs{end+1} = @test_has_tag;
26+
funcs{end+1} = @test_set_metadata;
2627
funcs{end+1} = @test_open_metadata;
2728
end
2829

@@ -345,15 +346,28 @@
345346
assert(~b.has_tag('I do not exist'));
346347
end
347348

349+
%% Test: Set metadata
350+
function [] = test_set_metadata ( varargin )
351+
f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite);
352+
tmp = f.createSection('testSection1', 'nixSection');
353+
tmp = f.createSection('testSection2', 'nixSection');
354+
b = f.createBlock('testBlock', 'nixBlock');
355+
356+
assert(isempty(b.open_metadata));
357+
b.set_metadata(f.sections{1});
358+
assert(strcmp(b.open_metadata.name, 'testSection1'));
359+
b.set_metadata(f.sections{2});
360+
assert(strcmp(b.open_metadata.name, 'testSection2'));
361+
b.set_metadata('');
362+
assert(isempty(b.open_metadata));
363+
end
364+
348365
function [] = test_open_metadata( varargin )
349366
%% Test: Open metadata
350-
test_file = nix.File(fullfile(pwd, 'tests', 'test.h5'), nix.FileMode.ReadOnly);
351-
getBlock = test_file.openBlock(test_file.blocks{1,1}.name);
367+
f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite);
368+
tmp = f.createSection('testSection', 'nixSection');
369+
b = f.createBlock('testBlock', 'nixBlock');
370+
b.set_metadata(f.sections{1});
352371

353-
assert(isempty(getBlock.open_metadata()))
354-
355-
%-- ToDo implement test for exising metadata
356-
%getBlock = test_file.openBlock(test_file.blocks{1,1}.name);
357-
%assert(~isempty(getBlock.open_metadata()))
358-
disp('Test Block: open existing metadata ... TODO (proper testfile)');
372+
assert(strcmp(b.open_metadata.name, 'testSection'));
359373
end

0 commit comments

Comments
 (0)