| 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) {
|
|
|