Index: base/time/time_unittest.cc |
diff --git a/base/time/time_unittest.cc b/base/time/time_unittest.cc |
index 512fc37d3fc0f0dc345793439fd2d0ace241b8b0..b7e05b786b490bbb0ede2aabc3f09cffc990eb6a 100644 |
--- a/base/time/time_unittest.cc |
+++ b/base/time/time_unittest.cc |
@@ -482,6 +482,52 @@ |
EXPECT_EQ(0, exploded.minute); |
EXPECT_EQ(1, exploded.second); |
EXPECT_EQ(1, exploded.millisecond); |
+} |
+ |
+TEST_F(TimeTest, TimeDeltaMax) { |
+ TimeDelta max = TimeDelta::Max(); |
+ EXPECT_TRUE(max.is_max()); |
+ EXPECT_EQ(max, TimeDelta::Max()); |
+ EXPECT_GT(max, TimeDelta::FromDays(100 * 365)); |
+ EXPECT_GT(max, TimeDelta()); |
+} |
+ |
+TEST_F(TimeTest, TimeDeltaMaxConversions) { |
+ TimeDelta t = TimeDelta::Max(); |
+ EXPECT_EQ(std::numeric_limits<int64>::max(), t.ToInternalValue()); |
+ |
+ EXPECT_EQ(std::numeric_limits<int>::max(), t.InDays()); |
+ EXPECT_EQ(std::numeric_limits<int>::max(), t.InHours()); |
+ EXPECT_EQ(std::numeric_limits<int>::max(), t.InMinutes()); |
+ EXPECT_EQ(std::numeric_limits<double>::infinity(), t.InSecondsF()); |
+ EXPECT_EQ(std::numeric_limits<int64>::max(), t.InSeconds()); |
+ EXPECT_EQ(std::numeric_limits<double>::infinity(), t.InMillisecondsF()); |
+ EXPECT_EQ(std::numeric_limits<int64>::max(), t.InMilliseconds()); |
+ EXPECT_EQ(std::numeric_limits<int64>::max(), t.InMillisecondsRoundedUp()); |
+ |
+ t = TimeDelta::FromDays(std::numeric_limits<int>::max()); |
+ EXPECT_TRUE(t.is_max()); |
+ |
+ t = TimeDelta::FromHours(std::numeric_limits<int>::max()); |
+ EXPECT_TRUE(t.is_max()); |
+ |
+ t = TimeDelta::FromMinutes(std::numeric_limits<int>::max()); |
+ EXPECT_TRUE(t.is_max()); |
+ |
+ t = TimeDelta::FromSeconds(std::numeric_limits<int64>::max()); |
+ EXPECT_TRUE(t.is_max()); |
+ |
+ t = TimeDelta::FromMilliseconds(std::numeric_limits<int64>::max()); |
+ EXPECT_TRUE(t.is_max()); |
+ |
+ t = TimeDelta::FromSecondsD(std::numeric_limits<double>::infinity()); |
+ EXPECT_TRUE(t.is_max()); |
+ |
+ t = TimeDelta::FromMillisecondsD(std::numeric_limits<double>::infinity()); |
+ EXPECT_TRUE(t.is_max()); |
+ |
+ t = TimeDelta::FromMicroseconds(std::numeric_limits<int64>::max()); |
+ EXPECT_TRUE(t.is_max()); |
} |
TEST_F(TimeTest, Max) { |
@@ -749,7 +795,6 @@ |
EXPECT_EQ(13, TimeDelta::FromMillisecondsD(13.3).InMilliseconds()); |
EXPECT_EQ(13.3, TimeDelta::FromMillisecondsD(13.3).InMillisecondsF()); |
EXPECT_EQ(13, TimeDelta::FromMicroseconds(13).InMicroseconds()); |
- EXPECT_EQ(3.456, TimeDelta::FromMillisecondsD(3.45678).InMillisecondsF()); |
} |
#if defined(OS_POSIX) |
@@ -823,154 +868,83 @@ |
TimeDelta::FromMicroseconds(min_int64_plus_two).magnitude()); |
} |
-TEST(TimeDelta, Max) { |
- TimeDelta max = TimeDelta::Max(); |
- EXPECT_TRUE(max.is_max()); |
- EXPECT_EQ(max, TimeDelta::Max()); |
- EXPECT_GT(max, TimeDelta::FromDays(100 * 365)); |
- EXPECT_GT(max, TimeDelta()); |
+ |
+TEST(TimeDelta, NumericOperators) { |
+ double d = 0.5; |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ TimeDelta::FromMilliseconds(1000) * d); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ TimeDelta::FromMilliseconds(1000) / d); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ TimeDelta::FromMilliseconds(1000) *= d); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ TimeDelta::FromMilliseconds(1000) /= d); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ d * TimeDelta::FromMilliseconds(1000)); |
+ |
+ float f = 0.5; |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ TimeDelta::FromMilliseconds(1000) * f); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ TimeDelta::FromMilliseconds(1000) / f); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ TimeDelta::FromMilliseconds(1000) *= f); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ TimeDelta::FromMilliseconds(1000) /= f); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ f * TimeDelta::FromMilliseconds(1000)); |
+ |
+ |
+ int i = 2; |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ TimeDelta::FromMilliseconds(1000) * i); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ TimeDelta::FromMilliseconds(1000) / i); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ TimeDelta::FromMilliseconds(1000) *= i); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ TimeDelta::FromMilliseconds(1000) /= i); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ i * TimeDelta::FromMilliseconds(1000)); |
+ |
+ int64_t i64 = 2; |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ TimeDelta::FromMilliseconds(1000) * i64); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ TimeDelta::FromMilliseconds(1000) / i64); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ TimeDelta::FromMilliseconds(1000) *= i64); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ TimeDelta::FromMilliseconds(1000) /= i64); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ i64 * TimeDelta::FromMilliseconds(1000)); |
+ |
+ |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ TimeDelta::FromMilliseconds(1000) * 0.5); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ TimeDelta::FromMilliseconds(1000) / 0.5); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ TimeDelta::FromMilliseconds(1000) *= 0.5); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ TimeDelta::FromMilliseconds(1000) /= 0.5); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ 0.5 * TimeDelta::FromMilliseconds(1000)); |
+ |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ TimeDelta::FromMilliseconds(1000) * 2); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ TimeDelta::FromMilliseconds(1000) / 2); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ TimeDelta::FromMilliseconds(1000) *= 2); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
+ TimeDelta::FromMilliseconds(1000) /= 2); |
+ EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
+ 2 * TimeDelta::FromMilliseconds(1000)); |
} |
bool IsMin(TimeDelta delta) { |
return (-delta).is_max(); |
-} |
- |
-TEST(TimeDelta, MaxConversions) { |
- TimeDelta t = TimeDelta::Max(); |
- EXPECT_EQ(std::numeric_limits<int64>::max(), t.ToInternalValue()); |
- |
- EXPECT_EQ(std::numeric_limits<int>::max(), t.InDays()); |
- EXPECT_EQ(std::numeric_limits<int>::max(), t.InHours()); |
- EXPECT_EQ(std::numeric_limits<int>::max(), t.InMinutes()); |
- EXPECT_EQ(std::numeric_limits<double>::infinity(), t.InSecondsF()); |
- EXPECT_EQ(std::numeric_limits<int64>::max(), t.InSeconds()); |
- EXPECT_EQ(std::numeric_limits<double>::infinity(), t.InMillisecondsF()); |
- EXPECT_EQ(std::numeric_limits<int64>::max(), t.InMilliseconds()); |
- EXPECT_EQ(std::numeric_limits<int64>::max(), t.InMillisecondsRoundedUp()); |
- |
- t = TimeDelta::FromDays(std::numeric_limits<int>::max()); |
- EXPECT_TRUE(t.is_max()); |
- |
- t = TimeDelta::FromHours(std::numeric_limits<int>::max()); |
- EXPECT_TRUE(t.is_max()); |
- |
- t = TimeDelta::FromMinutes(std::numeric_limits<int>::max()); |
- EXPECT_TRUE(t.is_max()); |
- |
- int64 max_int = std::numeric_limits<int64>::max(); |
- |
- t = TimeDelta::FromSeconds(max_int / Time::kMicrosecondsPerSecond + 1); |
- EXPECT_TRUE(t.is_max()); |
- |
- t = TimeDelta::FromMilliseconds(max_int / Time::kMillisecondsPerSecond + 1); |
- EXPECT_TRUE(t.is_max()); |
- |
- t = TimeDelta::FromMicroseconds(max_int); |
- EXPECT_TRUE(t.is_max()); |
- |
- t = TimeDelta::FromSeconds(-max_int / Time::kMicrosecondsPerSecond - 1); |
- EXPECT_TRUE(IsMin(t)); |
- |
- t = TimeDelta::FromMilliseconds(-max_int / Time::kMillisecondsPerSecond - 1); |
- EXPECT_TRUE(IsMin(t)); |
- |
- t = TimeDelta::FromMicroseconds(-max_int); |
- EXPECT_TRUE(IsMin(t)); |
- |
- t = -TimeDelta::FromMicroseconds(std::numeric_limits<int64>::min()); |
- EXPECT_FALSE(IsMin(t)); |
- |
- t = TimeDelta::FromSecondsD(std::numeric_limits<double>::infinity()); |
- EXPECT_TRUE(t.is_max()); |
- |
- double max_d = max_int; |
- |
- t = TimeDelta::FromSecondsD(max_d / Time::kMicrosecondsPerSecond + 1); |
- EXPECT_TRUE(t.is_max()); |
- |
- t = TimeDelta::FromMillisecondsD(std::numeric_limits<double>::infinity()); |
- EXPECT_TRUE(t.is_max()); |
- |
- t = TimeDelta::FromMillisecondsD(max_d / Time::kMillisecondsPerSecond * 2); |
- EXPECT_TRUE(t.is_max()); |
- |
- t = TimeDelta::FromSecondsD(-max_d / Time::kMicrosecondsPerSecond - 1); |
- EXPECT_TRUE(IsMin(t)); |
- |
- t = TimeDelta::FromMillisecondsD(-max_d / Time::kMillisecondsPerSecond * 2); |
- EXPECT_TRUE(IsMin(t)); |
-} |
- |
-TEST(TimeDelta, NumericOperators) { |
- double d = 0.5; |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- TimeDelta::FromMilliseconds(1000) * d); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- TimeDelta::FromMilliseconds(1000) / d); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- TimeDelta::FromMilliseconds(1000) *= d); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- TimeDelta::FromMilliseconds(1000) /= d); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- d * TimeDelta::FromMilliseconds(1000)); |
- |
- float f = 0.5; |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- TimeDelta::FromMilliseconds(1000) * f); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- TimeDelta::FromMilliseconds(1000) / f); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- TimeDelta::FromMilliseconds(1000) *= f); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- TimeDelta::FromMilliseconds(1000) /= f); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- f * TimeDelta::FromMilliseconds(1000)); |
- |
- int i = 2; |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- TimeDelta::FromMilliseconds(1000) * i); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- TimeDelta::FromMilliseconds(1000) / i); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- TimeDelta::FromMilliseconds(1000) *= i); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- TimeDelta::FromMilliseconds(1000) /= i); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- i * TimeDelta::FromMilliseconds(1000)); |
- |
- int64_t i64 = 2; |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- TimeDelta::FromMilliseconds(1000) * i64); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- TimeDelta::FromMilliseconds(1000) / i64); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- TimeDelta::FromMilliseconds(1000) *= i64); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- TimeDelta::FromMilliseconds(1000) /= i64); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- i64 * TimeDelta::FromMilliseconds(1000)); |
- |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- TimeDelta::FromMilliseconds(1000) * 0.5); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- TimeDelta::FromMilliseconds(1000) / 0.5); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- TimeDelta::FromMilliseconds(1000) *= 0.5); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- TimeDelta::FromMilliseconds(1000) /= 0.5); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- 0.5 * TimeDelta::FromMilliseconds(1000)); |
- |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- TimeDelta::FromMilliseconds(1000) * 2); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- TimeDelta::FromMilliseconds(1000) / 2); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- TimeDelta::FromMilliseconds(1000) *= 2); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(500), |
- TimeDelta::FromMilliseconds(1000) /= 2); |
- EXPECT_EQ(TimeDelta::FromMilliseconds(2000), |
- 2 * TimeDelta::FromMilliseconds(1000)); |
} |
TEST(TimeDelta, Overflows) { |