lila/modules/insight/src/main/Answer.scala

29 lines
671 B
Scala

package lila.insight
import lila.game.{ Game, Pov }
case class Answer[X](
question: Question[X],
clusters: List[Cluster[X]],
povs: List[Pov]
)
// a row per dimension value
case class Cluster[X](
x: X, // dimension value
insight: Insight, // metric values
size: Int, // sample size
insightIds: List[String]
) {
def gameIds = insightIds.map(_ take Game.gameIdSize)
}
sealed trait Insight
object Insight {
case class Single(point: Point) extends Insight
case class Stacked(points: List[(Metric.MetricValueName, Point)]) extends Insight
}
case class Point(y: Double) extends AnyVal