packages feed

reheat-0.1.5: test/Tests.hs

{-# LANGUAGE CPP, TemplateHaskell #-}
-----------------------------------------------------------------------------
--
-- Module      :  Tests
-- Copyright   :  GPL
-- License     :  GPL Nothing
--
-- Maintainer  :  Ingolf Wagner <palipalo9@gmail.com>
-- Stability   :  experimental
-- Portability :
--
-- |
--
-----------------------------------------------------------------------------

module Tests where

import Control.Monad (unless)
import Data.List (stripPrefix)
import System.Exit (exitFailure)
import Test.QuickCheck.All (quickCheckAll)

import Task

-- Entry point for unit tests.
testMain = do
    allPass <- $quickCheckAll -- Run QuickCheck on all prop_ functions
    unless allPass exitFailure

t1 = Comment "t1" []
t2 = Comment "t2" []
t3 = Comment "t3" []
t4 = Comment "t4" []
t5 = Comment "t5" []
t6 = Comment "t6" []

tasks1 = Tasks [t1,t2,t3,t4,t5,t6] []
tasks2 = Tasks [t1,t3,t2,t4,t5,t6] []
tasks3 = Tasks [t3,t2,t1,t4,t5,t6] []


prop_testSwap1 :: Int -> Int -> Bool
prop_testSwap1 a b = (swapTasks a b (swapTasks a b tasks1)) == tasks1

prop_testSwap2 :: Int -> Int -> Bool
prop_testSwap2 a b = (swapTasks a b tasks1) == (swapTasks b a tasks1)


prop_testSwap3 :: Bool
prop_testSwap3 = (swapTasks 1 2 tasks1) == tasks2

prop_testSwap4 :: Bool
prop_testSwap4 = (swapTasks 1 2 tasks2) == tasks1

prop_testSwap5 :: Bool
prop_testSwap5 = (swapTasks 0 2 tasks1) == tasks3