prop-unit 0.2.0 → 1.0.0
raw patch · 6 files changed
+60/−34 lines, 6 filesdep −tasty-hunitdep ~tasty
Dependencies removed: tasty-hunit
Dependency ranges changed: tasty
Files
- prop-unit.cabal +5/−3
- src/PropUnit.hs +29/−25
- src/PropUnit/Hedgehog.hs +7/−0
- src/PropUnit/Hedgehog/Gen.hs +6/−0
- src/PropUnit/Hedgehog/Range.hs +7/−0
- test/Main.hs +6/−6
prop-unit.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: prop-unit-version: 0.2.0+version: 1.0.0 synopsis: Conveniences for using Hedgehog as a unit test runner description: Please see the README on GitHub at <https://github.com/ejconlon/prop-unit#readme> category: Testing@@ -27,6 +27,9 @@ library exposed-modules: PropUnit+ PropUnit.Hedgehog+ PropUnit.Hedgehog.Gen+ PropUnit.Hedgehog.Range other-modules: Paths_prop_unit hs-source-dirs:@@ -104,7 +107,6 @@ , containers , hedgehog >=1.4 && <1.6 , prop-unit- , tasty+ , tasty >=1.4 && <1.6 , tasty-hedgehog ==1.4.*- , tasty-hunit default-language: Haskell2010
src/PropUnit.hs view
@@ -29,7 +29,7 @@ , genDefaultList , genDefaultString , genDefaultGeneric- , Std+ , StdTag ) where @@ -51,9 +51,11 @@ , ShrinkLimit , ShrinkRetries , TestLimit+ , TestT , assert , forAll , property+ , test , withDiscards , withRetries , withShrinks@@ -68,15 +70,16 @@ import Test.Tasty (DependencyType (..), TestName, TestTree, after, defaultMain, testGroup, withResource) import Test.Tasty.Hedgehog (testProperty) -unitProperty :: PropertyT IO () -> Property+unitProperty :: TestT IO () -> Property unitProperty = withTests (1 :: TestLimit) . withDiscards (1 :: DiscardLimit) . withShrinks (0 :: ShrinkLimit) . withRetries (0 :: ShrinkRetries) . property+ . test -testUnit :: TestName -> PropertyT IO () -> TestTree+testUnit :: TestName -> TestT IO () -> TestTree testUnit name = testProperty name . unitProperty testProp :: TestName -> TestLimit -> PropertyT IO () -> TestTree@@ -199,49 +202,50 @@ genDefaultGeneric _ = fmap (unViaGeneric @tag @a) (genDefault (Proxy @tag)) -- | Type tag for these "standard" default generators.--- You can use this tag directly or choose type-by-type with 'ViaTag'.-data Std+-- You can use this tag directly or choose type-by-type with 'genDefaultTag'.+data StdTag -instance GenDefault Std () where genDefault = genDefaultEnum+instance GenDefault StdTag () where genDefault = genDefaultEnum -instance GenDefault Std Bool where genDefault = genDefaultEnum+instance GenDefault StdTag Bool where genDefault = genDefaultEnum -instance GenDefault Std Char where genDefault = genDefaultEnum+instance GenDefault StdTag Char where genDefault = genDefaultEnum -instance GenDefault Std Int where genDefault = genDefaultIntegral+instance GenDefault StdTag Int where genDefault = genDefaultIntegral -instance GenDefault Std Int8 where genDefault = genDefaultIntegral+instance GenDefault StdTag Int8 where genDefault = genDefaultIntegral -instance GenDefault Std Int16 where genDefault = genDefaultIntegral+instance GenDefault StdTag Int16 where genDefault = genDefaultIntegral -instance GenDefault Std Int32 where genDefault = genDefaultIntegral+instance GenDefault StdTag Int32 where genDefault = genDefaultIntegral -instance GenDefault Std Int64 where genDefault = genDefaultIntegral+instance GenDefault StdTag Int64 where genDefault = genDefaultIntegral -instance GenDefault Std Word where genDefault = genDefaultIntegral+instance GenDefault StdTag Word where genDefault = genDefaultIntegral -instance GenDefault Std Word8 where genDefault = genDefaultIntegral+instance GenDefault StdTag Word8 where genDefault = genDefaultIntegral -instance GenDefault Std Word16 where genDefault = genDefaultIntegral+instance GenDefault StdTag Word16 where genDefault = genDefaultIntegral -instance GenDefault Std Word32 where genDefault = genDefaultIntegral+instance GenDefault StdTag Word32 where genDefault = genDefaultIntegral -instance GenDefault Std Word64 where genDefault = genDefaultIntegral+instance GenDefault StdTag Word64 where genDefault = genDefaultIntegral -instance (GenDefault Std a) => GenDefault Std (Maybe a) where genDefault = genDefaultGeneric+instance (GenDefault StdTag a) => GenDefault StdTag (Maybe a) where genDefault = genDefaultGeneric -instance (GenDefault Std a, GenDefault Std b) => GenDefault Std (Either a b) where genDefault = genDefaultGeneric+instance (GenDefault StdTag a, GenDefault StdTag b) => GenDefault StdTag (Either a b) where+ genDefault = genDefaultGeneric -instance (GenDefault Std a, GenDefault Std b) => GenDefault Std (a, b) where genDefault = genDefaultGeneric+instance (GenDefault StdTag a, GenDefault StdTag b) => GenDefault StdTag (a, b) where genDefault = genDefaultGeneric -instance (GenDefault Std a, GenDefault Std b, GenDefault Std c) => GenDefault Std (a, b, c) where+instance (GenDefault StdTag a, GenDefault StdTag b, GenDefault StdTag c) => GenDefault StdTag (a, b, c) where genDefault = genDefaultGeneric -instance (GenDefault Std a, GenDefault Std b, GenDefault Std c, GenDefault Std d) => GenDefault Std (a, b, c, d) where+instance (GenDefault StdTag a, GenDefault StdTag b, GenDefault StdTag c, GenDefault StdTag d) => GenDefault StdTag (a, b, c, d) where genDefault = genDefaultGeneric instance- (GenDefault Std a, GenDefault Std b, GenDefault Std c, GenDefault Std d, GenDefault Std e)- => GenDefault Std (a, b, c, d, e)+ (GenDefault StdTag a, GenDefault StdTag b, GenDefault StdTag c, GenDefault StdTag d, GenDefault StdTag e)+ => GenDefault StdTag (a, b, c, d, e) where genDefault = genDefaultGeneric
+ src/PropUnit/Hedgehog.hs view
@@ -0,0 +1,7 @@+-- | Full re-export of Hedgehog+module PropUnit.Hedgehog+ ( module Hedgehog+ )+where++import Hedgehog
+ src/PropUnit/Hedgehog/Gen.hs view
@@ -0,0 +1,6 @@+module PropUnit.Hedgehog.Gen+ ( module Hedgehog.Gen+ )+where++import Hedgehog.Gen
+ src/PropUnit/Hedgehog/Range.hs view
@@ -0,0 +1,7 @@+-- | Full re-export of Hedgehog.Range+module PropUnit.Hedgehog.Range+ ( module Hedgehog.Range+ )+where++import Hedgehog.Range
test/Main.hs view
@@ -8,12 +8,9 @@ import qualified Data.Set as Set import GHC.Exts (IsList, IsString) import GHC.Generics (Generic)-import Hedgehog (Gen)-import qualified Hedgehog.Gen as Gen-import qualified Hedgehog.Range as Range import PropUnit ( GenDefault (..)- , Std+ , StdTag , TestLimit , TestTree , assert@@ -29,6 +26,9 @@ , testUnit , (===) )+import PropUnit.Hedgehog (Gen)+import qualified PropUnit.Hedgehog.Gen as Gen+import qualified PropUnit.Hedgehog.Range as Range testAsUnit :: TestTree testAsUnit = testUnit "as unit" $ do@@ -51,9 +51,9 @@ data Tag -instance GenDefault Tag Int where genDefault = genDefaultTag (Proxy @Std)+instance GenDefault Tag Int where genDefault = genDefaultTag (Proxy @StdTag) -instance GenDefault Tag Char where genDefault = genDefaultTag (Proxy @Std)+instance GenDefault Tag Char where genDefault = genDefaultTag (Proxy @StdTag) newtype AList a = AList [a] deriving newtype (Eq, Ord, Show, IsList)