begin migrating tests to pure prolog, correct bug in toplevel
This commit is contained in:
37
src/tests/predicates.pl
Normal file
37
src/tests/predicates.pl
Normal 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).
|
||||
Reference in New Issue
Block a user