29 lines
671 B
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
|