Belle II Software  release-05-01-25
VxdID.cc
1 #include <vxd/dataobjects/VxdID.h>
2 #include <gtest/gtest.h>
3 #include <string>
4 
5 using namespace std;
6 
7 namespace Belle2 {
14  TEST(VxdID, Constructor)
15  {
16  VxdID s("1.1.1");
17  VxdID l(1, 1, 1);
18  EXPECT_EQ(l, s);
19  EXPECT_EQ((string)l, "1.1.1");
20  }
21 
23  TEST(VxdID, FromString)
24  {
25  //Check that all possible values can be converted back and forth
26  for (int layer = 0; layer <= VxdID::MaxLayer; ++layer) {
27  for (int ladder = 0; ladder <= VxdID::MaxLadder; ++ladder) {
28  for (int sensor = 0; sensor <= VxdID::MaxSensor; ++sensor) {
29  for (int segment = 0; segment <= VxdID::MaxSegment; ++segment) {
30  string sid = (string)VxdID(layer, ladder, sensor, segment);
31  VxdID id(layer, ladder, sensor, segment);
32  EXPECT_EQ(id, VxdID(sid));
33  EXPECT_EQ(id.getLayerNumber(), layer);
34  EXPECT_EQ(id.getLadderNumber(), ladder);
35  EXPECT_EQ(id.getSensorNumber(), sensor);
36  EXPECT_EQ(id.getSegmentNumber(), segment);
37  }
38  }
39  }
40  }
41 
42  //Check some invalid ids
43  EXPECT_THROW(VxdID("1.f"), invalid_argument);
44  EXPECT_THROW(VxdID("1.1.f"), invalid_argument);
45  EXPECT_THROW(VxdID("1.*.f"), invalid_argument);
46  EXPECT_THROW(VxdID("1.1.1 and some more"), invalid_argument);
47  }
49 } // namespace
Belle2::VxdID
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:43
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TEST
TEST(VxdID, FromString)
Check the string conversion of the VxdID in both directions.
Definition: VxdID.cc:23