From d67a2ac920fbad21dab5af815c22196a517842be Mon Sep 17 00:00:00 2001 From: Enrico Guiraud <enrico.guiraud@cern.ch> Date: Thu, 5 Jul 2018 23:13:35 +0200 Subject: [PATCH] [DF] Add a test for the PassAsVec RDF helper --- tree/dataframe/test/.gdb_history | 0 tree/dataframe/test/dataframe_helpers.cxx | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 tree/dataframe/test/.gdb_history diff --git a/tree/dataframe/test/.gdb_history b/tree/dataframe/test/.gdb_history new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tree/dataframe/test/dataframe_helpers.cxx b/tree/dataframe/test/dataframe_helpers.cxx index 3b8fefc240e..e4af7372c89 100644 --- a/tree/dataframe/test/dataframe_helpers.cxx +++ b/tree/dataframe/test/dataframe_helpers.cxx @@ -1,10 +1,15 @@ #include <ROOT/RDataFrame.hxx> #include <ROOT/RDFHelpers.hxx> -#include "gtest/gtest.h" +#include <ROOT/RVec.hxx> + #include <algorithm> +#include <deque> #include <vector> + +#include "gtest/gtest.h" using namespace ROOT; using namespace ROOT::RDF; +using namespace ROOT::VecOps; struct TrueFunctor { bool operator()() const { return true; } @@ -32,3 +37,15 @@ TEST(RDFHelpers, Not) EXPECT_EQ(1u, *RDataFrame(1).Filter(Not(Not(l))).Count()); } +TEST(RDFHelpers, PassAsVec) +{ + auto One = [] { return 1; }; + auto df = RDataFrame(1).Define("one", One).Define("_1", One); + + auto TwoOnes = [](const std::vector<int> &v) { return v.size() == 2 && v[0] == 1 && v[1] == 1; }; + EXPECT_EQ(1u, *df.Filter(PassAsVec<2, int>(TwoOnes), {"one", "_1"}).Count()); + auto TwoOnesRVec = [](const RVec<int> &v) { return v.size() == 2 && All(v == 1); }; + EXPECT_EQ(1u, *df.Filter(PassAsVec<2, int>(TwoOnesRVec), {"one", "_1"}).Count()); + auto TwoOnesDeque = [](const std::deque<int> &v) { return v.size() == 2 && v[0] == 1 && v[1] == 1; }; + EXPECT_EQ(1u, *df.Filter(PassAsVec<2, int>(TwoOnesDeque), {"one", "_1"}).Count()); +} -- GitLab