packages feed

yaya-test 0.3.1.0 → 0.3.1.3

raw patch · 6 files changed

+286/−75 lines, 6 filesdep ~basedep ~yaya

Dependency ranges changed: base, yaya

Files

test/Test/Fold.hs view
@@ -1,15 +1,28 @@ {-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE Unsafe #-}+{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-} -module Test.Fold where+module Test.Fold (tests) where -import           Data.Proxy-import           Hedgehog-import qualified Hedgehog.Gen as Gen+import safe "base" Control.Category (Category (id))+import safe "base" Control.Monad ((=<<))+import safe "base" Data.Bool (Bool)+import safe "base" Data.Function (($))+import safe "base" Data.Proxy (Proxy (Proxy))+import safe "base" System.IO (IO)+import safe "hedgehog" Hedgehog (Property, checkParallel, discover, forAll, property)+import safe qualified "hedgehog" Hedgehog.Gen as Gen+import safe "yaya" Yaya.Fold (Mu)+import safe "yaya" Yaya.Fold.Common (size)+import safe "yaya-hedgehog" Yaya.Hedgehog.Expr (Expr, genExpr, genMuExpr)+import safe "yaya-hedgehog" Yaya.Hedgehog.Fold+  ( law_cataCancel,+    law_cataCompose,+    law_cataRefl,+  ) -import           Yaya.Fold-import           Yaya.Fold.Common-import           Yaya.Hedgehog.Expr-import           Yaya.Hedgehog.Fold+-- TODO: For some reason HLint is complaining that TemplateHaskell is unused.+{-# HLINT ignore "Unused LANGUAGE pragma" #-}  prop_muCataCancel :: Property prop_muCataCancel =@@ -21,9 +34,9 @@  prop_muCataCompose :: Property prop_muCataCompose =-  property-  $ law_cataCompose (Proxy :: Proxy (Mu Expr)) size id-    =<< forAll (Gen.sized genMuExpr)+  property $+    law_cataCompose (Proxy :: Proxy (Mu Expr)) size id+      =<< forAll (Gen.sized genMuExpr)  tests :: IO Bool-tests = checkParallel $$(discover)+tests = checkParallel $$discover
test/Test/Fold/Common.hs view
@@ -1,19 +1,39 @@ {-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE Unsafe #-}+{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-} -module Test.Fold.Common where+module Test.Fold.Common (tests) where -import           Hedgehog-import qualified Hedgehog.Gen as Gen+import safe "base" Control.Category (Category ((.)))+import safe "base" Control.Monad ((=<<))+import safe "base" Data.Bool (Bool)+import safe "base" Data.Functor (Functor (fmap))+import safe "base" Data.Ord (Ord ((<)))+import safe "base" System.IO (IO)+import safe "hedgehog" Hedgehog+  ( Property,+    assert,+    checkParallel,+    discover,+    forAll,+    property,+  )+import safe qualified "hedgehog" Hedgehog.Gen as Gen+import safe "yaya" Yaya.Fold (Recursive (cata), zipAlgebras)+import safe "yaya" Yaya.Fold.Common (height, size)+import safe "yaya" Yaya.Pattern (uncurry)+import safe "yaya-hedgehog" Yaya.Hedgehog.Expr (genMuExpr)+import safe "base" Prelude (Integral (toInteger)) -import           Yaya.Fold-import           Yaya.Fold.Common-import           Yaya.Hedgehog.Expr+-- TODO: For some reason HLint is complaining that TemplateHaskell is unused.+{-# HLINT ignore "Unused LANGUAGE pragma" #-}  prop_heightLtSize :: Property prop_heightLtSize =   property-  (assert . uncurry (<) . fmap toInteger . cata (zipAlgebras height size)-   =<< forAll (Gen.sized genMuExpr))+    ( assert . uncurry (<) . fmap toInteger . cata (zipAlgebras height size)+        =<< forAll (Gen.sized genMuExpr)+    )  tests :: IO Bool-tests = checkParallel $$(discover)+tests = checkParallel $$discover
+ test/Test/Fold/Native.hs view
@@ -0,0 +1,42 @@+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE Unsafe #-}+{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}++module Test.Fold.Native (tests) where++import safe "base" Control.Category (Category (id))+import safe "base" Control.Monad ((=<<))+import safe "base" Data.Bool (Bool)+import safe "base" Data.Function (($))+import safe "base" Data.Proxy (Proxy (Proxy))+import safe "base" System.IO (IO)+import safe "hedgehog" Hedgehog (Property, checkParallel, discover, forAll, property)+import safe qualified "hedgehog" Hedgehog.Gen as Gen+import safe "yaya" Yaya.Fold.Common (size)+import safe "yaya" Yaya.Fold.Native (Fix)+import safe "yaya-hedgehog" Yaya.Hedgehog.Expr (Expr, genExpr, genFixExpr)+import safe "yaya-hedgehog" Yaya.Hedgehog.Fold+  ( law_cataCancel,+    law_cataCompose,+    law_cataRefl,+  )++-- TODO: For some reason HLint is complaining that TemplateHaskell is unused.+{-# HLINT ignore "Unused LANGUAGE pragma" #-}++prop_fixCataCancel :: Property+prop_fixCataCancel =+  property $ law_cataCancel size =<< forAll (genExpr (Gen.sized genFixExpr))++prop_fixCataRefl :: Property+prop_fixCataRefl =+  property $ law_cataRefl =<< forAll (Gen.sized genFixExpr)++prop_fixCataCompose :: Property+prop_fixCataCompose =+  property $+    law_cataCompose (Proxy :: Proxy (Fix Expr)) size id+      =<< forAll (Gen.sized genFixExpr)++tests :: IO Bool+tests = checkParallel $$discover
test/Test/Retrofit.hs view
@@ -1,19 +1,23 @@-{-# LANGUAGE DeriveTraversable-           , TemplateHaskell #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE Unsafe #-}  -- | The point of this module is that it should compile _without_ importing any --   other Yaya modules.-module Test.Retrofit where--import           Hedgehog+module Test.Retrofit (tests) where -import           Yaya.Retrofit+import safe "base" Data.Bool (Bool)+import safe "base" Data.Eq (Eq)+import safe "base" Data.Int (Int)+import safe "base" System.IO (IO)+import safe "base" Text.Show (Show)+import safe "hedgehog" Hedgehog (checkParallel, discover)+import safe "yaya" Yaya.Retrofit (defaultRules, extractPatternFunctor)  data DExpr   = Lit Int   | Add DExpr DExpr   | Mult DExpr DExpr-  deriving (Eq, Show)+  deriving stock (Eq, Show)  extractPatternFunctor defaultRules ''DExpr @@ -28,4 +32,4 @@ --   showsPrec = recursiveShowsPrec  tests :: IO Bool-tests = checkParallel $$(discover)+tests = checkParallel $$discover
test/test.hs view
@@ -1,19 +1,10 @@-import           Control.Monad-import           System.Exit (exitFailure)-import           System.IO (BufferMode(..), hSetBuffering, stdout, stderr)+{-# LANGUAGE Unsafe #-} -import qualified Test.Fold as Fold-import qualified Test.Fold.Common as Fold.Common-import qualified Test.Retrofit as Retrofit+import safe "base" System.IO (IO)+import safe "hedgehog" Hedgehog.Main (defaultMain)+import qualified "this" Test.Fold as Fold+import qualified "this" Test.Fold.Common as Fold.Common+import qualified "this" Test.Retrofit as Retrofit  main :: IO ()-main = do-  hSetBuffering stdout LineBuffering-  hSetBuffering stderr LineBuffering--  results <- sequence [ Fold.tests-                      , Fold.Common.tests-                      , Retrofit.tests-                      ]--  unless (and results) exitFailure+main = defaultMain [Fold.tests, Fold.Common.tests, Retrofit.tests]
yaya-test.cabal view
@@ -1,34 +1,175 @@-name:                yaya-test-version:             0.3.1.0-synopsis:            Test suites for `yaya`.-description:         This package should not be depended on by anything.-homepage:            https://github.com/sellout/yaya#readme-author:              Greg Pfeil-maintainer:          greg@technomadic.org-copyright:           2017 Greg Pfeil-license:             AGPL-3-license-file:        LICENSE-category:            Recursion-build-type:          Simple-cabal-version:       >=1.10+cabal-version:  3.0 -test-suite yaya-test-  type:                exitcode-stdio-1.0-  hs-source-dirs:      test-  main-is:             test.hs-  other-modules:       Test.Fold-                     , Test.Fold.Common-                     , Test.Retrofit-  build-depends:       base >= 4.7 && < 5-                     , deriving-compat-                     , hedgehog-                     , yaya >= 0.3.1-                     , yaya-hedgehog >= 0.2.0-  default-extensions:  LambdaCase-                     , MultiParamTypeClasses-  ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall-  default-language:    Haskell2010+name:        yaya-test+version:     0.3.1.3+synopsis:    Test suites for `yaya`.+description: This package should not be depended on by anything.+author:      Greg Pfeil <greg@technomadic.org>+maintainer:  Greg Pfeil <greg@technomadic.org>+copyright:   2017 Greg Pfeil+homepage:    https://github.com/sellout/yaya#readme+bug-reports: https://github.com/sellout/yaya/issues+category:    Recursion+build-type:  Simple+license:     AGPL-3.0-or-later+license-files:+  LICENSE+tested-with:+  GHC == {+--  GHCup   Nixpkgs+    8.6.1,+    8.8.1,  8.8.4,+    8.10.1,+    9.0.1,+    9.2.1,+    9.4.1,  9.4.8,+    9.6.1,+            9.8.1+  }  source-repository head-  type:     git+  type: git   location: https://github.com/sellout/yaya++-- This mimics the GHC2021 extension+-- (https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html?highlight=doandifthenelse#extension-GHC2021),+-- but supporting compilers back to GHC 7.10. If the oldest supported compiler+-- is GHC 9.2, then this stanza can be removed and `import: GHC2021` can be+-- replaced by `default-language: GHC2021`.+common GHC2021+  default-language: Haskell2010+  default-extensions:+    BangPatterns+    BinaryLiterals+    ConstraintKinds+    DeriveDataTypeable+    DeriveGeneric+    -- DeriveLift -- uncomment if the oldest supported version is GHC 8.10.1++    DeriveTraversable+    DerivingStrategies+    DoAndIfThenElse+    EmptyCase+    ExistentialQuantification+    FlexibleContexts+    FlexibleInstances+    GADTSyntax+    GeneralizedNewtypeDeriving+    HexFloatLiterals+    -- ImportQualifiedPost -- uncomment if the oldest supported version is GHC 8.10.1++    InstanceSigs+    LambdaCase+    MagicHash+    MonadComprehensions+    MonomorphismRestriction+    MultiParamTypeClasses+    NamedFieldPuns+    NamedWildCards+    NumericUnderscores+    PolyKinds+    PostfixOperators+    RankNTypes+    ScopedTypeVariables+    StandaloneDeriving+    -- StandaloneKindSignatures -- uncomment if the oldest supported version is GHC 8.10.1++    TupleSections+    TypeApplications+    TypeOperators+    UnicodeSyntax+    NoExplicitNamespaces++common defaults+  import: GHC2021+  build-depends:+    base ^>= {4.12.0, 4.13.0, 4.14.0, 4.15.0, 4.16.0, 4.17.0, 4.18.0, 4.19.0},+  ghc-options:+    -Weverything+    -- Type inference good.+    -Wno-missing-local-signatures+    -- Warns even when `Unsafe` is explicit, not inferred. See+    -- https://gitlab.haskell.org/ghc/ghc/-/issues/16689+    -Wno-unsafe+    -- TODO: prune these warnings+    -Wno-all-missed-specialisations+    -fpackage-trust+    -trust base+  if impl(ghc < 8.8.1)+    ghc-options:+      -- This used to warn even when `Safe` was explicit.+      -Wno-safe+  if impl(ghc >= 8.10.1)+    ghc-options:+      -- If we didn’t allow inferred-safe imports, nothing would be `Safe`.+      -Wno-inferred-safe-imports+      -- We support GHC versions without qualified-post.+      -Wno-prepositive-qualified-module+      -- `-trust` triggers this warning when applied to transitive dependencies.+      -Wno-unused-packages+  if impl(ghc >= 9.2.1)+    ghc-options:+      -- We support GHC versions without kind signatures.+      -Wno-missing-kind-signatures+  if impl(ghc >= 9.8.1)+    ghc-options:+      -- We support GHC versions without kind signatures.+      -Wno-missing-poly-kind-signatures+      -- Inference good.+      -Wno-missing-role-annotations+  default-extensions:+    DefaultSignatures+    ExplicitNamespaces+    FunctionalDependencies+    LiberalTypeSynonyms+    -- replace with `LexicalNegation` if the oldest supported version is GHC 9.0.1++    NegativeLiterals+    PackageImports+    ParallelListComp+    -- QualifiedDo - uncomment if the oldest supported version is GHC 9.0.1++    RecursiveDo+    -- RequiredTypeArguments - uncomment if the oldest supported version is GHC 9.10.1++    RoleAnnotations+    StrictData+    TemplateHaskellQuotes+    TransformListComp+    NoGeneralizedNewtypeDeriving+    NoImplicitPrelude+    NoMonomorphismRestriction+    NoPatternGuards+    NoTypeApplications++test-suite yaya-test+  import: defaults+  type: exitcode-stdio-1.0+  hs-source-dirs:+    test+  main-is: test.hs+  other-modules:+    Test.Fold+    Test.Fold.Common+    Test.Fold.Native+    Test.Retrofit+  build-depends:+    deriving-compat,+    hedgehog,+    yaya >= 0.5.0,+    yaya-hedgehog >= 0.2.0,+  ghc-options:+    -rtsopts+    -threaded+    -trust adjunctions+    -trust array+    -trust base-orphans+    -trust binary+    -trust bytestring+    -trust containers+    -trust distributive+    -trust exceptions+    -trust ghc-prim+    -trust profunctors+    -trust semigroupoids+    -trust stm+    -trust text+    -trust transformers-compat+    -with-rtsopts=-N+  if impl(ghc < 9.6)+    ghc-options:+      -trust foldable1-classes-compat