]> Repositorios git - scryer-prolog.git/commitdiff
update tests
authorMark Thom <[email protected]>
Sun, 8 Dec 2019 02:21:09 +0000 (19:21 -0700)
committerMark Thom <[email protected]>
Sun, 8 Dec 2019 02:21:09 +0000 (19:21 -0700)
src/tests/builtins.pl
src/tests/call_with_inference_limit.pl [new file with mode: 0644]
src/tests/facts.pl
src/tests/predicates.pl
src/tests/rules.pl
src/tests/setup_call_cleanup.pl

index 9b3760d1e68997eea89c9121d5674dfba41f7c61..6b4c63b6399ebc765401dad2f40b43ec547ae307 100644 (file)
@@ -1,3 +1,4 @@
+:- module(tests_on_builtins, []).
 
 :- use_module(library(lists)).
 :- use_module(library(non_iso)).
diff --git a/src/tests/call_with_inference_limit.pl b/src/tests/call_with_inference_limit.pl
new file mode 100644 (file)
index 0000000..c16c729
--- /dev/null
@@ -0,0 +1,54 @@
+:- module(tests_on_call_with_inference_limit, []).
+
+:- use_module(library(lists)).
+:- use_module(library(non_iso)).
+
+:- dynamic(f/1).
+:- dynamic(g/1).
+
+test_queries_on_call_with_inference_limit :-
+    catch(call_with_inference_limit(throw(error), 0, inference_limit_exceeded),
+         error,
+         true),
+    catch(call_with_inference_limit(throw(error), 1, inference_limit_exceeded),
+         error,
+         true),
+    \+ 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),
+           [[true, 1],
+            [true, 2],
+            [true, 3],
+            [true, 4],
+            [!, 5]]),
+    findall([R,X],
+           (call_with_inference_limit(g(X), 10, 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)),
+           [[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)),
+           [[1,true,!],
+            [2,true,!],
+            [3,true,!],
+            [4,true,!],
+            [5,!,!]]),
+    \+ \+ assertz((f(X) :- call_with_inference_limit(g(X), 8, _))),
+    findall([R,X],
+           call_with_inference_limit(f(X), 12, R),
+           [[true,1],
+            [true,2],
+            [true,3],
+            [true,4],
+            [!,5]]).
+
+:- initialization(test_queries_on_call_with_inference_limit).
index 7c33ac7e9e63711d4d69e2477d2fb1b3e3717b91..a81f681429e0030342ea0d8997e2cb6fe6cad95b 100644 (file)
@@ -1,3 +1,5 @@
+:- module(tests_on_facts, []).
+
 :- dynamic(p/2).
 :- dynamic(p/3).
 
index 2724976637a06b5c6729119401fe5f41b4cb1080..44d0b06418164c0edec1109bb0464c3ad0afde0b 100644 (file)
@@ -1,3 +1,4 @@
+:- module(test_on_predicates, []).
 
 :- dynamic(p/2).
 :- dynamic(p/3).
index 45bfaf6dec2d8cbff2f891ed050baacc41f4e4a5..600daaf67f8e65e4cfa9ebc8f70be27f203bf004 100644 (file)
@@ -1,3 +1,5 @@
+:- module(tests_on_rules, []).
+
 :- dynamic(p/3).
 :- dynamic(p/2).
 :- dynamic(q/2).
index b3c6a9bb5aa2fae77d736f76fe6e172d5a46b82d..8f15ae4b1ba26bf7eafa12bba10a072a236b4912 100644 (file)
@@ -1,3 +1,4 @@
+:- module(test_on_setup_call_cleanup, []).
 
 :- use_module(library(non_iso)).