Coverage Summary for Class: ContextId (it.unibo.tuprolog.argumentation.core.primitives.context)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| ContextId |
100%
(1/1)
|
100%
(2/2)
|
|
100%
(4/4)
|
100%
(32/32)
|
package it.unibo.tuprolog.argumentation.core.primitives.context
import it.unibo.tuprolog.argumentation.core.primitives.PrimitiveWithSignature
import it.unibo.tuprolog.argumentation.core.runtime.context.ContextBranches
import it.unibo.tuprolog.argumentation.core.runtime.context.replyUnifying
import it.unibo.tuprolog.core.Numeric
import it.unibo.tuprolog.solve.ExecutionContext
import it.unibo.tuprolog.solve.Signature
import it.unibo.tuprolog.solve.primitive.Solve
/** context_id(+Term, ?Id): the integer identifier of Term (see [ContextBranches.identifier]) */
internal class ContextId(
private val branches: ContextBranches,
) : PrimitiveWithSignature {
override val signature = Signature("context_id", 2)
override fun solve(request: Solve.Request<ExecutionContext>): Sequence<Solve.Response> =
sequenceOf(request.replyUnifying(1, Numeric.of(branches.identifier(request.arguments[0]))))
}