import Crc32c (bytes,chunks) import Control.Monad (when) import Data.Primitive (ByteArray) import Data.Word (Word8) import qualified GHC.Exts as Exts main :: IO () main = do let sample1 = Exts.fromList [0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39] let expected1 = 0xe3069283 let actual1 = bytes 0 sample1 when (actual1 /= expected1) $ fail $ "ex1: expected " ++ show expected1 ++ " but got " ++ show actual1 let sample2 = Exts.fromList [ (Exts.fromList [0x31 :: Word8,0x32,0x33]) :: ByteArray , (Exts.fromList [0x34 :: Word8,0x35,0x36,0x37,0x38,0x39]) ] let expected2 = 0xe3069283 let actual2 = chunks 0 sample2 when (actual2 /= expected2) $ fail $ "ex2: expected " ++ show expected2 ++ " but got " ++ show actual2