diff options
author | Thomas Van Lenten <thomasvl@google.com> | 2017-01-12 16:01:12 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-12 16:01:12 -0500 |
commit | c9cd6acd71e928164db10602b9d0837216ee367e (patch) | |
tree | d2703a613c8ce4a580e4e517577184b501bccbc1 /objectivec/Tests | |
parent | cf477d46ca8a837bc92e591617f283d9fa1ace5c (diff) | |
parent | 16513425019cf396d952f0df454a26f2fa26c1ba (diff) | |
download | protobuf-c9cd6acd71e928164db10602b9d0837216ee367e.tar.gz protobuf-c9cd6acd71e928164db10602b9d0837216ee367e.tar.bz2 protobuf-c9cd6acd71e928164db10602b9d0837216ee367e.zip |
Merge pull request #2587 from google/revert-2586-objc_timestamp
Revert "Fix Timestamps with dates before the Unix epoch that contain fractional seconds."
Diffstat (limited to 'objectivec/Tests')
-rw-r--r-- | objectivec/Tests/GPBWellKnownTypesTest.m | 81 |
1 files changed, 33 insertions, 48 deletions
diff --git a/objectivec/Tests/GPBWellKnownTypesTest.m b/objectivec/Tests/GPBWellKnownTypesTest.m index 99ab3e3c..041841dd 100644 --- a/objectivec/Tests/GPBWellKnownTypesTest.m +++ b/objectivec/Tests/GPBWellKnownTypesTest.m @@ -46,54 +46,39 @@ static const NSTimeInterval kTimeAccuracy = 1e-9; @implementation WellKnownTypesTest - (void)testTimeStamp { - // Test a pre-Unix epoch date with fractional seconds. - NSTimeInterval interval = -428027599.0 + -483999967/1e9; - NSDate *preEpochDate = [NSDate dateWithTimeIntervalSince1970:interval]; - NSDate *now = [NSDate date]; - NSDate *future = [NSDate dateWithTimeIntervalSinceNow:kFutureOffsetInterval]; - NSArray *datesToTest = @[preEpochDate, now, future]; - - for (NSDate *date in datesToTest) { - // Test Creation. - GPBTimestamp *timeStamp = [[GPBTimestamp alloc] initWithDate:date]; - NSDate *timeStampDate = timeStamp.date; - - XCTAssertGreaterThanOrEqual(timeStamp.nanos, 0, - @"|nanos| must be >= 0. Failing date: %@", date); - XCTAssertLessThan(timeStamp.nanos, 1e9, @"|nanos| must be < 1e9. Failing date: %@", date); - - // Comparing timeIntervals instead of directly comparing dates because date - // equality requires the time intervals to be exactly the same, and the - // timeintervals go through a bit of floating point error as they are - // converted back and forth from the internal representation. - XCTAssertEqualWithAccuracy(date.timeIntervalSince1970, - timeStampDate.timeIntervalSince1970, - kTimeAccuracy, - @"Failing date: %@", date); - - NSTimeInterval time = [date timeIntervalSince1970]; - GPBTimestamp *timeStamp2 = - [[GPBTimestamp alloc] initWithTimeIntervalSince1970:time]; - NSTimeInterval durationTime = timeStamp2.timeIntervalSince1970; - XCTAssertEqualWithAccuracy(time, durationTime, kTimeAccuracy, @"Failing date: %@", date); - [timeStamp release]; - [timeStamp2 release]; - - // Test Mutation. - GPBTimestamp *timeStamp3 = [[GPBTimestamp alloc] init]; - timeStamp3.date = date; - timeStampDate = timeStamp3.date; - XCTAssertEqualWithAccuracy(date.timeIntervalSince1970, - timeStampDate.timeIntervalSince1970, - kTimeAccuracy, - @"Failing date: %@", date); - - time = date.timeIntervalSince1970; - timeStamp3.timeIntervalSince1970 = time; - durationTime = timeStamp3.timeIntervalSince1970; - XCTAssertEqualWithAccuracy(time, durationTime, kTimeAccuracy, @"Failing date: %@", date); - [timeStamp3 release]; - } + // Test Creation. + NSDate *date = [NSDate date]; + GPBTimestamp *timeStamp = [[GPBTimestamp alloc] initWithDate:date]; + NSDate *timeStampDate = timeStamp.date; + + // Comparing timeIntervals instead of directly comparing dates because date + // equality requires the time intervals to be exactly the same, and the + // timeintervals go through a bit of floating point error as they are + // converted back and forth from the internal representation. + XCTAssertEqualWithAccuracy(date.timeIntervalSince1970, + timeStampDate.timeIntervalSince1970, + kTimeAccuracy); + + NSTimeInterval time = [date timeIntervalSince1970]; + GPBTimestamp *timeStamp2 = + [[GPBTimestamp alloc] initWithTimeIntervalSince1970:time]; + NSTimeInterval durationTime = timeStamp2.timeIntervalSince1970; + XCTAssertEqualWithAccuracy(time, durationTime, kTimeAccuracy); + [timeStamp release]; + + // Test Mutation. + date = [NSDate dateWithTimeIntervalSinceNow:kFutureOffsetInterval]; + timeStamp2.date = date; + timeStampDate = timeStamp2.date; + XCTAssertEqualWithAccuracy(date.timeIntervalSince1970, + timeStampDate.timeIntervalSince1970, + kTimeAccuracy); + + time = date.timeIntervalSince1970; + timeStamp2.timeIntervalSince1970 = time; + durationTime = timeStamp2.timeIntervalSince1970; + XCTAssertEqualWithAccuracy(time, durationTime, kTimeAccuracy); + [timeStamp2 release]; } - (void)testDuration { |