data types and serialization for metadata
A very haskell commit! Just data types, instances to serialize the metadata to a nice format, and QuickCheck tests. This commit was sponsored by Andreas Leha.
This commit is contained in:
parent
655549af91
commit
1b79d18a40
4 changed files with 221 additions and 1 deletions
|
@ -1,6 +1,6 @@
|
|||
{- QuickCheck with additional instances
|
||||
-
|
||||
- Copyright 2012 Joey Hess <joey@kitenet.net>
|
||||
- Copyright 2012-2014 Joey Hess <joey@kitenet.net>
|
||||
-
|
||||
- Licensed under the GNU GPL version 3 or higher.
|
||||
-}
|
||||
|
@ -17,11 +17,15 @@ import Test.QuickCheck as X
|
|||
import Data.Time.Clock.POSIX
|
||||
import System.Posix.Types
|
||||
import qualified Data.Map as M
|
||||
import qualified Data.Set as S
|
||||
import Control.Applicative
|
||||
|
||||
instance (Arbitrary k, Arbitrary v, Eq k, Ord k) => Arbitrary (M.Map k v) where
|
||||
arbitrary = M.fromList <$> arbitrary
|
||||
|
||||
instance (Arbitrary v, Eq v, Ord v) => Arbitrary (S.Set v) where
|
||||
arbitrary = S.fromList <$> arbitrary
|
||||
|
||||
{- Times before the epoch are excluded. -}
|
||||
instance Arbitrary POSIXTime where
|
||||
arbitrary = nonNegative arbitrarySizedIntegral
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue