From 0c0064c050396eae8dad92e5097692537405704a Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Mon, 19 Dec 2016 17:10:51 -0800 Subject: [core] Get rid of user-specified refs --- test/style/conversion/stringify.test.cpp | 98 ++++++++++++++++++++++++++++++++ test/style/group_by_layout.test.cpp | 44 ++++++++++++++ 2 files changed, 142 insertions(+) create mode 100644 test/style/conversion/stringify.test.cpp create mode 100644 test/style/group_by_layout.test.cpp (limited to 'test') diff --git a/test/style/conversion/stringify.test.cpp b/test/style/conversion/stringify.test.cpp new file mode 100644 index 0000000000..be5d65d4ce --- /dev/null +++ b/test/style/conversion/stringify.test.cpp @@ -0,0 +1,98 @@ +#include + +#include +#include +#include +#include + +#include +#include + +using namespace mbgl; +using namespace mbgl::style; +using namespace mbgl::style::conversion; + +template +std::string stringify(const T& t) { + rapidjson::StringBuffer s; + rapidjson::Writer writer(s); + stringify(writer, t); + return s.GetString(); +} + +TEST(Stringify, NullValue) { + ASSERT_EQ(stringify(NullValue()), "null"); +} + +TEST(Stringify, Boolean) { + ASSERT_EQ(stringify(true), "true"); + ASSERT_EQ(stringify(false), "false"); +} + +TEST(Stringify, Uint64) { + ASSERT_EQ(stringify(uint64_t(0)), "0"); + ASSERT_EQ(stringify(uint64_t(1)), "1"); +} + +TEST(Stringify, Int64) { + ASSERT_EQ(stringify(int64_t(0)), "0"); + ASSERT_EQ(stringify(int64_t(-1)), "-1"); +} + +TEST(Stringify, Double) { + ASSERT_EQ(stringify(0.0), "0.0"); + ASSERT_EQ(stringify(10.1234), "10.1234"); +} + +TEST(Stringify, String) { + ASSERT_EQ(stringify(std::string("test")), "\"test\""); +} + +TEST(Stringify, Enum) { + ASSERT_EQ(stringify(VisibilityType::Visible), "\"visible\""); +} + +TEST(Stringify, Color) { + ASSERT_EQ(stringify(Color::blue()), "\"rgba(0,0,255,1)\""); +} + +TEST(Stringify, Array) { + ASSERT_EQ(stringify(std::array {{ 1, 2 }}), "[1.0,2.0]"); +} + +TEST(Stringify, Vector) { + ASSERT_EQ(stringify(std::vector {{ 1, 2 }}), "[1.0,2.0]"); +} + +TEST(Stringify, Map) { + ASSERT_EQ(stringify(std::unordered_map {{ "a", 1 }}), "{\"a\":1.0}"); +} + +TEST(Stringify, Value) { + ASSERT_EQ(stringify(Value(true)), "true"); + ASSERT_EQ(stringify(Value(uint64_t(0))), "0"); + ASSERT_EQ(stringify(Value(1.2)), "1.2"); +} + +TEST(Stringify, Filter) { + ASSERT_EQ(stringify(NullFilter()), "null"); + ASSERT_EQ(stringify(EqualsFilter { "a", 1.0 }), "[\"==\",\"a\",1.0]"); +} + +TEST(Stringify, Function) { + ASSERT_EQ(stringify(Function({{0, 1}}, 2)), "{\"base\":2.0,\"stops\":[[0.0,1.0]]}"); +} + +TEST(Stringify, PropertyValue) { + ASSERT_EQ(stringify(PropertyValue(1)), "1.0"); + ASSERT_EQ(stringify(PropertyValue(Function({{0, 1}}, 2))), "{\"base\":2.0,\"stops\":[[0.0,1.0]]}"); +} + +TEST(Stringify, Layout) { + ASSERT_EQ(stringify(SymbolLayoutProperties()), "{}"); + + SymbolLayoutProperties layout; + layout.unevaluated.get() = true; + layout.unevaluated.get() = 2.0; + ASSERT_EQ(stringify(layout), "{\"symbol-avoid-edges\":true,\"icon-padding\":2.0}"); +} diff --git a/test/style/group_by_layout.test.cpp b/test/style/group_by_layout.test.cpp new file mode 100644 index 0000000000..d74916cdc9 --- /dev/null +++ b/test/style/group_by_layout.test.cpp @@ -0,0 +1,44 @@ +#include + +#include +#include +#include +#include + +using namespace mbgl; +using namespace mbgl::style; + +TEST(GroupByLayout, Related) { + std::vector> layers; + layers.push_back(std::make_unique("a", "source")); + layers.push_back(std::make_unique("b", "source")); + auto result = groupByLayout(std::move(layers)); + ASSERT_EQ(1u, result.size()); + ASSERT_EQ(2u, result[0].size()); +} + +TEST(GroupByLayout, UnrelatedType) { + std::vector> layers; + layers.push_back(std::make_unique("background")); + layers.push_back(std::make_unique("circle", "source")); + auto result = groupByLayout(std::move(layers)); + ASSERT_EQ(2u, result.size()); +} + +TEST(GroupByLayout, UnrelatedFilter) { + std::vector> layers; + layers.push_back(std::make_unique("a", "source")); + layers.push_back(std::make_unique("b", "source")); + layers[0]->as()->setFilter(EqualsFilter()); + auto result = groupByLayout(std::move(layers)); + ASSERT_EQ(2u, result.size()); +} + +TEST(GroupByLayout, UnrelatedLayout) { + std::vector> layers; + layers.push_back(std::make_unique("a", "source")); + layers.push_back(std::make_unique("b", "source")); + layers[0]->as()->setLineCap(LineCapType::Square); + auto result = groupByLayout(std::move(layers)); + ASSERT_EQ(2u, result.size()); +} -- cgit v1.2.1