diff options
author | Paul Phillips <paulp@improving.org> | 2012-04-02 13:18:08 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-04-02 13:18:08 -0700 |
commit | 40334826eb573eed527cbd396ab406e7376edbcc (patch) | |
tree | 706a862b6e38f18ac9658ef79492d857d85d4b46 /test/files/run/numbereq.scala | |
parent | 03f32bd22f85bf3a6f8824dbe4a7a989e717c071 (diff) | |
parent | 9452d939331ee28313f0c9b2de260ee32d46af27 (diff) | |
download | scala-40334826eb573eed527cbd396ab406e7376edbcc.tar.gz scala-40334826eb573eed527cbd396ab406e7376edbcc.tar.bz2 scala-40334826eb573eed527cbd396ab406e7376edbcc.zip |
Merge branch 'develop'
Diffstat (limited to 'test/files/run/numbereq.scala')
-rw-r--r-- | test/files/run/numbereq.scala | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/test/files/run/numbereq.scala b/test/files/run/numbereq.scala index 77a217df36..a1f11da205 100644 --- a/test/files/run/numbereq.scala +++ b/test/files/run/numbereq.scala @@ -16,7 +16,20 @@ object Test { base ::: extras } - + + def mkNumbers(x: BigInt): List[AnyRef] = { + List( + List(BigDecimal(x, java.math.MathContext.UNLIMITED)), + List(x), + if (x.isValidDouble) List(new java.lang.Double(x.toDouble)) else Nil, + if (x.isValidFloat) List(new java.lang.Float(x.toFloat)) else Nil, + if (x.isValidLong) List(new java.lang.Long(x.toLong)) else Nil, + if (x.isValidInt) List(new java.lang.Integer(x.toInt)) else Nil, + if (x.isValidShort) List(new java.lang.Short(x.toShort)) else Nil, + if (x.isValidByte) List(new java.lang.Byte(x.toByte)) else Nil, + if (x.isValidChar) List(new java.lang.Character(x.toChar)) else Nil + ).flatten + } def main(args: Array[String]): Unit = { val ints = (0 to 15).toList map (Short.MinValue >> _) @@ -37,5 +50,23 @@ object Test { assert(x == y, "%s/%s != %s/%s".format(x, x.getClass, y, y.getClass)) assert(x.## == y.##, "%s != %s".format(x.getClass, y.getClass)) } + + val bigInts = (0 to 1024).toList map (BigInt(-1) << _) + val bigInts2 = bigInts map (x => -x) + val bigInts3 = bigInts map (_ + 1) + val bigInts4 = bigInts2 map (_ - 1) + + val setneg1b = bigInts map mkNumbers + val setneg2b = bigInts3 map mkNumbers + val setpos1b = bigInts2 map mkNumbers + val setpos2b = bigInts4 map mkNumbers + + val sets2 = setneg1 ++ setneg1b ++ setneg2 ++ setneg2b ++ List(zero) ++ setpos1 ++ setpos1b ++ setpos2 ++ setpos2b + + for (set <- sets2 ; x <- set ; y <- set) { +// println("'%s' == '%s' (%s == %s) (%s == %s)".format(x, y, x.hashCode, y.hashCode, x.##, y.##)) + assert(x == y, "%s/%s != %s/%s".format(x, x.getClass, y, y.getClass)) +// assert(x.## == y.##, "%s != %s".format(x.getClass, y.getClass)) Disable until Double.## is fixed (SI-5640) + } } -}
\ No newline at end of file +} |