|
36 | 36 | funcs{end+1} = @test_open_metadata;
|
37 | 37 | funcs{end+1} = @test_retrieve_data;
|
38 | 38 | funcs{end+1} = @test_retrieve_data_idx;
|
| 39 | + funcs{end+1} = @test_retrieve_feature_data; |
39 | 40 | funcs{end+1} = @test_retrieve_feature_data_idx;
|
40 | 41 | funcs{end+1} = @test_attrs;
|
41 | 42 | funcs{end+1} = @test_has_feature;
|
|
586 | 587 | assert(retData(1) == raw(t.position + 1), 'Position check failed');
|
587 | 588 | end
|
588 | 589 |
|
| 590 | +%% Test: Retrieve feature data by name and id |
| 591 | +function [] = test_retrieve_feature_data( varargin ) |
| 592 | + f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite); |
| 593 | + b = f.create_block('testBlock', 'nixBlock'); |
| 594 | + raw = [1, 2, 3, 4, 5, 6, 7, 8, 9]; |
| 595 | + d = b.create_data_array_from_data('testDataArray', 'nixDataArray', raw); |
| 596 | + d.append_sampled_dimension(1); |
| 597 | + tagStartPos = [3]; |
| 598 | + t = b.create_tag('testTag', 'nixTag', tagStartPos); |
| 599 | + t.extent = [3]; |
| 600 | + t.add_reference(d); |
| 601 | + |
| 602 | + rawFeature = [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]; |
| 603 | + |
| 604 | + % test get non existent |
| 605 | + try |
| 606 | + t.retrieve_data('I do not exist, dont hate me!'); |
| 607 | + catch ME |
| 608 | + assert(~isempty(strfind(ME.message, 'no DataArray with the specified name')), ... |
| 609 | + 'Non existent check fail'); |
| 610 | + end |
| 611 | + |
| 612 | + % test retrieve untagged feature data by name |
| 613 | + df = b.create_data_array_from_data('testUntagged', 'nixDataArray', rawFeature); |
| 614 | + df.append_sampled_dimension(1); |
| 615 | + t.add_feature(df, nix.LinkType.Untagged); |
| 616 | + retData = t.retrieve_feature_data('testUntagged'); |
| 617 | + assert(size(retData, 2) == size(rawFeature, 2), 'Untagged size check fail'); |
| 618 | + |
| 619 | + % test retrieve tagged feature data by id |
| 620 | + df = b.create_data_array_from_data('testTagged', 'nixDataArray', rawFeature); |
| 621 | + df.append_sampled_dimension(1); |
| 622 | + t.add_feature(df, nix.LinkType.Tagged); |
| 623 | + retData = t.retrieve_feature_data(df.id); |
| 624 | + assert(size(retData, 2) == t.extent, 'Tagged Extent check fail'); |
| 625 | + assert(retData(1) == rawFeature(t.position + 1), 'Tagged Position check fail'); |
| 626 | + |
| 627 | + % test retrieve indexed feature data by id |
| 628 | + df = b.create_data_array_from_data('testIndexed', 'nixDataArray', rawFeature); |
| 629 | + df.append_sampled_dimension(1); |
| 630 | + t.add_feature(df, nix.LinkType.Indexed); |
| 631 | + retData = t.retrieve_feature_data(df.id); |
| 632 | + assert(size(retData, 2) == size(rawFeature, 2), 'Indexed size check fail'); |
| 633 | +end |
| 634 | + |
589 | 635 | %% Test: Retrieve feature data by index
|
590 | 636 | function [] = test_retrieve_feature_data_idx( varargin )
|
591 | 637 | f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite);
|
|
0 commit comments