fork download
  1. package quickcheck
  2.  
  3. import common._
  4.  
  5. import org.scalacheck._
  6. import Arbitrary._
  7. import Gen._
  8. import Prop._
  9.  
  10. abstract class QuickCheckHeap extends Properties("Heap") with IntHeap {
  11.  
  12. property("min1") = forAll { (a1: Int, a2: Int) =>
  13. val h = insert(a2, insert(a1, empty))
  14. findMin(h) == ord.min(a1, a2)
  15. }
  16.  
  17. property("delete") = forAll { a: Int =>
  18. val h = insert(a+1, insert(a, empty))
  19. isEmpty(deleteMin(deleteMin(h)))
  20. }
  21.  
  22. property("meld1") = forAll { (h1: H, h2: H) =>
  23. (!isEmpty(h1) && !isEmpty(h2)) ==>
  24. (findMin(meld(h1, h2)) == ord.min(findMin(h1), findMin(h2)))
  25. }
  26.  
  27. property("size") = forAll { (h1: H, h2: H) =>
  28. def size(h: H): Int =
  29. if (isEmpty(h)) 0
  30. else 1 + size(deleteMin(h))
  31. size(h1) + size(h2) == size(meld(h1, h2))
  32. }
  33.  
  34. property("deleteAll") = forAll {h: H =>
  35. def aux(x: Int, h: H): Boolean =
  36. isEmpty(h) ||
  37. ord.lteq(x, findMin(h)) && aux(findMin(h), deleteMin(h))
  38. isEmpty(h) || aux(findMin(h), deleteMin(h))
  39. }
  40.  
  41. lazy val genHeap: Gen[H] = oneOf(genFullHeap, value(empty))
  42. lazy val genFullHeap: Gen[H] = for {
  43. x <- arbitrary[Int]
  44. h <- genHeap
  45. } yield insert(x, h)
  46.  
  47. implicit lazy val arbHeap: Arbitrary[H] = Arbitrary(genHeap)
  48.  
  49. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
/opt/scala/bin/scalac: line 50: /dev/null: Permission denied
Main.scala:3: error: not found: object common
import common._
       ^
Main.scala:5: error: object scalacheck is not a member of package org
import org.scalacheck._
           ^
Main.scala:6: error: not found: object Arbitrary
import Arbitrary._
       ^
Main.scala:7: error: not found: object Gen
import Gen._
       ^
Main.scala:8: error: not found: object Prop
import Prop._
       ^
Main.scala:10: error: not found: type Properties
abstract class QuickCheckHeap extends Properties("Heap") with IntHeap {
                                      ^
Main.scala:10: error: not found: type IntHeap
abstract class QuickCheckHeap extends Properties("Heap") with IntHeap {
                                                              ^
Main.scala:10: error: too many arguments for constructor Object: ()Object
abstract class QuickCheckHeap extends Properties("Heap") with IntHeap {
                              ^
Main.scala:12: error: not found: value property
  property("min1") = forAll { (a1: Int, a2: Int) =>
  ^
Main.scala:17: error: not found: value property
  property("delete") = forAll { a: Int =>
  ^
Main.scala:22: error: not found: value property
  property("meld1") = forAll { (h1: H, h2: H) =>
  ^
Main.scala:27: error: not found: value property
  property("size") = forAll { (h1: H, h2: H) =>
  ^
Main.scala:34: error: not found: value property
  property("deleteAll") = forAll {h: H =>
  ^
Main.scala:41: error: not found: type Gen
  lazy val genHeap: Gen[H] = oneOf(genFullHeap, value(empty))
                    ^
Main.scala:41: error: not found: value oneOf
  lazy val genHeap: Gen[H] = oneOf(genFullHeap, value(empty))
                             ^
Main.scala:42: error: not found: type Gen
  lazy val genFullHeap: Gen[H] = for {
                        ^
Main.scala:43: error: not found: value arbitrary
    x <- arbitrary[Int]
         ^
Main.scala:47: error: not found: type Arbitrary
  implicit lazy val arbHeap: Arbitrary[H] = Arbitrary(genHeap)
                             ^
Main.scala:47: error: not found: value Arbitrary
  implicit lazy val arbHeap: Arbitrary[H] = Arbitrary(genHeap)
                                            ^
19 errors found
spoj: The program compiled successfully, but Main.class was not found.
      Class Main should contain method: def main(args: Array[String]).
stdout
Standard output is empty