/* * Copyright 2017 The WebRTC Project Authors. All rights reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #include "audio/time_interval.h" #include "api/units/time_delta.h" #include "rtc_base/fakeclock.h" #include "test/gtest.h" namespace webrtc { TEST(TimeIntervalTest, TimeInMs) { rtc::ScopedFakeClock fake_clock; TimeInterval interval; interval.Extend(); fake_clock.AdvanceTime(TimeDelta::ms(100)); interval.Extend(); EXPECT_EQ(interval.Length(), 100); } TEST(TimeIntervalTest, Empty) { TimeInterval interval; EXPECT_TRUE(interval.Empty()); interval.Extend(); EXPECT_FALSE(interval.Empty()); interval.Extend(200); EXPECT_FALSE(interval.Empty()); } TEST(TimeIntervalTest, MonotoneIncreasing) { const size_t point_count = 7; const int64_t interval_points[] = {3, 2, 5, 0, 4, 1, 6}; const int64_t interval_differences[] = {0, 1, 3, 5, 5, 5, 6}; TimeInterval interval; EXPECT_TRUE(interval.Empty()); for (size_t i = 0; i < point_count; ++i) { interval.Extend(interval_points[i]); EXPECT_EQ(interval_differences[i], interval.Length()); } } } // namespace webrtc