Skip to content

Commit

Permalink
generator is high quality
Browse files Browse the repository at this point in the history
  • Loading branch information
bjornkihlberg committed Mar 24, 2023
1 parent 9e64494 commit 29b500c
Showing 1 changed file with 11 additions and 5 deletions.
Expand Up @@ -14,12 +14,14 @@ import qualified Data.Aeson as Aeson
import qualified Data.Aeson.Key as Aeson.Key
import qualified Data.Aeson.KeyMap as Aeson.KeyMap
import Data.Coerce (coerce)
import Data.Foldable (find)
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Maybe (maybeToList)
import qualified Data.Maybe as Maybe
import Data.String (fromString)
import Data.Text (Text)
import qualified Data.Text as Text
import qualified Data.Text.Encoding as Text.Encoding
import qualified Data.Text.Encoding.Base16 as Base16
import qualified Data.Vector as Vector
Expand Down Expand Up @@ -105,12 +107,16 @@ validityProp = Gen.checkCoverage $

cip25MetadataFileDetailsGenSoundnessProp :: Gen.Property
cip25MetadataFileDetailsGenSoundnessProp = Gen.checkCoverage $
Gen.forAll cip25MetadataFileDetailsJSONRelationGen \(cip25MetadataFileDetails, json) ->
Gen.cover 1.0 (null cip25MetadataFileDetails) "no file details" $
Gen.cover 80.0 (not $ null cip25MetadataFileDetails) "some file details" do
Gen.forAll cip25MetadataFileDetailsJSONRelationGen \(fds, json) ->
Gen.cover 25.0 (Maybe.isJust $ find (\CIP25MetadataFileDetails{..} -> Text.null name) fds) "some file details has empty name" $
Gen.cover 25.0 (Maybe.isJust $ find (\CIP25MetadataFileDetails{..} -> not $ Text.null name) fds) "some file details has name" $
Gen.cover 25.0 (Maybe.isJust $ find (\CIP25MetadataFileDetails{..} -> Text.null mediaType) fds) "some file details has empty mediaType" $
Gen.cover 25.0 (Maybe.isJust $ find (\CIP25MetadataFileDetails{..} -> not $ Text.null mediaType) fds) "some file details has mediaType" $
Gen.cover 1.0 (null fds) "no file details" $
Gen.cover 80.0 (not $ null fds) "some file details" do
let document = Aeson.encode json
Aeson.encode cip25MetadataFileDetails `shouldBe` document
-- Aeson.decode document `shouldBe` Just cip25MetadataFileDetails
Aeson.encode fds `shouldBe` document
-- Aeson.decode document `shouldBe` Just fds

cip25MetadataFileDetailsJSONRelationGen :: Gen ([CIP25MetadataFileDetails], Aeson.Value)
cip25MetadataFileDetailsJSONRelationGen = do
Expand Down

0 comments on commit 29b500c

Please sign in to comment.