50 lines
1.0 KiB
Plaintext
50 lines
1.0 KiB
Plaintext
go =>
|
|
println("Test 1"),
|
|
queue_test1,
|
|
nl.
|
|
|
|
empty(Q) => Q = [].
|
|
push(Queue, Value) = Q2 =>
|
|
Q2 = [Value] ++ Queue.
|
|
pop(Q,_) = _, Q==[] ; var(Q) =>
|
|
throw $error(empty_queue,pop,'Q'=Q).
|
|
pop(Queue,Q2) = Queue.last() =>
|
|
Q2 = [Queue[I] : I in 1..Queue.len-1].
|
|
|
|
queue_test1 =>
|
|
|
|
% create an empty queue
|
|
println("Start test 2"),
|
|
empty(Q0),
|
|
printf("Create queue %w%n%n", Q0),
|
|
|
|
% add numbers 1 and 2
|
|
println("Add numbers 1 and 2 : "),
|
|
Q1 = Q0.push(1),
|
|
Q2 = Q1.push(2),
|
|
|
|
% display queue
|
|
printf("Q2: %w\n\n", Q2),
|
|
|
|
% pop element
|
|
V = Q2.pop(Q3),
|
|
|
|
% display results
|
|
printf("Pop : Value: %w Queue: %w\n\n", V, Q3),
|
|
|
|
% test the queue
|
|
print("Test of the queue: "),
|
|
( Q3.empty() -> println("Queue empty"); println("Queue not empty") ),
|
|
nl,
|
|
|
|
% pop the elements
|
|
print("Pop the queue : "),
|
|
V1 = Q3.pop(Q4),
|
|
printf("Value %w Queue : %w%n%n", V1, Q4),
|
|
|
|
println("Pop empty queue:"),
|
|
catch(_V = Q4.pop(_Q5),Exception,println(Exception)),
|
|
nl,
|
|
|
|
println("\nEnd of tests.").
|