| % An example source file to be tested. |
| |
| % Add common rules missing in Prolog Cafe. |
| memberchk(X, [H|T]) :- |
| (X = H) -> true ; memberchk(X, T). |
| |
| % A rule that can succeed/backtrack multiple times. |
| super_users(1001). |
| super_users(1002). |
| |
| % Deterministic rule that pass/fail only once. |
| is_super_user(X) :- memberchk(X, [1001, 1002]). |
| |
| % Another rule that can pass 5 times. |
| multi_users(101). |
| multi_users(102). |
| multi_users(103). |
| multi_users(104). |
| multi_users(105). |
| |
| % Okay, single deterministic fact. |
| single_user(abc). |
| |
| % Wrap calls to gerrit repository, to be redefined in tests. |
| change_owner(X) :- gerrit:change_owner(X). |
| |
| % To test is_owner without gerrit:change_owner, |
| % we should redefine change_owner. |
| is_owner(X) :- change_owner(X). |