packages feed

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)