OLD | NEW |
| (Empty) |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "media/audio/audio_streams_tracker.h" | |
6 | |
7 #include <stddef.h> | |
8 | |
9 #include "testing/gtest/include/gtest/gtest.h" | |
10 | |
11 namespace media { | |
12 | |
13 TEST(AudioStreamsTrackerTest, IncreaseAndDecreaseOnce) { | |
14 AudioStreamsTracker audio_streams_tracker; | |
15 const size_t kNumberOfOperations = 5; | |
16 | |
17 // Increase count. | |
18 for (size_t i = 1; i <= kNumberOfOperations; ++i) { | |
19 audio_streams_tracker.IncreaseStreamCount(); | |
20 EXPECT_EQ(i, audio_streams_tracker.current_stream_count_); | |
21 EXPECT_EQ(i, audio_streams_tracker.max_stream_count()); | |
22 } | |
23 | |
24 // Reset and check max count. | |
25 audio_streams_tracker.ResetMaxStreamCount(); | |
26 EXPECT_EQ(kNumberOfOperations, audio_streams_tracker.max_stream_count()); | |
27 | |
28 // Decrease count. | |
29 for (size_t i = 1; i <= kNumberOfOperations; ++i) { | |
30 audio_streams_tracker.DecreaseStreamCount(); | |
31 EXPECT_EQ(kNumberOfOperations - i, | |
32 audio_streams_tracker.current_stream_count_); | |
33 EXPECT_EQ(kNumberOfOperations, audio_streams_tracker.max_stream_count()); | |
34 } | |
35 | |
36 // Reset and check max count. | |
37 audio_streams_tracker.ResetMaxStreamCount(); | |
38 EXPECT_EQ(0u, audio_streams_tracker.max_stream_count()); | |
39 } | |
40 | |
41 TEST(AudioStreamsTrackerTest, IncreaseAndDecreaseMultiple) { | |
42 AudioStreamsTracker audio_streams_tracker; | |
43 const size_t kNumberOfOperations = 5; | |
44 | |
45 // Increase 2N (N = kNumberOfOperations). | |
46 for (size_t i = 1; i <= 2 * kNumberOfOperations; ++i) { | |
47 audio_streams_tracker.IncreaseStreamCount(); | |
48 EXPECT_EQ(i, audio_streams_tracker.current_stream_count_); | |
49 EXPECT_EQ(i, audio_streams_tracker.max_stream_count()); | |
50 } | |
51 | |
52 // Decrease N. | |
53 for (size_t i = 1; i <= kNumberOfOperations; ++i) { | |
54 audio_streams_tracker.DecreaseStreamCount(); | |
55 EXPECT_EQ(2 * kNumberOfOperations - i, | |
56 audio_streams_tracker.current_stream_count_); | |
57 EXPECT_EQ(2 * kNumberOfOperations, | |
58 audio_streams_tracker.max_stream_count()); | |
59 } | |
60 | |
61 // Reset and check max count. | |
62 audio_streams_tracker.ResetMaxStreamCount(); | |
63 EXPECT_EQ(kNumberOfOperations, audio_streams_tracker.max_stream_count()); | |
64 | |
65 // Increase 2N. | |
66 for (size_t i = 1; i <= 2 * kNumberOfOperations; ++i) { | |
67 audio_streams_tracker.IncreaseStreamCount(); | |
68 EXPECT_EQ(kNumberOfOperations + i, | |
69 audio_streams_tracker.current_stream_count_); | |
70 EXPECT_EQ(kNumberOfOperations + i, | |
71 audio_streams_tracker.max_stream_count()); | |
72 } | |
73 | |
74 // Decrease N. | |
75 for (size_t i = 1; i <= kNumberOfOperations; ++i) { | |
76 audio_streams_tracker.DecreaseStreamCount(); | |
77 EXPECT_EQ(3 * kNumberOfOperations - i, | |
78 audio_streams_tracker.current_stream_count_); | |
79 EXPECT_EQ(3 * kNumberOfOperations, | |
80 audio_streams_tracker.max_stream_count()); | |
81 } | |
82 | |
83 // Reset and check max count. | |
84 audio_streams_tracker.ResetMaxStreamCount(); | |
85 EXPECT_EQ(2 * kNumberOfOperations, audio_streams_tracker.max_stream_count()); | |
86 | |
87 // Decrease 2N. | |
88 for (size_t i = 1; i <= 2 * kNumberOfOperations; ++i) { | |
89 audio_streams_tracker.DecreaseStreamCount(); | |
90 EXPECT_EQ(2 * kNumberOfOperations - i, | |
91 audio_streams_tracker.current_stream_count_); | |
92 EXPECT_EQ(2 * kNumberOfOperations, | |
93 audio_streams_tracker.max_stream_count()); | |
94 } | |
95 | |
96 // Reset and check max count. | |
97 audio_streams_tracker.ResetMaxStreamCount(); | |
98 EXPECT_EQ(0u, audio_streams_tracker.max_stream_count()); | |
99 } | |
100 | |
101 } // namespace media | |
OLD | NEW |