hw-rankselect-base-0.0.0.1: test/HaskellWorks/Data/RankSelect/Binary/BasicGen.hs
{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
{-# LANGUAGE ScopedTypeVariables #-}
module HaskellWorks.Data.Succinct.RankSelect.Binary.BasicGen
( genBinaryRankSelectSpec
, genBinaryRank0Select0Spec
, genBinaryRank1Select1Spec
) where
import Data.Typeable
import HaskellWorks.Data.Bits.BitRead
import HaskellWorks.Data.Succinct.RankSelect.Binary.Basic.Rank0
import HaskellWorks.Data.Succinct.RankSelect.Binary.Basic.Rank0Spec hiding (spec)
import HaskellWorks.Data.Succinct.RankSelect.Binary.Basic.Rank1
import HaskellWorks.Data.Succinct.RankSelect.Binary.Basic.Rank1Spec hiding (spec)
import HaskellWorks.Data.Succinct.RankSelect.Binary.Basic.Select0
import HaskellWorks.Data.Succinct.RankSelect.Binary.Basic.Select0Spec hiding (spec)
import HaskellWorks.Data.Succinct.RankSelect.Binary.Basic.Select1
import HaskellWorks.Data.Succinct.RankSelect.Binary.Basic.Select1Spec hiding (spec)
import Test.Hspec
genBinaryRank1Select1Spec :: forall s. (Typeable s, BitRead s, Rank1 s, Select1 s) => s -> Spec
genBinaryRank1Select1Spec s = describe "For Rank 1" $ do
genRank1UpTo8Spec s
genRank1UpTo16Spec s
genSelect1UpTo8Spec s
genSelect1UpTo16Spec s
genSelect1UpTo32Spec s
genBinaryRank0Select0Spec :: forall s. (Typeable s, BitRead s, Rank0 s, Select0 s) => s -> Spec
genBinaryRank0Select0Spec s = describe "For Rank 0" $ do
genRank0UpTo8Spec s
genRank0UpTo16Spec s
genSelect0UpTo8Spec s
genSelect0UpTo16Spec s
genSelect0UpTo32Spec s
genBinaryRankSelectSpec :: forall s. (Typeable s, BitRead s, Rank0 s, Rank1 s, Select0 s, Select1 s) => s -> Spec
genBinaryRankSelectSpec s = describe "Generically" $ do
genBinaryRank1Select1Spec s
genBinaryRank0Select0Spec s