diff options
author | Erik Rozendaal <erik@deler.org> | 2012-01-07 19:20:46 +0100 |
---|---|---|
committer | Erik Rozendaal <erik@deler.org> | 2012-01-07 19:20:46 +0100 |
commit | e61075c4e173d8fad5127e90046f5b91e97c3180 (patch) | |
tree | 1f4dc8ff0a289f1bff11dbb6e39531c50e3fc2e5 /test | |
parent | 288874d80856317744c582f1468d7af420d9e0ee (diff) | |
download | scala-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')
-rw-r--r-- | test/files/scalacheck/treemap.scala | 15 | ||||
-rw-r--r-- | test/files/scalacheck/treeset.scala | 15 |
2 files changed, 30 insertions, 0 deletions
diff --git a/test/files/scalacheck/treemap.scala b/test/files/scalacheck/treemap.scala index 9970bb01aa..7d5f94d58b 100644 --- a/test/files/scalacheck/treemap.scala +++ b/test/files/scalacheck/treemap.scala @@ -96,6 +96,21 @@ object Test extends Properties("TreeMap") { 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: TreeMap[Int, String]) => subject.nonEmpty ==> { val key = oneOf(subject.keys.toSeq).sample.get val removed = subject - key 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 |