octet_tests )
where
-import Test.QuickCheck ( Gen ) -- Not re-exported by tasty
import Test.Tasty ( TestTree, testGroup )
import Test.Tasty.HUnit ( (@?=), testCase )
import Test.Tasty.QuickCheck (
- Arbitrary(..),
+ Arbitrary( arbitrary ),
+ Gen,
Property,
(==>),
testProperty )
-import Bit as B (Bit(..))
-import Maskable (Maskable(..))
-import Maskbits (Maskbits(..))
+import Bit as B( Bit( Zero, One) )
+import Maskable( Maskable( apply_mask) )
+import Maskbits(
+ Maskbits( Zero, One, Two, Three, Four, Five, Six, Seven, Eight ) )
-- | An Octet consists of eight bits. For our purposes, the most
-- significant bit will come "first." That is, b1 is in the 2^7
octet_tests :: TestTree
octet_tests =
testGroup "Octet Tests" [
- test_octet_from_int1,
+ test_octet_to_enum1,
test_octet_mask1,
test_octet_mask2 ]
-- HUnit Tests
-test_octet_from_int1 :: TestTree
-test_octet_from_int1 =
+test_octet_to_enum1 :: TestTree
+test_octet_to_enum1 =
testCase desc $ actual @?= expected
where
- desc = "octet_from_int 128 should parse as 10000000"
+ desc = "toEnum 128 should parse as 10000000"
expected = Octet B.One B.Zero B.Zero B.Zero B.Zero B.Zero B.Zero B.Zero
- actual = toEnum 128
+ actual = toEnum 128 :: Octet
test_octet_mask1 :: TestTree
where
desc = "The network bits of 255/4 should equal 240"
expected = toEnum 240 :: Octet
- actual = apply_mask (toEnum 255) Four B.Zero
+ actual = apply_mask (toEnum 255) Four B.Zero :: Octet
test_octet_mask2 :: TestTree
where
desc = "The network bits of 255/1 should equal 128"
expected = toEnum 128 :: Octet
- actual = apply_mask (toEnum 255) Maskbits.One B.Zero
+ actual = apply_mask (toEnum 255) Maskbits.One B.Zero :: Octet