[android] avoid converting float to long in android_conversion.hpp (#15557)

This commit is contained in:
Tobrun
2019-09-04 18:12:12 +03:00
committed by GitHub
parent 907aaba93d
commit ed964fc16b
2 changed files with 30 additions and 2 deletions

View File

@@ -37,6 +37,7 @@ import static com.mapbox.mapboxsdk.style.expressions.Expression.NumberFormatOpti
import static com.mapbox.mapboxsdk.style.expressions.Expression.NumberFormatOption.maxFractionDigits;
import static com.mapbox.mapboxsdk.style.expressions.Expression.NumberFormatOption.minFractionDigits;
import static com.mapbox.mapboxsdk.style.expressions.Expression.collator;
import static com.mapbox.mapboxsdk.style.expressions.Expression.color;
import static com.mapbox.mapboxsdk.style.expressions.Expression.eq;
import static com.mapbox.mapboxsdk.style.expressions.Expression.exponential;
import static com.mapbox.mapboxsdk.style.expressions.Expression.format;
@@ -732,6 +733,34 @@ public class ExpressionTest extends EspressoTest {
}
/**
* Regression test for #15532
*/
@Test
public void testDoubleConversion() {
validateTestSetup();
invoke(mapboxMap, (uiController, mapboxMap) -> {
LatLng latLng = new LatLng(51, 17);
mapboxMap.getStyle().addSource(
new GeoJsonSource("source", Point.fromLngLat(latLng.getLongitude(), latLng.getLatitude()))
);
CircleLayer layer = new CircleLayer("layer", "source");
mapboxMap.getStyle().addLayer(layer);
Expression input = interpolate(
exponential(0.5f), zoom(),
stop(-0.1, color(Color.RED)),
stop(0, color(Color.BLUE))
);
layer.setProperties(circleColor(input));
Expression output = layer.getCircleColor().getExpression();
assertArrayEquals("Expression should match", input.toArray(), output.toArray());
});
}
private void setupStyle() {
invoke(mapboxMap, (uiController, mapboxMap) -> {
// Add a source