blob: e352af95f18ce9e2773e1eb1ab7deb955a35b8c9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
// This only tests direct access to the methods in ScalaRunTime,
// not the whole scheme.
object Test
{
import java.{ lang => jl }
import scala.runtime.ScalaRunTime.{ hash }
def allSame[T](xs: List[T]) = assert(xs.distinct.size == 1, "failed: " + xs)
def mkNumbers(x: Int): List[Number] =
List(x.toByte, x.toShort, x, x.toLong, x.toFloat, x.toDouble)
def testLDF(x: Long) = allSame(List[Number](x, x.toDouble, x.toFloat) map hash)
def main(args: Array[String]): Unit = {
List(Byte.MinValue, -1, 0, 1, Byte.MaxValue) foreach { n =>
val hashes = mkNumbers(n) map hash
allSame(hashes)
if (n >= 0) {
val charCode = hash(n.toChar: Character)
assert(charCode == hashes.head)
}
}
testLDF(Short.MaxValue.toLong)
testLDF(Short.MinValue.toLong)
}
}
|