aboutsummaryrefslogtreecommitdiff
path: root/tests/run/hashCodeDistribution.scala
blob: 284f3d977c49a681d7d46b306a9912dfdc7f1534 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// See ticket #2537.
object Test {
  case class C(x: Int, y: Int) { }
  val COUNT = 300
  val totalCodes = COUNT * COUNT

  def main (args: Array[String]) = {
    val hashCodes =
      for (x <- 0 until COUNT; y <- 0 until COUNT) yield C(x,y).hashCode

    val uniques = hashCodes.distinct
    val collisionRate = (totalCodes - uniques.size) * 1000 / totalCodes

    assert(collisionRate < 5, "Collision rate too high: %d / 1000".format(collisionRate))
    // println("collisionRate = %d / 1000".format(collisionRate))
  }
}