From 8dd505a5cb9462b3a1689fb93808fecd9b09499a Mon Sep 17 00:00:00 2001 From: Mirco Dotta <mirco.dotta@gmail.com> Date: Fri, 10 Jul 2009 16:24:29 +0000 Subject: [PATCH] updated example used to explain the transformation performed by the FunCheck plugin. --- tmp/InputProgramGeneration.scala | 4 ++-- tmp/OutputProgramGeneration.scala.scala | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/tmp/InputProgramGeneration.scala b/tmp/InputProgramGeneration.scala index e0b2c5350..d4d50f875 100644 --- a/tmp/InputProgramGeneration.scala +++ b/tmp/InputProgramGeneration.scala @@ -19,11 +19,11 @@ object BSTTest { } /** Properties */ - val treeContainsValue = forAll[(BST,Int)]( p => contains(p._2,p._1) == content(p._1).contains(p._2)) + forAll[(BST,Int)]( p => contains(p._2,p._1) == content(p._1).contains(p._2)) /** Program */ @generator - abstract class BST + sealed abstract class BST case class Node(left: BST, right: BST, v: Int) extends BST case class Leaf() extends BST } diff --git a/tmp/OutputProgramGeneration.scala.scala b/tmp/OutputProgramGeneration.scala.scala index 6ed4a3d29..90b072d10 100644 --- a/tmp/OutputProgramGeneration.scala.scala +++ b/tmp/OutputProgramGeneration.scala.scala @@ -29,14 +29,15 @@ object BSTTest { /** Properties */ // removed - //val treeContainsValue = forAll[(BST,Int)]( p => contains(p._2,p._1) == content(p._1).contains(p._2)) + // forAll[(BST,Int)]( p => contains(p._2,p._1) == content(p._1).contains(p._2)) // injected // replaced with ScalaCheck forAll - val treeContainsValue = Prop.forAll( (tree:BST,v:Int) => contains(v,tree) == content(tree).contains(v))(b: Boolean => Prop.propBoolean(b), arbBST, Shrink.shrinkAny[BST], Arbitrary.arbInt, Shrink.shrinkInt) + Console.Prop.forAll( (tree:BST,v:Int) => contains(v,tree) == content(tree).contains(v))(b: Boolean => Prop.propBoolean(b), arbBST, Shrink.shrinkAny[BST], Arbitrary.arbInt, Shrink.shrinkInt) /** Program */ - abstract class BST + @generator + sealed abstract class BST case class Node(left: BST, right: BST, v: Int) extends BST case class Leaf() extends BST @@ -47,13 +48,13 @@ object BSTTest { // Generators def genBST: Gen[BST] = Gen.lzy(Gen.oneOf(genLeaf,genNode)) - val genNode: Gen[Node] = for { + def genNode: Gen[Node] = Gen.lzy(for { left <- genBST right <- genBST v <- Arbitrary.arbitrary[Int] - } yield Node(left,right,v) + } yield Node(left,right,v)) - val genLeaf: Gen[Leaf] = Gen.value(Leaf()) + def genLeaf: Gen[Leaf] = Gen.lzy(Gen.value(Leaf())) // Arbitrary def arbBST: Arbitrary[BST] = Arbitrary(genBST) -- GitLab