diff options
Diffstat (limited to 'platform/darwin/test/MGLFillStyleLayerTests.mm')
-rw-r--r-- | platform/darwin/test/MGLFillStyleLayerTests.mm | 291 |
1 files changed, 189 insertions, 102 deletions
diff --git a/platform/darwin/test/MGLFillStyleLayerTests.mm b/platform/darwin/test/MGLFillStyleLayerTests.mm index afc3260a28..9aeba53174 100644 --- a/platform/darwin/test/MGLFillStyleLayerTests.mm +++ b/platform/darwin/test/MGLFillStyleLayerTests.mm @@ -1,5 +1,5 @@ // This file is generated. -// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`. +// Edit platform/darwin/scripts/generate-style-code.js, then run `make darwin-style-code`. #import "MGLStyleLayerTests.h" @@ -49,32 +49,38 @@ @"fill-antialias should be unset initially."); MGLStyleValue<NSNumber *> *defaultStyleValue = layer.fillAntialiased; - MGLStyleValue<NSNumber *> *styleValue = [MGLStyleValue<NSNumber *> valueWithRawValue:@NO]; - layer.fillAntialiased = styleValue; + MGLStyleValue<NSNumber *> *constantStyleValue = [MGLStyleValue<NSNumber *> valueWithRawValue:@NO]; + layer.fillAntialiased = constantStyleValue; mbgl::style::PropertyValue<bool> propertyValue = { false }; XCTAssertEqual(rawLayer->getFillAntialias(), propertyValue, @"Setting fillAntialiased to a constant value should update fill-antialias."); - XCTAssertEqualObjects(layer.fillAntialiased, styleValue, + XCTAssertEqualObjects(layer.fillAntialiased, constantStyleValue, @"fillAntialiased should round-trip constant values."); - styleValue = [MGLStyleValue<NSNumber *> valueWithStops:@{ - @18: styleValue, - }]; - layer.fillAntialiased = styleValue; - propertyValue = { mbgl::style::Function<bool> { - {{ 18, propertyValue.asConstant() }}, - 1, - }}; + MGLStyleValue<NSNumber *> * functionStyleValue = [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeInterval cameraStops:@{@18: constantStyleValue} options:nil]; + layer.fillAntialiased = functionStyleValue; + + mbgl::style::IntervalStops<bool> intervalStops = { {{18, false}} }; + propertyValue = mbgl::style::CameraFunction<bool> { intervalStops }; + XCTAssertEqual(rawLayer->getFillAntialias(), propertyValue, - @"Setting fillAntialiased to a function should update fill-antialias."); - XCTAssertEqualObjects(layer.fillAntialiased, styleValue, - @"fillAntialiased should round-trip functions."); + @"Setting fillAntialiased to a camera function should update fill-antialias."); + XCTAssertEqualObjects(layer.fillAntialiased, functionStyleValue, + @"fillAntialiased should round-trip camera functions."); + + layer.fillAntialiased = nil; XCTAssertTrue(rawLayer->getFillAntialias().isUndefined(), @"Unsetting fillAntialiased should return fill-antialias to the default value."); XCTAssertEqualObjects(layer.fillAntialiased, defaultStyleValue, @"fillAntialiased should return the default value after being unset."); + + functionStyleValue = [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeIdentity sourceStops:nil attributeName:@"" options:nil]; + XCTAssertThrowsSpecificNamed(layer.fillAntialiased = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); + + functionStyleValue = [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; + XCTAssertThrowsSpecificNamed(layer.fillAntialiased = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); } // fill-color @@ -83,26 +89,49 @@ @"fill-color should be unset initially."); MGLStyleValue<MGLColor *> *defaultStyleValue = layer.fillColor; - MGLStyleValue<MGLColor *> *styleValue = [MGLStyleValue<MGLColor *> valueWithRawValue:[MGLColor redColor]]; - layer.fillColor = styleValue; - mbgl::style::PropertyValue<mbgl::Color> propertyValue = { { 1, 0, 0, 1 } }; + MGLStyleValue<MGLColor *> *constantStyleValue = [MGLStyleValue<MGLColor *> valueWithRawValue:[MGLColor redColor]]; + layer.fillColor = constantStyleValue; + mbgl::style::DataDrivenPropertyValue<mbgl::Color> propertyValue = { { 1, 0, 0, 1 } }; XCTAssertEqual(rawLayer->getFillColor(), propertyValue, @"Setting fillColor to a constant value should update fill-color."); - XCTAssertEqualObjects(layer.fillColor, styleValue, + XCTAssertEqualObjects(layer.fillColor, constantStyleValue, @"fillColor should round-trip constant values."); - styleValue = [MGLStyleValue<MGLColor *> valueWithStops:@{ - @18: styleValue, - }]; - layer.fillColor = styleValue; - propertyValue = { mbgl::style::Function<mbgl::Color> { - {{ 18, propertyValue.asConstant() }}, - 1, - }}; + MGLStyleValue<MGLColor *> * functionStyleValue = [MGLStyleValue<MGLColor *> valueWithInterpolationMode:MGLInterpolationModeInterval cameraStops:@{@18: constantStyleValue} options:nil]; + layer.fillColor = functionStyleValue; + + mbgl::style::IntervalStops<mbgl::Color> intervalStops = { {{18, { 1, 0, 0, 1 }}} }; + propertyValue = mbgl::style::CameraFunction<mbgl::Color> { intervalStops }; + + XCTAssertEqual(rawLayer->getFillColor(), propertyValue, + @"Setting fillColor to a camera function should update fill-color."); + XCTAssertEqualObjects(layer.fillColor, functionStyleValue, + @"fillColor should round-trip camera functions."); + + functionStyleValue = [MGLStyleValue<MGLColor *> valueWithInterpolationMode:MGLInterpolationModeExponential sourceStops:@{@18: constantStyleValue} attributeName:@"keyName" options:nil]; + layer.fillColor = functionStyleValue; + + mbgl::style::ExponentialStops<mbgl::Color> exponentialStops = { {{18, { 1, 0, 0, 1 }}}, 1.0 }; + propertyValue = mbgl::style::SourceFunction<mbgl::Color> { "keyName", exponentialStops }; + + XCTAssertEqual(rawLayer->getFillColor(), propertyValue, + @"Setting fillColor to a source function should update fill-color."); + XCTAssertEqualObjects(layer.fillColor, functionStyleValue, + @"fillColor should round-trip source functions."); + + functionStyleValue = [MGLStyleValue<MGLColor *> valueWithInterpolationMode:MGLInterpolationModeExponential compositeStops:@{@10: @{@18: constantStyleValue}} attributeName:@"keyName" options:nil]; + layer.fillColor = functionStyleValue; + + mbgl::style::ExponentialStops<mbgl::Color> innerStops = { { {18, { 1, 0, 0, 1 }}}, 1.0 }; + std::map<float, mbgl::style::ExponentialStops<mbgl::Color>> compositeStops = { {10.0, innerStops} }; + + propertyValue = mbgl::style::CompositeFunction<mbgl::Color> { "keyName", compositeStops }; + XCTAssertEqual(rawLayer->getFillColor(), propertyValue, - @"Setting fillColor to a function should update fill-color."); - XCTAssertEqualObjects(layer.fillColor, styleValue, - @"fillColor should round-trip functions."); + @"Setting fillColor to a composite function should update fill-color."); + XCTAssertEqualObjects(layer.fillColor, functionStyleValue, + @"fillColor should round-trip composite functions."); + layer.fillColor = nil; XCTAssertTrue(rawLayer->getFillColor().isUndefined(), @@ -117,26 +146,49 @@ @"fill-opacity should be unset initially."); MGLStyleValue<NSNumber *> *defaultStyleValue = layer.fillOpacity; - MGLStyleValue<NSNumber *> *styleValue = [MGLStyleValue<NSNumber *> valueWithRawValue:@0xff]; - layer.fillOpacity = styleValue; - mbgl::style::PropertyValue<float> propertyValue = { 0xff }; + MGLStyleValue<NSNumber *> *constantStyleValue = [MGLStyleValue<NSNumber *> valueWithRawValue:@0xff]; + layer.fillOpacity = constantStyleValue; + mbgl::style::DataDrivenPropertyValue<float> propertyValue = { 0xff }; XCTAssertEqual(rawLayer->getFillOpacity(), propertyValue, @"Setting fillOpacity to a constant value should update fill-opacity."); - XCTAssertEqualObjects(layer.fillOpacity, styleValue, + XCTAssertEqualObjects(layer.fillOpacity, constantStyleValue, @"fillOpacity should round-trip constant values."); - styleValue = [MGLStyleValue<NSNumber *> valueWithStops:@{ - @18: styleValue, - }]; - layer.fillOpacity = styleValue; - propertyValue = { mbgl::style::Function<float> { - {{ 18, propertyValue.asConstant() }}, - 1, - }}; + MGLStyleValue<NSNumber *> * functionStyleValue = [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeInterval cameraStops:@{@18: constantStyleValue} options:nil]; + layer.fillOpacity = functionStyleValue; + + mbgl::style::IntervalStops<float> intervalStops = { {{18, 0xff}} }; + propertyValue = mbgl::style::CameraFunction<float> { intervalStops }; + + XCTAssertEqual(rawLayer->getFillOpacity(), propertyValue, + @"Setting fillOpacity to a camera function should update fill-opacity."); + XCTAssertEqualObjects(layer.fillOpacity, functionStyleValue, + @"fillOpacity should round-trip camera functions."); + + functionStyleValue = [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeExponential sourceStops:@{@18: constantStyleValue} attributeName:@"keyName" options:nil]; + layer.fillOpacity = functionStyleValue; + + mbgl::style::ExponentialStops<float> exponentialStops = { {{18, 0xff}}, 1.0 }; + propertyValue = mbgl::style::SourceFunction<float> { "keyName", exponentialStops }; + + XCTAssertEqual(rawLayer->getFillOpacity(), propertyValue, + @"Setting fillOpacity to a source function should update fill-opacity."); + XCTAssertEqualObjects(layer.fillOpacity, functionStyleValue, + @"fillOpacity should round-trip source functions."); + + functionStyleValue = [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeExponential compositeStops:@{@10: @{@18: constantStyleValue}} attributeName:@"keyName" options:nil]; + layer.fillOpacity = functionStyleValue; + + mbgl::style::ExponentialStops<float> innerStops = { { {18, 0xff}}, 1.0 }; + std::map<float, mbgl::style::ExponentialStops<float>> compositeStops = { {10.0, innerStops} }; + + propertyValue = mbgl::style::CompositeFunction<float> { "keyName", compositeStops }; + XCTAssertEqual(rawLayer->getFillOpacity(), propertyValue, - @"Setting fillOpacity to a function should update fill-opacity."); - XCTAssertEqualObjects(layer.fillOpacity, styleValue, - @"fillOpacity should round-trip functions."); + @"Setting fillOpacity to a composite function should update fill-opacity."); + XCTAssertEqualObjects(layer.fillOpacity, functionStyleValue, + @"fillOpacity should round-trip composite functions."); + layer.fillOpacity = nil; XCTAssertTrue(rawLayer->getFillOpacity().isUndefined(), @@ -151,26 +203,49 @@ @"fill-outline-color should be unset initially."); MGLStyleValue<MGLColor *> *defaultStyleValue = layer.fillOutlineColor; - MGLStyleValue<MGLColor *> *styleValue = [MGLStyleValue<MGLColor *> valueWithRawValue:[MGLColor redColor]]; - layer.fillOutlineColor = styleValue; - mbgl::style::PropertyValue<mbgl::Color> propertyValue = { { 1, 0, 0, 1 } }; + MGLStyleValue<MGLColor *> *constantStyleValue = [MGLStyleValue<MGLColor *> valueWithRawValue:[MGLColor redColor]]; + layer.fillOutlineColor = constantStyleValue; + mbgl::style::DataDrivenPropertyValue<mbgl::Color> propertyValue = { { 1, 0, 0, 1 } }; XCTAssertEqual(rawLayer->getFillOutlineColor(), propertyValue, @"Setting fillOutlineColor to a constant value should update fill-outline-color."); - XCTAssertEqualObjects(layer.fillOutlineColor, styleValue, + XCTAssertEqualObjects(layer.fillOutlineColor, constantStyleValue, @"fillOutlineColor should round-trip constant values."); - styleValue = [MGLStyleValue<MGLColor *> valueWithStops:@{ - @18: styleValue, - }]; - layer.fillOutlineColor = styleValue; - propertyValue = { mbgl::style::Function<mbgl::Color> { - {{ 18, propertyValue.asConstant() }}, - 1, - }}; + MGLStyleValue<MGLColor *> * functionStyleValue = [MGLStyleValue<MGLColor *> valueWithInterpolationMode:MGLInterpolationModeInterval cameraStops:@{@18: constantStyleValue} options:nil]; + layer.fillOutlineColor = functionStyleValue; + + mbgl::style::IntervalStops<mbgl::Color> intervalStops = { {{18, { 1, 0, 0, 1 }}} }; + propertyValue = mbgl::style::CameraFunction<mbgl::Color> { intervalStops }; + + XCTAssertEqual(rawLayer->getFillOutlineColor(), propertyValue, + @"Setting fillOutlineColor to a camera function should update fill-outline-color."); + XCTAssertEqualObjects(layer.fillOutlineColor, functionStyleValue, + @"fillOutlineColor should round-trip camera functions."); + + functionStyleValue = [MGLStyleValue<MGLColor *> valueWithInterpolationMode:MGLInterpolationModeExponential sourceStops:@{@18: constantStyleValue} attributeName:@"keyName" options:nil]; + layer.fillOutlineColor = functionStyleValue; + + mbgl::style::ExponentialStops<mbgl::Color> exponentialStops = { {{18, { 1, 0, 0, 1 }}}, 1.0 }; + propertyValue = mbgl::style::SourceFunction<mbgl::Color> { "keyName", exponentialStops }; + + XCTAssertEqual(rawLayer->getFillOutlineColor(), propertyValue, + @"Setting fillOutlineColor to a source function should update fill-outline-color."); + XCTAssertEqualObjects(layer.fillOutlineColor, functionStyleValue, + @"fillOutlineColor should round-trip source functions."); + + functionStyleValue = [MGLStyleValue<MGLColor *> valueWithInterpolationMode:MGLInterpolationModeExponential compositeStops:@{@10: @{@18: constantStyleValue}} attributeName:@"keyName" options:nil]; + layer.fillOutlineColor = functionStyleValue; + + mbgl::style::ExponentialStops<mbgl::Color> innerStops = { { {18, { 1, 0, 0, 1 }}}, 1.0 }; + std::map<float, mbgl::style::ExponentialStops<mbgl::Color>> compositeStops = { {10.0, innerStops} }; + + propertyValue = mbgl::style::CompositeFunction<mbgl::Color> { "keyName", compositeStops }; + XCTAssertEqual(rawLayer->getFillOutlineColor(), propertyValue, - @"Setting fillOutlineColor to a function should update fill-outline-color."); - XCTAssertEqualObjects(layer.fillOutlineColor, styleValue, - @"fillOutlineColor should round-trip functions."); + @"Setting fillOutlineColor to a composite function should update fill-outline-color."); + XCTAssertEqualObjects(layer.fillOutlineColor, functionStyleValue, + @"fillOutlineColor should round-trip composite functions."); + layer.fillOutlineColor = nil; XCTAssertTrue(rawLayer->getFillOutlineColor().isUndefined(), @@ -185,32 +260,38 @@ @"fill-pattern should be unset initially."); MGLStyleValue<NSString *> *defaultStyleValue = layer.fillPattern; - MGLStyleValue<NSString *> *styleValue = [MGLStyleValue<NSString *> valueWithRawValue:@"Fill Pattern"]; - layer.fillPattern = styleValue; + MGLStyleValue<NSString *> *constantStyleValue = [MGLStyleValue<NSString *> valueWithRawValue:@"Fill Pattern"]; + layer.fillPattern = constantStyleValue; mbgl::style::PropertyValue<std::string> propertyValue = { "Fill Pattern" }; XCTAssertEqual(rawLayer->getFillPattern(), propertyValue, @"Setting fillPattern to a constant value should update fill-pattern."); - XCTAssertEqualObjects(layer.fillPattern, styleValue, + XCTAssertEqualObjects(layer.fillPattern, constantStyleValue, @"fillPattern should round-trip constant values."); - styleValue = [MGLStyleValue<NSString *> valueWithStops:@{ - @18: styleValue, - }]; - layer.fillPattern = styleValue; - propertyValue = { mbgl::style::Function<std::string> { - {{ 18, propertyValue.asConstant() }}, - 1, - }}; + MGLStyleValue<NSString *> * functionStyleValue = [MGLStyleValue<NSString *> valueWithInterpolationMode:MGLInterpolationModeInterval cameraStops:@{@18: constantStyleValue} options:nil]; + layer.fillPattern = functionStyleValue; + + mbgl::style::IntervalStops<std::string> intervalStops = { {{18, "Fill Pattern"}} }; + propertyValue = mbgl::style::CameraFunction<std::string> { intervalStops }; + XCTAssertEqual(rawLayer->getFillPattern(), propertyValue, - @"Setting fillPattern to a function should update fill-pattern."); - XCTAssertEqualObjects(layer.fillPattern, styleValue, - @"fillPattern should round-trip functions."); + @"Setting fillPattern to a camera function should update fill-pattern."); + XCTAssertEqualObjects(layer.fillPattern, functionStyleValue, + @"fillPattern should round-trip camera functions."); + + layer.fillPattern = nil; XCTAssertTrue(rawLayer->getFillPattern().isUndefined(), @"Unsetting fillPattern should return fill-pattern to the default value."); XCTAssertEqualObjects(layer.fillPattern, defaultStyleValue, @"fillPattern should return the default value after being unset."); + + functionStyleValue = [MGLStyleValue<NSString *> valueWithInterpolationMode:MGLInterpolationModeIdentity sourceStops:nil attributeName:@"" options:nil]; + XCTAssertThrowsSpecificNamed(layer.fillPattern = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); + + functionStyleValue = [MGLStyleValue<NSString *> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; + XCTAssertThrowsSpecificNamed(layer.fillPattern = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); } // fill-translate @@ -219,32 +300,32 @@ @"fill-translate should be unset initially."); MGLStyleValue<NSValue *> *defaultStyleValue = layer.fillTranslation; - MGLStyleValue<NSValue *> *styleValue = [MGLStyleValue<NSValue *> valueWithRawValue: + MGLStyleValue<NSValue *> *constantStyleValue = [MGLStyleValue<NSValue *> valueWithRawValue: #if TARGET_OS_IPHONE [NSValue valueWithCGVector:CGVectorMake(1, 1)] #else [NSValue valueWithMGLVector:CGVectorMake(1, -1)] #endif ]; - layer.fillTranslation = styleValue; + layer.fillTranslation = constantStyleValue; mbgl::style::PropertyValue<std::array<float, 2>> propertyValue = { { 1, 1 } }; XCTAssertEqual(rawLayer->getFillTranslate(), propertyValue, @"Setting fillTranslation to a constant value should update fill-translate."); - XCTAssertEqualObjects(layer.fillTranslation, styleValue, + XCTAssertEqualObjects(layer.fillTranslation, constantStyleValue, @"fillTranslation should round-trip constant values."); - styleValue = [MGLStyleValue<NSValue *> valueWithStops:@{ - @18: styleValue, - }]; - layer.fillTranslation = styleValue; - propertyValue = { mbgl::style::Function<std::array<float, 2>> { - {{ 18, propertyValue.asConstant() }}, - 1, - }}; + MGLStyleValue<NSValue *> * functionStyleValue = [MGLStyleValue<NSValue *> valueWithInterpolationMode:MGLInterpolationModeInterval cameraStops:@{@18: constantStyleValue} options:nil]; + layer.fillTranslation = functionStyleValue; + + mbgl::style::IntervalStops<std::array<float, 2>> intervalStops = { {{18, { 1, 1 }}} }; + propertyValue = mbgl::style::CameraFunction<std::array<float, 2>> { intervalStops }; + XCTAssertEqual(rawLayer->getFillTranslate(), propertyValue, - @"Setting fillTranslation to a function should update fill-translate."); - XCTAssertEqualObjects(layer.fillTranslation, styleValue, - @"fillTranslation should round-trip functions."); + @"Setting fillTranslation to a camera function should update fill-translate."); + XCTAssertEqualObjects(layer.fillTranslation, functionStyleValue, + @"fillTranslation should round-trip camera functions."); + + layer.fillTranslation = nil; XCTAssertTrue(rawLayer->getFillTranslate().isUndefined(), @@ -259,32 +340,38 @@ @"fill-translate-anchor should be unset initially."); MGLStyleValue<NSValue *> *defaultStyleValue = layer.fillTranslationAnchor; - MGLStyleValue<NSValue *> *styleValue = [MGLStyleValue<NSValue *> valueWithRawValue:[NSValue valueWithMGLFillTranslationAnchor:MGLFillTranslationAnchorViewport]]; - layer.fillTranslationAnchor = styleValue; + MGLStyleValue<NSValue *> *constantStyleValue = [MGLStyleValue<NSValue *> valueWithRawValue:[NSValue valueWithMGLFillTranslationAnchor:MGLFillTranslationAnchorViewport]]; + layer.fillTranslationAnchor = constantStyleValue; mbgl::style::PropertyValue<mbgl::style::TranslateAnchorType> propertyValue = { mbgl::style::TranslateAnchorType::Viewport }; XCTAssertEqual(rawLayer->getFillTranslateAnchor(), propertyValue, @"Setting fillTranslationAnchor to a constant value should update fill-translate-anchor."); - XCTAssertEqualObjects(layer.fillTranslationAnchor, styleValue, + XCTAssertEqualObjects(layer.fillTranslationAnchor, constantStyleValue, @"fillTranslationAnchor should round-trip constant values."); - styleValue = [MGLStyleValue<NSValue *> valueWithStops:@{ - @18: styleValue, - }]; - layer.fillTranslationAnchor = styleValue; - propertyValue = { mbgl::style::Function<mbgl::style::TranslateAnchorType> { - {{ 18, propertyValue.asConstant() }}, - 1, - }}; + MGLStyleValue<NSValue *> * functionStyleValue = [MGLStyleValue<NSValue *> valueWithInterpolationMode:MGLInterpolationModeInterval cameraStops:@{@18: constantStyleValue} options:nil]; + layer.fillTranslationAnchor = functionStyleValue; + + mbgl::style::IntervalStops<mbgl::style::TranslateAnchorType> intervalStops = { {{18, mbgl::style::TranslateAnchorType::Viewport}} }; + propertyValue = mbgl::style::CameraFunction<mbgl::style::TranslateAnchorType> { intervalStops }; + XCTAssertEqual(rawLayer->getFillTranslateAnchor(), propertyValue, - @"Setting fillTranslationAnchor to a function should update fill-translate-anchor."); - XCTAssertEqualObjects(layer.fillTranslationAnchor, styleValue, - @"fillTranslationAnchor should round-trip functions."); + @"Setting fillTranslationAnchor to a camera function should update fill-translate-anchor."); + XCTAssertEqualObjects(layer.fillTranslationAnchor, functionStyleValue, + @"fillTranslationAnchor should round-trip camera functions."); + + layer.fillTranslationAnchor = nil; XCTAssertTrue(rawLayer->getFillTranslateAnchor().isUndefined(), @"Unsetting fillTranslationAnchor should return fill-translate-anchor to the default value."); XCTAssertEqualObjects(layer.fillTranslationAnchor, defaultStyleValue, @"fillTranslationAnchor should return the default value after being unset."); + + functionStyleValue = [MGLStyleValue<NSValue *> valueWithInterpolationMode:MGLInterpolationModeIdentity sourceStops:nil attributeName:@"" options:nil]; + XCTAssertThrowsSpecificNamed(layer.fillTranslationAnchor = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); + + functionStyleValue = [MGLStyleValue<NSValue *> valueWithInterpolationMode:MGLInterpolationModeInterval compositeStops:@{@18: constantStyleValue} attributeName:@"" options:nil]; + XCTAssertThrowsSpecificNamed(layer.fillTranslationAnchor = functionStyleValue, NSException, NSInvalidArgumentException, @"MGLStyleValue should raise an exception if it is applied to a property that cannot support it"); } } |