[core] Fix some of the legacy interval function expression tests

The tests for conversion of legacy interval functions to expressions
expects that the first stop in the "step" expression be omitted.
This commit is contained in:
Ander Conselvan de Oliveira
2019-04-02 12:32:29 +03:00
parent 33cfd080c2
commit 343df18954
2 changed files with 12 additions and 7 deletions

View File

@@ -23,19 +23,12 @@
"expression-tests/legacy/exponential/number-default": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/identity/color-default": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/identity/enum-default": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/array": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/array-default": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/color": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/color-default": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/composite": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/composite-default": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/duplicate-stops": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/implicit": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/number": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/number-default": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/string": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/string-default": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/tokens-property": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"expression-tests/legacy/interval/tokens-zoom": "https://github.com/mapbox/mapbox-gl-native/issues/12747",
"query-tests/geometry/multilinestring": "needs investigation",
"query-tests/geometry/multipolygon": "needs investigation",

View File

@@ -356,6 +356,17 @@ static optional<std::map<double, std::unique_ptr<Expression>>> convertStops(type
return { std::move(stops) };
}
static void omitFirstStop(std::map<double, std::unique_ptr<Expression>>& stops) {
double min = std::numeric_limits<double>::max();
for (auto& s : stops) {
if (s.first < min) {
min = s.first;
}
}
stops.emplace(-std::numeric_limits<double>::infinity(), std::move(stops[min]));
stops.erase(min);
}
template <class T>
optional<std::map<T, std::unique_ptr<Expression>>> convertBranches(type::Type type,
const Convertible& value,
@@ -472,6 +483,7 @@ static optional<std::unique_ptr<Expression>> convertIntervalFunction(type::Type
if (!stops) {
return nullopt;
}
omitFirstStop(*stops);
return step(type, std::move(input), std::move(*stops));
}