def testInterpolateListByZoom(self): conversion_context = QgsMapBoxGlStyleConversionContext() prop, default_color, default_val = QgsMapBoxGlStyleConverter.parseInterpolateListByZoom([ "interpolate", ["linear"], ["zoom"], 10, 0.1, 15, 0.3, 18, 0.6 ], QgsMapBoxGlStyleConverter.Opacity, conversion_context, 2) self.assertEqual(prop.expressionString(), "CASE WHEN @vector_tile_zoom < 10 THEN set_color_part(@symbol_color, 'alpha', 25.5) WHEN @vector_tile_zoom >= 10 AND @vector_tile_zoom < 15 THEN set_color_part(@symbol_color, 'alpha', scale_linear(@vector_tile_zoom,10,15,25.5,76.5)) WHEN @vector_tile_zoom >= 15 AND @vector_tile_zoom < 18 THEN set_color_part(@symbol_color, 'alpha', scale_linear(@vector_tile_zoom,15,18,76.5,153)) WHEN @vector_tile_zoom >= 18 THEN set_color_part(@symbol_color, 'alpha', 153) END") prop, default_color, default_val = QgsMapBoxGlStyleConverter.parseInterpolateListByZoom([ "interpolate", ["linear"], ["zoom"], 10, 0.1, 15, 0.3, 18, 0.6 ], QgsMapBoxGlStyleConverter.Numeric, conversion_context, 2) self.assertEqual(prop.expressionString(), "CASE WHEN @vector_tile_zoom > 10 AND @vector_tile_zoom <= 15 THEN scale_linear(@vector_tile_zoom,10,15,0.1,0.3) * 2 WHEN @vector_tile_zoom > 15 AND @vector_tile_zoom <= 18 THEN scale_linear(@vector_tile_zoom,15,18,0.3,0.6) * 2 WHEN @vector_tile_zoom > 18 THEN 1.2 END") self.assertEqual(default_val, 0.2)
def testInterpolateListByZoom(self): conversion_context = QgsMapBoxGlStyleConversionContext() prop, default_color, default_val = QgsMapBoxGlStyleConverter.parseInterpolateListByZoom( ["interpolate", ["linear"], ["zoom"], 10, 0.1, 15, 0.3, 18, 0.6], QgsMapBoxGlStyleConverter.Opacity, conversion_context, 2) self.assertEqual( prop.expressionString(), "CASE WHEN @vector_tile_zoom < 10 THEN set_color_part(@symbol_color, 'alpha', 25.5) WHEN @vector_tile_zoom >= 10 AND @vector_tile_zoom < 15 THEN set_color_part(@symbol_color, 'alpha', scale_linear(@vector_tile_zoom,10,15,25.5,76.5)) WHEN @vector_tile_zoom >= 15 AND @vector_tile_zoom < 18 THEN set_color_part(@symbol_color, 'alpha', scale_linear(@vector_tile_zoom,15,18,76.5,153)) WHEN @vector_tile_zoom >= 18 THEN set_color_part(@symbol_color, 'alpha', 153) END" ) prop, default_color, default_val = QgsMapBoxGlStyleConverter.parseInterpolateListByZoom( ["interpolate", ["linear"], ["zoom"], 10, 0.1, 15, 0.3, 18, 0.6], QgsMapBoxGlStyleConverter.Numeric, conversion_context, 2) self.assertEqual( prop.expressionString(), "CASE WHEN @vector_tile_zoom > 10 AND @vector_tile_zoom <= 15 THEN scale_linear(@vector_tile_zoom,10,15,0.1,0.3) * 2 WHEN @vector_tile_zoom > 15 AND @vector_tile_zoom <= 18 THEN scale_linear(@vector_tile_zoom,15,18,0.3,0.6) * 2 WHEN @vector_tile_zoom > 18 THEN 1.2 END" ) self.assertEqual(default_val, 0.2) prop, default_color, default_val = QgsMapBoxGlStyleConverter.parseInterpolateListByZoom( [ "interpolate", ["exponential", 1.5], ["zoom"], 5, 0, 6, ["match", ["get", "class"], ["ice", "glacier"], 0.3, 0], 10, ["match", ["get", "class"], ["ice", "glacier"], 0.2, 0], 11, ["match", ["get", "class"], ["ice", "glacier"], 0.2, 0.3], 14, ["match", ["get", "class"], ["ice", "glacier"], 0, 0.3] ], QgsMapBoxGlStyleConverter.Numeric, conversion_context, 2) self.assertEqual( prop.expressionString(), "CASE WHEN @vector_tile_zoom > 5 AND @vector_tile_zoom <= 6 THEN scale_exp(@vector_tile_zoom,5,6,0,CASE WHEN \"class\" IN ('ice', 'glacier') THEN 0.3 ELSE 0 END,1.5) * 2 WHEN @vector_tile_zoom > 6 AND @vector_tile_zoom <= 10 THEN scale_exp(@vector_tile_zoom,6,10,CASE WHEN \"class\" IN ('ice', 'glacier') THEN 0.3 ELSE 0 END,CASE WHEN \"class\" IN ('ice', 'glacier') THEN 0.2 ELSE 0 END,1.5) * 2 WHEN @vector_tile_zoom > 10 AND @vector_tile_zoom <= 11 THEN scale_exp(@vector_tile_zoom,10,11,CASE WHEN \"class\" IN ('ice', 'glacier') THEN 0.2 ELSE 0 END,CASE WHEN \"class\" IN ('ice', 'glacier') THEN 0.2 ELSE 0.3 END,1.5) * 2 WHEN @vector_tile_zoom > 11 AND @vector_tile_zoom <= 14 THEN scale_exp(@vector_tile_zoom,11,14,CASE WHEN \"class\" IN ('ice', 'glacier') THEN 0.2 ELSE 0.3 END,CASE WHEN \"class\" IN ('ice', 'glacier') THEN 0 ELSE 0.3 END,1.5) * 2 WHEN @vector_tile_zoom > 14 THEN ( ( CASE WHEN \"class\" IN ('ice', 'glacier') THEN 0 ELSE 0.3 END ) * 2 ) END" )