7 #include <gtest/gtest.h>
10 TEST(fields2cover_types_swath, hasSameDir) {
22 TEST(fields2cover_types_swath, comparison) {
38 EXPECT_TRUE(
swath1 != swath4);
39 EXPECT_FALSE(
swath1 == swath4);
40 EXPECT_FALSE(
swath1 > swath4);
41 EXPECT_TRUE(
swath1 < swath4);
42 EXPECT_FALSE(
swath1 >= swath4);
43 EXPECT_TRUE(
swath1 <= swath4);
44 EXPECT_TRUE(
swath1 < swath5);
45 EXPECT_FALSE(
swath1 > swath5);
46 EXPECT_TRUE(
swath1 <= swath5);
47 EXPECT_FALSE(
swath1 >= swath5);
48 EXPECT_TRUE(swath5 >
swath1);
49 EXPECT_FALSE(swath5 <
swath1);
50 EXPECT_TRUE(swath5 >=
swath1);
51 EXPECT_FALSE(swath5 <=
swath1);
52 EXPECT_TRUE(
swath1 < swath6);
53 EXPECT_FALSE(
swath1 > swath6);
54 EXPECT_TRUE(
swath1 <= swath6);
55 EXPECT_FALSE(
swath1 >= swath6);
56 EXPECT_TRUE(swath6 >
swath1);
57 EXPECT_FALSE(swath6 <
swath1);
58 EXPECT_TRUE(swath6 >=
swath1);
59 EXPECT_FALSE(swath6 <=
swath1);
64 TEST(fields2cover_types_swath, length) {
77 EXPECT_EQ(
swath1.length(), 4);
78 EXPECT_EQ(
swath2.length(), 4);
79 EXPECT_NEAR(std::pow(
swath3.length(),2), 2, 1e-7);
82 EXPECT_EQ(swath4.
length(), 4);
84 TEST(fields2cover_types_swath, set_id) {
87 EXPECT_EQ(swath.
getId(), 400);
95 EXPECT_EQ(
swath2.getWidth(), 0.2);
98 path->addPoint(0.0, 1.0);
99 path->addPoint(4.0, 1.0);
100 EXPECT_THROW(
F2CSwath(
path, -10), std::invalid_argument);
101 EXPECT_THROW(
F2CSwath(0), std::invalid_argument);
102 EXPECT_THROW(
F2CSwath(-10), std::invalid_argument);
106 TEST(fields2cover_types_swath, area) {
121 TEST(fields2cover_types_swath, angles) {
137 auto empty_p2 = swath_empty.
endPoint();
138 EXPECT_TRUE(empty_p1.isEmpty());
139 EXPECT_TRUE(empty_p2.isEmpty());
140 EXPECT_NEAR(fmod(
swath1.getInAngle(),boost::math::constants::two_pi<double>()), 0.0, 1e-5);
141 EXPECT_NEAR(fmod(
swath2.getInAngle(),boost::math::constants::two_pi<double>()), boost::math::constants::half_pi<double>(), 1e-5);
142 EXPECT_NEAR(fmod(
swath3.getInAngle(),boost::math::constants::two_pi<double>()), boost::math::constants::pi<double>() / 4.0, 1e-5);
143 EXPECT_NEAR(fmod(
swath1.getInAngle(),boost::math::constants::two_pi<double>()), fmod(
swath1.getOutAngle(),boost::math::constants::two_pi<double>()), 1e-5);
144 EXPECT_NEAR(fmod(
swath2.getInAngle(),boost::math::constants::two_pi<double>()), fmod(
swath2.getOutAngle(),boost::math::constants::two_pi<double>()), 1e-5);
145 EXPECT_NEAR(fmod(
swath3.getInAngle(),boost::math::constants::two_pi<double>()), fmod(
swath3.getOutAngle(),boost::math::constants::two_pi<double>()), 1e-5);
148 TEST(fields2cover_types_swath, start_and_end_points) {
155 EXPECT_NEAR(
swath1.startPoint().getX(), -100.0, 1e-5);
156 EXPECT_NEAR(
swath1.startPoint().getY(), 30.0, 1e-5);
157 EXPECT_NEAR(
swath1.endPoint().getX(), 50.0, 1e-5);
158 EXPECT_NEAR(
swath1.endPoint().getY(), -34.2, 1e-5);