diff --git a/km3io/online.py b/km3io/online.py index 37d0eeaafe1e34f6eacb104c6b7f9f4ac2f215e7..59e2fee3beb4f5805f4e081de637bac4e91375c6 100644 --- a/km3io/online.py +++ b/km3io/online.py @@ -60,6 +60,9 @@ class SummarysliceReader: def __next__(self): return next(self._summaryslices) + def __len__(self): + return int(np.ceil(len(self._branch) / self._step_size)) + @nb.vectorize( [nb.int32(nb.int8), nb.int32(nb.int16), nb.int32(nb.int32), nb.int32(nb.int64)] diff --git a/tests/test_online.py b/tests/test_online.py index 70a84ff6978fbd35163badf985d04ddca862df1e..c86ab49b5e7675c9e5ad8e8766c7ddd92913b755 100644 --- a/tests/test_online.py +++ b/tests/test_online.py @@ -739,6 +739,14 @@ class TestSummarysliceReader(unittest.TestCase): def test_init(self): sr = SummarysliceReader(data_path("online/km3net_online.root")) + def test_length(self): + sr = SummarysliceReader(data_path("online/km3net_online.root")) + assert 1 == len(sr) + sr = SummarysliceReader(data_path("online/km3net_online.root"), step_size=2) + assert 2 == len(sr) + sr = SummarysliceReader(data_path("online/km3net_online.root"), step_size=3) + assert 1 == len(sr) + def test_iterate_with_step_size_one(self): sr = SummarysliceReader(data_path("online/km3net_online.root"), step_size=1) i = 0