salak-0.3.5.2: test/Salak/TrieSpec.hs
module Salak.TrieSpec(spec) where
import qualified Data.HashMap.Strict as HM
import Salak.Internal
import qualified Salak.Trie as T
import Test.Hspec
spec :: SpecWith ()
spec = do
context "Trie" $ do
it "insert" $ do
let Right keys = toKeys ("a.b.c" :: String)
v = T.insert keys (1 :: Int) T.empty
w = T.alter (\_ -> Just 1) keys T.empty
v `shouldBe` w
T.tvar (T.subTries keys v) `shouldBe` Just 1
it "toList" $ do
let Right keys = toKeys ("a.b.c.d" :: String)
w = T.insert keys (2 :: Int) T.empty
[(k,v)] = T.toList w
k `shouldBe` keys
v `shouldBe` 2
HM.member (KT "a") (T.tmap w) `shouldBe` True