Field_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 "fields2cover/types.h"
9 
10 TEST(fields2cover_types_field, area) {
12  EXPECT_EQ(field.area(), 0);
13 
14  F2CCells cells {
16  F2CPoint(0,0), F2CPoint(2,0),F2CPoint(2,2),F2CPoint(0,2), F2CPoint(0,0)
17  }))
18  };
19  field.setField(cells);
20  EXPECT_EQ(field.area(), 4);
21  const auto field2 = field;
22  EXPECT_EQ(field2.area(), 4);
23 }
24 
25 TEST(fields2cover_types_field, clone) {
27  F2CPoint(0,0), F2CPoint(2,0),F2CPoint(2,2),F2CPoint(0,2), F2CPoint(0,0)
28  }))};
30  field.setField(cells);
31  field.setId("Nice field");
32  field.setUTMCoordSystem("42N");
33  EXPECT_EQ(field.area(), 4);
34  EXPECT_EQ(field.getId(), "Nice field");
35  EXPECT_TRUE(field.isCoordSystemUTM());
36  EXPECT_EQ(field.getUTMCoordSystem(), "42N");
37 
38  auto field2 = field.clone();
39  EXPECT_EQ(field.area(), 4);
40  EXPECT_EQ(field.getId(), "Nice field");
41  EXPECT_TRUE(field.isCoordSystemUTM());
42  EXPECT_FALSE(field.isCoordSystemEPSG());
43  EXPECT_EQ(field.getUTMCoordSystem(), "42N");
44  EXPECT_EQ(field.getEPSGCoordSystem(), -1);
45  EXPECT_EQ(field2.area(), 4);
46  EXPECT_EQ(field2.getId(), "Nice field");
47  EXPECT_TRUE(field2.isCoordSystemUTM());
48  EXPECT_EQ(field2.getUTMCoordSystem(), "42N");
49  EXPECT_EQ(field2.getUTMZone(), "42");
50  EXPECT_EQ(field2.getUTMHemisphere(), "+north");
51 
52  field2.setId("Change");
53  field2.setUTMCoordSystem("50S");
54  EXPECT_EQ(field.getId(), "Nice field");
55  EXPECT_TRUE(field.isCoordSystemUTM());
56  EXPECT_EQ(field.getUTMCoordSystem(), "42N");
57  EXPECT_EQ(field.getUTMZone(), "42");
58  EXPECT_EQ(field.getUTMHemisphere(), "+north");
59 
60  EXPECT_EQ(field2.getId(), "Change");
61  EXPECT_TRUE(field2.isCoordSystemUTM());
62  EXPECT_EQ(field2.getUTMCoordSystem(), "50S");
63  EXPECT_EQ(field2.getUTMZone(), "50");
64  EXPECT_EQ(field2.getUTMHemisphere(), "+south");
65 
66 
67  F2CField field3;
68  field3 = field;
69  EXPECT_EQ(field.getId(), "Nice field");
70 
71  field3.setId("Change 3");
72  field3.setUTMCoordSystem("31Z", " etrs89");
73  EXPECT_EQ(field3.getId(), "Change 3");
74  EXPECT_TRUE(field3.isCoordSystemUTM());
75  EXPECT_EQ(field3.getUTMCoordSystem(), "31Z");
76  EXPECT_EQ(field3.getUTMZone(), "31");
77  EXPECT_EQ(field3.getUTMHemisphere(), "");
78 
79  EXPECT_EQ(field.getId(), "Nice field");
80  field2.setEPSGCoordSystem(-5);
81  EXPECT_EQ(field.getEPSGCoordSystem(), -1);
82 }
83 
84 TEST(fields2cover_types_field, getCellsAbsPosition) {
86  F2CPoint(0,0), F2CPoint(2,0),F2CPoint(2,2),F2CPoint(0,2), F2CPoint(0,0)
87  }))};
88  cells = cells + F2CPoint(5, 6);
89  EXPECT_EQ(cells.getGeometry(0).getGeometry(0).getX(0), 5);
90  EXPECT_EQ(cells.getGeometry(0).getGeometry(0).getY(0), 6);
91  EXPECT_EQ(cells.getGeometry(0).getGeometry(0).getX(1), 7);
92  EXPECT_EQ(cells.getGeometry(0).getGeometry(0).getY(1), 6);
93 
95  field.setEPSGCoordSystem(12345);
96  EXPECT_FALSE(field.isCoordSystemUTM());
97  EXPECT_TRUE(field.isCoordSystemEPSG());
98  EXPECT_EQ(field.getEPSGCoordSystem(), 12345);
99  EXPECT_EQ(field.getUTMCoordSystem(), "");
100  EXPECT_EQ(field.getRefPoint().getX(), 5);
101  EXPECT_EQ(field.getRefPoint().getY(), 6);
102  EXPECT_EQ(field.getField().getGeometry(0).getGeometry(0).getX(0), 0);
103  EXPECT_EQ(field.getField().getGeometry(0).getGeometry(0).getY(0), 0);
104  EXPECT_NE(field.getField().getGeometry(0).getGeometry(0).getX(1), 0);
105  EXPECT_EQ(field.getField().getGeometry(0).getGeometry(0).getY(1), 0);
106 
107  F2CCells o_cells = field.getCellsAbsPosition();
108  EXPECT_EQ(o_cells.getGeometry(0).getGeometry(0).getX(0), 5);
109  EXPECT_EQ(o_cells.getGeometry(0).getGeometry(0).getY(0), 6);
110  EXPECT_EQ(o_cells.getGeometry(0).getGeometry(0).getX(1), 7);
111  EXPECT_EQ(o_cells.getGeometry(0).getGeometry(0).getY(1), 6);
112 }
113 
114 TEST(fields2cover_types_field, getUTMData) {
115  EXPECT_EQ(F2CField::getUTMCoordSystem("32S"), "");
116  EXPECT_EQ(F2CField::getUTMCoordSystem("not found", "def_if_not_found"), "def_if_not_found");
117  EXPECT_EQ(F2CField::getUTMCoordSystem("UTM:10N"), "10N");
118  EXPECT_EQ(F2CField::getUTMCoordSystem("UTM: 10N"), "10N");
119  EXPECT_EQ(F2CField::getUTMCoordSystem("UTM 10N datum etrs89"), "10N");
120  EXPECT_EQ(F2CField::getUTMDatum("UTM 10N datum etrs89"), "etrs89");
121  EXPECT_EQ(F2CField::getUTMDatum("UTM 10N datum:etrs89"), "etrs89");
122  EXPECT_EQ(F2CField::getUTMDatum("84WS"), "etrs89");
123  F2CField f;
124  f.setUTMCoordSystem("32N");
125  EXPECT_EQ(f.getUTMCoordSystem(), "32N");
126  f.setUTMCoordSystem("UTM33N");
127  EXPECT_EQ(f.getUTMDatum(), "etrs89");
128  EXPECT_EQ(f.getUTMCoordSystem(), "33N");
129  EXPECT_EQ(f.getUTMDatum(), "etrs89");
130  f.setUTMCoordSystem("UTM:34N datum:84WG");
131  EXPECT_EQ(f.getUTMCoordSystem(), "34N");
132  EXPECT_EQ(f.getUTMDatum(), "84WG");
133  f.setCRS("UTM:35N +datum:85WG");
134  EXPECT_EQ(f.getUTMCoordSystem(), "35N");
135  EXPECT_EQ(f.getUTMDatum(), "85WG");
136 }
1_basic_types.cells
cells
Definition: 1_basic_types.py:93
f2c::types::Field::getUTMHemisphere
static std::string getUTMHemisphere(const std::string &coord_sys)
Definition: Field.cpp:172
types.h
f2c::types::Field
Definition: Field.h:18
F2CCell
f2c::types::Cell F2CCell
Definition: types.h:43
F2CCells
f2c::types::Cells F2CCells
Definition: types.h:44
f2c::types::Field::getUTMDatum
static std::string getUTMDatum(const std::string &coord_sys, const std::string &if_not_found="etrs89")
Definition: Field.cpp:108
f2c::types::Field::isCoordSystemUTM
static bool isCoordSystemUTM(const std::string &coord_sys)
Definition: Field.cpp:90
f2c::types::Field::setCRS
void setCRS(const std::string &crs)
Definition: Field.cpp:40
f2c::types::Field::setUTMCoordSystem
void setUTMCoordSystem(const std::string &utm)
Definition: Field.cpp:147
f2c::types::Field::getUTMCoordSystem
std::string getUTMCoordSystem() const
Definition: Field.cpp:118
F2CLinearRing
f2c::types::LinearRing F2CLinearRing
Definition: types.h:41
f2c::types::Cells
Definition: Cells.h:21
f2c::types::Field::getUTMDatum
std::string getUTMDatum() const
Definition: Field.cpp:122
TEST
TEST(fields2cover_types_field, area)
Definition: Field_test.cpp:10
2_objective_functions.field
field
Definition: 2_objective_functions.py:16
f2c::types::Cells::getGeometry
void getGeometry(size_t i, Cell &cell)
Definition: Cells.cpp:63
f2c::types::Field::setId
void setId(const std::string &_id)
Definition: Field.cpp:32
f2c::types::Field::getUTMZone
static std::string getUTMZone(const std::string &coord_sys)
Definition: Field.cpp:164
F2CPoint
f2c::types::Point F2CPoint
Definition: types.h:38
f2c::types::Field::getId
std::string getId() const
Definition: Field.cpp:28
f2c::types::Field::getUTMCoordSystem
static std::string getUTMCoordSystem(const std::string &coord_sys, const std::string &if_not_found="")
Definition: Field.cpp:98


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