Go to the documentation of this file.00001
00011
00012
00013
00014
00015 #include <gtest/gtest.h>
00016 #include <ecl/math/constants.hpp>
00017 #include "../../include/ecl/geometry/angle.hpp"
00018
00019
00020
00021
00022
00023 using ecl::pi;
00024 using ecl::Angle;
00025 using ecl::wrap_angle;
00026
00027
00028
00029
00030
00031 TEST(AngleTests,setters) {
00032 Angle<double> angle;
00033 double d = angle;
00034 EXPECT_EQ(0.0,d);
00035 angle = Angle<double>::Degrees(45.0);
00036 d = angle;
00037 EXPECT_GT(0.786,d);
00038 EXPECT_LT(0.785,d);
00039 angle = Angle<double>::Radians(0.3);
00040 d = angle;
00041 EXPECT_EQ(0.3,d);
00042 Angle<float> angle_f;
00043 float f = angle_f;
00044 EXPECT_EQ(0.0,f);
00045 angle_f = Angle<float>::Degrees(45.0);
00046 f = angle_f;
00047 EXPECT_GT(0.786,f);
00048 EXPECT_LT(0.785,f);
00049 angle_f = Angle<float>::Radians(0.3);
00050 f = angle_f;
00051 EXPECT_EQ(0.3,d);
00052 }
00053
00054 TEST(AngleTests,conversions) {
00055 Angle<double> angle(0.3);
00056 double d = angle.degrees();
00057 EXPECT_GT(17.19,d);
00058 EXPECT_LT(17.18,d);
00059 Angle<float> angle_f(0.3);
00060 float f = angle.degrees();
00061 EXPECT_GT(17.19,f);
00062 EXPECT_LT(17.18,f);
00063 }
00064
00065 TEST(AngleTests,wrap) {
00066 double angle = 2*pi+0.1;
00067 wrap_angle(angle);
00068 EXPECT_GT(0.11,angle);
00069 EXPECT_LT(0.09,angle);
00070 angle = 2*pi+0.1;
00071 double wa = wrap_angle(angle);
00072 EXPECT_GT(0.11,wa);
00073 EXPECT_LT(0.09,wa);
00074 float angle_f = 2*pi+0.1;
00075 wrap_angle(angle_f);
00076 EXPECT_GT(0.11,angle_f);
00077 EXPECT_LT(0.09,angle_f);
00078 angle_f = 2*pi+0.1;
00079 float wa_f = wrap_angle(angle_f);
00080 EXPECT_GT(0.11,wa_f);
00081 EXPECT_LT(0.09,wa_f);
00082 }
00083
00084 TEST(AngleTests,assignment) {
00085 Angle<double> angle;
00086 angle = 0.3;
00087 double d = angle;
00088 EXPECT_GT(0.31,d);
00089 EXPECT_LT(0.29,d);
00090 Angle<float> angle_f;
00091 angle_f = 0.3;
00092 float f = angle_f;
00093 EXPECT_GT(0.31,f);
00094 EXPECT_LT(0.29,f);
00095 }
00096
00097
00098
00099
00100
00101
00102
00103 int main(int argc, char **argv) {
00104
00105 testing::InitGoogleTest(&argc,argv);
00106 return RUN_ALL_TESTS();
00107 }
00108
00109