summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2009-09-16 20:26:58 +0000
committerPaul Phillips <paulp@improving.org>2009-09-16 20:26:58 +0000
commit5dbf500ff823098087046823917f1c3dd6c63b9a (patch)
tree31b2a1510ee03a1bdbf9f94c7e3b4d0d2af0a5df
parent7c589dcde6cfff6010f2837bdd1d33459dec5f58 (diff)
downloadscala-5dbf500ff823098087046823917f1c3dd6c63b9a.tar.gz
scala-5dbf500ff823098087046823917f1c3dd6c63b9a.tar.bz2
scala-5dbf500ff823098087046823917f1c3dd6c63b9a.zip
Added some more scalacheck tests to list, incid...
Added some more scalacheck tests to list, incidentally inspiring millions of commit log readers to say out loud "hey, I could be writing tests like those!"
-rw-r--r--test/files/scalacheck/list.scala16
1 files changed, 15 insertions, 1 deletions
diff --git a/test/files/scalacheck/list.scala b/test/files/scalacheck/list.scala
index bf38626d45..87ecd70a48 100644
--- a/test/files/scalacheck/list.scala
+++ b/test/files/scalacheck/list.scala
@@ -1,7 +1,21 @@
import org.scalacheck._
import Prop._
+import Gen._
object Test extends Properties("List") {
- property("concat") = forAll { (l1: List[Int], l2: List[Int]) => (l1.size + l2.size) == (l1 ::: l2).size }
+ def sorted(xs: List[Int]) = xs sortWith (_ < _)
+
+ property("concat size") = forAll { (l1: List[Int], l2: List[Int]) => (l1.size + l2.size) == (l1 ::: l2).size }
+ property("reverse") = forAll { (l1: List[Int]) => l1.reverse.reverse == l1 }
+ property("toSet") = forAll { (l1: List[Int]) => sorted(l1.toSet.toList) sameElements sorted(l1).removeDuplicates }
+ property("flatten") = forAll { (xxs: List[List[Int]]) => xxs.flatten.length == (xxs map (_.length) sum) }
+ property("startsWith/take") = forAll { (xs: List[Int], count: Int) => xs startsWith (xs take count) }
+ property("endsWith/takeRight") = forAll { (xs: List[Int], count: Int) => xs endsWith (xs takeRight count) }
+ property("fill") = forAll(choose(1, 100)) { count =>
+ forAll { (x: Int) =>
+ val xs = List.fill(count)(x)
+ (xs.length == count) && (xs.removeDuplicates == List(x))
+ }
+ }
}