29 lines
764 B
Haskell
29 lines
764 B
Haskell
|
{-# language TypeApplications #-}
|
||
|
|
||
|
import Data.ByteArray.Builder.Small
|
||
|
import Data.Word
|
||
|
import Data.Char (ord)
|
||
|
import Data.Primitive (ByteArray)
|
||
|
import Test.Tasty (defaultMain,testGroup,TestTree)
|
||
|
import Test.QuickCheck ((===))
|
||
|
import qualified Test.Tasty.QuickCheck as TQC
|
||
|
import qualified Test.QuickCheck as QC
|
||
|
import qualified GHC.Exts as Exts
|
||
|
|
||
|
main :: IO ()
|
||
|
main = defaultMain tests
|
||
|
|
||
|
tests :: TestTree
|
||
|
tests = testGroup "Tests"
|
||
|
[ TQC.testProperty "word64Dec" $ \w ->
|
||
|
run 1 (word64Dec w) === pack (show w)
|
||
|
, TQC.testProperty "word64Dec-x3" $ \x y z ->
|
||
|
run 1 (word64Dec x <> word64Dec y <> word64Dec z)
|
||
|
===
|
||
|
pack (show x ++ show y ++ show z)
|
||
|
]
|
||
|
|
||
|
pack :: String -> ByteArray
|
||
|
pack = Exts.fromList . map (fromIntegral @Int @Word8 . ord)
|
||
|
|