Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-27 07:24:21

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
0008 
0009 // Detray include(s).
0010 #include "detray/geometry/identifier.hpp"
0011 
0012 // Google test include(s).
0013 #include <gtest/gtest.h>
0014 
0015 using namespace detray;
0016 
0017 /// Test retrieval of surface from collection using brute force searching
0018 GTEST_TEST(detray_geometry, identifier) {
0019   auto geo_id = geometry::identifier{};
0020 
0021   // Check a empty identifier
0022   EXPECT_EQ(geo_id.volume(), static_cast<dindex>((1UL << 12) - 1UL));
0023   EXPECT_EQ(geo_id.id(), static_cast<surface_id>((1UL << 4) - 1UL));
0024   EXPECT_EQ(geo_id.index(), static_cast<dindex>((1UL << 21) - 1UL));
0025   EXPECT_EQ(geo_id.transform(), static_cast<dindex>((1UL << 21) - 1UL));
0026   EXPECT_EQ(geo_id.extra(), static_cast<dindex>((1UL << 6) - 1UL));
0027 
0028   geo_id.set_volume(2UL)
0029       .set_id(surface_id::e_passive)
0030       .set_index(42UL)
0031       .set_transform(11UL)
0032       .set_extra(24UL);
0033 
0034   // Check the values after setting them
0035   EXPECT_EQ(geo_id.volume(), 2UL);
0036   EXPECT_EQ(geo_id.id(), surface_id::e_passive);
0037   EXPECT_EQ(geo_id.index(), 42UL);
0038   EXPECT_EQ(geo_id.transform(), 11UL);
0039   EXPECT_EQ(geo_id.extra(), 24UL);
0040 
0041   // Check invalid identifier
0042   EXPECT_FALSE(geo_id.is_invalid());
0043   geo_id.set_volume((1UL << 12) - 1UL);
0044   EXPECT_TRUE(geo_id.is_invalid());
0045   geo_id.set_volume(2UL);
0046   EXPECT_FALSE(geo_id.is_invalid());
0047 
0048   geo_id.set_id(static_cast<surface_id>((1UL << 4) - 1UL));
0049   EXPECT_TRUE(geo_id.is_invalid());
0050   geo_id.set_id(surface_id::e_passive);
0051   EXPECT_FALSE(geo_id.is_invalid());
0052 
0053   geo_id.set_index((1UL << 21) - 1UL);
0054   EXPECT_TRUE(geo_id.is_invalid());
0055   geo_id.set_index(42UL);
0056   EXPECT_FALSE(geo_id.is_invalid());
0057 
0058   geo_id.set_transform((1UL << 21) - 1UL);
0059   EXPECT_TRUE(geo_id.is_invalid());
0060   geo_id.set_transform(11UL);
0061   EXPECT_FALSE(geo_id.is_invalid());
0062 
0063   geo_id.set_extra((1UL << 6) - 1UL);
0064   EXPECT_FALSE(geo_id.is_invalid());
0065 }