packages feed

hunt-searchengine-0.3.0.1: test/Hunt/Index/Helper.hs

module Hunt.Index.Helper where

import           Data.List                      (intersect)

import           Hunt.Common.DocId              (DocId, mkDocId)
import           Hunt.Common.Occurrences
import           Hunt.Common.IntermediateValue

-- ----------------------------------------------------------------------------
-- `Index` test helpers

docId1 :: DocId
docId1 = mkDocId (1::Int)

docId2 :: DocId
docId2 = mkDocId (2::Int)

fromDocId :: DocId -> IntermediateValue
fromDocId docId = toIntermediate $ singleton docId 1

simpleValue :: Int -> IntermediateValue
simpleValue i = toIntermediate $ singleton (mkDocId i) i

simpleValue1 :: IntermediateValue
simpleValue1 = simpleValue 1

simpleValue2 :: IntermediateValue
simpleValue2 = simpleValue 2

simpleValue1b :: IntermediateValue
simpleValue1b = complexValue 1 2

complexValue :: Int -> Int -> IntermediateValue
complexValue id' pos = toIntermediate $ singleton (mkDocId id') pos

complexValues :: IntermediateValue
complexValues = toIntermediate $
                merges [ singleton docId1 1
                       , singleton docId1 2
                       , singleton docId2 10
                       ]

checkResult :: Monad m => [IntermediateValue] -> [(x, IntermediateValue)] -> m Bool
checkResult vs res = return $ vs == (vs `intersect` map snd res)

addKey :: x -> [IntermediateValue] -> [(x, IntermediateValue)]
addKey key = map (\v -> (key, v))