tests/test_util_queue.lua
author Matthew Wild <mwild1@gmail.com>
Wed, 30 May 2018 21:55:09 +0100
changeset 8849 7ec098b68042
parent 7512 d4bd036e679b
permissions -rw-r--r--
Merge 0.9->0.10
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6735
b5cf091d8c45 tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     1
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
     2
function new(new)
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
     3
	do
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
     4
		local q = new(10);
6735
b5cf091d8c45 tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     5
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
     6
		assert_equal(q.size, 10);
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
     7
		assert_equal(q:count(), 0);
6735
b5cf091d8c45 tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     8
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
     9
		assert_is(q:push("one"));
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    10
		assert_is(q:push("two"));
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    11
		assert_is(q:push("three"));
6735
b5cf091d8c45 tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    12
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    13
		for i = 4, 10 do
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    14
			assert_is(q:push("hello"));
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    15
			assert_equal(q:count(), i, "count is not "..i.."("..q:count()..")");
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    16
		end
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    17
		assert_equal(q:push("hello"), nil, "queue overfull!");
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    18
		assert_equal(q:push("hello"), nil, "queue overfull!");
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    19
		assert_equal(q:pop(), "one", "queue item incorrect");
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    20
		assert_equal(q:pop(), "two", "queue item incorrect");
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    21
		assert_is(q:push("hello"));
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    22
		assert_is(q:push("hello"));
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    23
		assert_equal(q:pop(), "three", "queue item incorrect");
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    24
		assert_is(q:push("hello"));
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    25
		assert_equal(q:push("hello"), nil, "queue overfull!");
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    26
		assert_equal(q:push("hello"), nil, "queue overfull!");
6735
b5cf091d8c45 tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    27
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    28
		assert_equal(q:count(), 10, "queue count incorrect");
6735
b5cf091d8c45 tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    29
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    30
		for _ = 1, 10 do
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    31
			assert_equal(q:pop(), "hello", "queue item incorrect");
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    32
		end
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    33
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    34
		assert_equal(q:count(), 0, "queue count incorrect");
6735
b5cf091d8c45 tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    35
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    36
		assert_is(q:push(1));
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    37
		for i = 1, 1001 do
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    38
			assert_equal(q:pop(), i);
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    39
			assert_equal(q:count(), 0);
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    40
			assert_is(q:push(i+1));
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    41
			assert_equal(q:count(), 1);
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    42
		end
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    43
		assert_equal(q:pop(), 1002);
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    44
		assert_is(q:push(1));
7511
736dea7b99ec test_util_queue: Reduce iteration count of loop and add asserts
Kim Alvefur <zash@zash.se>
parents: 7510
diff changeset
    45
		for i = 1, 1000 do
736dea7b99ec test_util_queue: Reduce iteration count of loop and add asserts
Kim Alvefur <zash@zash.se>
parents: 7510
diff changeset
    46
			assert_equal(q:pop(), i);
736dea7b99ec test_util_queue: Reduce iteration count of loop and add asserts
Kim Alvefur <zash@zash.se>
parents: 7510
diff changeset
    47
			assert_is(q:push(i+1));
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    48
		end
7512
d4bd036e679b test_util_queue: finish stress-test by emptying the queue
Anton Shestakov <av6@dwimlabs.net>
parents: 7511
diff changeset
    49
		assert_equal(q:pop(), 1001);
d4bd036e679b test_util_queue: finish stress-test by emptying the queue
Anton Shestakov <av6@dwimlabs.net>
parents: 7511
diff changeset
    50
		assert_equal(q:count(), 0);
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    51
	end
6735
b5cf091d8c45 tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    52
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    53
	do
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    54
		-- Test queues that purge old items when pushing to a full queue
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    55
		local q = new(10, true);
6735
b5cf091d8c45 tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    56
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    57
		for i = 1, 10 do
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    58
			q:push(i);
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    59
		end
6735
b5cf091d8c45 tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    60
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    61
		assert_equal(q:count(), 10);
6735
b5cf091d8c45 tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    62
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    63
		assert_is(q:push(11));
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    64
		assert_equal(q:count(), 10);
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    65
		assert_equal(q:pop(), 2); -- First item should have been purged
6735
b5cf091d8c45 tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    66
7510
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    67
		for i = 12, 32 do
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    68
			assert_is(q:push(i));
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    69
		end
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    70
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    71
		assert_equal(q:count(), 10);
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    72
		assert_equal(q:pop(), 23);
11e8c605a591 tests: Adapt test for util.queue to the test framework
Kim Alvefur <zash@zash.se>
parents: 6735
diff changeset
    73
	end
6735
b5cf091d8c45 tests: Add tests for util.queue
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    74
end