hw-bits-0.1.0.1: test/HaskellWorks/Data/Bits/Log2Spec.hs
{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
{-# LANGUAGE ScopedTypeVariables #-}
module HaskellWorks.Data.Bits.Log2Spec (spec) where
import Data.Word
import HaskellWorks.Data.Bits.Log2
import Test.Hspec
import Test.QuickCheck
{-# ANN module ("HLint: Ignore Redundant do" :: String) #-}
spec :: Spec
spec = describe "HaskellWorks.Data.Bits.Log2Spec" $ do
it "Log2 Word64" $ property $
\(NonZero (w :: Word64)) -> log2 w == floor (log (fromIntegral w) / log 2 :: Double)
it "Log2 Word32" $ property $
\(NonZero (w :: Word32)) -> log2 w == floor (log (fromIntegral w) / log 2 :: Double)