fix metadata log simplifier and additional quickcheck tests

This commit is contained in:
Joey Hess 2014-02-12 22:27:55 -04:00
parent 4d205b0fb9
commit a05ac13e92
3 changed files with 9 additions and 6 deletions

View file

@ -29,7 +29,7 @@ module Types.MetaData (
getAllMetaData,
serialize,
deserialize,
prop_updateMetaData_sane,
prop_metadata_sane,
prop_metadata_serialize
) where
@ -199,10 +199,13 @@ instance Arbitrary MetaValue where
instance Arbitrary MetaField where
arbitrary = MetaField <$> arbitrary `suchThat` legalField
prop_updateMetaData_sane :: MetaData -> MetaField -> MetaValue -> Bool
prop_updateMetaData_sane m f v = and
prop_metadata_sane :: MetaData -> MetaField -> MetaValue -> Bool
prop_metadata_sane m f v = and
[ S.member v $ getAllMetaData f m'
, not (isSet v) || S.member v (currentMetaDataValues f m')
, not (hasUniqueMetaData m m)
, hasUniqueMetaData newMetaData m'
, not (hasUniqueMetaData m' newMetaData)
]
where
m' = updateMetaData f v m