ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
Columnar
ColumnarTestFixtures
ColumnarTestFixtures
ColumnarMemoryTest.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
7
8
#ifndef COLUMNAR_TEST_FIXTURES__COLUMNAR_MEMORY_TEST_H
9
#define COLUMNAR_TEST_FIXTURES__COLUMNAR_MEMORY_TEST_H
10
11
#include <
AsgTools/AsgTool.h
>
12
#include <
ColumnarInterfaces/ColumnInfo.h
>
13
#include <
ColumnarInterfaces/IColumnarTool.h
>
14
#include <
ColumnarTestFixtures/ToolWrapper.h
>
15
#include <
ColumnarTestFixtures/ManualColumnData.h
>
16
#include <
PATInterfaces/ISystematicsTool.h
>
17
18
#include <gtest/gtest.h>
19
20
#include <optional>
21
22
namespace
columnar
23
{
24
namespace
TestUtils
25
{
26
class
ColumnarTestToolHandle
;
27
struct
ColumnMapType
;
28
}
29
30
struct
ColumnarMemoryTest
:
public
testing::Test
31
{
32
ColumnarMemoryTest
();
33
35
std::string
makeUniqueName
();
36
38
static
bool
checkMode
();
39
40
using
ColumnMapType
=
TestUtils::ColumnMapType
;
41
using
ColumnarTestToolHandle
=
TestUtils::ColumnarTestToolHandle
;
42
};
43
44
45
46
namespace
TestUtils
47
{
53
54
class
ColumnarTestToolHandle
final
55
{
58
59
public
:
60
61
explicit
ColumnarTestToolHandle
(
asg::AsgTool
& val_tool);
62
64
void
renameContainers
(
const
std::vector<std::pair<std::string,std::string>>& renames);
65
67
void
initialize
();
68
70
void
applySystematicVariation
(
const
std::string& sysName);
71
73
[[nodiscard]] std::vector<ColumnInfo>
getColumnInfo
()
const
;
74
76
std::vector<std::string>
getColumnNames
()
const
;
77
79
std::vector<std::string>
getRecommendedSystematics
()
const
;
80
82
[[nodiscard]]
ToolColumnVectorMap
&
getToolWrapper
();
83
[[nodiscard]]
const
ToolColumnVectorMap
&
getToolWrapper
()
const
;
84
86
[[nodiscard]]
const
ColumnVectorHeader
&
getColumnHeader
()
const
{
87
return
*
m_columnHeader
;}
88
90
[[nodiscard]]
IColumnarTool
*
getTool
();
91
92
93
96
97
private
:
98
99
IColumnarTool
*
m_tool
=
nullptr
;
100
CP::ISystematicsTool
*
m_systTool
=
nullptr
;
101
102
std::shared_ptr<ColumnVectorHeader>
m_columnHeader
;
103
std::shared_ptr<ToolColumnVectorMap>
m_toolWrapper
;
104
};
105
106
107
108
struct
ColumnMapType
final
109
{
110
ColumnMapType
(
ColumnarTestToolHandle
& val_toolHandle);
111
112
void
addColumn
(
const
std::string& name, std::vector<std::any> data);
113
114
std::size_t
columnSize
(
const
std::string& name);
115
116
void
setExpectation
(
const
std::string& name, std::vector<std::any> values);
117
119
void
connectColumnsToTool
();
120
121
void
call
();
122
123
void
checkExpectations
();
124
125
template
<
typename
T>
void
addTypedColumn
(
const
std::string& name, std::vector<T> data)
126
{
127
addColumn
(name, std::vector<std::any> (data.begin(), data.end()));
128
}
129
130
private
:
131
132
ColumnarTestToolHandle
*
m_toolHandle
=
nullptr
;
133
134
std::unique_ptr<ColumnVectorData>
m_columnData
;
135
136
struct
MyColumnData
final
137
{
138
std::optional<ColumnInfo>
info
;
139
std::optional<ManualColumnData>
input
;
140
std::optional<ManualColumnData>
expectation
;
141
};
142
std::unordered_map<std::string,MyColumnData>
m_userColumns
;
143
};
144
}
145
}
146
147
#endif
AsgTool.h
ColumnInfo.h
IColumnarTool.h
ISystematicsTool.h
ManualColumnData.h
ToolWrapper.h
CP::ISystematicsTool
Interface for all CP tools supporting systematic variations.
Definition
ISystematicsTool.h:32
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition
AsgTool.h:47
columnar::ColumnVectorHeader
the header information for the entire columnar data vector
Definition
ColumnVectorWrapper.h:125
columnar::IColumnarTool
an interface for tools that operate on columnar data
Definition
IColumnarTool.h:190
columnar::TestUtils::ColumnarTestToolHandle
a handle to a columnar tool for running tests
Definition
ColumnarMemoryTest.h:55
columnar::TestUtils::ColumnarTestToolHandle::m_columnHeader
std::shared_ptr< ColumnVectorHeader > m_columnHeader
Definition
ColumnarMemoryTest.h:102
columnar::TestUtils::ColumnarTestToolHandle::getToolWrapper
ToolColumnVectorMap & getToolWrapper()
get the tool wrapper
Definition
ColumnarMemoryTest.cxx:131
columnar::TestUtils::ColumnarTestToolHandle::m_toolWrapper
std::shared_ptr< ToolColumnVectorMap > m_toolWrapper
Definition
ColumnarMemoryTest.h:103
columnar::TestUtils::ColumnarTestToolHandle::m_systTool
CP::ISystematicsTool * m_systTool
Definition
ColumnarMemoryTest.h:100
columnar::TestUtils::ColumnarTestToolHandle::applySystematicVariation
void applySystematicVariation(const std::string &sysName)
set the tool to apply the given systematic variation
Definition
ColumnarMemoryTest.cxx:85
columnar::TestUtils::ColumnarTestToolHandle::ColumnarTestToolHandle
ColumnarTestToolHandle(asg::AsgTool &val_tool)
Definition
ColumnarMemoryTest.cxx:52
columnar::TestUtils::ColumnarTestToolHandle::getRecommendedSystematics
std::vector< std::string > getRecommendedSystematics() const
get the recommended systematics
Definition
ColumnarMemoryTest.cxx:118
columnar::TestUtils::ColumnarTestToolHandle::getColumnHeader
const ColumnVectorHeader & getColumnHeader() const
get the column header
Definition
ColumnarMemoryTest.h:86
columnar::TestUtils::ColumnarTestToolHandle::initialize
void initialize()
initialize the tool
Definition
ColumnarMemoryTest.cxx:76
columnar::TestUtils::ColumnarTestToolHandle::renameContainers
void renameContainers(const std::vector< std::pair< std::string, std::string > > &renames)
rename the columns the tool uses
Definition
ColumnarMemoryTest.cxx:63
columnar::TestUtils::ColumnarTestToolHandle::getTool
IColumnarTool * getTool()
get the contained tool
Definition
ColumnarMemoryTest.cxx:151
columnar::TestUtils::ColumnarTestToolHandle::m_tool
IColumnarTool * m_tool
Definition
ColumnarMemoryTest.h:99
columnar::TestUtils::ColumnarTestToolHandle::getColumnInfo
std::vector< ColumnInfo > getColumnInfo() const
get the expected column info
Definition
ColumnarMemoryTest.cxx:98
columnar::TestUtils::ColumnarTestToolHandle::getColumnNames
std::vector< std::string > getColumnNames() const
get the expected column names
Definition
ColumnarMemoryTest.cxx:108
columnar::ToolColumnVectorMap
a class that interfaces an IColumnarTool to a ColumnVectorHeader
Definition
ToolColumnVectorMap.h:30
TestUtils
Definition
TestUtils.py:1
columnar::TestUtils
Definition
Benchmark.h:20
columnar
Definition
ClusterDef.h:16
columnar::ColumnarMemoryTest::ColumnMapType
TestUtils::ColumnMapType ColumnMapType
Definition
ColumnarMemoryTest.h:40
columnar::ColumnarMemoryTest::ColumnarTestToolHandle
TestUtils::ColumnarTestToolHandle ColumnarTestToolHandle
Definition
ColumnarMemoryTest.h:41
columnar::ColumnarMemoryTest::makeUniqueName
std::string makeUniqueName()
make a unique tool name to be used in unit tests
Definition
ColumnarMemoryTest.cxx:33
columnar::ColumnarMemoryTest::checkMode
static bool checkMode()
check whether we have the right mode
Definition
ColumnarMemoryTest.cxx:42
columnar::ColumnarMemoryTest::ColumnarMemoryTest
ColumnarMemoryTest()
Definition
ColumnarMemoryTest.cxx:26
columnar::TestUtils::ColumnMapType::MyColumnData
Definition
ColumnarMemoryTest.h:137
columnar::TestUtils::ColumnMapType::MyColumnData::input
std::optional< ManualColumnData > input
Definition
ColumnarMemoryTest.h:139
columnar::TestUtils::ColumnMapType::MyColumnData::expectation
std::optional< ManualColumnData > expectation
Definition
ColumnarMemoryTest.h:140
columnar::TestUtils::ColumnMapType::MyColumnData::info
std::optional< ColumnInfo > info
Definition
ColumnarMemoryTest.h:138
columnar::TestUtils::ColumnMapType
Definition
ColumnarMemoryTest.h:109
columnar::TestUtils::ColumnMapType::checkExpectations
void checkExpectations()
Definition
ColumnarMemoryTest.cxx:269
columnar::TestUtils::ColumnMapType::m_toolHandle
ColumnarTestToolHandle * m_toolHandle
Definition
ColumnarMemoryTest.h:132
columnar::TestUtils::ColumnMapType::setExpectation
void setExpectation(const std::string &name, std::vector< std::any > values)
Definition
ColumnarMemoryTest.cxx:186
columnar::TestUtils::ColumnMapType::call
void call()
Definition
ColumnarMemoryTest.cxx:260
columnar::TestUtils::ColumnMapType::m_columnData
std::unique_ptr< ColumnVectorData > m_columnData
Definition
ColumnarMemoryTest.h:134
columnar::TestUtils::ColumnMapType::addTypedColumn
void addTypedColumn(const std::string &name, std::vector< T > data)
Definition
ColumnarMemoryTest.h:125
columnar::TestUtils::ColumnMapType::connectColumnsToTool
void connectColumnsToTool()
add the columns we have to the tool
Definition
ColumnarMemoryTest.cxx:209
columnar::TestUtils::ColumnMapType::columnSize
std::size_t columnSize(const std::string &name)
Definition
ColumnarMemoryTest.cxx:198
columnar::TestUtils::ColumnMapType::ColumnMapType
ColumnMapType(ColumnarTestToolHandle &val_toolHandle)
Definition
ColumnarMemoryTest.cxx:159
columnar::TestUtils::ColumnMapType::addColumn
void addColumn(const std::string &name, std::vector< std::any > data)
Definition
ColumnarMemoryTest.cxx:174
columnar::TestUtils::ColumnMapType::m_userColumns
std::unordered_map< std::string, MyColumnData > m_userColumns
Definition
ColumnarMemoryTest.h:142
Generated on
for ATLAS Offline Software by
1.17.0