diff options
author | Paul Phillips <paulp@improving.org> | 2012-02-06 11:37:35 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-02-06 11:49:38 -0800 |
commit | 7539c4ee51c25a684399cd5400bf0285e6508fe2 (patch) | |
tree | 94a9eb9b9519417d1924711f56638a4be02f4a2b /test/files/run/ctries/lnode.scala | |
parent | f0dcb3c87fe9c3214af6abe4e8d2032a8d51295c (diff) | |
parent | 93c2d93f4e7aaffaac92bdf14714a6c3871718c9 (diff) | |
download | scala-7539c4ee51c25a684399cd5400bf0285e6508fe2.tar.gz scala-7539c4ee51c25a684399cd5400bf0285e6508fe2.tar.bz2 scala-7539c4ee51c25a684399cd5400bf0285e6508fe2.zip |
Merge branch 'master' into topic/inline
Conflicts:
src/compiler/scala/tools/nsc/Global.scala
test/files/run/programmatic-main.check
Diffstat (limited to 'test/files/run/ctries/lnode.scala')
-rw-r--r-- | test/files/run/ctries/lnode.scala | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/test/files/run/ctries/lnode.scala b/test/files/run/ctries/lnode.scala new file mode 100644 index 0000000000..88cbeed1f6 --- /dev/null +++ b/test/files/run/ctries/lnode.scala @@ -0,0 +1,61 @@ + + + +import collection.mutable.Ctrie + + +object LNodeSpec extends Spec { + + val initsz = 1500 + val secondsz = 1750 + + def test() { + "accept elements with the same hash codes" in { + val ct = new Ctrie[DumbHash, Int] + for (i <- 0 until initsz) ct.update(new DumbHash(i), i) + } + + "lookup elements with the same hash codes" in { + val ct = new Ctrie[DumbHash, Int] + for (i <- 0 until initsz) ct.update(new DumbHash(i), i) + for (i <- 0 until initsz) assert(ct.get(new DumbHash(i)) == Some(i)) + for (i <- initsz until secondsz) assert(ct.get(new DumbHash(i)) == None) + } + + "remove elements with the same hash codes" in { + val ct = new Ctrie[DumbHash, Int] + for (i <- 0 until initsz) ct.update(new DumbHash(i), i) + for (i <- 0 until initsz) { + val remelem = ct.remove(new DumbHash(i)) + assert(remelem == Some(i), "removing " + i + " yields " + remelem) + } + for (i <- 0 until initsz) assert(ct.get(new DumbHash(i)) == None) + } + + "put elements with the same hash codes if absent" in { + val ct = new Ctrie[DumbHash, Int] + for (i <- 0 until initsz) ct.put(new DumbHash(i), i) + for (i <- 0 until initsz) assert(ct.lookup(new DumbHash(i)) == i) + for (i <- 0 until initsz) assert(ct.putIfAbsent(new DumbHash(i), i) == Some(i)) + for (i <- initsz until secondsz) assert(ct.putIfAbsent(new DumbHash(i), i) == None) + for (i <- initsz until secondsz) assert(ct.lookup(new DumbHash(i)) == i) + } + + "replace elements with the same hash codes" in { + val ct = new Ctrie[DumbHash, Int] + for (i <- 0 until initsz) assert(ct.put(new DumbHash(i), i) == None) + for (i <- 0 until initsz) assert(ct.lookup(new DumbHash(i)) == i) + for (i <- 0 until initsz) assert(ct.replace(new DumbHash(i), -i) == Some(i)) + for (i <- 0 until initsz) assert(ct.lookup(new DumbHash(i)) == -i) + for (i <- 0 until initsz) assert(ct.replace(new DumbHash(i), -i, i) == true) + } + + "remove elements with the same hash codes if mapped to a specific value" in { + val ct = new Ctrie[DumbHash, Int] + for (i <- 0 until initsz) assert(ct.put(new DumbHash(i), i) == None) + for (i <- 0 until initsz) assert(ct.remove(new DumbHash(i), i) == true) + } + + } + +} |