20
20
funcs{end + 1 } = @test_retrieve_data ;
21
21
funcs{end + 1 } = @test_retrieve_feature_data ;
22
22
funcs{end + 1 } = @test_attrs ;
23
+ funcs{end + 1 } = @test_has_feature ;
24
+ funcs{end + 1 } = @test_has_reference ;
23
25
end
24
26
25
27
%% Test: Add sources by entity and id
291
293
disp(' Test Tag: retrieve feature ... TODO (proper testfile)' );
292
294
end
293
295
296
+ %% Test: Read and write nix.Tag attributes
294
297
function [] = test_attrs( varargin )
295
- %% Test: Access Attributes
296
- f = nix .File(fullfile(pwd , ' tests' , ' testRW.h5 ' ), nix .FileMode .Overwrite );
298
+ fileName = ' testRW.h5 ' ;
299
+ f = nix .File(fullfile(pwd , ' tests' , fileName ), nix .FileMode .Overwrite );
297
300
b = f .createBlock(' testBlock' , ' nixBlock' );
298
- t1 = b .create_tag(' testTag' , ' nixTag' , [1 , 2 , 3 , 4 ]);
301
+ pos = [1 , 2 , 3 , 4 ];
302
+ t1 = b .create_tag(' testTag' , ' nixTag' , pos );
299
303
300
304
assert(~isempty(t1 .id ));
301
305
assert(strcmp(t1 .name , ' testTag' ));
317
321
318
322
t1.units = {};
319
323
assert(isempty(t1 .units ));
320
- end
324
+
325
+ assert(isequal(t1 .position , pos ));
326
+ newPos = [1 , 2.2 , 3 ];
327
+ t1.position = newPos ;
328
+ assert(~isequal(t1 .position , pos ));
329
+ assert(isequal(t1 .position , newPos ));
330
+
331
+ assert(isempty(t1 .extent ));
332
+ ext = [1 2 ];
333
+ newExt = [3 4.5 ];
334
+ lastExt = [6 7.8 9 ];
335
+ t1.extent = ext ;
336
+ assert(isequal(t1 .extent , ext ));
337
+ t1.extent = newExt ;
338
+ assert(~isequal(t1 .extent , ext ));
339
+ assert(isequal(t1 .extent , newExt ));
340
+ t1.extent = [];
341
+ assert(isempty(t1 .extent ));
342
+ t1.extent = lastExt ;
343
+
344
+ clear t1 b f ;
345
+ f = nix .File(fullfile(pwd , ' tests' , fileName ), nix .FileMode .ReadOnly );
346
+ assert(isequal(f.blocks{1 }.tags{1 }.position, newPos ));
347
+ assert(isequal(f.blocks{1 }.tags{1 }.extent, lastExt ));
348
+ end
349
+
350
+ %% Test: nix.Tag has feature by ID
351
+ function [] = test_has_feature( varargin )
352
+ fileName = ' testRW.h5' ;
353
+ f = nix .File(fullfile(pwd , ' tests' , fileName ), nix .FileMode .Overwrite );
354
+ b = f .createBlock(' featureTest' , ' nixBlock' );
355
+ da = b .create_data_array(' featureTestDataArray' , ' nixDataArray' , ' double' , [1 2 ]);
356
+ t = b .create_tag(' featureTest' , ' nixTag' , [1.0 1.2 1.3 15.9 ]);
357
+ feature = t .add_feature(b.dataArrays{1 }, nix .LinkType .Tagged );
358
+ featureID = feature .id ;
359
+
360
+ assert(~t .has_feature(' I do not exist' ));
361
+ assert(t .has_feature(featureID ));
362
+
363
+ clear tmp t da b f ;
364
+ f = nix .File(fullfile(pwd , ' tests' , fileName ), nix .FileMode .ReadOnly );
365
+ assert(f.blocks{1 }.tags{1 }.has_feature(featureID ));
366
+ end
367
+
368
+ %% Test: nix.Tag has reference by ID or name
369
+ function [] = test_has_reference( varargin )
370
+ fileName = ' testRW.h5' ;
371
+ daName = ' referenceTest' ;
372
+ f = nix .File(fullfile(pwd , ' tests' , fileName ), nix .FileMode .Overwrite );
373
+ b = f .createBlock(' referenceTest' , ' nixBlock' );
374
+ da = b .create_data_array(daName , ' nixDataArray' , ' double' , [1 2 ]);
375
+ t = b .create_tag(' referenceTest' , ' nixTag' , [1.0 1.2 1.3 15.9 ]);
376
+ t .add_reference(b.dataArrays{1 });
377
+
378
+ assert(~t .has_reference(' I do not exist' ));
379
+ assert(t .has_reference(da .id ));
380
+
381
+ clear t da b f ;
382
+ f = nix .File(fullfile(pwd , ' tests' , fileName ), nix .FileMode .ReadOnly );
383
+ assert(f.blocks{1 }.tags{1 }.has_reference(daName ));
384
+ end
0 commit comments