packages feed

circe-0.1.0.0: test/Test/Circe/CRC16.hs

{-# LANGUAGE OverloadedStrings #-}

module Test.Circe.CRC16 (tests) where

import Codec.Circe.CRC16
import Codec.Circe.Cfg
--import Data.Vector.Storable (Vector)
import qualified Data.Vector.Storable as V
import Test.Tasty
import Test.Tasty.HUnit

tests :: TestTree
tests = testGroup "CRC16"
  [ crc16UnsafeTest
  , crc16Test
  ]

crc16UnsafeTest :: TestTree
crc16UnsafeTest = testCase "crc16Unsafe" $
  crc16Unsafe (V.fromList t) False 0 "bosscoxwuzhere" @?= 0xbe42
  where
    t = crc16Table 0x1021

crc16Test :: TestTree
crc16Test = testCaseSteps "crc16" $ \step -> do
  step "modbus"
  crc16 crc16Modbus "hello world" @?= 0xddc7