summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Guerra <fabian.guerra@mapbox.com>2018-04-17 16:07:51 -0400
committerFabian Guerra <fabian.guerra@mapbox.com>2018-04-17 16:07:51 -0400
commit5e0c4af7b25c1dd1e008b706e8a8ce1b84f09c02 (patch)
treebbdcf0ac4fa4aee6b551904f9cb12d58bed401b0
parent3951b203c8a316ca6bc5f0b46c8aea4e3bd7c1f5 (diff)
downloadqtlocation-mapboxgl-5e0c4af7b25c1dd1e008b706e8a8ce1b84f09c02.tar.gz
[ios, macos] Add cosine NSExpresssion operator.
-rw-r--r--platform/darwin/src/NSExpression+MGLAdditions.mm10
-rw-r--r--platform/darwin/test/MGLExpressionTests.mm7
2 files changed, 17 insertions, 0 deletions
diff --git a/platform/darwin/src/NSExpression+MGLAdditions.mm b/platform/darwin/src/NSExpression+MGLAdditions.mm
index d23da18597..aa01fd6126 100644
--- a/platform/darwin/src/NSExpression+MGLAdditions.mm
+++ b/platform/darwin/src/NSExpression+MGLAdditions.mm
@@ -69,6 +69,7 @@ const MGLExpressionInterpolationMode MGLExpressionInterpolationModeCubicBezier =
INSTALL_METHOD(mgl_coalesce:);
INSTALL_METHOD(mgl_does:have:);
INSTALL_METHOD(mgl_acos:);
+ INSTALL_METHOD(mgl_cos:);
INSTALL_METHOD(mgl_asin:);
INSTALL_METHOD(mgl_atan:);
@@ -108,6 +109,13 @@ const MGLExpressionInterpolationMode MGLExpressionInterpolationModeCubicBezier =
}
/**
+ Computes the principal value of the cosine.
+ */
+- (NSNumber *)mgl_cos:(NSNumber *)number {
+ return @(cos(number.doubleValue));
+}
+
+/**
Computes the principal value of the inverse sine.
*/
- (NSNumber *)mgl_asin:(NSNumber *)number {
@@ -700,6 +708,7 @@ NSArray *MGLSubexpressionsWithJSONObjects(NSArray *objects) {
@"abs": @"abs:",
@"round": @"mgl_round:",
@"acos" : @"mgl_acos:",
+ @"cos" : @"mgl_cos:",
@"asin" : @"mgl_asin:",
@"atan" : @"mgl_atan:",
@"floor": @"floor:",
@@ -945,6 +954,7 @@ NSArray *MGLSubexpressionsWithJSONObjects(NSArray *objects) {
@"length:": @"length",
@"mgl_round:": @"round",
@"mgl_acos:" : @"acos",
+ @"mgl_cos:" : @"cos",
@"mgl_asin:" : @"asin",
@"mgl_atan:" : @"atan",
// Vararg aftermarket expressions need to be declared with an explicit and implicit first argument.
diff --git a/platform/darwin/test/MGLExpressionTests.mm b/platform/darwin/test/MGLExpressionTests.mm
index 20e252c06b..badc9904cc 100644
--- a/platform/darwin/test/MGLExpressionTests.mm
+++ b/platform/darwin/test/MGLExpressionTests.mm
@@ -539,6 +539,13 @@ using namespace std::string_literals;
XCTAssertEqualObjects([NSExpression expressionWithMGLJSONObject:jsonExpression], expression);
}
{
+ NSExpression *expression = [NSExpression expressionForFunction:@"mgl_cos:" arguments:@[MGLConstantExpression(@0)]];
+ NSArray *jsonExpression = @[@"cos", @0];
+ XCTAssertEqualObjects(expression.mgl_jsonExpressionObject, jsonExpression);
+ XCTAssertEqualObjects([expression expressionValueWithObject:nil context:nil], @1);
+ XCTAssertEqualObjects([NSExpression expressionWithMGLJSONObject:jsonExpression], expression);
+ }
+ {
NSExpression *expression = [NSExpression expressionForFunction:@"mgl_asin:" arguments:@[MGLConstantExpression(@0)]];
NSArray *jsonExpression = @[@"asin", @0];
XCTAssertEqualObjects(expression.mgl_jsonExpressionObject, jsonExpression);