File indexing completed on 2026-05-27 07:24:21
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include "detray/geometry/identifier.hpp"
0011
0012
0013 #include <gtest/gtest.h>
0014
0015 using namespace detray;
0016
0017
0018 GTEST_TEST(detray_geometry, identifier) {
0019 auto geo_id = geometry::identifier{};
0020
0021
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
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
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 }