diff options
-rw-r--r-- | tests/Main.hs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/Main.hs b/tests/Main.hs index c887fd64..4045f793 100644 --- a/tests/Main.hs +++ b/tests/Main.hs | |||
@@ -1,3 +1,4 @@ | |||
1 | {-# LANGUAGE OverloadedStrings #-} | ||
1 | module Main (main) where | 2 | module Main (main) where |
2 | 3 | ||
3 | import Data.Word | 4 | import Data.Word |
@@ -30,6 +31,22 @@ prop_bitfieldMaxJust n = | |||
30 | where | 31 | where |
31 | s = fromIntegral n `mod` 1024 | 32 | s = fromIntegral n `mod` 1024 |
32 | 33 | ||
34 | prop_bitfieldMinCases :: Bool | ||
35 | prop_bitfieldMinCases = all mkTestCase | ||
36 | [ ("\x0\x3", Just 8) | ||
37 | , ("\x0\x127", Just 8) | ||
38 | ] | ||
39 | where | ||
40 | mkTestCase (bs, res) = findMin (MkBitfield bs) == res | ||
41 | |||
42 | prop_bitfieldMaxCases :: Bool | ||
43 | prop_bitfieldMaxCases = all mkTestCase | ||
44 | [ ("\x0\x3", Just 9) | ||
45 | , ("\x0\x127", Just 13) | ||
46 | ] | ||
47 | where | ||
48 | mkTestCase (bs, res) = findMax (MkBitfield bs) == res | ||
49 | |||
33 | prop_bitfieldMinJust :: Word -> Bool | 50 | prop_bitfieldMinJust :: Word -> Bool |
34 | prop_bitfieldMinJust n = | 51 | prop_bitfieldMinJust n = |
35 | let m = findMin (full (fromIntegral n `mod` 1024)) in | 52 | let m = findMin (full (fromIntegral n `mod` 1024)) in |
@@ -77,10 +94,13 @@ main = defaultMain $ | |||
77 | [ | 94 | [ |
78 | testProperty "bitfield `difference` empty bitfield" prop_bitfieldDiff0 | 95 | testProperty "bitfield `difference` empty bitfield" prop_bitfieldDiff0 |
79 | , testProperty "empty bitfield `difference` bitfield" prop_bitfieldDiff1 | 96 | , testProperty "empty bitfield `difference` bitfield" prop_bitfieldDiff1 |
97 | |||
80 | , testProperty "prop_bitfieldMinNothing" prop_bitfieldMinNothing | 98 | , testProperty "prop_bitfieldMinNothing" prop_bitfieldMinNothing |
81 | , testProperty "prop_bitfieldMaxNothing" prop_bitfieldMaxNothing | 99 | , testProperty "prop_bitfieldMaxNothing" prop_bitfieldMaxNothing |
82 | , testProperty "prop_bitfieldMaxJust" prop_bitfieldMaxJust | 100 | , testProperty "prop_bitfieldMaxJust" prop_bitfieldMaxJust |
83 | , testProperty "prop_bitfieldMinJust" prop_bitfieldMinJust | 101 | , testProperty "prop_bitfieldMinJust" prop_bitfieldMinJust |
102 | , testProperty "prop_bitfieldMinCases" prop_bitfieldMinCases | ||
103 | , testProperty "prop_bitfieldMaxCases" prop_bitfieldMaxCases | ||
84 | 104 | ||
85 | , testProperty "prop_bitfieldUnionIdentity" prop_bitfieldUnionIdentity | 105 | , testProperty "prop_bitfieldUnionIdentity" prop_bitfieldUnionIdentity |
86 | , testProperty "prop_bitfieldUnionCommutative" prop_bitfieldUnionCommutative | 106 | , testProperty "prop_bitfieldUnionCommutative" prop_bitfieldUnionCommutative |