diff options
Diffstat (limited to 'expression-test/expression_test_parser.cpp')
-rw-r--r-- | expression-test/expression_test_parser.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/expression-test/expression_test_parser.cpp b/expression-test/expression_test_parser.cpp index 3b40eeb3b0..15136f0231 100644 --- a/expression-test/expression_test_parser.cpp +++ b/expression-test/expression_test_parser.cpp @@ -104,8 +104,7 @@ optional<Value> toValue(const JSValue& jsvalue) { style::expression::type::Type stringToType(const std::string& type) { using namespace style::expression; - if (type == "string"s || type == "number-format"s || - type == "image"s) { // TODO: replace once we implement image expressions + if (type == "string"s || type == "number-format"s) { return type::String; } else if (type == "number"s) { return type::Number; @@ -119,6 +118,8 @@ style::expression::type::Type stringToType(const std::string& type) { return type::Value; } else if (type == "formatted"s) { return type::Formatted; + } else if (type == "resolvedImage"s) { + return type::Image; } // Should not reach. @@ -253,6 +254,16 @@ bool parseInputs(const JSValue& inputsValue, TestData& data) { heatmapDensity = evaluationContext["heatmapDensity"].GetDouble(); } + // Parse availableImages + std::set<std::string> availableImages; + if (evaluationContext.HasMember("availableImages")) { + assert(evaluationContext["availableImages"].IsArray()); + for (const auto& image : evaluationContext["availableImages"].GetArray()) { + assert(image.IsString()); + availableImages.emplace(toString(image)); + } + } + // Parse feature properties Feature feature(mapbox::geometry::point<double>(0.0, 0.0)); const auto& featureObject = input[1].GetObject(); @@ -271,7 +282,8 @@ bool parseInputs(const JSValue& inputsValue, TestData& data) { feature.id = mapbox::geojson::convert<mapbox::feature::identifier>(featureObject["id"]); } - data.inputs.emplace_back(std::move(zoom), std::move(heatmapDensity), std::move(feature)); + data.inputs.emplace_back( + std::move(zoom), std::move(heatmapDensity), std::move(availableImages), std::move(feature)); } return true; } |