[SOLVED] CS module ActionTest where

$25

File Name: CS_module_ActionTest_where.zip
File Size: 244.92 KB

5/5 - (1 vote)

module ActionTest where

import Test.Hspec
import Test.Hspec.Contrib.HUnit (fromHUnitTest)
import Test.HUnit
import Test.QuickCheck

import Action

{-
Unit tests.
-}

{-
stepLeft :: Cell -> Step
-}

stepLeftTest1 :: Test
stepLeftTest1 =
TestCase (assertEqual stepLeft (b, 1) (stepLeft (b, 1)) ((b, 1), (a, 1)))

stepLeftTest2 :: Test
stepLeftTest2 =
TestCase (assertEqual stepLeft (e, 2) (stepLeft (e, 2)) ((e, 2), (d, 2)))

{-
stepRight :: Cell -> Step
-}

stepRightTest1 :: Test
stepRightTest1 =
TestCase (assertEqual stepRight (a, 1) (stepRight (a, 1)) ((a, 1), (b, 1)))

stepRightTest2 :: Test
stepRightTest2 =
TestCase (assertEqual stepRight (d, 2) (stepRight (d, 2)) ((d, 2), (e, 2)))

{-
stepTop :: Cell -> Step
-}

stepTopTest1 :: Test
stepTopTest1 =
TestCase (assertEqual stepTop (a, 1) (stepTop (a, 1)) ((a, 1), (a, 2)))

stepTopTest2 :: Test
stepTopTest2 =
TestCase (assertEqual stepTop (d, 2) (stepTop (d, 2)) ((d, 2), (d, 3)))

{-
stepBottom :: Cell -> Step
-}

stepBottomTest1 :: Test
stepBottomTest1 =
TestCase (assertEqual stepBottom (a, 2) (stepBottom (a, 2)) ((a, 2), (a, 1)))

stepBottomTest2 :: Test
stepBottomTest2 =
TestCase (assertEqual stepBottom (d, 3) (stepBottom (d, 3)) ((d, 3), (d, 2)))

{-
wallLeft :: Cell -> Wall
-}

wallLeftTest :: Test
wallLeftTest = let
step1 = ((b, 2), (a, 2))
step2 = ((b, 1), (a, 1)) in
TestCase (assertEqual wallLeft (b, 2) (wallLeft (b, 2)) (step1, step2))

{-
wallRight :: Cell -> Wall
-}

wallRightTest :: Test
wallRightTest = let
step1 = ((b, 2), (c, 2))
step2 = ((b, 3),( c, 3)) in
TestCase (assertEqual wallRight (b, 2) (wallRight (b, 2)) (step1, step2))

{-
wallTop :: Cell -> Wall
-}

wallTopTest :: Test
wallTopTest = let
step1 = ((b, 2), (b, 3))
step2 = ((c, 2), (c, 3)) in
TestCase (assertEqual wallTop (b, 2) (wallTop (b, 2)) (step1, step2))

{-
wallBottom :: Cell -> Wall
-}

wallBottomTest :: Test
wallBottomTest = let
step1 = ((b, 2), (b, 1))
step2 = ((a, 2), (a, 1)) in
TestCase (assertEqual wallBottom (b, 2) (wallBottom (b, 2)) (step1, step2))

All unit tests together.
actionUnitTests :: Spec
actionUnitTests = fromHUnitTest $
TestList [
TestLabel stepLeftTest1 stepLeftTest1,
TestLabel stepLeftTest2 stepLeftTest2,
TestLabel stepRightTest1 stepRightTest1,
TestLabel stepRightTest2 stepRightTest2,
TestLabel stepTopTest1 stepTopTest1,
TestLabel stepTopTest2 stepTopTest2,
TestLabel stepBottomTest1 stepBottomTest1,
TestLabel stepBottomTest2 stepBottomTest2,
TestLabel wallLeftTest wallLeftTest,
TestLabel wallRightTest wallRightTest,
TestLabel wallTopTest wallTopTest,
TestLabel wallBottomTest wallBottomTest]

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] CS module ActionTest where
$25