|
34 | 34 | funcs{end+1} = @test_open_reference_idx;
|
35 | 35 | funcs{end+1} = @test_set_metadata;
|
36 | 36 | funcs{end+1} = @test_open_metadata;
|
| 37 | + funcs{end+1} = @test_retrieve_data; |
37 | 38 | funcs{end+1} = @test_retrieve_data_idx;
|
38 | 39 | funcs{end+1} = @test_retrieve_feature_data_idx;
|
39 | 40 | funcs{end+1} = @test_attrs;
|
|
524 | 525 | assert(strcmp(t.open_metadata.name, 'testSection'));
|
525 | 526 | end
|
526 | 527 |
|
| 528 | +%% Test: Retrieve referenced data by name and id |
| 529 | +function [] = test_retrieve_data( varargin ) |
| 530 | + f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite); |
| 531 | + b = f.create_block('testBlock', 'nixBlock'); |
| 532 | + tagStartPos = [3]; |
| 533 | + t = b.create_tag('testTag', 'nixTag', tagStartPos); |
| 534 | + t.extent = [3]; |
| 535 | + |
| 536 | + rawName = [1, 2, 3, 4, 5, 6, 7, 8, 9]; |
| 537 | + rawID = [11, 12, 13, 14, 15, 16, 17]; |
| 538 | + d = b.create_data_array_from_data('testDataArrayName', 'nixDataArray', rawName); |
| 539 | + d.append_sampled_dimension(1); |
| 540 | + t.add_reference(d); |
| 541 | + |
| 542 | + d = b.create_data_array_from_data('testDataArrayID', 'nixDataArray', rawID); |
| 543 | + d.append_sampled_dimension(1); |
| 544 | + t.add_reference(d); |
| 545 | + |
| 546 | + % test get non existent |
| 547 | + try |
| 548 | + retData = t.retrieve_data('I do not exist, dont hate me!'); |
| 549 | + catch ME |
| 550 | + assert(~isempty(strfind(ME.message, 'no DataArray with the specified name')), ... |
| 551 | + 'Non existent check fail'); |
| 552 | + end |
| 553 | + |
| 554 | + % test get referenced data by name |
| 555 | + retData = t.retrieve_data('testDataArrayName'); |
| 556 | + assert(size(retData, 2) == t.extent, 'Get by name extent check fail'); |
| 557 | + assert(retData(1) == rawName(t.position + 1), 'Get by name position check fail'); |
| 558 | + |
| 559 | + % test get referenced data by id |
| 560 | + retData = t.retrieve_data(d.id); |
| 561 | + assert(size(retData, 2) == t.extent, 'Get by id extent check fail'); |
| 562 | + assert(retData(1) == rawID(t.position + 1), 'Get by id position check fail'); |
| 563 | +end |
| 564 | + |
527 | 565 | %% Test: Retrieve referenced data by index
|
528 | 566 | function [] = test_retrieve_data_idx( varargin )
|
529 | 567 | f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite);
|
|
0 commit comments