{-# LANGUAGE TemplateHaskell #-} import Data.LookupTable import Test.Tasty import Test.Tasty.HUnit import Functions import Data.Word fMemo :: Word8 -> Word8 fMemo = $$(generateLUT f) gMemo :: Word16 -> Double gMemo = $$(generateLUT g) main :: IO () main = defaultMain (testGroup "Unit tests" [ testCase "Word8 -> Word8" $ map f [minBound .. maxBound] @=? map fMemo [minBound .. maxBound] , testCase "Word16 -> Double" $ map g [minBound .. maxBound] @=? map gMemo [minBound .. maxBound] ])