Did you know ... Search Documentation:
Pack logtalk -- logtalk-3.99.0/docs/apis/_sources/mutator_common_0.rst.txt

.. index:: single: mutator_common .. _mutator_common/0:

.. rst-class:: right

category

mutator_common

Mutator common predicate utilities.

| Availability: | logtalk_load(mutation_testing(loader))

| Author: Paulo Moura | Version: 1:0:0 | Date: 2026-03-20

| Compilation flags: | static

| Implements: | public :ref:`mutator_protocol <mutator_protocol/0>` | Uses: | :ref:`logtalk <logtalk/0>`

| Remarks: | (none)

| Inherited public predicates: |  :ref:`mutator_protocol/0::coverage_clause_mutator/0`  :ref:`mutator_protocol/0::mutation/2`  :ref:`mutator_protocol/0::reset/0`  

.. contents:: :local: :backlinks: top

Public predicates

(no local declarations; see entity ancestors if any)

Protected predicates

.. index:: print_mutation/3 .. _mutator_common/0::print_mutation/3:

print_mutation/3 ^^^^^^^^^^^^^^^^^^^^

Prints a term and its mutation when Flag is true. Succeeds otherwise.

| Compilation flags: | static

| Template: | print_mutation(Flag,Original,Mutation) | Mode and number of proofs: | print_mutation(+boolean,@callable,@callable) - one


.. index:: target_predicate/3 .. _mutator_common/0::target_predicate/3:

target_predicate/3 ^^^^^^^^^^^^^^^^^^^^^^

True iff Term is a candidate for mutation.

| Compilation flags: | static

| Template: | target_predicate(Term,Entity,Predicate) | Mode and number of proofs: | target_predicate(@callable,@entity_identifier,@predicate_indicator) - one


.. index:: target_predicate_clause_index/4 .. _mutator_common/0::target_predicate_clause_index/4:

target_predicate_clause_index/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

True iff Term is a candidate for mutation while also returning its current 1-based contiguous clause index for the matching predicate or non-terminal.

| Compilation flags: | static

| Template: | target_predicate_clause_index(Term,Entity,Predicate,ClauseIndex) | Mode and number of proofs: | target_predicate_clause_index(@callable,@entity_identifier,@predicate_indicator,-integer) - zero_or_one


.. index:: target_scope_directive/3 .. _mutator_common/0::target_scope_directive/3:

target_scope_directive/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

True iff Term is a matching predicate or non-terminal scope directive candidate for mutation.

| Compilation flags: | static

| Template: | target_scope_directive(Term,Entity,Predicate) | Mode and number of proofs: | target_scope_directive(@callable,@entity_identifier,@predicate_indicator) - one


.. index:: target_scope_directive_index/4 .. _mutator_common/0::target_scope_directive_index/4:

target_scope_directive_index/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

True iff Term is a matching predicate or non-terminal scope directive candidate for mutation while also returning its 1-based index among matching scope directives for the selected predicate or non-terminal.

| Compilation flags: | static

| Template: | target_scope_directive_index(Term,Entity,Predicate,DirectiveIndex) | Mode and number of proofs: | target_scope_directive_index(@callable,@entity_identifier,@predicate_indicator,-integer) - zero_or_one


.. index:: target_predicate_directive/3 .. _mutator_common/0::target_predicate_directive/3:

target_predicate_directive/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

True iff Term is a matching predicate or non-terminal directive candidate for mutation.

| Compilation flags: | static

| Template: | target_predicate_directive(Term,Entity,Predicate) | Mode and number of proofs: | target_predicate_directive(@callable,@entity_identifier,@predicate_indicator) - one


.. index:: target_predicate_directive_index/4 .. _mutator_common/0::target_predicate_directive_index/4:

target_predicate_directive_index/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

True iff Term is a matching predicate or non-terminal directive candidate for mutation while also returning its 1-based index among matching directives for the selected predicate or non-terminal.

| Compilation flags: | static

| Template: | target_predicate_directive_index(Term,Entity,Predicate,DirectiveIndex) | Mode and number of proofs: | target_predicate_directive_index(@callable,@entity_identifier,@predicate_indicator,-integer) - zero_or_one


.. index:: target_uses_directive/3 .. _mutator_common/0::target_uses_directive/3:

target_uses_directive/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^

True iff Term is a matching uses/2 directive candidate for mutation.

| Compilation flags: | static

| Template: | target_uses_directive(Term,Entity,Predicate) | Mode and number of proofs: | target_uses_directive(@callable,@entity_identifier,@predicate_indicator) - one


