It is your call, but when I first started using this the use of the library(tap) seemed a bit dated.
If you are updating the tests, please also consider completing the test using castor
and pollux
or removing them. I only figured out what they meant by reading about them somewhere, and I can not even find that somewhere again.
EDIT
My test for castor
and pollux
Click triangle to reveal test
% NB Example from https://www.swi-prolog.org/pack/file_details/edcg/t/examples.pl is not complete
% Complete example exits in https://www2.eecs.berkeley.edu/Pubs/TechRpts/1990/CSD-90-583.pdf
% Declare accumulators
edcg:acc_info(castor,_,_,_,true).
% Declare passed arguments
edcg:pass_info(pollux).
% Declare predicates using these hidden arguments
edcg:pred_info(p,1,[castor,pollux]). % 1 - X
edcg:pred_info(q,1,[castor,pollux]). % 1 - Y
edcg:pred_info(r,1,[castor,pollux]). % 1 - Y
% The program
p(X) -->>
Y is X + 1,
q(Y),
r(Y).
q(Y,_,_,P) :-
format('q - Y: ~w, P: ~w~n',[Y,P]).
r(Y,_,_,P) :-
format('r - Y: ~w, P: ~w~n',[Y,P]).
% ?- listing(p).
% p(X, A, B, C) :-
% Y is X+1,
% q(Y, A, D, C),
% r(Y, D, B, C).
% Variables names changed for clarity
%
% p(X, Castor_1, Castor_3, Pollux) :-
% Y is X+1,
% q(Y, Castor_1, Castor_2, Pollux),
% r(Y, Castor_2, Castor_3, Pollux).
% -------------------------------------
:- begin_tests(p).
test(p) :-
with_output_to(string(Output),p(1,a,a,c)),
assertion( Output == "q - Y: 2, P: c\nr - Y: 2, P: c\n" ).
:- end_tests(p).