1 #include <framework/utilities/Angle.h>
3 #include <gtest/gtest.h>
9 double constexpr epsilon = 1
e-7;
15 TestBaseAngle(
double angle,
double error) :
BaseAngle(angle, error) {};
18 const double angle = TMath::PiOver2();
19 const double error = TMath::PiOver4();
21 TestBaseAngle myBaseAngle(angle, error);
22 EXPECT_DOUBLE_EQ(angle, myBaseAngle.getAngle());
23 EXPECT_DOUBLE_EQ(error, myBaseAngle.getError());
24 EXPECT_DOUBLE_EQ(angle * TMath::RadToDeg(), myBaseAngle.getAngleInDeg());
25 EXPECT_DOUBLE_EQ(error * TMath::RadToDeg(), myBaseAngle.getErrorInDeg());
26 EXPECT_DOUBLE_EQ(angle - error, myBaseAngle.getLowerIntervalBoundary());
27 EXPECT_DOUBLE_EQ(angle + error, myBaseAngle.getUpperIntervalBoundary());
32 const double angle = 0.4;
33 const double error = 0.2;
36 EXPECT_FALSE(myThetaAngle.contains(
ThetaAngle(0., 0.)));
37 EXPECT_FALSE(myThetaAngle.contains(
ThetaAngle(1.6, 0.)));
38 EXPECT_TRUE(myThetaAngle.contains(
ThetaAngle(angle - error / 2, 0.)));
39 EXPECT_TRUE(myThetaAngle.contains(
ThetaAngle(angle + error / 2, 0.)));
41 EXPECT_FLOAT_EQ(TMath::PiOver2(),
ThetaAngle(TMath::Pi() + TMath::PiOver2(), 0.).getAngle());
44 TEST(Angle, PhiAngleIntervalNormalCase)
49 EXPECT_FALSE(myPhiAngle.contains(
PhiAngle(0., 0.)));
50 EXPECT_FALSE(myPhiAngle.contains(
PhiAngle(TMath::TwoPi(), 0.)));
51 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(angle - error / 2, 0.)));
52 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(angle + error / 2, 0.)));
54 EXPECT_FLOAT_EQ(TMath::Pi(),
PhiAngle(TMath::TwoPi() + TMath::Pi(), 0.).getAngle());
57 TEST(Angle, PhiAngleIntervalBreaksZero)
59 const double angle = 0.1;
60 const double error = 0.3;
62 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(0 + epsilon, 0.)));
63 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(0 - epsilon, 0.)));
64 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(TMath::TwoPi() + epsilon, 0.)));
65 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(TMath::TwoPi() - epsilon, 0.)));
66 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(angle - error / 2, 0.)));
67 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(angle + error / 2, 0.)));
70 TEST(Angle, PhiAngleIntervalBreaksTwoPi)
72 const double angle = TMath::TwoPi() - 0.1;
73 const double error = 0.3;
75 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(0 + epsilon, 0.)));
76 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(0 - epsilon, 0.)));
77 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(TMath::TwoPi() + epsilon, 0.)));
78 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(TMath::TwoPi() - epsilon, 0.)));
79 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(angle - error / 2, 0.)));
80 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(angle + error / 2, 0.)));
83 TEST(Angle, PhiAngleNormalCase)
85 const double angle = TMath::Pi();
86 const double error = 0.0;
88 EXPECT_FALSE(myPhiAngle.contains(
PhiAngle(0 + epsilon, 0.2)));
89 EXPECT_FALSE(myPhiAngle.contains(
PhiAngle(0 - epsilon, 0.2)));
90 EXPECT_FALSE(myPhiAngle.contains(
PhiAngle(TMath::TwoPi() + epsilon, 0.2)));
91 EXPECT_FALSE(myPhiAngle.contains(
PhiAngle(TMath::TwoPi() - epsilon, 0.2)));
92 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(angle - error / 2, 0.2)));
93 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(angle + error / 2, 0.2)));
96 TEST(Angle, PhiAngleBreaksZero)
98 const double angle = 0.1;
99 const double error = 0.0;
101 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(0 + epsilon, 0.2)));
102 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(0 - epsilon, 0.2)));
103 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(TMath::TwoPi() + epsilon, 0.2)));
104 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(TMath::TwoPi() - epsilon, 0.2)));
105 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(angle - error / 2, 0.2)));
106 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(angle + error / 2, 0.2)));
109 TEST(Angle, PhiAngleBreaksTwoPi)
111 const double angle = TMath::TwoPi() - 0.1;
112 const double error = 0.0;
114 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(0 + epsilon, 0.2)));
115 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(0 - epsilon, 0.2)));
116 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(TMath::TwoPi() + epsilon, 0.2)));
117 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(TMath::TwoPi() - epsilon, 0.2)));
118 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(angle - error / 2, 0.2)));
119 EXPECT_TRUE(myPhiAngle.contains(
PhiAngle(angle + error / 2, 0.2)));
122 TEST(Angle, PhiAngleAndErrorBreakTwoPi)
124 const double angle = -0.0275 + TMath::TwoPi();
125 const double error = 3 * 0.0104;
127 EXPECT_FALSE(myPhiAngle.containsIn(
PhiAngle(2.6, 0), 1));