mirror of
https://github.com/simonmichael/hledger.git
synced 2024-09-20 02:37:12 +03:00
lib: Added a new transaction to samplejournal.
The new entry effectively adds a loan which is placed in the checking account. This loan is then closed by the "pay off" transaction (which was already present). This is mainly to be used as a test point for the -H option; to make sure -H does not show empty accounts. All previous tests were changed to reflect the new change. The documentation of the journal module was updated too.
This commit is contained in:
parent
a7f6b551c5
commit
9873bcfcba
@ -929,6 +929,10 @@ abspat pat = if isnegativepat pat then drop (length negateprefix) pat else pat
|
||||
-- expenses:supplies $1
|
||||
-- assets:cash
|
||||
--
|
||||
-- 2008/10/01 take a loan
|
||||
-- assets:bank:checking $1
|
||||
-- liabilities:debts $-1
|
||||
--
|
||||
-- 2008/12/31 * pay off
|
||||
-- liabilities:debts $1
|
||||
-- assets:bank:checking
|
||||
@ -1003,6 +1007,22 @@ Right samplejournal = journalBalanceTransactions False $
|
||||
],
|
||||
tpreceding_comment_lines=""
|
||||
}
|
||||
,
|
||||
txnTieKnot $ Transaction {
|
||||
tindex=0,
|
||||
tsourcepos=nullsourcepos,
|
||||
tdate=parsedate "2008/10/01",
|
||||
tdate2=Nothing,
|
||||
tstatus=Unmarked,
|
||||
tcode="",
|
||||
tdescription="take a loan",
|
||||
tcomment="",
|
||||
ttags=[],
|
||||
tpostings=["assets:bank:checking" `post` usd 1
|
||||
,"liabilities:debts" `post` usd (-1)
|
||||
],
|
||||
tpreceding_comment_lines=""
|
||||
}
|
||||
,
|
||||
txnTieKnot $ Transaction {
|
||||
tindex=0,
|
||||
|
@ -93,8 +93,8 @@ ledgerCommodities = M.keys . jinferredcommodities . ljournal
|
||||
tests_ledgerFromJournal = [
|
||||
"ledgerFromJournal" ~: do
|
||||
assertEqual "" (0) (length $ ledgerPostings $ ledgerFromJournal Any nulljournal)
|
||||
assertEqual "" (11) (length $ ledgerPostings $ ledgerFromJournal Any samplejournal)
|
||||
assertEqual "" (6) (length $ ledgerPostings $ ledgerFromJournal (Depth 2) samplejournal)
|
||||
assertEqual "" (13) (length $ ledgerPostings $ ledgerFromJournal Any samplejournal)
|
||||
assertEqual "" (7) (length $ ledgerPostings $ ledgerFromJournal (Depth 2) samplejournal)
|
||||
]
|
||||
|
||||
tests_Hledger_Data_Ledger = TestList $
|
||||
|
@ -213,8 +213,10 @@ tests_balanceReport =
|
||||
,"balanceReport with no args on sample journal" ~: do
|
||||
(defreportopts, samplejournal) `gives`
|
||||
([
|
||||
("assets","assets",0, mamountp' "$-1.00")
|
||||
,("assets:bank:saving","bank:saving",1, mamountp' "$1.00")
|
||||
("assets","assets",0, mamountp' "$0.00")
|
||||
,("assets:bank","bank",1, mamountp' "$2.00")
|
||||
,("assets:bank:checking","checking",2, mamountp' "$1.00")
|
||||
,("assets:bank:saving","saving",2, mamountp' "$1.00")
|
||||
,("assets:cash","cash",1, mamountp' "$-2.00")
|
||||
,("expenses","expenses",0, mamountp' "$2.00")
|
||||
,("expenses:food","food",1, mamountp' "$1.00")
|
||||
@ -222,27 +224,22 @@ tests_balanceReport =
|
||||
,("income","income",0, mamountp' "$-2.00")
|
||||
,("income:gifts","gifts",1, mamountp' "$-1.00")
|
||||
,("income:salary","salary",1, mamountp' "$-1.00")
|
||||
,("liabilities:debts","liabilities:debts",0, mamountp' "$1.00")
|
||||
],
|
||||
Mixed [usd0])
|
||||
|
||||
,"balanceReport with --depth=N" ~: do
|
||||
(defreportopts{depth_=Just 1}, samplejournal) `gives`
|
||||
([
|
||||
("assets", "assets", 0, mamountp' "$-1.00")
|
||||
,("expenses", "expenses", 0, mamountp' "$2.00")
|
||||
("expenses", "expenses", 0, mamountp' "$2.00")
|
||||
,("income", "income", 0, mamountp' "$-2.00")
|
||||
,("liabilities", "liabilities", 0, mamountp' "$1.00")
|
||||
],
|
||||
Mixed [usd0])
|
||||
|
||||
,"balanceReport with depth:N" ~: do
|
||||
(defreportopts{query_="depth:1"}, samplejournal) `gives`
|
||||
([
|
||||
("assets", "assets", 0, mamountp' "$-1.00")
|
||||
,("expenses", "expenses", 0, mamountp' "$2.00")
|
||||
("expenses", "expenses", 0, mamountp' "$2.00")
|
||||
,("income", "income", 0, mamountp' "$-2.00")
|
||||
,("liabilities", "liabilities", 0, mamountp' "$1.00")
|
||||
],
|
||||
Mixed [usd0])
|
||||
|
||||
@ -268,16 +265,13 @@ tests_balanceReport =
|
||||
,"balanceReport with not:desc:" ~: do
|
||||
(defreportopts{query_="not:desc:income"}, samplejournal) `gives`
|
||||
([
|
||||
("assets","assets",0, mamountp' "$-2.00")
|
||||
,("assets:bank","bank",1, Mixed [usd0])
|
||||
,("assets:bank:checking","checking",2,mamountp' "$-1.00")
|
||||
,("assets:bank:saving","saving",2, mamountp' "$1.00")
|
||||
("assets","assets",0, mamountp' "$-1.00")
|
||||
,("assets:bank:saving","bank:saving",1, mamountp' "$1.00")
|
||||
,("assets:cash","cash",1, mamountp' "$-2.00")
|
||||
,("expenses","expenses",0, mamountp' "$2.00")
|
||||
,("expenses:food","food",1, mamountp' "$1.00")
|
||||
,("expenses:supplies","supplies",1, mamountp' "$1.00")
|
||||
,("income:gifts","income:gifts",0, mamountp' "$-1.00")
|
||||
,("liabilities:debts","liabilities:debts",0, mamountp' "$1.00")
|
||||
],
|
||||
Mixed [usd0])
|
||||
|
||||
|
@ -263,17 +263,17 @@ tests_postingsReport = [
|
||||
-- with the query specified explicitly
|
||||
let (query, journal) `gives` n = (length $ snd $ postingsReport defreportopts query journal) `is` n
|
||||
(Any, nulljournal) `gives` 0
|
||||
(Any, samplejournal) `gives` 11
|
||||
(Any, samplejournal) `gives` 13
|
||||
-- register --depth just clips account names
|
||||
(Depth 2, samplejournal) `gives` 11
|
||||
(Depth 2, samplejournal) `gives` 13
|
||||
(And [Depth 1, StatusQ Cleared, Acct "expenses"], samplejournal) `gives` 2
|
||||
(And [And [Depth 1, StatusQ Cleared], Acct "expenses"], samplejournal) `gives` 2
|
||||
|
||||
-- with query and/or command-line options
|
||||
assertEqual "" 11 (length $ snd $ postingsReport defreportopts Any samplejournal)
|
||||
assertEqual "" 9 (length $ snd $ postingsReport defreportopts{interval_=Months 1} Any samplejournal)
|
||||
assertEqual "" 19 (length $ snd $ postingsReport defreportopts{interval_=Months 1, empty_=True} Any samplejournal)
|
||||
assertEqual "" 4 (length $ snd $ postingsReport defreportopts (Acct "assets:bank:checking") samplejournal)
|
||||
assertEqual "" 13 (length $ snd $ postingsReport defreportopts Any samplejournal)
|
||||
assertEqual "" 11 (length $ snd $ postingsReport defreportopts{interval_=Months 1} Any samplejournal)
|
||||
assertEqual "" 20 (length $ snd $ postingsReport defreportopts{interval_=Months 1, empty_=True} Any samplejournal)
|
||||
assertEqual "" 5 (length $ snd $ postingsReport defreportopts (Acct "assets:bank:checking") samplejournal)
|
||||
|
||||
-- (defreportopts, And [Acct "a a", Acct "'b"], samplejournal2) `gives` 0
|
||||
-- [(Just (parsedate "2008-01-01","income"),assets:bank:checking $1,$1)
|
||||
|
@ -55,6 +55,10 @@ Here's an example:
|
||||
expenses:supplies $1 ; <- this transaction debits two expense accounts
|
||||
assets:cash ; <- $-2 inferred
|
||||
|
||||
2008/10/01 take a loan
|
||||
assets:bank:checking $1
|
||||
liabilities:debts $-1
|
||||
|
||||
2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
|
||||
liabilities:debts $1
|
||||
assets:bank:checking
|
||||
|
Loading…
Reference in New Issue
Block a user