|
8 | 8 | funcs{end+1} = @test_set_metadata;
|
9 | 9 | funcs{end+1} = @test_open_metadata;
|
10 | 10 | funcs{end+1} = @test_list_sources;
|
11 |
| - funcs{end+1} = @test_write_data; |
| 11 | + funcs{end+1} = @test_write_data_double; |
| 12 | + funcs{end+1} = @test_write_data_logical; |
| 13 | + funcs{end+1} = @test_write_data_float; |
| 14 | + funcs{end+1} = @test_write_data_integer; |
12 | 15 | funcs{end+1} = @test_add_source;
|
13 | 16 | funcs{end+1} = @test_remove_source;
|
14 | 17 | funcs{end+1} = @test_dimensions;
|
|
52 | 55 |
|
53 | 56 | %% Test: Read all data from DataArray
|
54 | 57 | function [] = test_open_data( varargin )
|
55 |
| - test_file = nix.File(fullfile(pwd, 'tests', 'test.h5'), nix.FileMode.ReadOnly); |
56 |
| - getBlock = test_file.openBlock(test_file.blocks{1,1}.name); |
57 |
| - getDataArray = getBlock.data_array(getBlock.dataArrays{1,1}.id); |
58 |
| - |
59 |
| - assert(size(getDataArray.read_all(),2) == 36); |
| 58 | + fileName = fullfile(pwd, 'tests', 'testRW.h5'); |
| 59 | + daType = 'nix.DataArray'; |
| 60 | + f = nix.File(fileName, nix.FileMode.Overwrite); |
| 61 | + b = f.createBlock('testBlock', 'nix.Block'); |
| 62 | + |
| 63 | + da = b.create_data_array('logicalArray', daType, nix.DataType.Bool, [3 3]); |
| 64 | + assert(islogical(da.read_all)); |
| 65 | + da = b.create_data_array('doubleDataArray', daType, nix.DataType.Double, [3 3]); |
| 66 | + assert(isa(da.read_all, 'double')); |
| 67 | + da = b.create_data_array('floatDataArray', daType, nix.DataType.Float, [3 3]); |
| 68 | + assert(isfloat(da.read_all)); |
| 69 | + da = b.create_data_array('Int8DataArray', daType, nix.DataType.Int8, [3 3]); |
| 70 | + assert(isa(da.read_all, 'int8')); |
| 71 | + da = b.create_data_array('Int16DataArray', daType, nix.DataType.Int16, [3 3]); |
| 72 | + assert(isa(da.read_all, 'int16')); |
| 73 | + da = b.create_data_array('Int32DataArray', daType, nix.DataType.Int32, [3 3]); |
| 74 | + assert(isa(da.read_all, 'int32')); |
| 75 | + da = b.create_data_array('Int64DataArray', daType, nix.DataType.Int64, [3 3]); |
| 76 | + assert(isa(da.read_all, 'int64')); |
| 77 | + da = b.create_data_array('UInt8DataArray', daType, nix.DataType.UInt8, [3 3]); |
| 78 | + assert(isa(da.read_all, 'uint8')); |
| 79 | + da = b.create_data_array('UInt16DataArray', daType, nix.DataType.UInt16, [3 3]); |
| 80 | + assert(isa(da.read_all, 'uint16')); |
| 81 | + da = b.create_data_array('UInt32DataArray', daType, nix.DataType.UInt32, [3 3]); |
| 82 | + assert(isa(da.read_all, 'uint32')); |
| 83 | + da = b.create_data_array('UInt64DataArray', daType, nix.DataType.UInt64, [3 3]); |
| 84 | + assert(isa(da.read_all, 'uint64')); |
60 | 85 | end
|
61 | 86 |
|
62 | 87 | %% Test: Set metadata
|
|
97 | 122 | assert(strcmp(d1.sources{1}.name, 'Unit 5'));
|
98 | 123 | end
|
99 | 124 |
|
100 |
| -%% Test: Write Data |
101 |
| -%-- TODO: add tests for all provided data types |
102 |
| -function [] = test_write_data( varargin ) |
| 125 | +%% Test: Write Data double |
| 126 | +function [] = test_write_data_double( varargin ) |
103 | 127 | fileName = fullfile(pwd, 'tests', 'testRW.h5');
|
104 | 128 | typeDA = 'nix.DataArray';
|
105 | 129 | f = nix.File(fileName, nix.FileMode.Overwrite);
|
106 |
| - b = f.createBlock('tagtest', 'nixblock'); |
| 130 | + b = f.createBlock('testDataArray', 'nixblock'); |
107 | 131 |
|
108 | 132 | numData = [1 2 3 4 5];
|
109 | 133 | logData = logical([1 0 1 0 1]);
|
110 | 134 | charData = ['a' 'b' 'c' 'd' 'e'];
|
111 | 135 | cellData = {1 2 3 4 5};
|
112 | 136 |
|
113 | 137 | da = b.create_data_array('numericArray', typeDA, nix.DataType.Double, [1 5]);
|
114 |
| - tmp = da.read_all(); |
115 |
| - assert(all(tmp(:) == 0)); |
116 |
| - |
117 | 138 | da.write_all(numData);
|
118 | 139 | assert(isequal(da.read_all(), numData));
|
119 | 140 |
|
|
133 | 154 | assert(strcmp(ME.identifier, 'DataArray:improperDataType'));
|
134 | 155 | end;
|
135 | 156 |
|
| 157 | + clear da b f; |
| 158 | + f = nix.File(fileName, nix.FileMode.ReadOnly); |
| 159 | + assert(isequal(f.blocks{1}.dataArrays{1}.read_all, numData)); |
| 160 | +end |
| 161 | + |
| 162 | +%% Test: Write Data logical |
| 163 | +function [] = test_write_data_logical( varargin ) |
| 164 | + fileName = fullfile(pwd, 'tests', 'testRW.h5'); |
| 165 | + typeDA = 'nix.DataArray'; |
| 166 | + f = nix.File(fileName, nix.FileMode.Overwrite); |
| 167 | + b = f.createBlock('testDataArray', 'nixblock'); |
| 168 | + |
| 169 | + logData = logical([1 0 1 0 1]); |
| 170 | + numData = [1 2 3 4 5]; |
| 171 | + charData = ['a' 'b' 'c' 'd' 'e']; |
| 172 | + |
136 | 173 | da = b.create_data_array('logicalArray', typeDA, nix.DataType.Bool, [1 5]);
|
137 | 174 | da.write_all(logData);
|
138 | 175 | assert(isequal(da.read_all, logData));
|
|
147 | 184 | assert(strcmp(ME.identifier, 'DataArray:improperDataType'));
|
148 | 185 | end;
|
149 | 186 |
|
| 187 | + clear da b f; |
| 188 | + f = nix.File(fileName, nix.FileMode.ReadOnly); |
| 189 | + assert(isequal(f.blocks{1}.dataArrays{1}.read_all, logData)); |
| 190 | +end |
| 191 | + |
| 192 | +%% Test: Write Data float |
| 193 | +function [] = test_write_data_float( varargin ) |
| 194 | + fileName = fullfile(pwd, 'tests', 'testRW.h5'); |
| 195 | + typeDA = 'nix.DataArray'; |
| 196 | + f = nix.File(fileName, nix.FileMode.Overwrite); |
| 197 | + b = f.createBlock('testDataArray', 'nixblock'); |
| 198 | + |
| 199 | + numData = [1.3 2.4143 3.9878 4.1239 5]; |
| 200 | + |
| 201 | + da = b.create_data_array('floatArray', typeDA, nix.DataType.Float, [1 5]); |
| 202 | + da.write_all(numData); |
| 203 | + assert(isequal(da.read_all, single(numData))); |
| 204 | + |
| 205 | + clear da b f; |
| 206 | + f = nix.File(fileName, nix.FileMode.ReadOnly); |
| 207 | + assert(isequal(f.blocks{1}.dataArrays{1}.read_all, single(numData))); |
| 208 | +end |
| 209 | + |
| 210 | +%% Test: Write Data integer |
| 211 | +function [] = test_write_data_integer( varargin ) |
| 212 | + fileName = fullfile(pwd, 'tests', 'testRW.h5'); |
| 213 | + typeDA = 'nix.DataArray'; |
| 214 | + f = nix.File(fileName, nix.FileMode.Overwrite); |
| 215 | + b = f.createBlock('testDataArray', 'nixblock'); |
| 216 | + |
| 217 | + numData = [1 2 3; 4 5 6; 7 8 9]; |
| 218 | + |
| 219 | + da = b.create_data_array('Int8DataArray', typeDA, nix.DataType.Int8, [3 3]); |
| 220 | + da.write_all(numData); |
| 221 | + assert(isequal(da.read_all, numData)); |
| 222 | + da = b.create_data_array('Int16DataArray', typeDA, nix.DataType.Int16, [3 3]); |
| 223 | + da.write_all(numData); |
| 224 | + assert(isequal(da.read_all, numData)); |
| 225 | + da = b.create_data_array('Int32DataArray', typeDA, nix.DataType.Int32, [3 3]); |
| 226 | + da.write_all(numData); |
| 227 | + assert(isequal(da.read_all, numData)); |
| 228 | + da = b.create_data_array('Int64DataArray', typeDA, nix.DataType.Int64, [3 3]); |
| 229 | + da.write_all(numData); |
| 230 | + assert(isequal(da.read_all, numData)); |
| 231 | + da = b.create_data_array('UInt8DataArray', typeDA, nix.DataType.UInt8, [3 3]); |
| 232 | + da.write_all(numData); |
| 233 | + assert(isequal(da.read_all, numData)); |
| 234 | + da = b.create_data_array('UInt16DataArray', typeDA, nix.DataType.UInt16, [3 3]); |
| 235 | + da.write_all(numData); |
| 236 | + assert(isequal(da.read_all, numData)); |
| 237 | + da = b.create_data_array('UInt32DataArray', typeDA, nix.DataType.UInt32, [3 3]); |
| 238 | + da.write_all(numData); |
| 239 | + assert(isequal(da.read_all, numData)); |
| 240 | + da = b.create_data_array('UInt64DataArray', typeDA, nix.DataType.UInt64, [3 3]); |
| 241 | + da.write_all(numData); |
| 242 | + assert(isequal(da.read_all, numData)); |
| 243 | + |
150 | 244 | clear da b f;
|
151 | 245 | f = nix.File(fileName, nix.FileMode.ReadOnly);
|
152 | 246 | assert(isequal(f.blocks{1}.dataArrays{1}.read_all, numData));
|
153 |
| - assert(isequal(f.blocks{1}.dataArrays{2}.read_all, logData)); |
| 247 | + assert(isequal(f.blocks{1}.dataArrays{2}.read_all, numData)); |
| 248 | + assert(isequal(f.blocks{1}.dataArrays{3}.read_all, numData)); |
| 249 | + assert(isequal(f.blocks{1}.dataArrays{4}.read_all, numData)); |
| 250 | + assert(isequal(f.blocks{1}.dataArrays{5}.read_all, numData)); |
| 251 | + assert(isequal(f.blocks{1}.dataArrays{6}.read_all, numData)); |
| 252 | + assert(isequal(f.blocks{1}.dataArrays{7}.read_all, numData)); |
| 253 | + assert(isequal(f.blocks{1}.dataArrays{8}.read_all, numData)); |
154 | 254 | end
|
155 | 255 |
|
156 | 256 | %% Test: Add sources by entity and id
|
|
0 commit comments