-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLimitedSizeStack_PerformanceTest.cs
37 lines (35 loc) · 1.21 KB
/
LimitedSizeStack_PerformanceTest.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using NUnit.Framework;
namespace TodoApplication
{
[TestFixture]
public class LimitedSizeStack_PerformanceTest
{
[Test, Timeout(500), Description("Push должен работать быстро, даже при большом лимите на размер стека")]
public void Push_ShouldTakeConstantTime()
{
var limit = 100000;
var stack = new LimitedSizeStack<int>(limit);
for (var i = 0; i < 5 * limit; ++i)
{
stack.Push(0);
}
Assert.AreEqual(limit, stack.Count);
}
[Test, Timeout(500), Description("Pop должен работать быстро, даже при большом лимите на размер стека")]
public void Pop_ShouldTakeConstantTime()
{
var limit = 200000;
var stack = new LimitedSizeStack<int>(limit);
for (var i = 0; i < limit; ++i)
{
stack.Push(0);
}
Assert.AreEqual(limit, stack.Count);
for (var i = 0; i < limit; ++i)
{
stack.Pop();
}
Assert.AreEqual(0, stack.Count);
}
}
}