Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 12th, 2012  |  syntax: None  |  size: 1.33 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. -- properties
  2. prop_min::Ord a => [a] -> Property
  3. prop_min xs = (not . null) xs
  4.               ==> minimum xs == (findMin $ inserts Empty xs)
  5.  
  6. prop_del::Ord a => [a] -> Property
  7. prop_del xs = (not . null) xs && (not . null) (tail xs)
  8.               ==>  sort xs !! 1 == (findMin
  9.                                    $ deleteMin
  10.                                    $ inserts Empty xs)
  11.  
  12. prop_sort::Ord a => [a] -> Bool
  13. prop_sort xs = sort xs == (fromHeap $ inserts Empty xs)
  14.  
  15. -- Actual checks. Some are quite redundant but
  16. -- but there are so easy to create...
  17. check_props = do
  18.   quickCheck (prop_min::[Int] -> Property)
  19.   quickCheck (prop_min::[Integer] -> Property)
  20.   quickCheck (prop_min::[Double] -> Property)
  21.   quickCheck (prop_min::[Float] -> Property)
  22.   quickCheck (prop_min::String -> Property)
  23.   quickCheck (prop_min::[Bool] -> Property)
  24.  
  25.   quickCheck (prop_del::[Int] -> Property)
  26.   quickCheck (prop_del::[Integer] -> Property)
  27.   quickCheck (prop_del::[Double] -> Property)
  28.   quickCheck (prop_del::[Float] -> Property)
  29.   quickCheck (prop_del::String -> Property)
  30.   quickCheck (prop_del::[Bool] -> Property)
  31.  
  32.   quickCheck (prop_sort::[Int] -> Bool)
  33.   quickCheck (prop_sort::[Integer] -> Bool)
  34.   quickCheck (prop_sort::[Double] -> Bool)
  35.   quickCheck (prop_sort::[Float] -> Bool)
  36.   quickCheck (prop_sort::String -> Bool)
  37.   quickCheck (prop_sort::[Bool] -> Bool)