packages feed

penny 0.32.0.8 → 0.32.0.10

raw patch · 11 files changed

+241/−137 lines, 11 filesdep +tastydep +tasty-quickcheckdep −pretty-showdep ~basedep ~pennyPVP ok

version bump matches the API change (PVP)

Dependencies added: tasty, tasty-quickcheck

Dependencies removed: pretty-show

Dependency ranges changed: base, penny

API changes (from Hackage documentation)

Files

current-versions.txt view
@@ -1,38 +1,39 @@ This package was tested to work with these dependency versions and compiler version. These are the default versions fetched by cabal install.-Tested as of: 2014-04-16 17:16:55.729949 UTC-Path to compiler: ghc-7.6.3-Compiler description: 7.6.3+Tested as of: 2014-04-16 20:08:02.044754 UTC+Path to compiler: ghc-7.8.2+Compiler description: 7.8.2 -/opt/ghc-7.6.3/lib/ghc-7.6.3/package.conf.d:-    Cabal-1.16.0-    array-0.4.0.1-    base-4.6.0.1+/opt/ghc/7.8.2/lib/ghc-7.8.2/package.conf.d:+    Cabal-1.18.1.3+    array-0.5.0.0+    base-4.7.0.0     bin-package-db-0.0.0.0-    binary-0.5.1.1-    bytestring-0.10.0.2-    containers-0.5.0.0-    deepseq-1.3.0.1-    directory-1.2.0.1-    filepath-1.3.0.1-    (ghc-7.6.3)-    ghc-prim-0.3.0.0-    (haskell2010-1.1.1.0)-    (haskell98-2.0.0.2)-    hoopl-3.9.0.0-    hpc-0.6.0.0-    integer-gmp-0.5.0.0-    old-locale-1.0.0.5-    old-time-1.1.0.1-    pretty-1.1.1.0-    process-1.1.0.2+    binary-0.7.1.0     rts-1.0-    template-haskell-2.8.0.0-    time-1.4.0.1-    unix-2.6.0.1+    bytestring-0.10.4.0+    containers-0.5.5.1+    deepseq-1.3.0.2+    directory-1.2.1.0+    filepath-1.3.0.2+    (ghc-7.8.2)+    ghc-prim-0.3.1.0+    (haskell2010-1.1.2.0)+    (haskell98-2.0.0.3)+    hoopl-3.10.0.1+    hpc-0.6.0.1+    integer-gmp-0.5.1.0+    old-locale-1.0.0.6+    old-time-1.1.0.2+    pretty-1.1.1.1+    process-1.2.0.0+    template-haskell-2.9.0.0+    time-1.4.2+    transformers-0.3.0.0+    unix-2.7.0.1 -/home/massysett/penny/sunlight-10948/db:+/home/massysett/penny/sunlight-27946/db:     MonadRandom-0.1.13     QuickCheck-2.6     action-permutations-0.0.0.1@@ -48,7 +49,6 @@     distributive-0.4.3.1     either-4.1.1     hashable-1.2.1.0-    haskell-lexer-1.0     matchers-0.18.0.0     monad-control-0.3.2.3     mtl-2.1.3.1@@ -57,9 +57,8 @@     ofx-0.4.0.2     optparse-applicative-0.8.0.1     parsec-3.1.5-    penny-0.32.0.8+    penny-0.32.0.10     prednote-0.22.0.2-    pretty-show-1.6.7     rainbow-0.14.0.0     rainbox-0.4.0.2     random-1.0.1.1@@ -75,7 +74,6 @@     tasty-quickcheck-0.8     terminfo-0.4.0.0     text-1.1.0.1-    transformers-0.3.0.0     transformers-base-0.4.1     transformers-compat-0.1.1.1     unbounded-delays-0.1.0.7
lib/Penny/Brenner/Clear.hs view
@@ -17,7 +17,6 @@ import Control.Monad.Trans.Class (lift) import qualified Penny.Copper as C import qualified Penny.Copper.Render as R-import Text.Show.Pretty (ppShow) import qualified Penny.Brenner.Types as Y import qualified Penny.Brenner.Util as U @@ -94,7 +93,7 @@       led'' = map C.stripMeta led'   when (not (Set.null left))     (fail $ "some postings were not cleared. "-      ++ "Those not cleared:\n" ++ ppShow left)+      ++ "Those not cleared:\n" ++ show left)   case mapM (R.item Nothing) led'' of     Nothing ->       fail "could not render resulting ledger."
minimum-versions.txt view
@@ -1,7 +1,7 @@ This package was tested to work with these dependency versions and compiler version. These are the minimum versions given in the .cabal file.-Tested as of: 2014-04-16 17:16:55.729949 UTC+Tested as of: 2014-04-16 20:08:02.044754 UTC Path to compiler: ghc-7.4.1 Compiler description: 7.4.1 @@ -33,7 +33,7 @@     time-1.4     unix-2.5.1.0 -/home/massysett/penny/sunlight-10948/db:+/home/massysett/penny/sunlight-27946/db:     MonadRandom-0.1.13     QuickCheck-2.6     action-permutations-0.0.0.0@@ -45,7 +45,6 @@     comonad-3.1     contravariant-0.2.0.1     either-3.4.1-    haskell-lexer-1.0     matchers-0.18.0.0     mtl-2.1.3.1     multiarg-0.24.0.4@@ -53,9 +52,8 @@     ofx-0.4.0.2     optparse-applicative-0.8.0.1     parsec-3.1.3-    penny-0.32.0.8+    penny-0.32.0.10     prednote-0.22.0.2-    pretty-show-1.5     rainbow-0.14.0.0     rainbox-0.4.0.2     random-1.0.0.0@@ -67,7 +65,7 @@     split-0.2.2     stm-2.4.3     tagged-0.7.1-    tasty-0.8.0.4+    tasty-0.8     tasty-quickcheck-0.8     terminfo-0.4.0.0     text-0.11.3.1
penny.cabal view
@@ -3,7 +3,7 @@ -- penny.cabal for you.  Name: penny-Version: 0.32.0.8+Version: 0.32.0.10 Cabal-version: >=1.14 Build-Type: Simple License: BSD3@@ -49,7 +49,7 @@ Library    Build-depends:-      base >= 4.5.0.0 && < 4.7+      base >= 4.5.0.0 && < 4.8      -- Do not try to put comments on same line as data; Cabal does     -- not allow this.@@ -80,7 +80,6 @@     , cereal                    >= 0.3.5.2                  && < 0.5     , contravariant             >= 0.2.0.1           && < 0.5     , either                    >= 3.4.1                  && < 4.2-    , pretty-show               >= 1.5             && < 1.7     , semigroups                >= 0.9.2              && < 0.14    Exposed-modules:@@ -189,15 +188,16 @@   -- http://stackoverflow.com/questions/6711151    build-depends:-      penny           == 0.32.0.8-    , base            >= 4.5.0.0                              && < 4.7+      penny           == 0.32.0.10+    , base            >= 4.5.0.0                              && < 4.8      -- Packages I maintain-    , multiarg        >= 0.24.0.4                          && < 0.27.0.0     , anonymous-sums  >= 0.4.0.0                    && < 0.5      -- Other packages     , QuickCheck      >= 2.6                        && < 2.7+    , tasty           >= 0.8                             && < 0.9+    , tasty-quickcheck >= 0.8                 && < 0.9     , random-shuffle  == 0.0.4     , parsec          >= 3.1.3                            && < 3.2     , semigroups      >= 0.9.2                        && < 0.14@@ -217,8 +217,8 @@    if flag(build-gibberish)     build-depends:-          penny           == 0.32.0.8-        , base            >= 4.5.0.0                          && < 4.7+          penny           == 0.32.0.10+        , base            >= 4.5.0.0                          && < 4.8          -- Packages I maintain         , multiarg        >= 0.24.0.4                      && < 0.27.0.0@@ -243,8 +243,8 @@  Executable penny   Build-depends:-      penny ==0.32.0.8-    , base >= 4.5.0.0                                         && < 4.7+      penny ==0.32.0.10+    , base >= 4.5.0.0                                         && < 4.8    hs-source-dirs: bin   Main-is: penny-main.hs@@ -263,8 +263,8 @@  Executable penny-selloff   Build-depends:-      penny == 0.32.0.8-    , base >= 4.5.0.0                                         && < 4.7+      penny == 0.32.0.10+    , base >= 4.5.0.0                                         && < 4.8    other-modules: Paths_penny   hs-source-dirs: bin@@ -283,8 +283,8 @@  Executable penny-diff   Build-depends:-      penny == 0.32.0.8-    , base >= 4.5.0.0                                         && < 4.7+      penny == 0.32.0.10+    , base >= 4.5.0.0                                         && < 4.8    hs-source-dirs: bin   Main-is: penny-diff.hs@@ -303,8 +303,8 @@  Executable penny-reprint   Build-depends:-      penny == 0.32.0.8-    , base >= 4.5.0.0                                         && < 4.7+      penny == 0.32.0.10+    , base >= 4.5.0.0                                         && < 4.8    hs-source-dirs: bin   main-is: penny-reprint.hs@@ -320,8 +320,8 @@  Executable penny-reconcile   Build-depends:-      penny == 0.32.0.8-    , base >= 4.5.0.0                                         && < 4.7+      penny == 0.32.0.10+    , base >= 4.5.0.0                                         && < 4.8    hs-source-dirs: bin   main-is: penny-reconcile.hs
penny.cabal.m4 view
@@ -80,7 +80,6 @@     , cereal                    >= pv_cereal                  && < pv_cereal_max     , contravariant             >= pv_contravariant           && < pv_contravariant_max     , either                    >= pv_either                  && < pv_either_max-    , pretty-show               >= pv_pretty_show             && < pv_pretty_show_max     , semigroups                >= pv_semigroups              && < pv_semigroups_max    Exposed-modules:@@ -193,11 +192,12 @@     , base            >= pv_base                              && < pv_base_max      -- Packages I maintain-    , multiarg        >= pv_multiarg                          && < pv_multiarg_max     , anonymous-sums  >= pv_anonymous_sums                    && < pv_anonymous_sums_max      -- Other packages     , QuickCheck      >= pv_QuickCheck                        && < pv_QuickCheck_max+    , tasty           >= pv_tasty                             && < pv_tasty_max+    , tasty-quickcheck >= pv_tasty_quickcheck                 && < pv_tasty_quickcheck_max     , random-shuffle  == pv_random_shuffle     , parsec          >= pv_parsec                            && < pv_parsec_max     , semigroups      >= pv_semigroups                        && < pv_semigroups_max
tests/Copper.hs view
@@ -2,7 +2,9 @@  import qualified Copper.Parser as P import qualified Copper.Render as R-import qualified Test.QuickCheck as Q+import Test.Tasty (testGroup, TestTree) -tests :: [(Q.Property -> IO Q.Result) -> IO Bool]-tests = [P.runTests, R.runTests]+testTree :: TestTree+testTree = testGroup "Copper"+  [ P.testTree, R.testTree ]+
tests/Copper/Parser.hs view
@@ -1,5 +1,4 @@ {-# OPTIONS_GHC -fno-warn-missing-signatures #-}-{-# LANGUAGE TemplateHaskell #-} module Copper.Parser where  import Control.Applicative ((<*))@@ -9,12 +8,13 @@ import qualified Penny.Lincoln as L import Penny.Lincoln ((==~)) import qualified Test.QuickCheck as Q-import qualified Test.QuickCheck.All as A import qualified Test.QuickCheck.Property as QCP import Test.QuickCheck (Gen) import qualified Text.Parsec as P import qualified Text.Parsec.Text as P import qualified Data.Text as X+import Test.Tasty.QuickCheck (testProperty)+import Test.Tasty (testGroup, TestTree)  parseProp   :: (Eq b, Show b)@@ -300,6 +300,62 @@         && (fmap fst es' ==~ es)   return $ doParse' CP.transaction (show (tlc, es)) pd x -runTests :: (Q.Property -> IO Q.Result) -> IO Bool-runTests = $(A.forAllProperties)-+testTree :: TestTree+testTree = testGroup "Parser"+  [ testProperty "prop_lvl1SubAcct" prop_lvl1SubAcct+  , testProperty "prop_lvl1FirstSubAcct" prop_lvl1FirstSubAcct+  , testProperty "prop_lvl1OtherSubAcct" prop_lvl1OtherSubAcct+  , testProperty "prop_lvl1Acct" prop_lvl1Acct+  , testProperty "prop_quotedLvl1Acct" prop_quotedLvl1Acct+  , testProperty "prop_lvl2FirstSubAcct" prop_lvl2FirstSubAcct+  , testProperty "prop_lvl2OtherSubAcct" prop_lvl2OtherSubAcct+  , testProperty "prop_lvl2Acct" prop_lvl2Acct+  , testProperty "prop_ledgerAcct" prop_ledgerAcct+  , testProperty "prop_lvl1Cmdty" prop_lvl1Cmdty+  , testProperty "prop_quotedLvl1Cmdty" prop_quotedLvl1Cmdty+  , testProperty "prop_lvl2Cmdty" prop_lvl2Cmdty+  , testProperty "prop_lvl3Cmdty" prop_lvl3Cmdty+  , testProperty "prop_qtyRep" prop_qtyRep+  , testProperty "prop_leftCmdtyLvl1Amt" prop_leftCmdtyLvl1Amt+  , testProperty "prop_leftCmdtyLvl3Amt" prop_leftCmdtyLvl3Amt+  , testProperty "prop_leftSideCmdtyAmt" prop_leftSideCmdtyAmt+  , testProperty "prop_rightSideCmdtyAmt" prop_rightSideCmdtyAmt+  , testProperty "prop_amount" prop_amount+  , testProperty "prop_comment" prop_comment+  , testProperty "prop_year" prop_year+  , testProperty "prop_month" prop_month+  , testProperty "prop_day" prop_day+  , testProperty "prop_date" prop_date+  , testProperty "prop_hours" prop_hours+  , testProperty "prop_minutes" prop_minutes+  , testProperty "prop_seconds" prop_seconds+  , testProperty "prop_time" prop_time+  , testProperty "prop_tzNumber" prop_tzNumber+  , testProperty "prop_timeZone" prop_timeZone+  , testProperty "prop_timeWithZone" prop_timeWithZone+  , testProperty "prop_dateTime" prop_dateTime+  , testProperty "prop_debit" prop_debit+  , testProperty "prop_credit" prop_credit+  , testProperty "prop_drCr" prop_drCr+  , testProperty "prop_entry" prop_entry+  , testProperty "prop_flag" prop_flag+  , testProperty "prop_postingMemoLine" prop_postingMemoLine+  , testProperty "prop_postingMemo" prop_postingMemo+  , testProperty "prop_transactionMemoLine" prop_transactionMemoLine+  , testProperty "prop_transactionMemo" prop_transactionMemo+  , testProperty "prop_number" prop_number+  , testProperty "prop_lvl1Payee" prop_lvl1Payee+  , testProperty "prop_quotedLvl1Payee" prop_quotedLvl1Payee+  , testProperty "prop_lvl2Payee" prop_lvl2Payee+  , testProperty "prop_fromCmdty" prop_fromCmdty+  , testProperty "prop_price" prop_price+  , testProperty "prop_tag" prop_tag+  , testProperty "prop_tags" prop_tags+  , testProperty "prop_topLinePayee" prop_topLinePayee+  , testProperty "prop_topLineFlagNum" prop_topLineFlagNum+  , testProperty "prop_topLineCore" prop_topLineCore+  , testProperty "prop_flagNumPayee" prop_flagNumPayee+  , testProperty "prop_postingAcct" prop_postingAcct+  , testProperty "prop_posting" prop_posting+  , testProperty "prop_transaction" prop_transaction+  ]
tests/Copper/Render.hs view
@@ -1,6 +1,5 @@ {-# OPTIONS_GHC -fno-warn-missing-signatures                 -fno-warn-orphans #-}-{-# LANGUAGE TemplateHaskell #-} module Copper.Render where  import Control.Applicative ((<*))@@ -13,10 +12,11 @@ import qualified Text.Parsec as Ps import qualified Text.Parsec.Text as Ps import qualified Test.QuickCheck as Q-import qualified Test.QuickCheck.All as A import qualified Test.QuickCheck.Property as QCP-import Test.QuickCheck (Gen, arbitrary, Arbitrary)+import Test.QuickCheck (Gen, arbitrary) import Data.Text (Text)+import Test.Tasty.QuickCheck (testProperty)+import Test.Tasty (testGroup, TestTree)  renParse   :: (Eq a, Show a)@@ -173,5 +173,30 @@         (L.PricePoint ydt ypr ysd ysb _)   = xdt == ydt && xpr ==~ ypr && xsd == ysd && xsb == ysb -runTests :: (Q.Property -> IO Q.Result) -> IO Bool-runTests = $(A.forAllProperties)+testTree :: TestTree+testTree = testGroup "Render"+  [ testProperty "prop_quotedLvl1Acct" prop_quotedLvl1Acct+  , testProperty "prop_lvl2Acct" prop_lvl2Acct+  , testProperty "prop_ledgerAcct" prop_ledgerAcct+  , testProperty "prop_quotedLvl1Cmdty" prop_quotedLvl1Cmdty+  , testProperty "prop_lvl2Cmdty" prop_lvl2Cmdty+  , testProperty "prop_lvl3Cmdty" prop_lvl3Cmdty+  , testProperty "prop_qtyRep" prop_qtyRep+  , testProperty "prop_amount" prop_amount+  , testProperty "prop_comment" prop_comment+  , testProperty "prop_dateTime" prop_dateTime+  , testProperty "prop_entry" prop_entry+  , testProperty "prop_flag" prop_flag+  , testProperty "prop_postingMemoLine" prop_postingMemoLine+  , testProperty "prop_postingMemo" prop_postingMemo+  , testProperty "prop_transactionMemoLine" prop_transactionMemoLine+  , testProperty "prop_transactionMemo" prop_transactionMemo+  , testProperty "prop_number" prop_number+  , testProperty "prop_quotedLvl1Payee" prop_quotedLvl1Payee+  , testProperty "prop_lvl2Payee" prop_lvl2Payee+  , testProperty "prop_price" prop_price+  , testProperty "prop_tag" prop_tag+  , testProperty "prop_tags" prop_tags+  , testProperty "prop_topLineCore" prop_topLineCore+  , testProperty "prop_transaction" prop_transaction+  ]
tests/Lincoln.hs view
@@ -1,5 +1,5 @@ {-# OPTIONS_GHC -fno-warn-orphans #-}-{-# LANGUAGE TemplateHaskell, GeneralizedNewtypeDeriving #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}  module Lincoln where @@ -15,7 +15,6 @@ import qualified Test.QuickCheck as Q import qualified Test.QuickCheck.Gen as QG import qualified Test.QuickCheck.Property as QCP-import qualified Test.QuickCheck.All as A import Test.QuickCheck (Gen, Arbitrary, arbitrary, (==>)) import qualified Penny.Lincoln as L import Penny.Lincoln.Equivalent ((==~))@@ -23,6 +22,8 @@ import qualified Data.Text as X import System.Random.Shuffle (shuffle') import qualified Data.Sums as Su+import Test.Tasty.QuickCheck (testProperty)+import Test.Tasty (testGroup, TestTree)  -- -- # Qty@@ -525,7 +526,7 @@  -- | 'views' gives as many views as there were postings -prop_numViews :: L.Ents m -> Bool+prop_numViews :: L.Ents Integer -> Bool prop_numViews t = (length . L.views $ t) == (length . L.unEnts $ t)  newtype NonRestricted a = NonRestricted@@ -553,11 +554,11 @@                        , genRestricted ]  -- | Ents always have at least two postings-prop_twoPostings :: L.Ents a -> Bool+prop_twoPostings :: L.Ents Integer -> Bool prop_twoPostings e = length (L.unEnts e) > 1  -- | Ents are always balanced-prop_balanced :: L.Ents a -> Bool+prop_balanced :: L.Ents Integer -> Bool prop_balanced   = (== L.Balanced)   . L.entriesToBalanced@@ -566,7 +567,7 @@   . L.unEnts  -- | Ents contain no more than one inferred posting-prop_inferred :: L.Ents a -> Bool+prop_inferred :: L.Ents Integer -> Bool prop_inferred t =   (length . filter id . map L.inferred . L.unEnts $ t)   < 2@@ -578,7 +579,7 @@ -- the 'Arbitrary' instance of 'NonRestricted' is behaving as it -- should. -prop_ents :: NonRestricted a -> Bool+prop_ents :: NonRestricted Integer -> Bool prop_ents (NonRestricted ls)   = isJust   . L.ents@@ -586,7 +587,7 @@   $ ls  -- | NonRestricted makes ents with two postings-prop_entsTwoPostings :: NonRestricted a -> Bool+prop_entsTwoPostings :: NonRestricted Integer -> Bool prop_entsTwoPostings (NonRestricted ls)   = case L.ents . map (first (fmap Right)) $ ls of       Nothing -> False@@ -597,9 +598,9 @@ prop_rEnts   :: L.Commodity   -> L.DrCr-  -> (L.Qty, a)-  -> [(L.Qty, a)]-  -> a+  -> (L.Qty, Integer)+  -> [(L.Qty, Integer)]+  -> Integer   -> Bool prop_rEnts c dc pr ls mt =   let t = L.rEnts c dc (first Right pr) (map (first Right) ls) mt@@ -628,7 +629,7 @@   arbitrary = NotInferable <$> genNotInferable  -- | 'ents' fails when given non-inferable entries-prop_entsNonInferable :: Arbitrary a => NotInferable a -> Bool+prop_entsNonInferable :: NotInferable Integer -> Bool prop_entsNonInferable (NotInferable ls) =   isNothing . L.ents . map (first (fmap Right)) $ ls @@ -707,9 +708,22 @@  -- | Adding Balances is associative prop_addBalancesAssociative-  :: L.Balance -> L.Balance -> L.Balance -> Bool-prop_addBalancesAssociative x y z = (x <> (y <> z)) == ((x <> y) <> z)+  :: L.Balance -> L.Balance -> L.Balance -> Q.Property+prop_addBalancesAssociative x y z = Q.printTestCase desc good+  where+    lhs = x <> (y <> z)+    rhs = (x <> y) <> z+    good = lhs == rhs+    desc = labeledList [ ("x", show x), ("y", show y),+            ("z", show z), ("lhs", show lhs),+            ("rhs", show rhs) ] +labeledList :: [(String, String)] -> String+labeledList = concat . map f+  where+    f (lbl, s) = lbl ++ ": " ++ s ++ "\n"++ -- | A mempty balance behaves as it should prop_balMempty :: L.Balance -> Bool prop_balMempty b = (b <> mempty) == b@@ -937,9 +951,57 @@   return . isNothing . L.ents . map (first (fmap Right))          $ esWithInts ------ # runTests----runTests :: (Q.Property -> IO Q.Result) -> IO Bool-runTests = $(A.forAllProperties) +testTree :: TestTree+testTree = testGroup "Lincoln"+  [ testProperty "prop_genMutate" prop_genMutate+  , testProperty "prop_genEquivalent" prop_genEquivalent+  , testProperty "prop_significand" prop_significand+  , testProperty "prop_exponent" prop_exponent+  , testProperty "prop_newQtySucceeds" prop_newQtySucceeds+  , testProperty "prop_qtyToRep" prop_qtyToRep+  , testProperty "prop_genBalQtysTotalX" prop_genBalQtysTotalX+  , testProperty "prop_genBalQtys" prop_genBalQtys+  , testProperty "prop_commutative" prop_commutative+  , testProperty "prop_addSubtract" prop_addSubtract+  , testProperty "prop_addValid" prop_addValid+  , testProperty "prop_multValid" prop_multValid+  , testProperty "prop_genOneValid" prop_genOneValid+  , testProperty "prop_multIdentity" prop_multIdentity+  , testProperty "prop_newQtyBadSignificand" prop_newQtyBadSignificand+  , testProperty "prop_newQtyBadPlaces" prop_newQtyBadPlaces+  , testProperty "prop_differenceValid" prop_differenceValid+  , testProperty "prop_allocateValid" prop_allocateValid+  , testProperty "prop_genNotEquivalent" prop_genNotEquivalent+  , testProperty "prop_newQty" prop_newQty+  , testProperty "prop_sumAllocate" prop_sumAllocate+  , testProperty "prop_numAllocate" prop_numAllocate+  , testProperty "prop_sumLargestRemainder" prop_sumLargestRemainder+  , testProperty "prop_genEntries" prop_genEntries+  , testProperty "prop_balEntries" prop_balEntries+  , testProperty "prop_numViews" prop_numViews+  , testProperty "prop_twoPostings" prop_twoPostings+  , testProperty "prop_balanced" prop_balanced+  , testProperty "prop_inferred" prop_inferred+  , testProperty "prop_ents" prop_ents+  , testProperty "prop_entsTwoPostings" prop_entsTwoPostings+  , testProperty "prop_rEnts" prop_rEnts+  , testProperty "prop_entsNonInferable" prop_entsNonInferable+  , testProperty "prop_price" prop_price+  , testProperty "prop_newPriceDifferent" prop_newPriceDifferent+  , testProperty "prop_newPriceSame" prop_newPriceSame+  , testProperty "prop_addBalancesCommutative" prop_addBalancesCommutative+  , testProperty "prop_addBalancesAssociative" prop_addBalancesAssociative+  , testProperty "prop_balMempty" prop_balMempty+  , testProperty "prop_emptyBalance" prop_emptyBalance+  , testProperty "prop_entriesSameCommodity" prop_entriesSameCommodity+  , testProperty "prop_entriesTwoCommodities" prop_entriesTwoCommodities+  , testProperty "prop_mutateCommodity" prop_mutateCommodity+  , testProperty "prop_notInferableFromBalanced" prop_notInferableFromBalanced+  , testProperty "prop_inferableMutatedDrCr" prop_inferableMutatedDrCr+  , testProperty "prop_inferableMutatedQty" prop_inferableMutatedQty+  , testProperty "prop_balEntriesBalanced" prop_balEntriesBalanced+  , testProperty "prop_balEntriesAndInferable" prop_balEntriesAndInferable+  , testProperty "prop_balEntriesAndNotInferable" prop_balEntriesAndNotInferable+  , testProperty "prop_noEntsNotInferableGroup" prop_noEntsNotInferableGroup+  ]
tests/penny-test.hs view
@@ -2,48 +2,11 @@  import qualified Lincoln as L import qualified Copper as C-import qualified System.Console.MultiArg as MA-import qualified System.Exit as Exit-import qualified Test.QuickCheck as Q--help :: String -> String-help pn = unlines-  [ "usage: " ++ pn ++ "[options]"-  , "runs all QuickCheck tests for Penny."-  , "Returns 0 if all tests succeeded, non-zero otherwise."-  , "Options:"-  , "--size, -s INT"-  , "  Limit QuickCheck size parameter to INT"-  , "--count, -n INT"-  , "  Maximum number of successful tests needed"-  ]--options :: [MA.OptSpec (Q.Args -> Q.Args)]-options =-  [ MA.OptSpec ["size"] "s" . MA.OneArg $ \s -> do-      i <- MA.reader s-      let f a = a { Q.maxSize = i }-      return f+import Test.Tasty (testGroup, TestTree, defaultMain) -  , MA.OptSpec ["count"] "n" . MA.OneArg $ \s -> do-      i <- MA.reader s-      let f a = a { Q.maxSuccess = i }-      return f-  ]+testTree :: TestTree+testTree = testGroup "Penny"+  [ L.testTree, C.testTree ]  main :: IO ()-main = do-  opts <- MA.simpleHelp help options-          MA.Intersperse-          ( const . Left . MA.ErrorMsg-            $ "this command does not accept positional arguments")-  let args = foldl (flip (.)) id opts Q.stdArgs-      runner = Q.quickCheckWithResult args-      acts = map ($ runner) allTests-  bools <- sequence acts-  if and bools-    then Exit.exitSuccess-    else Exit.exitFailure--allTests :: [(Q.Property -> IO Q.Result) -> IO Bool]-allTests = [ L.runTests ] ++ C.tests+main = defaultMain testTree
versions.m4 view
@@ -1,10 +1,10 @@ divert(-1)  # Penny version-define(`pv_penny', `0.32.0.8')+define(`pv_penny', `0.32.0.10')  # Haskell Platform-define(`pv_base', `4.5.0.0')                      define(`pv_base_max', `4.7')+define(`pv_base', `4.5.0.0')                      define(`pv_base_max', `4.8') define(`pv_bytestring', `0.9.2.1')                define(`pv_bytestring_max', `0.11') define(`pv_containers', `0.4.2.1')                define(`pv_containers_max', `0.6') define(`pv_old_locale', `1.0.0.4')                define(`pv_old_locale_max', `1.1')@@ -29,9 +29,10 @@ define(`pv_action_permutations', `0.0.0.0')       define(`pv_action_permutations_max', `0.0.0.2') define(`pv_cereal', `0.3.5.2')                    define(`pv_cereal_max', `0.5') define(`pv_either', `3.4.1')                      define(`pv_either_max', `4.2')-define(`pv_pretty_show', `1.5')                   define(`pv_pretty_show_max', `1.7') define(`pv_random', `1.0.0.0')                    define(`pv_random_max', `1.1') define(`pv_random_shuffle', `0.0.4') define(`pv_semigroups', `0.9.2')                  define(`pv_semigroups_max', `0.14')+define(`pv_tasty', `0.8')                         define(`pv_tasty_max', `0.9')+define(`pv_tasty_quickcheck', `0.8')              define(`pv_tasty_quickcheck_max', `0.9')  divert(1)dnl