OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
TestIndexMap.cpp
Go to the documentation of this file.
1#include "gtest/gtest.h"
2
5
6#include <limits>
7
8TEST(IndexMapTest, RebuildsReferencePathModelFromOrderedRanges) {
9 auto drift1 = std::make_shared<DriftRep>("D1");
10 auto drift2 = std::make_shared<DriftRep>("D2");
11
12 IndexMap map;
13 map.add(0.0, 1.0, IndexMap::value_t{drift1});
14 map.add(1.0, 2.0, IndexMap::value_t{drift1, drift2});
15
16 const ReferencePathModel& model = map.getReferencePathModel();
17
18 ASSERT_EQ(model.size(), 2u);
19 EXPECT_DOUBLE_EQ(model[0].getBegin(), 0.0);
20 EXPECT_DOUBLE_EQ(model[0].getEnd(), 1.0 * (1.0 - std::numeric_limits<double>::epsilon()));
21 ASSERT_EQ(model[0].getActiveElements().size(), 1u);
22 EXPECT_EQ((*model[0].getActiveElements().begin())->getName(), "D1");
23
24 EXPECT_DOUBLE_EQ(model[1].getBegin(), 1.0);
25 EXPECT_DOUBLE_EQ(model[1].getEnd(), 2.0 * (1.0 - std::numeric_limits<double>::epsilon()));
26 ASSERT_EQ(model[1].getActiveElements().size(), 2u);
27}
TEST(IndexMapTest, RebuildsReferencePathModelFromOrderedRanges)
void add(key_t::first_type initialStep, key_t::second_type finalStep, const value_t &val)
Definition IndexMap.cpp:111
std::set< std::shared_ptr< Component > > value_t
Definition IndexMap.h:46
const ReferencePathModel & getReferencePathModel() const
Definition IndexMap.h:107
Ordered collection of reference-path segments.