+-- Test lists.
+cidr_tests :: TestTree
+cidr_tests =
+ testGroup "CIDR Tests" [
+ test_enumerate,
+ test_min_host1,
+ test_max_host1,
+ test_equality1,
+ test_contains1,
+ test_contains2,
+ test_contains_proper1,
+ test_contains_proper2,
+ test_adjacent1,
+ test_adjacent2,
+ test_adjacent3,
+ test_adjacent4,
+ test_combine_contained1,
+ test_combine_contained2,
+ test_combine_all1,
+ test_combine_all2,
+ test_combine_all3,
+ test_normalize1,
+ test_normalize2,
+ test_normalize3 ]
+
+cidr_properties :: TestTree
+cidr_properties =
+ testGroup "CIDR Properties" [
+ prop_all_cidrs_contain_themselves,
+ prop_contains_proper_antisymmetric,
+ prop_normalize_idempotent ]
+
+
+-- HUnit Tests
+test_enumerate :: TestTree
+test_enumerate =
+ testCase desc $ actual @?= expected
+ where
+ desc = "192.168.0.240/30 is enumerated correctly"
+ oct1 = toEnum 192 :: Octet
+ oct2 = toEnum 168 :: Octet
+ oct3 = minBound :: Octet
+ mk_ip = IPv4Address oct1 oct2 oct3
+ addr1 = mk_ip $ toEnum 240
+ addr2 = mk_ip $ toEnum 241
+ addr3 = mk_ip $ toEnum 242
+ addr4 = mk_ip $ toEnum 243
+ expected = [addr1, addr2, addr3, addr4]
+ actual = enumerate (read "192.168.0.240/30" :: Cidr)
+
+test_min_host1 :: TestTree