summaryrefslogtreecommitdiff
path: root/test/files/scalacheck/array.scala
blob: 2febca4447a42f9068bec433cc6e8263b39f45c9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import org.scalacheck._
import Prop._
import Gen._
import Arbitrary._
import util._
import Buildable._

object Test extends Properties("Array") {
  val myGens: Seq[Gen[Array[_]]] = List(
    arbArray[Int],
    arbArray[Array[Int]],
    arbArray[List[String]],
    arbArray[String],
    arbArray[Boolean],
    arbArray[AnyVal](arbAnyVal)
  ) map (_.arbitrary)

  // inspired by #1857 and #2352
  property("eq/ne") =
    forAll(oneOf(myGens: _*)) { c1 =>
      forAll(oneOf(myGens: _*)) { c2 =>
        (c1 eq c2) || (c1 ne c2)
      }
    }

  def smallInt = choose(1, 10)
  // inspired by #2299
  property("ofDim") = forAll(smallInt) { i1 =>
    forAll(smallInt) { i2 =>
      forAll(smallInt) { i3 =>
        val arr = Array.ofDim[String](i1, i2, i3)
        val flattened = arr flatMap (x => x) flatMap (x => x)

        flattened.length == i1 * i2 * i3
      }
    }
  }
}