|
35 | 35 | funcs{end+1} = @test_set_metadata;
|
36 | 36 | funcs{end+1} = @test_open_metadata;
|
37 | 37 | funcs{end+1} = @test_retrieve_data_idx;
|
38 |
| - funcs{end+1} = @test_retrieve_feature_data; |
| 38 | + funcs{end+1} = @test_retrieve_feature_data_idx; |
39 | 39 | funcs{end+1} = @test_attrs;
|
40 | 40 | funcs{end+1} = @test_has_feature;
|
41 | 41 | funcs{end+1} = @test_has_reference;
|
|
548 | 548 | assert(retData(1) == raw(t.position + 1), 'Position check failed');
|
549 | 549 | end
|
550 | 550 |
|
551 |
| -%% Test: Retrieve feature data |
552 |
| -function [] = test_retrieve_feature_data( varargin ) |
553 |
| - % TODO |
554 |
| - disp('Test Tag: retrieve feature ... TODO (proper testfile)'); |
| 551 | +%% Test: Retrieve feature data by index |
| 552 | +function [] = test_retrieve_feature_data_idx( varargin ) |
| 553 | + f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite); |
| 554 | + b = f.create_block('testBlock', 'nixBlock'); |
| 555 | + raw = [1, 2, 3, 4, 5, 6, 7, 8, 9]; |
| 556 | + d = b.create_data_array_from_data('testDataArray', 'nixDataArray', raw); |
| 557 | + d.append_sampled_dimension(1); |
| 558 | + tagStartPos = [3]; |
| 559 | + t = b.create_tag('testTag', 'nixTag', tagStartPos); |
| 560 | + t.extent = [3]; |
| 561 | + t.add_reference(d); |
| 562 | + |
| 563 | + rawFeature = [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]; |
| 564 | + |
| 565 | + % test retrieve untagged feature data |
| 566 | + df = b.create_data_array_from_data('testUntagged', 'nixDataArray', rawFeature); |
| 567 | + df.append_sampled_dimension(1); |
| 568 | + t.add_feature(df, nix.LinkType.Untagged); |
| 569 | + retData = t.retrieve_feature_data_idx(0); |
| 570 | + assert(size(retData, 2) == size(rawFeature, 2), 'Untagged size check fail'); |
| 571 | + |
| 572 | + % test retrieve tagged feature data |
| 573 | + df = b.create_data_array_from_data('testTagged', 'nixDataArray', rawFeature); |
| 574 | + df.append_sampled_dimension(1); |
| 575 | + t.add_feature(df, nix.LinkType.Tagged); |
| 576 | + retData = t.retrieve_feature_data_idx(1); |
| 577 | + assert(size(retData, 2) == t.extent, 'Tagged Extent check fail'); |
| 578 | + assert(retData(1) == rawFeature(t.position + 1), 'Tagged Position check fail'); |
| 579 | + |
| 580 | + % test retrieve indexed feature data |
| 581 | + df = b.create_data_array_from_data('testIndexed', 'nixDataArray', rawFeature); |
| 582 | + df.append_sampled_dimension(1); |
| 583 | + t.add_feature(df, nix.LinkType.Indexed); |
| 584 | + retData = t.retrieve_feature_data_idx(2); |
| 585 | + assert(size(retData, 2) == size(rawFeature, 2), 'Indexed size check fail'); |
| 586 | + |
| 587 | + try |
| 588 | + t.retrieve_feature_data_idx(12); |
| 589 | + catch ME |
| 590 | + assert(~isempty(strfind(ME.message, 'out of bounds')), 'Invalid index check fail'); |
| 591 | + end |
555 | 592 | end
|
556 | 593 |
|
557 | 594 | %% Test: Read and write nix.Tag attributes
|
|
0 commit comments