Coverage Summary for Class: AssertAll (it.unibo.tuprolog.argumentation.core.primitives.utils)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| AssertAll |
100%
(2/2)
|
50%
(1/2)
|
50%
(5/10)
|
77.5%
(31/40)
|
| AssertAll$solve$1 |
100%
(1/1)
|
|
100%
(2/2)
|
100%
(23/23)
|
| Total |
100%
(3/3)
|
50%
(1/2)
|
58.3%
(7/12)
|
85.7%
(54/63)
|
package it.unibo.tuprolog.argumentation.core.primitives.utils
import it.unibo.tuprolog.argumentation.core.runtime.context.contextAssertAll
import it.unibo.tuprolog.core.List
import it.unibo.tuprolog.core.Term
import it.unibo.tuprolog.solve.ExecutionContext
import it.unibo.tuprolog.solve.Signature
import it.unibo.tuprolog.solve.exception.error.TypeError
import it.unibo.tuprolog.solve.primitive.Primitive
import it.unibo.tuprolog.solve.primitive.Solve
/**
* assertAll(+Clauses): each of Clauses asserted in the context
*/
internal object AssertAll : Primitive {
val signature: Signature = Signature("assertAll", 1)
override fun solve(request: Solve.Request<ExecutionContext>): Sequence<Solve.Response> {
val list: Term = request.arguments[0]
if (list !is List) {
throw TypeError.forGoal(
request.context,
request.signature,
TypeError.Expected.LIST,
list,
)
}
request.contextAssertAll(list.toList())
return sequence {
yield(
request.replyWith(true),
)
}
}
}
// Sorting utilities, natively implemented as they are invoked for every argument