Mercurial > prosody-hg
comparison spec/util_queue_spec.lua @ 8240:c803624cae3d
spec/util_queue: Add iterator and peek tests for 100% line coverage
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sat, 16 Sep 2017 10:16:08 +0100 |
| parents | 4878e4159e12 |
| children | c8b75239846c |
comparison
equal
deleted
inserted
replaced
| 8239:20e3d5689cce | 8240:c803624cae3d |
|---|---|
| 35 for _ = 1, 10 do | 35 for _ = 1, 10 do |
| 36 assert.are.equal(q:pop(), "hello", "queue item incorrect"); | 36 assert.are.equal(q:pop(), "hello", "queue item incorrect"); |
| 37 end | 37 end |
| 38 | 38 |
| 39 assert.are.equal(q:count(), 0, "queue count incorrect"); | 39 assert.are.equal(q:count(), 0, "queue count incorrect"); |
| 40 assert.are.equal(q:pop(), nil, "empty queue pops non-nil result"); | |
| 41 assert.are.equal(q:count(), 0, "popping empty queue affects count"); | |
| 42 | |
| 43 assert.are.equal(q:peek(), nil, "empty queue peeks non-nil result"); | |
| 44 assert.are.equal(q:count(), 0, "peeking empty queue affects count"); | |
| 40 | 45 |
| 41 assert.is_true(q:push(1)); | 46 assert.is_true(q:push(1)); |
| 42 for i = 1, 1001 do | 47 for i = 1, 1001 do |
| 43 assert.are.equal(q:pop(), i); | 48 assert.are.equal(q:pop(), i); |
| 44 assert.are.equal(q:count(), 0); | 49 assert.are.equal(q:count(), 0); |
| 66 assert.are.equal(q:count(), 10); | 71 assert.are.equal(q:count(), 10); |
| 67 | 72 |
| 68 assert.is_true(q:push(11)); | 73 assert.is_true(q:push(11)); |
| 69 assert.are.equal(q:count(), 10); | 74 assert.are.equal(q:count(), 10); |
| 70 assert.are.equal(q:pop(), 2); -- First item should have been purged | 75 assert.are.equal(q:pop(), 2); -- First item should have been purged |
| 76 assert.are.equal(q:peek(), 3); | |
| 71 | 77 |
| 72 for i = 12, 32 do | 78 for i = 12, 32 do |
| 73 assert.is_true(q:push(i)); | 79 assert.is_true(q:push(i)); |
| 74 end | 80 end |
| 75 | 81 |
| 76 assert.are.equal(q:count(), 10); | 82 assert.are.equal(q:count(), 10); |
| 77 assert.are.equal(q:pop(), 23); | 83 assert.are.equal(q:pop(), 23); |
| 78 end | 84 end |
| 79 | 85 |
| 86 do | |
| 87 -- Test iterator | |
| 88 local q = queue.new(10, true); | |
| 89 | |
| 90 for i = 1, 10 do | |
| 91 q:push(i); | |
| 92 end | |
| 93 | |
| 94 local i = 0; | |
| 95 for item in q:items() do | |
| 96 i = i + 1; | |
| 97 assert.are.equal(item, i, "unexpected item returned by iterator") | |
| 98 end | |
| 99 end | |
| 100 | |
| 80 end); | 101 end); |
| 81 end); | 102 end); |
| 82 end); | 103 end); |
