
org.specs2.scalacheck.PrettyDetails.scala Maven / Gradle / Ivy
package org.specs2
package scalacheck
import org.scalacheck.util.FreqMap
object PrettyDetails {
/**
* Failure details might get collected with the collect operation when evaluating
* the Prop
*/
def collectDetails[T](fq: FreqMap[Set[T]]): execute.Details = {
fq.getRatios.flatMap(_._1.toList).collect {
case d : execute.FailureDetails => d
case d : execute.FailureSeqDetails => d
case d : execute.FailureSetDetails => d
case d : execute.FailureMapDetails => d
}.headOption.getOrElse(execute.NoDetails)
}
/**
* Remove failure details from collected data
*/
def removeDetails(fq: FreqMap[Set[Any]]): FreqMap[Set[Any]] = {
fq.getCounts.foldLeft(FreqMap.empty[Set[Any]]) { case (res, (set, count)) =>
set.toList match {
case (_:execute.FailureDetails) :: _ => res
case (_:execute.FailureSeqDetails) :: _ => res
case (_:execute.FailureSetDetails) :: _ => res
case (_:execute.FailureMapDetails) :: _ => res
case _ => (1 to count).foldLeft(res) { case (map, i) => map + set }
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy