LambdaHack-0.11.0.1: test/LevelUnitTests.hs
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)
]