diff --git a/+ndr/+reader/axon_abf.m b/+ndr/+reader/axon_abf.m index c1442e1..03ddeb6 100755 --- a/+ndr/+reader/axon_abf.m +++ b/+ndr/+reader/axon_abf.m @@ -21,6 +21,7 @@ % Creates a Neuroscience Data Reader object of the Axon Instruments % ABF file format. % + axon_abf_obj.MightHaveTimeGaps = true; end % ndr.reader.axon_abf.axon_abf function ec = epochclock(axon_abf_obj, epochstreams, epoch_select) diff --git a/+ndr/+reader/base.m b/+ndr/+reader/base.m index 1a00411..ef2a3db 100644 --- a/+ndr/+reader/base.m +++ b/+ndr/+reader/base.m @@ -1,5 +1,9 @@ classdef base + properties (SetAccess=protected) + MightHaveTimeGaps = false; % Boolean: true if the reader might have time gaps, false otherwise + end + methods function ndr_reader_base_obj = base(ndr_reader_type) % READER - create a new Neuroscience Data Reader Base object diff --git a/+ndr/reader.m b/+ndr/reader.m index 6028da4..e86e694 100644 --- a/+ndr/reader.m +++ b/+ndr/reader.m @@ -476,6 +476,18 @@ s = ndr_reader_obj.ndr_reader_base.times2samples(channeltype, channel, epochstreams, epoch_select, t); end % times2samples() + function b = MightHaveTimeGaps(ndr_reader_obj) + %MIGHTHAVETIMEGAPS - does the reader potentially have time gaps? + % + % B = MIGHTHAVETIMEGAPS(NDR_READER_OBJ) + % + % Returns true if the underlying reader might have time gaps, false otherwise. + % + % See also: ndr.reader.base/MightHaveTimeGaps + % + b = ndr_reader_obj.ndr_reader_base.MightHaveTimeGaps; + end % MightHaveTimeGaps() + end % methods end % classdef diff --git a/tools/tests/+ndr/+unittest/+reader/TestMightHaveTimeGaps.m b/tools/tests/+ndr/+unittest/+reader/TestMightHaveTimeGaps.m new file mode 100644 index 0000000..d1a5d8f --- /dev/null +++ b/tools/tests/+ndr/+unittest/+reader/TestMightHaveTimeGaps.m @@ -0,0 +1,23 @@ +classdef TestMightHaveTimeGaps < matlab.unittest.TestCase + methods (Test) + function testBaseProperty(testCase) + baseReader = ndr.reader.base(); + testCase.verifyFalse(baseReader.MightHaveTimeGaps); + end + + function testAxonAbfProperty(testCase) + axonReader = ndr.reader.axon_abf(); + testCase.verifyTrue(axonReader.MightHaveTimeGaps); + end + + function testReaderDelegation(testCase) + % 'abf' maps to ndr.reader.axon_abf + r_abf = ndr.reader('abf'); + testCase.verifyTrue(r_abf.MightHaveTimeGaps()); + + % 'intan' maps to ndr.reader.intan_rhd, which should inherit false + r_intan = ndr.reader('intan'); + testCase.verifyFalse(r_intan.MightHaveTimeGaps()); + end + end +end