-prop_contains_proper_intransitive :: Cidr -> Cidr -> Property
-prop_contains_proper_intransitive cidr1 cidr2 =
- (cidr1 `contains_proper` cidr2) ==>
- (not (cidr2 `contains_proper` cidr1))
+prop_contains_proper_antisymmetric :: TestTree
+prop_contains_proper_antisymmetric =
+ testProperty "CIDR proper containment is an antisymmetric relation" prop
+ where
+ prop :: Cidr -> Cidr -> Property
+ prop cidr1 cidr2 =
+ (cidr1 `contains_proper` cidr2) ==>
+ (not (cidr2 `contains_proper` cidr1))
+
+
+-- Running "normalize" a second time shouldn't do anything.
+prop_normalize_idempotent :: TestTree
+prop_normalize_idempotent =
+ testProperty "The CIDR \"normalize\" function is idempotent " prop
+ where
+ prop :: Cidr -> Bool
+ prop cidr = (normalize cidr) == (normalize (normalize cidr))