File indexing completed on 2025-07-12 07:53:04
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include <boost/test/unit_test.hpp>
0010
0011 #include "Acts/EventData/SourceLink.hpp"
0012 #include "Acts/EventData/SpacePointContainer2.hpp"
0013
0014 using namespace Acts;
0015 using namespace Acts::Experimental;
0016
0017 BOOST_AUTO_TEST_SUITE(EventDataSpacePointContainer2)
0018
0019 BOOST_AUTO_TEST_CASE(Empty) {
0020 SpacePointContainer2 container;
0021
0022 BOOST_CHECK(container.empty());
0023 BOOST_CHECK_EQUAL(container.size(), 0u);
0024
0025 for ([[maybe_unused]] auto _ : container) {
0026 BOOST_FAIL("Container should be empty, no space points should be iterated");
0027 }
0028 }
0029
0030 BOOST_AUTO_TEST_CASE(Create) {
0031 SpacePointContainer2 container;
0032 container.reserve(1);
0033
0034 container.createSpacePoint(std::array<SourceLink, 1>{SourceLink(42)}, 1, 2,
0035 3);
0036
0037 BOOST_CHECK(!container.empty());
0038 BOOST_CHECK_EQUAL(container.size(), 1u);
0039
0040 auto spacePoint = container.at(0);
0041 BOOST_CHECK_EQUAL(spacePoint.x(), 1);
0042 BOOST_CHECK_EQUAL(spacePoint.y(), 2);
0043 BOOST_CHECK_EQUAL(spacePoint.z(), 3);
0044 BOOST_CHECK_EQUAL(spacePoint.sourceLinks().size(), 1u);
0045 BOOST_CHECK_EQUAL(spacePoint.sourceLinks()[0].get<int>(), 42);
0046 }
0047
0048 BOOST_AUTO_TEST_CASE(Iterate) {
0049 SpacePointContainer2 container;
0050 container.reserve(1);
0051
0052 container.createSpacePoint(std::array<SourceLink, 1>{SourceLink(42)}, 1, 2,
0053 3);
0054
0055 auto it = container.begin();
0056 BOOST_CHECK(it != container.end());
0057 BOOST_CHECK_EQUAL((*it).x(), 1);
0058 ++it;
0059 BOOST_CHECK(it == container.end());
0060 }
0061
0062 BOOST_AUTO_TEST_CASE(CopyAndMove) {
0063 SpacePointContainer2 container;
0064 container.reserve(1);
0065
0066 container.createSpacePoint(std::array<SourceLink, 1>{SourceLink(42)}, 1, 2,
0067 3);
0068
0069 SpacePointContainer2 containerCopy = container;
0070 BOOST_CHECK(!containerCopy.empty());
0071 BOOST_CHECK_EQUAL(containerCopy.size(), 1u);
0072
0073 SpacePointContainer2 containerMove = std::move(container);
0074 BOOST_CHECK(!containerMove.empty());
0075 BOOST_CHECK_EQUAL(containerMove.size(), 1u);
0076
0077 BOOST_CHECK(container.empty());
0078 BOOST_CHECK_EQUAL(container.size(), 0u);
0079
0080 BOOST_CHECK(!containerCopy.empty());
0081 BOOST_CHECK_EQUAL(containerCopy.size(), 1u);
0082 }
0083
0084 BOOST_AUTO_TEST_CASE(Clear) {
0085 SpacePointContainer2 container;
0086 container.reserve(1);
0087
0088 container.createSpacePoint(std::array<SourceLink, 1>{SourceLink(42)}, 1, 2,
0089 3);
0090
0091 container.clear();
0092
0093 BOOST_CHECK(container.empty());
0094 BOOST_CHECK_EQUAL(container.size(), 0u);
0095 for ([[maybe_unused]] auto _ : container) {
0096 BOOST_FAIL("Container should be empty, no space points should be iterated");
0097 }
0098 }
0099
0100 BOOST_AUTO_TEST_CASE(KnownExtraColumns) {
0101 SpacePointContainer2 container;
0102
0103 BOOST_CHECK(!container.hasExtraColumns(SpacePointKnownExtraColumn::R |
0104 SpacePointKnownExtraColumn::Phi));
0105
0106 container.createExtraColumns(SpacePointKnownExtraColumn::R |
0107 SpacePointKnownExtraColumn::Phi);
0108
0109 BOOST_CHECK(container.hasExtraColumns(SpacePointKnownExtraColumn::R |
0110 SpacePointKnownExtraColumn::Phi));
0111
0112 auto sp = container.createSpacePoint(
0113 std::array<SourceLink, 1>{SourceLink(42)}, 1, 2, 3);
0114 sp.r() = 100;
0115
0116 BOOST_CHECK_EQUAL(sp.r(), 100);
0117 BOOST_CHECK_EQUAL(sp.phi(), 0);
0118 }
0119
0120 BOOST_AUTO_TEST_CASE(NamedExtraColumns) {
0121 SpacePointContainer2 container;
0122
0123 BOOST_CHECK(!container.hasExtraColumn("extra1"));
0124 BOOST_CHECK(!container.hasExtraColumn("extra2"));
0125
0126 auto extra1 = container.createExtraColumn<int>("extra1");
0127
0128 BOOST_CHECK(container.hasExtraColumn("extra1"));
0129 BOOST_CHECK(!container.hasExtraColumn("extra2"));
0130
0131 auto sp = container.createSpacePoint(
0132 std::array<SourceLink, 1>{SourceLink(42)}, 1, 2, 3);
0133 sp.extra(extra1) = 100;
0134
0135 auto extra2 = container.createExtraColumn<int>("extra2");
0136
0137 BOOST_CHECK(container.hasExtraColumn("extra1"));
0138 BOOST_CHECK(container.hasExtraColumn("extra2"));
0139
0140 BOOST_CHECK_EQUAL(sp.extra(extra1), 100);
0141 BOOST_CHECK_EQUAL(sp.extra(extra2), 0);
0142 }
0143
0144 BOOST_AUTO_TEST_SUITE_END()