defer installation of inference counter for call_with_inference_limit til after goals expanded
This commit is contained in:
@@ -16,39 +16,40 @@ test_queries_on_call_with_inference_limit :-
|
||||
\+ call_with_inference_limit(g(X), 5, R),
|
||||
maplist(assertz, [g(1), g(2), g(3), g(4), g(5)]),
|
||||
findall([R,X],
|
||||
call_with_inference_limit(g(X), 10, R),
|
||||
call_with_inference_limit(g(X), 11, R),
|
||||
[[true, 1],
|
||||
[true, 2],
|
||||
[true, 3],
|
||||
[true, 4],
|
||||
[!, 5]]),
|
||||
findall([R,X],
|
||||
(call_with_inference_limit(g(X), 10, R), call(true)),
|
||||
(call_with_inference_limit(g(X), 11, R), call(true)),
|
||||
[[true, 1],
|
||||
[true, 2],
|
||||
[true, 3],
|
||||
[true, 4],
|
||||
[!, 5]]),
|
||||
findall([R,X],
|
||||
(call_with_inference_limit(g(X), 4, R), call(true)),
|
||||
(call_with_inference_limit(g(X), 5, R), call(true)),
|
||||
[[true, 1],
|
||||
[true, 2],
|
||||
[inference_limit_exceeded, _]]),
|
||||
findall([X,R1,R2],
|
||||
(call_with_inference_limit(g(X), 4, R1),
|
||||
call_with_inference_limit(g(X), 5, R2)),
|
||||
(call_with_inference_limit(g(X), 5, R1),
|
||||
call_with_inference_limit(g(X), 6, R2)),
|
||||
[[1,true,!],
|
||||
[2,true,!],
|
||||
[3,true,!],
|
||||
[4,true,!],
|
||||
[5,!,!]]),
|
||||
\+ \+ assertz((f(X) :- call_with_inference_limit(g(X), 8, _))),
|
||||
\+ \+ assertz((f(X) :- call_with_inference_limit(tests_on_call_with_inference_limit:g(X), 11, _))),
|
||||
findall([R,X],
|
||||
call_with_inference_limit(f(X), 12, R),
|
||||
[[true,1],
|
||||
[true,2],
|
||||
[true,3],
|
||||
[true,4],
|
||||
[!,5]]).
|
||||
call_with_inference_limit(f(X), 14, R),
|
||||
Solutions),
|
||||
Solutions == [[true,1],
|
||||
[true,2],
|
||||
[true,3],
|
||||
[true,4],
|
||||
[!,5]].
|
||||
|
||||
:- initialization(test_queries_on_call_with_inference_limit).
|
||||
|
||||
Reference in New Issue
Block a user