include include module test_queue_init() { assert(queue_init()==[]); } test_queue_init(); module test_queue_empty() { assert(queue_empty([])); assert(!queue_empty([3])); assert(!queue_empty([2,4,8])); } test_queue_empty(); module test_queue_size() { assert(queue_size([]) == 0); assert(queue_size([3]) == 1); assert(queue_size([2,4,8]) == 3); } test_queue_size(); module test_queue_head() { assert(queue_head([]) == undef); assert(queue_head([3,5,7,9]) == 3); assert(queue_head([3,5,7,9], 3) == [3,5,7]); } test_queue_head(); module test_queue_tail() { assert(queue_tail([]) == undef); assert(queue_tail([3,5,7,9]) == 9); assert(queue_tail([3,5,7,9], 3) == [5,7,9]); } test_queue_tail(); module test_queue_peek() { q = [8,5,4,3,2,3,7]; assert(queue_peek(q,0) == 8); assert(queue_peek(q,2) == 4); assert(queue_peek(q,2,1) == [4]); assert(queue_peek(q,2,3) == [4,3,2]); } test_queue_peek(); module test_queue_add() { q1 = queue_init(); q2 = queue_add(q1, "Foo"); assert(q2==["Foo"]); q3 = queue_add(q2, "Bar"); assert(q3==["Foo","Bar"]); q4 = queue_add(q3, "Baz"); assert(q4==["Foo","Bar","Baz"]); } test_queue_add(); module test_queue_pop() { q = ["Foo", "Bar", "Baz", "Qux"]; q1 = queue_pop(q); assert(q1 == ["Bar", "Baz", "Qux"]); q2 = queue_pop(q,2); assert(q2 == ["Baz", "Qux"]); q3 = queue_pop(q,3); assert(q3 == ["Qux"]); } test_queue_pop(); // vim: expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap