|
From: | emacstheviking |
Subject: | Re: Predicate ordering when using current_predicate/1 |
Date: | Thu, 21 Nov 2013 16:04:37 +0000 |
For a good reason. That's not something that you should rely upon.
On 21/11/2013, at 15:48, emacstheviking <address@hidden> wrote:
> Hi,
>
> There is no mention of the actual order of returned predicates,
An alternative could be to use an identifier per test that you can compare and sort. An example from the Logtalk's "ack" example unit tests:
> recently I created a testing framework and it has this line of code thanks to Daniel,
>
> findall(Name,(current_predicate(Name/0), atom_concat('test_', _, Name)),AllTests)
>
> I am writing tests now that rely upon them being executed in the order that they are defined in the source file i.e. the temporal order in which they were added to the database I presume.
>
> However, they do not seem to come out in the expected order unless I have done something wrong but the above line of code is what dictates the order of execution.
test(ack_1) :-
...
test(ack_2) :-
...
test(ack_3) :-
...
Cheers,
Paulo
-----------------------------------------------------------------
Paulo Moura
Logtalk developer
Email: <mailto:address@hidden>
Web: <http://logtalk.org/>
-----------------------------------------------------------------
_______________________________________________
Users-prolog mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/users-prolog
[Prev in Thread] | Current Thread | [Next in Thread] |