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