Coverage Summary for Class: BpsNew (it.unibo.tuprolog.argumentation.core.primitives.graph.language)

Class Class, % Method, % Branch, % Line, % Instruction, %
BpsNew 100% (1/1) 100% (3/3) 75% (3/4) 100% (6/6) 96.6% (57/59)


 package it.unibo.tuprolog.argumentation.core.primitives.graph.language
 
 import it.unibo.tuprolog.core.Struct
 import it.unibo.tuprolog.core.Substitution
 import it.unibo.tuprolog.core.Term
 import it.unibo.tuprolog.core.toTerm
 import it.unibo.tuprolog.solve.ExecutionContext
 import it.unibo.tuprolog.solve.primitive.Solve
 import it.unibo.tuprolog.solve.primitive.UnaryPredicate
 
 /**
  * bpsNew(-Bps): the burdens of persuasion of the theory, its `bp(...)` facts, as `abstractBp([...])` terms
  */
 internal object BpsNew : UnaryPredicate.WithoutSideEffects<ExecutionContext>("bpsNew") {
     override fun Solve.Request<ExecutionContext>.computeAllSubstitutions(first: Term): Sequence<Substitution> =
         ConversionUtils.commonMap(this, first, true) { clauses, prologScope ->
             clauses
                 .filter { it.value.isFact && it.value.head?.functor == "bp" }
                 .map { Struct.of("abstractBp", prologScope.logicListOf(it.value.head!!.args)) }
                 .toTerm()
         }
 }