MCPcopy Create free account
hub / github.com/abess-team/abess / test_basic_runqueue

Function test_basic_runqueue

python/include/unsupported/test/cxx11_runqueue.cpp:28–111  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26}
27
28void test_basic_runqueue()
29{
30 RunQueue<int, 4> q;
31 // Check empty state.
32 VERIFY(q.Empty());
33 VERIFY_IS_EQUAL(0u, q.Size());
34 VERIFY_IS_EQUAL(0, q.PopFront());
35 std::vector<int> stolen;
36 VERIFY_IS_EQUAL(0u, q.PopBackHalf(&stolen));
37 VERIFY_IS_EQUAL(0u, stolen.size());
38 // Push one front, pop one front.
39 VERIFY_IS_EQUAL(0, q.PushFront(1));
40 VERIFY_IS_EQUAL(1u, q.Size());
41 VERIFY_IS_EQUAL(1, q.PopFront());
42 VERIFY_IS_EQUAL(0u, q.Size());
43 // Push front to overflow.
44 VERIFY_IS_EQUAL(0, q.PushFront(2));
45 VERIFY_IS_EQUAL(1u, q.Size());
46 VERIFY_IS_EQUAL(0, q.PushFront(3));
47 VERIFY_IS_EQUAL(2u, q.Size());
48 VERIFY_IS_EQUAL(0, q.PushFront(4));
49 VERIFY_IS_EQUAL(3u, q.Size());
50 VERIFY_IS_EQUAL(0, q.PushFront(5));
51 VERIFY_IS_EQUAL(4u, q.Size());
52 VERIFY_IS_EQUAL(6, q.PushFront(6));
53 VERIFY_IS_EQUAL(4u, q.Size());
54 VERIFY_IS_EQUAL(5, q.PopFront());
55 VERIFY_IS_EQUAL(3u, q.Size());
56 VERIFY_IS_EQUAL(4, q.PopFront());
57 VERIFY_IS_EQUAL(2u, q.Size());
58 VERIFY_IS_EQUAL(3, q.PopFront());
59 VERIFY_IS_EQUAL(1u, q.Size());
60 VERIFY_IS_EQUAL(2, q.PopFront());
61 VERIFY_IS_EQUAL(0u, q.Size());
62 VERIFY_IS_EQUAL(0, q.PopFront());
63 // Push one back, pop one back.
64 VERIFY_IS_EQUAL(0, q.PushBack(7));
65 VERIFY_IS_EQUAL(1u, q.Size());
66 VERIFY_IS_EQUAL(1u, q.PopBackHalf(&stolen));
67 VERIFY_IS_EQUAL(1u, stolen.size());
68 VERIFY_IS_EQUAL(7, stolen[0]);
69 VERIFY_IS_EQUAL(0u, q.Size());
70 stolen.clear();
71 // Push back to overflow.
72 VERIFY_IS_EQUAL(0, q.PushBack(8));
73 VERIFY_IS_EQUAL(1u, q.Size());
74 VERIFY_IS_EQUAL(0, q.PushBack(9));
75 VERIFY_IS_EQUAL(2u, q.Size());
76 VERIFY_IS_EQUAL(0, q.PushBack(10));
77 VERIFY_IS_EQUAL(3u, q.Size());
78 VERIFY_IS_EQUAL(0, q.PushBack(11));
79 VERIFY_IS_EQUAL(4u, q.Size());
80 VERIFY_IS_EQUAL(12, q.PushBack(12));
81 VERIFY_IS_EQUAL(4u, q.Size());
82 // Pop back in halves.
83 VERIFY_IS_EQUAL(2u, q.PopBackHalf(&stolen));
84 VERIFY_IS_EQUAL(2u, stolen.size());
85 VERIFY_IS_EQUAL(10, stolen[0]);

Callers 1

test_cxx11_runqueueFunction · 0.85

Calls 9

SizeMethod · 0.80
PopFrontMethod · 0.80
PopBackHalfMethod · 0.80
PushFrontMethod · 0.80
PushBackMethod · 0.80
PopBackMethod · 0.80
EmptyMethod · 0.45
sizeMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected