From 46848a9b6abbed8d719bd7ef88a8d510675cbb03 Mon Sep 17 00:00:00 2001 From: Ruediger Klaehn Date: Sat, 11 Aug 2012 12:12:56 +0200 Subject: Added test to check that removing all but one element from a HashTrieSet yields a HashSet1 as it should --- test/files/run/t6197.scala | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 test/files/run/t6197.scala (limited to 'test/files/run/t6197.scala') diff --git a/test/files/run/t6197.scala b/test/files/run/t6197.scala new file mode 100644 index 0000000000..5ab4b002d7 --- /dev/null +++ b/test/files/run/t6197.scala @@ -0,0 +1,21 @@ +import scala.collection.immutable._ + +object Test extends App { + + // test that a HashTrieSet with one leaf element is not created! + val x = HashSet.empty + 1 + 2 + if(x.getClass.getSimpleName != "HashTrieSet") + println("A hash set containing two non-colliding values should be a HashTrieSet") + + val y = x - 1 + if(y.getClass.getSimpleName != "HashSet1") + println("A hash set containing one element should always use HashSet1") + + // it is pretty hard to test that the case where a HashTrieSet has one element which + // is itself of type HashTrieS t. That is because the improve hash function makes it very difficult + // to find keys that will have hashes that are close together. + // + // However, it is also not necessary. Removing the ability of a HashTrieSet to have + // one child of type HashTrieSet completely breaks the HashSet, so that many other + // tests fail +} -- cgit v1.2.3