File: LevelUnitTests.hs

package info (click to toggle)
haskell-lambdahack 0.11.0.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,056 kB
  • sloc: haskell: 45,636; makefile: 219
file content (37 lines) | stat: -rw-r--r-- 1,252 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
module LevelUnitTests (levelUnitTests) where

import Prelude ()

import Game.LambdaHack.Core.Prelude

import qualified Data.EnumMap.Strict as EM
import           Test.Tasty
import           Test.Tasty.HUnit

import Game.LambdaHack.Common.Level
import Game.LambdaHack.Common.State

import UnitTestHelpers (testLevel, testLevelId)

testDungeonWithLevel :: State
testDungeonWithLevel =
  let singletonDungeonUpdate _ = EM.singleton testLevelId testLevel
      unknownTileState = localFromGlobal emptyState
      oneLevelDungeonState =
        updateDungeon singletonDungeonUpdate unknownTileState
  in oneLevelDungeonState

levelUnitTests :: TestTree
levelUnitTests = testGroup "levelUnitTests"
  [ testCase "testDungeonWithLevel has min level id" $ do
      let ((minKey, _), _) =
            fromJust $ EM.minViewWithKey (sdungeon testDungeonWithLevel)
      minKey @?= testLevelId
  , testCase "testDungeonWithLevel has max level id" $ do
      let ((minKey, _), _) =
            fromJust $ EM.maxViewWithKey (sdungeon testDungeonWithLevel)
      minKey @?= testLevelId
  , testCase "dungeonBounds testDungeonWithLevel returns (0,0)" $ do
      let bounds = dungeonBounds (sdungeon testDungeonWithLevel)
      bounds @?= (testLevelId, testLevelId)
  ]