diff options
author | Erik Rozendaal <erik@deler.org> | 2012-01-15 13:48:00 +0100 |
---|---|---|
committer | Erik Rozendaal <erik@deler.org> | 2012-01-15 14:41:30 +0100 |
commit | 00b5cb84df493aace270674054d2f6ddf3721131 (patch) | |
tree | 2568b2913408feca58cb970b9b1402a4153eeffd /test/files/scalacheck/treeset.scala | |
parent | f26f610278887b842de3a4e4fdafb866dd1afb62 (diff) | |
download | scala-00b5cb84df493aace270674054d2f6ddf3721131.tar.gz scala-00b5cb84df493aace270674054d2f6ddf3721131.tar.bz2 scala-00b5cb84df493aace270674054d2f6ddf3721131.zip |
Optimized implementation of TreeMap/TreeSet#to method.
Performance of `to` and `until` is now the same.
Diffstat (limited to 'test/files/scalacheck/treeset.scala')
-rw-r--r-- | test/files/scalacheck/treeset.scala | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/files/scalacheck/treeset.scala b/test/files/scalacheck/treeset.scala index 7f99aec77e..e6d1b50860 100644 --- a/test/files/scalacheck/treeset.scala +++ b/test/files/scalacheck/treeset.scala @@ -107,6 +107,24 @@ object Test extends Properties("TreeSet") { prefix.forall(_ < 0) && suffix.forall(_ >= 0) && subject == prefix ++ suffix } + property("from is inclusive") = forAll { (subject: TreeSet[Int]) => subject.nonEmpty ==> { + val n = choose(0, subject.size - 1).sample.get + val from = subject.drop(n).firstKey + subject.from(from).firstKey == from && subject.from(from).forall(_ >= from) + }} + + property("to is inclusive") = forAll { (subject: TreeSet[Int]) => subject.nonEmpty ==> { + val n = choose(0, subject.size - 1).sample.get + val to = subject.drop(n).firstKey + subject.to(to).lastKey == to && subject.to(to).forall(_ <= to) + }} + + property("until is exclusive") = forAll { (subject: TreeSet[Int]) => subject.size > 1 ==> { + val n = choose(1, subject.size - 1).sample.get + val until = subject.drop(n).firstKey + subject.until(until).lastKey == subject.take(n).lastKey && subject.until(until).forall(_ <= until) + }} + property("remove single") = forAll { (subject: TreeSet[Int]) => subject.nonEmpty ==> { val element = oneOf(subject.toSeq).sample.get val removed = subject - element |