packages feed

keiro-dsl-0.17.0.0: test/conformance-contract-declared-id/Generated/ContractDeclaredId/StructuralConformance.hs

-- @generated by keiro-dsl 0.17.0.0 (language keiro-dsl 6) from context contract-declared-id structural conformance; do not edit.
module Generated.ContractDeclaredId.StructuralConformance
  ( structuralConformanceAssertions
  ) where

import Data.List.NonEmpty qualified as NonEmpty
import Data.Proxy (Proxy (..))
import Keiki.Shape (CanonicalTypeName (..))
import Keiro.Codec.Nominal (nominalDomainRoundTrip, nominalFixtureCases, nominalFixtureDomain, nominalRepresentationRoundTrip, nominalToRepresentation)
import Conformance.ContractDeclaredId.Bindings qualified as Bindings
import Conformance.ContractDeclaredId.Domain (ClaimId)

structuralConformanceAssertions :: [(String, Bool)]
structuralConformanceAssertions =
  concat
    [ claimIdNominalAssertions
    ]

claimIdNominalAssertions :: [(String, Bool)]
claimIdNominalAssertions =
  [ ("nominal domain law: ClaimId", all (nominalDomainRoundTrip Bindings.claimIdBinding . nominalFixtureDomain) cases)
  , ("nominal representation law: ClaimId", all (\fixture -> let domainValue = nominalFixtureDomain fixture in nominalRepresentationRoundTrip Bindings.claimIdBinding (nominalToRepresentation Bindings.claimIdBinding domainValue)) cases)
  , ("nominal canonical identity: ClaimId", canonicalTypeName (Proxy @ClaimId) == "conformance.contract-declared-id.ClaimId.v1")
  ]
  where
    cases = NonEmpty.toList (nominalFixtureCases Bindings.claimIdFixtures)