From 57c09c9e9b7376ba2105df82991977aca96b4f8b Mon Sep 17 00:00:00 2001 From: Florine de Geus <florine.willemijn.de.geus@cern.ch> Date: Mon, 13 Mar 2023 14:42:11 +0100 Subject: [PATCH] [ntuple] Add unit test for TChain --- tree/ntupleutil/v7/test/ntuple_importer.cxx | 40 +++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tree/ntupleutil/v7/test/ntuple_importer.cxx b/tree/ntupleutil/v7/test/ntuple_importer.cxx index f77f08f0c87..0610c0bb665 100644 --- a/tree/ntupleutil/v7/test/ntuple_importer.cxx +++ b/tree/ntupleutil/v7/test/ntuple_importer.cxx @@ -2,6 +2,7 @@ #include <TFile.h> #include <TTree.h> +#include <TChain.h> #include <cstdio> #include <string> @@ -56,6 +57,45 @@ TEST(RNTupleImporter, CreateFromTree) EXPECT_THROW(importer->Import(), ROOT::Experimental::RException); } +TEST(RNTupleImporter, CreateFromChain) +{ + FileRaii fileGuard1("test_ntuple_create_from_chain_1.root"); + { + std::unique_ptr<TFile> file(TFile::Open(fileGuard1.GetPath().c_str(), "RECREATE")); + auto tree = std::make_unique<TTree>("tree", ""); + Int_t a = 42; + // For single-leaf branches, use branch name, not leaf name + tree->Branch("a", &a); + tree->Fill(); + tree->Write(); + } + + FileRaii fileGuard2("test_ntuple_create_from_chain_2.root"); + { + std::unique_ptr<TFile> file(TFile::Open(fileGuard2.GetPath().c_str(), "RECREATE")); + auto tree = std::make_unique<TTree>("tree", ""); + Int_t a = 43; + // For single-leaf branches, use branch name, not leaf name + tree->Branch("a", &a); + tree->Fill(); + tree->Write(); + } + + TChain *chain = new TChain("tree"); + chain->Add(fileGuard1.GetPath().c_str()); + chain->Add(fileGuard2.GetPath().c_str()); + + auto importer = RNTupleImporter::Create(chain, fileGuard1.GetPath()).Unwrap(); + importer->SetIsQuiet(true); + EXPECT_THROW(importer->Import(), ROOT::Experimental::RException); + importer->SetNTupleName("ntuple"); + importer->Import(); + + auto reader = RNTupleReader::Open("ntuple", fileGuard1.GetPath()); + EXPECT_EQ(2U, reader->GetNEntries()); + EXPECT_THROW(importer->Import(), ROOT::Experimental::RException); +} + TEST(RNTupleImporter, Simple) { FileRaii fileGuard("test_ntuple_importer_simple.root"); -- GitLab