tests: Journal -> easytest
This commit is contained in:
parent
0499b3f7e5
commit
d5c756e6c8
@ -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
|
||||||
|
|||||||
@ -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"]
|
||||||
]
|
]
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user