begin migrating tests to pure prolog, correct bug in toplevel

This commit is contained in:
Mark Thom
2019-11-16 19:15:07 -07:00
parent cee3dbc453
commit bcfd7cbf8d
7 changed files with 188 additions and 3542 deletions

37
src/tests/predicates.pl Normal file
View File

@@ -0,0 +1,37 @@
:- dynamic(p/2).
:- dynamic(p/3).
:- dynamic(q/1).
p(_, a).
p(b, _).
test_queries_on_predicates :-
findall(Y, p(x, Y), [a]),
findall(X, p(X, a), [_,b]),
findall(X, p(b, X), [a,_]),
findall(X, p(X, X), [a,b]),
p(b, a),
\+ p(a, b),
retract(p(_,a)),
retract(p(b,_)),
assertz(p(_, _,a)),
assertz(p(_,a,_)),
assertz(p(_,_,a)),
findall(X, p(c,d,X), [a,a]),
findall(X, p(a,a,a), [a,a,a]),
\+ p(b,c,d),
findall(., retract(p(_,_,_)), _),
assertz(p(_, a)),
assertz(q(z)),
findall(Y, p(_,Y), [a]),
p(x,a),
p(_,a),
\+ p(_,b),
assertz((p(X, Y) :- q(Z), p(X, X))),
once(p(X,b)),
retract((p(X, Y) :- q(Z), p(X, X))),
retract(q(z)).
:- initialization(test_queries_on_predicates).