Looking at the example you gave....how about:
EXPECT_EQ(kExpected.InMilliseconds(), foo.InMilliseconds());

Is that really that painful to write?

...and you could get all the microseconds to compare if you wanted to via
...InMicroseconds().

I suspect you don't really want absolute comparisons at the microsecond
level, and more likely you'd want something like;

EXPECT_LT((kEpected - foo).InMilliseconds(), 20).

...but if you really wanted the example you cited, the first line seems
relatively short.

Jim

On Thu, Aug 20, 2009 at 7:13 PM, Andrew Scherkus <[email protected]>wrote:

> I know microseconds aren't a very user-friendly format, but for unit tests
> and DCHECKs I'm more interested in whether the assertion is simply true.
>
> Perhaps I'm lazy but I'd prefer:
> EXPECT_EQ(kExpected, foo);
> error: Value of: foo
>   Actual: 21000000
> Expected: kExpected
> Which is: 22000000
>
> ...over:
> EXPECT_TRUE(kExpected == foo) << "Some message about " <<
> kExpected.InSecondsF() << " and " << foo.InSecondsF();
> error: Value of: kExpected == foo
>   Actual: false
> Expected: true
> Some message about 21.0 and 22.0
>
> Guaranteed I won't write that message every time and then I end up with a
> simple true/false dump instead of the erroneous values.
>
> On Thu, Aug 20, 2009 at 6:49 PM, Matt Perry <[email protected]>wrote:
>
>> Andrew wants to be able to do:
>>   DCHECK_EQ(expected_time_delta, time_delta);
>> This can't be done without operator<< support.
>>
>>
>> On Thu, Aug 20, 2009 at 6:46 PM, Jim Roskind <[email protected]> wrote:
>>
>>> +1 for Peter's suggestion.
>>> TimeDelta has an internal accuracy of microseconds.  What
>>> resolution/scaling do you want to print in a check?  Sometimes it is
>>> minutes, sometimes seconds, sometimes milliseconds, I doubt that we want
>>> microseconds :-/.
>>>
>>> Explicit conversion as suggested doesn't seem that painful IMO.
>>>
>>> Jim
>>>
>>>
>>> On Thu, Aug 20, 2009 at 4:02 PM, Peter Kasting <[email protected]>wrote:
>>>
>>>> On Thu, Aug 20, 2009 at 3:33 PM, Andrew Scherkus <[email protected]
>>>> > wrote:
>>>>
>>>>> Any opposition to globally declaring an operator<< ostream overload for
>>>>> TimeDelta in base/time.h?
>>>>>
>>>>
>>>> This will pull the stream headers into all files that use time.h.  Is
>>>> that going to bloat any code or cost compile time?
>>>>
>>>> Is there another easy solution like doing DCHECK() << "TimeDelta was: "
>>>> << myTimeDelta.asInt64OrWhatever()?
>>>>
>>>> PK
>>>>
>>>>
>>>>
>>>
>>> >>>
>>>
>>
>

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: [email protected] 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to