.. index:: target_uses_directive_index/4 .. _mutator_common/0::target_uses_directive_index/4:

target_uses_directive_index/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

True iff Term is a matching uses/2 directive candidate for mutation while also returning its 1-based index among matching directives for the selected predicate or non-terminal.

| Compilation flags: | static

| Template: | target_uses_directive_index(Term,Entity,Predicate,DirectiveIndex) | Mode and number of proofs: | target_uses_directive_index(@callable,@entity_identifier,@predicate_indicator,-integer) - zero_or_one


.. index:: next_occurrence/1 .. _mutator_common/0::next_occurrence/1:

next_occurrence/1 ^^^^^^^^^^^^^^^^^^^^^

Next mutation occurrence.

| Compilation flags: | static

| Template: | next_occurrence(Occurrence) | Mode and number of proofs: | next_occurrence(-integer) - one


Private predicates

.. index:: current_predicate_clause_index_/2 .. _mutator_common/0::current_predicate_clause_index_/2:

current_predicate_clause_index_/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Table of current clause indexes per predicate.

| Compilation flags: | dynamic

| Template: | current_predicate_clause_index_(Predicate,ClauseIndex) | Mode and number of proofs: | current_predicate_clause_index_(?predicate_indicator,?integer) - zero_or_one


.. index:: update_target_predicate_clause_index_/2 .. _mutator_common/0::update_target_predicate_clause_index_/2:

update_target_predicate_clause_index_/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Updates and returns the next clause index for the given predicate.

| Compilation flags: | static

| Template: | update_target_predicate_clause_index_(Predicate,ClauseIndex) | Mode and number of proofs: | update_target_predicate_clause_index_(@predicate_indicator,-integer) - one


.. index:: current_scope_directive_index_/2 .. _mutator_common/0::current_scope_directive_index_/2:

current_scope_directive_index_/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Table of current scope directive indexes per predicate.

| Compilation flags: | dynamic

| Template: | current_scope_directive_index_(Predicate,DirectiveIndex) | Mode and number of proofs: | current_scope_directive_index_(?predicate_indicator,?integer) - zero_or_one


.. index:: update_target_scope_directive_index_/2 .. _mutator_common/0::update_target_scope_directive_index_/2:

update_target_scope_directive_index_/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Updates and returns the next scope directive index for the given predicate.

| Compilation flags: | static

| Template: | update_target_scope_directive_index_(Predicate,DirectiveIndex) | Mode and number of proofs: | update_target_scope_directive_index_(@predicate_indicator,-integer) - one


.. index:: current_predicate_directive_index_/2 .. _mutator_common/0::current_predicate_directive_index_/2:

current_predicate_directive_index_/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Table of current predicate directive indexes per predicate.

| Compilation flags: | dynamic

| Template: | current_predicate_directive_index_(Predicate,DirectiveIndex) | Mode and number of proofs: | current_predicate_directive_index_(?predicate_indicator,?integer) - zero_or_one


.. index:: update_target_predicate_directive_index_/2 .. _mutator_common/0::update_target_predicate_directive_index_/2:

update_target_predicate_directive_index_/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Updates and returns the next predicate directive index for the given predicate.

| Compilation flags: | static

| Template: | update_target_predicate_directive_index_(Predicate,DirectiveIndex) | Mode and number of proofs: | update_target_predicate_directive_index_(@predicate_indicator,-integer) - one


.. index:: current_uses_directive_index_/2 .. _mutator_common/0::current_uses_directive_index_/2:

current_uses_directive_index_/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Table of current uses directive indexes per predicate.

| Compilation flags: | dynamic

| Template: | current_uses_directive_index_(Predicate,DirectiveIndex) | Mode and number of proofs: | current_uses_directive_index_(?predicate_indicator,?integer) - zero_or_one


.. index:: update_target_uses_directive_index_/2 .. _mutator_common/0::update_target_uses_directive_index_/2:

update_target_uses_directive_index_/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Updates and returns the next uses directive index for the given predicate.

| Compilation flags: | static

| Template: | update_target_uses_directive_index_(Predicate,DirectiveIndex) | Mode and number of proofs: | update_target_uses_directive_index_(@predicate_indicator,-integer) - one


.. index:: seen_/1 .. _mutator_common/0::seen_/1:

seen_/1 ^^^^^^^^^^^

Table of last seen mutation occurrence.

| Compilation flags: | dynamic

| Template: | seen_(Occurrence) | Mode and number of proofs: | seen_(?integer) - zero_or_one


Operators

(none)