Skip to content

Commit fbcef1b

Browse files
committed
[RDF] Add tests for GetClusterRanges
1 parent 4519c08 commit fbcef1b

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

tree/dataframe/test/dataframe_utils.cxx

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <vector>
99

1010
#include <TBranch.h>
11+
#include <TSystem.h>
1112

1213
namespace RDFInt = ROOT::Internal::RDF;
1314

@@ -237,3 +238,30 @@ TEST(RDataFrameUtils, TypeName2TypeID)
237238
EXPECT_THROW(RDFInt::TypeName2TypeID("float *"), std::runtime_error);
238239
EXPECT_THROW(RDFInt::TypeName2TypeID("float &"), std::runtime_error);
239240
}
241+
242+
TEST(RDataFrameUtils, GetClusterRanges)
243+
{
244+
const std::string fname = "dataframe_interfaceAndUtils_2.root";
245+
const int nEntries = 1000;
246+
const int clusterSize = 250;
247+
248+
{
249+
ROOT::RDF::RSnapshotOptions opts;
250+
opts.fAutoFlush = clusterSize;
251+
ROOT::RDataFrame(nEntries)
252+
.Define("i", "rdfentry_")
253+
.Snapshot("t", fname, {"i"}, opts);
254+
}
255+
256+
ROOT::RDataFrame df("t", fname);
257+
auto *lm = df.GetLoopManager();
258+
auto ranges = RDFInt::GetClusterRanges(*lm);
259+
260+
EXPECT_EQ(ranges.size(), nEntries / clusterSize);
261+
for (size_t i = 0; i < ranges.size(); ++i) {
262+
EXPECT_EQ(ranges[i].first, i * clusterSize);
263+
EXPECT_EQ(ranges[i].second, (i + 1) * clusterSize);
264+
}
265+
266+
gSystem->Unlink(fname.c_str());
267+
}

0 commit comments

Comments
 (0)