|
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 | + funcs{end+1} = @test_retrieve_data_idx; |
38 | 38 | funcs{end+1} = @test_retrieve_feature_data;
|
39 | 39 | funcs{end+1} = @test_attrs;
|
40 | 40 | funcs{end+1} = @test_has_feature;
|
|
524 | 524 | assert(strcmp(t.open_metadata.name, 'testSection'));
|
525 | 525 | end
|
526 | 526 |
|
527 |
| -%% Test: Retrieve data |
528 |
| -function [] = test_retrieve_data( varargin ) |
529 |
| - f = nix.File(fullfile(pwd, 'tests', 'test.h5'), nix.FileMode.ReadOnly); |
530 |
| - b = f.blocks{1}; |
531 |
| - tag = b.open_tag('Arm movement epoch Trial 001'); |
532 |
| - |
533 |
| - data = tag.retrieve_data(1); |
534 |
| - assert(~isempty(data)); |
| 527 | +%% Test: Retrieve referenced data by index |
| 528 | +function [] = test_retrieve_data_idx( varargin ) |
| 529 | + f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite); |
| 530 | + b = f.create_block('testBlock', 'nixBlock'); |
| 531 | + raw = [1, 2, 3, 4, 5, 6, 7, 8, 9]; |
| 532 | + d = b.create_data_array_from_data('testDataArray', 'nixDataArray', raw); |
| 533 | + d.append_sampled_dimension(1); |
| 534 | + % tag positon is used like an index, therfore starts with 0! |
| 535 | + tagStartPos = [3]; |
| 536 | + t = b.create_tag('testTag', 'nixTag', tagStartPos); |
| 537 | + t.extent = [3]; |
| 538 | + t.add_reference(d); |
| 539 | + |
| 540 | + try |
| 541 | + t.retrieve_data_idx(12); |
| 542 | + catch ME |
| 543 | + assert(~isempty(strfind(ME.message, 'out of bounds')), 'Invalid index failed'); |
| 544 | + end |
| 545 | + |
| 546 | + retData = t.retrieve_data_idx(0); |
| 547 | + assert(size(retData, 2) == t.extent, 'Extent check failed'); |
| 548 | + assert(retData(1) == raw(t.position + 1), 'Position check failed'); |
535 | 549 | end
|
536 | 550 |
|
537 | 551 | %% Test: Retrieve feature data
|
|
0 commit comments