From 16513425019cf396d952f0df454a26f2fa26c1ba Mon Sep 17 00:00:00 2001 From: Thomas Van Lenten Date: Thu, 12 Jan 2017 16:00:13 -0500 Subject: Revert "Fix Timestamps with dates before the Unix epoch that contain fractional seconds." --- objectivec/Tests/GPBWellKnownTypesTest.m | 81 +++++++++++++------------------- 1 file changed, 33 insertions(+), 48 deletions(-) (limited to 'objectivec/Tests') 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 { -- cgit v1.2.3