diff options
author | Nadia Barbosa <nadiabarbosa@me.com> | 2018-08-28 08:52:27 -0700 |
---|---|---|
committer | Nadia Barbosa <captainbarbosa@users.noreply.github.com> | 2018-09-04 18:57:18 -0700 |
commit | 7017ac512e96415d6a6c18512e320197a10ca83f (patch) | |
tree | e400a53a1bc5f33edb1c0a641a61c133e51ac787 /platform/darwin | |
parent | c9803e30408cf866c1743baefcd3135f5538f9d2 (diff) | |
download | qtlocation-mapboxgl-7017ac512e96415d6a6c18512e320197a10ca83f.tar.gz |
[ios, macos] Allow -convertCoordinateBounds to span antimeridian
Diffstat (limited to 'platform/darwin')
-rw-r--r-- | platform/darwin/test/MGLMapViewTests.m | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/platform/darwin/test/MGLMapViewTests.m b/platform/darwin/test/MGLMapViewTests.m new file mode 100644 index 0000000000..6ac8e1fe81 --- /dev/null +++ b/platform/darwin/test/MGLMapViewTests.m @@ -0,0 +1,42 @@ +#import <Mapbox/Mapbox.h> +#import <XCTest/XCTest.h> + +static MGLMapView *mapView; + +@interface MGLMapViewTests : XCTestCase + +@end + +@implementation MGLMapViewTests + ++ (void)setUp { + [super setUp]; + + [MGLAccountManager setAccessToken:@"pk.feedcafedeadbeefbadebede"]; + mapView = [[MGLMapView alloc] initWithFrame:CGRectMake(0, 0, 64, 64) styleURL:MGLStyle.streetsStyleURL]; + [mapView setCenterCoordinate:CLLocationCoordinate2DMake(33, 179)]; +} + +- (void)testCoordinateBoundsConversion { + MGLCoordinateBounds leftAntimeridianBounds = MGLCoordinateBoundsMake(CLLocationCoordinate2DMake(-75, 175), CLLocationCoordinate2DMake(75, 180)); + CGRect leftAntimeridianBoundsRect = [mapView convertCoordinateBounds:leftAntimeridianBounds toRectToView:mapView]; + + MGLCoordinateBounds rightAntimeridianBounds = MGLCoordinateBoundsMake(CLLocationCoordinate2DMake(-75, -180), CLLocationCoordinate2DMake(75, -175)); + CGRect rightAntimeridianBoundsRect = [mapView convertCoordinateBounds:rightAntimeridianBounds toRectToView:mapView]; + + MGLCoordinateBounds spanningBounds = MGLCoordinateBoundsMake(CLLocationCoordinate2DMake(24, 140), CLLocationCoordinate2DMake(44, 240)); + CGRect spanningBoundsRect = [mapView convertCoordinateBounds:spanningBounds toRectToView:mapView]; + + // If the resulting CGRect from -convertCoordinateBounds:toRectToView: + // intersects the set of bounds to the left and right of the + // antimeridian, then we know that the CGRect spans across the antimeridian + XCTAssertTrue(CGRectIntersectsRect(spanningBoundsRect, leftAntimeridianBoundsRect), @"Resulting "); + XCTAssertTrue(CGRectIntersectsRect(spanningBoundsRect, rightAntimeridianBoundsRect), @"Something"); +} + ++ (void)tearDown { + mapView = nil; + [super tearDown]; +} + +@end |