1df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro/* 2df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro * Copyright (C) 2017 The Android Open Source Project 3df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro * 4df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro * Licensed under the Apache License, Version 2.0 (the "License"); 5df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro * you may not use this file except in compliance with the License. 6df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro * You may obtain a copy of the License at 7df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro * 8df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro * http://www.apache.org/licenses/LICENSE-2.0 9df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro * 10df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro * Unless required by applicable law or agreed to in writing, software 11df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro * distributed under the License is distributed on an "AS IS" BASIS, 12df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro * See the License for the specific language governing permissions and 14df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro * limitations under the License. 15df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro */ 16df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 17df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro#include "gtest/gtest.h" 18df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 19df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro#include "chre/util/time.h" 20df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 21df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishigurousing chre::Seconds; 22df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishigurousing chre::Milliseconds; 23df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishigurousing chre::Microseconds; 24df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishigurousing chre::Nanoseconds; 25df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishigurousing chre::kOneSecondInNanoseconds; 26df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishigurousing chre::kOneMillisecondInNanoseconds; 27df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishigurousing chre::kOneMicrosecondInNanoseconds; 28df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 29df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro// Tests for Time constants 30df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, CheckTimeConversionConstants) { 31df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(kOneSecondInNanoseconds, 1e9); 32df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(kOneMillisecondInNanoseconds, 1e6); 33df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(kOneMicrosecondInNanoseconds, 1e3); 34df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 35df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 36df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro// Tests for Seconds 37df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, ConvertSecToNanosec) { 38df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Seconds t(5); 39df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.toRawNanoseconds(), 5 * kOneSecondInNanoseconds); 40df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 41df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 42df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, ConvertSecToNanosecOverflowIsUint64Max) { 43df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Seconds t(UINT64_MAX / kOneSecondInNanoseconds + 1); 44df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.toRawNanoseconds(), UINT64_MAX); 45df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 46df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 47df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro// Tests for Milliseconds 48df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, DefaultMillisecIsZero) { 49df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Milliseconds t; 50df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.getMilliseconds(), 0); 51df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 52df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 53df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, GetInitialMillisec) { 54df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Milliseconds t(5); 55df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.getMilliseconds(), 5); 56df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 57df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 58df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, InitializeMillisecFromNanosec) { 59df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds tNano(5 * kOneMillisecondInNanoseconds); 60df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Milliseconds tMilli(tNano); 61df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(tMilli.getMilliseconds(), 5); 62df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 63df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 64df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, ConvertMillisecToNanosec) { 65df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Milliseconds t(5); 66df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.toRawNanoseconds(), 5 * kOneMillisecondInNanoseconds); 67df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 68df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 69df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, ConvertMillisecToNanosecOverflowIsUint64Max) { 70df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Milliseconds t(UINT64_MAX / kOneMillisecondInNanoseconds + 1); 71df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.toRawNanoseconds(), UINT64_MAX); 72df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 73df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 74df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, TestMillisecEquals) { 75df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Milliseconds t1(5), t2(5), t3(6); 76df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_TRUE(t1 == t2); 77df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_FALSE(t1 == t3); 78df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 79df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 80df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro// Tests for Microseconds 81df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, GetInitialMicrosec) { 82df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Microseconds t(5); 83df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.getMicroseconds(), 5); 84df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 85df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 86df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, InitializeMicrosecFromNanosec) { 87df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds tNano(5 * kOneMicrosecondInNanoseconds); 88df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Microseconds tMicro(tNano); 89df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(tMicro.getMicroseconds(), 5); 90df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 91df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 92df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, ConvertMicrosecToNanosec) { 93df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Microseconds t(5); 94df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.toRawNanoseconds(), 5 * kOneMicrosecondInNanoseconds); 95df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 96df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 97df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, ConvertMicrosecToNanosecOverflowIsUint64Max) { 98df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Milliseconds t(UINT64_MAX / kOneMicrosecondInNanoseconds + 1); 99df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.toRawNanoseconds(), UINT64_MAX); 100df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 101df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 102df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro// Tests for Nanoseconds 103df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, DefaultNanosecIsZero) { 104df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds t; 105df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.toRawNanoseconds(), 0); 106df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 107df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 108df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, GetInitialNanosec) { 109df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds t(5); 110df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.toRawNanoseconds(), 5); 111df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 112df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 113df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, InitializeNanosecFromSec) { 114df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Seconds tSec(5); 115df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds tNano(tSec); 116df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(tNano.toRawNanoseconds(), 5 * kOneSecondInNanoseconds); 117df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 118df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 119df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, InitializeNanosecFromMillisec) { 120df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Milliseconds tMilli(5); 121df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds tNano(tMilli); 122df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(tNano.toRawNanoseconds(), 5 * kOneMillisecondInNanoseconds); 123df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 124df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 125df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, InitializeNanosecFromMicrosec) { 126df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Microseconds tMicro(5); 127df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds tNano(tMicro); 128df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(tNano.toRawNanoseconds(), 5 * kOneMicrosecondInNanoseconds); 129df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 130df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 131df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, NanosecEquals) { 132df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds t1(5), t2(5), t3(6); 133df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_TRUE(t1 == t2); 134df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_FALSE(t1 == t3); 135df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 136df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 137df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, NanosecNotEquals) { 138df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds t1(5), t2(5), t3(6); 139df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_FALSE(t1 != t2); 140df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_TRUE(t1 != t3); 141df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 142df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 143df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, AddSecToNanosec) { 144df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds t = Seconds(5) + Nanoseconds(6); 145df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.toRawNanoseconds(), 5 * kOneSecondInNanoseconds + 6); 146df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 147df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 148b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan ChungTEST(Time, AddSecToNanosecOverflow) { 149b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan Chung Nanoseconds t = Seconds(5) + Nanoseconds(UINT64_MAX); 150b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan Chung EXPECT_EQ(t.toRawNanoseconds(), 5 * kOneSecondInNanoseconds - 1); 151b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan Chung} 152b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan Chung 153df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, AddNanosecToNanosec) { 154df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds t = Nanoseconds(6) + Nanoseconds(5); 155df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.toRawNanoseconds(), 11); 156df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 157df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 158b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan ChungTEST(Time, AddNanosecToNanosecOverflow) { 159b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan Chung Nanoseconds t = Nanoseconds(6) + Nanoseconds(UINT64_MAX); 160b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan Chung EXPECT_EQ(t.toRawNanoseconds(), 5); 161b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan Chung} 162b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan Chung 163df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, SubtractNanosecFromNanosec) { 164df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds t = Nanoseconds(11) - Nanoseconds(5); 165df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_EQ(t.toRawNanoseconds(), 6); 166df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 167df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 168b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan ChungTEST(Time, SubtractNanosecFromNanosecOverflow) { 169b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan Chung Nanoseconds t = Nanoseconds(5) - Nanoseconds(11); 170b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan Chung EXPECT_EQ(t.toRawNanoseconds(), UINT64_MAX - 5); 171b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan Chung} 172b2ddcf26fc919cb8024ab0536db8362bcb77dfd5Meng-hsuan Chung 173df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, NanosecGreaterThanEqual) { 174df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds t1(5), t2(5), t3(6); 175df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_TRUE(t2 >= t1); 176df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_TRUE(t3 >= t1); 177df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_FALSE(t1 >= t3); 178df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 179df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 180df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, NanosecLessThan) { 181df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds t1(5), t2(5), t3(6); 182df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_FALSE(t2 < t1); 183df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_FALSE(t3 < t1); 184df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_TRUE(t1 < t3); 185df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 186df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro 187df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur IshiguroTEST(Time, NanosecGreaterThan) { 188df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro Nanoseconds t1(5), t2(5), t3(6); 189df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_FALSE(t2 > t1); 190df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_TRUE(t3 > t1); 191df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro EXPECT_FALSE(t1 > t3); 192df85b4c9c0a215f67684db3e6bf2d1996ee811d4Arthur Ishiguro} 193