summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLeith Bade <leith@mapbox.com>2015-01-15 11:39:50 +1100
committerLeith Bade <leith@mapbox.com>2015-01-15 11:39:50 +1100
commitb7cc6bfaa686cfed1f0ac441693c5c070242343d (patch)
treef97b38dcdfbe67d6159c257d81c85380ea2a0347 /test
parentddbfcada2776a86f8efb6cabba85f6c3a6633d38 (diff)
parentc6ca57045fb373d4fd76d1ec228bd35a518d06e8 (diff)
downloadqtlocation-mapboxgl-b7cc6bfaa686cfed1f0ac441693c5c070242343d.tar.gz
Merge branch 'master' of github.com:mapbox/mapbox-gl-native into android-mason
Conflicts: src/mbgl/shader/shader.cpp
Diffstat (limited to 'test')
-rw-r--r--test/merge_lines.cpp73
-rw-r--r--test/test.gyp21
2 files changed, 94 insertions, 0 deletions
diff --git a/test/merge_lines.cpp b/test/merge_lines.cpp
new file mode 100644
index 0000000000..3c887105fa
--- /dev/null
+++ b/test/merge_lines.cpp
@@ -0,0 +1,73 @@
+#include "gtest/gtest.h"
+
+#include <mbgl/util/merge_lines.hpp>
+
+
+TEST(mergeLines, mergeLines) {
+
+ std::u32string a = U"a";
+ std::u32string b = U"b";
+
+ // merges lines with the same text
+ std::vector<mbgl::SymbolFeature> input1 = {
+ { {{{0, 0}, {1, 0}, {2, 0}}}, a, "" },
+ { {{{4, 0}, {5, 0}, {6, 0}}}, b, "" },
+ { {{{8, 0}, {9, 0}}}, a, "" },
+ { {{{2, 0}, {3, 0}, {4, 0}}}, a, "" },
+ { {{{6, 0}, {7, 0}, {8, 0}}}, a, "" },
+ { {{{5, 0}, {6, 0}}}, a, "" }
+ };
+
+ std::vector<mbgl::SymbolFeature> expected1 = {
+ { {{{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}}}, a, "" },
+ { {{{4, 0}, {5, 0}, {6, 0}}}, b, "" },
+ { {{{5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}}}, a, "" },
+ { {{}}, a, "" },
+ { {{}}, a, "" },
+ { {{}}, a, "" }
+ };
+
+ mbgl::util::mergeLines(input1);
+
+ for (int i = 0; i < 6; i++) {
+ EXPECT_EQ(input1[i].geometry, expected1[i].geometry);
+ }
+
+ // mergeLines handles merge from both ends
+ std::vector<mbgl::SymbolFeature> input2 = {
+ { {{{0, 0}, {1, 0}, {2, 0}}}, a, "" },
+ { {{{4, 0}, {5, 0}, {6, 0}}}, a, "" },
+ { {{{2, 0}, {3, 0}, {4, 0}}}, a, "" }
+ };
+
+ std::vector<mbgl::SymbolFeature> expected2 = {
+ { {{{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}}}, a, "" },
+ { {{}}, a, "" },
+ { {{}}, a, "" }
+ };
+
+ mbgl::util::mergeLines(input2);
+
+ for (int i = 0; i < 3; i++) {
+ EXPECT_EQ(input2[i].geometry, expected2[i].geometry);
+ }
+
+ // mergeLines handles circular lines
+ std::vector<mbgl::SymbolFeature> input3 = {
+ { {{{0, 0}, {1, 0}, {2, 0}}}, a, "" },
+ { {{{2, 0}, {3, 0}, {4, 0}}}, a, "" },
+ { {{{4, 0}, {0, 0}}}, a, "" }
+ };
+
+ std::vector<mbgl::SymbolFeature> expected3 = {
+ { {{{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {0, 0}}}, a, "" },
+ { {{}}, a, "" },
+ { {{}}, a, "" }
+ };
+
+ mbgl::util::mergeLines(input3);
+
+ for (int i = 0; i < 3; i++) {
+ EXPECT_EQ(input3[i].geometry, expected3[i].geometry);
+ }
+}
diff --git a/test/test.gyp b/test/test.gyp
index e33cf36894..406e0b23a7 100644
--- a/test/test.gyp
+++ b/test/test.gyp
@@ -7,6 +7,7 @@
'variables' : {
'ldflags': [
'<@(uv_ldflags)',
+ '<@(sqlite3_static_libs)',
'<@(sqlite3_ldflags)',
'<@(curl_ldflags)',
'<@(png_ldflags)',
@@ -167,6 +168,25 @@
}]
]
},
+ { 'target_name': 'merge_lines',
+ 'product_name': 'test_merge_lines',
+ 'type': 'executable',
+ 'sources': [
+ './main.cpp',
+ './merge_lines.cpp',
+ ],
+ 'dependencies': [
+ '../deps/gtest/gtest.gyp:gtest',
+ '../mapboxgl.gyp:mbgl-standalone',
+ ],
+ 'include_dirs': [ '../src' ],
+ 'conditions': [
+ ['OS == "mac"', { 'xcode_settings': { 'OTHER_LDFLAGS': [ '<@(ldflags)' ] }
+ }, {
+ 'libraries': [ '<@(ldflags)' ],
+ }]
+ ]
+ },
{ 'target_name': 'headless',
'product_name': 'test_headless',
'type': 'executable',
@@ -236,6 +256,7 @@
'variant',
'tile',
'functions',
+ 'merge_lines',
'headless',
'style_parser',
'comparisons',