src
test
angles.cpp
Go to the documentation of this file.
1
11
/*****************************************************************************
12
** Includes
13
*****************************************************************************/
14
15
#include <gtest/gtest.h>
16
#include <
ecl/math/constants.hpp
>
17
#include "../../include/ecl/geometry/angle.hpp"
18
19
/*****************************************************************************
20
** Using
21
*****************************************************************************/
22
23
using
ecl::pi
;
24
using
ecl::Angle
;
25
using
ecl::wrap_angle
;
26
27
/*****************************************************************************
28
** Tests
29
*****************************************************************************/
30
31
TEST
(AngleTests,setters) {
32
Angle<double>
angle;
33
double
d = angle;
// default
34
EXPECT_EQ(0.0,d);
35
angle =
Angle<double>::Degrees
(45.0);
36
d = angle;
37
EXPECT_GT(0.786,d);
// Allow some roundoff error here
38
EXPECT_LT(0.785,d);
39
angle =
Angle<double>::Radians
(0.3);
40
d = angle;
41
EXPECT_EQ(0.3,d);
42
Angle<float>
angle_f;
43
float
f
= angle_f;
// default
44
EXPECT_EQ(0.0,
f
);
45
angle_f =
Angle<float>::Degrees
(45.0);
46
f
= angle_f;
47
EXPECT_GT(0.786,
f
);
// Allow some roundoff error here
48
EXPECT_LT(0.785,
f
);
49
angle_f =
Angle<float>::Radians
(0.3);
50
f
= angle_f;
51
EXPECT_EQ(0.3,d);
52
}
53
54
TEST
(AngleTests,conversions) {
55
Angle<double>
angle(0.3);
56
double
d = angle.degrees();
57
EXPECT_GT(17.19,d);
// Allow some roundoff error here
58
EXPECT_LT(17.18,d);
59
Angle<float>
angle_f(0.3);
60
float
f
= angle.degrees();
61
EXPECT_GT(17.19,
f
);
// Allow some roundoff error here
62
EXPECT_LT(17.18,
f
);
63
}
64
65
TEST
(AngleTests,wrap) {
66
double
angle = 2*
pi
+0.1;
67
wrap_angle
(angle);
68
EXPECT_GT(0.11,angle);
// Allow some roundoff error here
69
EXPECT_LT(0.09,angle);
70
angle = 2*
pi
+0.1;
71
double
wa =
wrap_angle
(angle);
72
EXPECT_GT(0.11,wa);
// Allow some roundoff error here
73
EXPECT_LT(0.09,wa);
74
float
angle_f = 2*
pi
+0.1;
75
wrap_angle
(angle_f);
76
EXPECT_GT(0.11,angle_f);
// Allow some roundoff error here
77
EXPECT_LT(0.09,angle_f);
78
angle_f = 2*
pi
+0.1;
79
float
wa_f =
wrap_angle
(angle_f);
80
EXPECT_GT(0.11,wa_f);
// Allow some roundoff error here
81
EXPECT_LT(0.09,wa_f);
82
}
83
84
TEST
(AngleTests,assignment) {
85
Angle<double>
angle;
86
angle = 0.3;
87
double
d = angle;
88
EXPECT_GT(0.31,d);
// Allow some roundoff error here
89
EXPECT_LT(0.29,d);
90
Angle<float>
angle_f;
91
angle_f = 0.3;
92
float
f
= angle_f;
93
EXPECT_GT(0.31,
f
);
// Allow some roundoff error here
94
EXPECT_LT(0.29,
f
);
95
}
96
97
// operator tests
98
99
/*****************************************************************************
100
** Main program
101
*****************************************************************************/
102
103
int
main
(
int
argc,
char
**argv) {
104
105
testing::InitGoogleTest(&argc,argv);
106
return
RUN_ALL_TESTS();
107
}
108
109
main
int main(int argc, char **argv)
Definition:
angles.cpp:103
TEST
TEST(AngleTests, setters)
Definition:
angles.cpp:31
ecl::pi
const double pi
f
void f(int i)
ecl::wrap_angle
const ecl_geometry_PUBLIC float & wrap_angle(float &angle)
Wrap the angle on -pi,pi (float types).
Definition:
angle.cpp:33
ecl::Angle
Parent template definition for angles.
Definition:
angle.hpp:119
constants.hpp
ecl_geometry
Author(s): Daniel Stonier
autogenerated on Wed Mar 2 2022 00:16:39