neural-0.3.0.1: test/Data/FixedSize/VolumeSpec.hs
{-# LANGUAGE DataKinds #-}
module Data.FixedSize.VolumeSpec (spec) where
import Test.Hspec
import Data.Utils
spec :: Spec
spec = do
indexSpec
generateSpec
indexSpec :: Spec
indexSpec = describe "(!?)" $ do
let v = generate id :: Volume 1 2 3 (Int, Int, Int)
it "should give the specified element of the volume if the index is valid" $ do
v !? (0, 0, 0) `shouldBe` Just (0, 0, 0)
v !? (0, 1, 2) `shouldBe` Just (0, 1, 2)
it "should return Nothing for an invalid index" $ do
v !? (0, 0, 3) `shouldBe` Nothing
v !? (1, 0, 0) `shouldBe` Nothing
generateSpec :: Spec
generateSpec = describe "generate" $
it "should generate a volume" $ do
let v = generate id :: Volume 1 1 3 (Int, Int, Int)
show v `shouldBe` "Volume (Matrix [[[(0,0,0),(0,0,1),(0,0,2)]]])"