Skip to content

Commit 80f47bd

Browse files
committed
[c++/m] Add DataArray compare function
1 parent 1029a24 commit 80f47bd

File tree

4 files changed

+25
-0
lines changed

4 files changed

+25
-0
lines changed

nix_mx.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ void mexFunction(int nlhs,
250250
methods->add("DataArray::setDataExtent", nixdataarray::setDataExtent);
251251
methods->add("DataArray::openSourceIdx", nixdataarray::openSourceIdx);
252252
methods->add("DataArray::openDimensionIdx", nixdataarray::openDimensionIdx);
253+
methods->add("DataArray::compare", nixdataarray::compare);
253254

254255
classdef<nix::Source>("Source", methods)
255256
.desc(&nixsource::describe)

src/nixdataarray.cc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,4 +170,10 @@ namespace nixdataarray {
170170
output.set(0, sb.array());
171171
}
172172

173+
void compare(const extractor &input, infusor &output) {
174+
nix::DataArray currObj = input.entity<nix::DataArray>(1);
175+
nix::DataArray other = input.entity<nix::DataArray>(2);
176+
output.set(0, currObj.compare(other));
177+
}
178+
173179
} // namespace nixdataarray

src/nixdataarray.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ namespace nixdataarray {
4545

4646
void openDimensionIdx(const extractor &input, infusor &output);
4747

48+
void compare(const extractor &input, infusor &output);
49+
4850
} // namespace nixdataarray
4951

5052
#endif

tests/TestDataArray.m

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
funcs{end+1} = @test_dimension_count;
3333
funcs{end+1} = @test_datatype;
3434
funcs{end+1} = @test_set_data_extent;
35+
funcs{end+1} = @test_compare;
3536
end
3637

3738
function [] = test_attrs( varargin )
@@ -580,3 +581,18 @@
580581
da.set_data_extent(extent);
581582
assert(da.dataExtent(1) == extent(1) && size(da.read_all, 2) == extent(2));
582583
end
584+
585+
function [] = test_compare( varargin )
586+
%% Test: Compare DataArray entities
587+
f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite);
588+
b1 = f.create_block('testBlock1', 'nixBlock');
589+
b2 = f.create_block('testBlock2', 'nixBlock');
590+
d1 = b1.create_data_array('testDataArray1', 'nixDataArray', nix.DataType.Bool, [2 9]);
591+
d2 = b1.create_data_array('testDataArray2', 'nixDataArray', nix.DataType.Bool, [2 9]);
592+
d3 = b2.create_data_array('testDataArray1', 'nixDataArray', nix.DataType.Bool, [2 9]);
593+
594+
assert(d1.compare(d2) < 0);
595+
assert(d1.compare(d1) == 0);
596+
assert(d2.compare(d1) > 0);
597+
assert(d1.compare(d3) ~= 0);
598+
end

0 commit comments

Comments
 (0)