summaryrefslogtreecommitdiff
path: root/test/files/scalacheck/treeset.scala
diff options
context:
space:
mode:
authorErik Rozendaal <erik@deler.org>2012-01-07 19:20:46 +0100
committerErik Rozendaal <erik@deler.org>2012-01-07 19:20:46 +0100
commite61075c4e173d8fad5127e90046f5b91e97c3180 (patch)
tree1f4dc8ff0a289f1bff11dbb6e39531c50e3fc2e5 /test/files/scalacheck/treeset.scala
parent288874d80856317744c582f1468d7af420d9e0ee (diff)
downloadscala-e61075c4e173d8fad5127e90046f5b91e97c3180.tar.gz
scala-e61075c4e173d8fad5127e90046f5b91e97c3180.tar.bz2
scala-e61075c4e173d8fad5127e90046f5b91e97c3180.zip
Tests for takeWhile/dropWhile/span.
Also simplified implementation of span to just use splitAt.
Diffstat (limited to 'test/files/scalacheck/treeset.scala')
-rw-r--r--test/files/scalacheck/treeset.scala15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/files/scalacheck/treeset.scala b/test/files/scalacheck/treeset.scala
index 87c3eb7108..e47a1b6cdd 100644
--- a/test/files/scalacheck/treeset.scala
+++ b/test/files/scalacheck/treeset.scala
@@ -92,6 +92,21 @@ object Test extends Properties("TreeSet") {
prefix == subject.take(n) && suffix == subject.drop(n)
}
+ property("takeWhile") = forAll { (subject: TreeMap[Int, String]) =>
+ val result = subject.takeWhile(_._1 < 0)
+ result.forall(_._1 < 0) && result == subject.take(result.size)
+ }
+
+ property("dropWhile") = forAll { (subject: TreeMap[Int, String]) =>
+ val result = subject.dropWhile(_._1 < 0)
+ result.forall(_._1 >= 0) && result == subject.takeRight(result.size)
+ }
+
+ property("span identity") = forAll { (subject: TreeMap[Int, String]) =>
+ val (prefix, suffix) = subject.span(_._1 < 0)
+ prefix.forall(_._1 < 0) && suffix.forall(_._1 >= 0) && subject == prefix ++ suffix
+ }
+
property("remove single") = forAll { (subject: TreeSet[Int]) => subject.nonEmpty ==> {
val element = oneOf(subject.toSeq).sample.get
val removed = subject - element