1 2/* Tests DTF creation and garbage collection of two tables for the 3 same predicate. */ 4 5:- import abolish_table_pred/1, get_residual/2 from tables. 6 7:- table tpred/1. 8 9tpred(X):- p(X). 10 11p(f(1)). 12p(f(2)). 13p(f(3)). 14p(g(1)). 15p(g(2)). 16p(g(3)). 17 18%------------------ 19:- dynamic tr/1. 20:- index(tr/1,trie). 21 22test :- 23 abolish_all_tables, 24 gc_tables(N0), 25 test2, 26 gc_tables(N1), 27 N is N1-N0, 28 writeln(remaining(N)). 29 30test2 :- 31 assert(tr(a)), 32 assert(tr(b)), 33 assert(tr(c)), 34 fail. 35test2 :- 36 tpred(_X),fail. 37test2 :- 38 tpred(X),tr(Y), 39 abolish_table_pred(tpred/1), 40 writeln((X,Y)),fail. 41test2 :- 42 tpred(_X),fail. 43test2 :- 44 tpred(_X),tr(_Y), 45 abolish_table_pred(tpred/1), 46 fail. 47test2 :- 48 get_residual(tpred(X),_), 49 writeln(first(X)), 50 fail. 51test2. 52