Coverage Summary for Class: SortDistinct (it.unibo.tuprolog.argumentation.core.primitives.utils)

Class Class, % Method, % Branch, % Line, % Instruction, %
SortDistinct 100% (1/1) 100% (2/2) 50% (1/2) 100% (2/2) 94.1% (16/17)


 package it.unibo.tuprolog.argumentation.core.primitives.utils
 
 import it.unibo.tuprolog.core.List
 import it.unibo.tuprolog.core.Substitution
 import it.unibo.tuprolog.core.Term
 import it.unibo.tuprolog.solve.ExecutionContext
 import it.unibo.tuprolog.solve.primitive.BinaryRelation
 import it.unibo.tuprolog.solve.primitive.Solve
 
 /**
  * sortDistinct(+List, ?Sorted): reverse standard order of terms, duplicates removed (deduplicate/2, then sort/2)
  */
 internal object SortDistinct : BinaryRelation.WithoutSideEffects<ExecutionContext>("sortDistinct") {
     override fun Solve.Request<ExecutionContext>.computeAllSubstitutions(
         first: Term,
         second: Term,
     ): Sequence<Substitution> = if (first is List) unifyWith(second, List.of(first.distinctSortedTerms().asReversed())) else emptySequence()
 }