28 lines
513 B
Prolog
28 lines
513 B
Prolog
:- use_module(library(python)).
|
|
:- use_module(library(lists)).
|
|
|
|
main :-
|
|
test(I),
|
|
catch( dot(I), G, err(I,G) ),
|
|
writeln('.'),
|
|
fail.
|
|
main.
|
|
|
|
test(I) :-
|
|
findall(I, clause(det(I,_,_),_), IsF, Is0 ),
|
|
Is0 = [],
|
|
sort(IsF,Is),
|
|
member(I, Is).
|
|
|
|
dot(I) :-
|
|
det(I, Vs, Sol),
|
|
Vs == Sol.
|
|
|
|
err(I,N) :-
|
|
format(' test ~d failed with error: ~w',[I,N]).
|
|
|
|
|
|
det(a1,[X],[2]) :- X:=2.
|
|
det(a2,[],[]) :- x := range(1,10).
|
|
det(b2 [X],[9]) :- X := x.length().
|
|
det(c3,[X],[Y]) :- X:=cmath.sin(1), Y is sin(1). |