diff options
author | Joey Hess <joey@kitenet.net> | 2014-02-12 22:27:55 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-02-12 22:27:55 -0400 |
commit | a05ac13e92e842b1c9e8a7273025a2ed7e034e8b (patch) | |
tree | ac48f1e14cb807859c114ded0e1bea8dafc5d1bd /Types/MetaData.hs | |
parent | 4d205b0fb92cf6d6a60c59049d820a2e147a3442 (diff) |
fix metadata log simplifier and additional quickcheck tests
Diffstat (limited to 'Types/MetaData.hs')
-rw-r--r-- | Types/MetaData.hs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/Types/MetaData.hs b/Types/MetaData.hs index 53a9b69446..c701731c98 100644 --- a/Types/MetaData.hs +++ b/Types/MetaData.hs @@ -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 |