7 #include <gtest/gtest.h>
10 TEST(fields2cover_types_multilinestring, init) {
12 for (
int i = 0; i < 3; ++i) {
14 for (
int j = i; j < 5; ++j) {
17 lines.addGeometry(line);
22 for (
int j = 0; j < 5 - i; ++j) {
23 EXPECT_EQ(l.getX(j), i);
24 EXPECT_EQ(l.getY(j), j+i);
25 EXPECT_EQ(l.getZ(j), -i * (j + i));
33 for (
auto&& l :
lines) {
34 for (
int j = 0; j < 5-i; ++j) {
35 EXPECT_EQ(l.getX(j), 2*i);
36 EXPECT_EQ(l.getY(j), 2*(j+i));
37 EXPECT_EQ(l.getZ(j), -2*i * (j+i));
41 const auto const_lines =
lines;
43 for (
auto&& l : const_lines) {
44 for (
int j = 0; j < 5-i; ++j) {
45 EXPECT_EQ(l.getX(j), 2*i);
46 EXPECT_EQ(l.getY(j), 2*(j+i));
47 EXPECT_EQ(l.getZ(j), -2*i * (j+i));
53 for (
int j = 0; j < 5-i; ++j) {
54 EXPECT_EQ(l.getX(j), 2*i);
55 EXPECT_EQ(l.getY(j), 2*(j+i));
56 EXPECT_EQ(l.getZ(j), -2*i * (j+i));
61 EXPECT_EQ(
lines.size(), 3);
63 EXPECT_EQ(
lines.size(), 3);
64 EXPECT_EQ(lines2.
size(), 3);
66 lines.addGeometry(lines2);
67 EXPECT_EQ(
lines.size(), 6);
68 EXPECT_EQ(lines2.
size(), 3);
71 TEST(fields2cover_types_multilinestring, getGeometry) {
73 for (
int i = 0; i < 3; ++i) {
75 for (
int j = i; j < 5; ++j) {
78 lines.addGeometry(line);
81 const auto const_lines =
lines.clone();
82 for (
int i = 0; i <
lines.size(); ++i) {
83 EXPECT_EQ(
lines.getGeometry(i).size(), 5-i);
84 EXPECT_EQ(
lines.getGeometry(i).length(), 5-i-1);
85 EXPECT_EQ(const_lines.getGeometry(i).size(), 5-i);
86 EXPECT_EQ(const_lines.getGeometry(i).length(), 5-i-1);
91 EXPECT_THROW(
lines.getGeometry(30, l_error), std::out_of_range);
92 EXPECT_THROW(const_lines.getGeometry(30, l_error), std::out_of_range);
93 EXPECT_THROW(
lines.getGeometry(30), std::out_of_range);
94 EXPECT_THROW(const_lines.getGeometry(30), std::out_of_range);
97 TEST(fields2cover_types_multilinestring, append) {
108 EXPECT_EQ(
lines.size(), 2);
110 EXPECT_EQ(
lines.size(), 4);
113 TEST(fields2cover_types_multilinestring, setGeometry) {
119 EXPECT_EQ(
lines.length(), 0);
120 EXPECT_EQ(
lines.size(), 0);
123 EXPECT_EQ(
lines.length(), 12);
124 EXPECT_EQ(
lines.size(), 1);
126 lines.setGeometry(0, line);
127 EXPECT_EQ(
lines.length(), 6);
128 EXPECT_EQ(
lines.size(), 1);
131 EXPECT_EQ(
lines.length(), 6);
132 EXPECT_EQ(
lines.size(), 2);
134 lines.setGeometry(10, line);
135 EXPECT_EQ(
lines.length(), 12);
136 EXPECT_EQ(
lines.size(), 11);
139 EXPECT_EQ(
lines.length(), 18);
140 EXPECT_EQ(
lines.size(), 11);
143 TEST(fields2cover_types_multilinestring, getLineSegments) {
146 EXPECT_EQ(
lines.size(), 4);
147 EXPECT_EQ(
lines.size(), ring1.size() - 1);
148 EXPECT_NEAR(
lines.length(), 4.0, 1e-7);