blob: 0c305142b110d3d84798a43400be159b6163cf6f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
import scala.collection.generic.{Growable, Shrinkable}
import scala.collection.GenSet
import scala.collection.mutable.FlatHashTable
import scala.collection.mutable.HashSet
import scala.collection.parallel.mutable.ParHashSet
object Test extends dotty.runtime.LegacyApp {
test(new Creator{
def create[A] = new HashSet[A]
def hashSetType = "HashSet"
})
test(new Creator{
def create[A] = new ParHashSet[A]
def hashSetType = "ParHashSet"
})
def test(creator : Creator): Unit = {
println("*** " + creator.hashSetType + " primitives")
val h1 = creator.create[Int]
for (i <- 0 until 20) h1 += i
println((for (i <- 0 until 20) yield i + " " + (h1 contains i)).toList.sorted mkString(","))
println((for (i <- 20 until 40) yield i + " " + (h1 contains i)).toList.sorted mkString(","))
println(h1.toList.sorted mkString ",")
println
println("*** " + creator.hashSetType + " Strings with null")
val h2 = creator.create[String]
h2 += null
for (i <- 0 until 20) h2 += "" + i
println("null " + (h2 contains null))
println((for (i <- 0 until 20) yield i + " " + (h2 contains ("" + i))).toList.sorted mkString(","))
println((for (i <- 20 until 40) yield i + " " + (h2 contains ("" + i))).toList.sorted mkString(","))
println((h2.toList map {x => "" + x}).sorted mkString ",")
h2 -= null
h2 -= "" + 0
println("null " + (h2 contains null))
println((for (i <- 0 until 20) yield i + " " + (h2 contains ("" + i))).toList.sorted mkString(","))
println
}
trait Creator {
def create[A] : GenSet[A] with Cloneable with FlatHashTable[A] with Growable[A] with Shrinkable[A]
def hashSetType : String
}
}
|