diff --git a/tmp/InputProgramGeneration.scala b/tmp/InputProgramGeneration.scala index e0b2c535044c9d572bf64dc122ad82d8efe35123..d4d50f875035531ba0f1fcb8c22b01c30cc05163 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 6ed4a3d29ce81f238b2bac6e77c2cc419c323f35..90b072d102d30e73a54592dda9c942cbd88a806a 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)