packages feed

typerep-map-0.3.3.0: test/Test/TypeRep/Vector.hs

module Test.TypeRep.Vector
    ( vectorSpec
    ) where

import Prelude hiding (lookup)

import Data.Functor.Identity (Identity (..))
import Test.Hspec (Spec, describe, it, shouldBe)

import Data.TypeRep.Vector (TF (..), fromList, lookup)


-- | Simple test for 'lookup', 'insert' and 'size' functions.
vectorSpec :: Spec
vectorSpec = describe "Vector TypeRep" $
    describe "Lookup Test" $ do
        it "returns the inserted element" $
            lookup (fromList [TF (Identity 'a')]) `shouldBe` Just (Identity 'a')
        it "returns the second inserted value of the same type" $
            lookup (fromList [TF (Identity 'b'), TF (Identity 'a')]) `shouldBe` Just (Identity 'b')