tests: Journal -> easytest

This commit is contained in:
Simon Michael 2018-09-04 10:10:10 -07:00
parent 0499b3f7e5
commit d5c756e6c8
2 changed files with 26 additions and 37 deletions

View File

@ -52,8 +52,7 @@ import Hledger.Utils.Test
tests_Hledger_Data = TestList tests_Hledger_Data = TestList
[ [
tests_Hledger_Data_Journal tests_Hledger_Data_Ledger
,tests_Hledger_Data_Ledger
,tests_Hledger_Data_Posting ,tests_Hledger_Data_Posting
-- ,tests_Hledger_Data_RawOptions -- ,tests_Hledger_Data_RawOptions
-- ,tests_Hledger_Data_StringFormat -- ,tests_Hledger_Data_StringFormat

View File

@ -68,7 +68,6 @@ module Hledger.Data.Journal (
journalUntieTransactions, journalUntieTransactions,
-- * Tests -- * Tests
samplejournal, samplejournal,
tests_Hledger_Data_Journal,
easytests_Journal, easytests_Journal,
) )
where where
@ -83,7 +82,6 @@ import Data.Functor.Identity (Identity(..))
import qualified Data.HashTable.ST.Cuckoo as HT import qualified Data.HashTable.ST.Cuckoo as HT
import Data.List import Data.List
import Data.List.Extra (groupSort) import Data.List.Extra (groupSort)
-- import Data.Map (findWithDefault)
import Data.Maybe import Data.Maybe
#if !(MIN_VERSION_base(4,11,0)) #if !(MIN_VERSION_base(4,11,0))
import Data.Monoid import Data.Monoid
@ -95,16 +93,14 @@ import qualified Data.Text as T
import Safe (headMay, headDef) import Safe (headMay, headDef)
import Data.Time.Calendar import Data.Time.Calendar
import Data.Tree import Data.Tree
import qualified EasyTest
import System.Time (ClockTime(TOD)) import System.Time (ClockTime(TOD))
import Text.Printf import Text.Printf
import qualified Data.Map as M import qualified Data.Map as M
import Hledger.Utils import Hledger.Utils hiding (is)
import Hledger.Data.Types import Hledger.Data.Types
import Hledger.Data.AccountName import Hledger.Data.AccountName
import Hledger.Data.Amount import Hledger.Data.Amount
-- import Hledger.Data.Commodity
import Hledger.Data.Dates import Hledger.Data.Dates
import Hledger.Data.Transaction import Hledger.Data.Transaction
import Hledger.Data.Posting import Hledger.Data.Posting
@ -881,19 +877,6 @@ journalDateSpan secondary j
pdates = concatMap (catMaybes . map (if secondary then (Just . postingDate2) else pdate) . tpostings) ts pdates = concatMap (catMaybes . map (if secondary then (Just . postingDate2) else pdate) . tpostings) ts
ts = jtxns j ts = jtxns j
test_journalDateSpan = do
"journalDateSpan" ~: do
assertEqual "" (DateSpan (Just $ fromGregorian 2014 1 10) (Just $ fromGregorian 2014 10 11))
(journalDateSpan True j)
where
j = nulljournal{jtxns = [nulltransaction{tdate = parsedate "2014/02/01"
,tpostings = [posting{pdate=Just (parsedate "2014/01/10")}]
}
,nulltransaction{tdate = parsedate "2014/09/01"
,tpostings = [posting{pdate2=Just (parsedate "2014/10/10")}]
}
]}
-- | Apply the pivot transformation to all postings in a journal, -- | Apply the pivot transformation to all postings in a journal,
-- replacing their account name by their value for the given field or tag. -- replacing their account name by their value for the given field or tag.
journalPivot :: Text -> Journal -> Journal journalPivot :: Text -> Journal -> Journal
@ -1077,28 +1060,35 @@ Right samplejournal = journalBalanceTransactions False $
] ]
} }
tests_Hledger_Data_Journal = TestList $ is :: (Eq a, Show a, HasCallStack) => a -> a -> Test ()
[ is = flip expectEq'
test_journalDateSpan
-- "query standard account types" ~:
-- do
-- let j = journal1
-- journalBalanceSheetAccountNames j `is` ["assets","assets:a","equity","equity:q","equity:q:qq","liabilities","liabilities:l"]
-- journalProfitAndLossAccountNames j `is` ["expenses","expenses:e","income","income:i"]
]
easytests_Journal = tests "Journal" [ easytests_Journal = tests "Journal" [
test "standard account types" $ do
test "journalDateSpan" $
journalDateSpan True nulljournal{
jtxns = [nulltransaction{tdate = parsedate "2014/02/01"
,tpostings = [posting{pdate=Just (parsedate "2014/01/10")}]
}
,nulltransaction{tdate = parsedate "2014/09/01"
,tpostings = [posting{pdate2=Just (parsedate "2014/10/10")}]
}
]
}
`is` (DateSpan (Just $ fromGregorian 2014 1 10) (Just $ fromGregorian 2014 10 11))
,tests "standard account type queries" $
let let
j = samplejournal j = samplejournal
journalAccountNamesMatching :: Query -> Journal -> [AccountName] journalAccountNamesMatching :: Query -> Journal -> [AccountName]
journalAccountNamesMatching q = filter (q `matchesAccount`) . journalAccountNames journalAccountNamesMatching q = filter (q `matchesAccount`) . journalAccountNames
namesfrom qfunc = journalAccountNamesMatching (qfunc j) j namesfrom qfunc = journalAccountNamesMatching (qfunc j) j
EasyTest.tests in [
[ test "assets" $ expectEq (namesfrom journalAssetAccountQuery) ["assets","assets:bank","assets:bank:checking","assets:bank:saving","assets:cash"] test "assets" $ expectEq (namesfrom journalAssetAccountQuery) ["assets","assets:bank","assets:bank:checking","assets:bank:saving","assets:cash"]
, test "liabilities" $ expectEq (namesfrom journalLiabilityAccountQuery) ["liabilities","liabilities:debts"] ,test "liabilities" $ expectEq (namesfrom journalLiabilityAccountQuery) ["liabilities","liabilities:debts"]
, test "equity" $ expectEq (namesfrom journalEquityAccountQuery) [] ,test "equity" $ expectEq (namesfrom journalEquityAccountQuery) []
, test "income" $ expectEq (namesfrom journalIncomeAccountQuery) ["income","income:gifts","income:salary"] ,test "income" $ expectEq (namesfrom journalIncomeAccountQuery) ["income","income:gifts","income:salary"]
, test "expenses" $ expectEq (namesfrom journalExpenseAccountQuery) ["expenses","expenses:food","expenses:supplies"] ,test "expenses" $ expectEq (namesfrom journalExpenseAccountQuery) ["expenses","expenses:food","expenses:supplies"]
] ]
] ]