From 5dbf500ff823098087046823917f1c3dd6c63b9a Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Wed, 16 Sep 2009 20:26:58 +0000 Subject: 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!" --- test/files/scalacheck/list.scala | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'test/files/scalacheck') 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)) + } + } } -- cgit v1.2.3