summaryrefslogtreecommitdiff
path: root/platform/darwin/test/MGLMapCameraTests.m
diff options
context:
space:
mode:
Diffstat (limited to 'platform/darwin/test/MGLMapCameraTests.m')
-rw-r--r--platform/darwin/test/MGLMapCameraTests.m49
1 files changed, 49 insertions, 0 deletions
diff --git a/platform/darwin/test/MGLMapCameraTests.m b/platform/darwin/test/MGLMapCameraTests.m
new file mode 100644
index 0000000000..d40a336922
--- /dev/null
+++ b/platform/darwin/test/MGLMapCameraTests.m
@@ -0,0 +1,49 @@
+#import <XCTest/XCTest.h>
+#import <CoreLocation/CoreLocation.h>
+#import <Mapbox/Mapbox.h>
+#import <MapKit/MapKit.h>
+
+@interface MGLMapCameraTests : XCTestCase
+
+@end
+
+@implementation MGLMapCameraTests
+
+- (void)testViewingDistance {
+ CLLocationCoordinate2D fountainSquare = CLLocationCoordinate2DMake(39.10152215, -84.5124439696089);
+ MGLMapCamera *camera = [MGLMapCamera cameraLookingAtCenterCoordinate:fountainSquare
+ acrossDistance:10000
+ pitch:0
+ heading:0];
+ MKMapCamera *mkCamera = [MKMapCamera cameraLookingAtCenterCoordinate:fountainSquare
+ fromDistance:10000
+ pitch:0
+ heading:0];
+ XCTAssertEqualWithAccuracy(camera.altitude, 10000, 0.01, @"Untilted camera should use distance verbatim.");
+ XCTAssertEqualWithAccuracy(camera.altitude, mkCamera.altitude, 0.01, @"Untilted camera altitude should match MapKit.");
+
+ camera = [MGLMapCamera cameraLookingAtCenterCoordinate:fountainSquare
+ altitude:10000
+ pitch:0
+ heading:0];
+ XCTAssertEqual(camera.altitude, 10000, @"Untilted camera should use altitude verbatim.");
+
+ camera = [MGLMapCamera cameraLookingAtCenterCoordinate:fountainSquare
+ acrossDistance:10000
+ pitch:60
+ heading:0];
+ mkCamera = [MKMapCamera cameraLookingAtCenterCoordinate:fountainSquare
+ fromDistance:10000
+ pitch:60
+ heading:0];
+ XCTAssertEqualWithAccuracy(camera.altitude, 5000, 0.01, @"Tilted camera altitude should account for pitch.");
+ XCTAssertEqualWithAccuracy(camera.altitude, mkCamera.altitude, 0.01, @"Tilted camera altitude should match MapKit.");
+
+ camera = [MGLMapCamera cameraLookingAtCenterCoordinate:fountainSquare
+ altitude:10000
+ pitch:60
+ heading:0];
+ XCTAssertEqual(camera.altitude, 10000, @"Tilted camera should use altitude verbatim.");
+}
+
+@end