File: list.scala

package info (click to toggle)
scala 2.11.12-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 62,924 kB
  • sloc: javascript: 28,808; java: 13,415; xml: 3,135; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (21 lines) | stat: -rw-r--r-- 953 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import org.scalacheck._
import Prop._
import Gen._

object Test extends Properties("List") {
  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).distinct }
  // 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.distinct == List(x))
    }
  }
}