Skip to content

Commit 277a4d2

Browse files
committed
nix datatype entity
1 parent eaca919 commit 277a4d2

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

+nix/DataType.m

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
classdef DataType
2+
%DATATYPE three of the datatypes used in nix
3+
4+
properties (Constant)
5+
Boolean = uint8(0);
6+
String = uint8(1);
7+
Double = uint8(2);
8+
end
9+
10+
end
11+

src/nixsection.cc

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,13 @@ void create_property_data_type(const extractor &input, infusor &output)
6363
{
6464
nix::Section currObj = input.entity<nix::Section>(1);
6565

66-
nix::DataType dtype = nix::DataType::Double; // FIXME nix::string_to_data_type(input.str(3));
66+
nix::DataType dtype;
67+
68+
switch (input.num<uint8_t>(3)) {
69+
case 0: dtype = nix::DataType::Bool;
70+
case 1: dtype = nix::DataType::String;
71+
case 2: dtype = nix::DataType::Double;
72+
}
6773

6874
nix::Property p = currObj.createProperty(input.str(2), dtype);
6975
output.set(0, handle(p));

tests/TestSection.m

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -143,19 +143,21 @@
143143
f = nix.File(fullfile(pwd,'tests','testRW.h5'), nix.FileMode.Overwrite);
144144
s = f.createSection('mainSection', 'nixSection');
145145

146-
newProperty = s.create_property_data_type('newProperty', 'double');
147-
assert(strcmp(s.allProperties{1}.name, 'newProperty'));
148-
disp('Test MultiTag: create property by data type ... TODO (proper data type implementation)');
146+
tmp = s.create_property_data_type('newProperty1', nix.DataType.Double);
147+
tmp = s.create_property_data_type('newProperty2', nix.DataType.Boolean);
148+
tmp = s.create_property_data_type('newProperty3', nix.DataType.String);
149+
assert(size(s.allProperties, 1) == 3);
150+
assert(strcmp(s.allProperties{1}.name, 'newProperty1'));
149151
end
150152

151153
%% Test: Delete property by entity, propertyStruct, ID and name
152154
function [] = test_delete_property( varargin )
153155
f = nix.File(fullfile(pwd,'tests','testRW.h5'), nix.FileMode.Overwrite);
154156
s = f.createSection('mainSection', 'nixSection');
155-
tmp = s.create_property_data_type('newProperty1', 'double');
156-
tmp = s.create_property_data_type('newProperty2', 'double');
157-
tmp = s.create_property_data_type('newProperty3', 'double');
158-
tmp = s.create_property_data_type('newProperty4', 'double');
157+
tmp = s.create_property_data_type('newProperty1', nix.DataType.Double);
158+
tmp = s.create_property_data_type('newProperty2', nix.DataType.Boolean);
159+
tmp = s.create_property_data_type('newProperty3', nix.DataType.String);
160+
tmp = s.create_property_data_type('newProperty4', nix.DataType.Double);
159161

160162
assert(s.delete_property('newProperty4'));
161163
assert(s.delete_property(s.allProperties{3}.id));
@@ -164,8 +166,6 @@
164166
assert(s.delete_property(s.allProperties{1}));
165167

166168
assert(~s.delete_property('I do not exist'));
167-
168-
disp('Test MultiTag: delete property by data type ... TODO (proper data type implementation)');
169169
end
170170

171171
%% Test: Open property by ID and name

0 commit comments

Comments
 (0)