11 #include <vxd/dataobjects/VxdID.h>
12 #include <svd/dataobjects/SVDModeByte.h>
13 #include <svd/dataobjects/SVDShaperDigit.h>
17 #include <gtest/gtest.h>
29 TEST(SVDShaperDigit, ConstructEmpty)
34 EXPECT_EQ(0, digit.getSensorID());
35 EXPECT_TRUE(digit.isUStrip());
36 EXPECT_EQ(0, digit.getCellID());
38 for (
auto sample : samples)
40 EXPECT_EQ(0.0, digit.getFADCTime());
42 EXPECT_EQ(
"0-suppr/global/6 samples/???", std::string(digit.getModeByte()));
51 VxdID sensorID(3, 4, 1);
52 short int cellID = 132;
53 char digitFADCTime(-16);
56 std::vector<int> init_samples({0, 5, 10, 9, 6, 5});
57 SVDShaperDigit digit(sensorID,
false, cellID, init_samples, digitFADCTime, digitModeByte);
59 EXPECT_EQ(sensorID, digit.getSensorID());
60 EXPECT_FALSE(digit.isUStrip());
61 EXPECT_EQ(cellID, digit.getCellID());
66 EXPECT_EQ(
static_cast<float>(digitFADCTime), digit.getFADCTime());
67 EXPECT_EQ(digitModeByte, digit.getModeByte());
68 EXPECT_EQ(
"0-suppr/global/6 samples/???", std::string(digit.getModeByte()));
74 TEST(SVDShaperDigit, ConstructFromCArray)
77 VxdID sensorID(3, 4, 1);
78 short int cellID = 132;
79 char digitFADCTime(-16);
80 unsigned char digitModeByte(151);
85 sensorID,
false, cellID, init_samples, digitFADCTime, digitModeByte
88 EXPECT_EQ(sensorID, digit.getSensorID());
89 EXPECT_FALSE(digit.isUStrip());
90 EXPECT_EQ(cellID, digit.getCellID());
95 EXPECT_EQ(
static_cast<float>(digitFADCTime), digit.getFADCTime());
96 EXPECT_EQ(digitModeByte, digit.getModeByte());
97 EXPECT_EQ(
"0-suppr/global/6 samples/???", std::string(digit.getModeByte()));
102 TEST(SVDShaperDigit, ConstructDefaultTimeMode)
105 VxdID sensorID(3, 4, 1);
106 short int cellID = 132;
108 double init_samples[6] = {0, 5, 10, 9, 6, 5};
109 SVDShaperDigit digit(sensorID,
false, cellID, init_samples);
111 EXPECT_EQ(0.0, digit.getFADCTime());
113 EXPECT_EQ(
"0-suppr/global/6 samples/???", std::string(digit.getModeByte()));
120 VxdID sensorID(3, 4, 1);
121 short int cellID = 132;
128 std::vector<float> init_samples({0, -10, 255, 256, 500, -1});
130 const auto& samples = digit.getSamples();
132 auto trimmedSample = std::max(sampleMin, std::min(sampleMax, init_samples[isample]));
133 EXPECT_EQ(trimmedSample, samples[isample]);
138 TEST(SVDShaperDigit, TrimmingFunction)
147 std::vector<float> init_samples({0, -10, 255, 256, 500, -1});
149 auto trimmedSample = std::max(sampleMin, std::min(sampleMax, init_samples[isample]));