diff options
author | Ruediger Klaehn <rklaehn@gmail.com> | 2012-08-11 10:52:17 +0200 |
---|---|---|
committer | Ruediger Klaehn <rklaehn@gmail.com> | 2012-08-11 10:52:17 +0200 |
commit | cef47262326b2219c429a58f199cfb04ae109422 (patch) | |
tree | c0da5bc00f900875e8b4e0b322cf91f3622530ee | |
parent | 4c255c46fea189de16f10294f4e7176706f454f4 (diff) | |
download | scala-cef47262326b2219c429a58f199cfb04ae109422.tar.gz scala-cef47262326b2219c429a58f199cfb04ae109422.tar.bz2 scala-cef47262326b2219c429a58f199cfb04ae109422.zip |
Added test for SI-6198
This tests that ListSet.tail is O(1) as well as testing that a HashSetCollision1 is turned back into a HashSet1 when removing all but one element
-rw-r--r-- | test/files/run/t6198.check | 0 | ||||
-rw-r--r-- | test/files/run/t6198.scala | 24 |
2 files changed, 24 insertions, 0 deletions
diff --git a/test/files/run/t6198.check b/test/files/run/t6198.check new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/test/files/run/t6198.check diff --git a/test/files/run/t6198.scala b/test/files/run/t6198.scala new file mode 100644 index 0000000000..5aa8f1c1cf --- /dev/null +++ b/test/files/run/t6198.scala @@ -0,0 +1,24 @@ +import scala.collection.immutable._ + +object Test extends App { + // test that ListSet.tail does not use a builder + // we can't test for O(1) behavior, so the best we can do is to + // check that ls.tail always returns the same instance + val ls = ListSet.empty[Int] + 1 + 2 + + if(ls.tail ne ls.tail) + println("ListSet.tail should not use a builder!") + + // class that always causes hash collisions + case class Collision(value:Int) { override def hashCode = 0 } + + // create a set that should have a collison + val x = HashSet.empty + Collision(0) + Collision(1) + if(x.getClass.getSimpleName != "HashSetCollision1") + println("HashSet of size >1 with collisions should use HashSetCollision") + + // remove the collision again by removing all but one element + val y = x - Collision(0) + if(y.getClass.getSimpleName != "HashSet1") + println("HashSet of size 1 should use HashSet1" + y.getClass) +} |