Files
MapLibreParticleLab/platform/darwin/test/MGLClockDirectionFormatterTests.m
Minh Nguyễn bf313b0c5f [ios, osx] Fixed direction formatter edge cases
Fixed an issue causing angles that are multiples of 360°, such as 720°, to be described as 0 o’clock. Fixed a crash when a compass direction is close enough to 360° to round up to 360°.
2016-04-24 23:38:49 -07:00

75 lines
3.6 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#import <Mapbox/Mapbox.h>
#import <XCTest/XCTest.h>
static NSString * const MGLTestLocaleIdentifier = @"en-US";
@interface MGLClockDirectionFormatterTests : XCTestCase
@end
@implementation MGLClockDirectionFormatterTests
- (void)testClockDirections {
MGLClockDirectionFormatter *shortFormatter = [[MGLClockDirectionFormatter alloc] init];
shortFormatter.unitStyle = NSFormattingUnitStyleShort;
MGLClockDirectionFormatter *mediumFormatter = [[MGLClockDirectionFormatter alloc] init];
MGLClockDirectionFormatter *longFormatter = [[MGLClockDirectionFormatter alloc] init];
longFormatter.unitStyle = NSFormattingUnitStyleLong;
CLLocationDirection direction;
direction = -90;
XCTAssertEqualObjects(@"9:00", [shortFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"9 o’clock", [mediumFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"9 o’clock", [longFormatter stringFromDirection:direction]);
direction = 0;
XCTAssertEqualObjects(@"12:00", [shortFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"12 o’clock", [mediumFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"12 o’clock", [longFormatter stringFromDirection:direction]);
direction = 45;
XCTAssertEqualObjects(@"2:00", [shortFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"2 o’clock", [mediumFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"2 o’clock", [longFormatter stringFromDirection:direction]);
direction = 90;
XCTAssertEqualObjects(@"3:00", [shortFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"3 o’clock", [mediumFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"3 o’clock", [longFormatter stringFromDirection:direction]);
direction = 180;
XCTAssertEqualObjects(@"6:00", [shortFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"6 o’clock", [mediumFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"6 o’clock", [longFormatter stringFromDirection:direction]);
direction = 270;
XCTAssertEqualObjects(@"9:00", [shortFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"9 o’clock", [mediumFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"9 o’clock", [longFormatter stringFromDirection:direction]);
direction = 359.34951805867024;
XCTAssertEqualObjects(@"12:00", [shortFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"12 o’clock", [mediumFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"12 o’clock", [longFormatter stringFromDirection:direction]);
direction = 360;
XCTAssertEqualObjects(@"12:00", [shortFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"12 o’clock", [mediumFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"12 o’clock", [longFormatter stringFromDirection:direction]);
direction = 360.1;
XCTAssertEqualObjects(@"12:00", [shortFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"12 o’clock", [mediumFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"12 o’clock", [longFormatter stringFromDirection:direction]);
direction = 720;
XCTAssertEqualObjects(@"12:00", [shortFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"12 o’clock", [mediumFormatter stringFromDirection:direction]);
XCTAssertEqualObjects(@"12 o’clock", [longFormatter stringFromDirection:direction]);
}
@end