SwathsByCells_test.cpp
Go to the documentation of this file.
1 //=============================================================================
2 // Copyright (C) 2021-2024 Wageningen University - All Rights Reserved
3 // Author: Gonzalo Mier
4 // BSD-3 License
5 //=============================================================================
6 
7 #include <gtest/gtest.h>
8 #include <random>
9 #include "fields2cover/types.h"
10 
11 TEST(fields2cover_types_swathsByCells, init) {
12  const int n = 5;
13 
15  std::vector<F2CSwaths> v_swaths;
16  for (int i = n; i >= 1; --i) {
17  swaths.emplace_back(F2CLineString({F2CPoint(i, i), F2CPoint(i, i + 1)}), i, i);
18  }
19  v_swaths.push_back(swaths);
20  v_swaths.push_back(swaths);
21  F2CSwathsByCells swaths_by_cells1 {swaths};
22  F2CSwathsByCells swaths_by_cells2 {v_swaths};
23  EXPECT_EQ(swaths_by_cells1.size(), 1);
24  EXPECT_EQ(swaths_by_cells2.size(), 2);
25  EXPECT_EQ(swaths_by_cells1[0].size(), n);
26  EXPECT_EQ(swaths_by_cells2[0].size(), n);
27 
28  swaths_by_cells1.emplace_back(swaths);
29  swaths_by_cells1.emplace_back(swaths);
30  swaths_by_cells2.push_back(swaths);
31  EXPECT_EQ(swaths_by_cells1.size(), 3);
32  EXPECT_EQ(swaths_by_cells2.size(), 3);
33  EXPECT_EQ(swaths_by_cells1[0].size(), n);
34  EXPECT_EQ(swaths_by_cells1[1].size(), n);
35  EXPECT_EQ(swaths_by_cells2[0].size(), n);
36  EXPECT_EQ(swaths_by_cells2[1].size(), n);
37 
38  const auto sbc_const = swaths_by_cells2.clone();
39 
40  int j = 0;
41  for (int i = n; i >= 1; --i) {
42  EXPECT_EQ(swaths_by_cells1[0][j], swaths_by_cells2[0][j]);
43  EXPECT_EQ(swaths_by_cells1[0][j].getId(), i);
44  EXPECT_EQ(swaths_by_cells2[0][j].getId(), i);
45  EXPECT_EQ(swaths_by_cells1.at(0)[j].getWidth(), i);
46  EXPECT_EQ(swaths_by_cells2.at(0)[j].getWidth(), i);
47  EXPECT_EQ(sbc_const.at(0)[j].getWidth(), i);
48  EXPECT_EQ(swaths_by_cells1.back()[j].getWidth(), i);
49  EXPECT_EQ(swaths_by_cells2.back()[j].getWidth(), i);
50  EXPECT_EQ(sbc_const.back()[j].getWidth(), i);
51  ++j;
52  }
53 
54  for (size_t i = 0; i < sbc_const.sizeTotal(); ++i) {
55  EXPECT_EQ(sbc_const.getSwath(i).getPath().startPoint(),
56  swaths_by_cells2.getSwath(i).getPath().startPoint());
57  EXPECT_EQ(sbc_const.getSwath(i).getPath().endPoint(),
58  swaths_by_cells2.getSwath(i).getPath().endPoint());
59  }
60 }
61 
62 TEST(fields2cover_types_swathsByCells, reverse) {
64  F2CSwaths swaths2;
66  for (int i = 0; i < 5; ++i) {
67  swaths1.emplace_back(F2CLineString(), 1*i+1, 1*i);
68  swaths2.emplace_back(F2CLineString(), 2*i+2, 2*i);
69  swaths3.emplace_back(F2CLineString(), 3*i+3, 3*i);
70  }
71  F2CSwathsByCells sbc({swaths1, swaths2, swaths3});
72  for (int i = 0; i < 5; ++i) {
73  EXPECT_EQ(2 * sbc[0][i].getWidth(), sbc[1][i].getWidth());
74  EXPECT_EQ(3 * sbc[0][i].getWidth(), sbc[2][i].getWidth());
75  }
76  sbc.reverse();
77  for (int i = 0; i < 5; ++i) {
78  EXPECT_EQ(2 * sbc[2][i].getWidth(), sbc[1][i].getWidth());
79  EXPECT_EQ(3 * sbc[2][i].getWidth(), sbc[0][i].getWidth());
80  }
81 
82 
83 }
84 
85 
86 
f2c::types::Swaths::emplace_back
void emplace_back(const Swath &s)
Definition: Swaths.cpp:29
5_route_planning.swaths
swaths
Definition: 5_route_planning.py:58
types.h
2_objective_functions.swaths1
swaths1
Definition: 2_objective_functions.py:37
F2CLineString
f2c::types::LineString F2CLineString
Definition: types.h:40
2_objective_functions.swaths3
swaths3
Definition: 2_objective_functions.py:39
f2c::types::SwathsByCells
Definition: SwathsByCells.h:17
TEST
TEST(fields2cover_types_swathsByCells, init)
Definition: SwathsByCells_test.cpp:11
f2c::types::Swaths
Definition: Swaths.h:20
F2CPoint
f2c::types::Point F2CPoint
Definition: types.h:38


fields2cover
Author(s):
autogenerated on Fri Apr 25 2025 02:18:31