diff options
author | Antonio Cunei <antonio.cunei@epfl.ch> | 2011-11-07 09:55:10 +0000 |
---|---|---|
committer | Antonio Cunei <antonio.cunei@epfl.ch> | 2011-11-07 09:55:10 +0000 |
commit | da929738ccfcf21cc3d8fdb9ce7734e59c6847f0 (patch) | |
tree | 90e335ca1fb60fde22ad345df72aeb0f08aace22 /test/files/bench/equality/eqeq.scala | |
parent | c4e1b28cf79f73e4f8972263efb85ee879c39ebd (diff) | |
download | scala-da929738ccfcf21cc3d8fdb9ce7734e59c6847f0.tar.gz scala-da929738ccfcf21cc3d8fdb9ce7734e59c6847f0.tar.bz2 scala-da929738ccfcf21cc3d8fdb9ce7734e59c6847f0.zip |
Backport of r25948
Diffstat (limited to 'test/files/bench/equality/eqeq.scala')
-rwxr-xr-x | test/files/bench/equality/eqeq.scala | 92 |
1 files changed, 46 insertions, 46 deletions
diff --git a/test/files/bench/equality/eqeq.scala b/test/files/bench/equality/eqeq.scala index afccece88a..e1fda69c0c 100755 --- a/test/files/bench/equality/eqeq.scala +++ b/test/files/bench/equality/eqeq.scala @@ -1,46 +1,46 @@ -/** benchmark for testing equality. - * Mix: == between non-numbers ith Object.equals as equality: 66% - * 50% of these are tests where eq is true. - * == between boxed integers: 17% - * == between boxed characters: 5% - * == between boxed bytes: 5% - * == between boxed longs: 5% - * == between boxed shorts: < 1% - * == between boxed floats: < 1% - * == between boxed doubles: < 1% - * In all cases 50% of the tests return true. - */ -object eqeq extends testing.Benchmark { - - def eqeqtest[T](creator: Int => T, n: Int): Int = { - val elems = Array.tabulate[AnyRef](n)(i => creator(i % 2).asInstanceOf[AnyRef]) - - var sum = 0 - var i = 0 - while (i < n) { - var j = 0 - while (j < n) { - if (elems(i) == elems(j)) sum += 1 - j += 1 - } - i += 1 - } - sum - } - - val obj1 = new Object - val obj2 = new Object - - def run() { - var sum = 0 - sum += eqeqtest(x => if (x == 0) obj1 else obj2, 2000) - sum += eqeqtest(x => x, 1000) - sum += eqeqtest(x => x.toChar, 550) - sum += eqeqtest(x => x.toByte, 550) - sum += eqeqtest(x => x.toLong, 550) - sum += eqeqtest(x => x.toShort, 100) - sum += eqeqtest(x => x.toFloat, 100) - sum += eqeqtest(x => x.toDouble, 100) - assert(sum == 2968750) - } -} +/** benchmark for testing equality.
+ * Mix: == between non-numbers ith Object.equals as equality: 66%
+ * 50% of these are tests where eq is true.
+ * == between boxed integers: 17%
+ * == between boxed characters: 5%
+ * == between boxed bytes: 5%
+ * == between boxed longs: 5%
+ * == between boxed shorts: < 1%
+ * == between boxed floats: < 1%
+ * == between boxed doubles: < 1%
+ * In all cases 50% of the tests return true.
+ */
+object eqeq extends testing.Benchmark {
+
+ def eqeqtest[T](creator: Int => T, n: Int): Int = {
+ val elems = Array.tabulate[AnyRef](n)(i => creator(i % 2).asInstanceOf[AnyRef])
+
+ var sum = 0
+ var i = 0
+ while (i < n) {
+ var j = 0
+ while (j < n) {
+ if (elems(i) == elems(j)) sum += 1
+ j += 1
+ }
+ i += 1
+ }
+ sum
+ }
+
+ val obj1 = new Object
+ val obj2 = new Object
+
+ def run() {
+ var sum = 0
+ sum += eqeqtest(x => if (x == 0) obj1 else obj2, 2000)
+ sum += eqeqtest(x => x, 1000)
+ sum += eqeqtest(x => x.toChar, 550)
+ sum += eqeqtest(x => x.toByte, 550)
+ sum += eqeqtest(x => x.toLong, 550)
+ sum += eqeqtest(x => x.toShort, 100)
+ sum += eqeqtest(x => x.toFloat, 100)
+ sum += eqeqtest(x => x.toDouble, 100)
+ assert(sum == 2968750)
+ }
+}
|