Coverage Summary for Class: ContextAbsentIn (it.unibo.tuprolog.argumentation.core.primitives.context)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| ContextAbsentIn |
100%
(1/1)
|
100%
(2/2)
|
25%
(1/4)
|
100%
(5/5)
|
74.5%
(35/47)
|
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.branchArgument
import it.unibo.tuprolog.solve.ExecutionContext
import it.unibo.tuprolog.solve.Signature
import it.unibo.tuprolog.solve.primitive.Solve
/** context_absent(+Branch, Goal): `\+ context_check(Branch, Goal)` as a single step; a branch that does not exist has none */
internal class ContextAbsentIn(
private val branches: ContextBranches,
) : PrimitiveWithSignature {
override val signature = Signature("context_absent", 2)
override fun solve(request: Solve.Request<ExecutionContext>): Sequence<Solve.Response> {
val store = branches.storeOf(request.branchArgument(0))
return sequenceOf(request.replyWith(store?.solve(request.arguments[1])?.none() ?: true))
}
}