8 #include "gtest/gtest.h"
25 ASSERT_NE(
nullptr, pResourceManager);
26 ASSERT_NE(
nullptr, pTHM1176);
27 ASSERT_EQ(
true, pTHM1176->IsOpen());
28 ASSERT_EQ(
true, pTHM1176->
Reset());
35 delete pResourceManager;
36 pResourceManager =
nullptr;
45 std::string l_Identification;
46 ASSERT_EQ(
true, pTHM1176->GetIdentification(l_Identification));
48 std::regex l_Regex(
"([^,]+),([^,]+),([^,]+),([^,]+)");
50 ASSERT_EQ(
true, std::regex_match(l_Identification, l_Match, l_Regex));
51 EXPECT_EQ(
"Metrolab Technology SA", l_Match[1].str());
52 EXPECT_EQ(
"THM1176", l_Match[2].str().substr(0, 7));
54 std::string l_SerialNumber = l_Match[3].str();
55 std::string l_Versions = l_Match[4].str();
56 EXPECT_EQ(
true, std::regex_match(l_SerialNumber, std::regex(
"^0[0-9]+$")));
57 EXPECT_EQ(
true, std::regex_match(l_Versions, l_Match, std::regex(
"^el[A-Z][0-9]-pr[A-Z][0-9]-fw[0-9]+\\.[0-9]+\\n$")));
64 ASSERT_EQ(
true, pTHM1176->GetIdentification(l_Identification));
66 EXPECT_EQ(
"Metrolab Technology SA", l_Identification.
Manufacturer);
67 EXPECT_EQ(
"THM1176", l_Identification.
Model.substr(0, 7));
81 ASSERT_EQ(
true, pTHM1176->GetAllRanges(l_Ranges));
82 EXPECT_LT(0, l_Ranges.size());
83 for (
auto l_Range : l_Ranges)
84 EXPECT_LT(0., l_Range);
91 ASSERT_EQ(
true, pTHM1176->GetAllUnits(l_Units));
92 EXPECT_LT(0, l_Units.size());
93 for (
auto l_Unit : l_Units)
95 EXPECT_LE(
kT, l_Unit);
96 EXPECT_GE(
kMHzp, l_Unit);
104 ASSERT_EQ(
true, pTHM1176->GetAllUnits(l_Units));
105 for (
auto l_Unit : l_Units)
108 ASSERT_EQ(
true, pTHM1176->GetDivisor(l_Unit, l_Divisor));
109 EXPECT_LT(0U, l_Divisor);
118 ASSERT_EQ(
true, pTHM1176->GetRotationMatrix(l_Matrix));
119 std::cout << l_Matrix << std::endl;
120 for (
int i = 0; i< 3; i++)
121 for (
int j = 0; j < 3; j++)
122 EXPECT_NEAR(l_Matrix(i,j), (i == j) ? 1. : 0., 0.1);
129 F64 l_Period1, l_Period2, l_Period3;
133 EXPECT_EQ(
false, pTHM1176->GetImmediateMeasurementPeriod(l_Avg, l_Period1));
134 EXPECT_EQ(0., l_Period1);
138 EXPECT_EQ(
true, pTHM1176->GetImmediateMeasurementPeriod(l_Avg, l_Period1));
140 EXPECT_EQ(
true, pTHM1176->GetImmediateMeasurementPeriod(l_Avg, l_Period2));
142 EXPECT_EQ(
true, pTHM1176->GetImmediateMeasurementPeriod(l_Avg, l_Period3));
143 EXPECT_NEAR((l_Period2 - l_Period1), (l_Period3 - l_Period2), 1E-8);