linear-base-0.8.1: test-examples/Test/Simple/Quicksort.hs
{-# LANGUAGE OverloadedStrings #-}
module Test.Simple.Quicksort (quicksortTests) where
import Data.List (sort)
import Hedgehog
import qualified Hedgehog.Gen as Gen
import qualified Hedgehog.Range as Range
import Simple.Quicksort (quicksortUsingArray, quicksortUsingList)
import Test.Tasty
import Test.Tasty.Hedgehog (testPropertyNamed)
quicksortTests :: TestTree
quicksortTests =
testGroup
"quicksort tests"
[ testPropertyNamed "sort xs === quicksortUsingArray xs" "testQuicksortUsingArray" testQuicksortUsingArray,
testPropertyNamed "sort xs === quicksortUsingList xs" "testQuicksortUsingList" testQuicksortUsingList
]
testQuicksortUsingArray :: Property
testQuicksortUsingArray = property $ do
xs <- forAll $ Gen.list (Range.linear 0 1000) (Gen.int $ Range.linear 0 100)
sort xs === quicksortUsingArray xs
testQuicksortUsingList :: Property
testQuicksortUsingList = property $ do
xs <- forAll $ Gen.list (Range.linear 0 1000) (Gen.int $ Range.linear 0 100)
sort xs === quicksortUsingList xs