hledger/tests/bin/budget.test
Simon Michael e491f513a1 cli: tabular reports no longer have a trailing blank line added
Tabular reports from bal, bs etc. have until now been rendered on
the terminal with one final blank line, for readability.
This change drops the blank line.

This is consistent with the non-tabular balance and register output
(not print, which is a special case), and with most unix commands.
The real reason for it, which I admit is flimsy, is that I can now omit
the final delimiter (>=0) when using shelltestrunner 1.9's new format,
making functional tests easier to maintain and more readable.
If there's opposition, this could be reverted.
2018-01-23 12:47:56 -08:00

261 lines
8.1 KiB
Plaintext

# Test budget addon
# Rewrite rules within journal always applied
../../bin/hledger-budget bal -f - --no-total -DH budget
<<<
= ^assets:bank$ date:2017/1 amt:<0
assets:bank *0.008
expenses:fee *-0.008 ; cash withdraw fee
= ^expenses:housing
(budget:housing) *-1
= ^expenses:grocery ^expenses:food
(budget:food) *-1
2016/12/31
expenses:housing $600
assets:cash
2017/1/1
expenses:food $20
expenses:leisure $15
expenses:grocery $30
assets:cash
2017/1/2
assets:cash $200.00
assets:bank
2017/2/1
assets:cash $100.00
assets:bank
; order with normal entries doesn't matter
; but relative order matters to refer-rewritten transactions
= ^expenses not:housing not:grocery not:food
(budget:misc) *-1
>>>
Ending balances (historical) in 2016/12/31-2017/01/02:
|| 2016/12/31 2017/01/01 2017/01/02
================++====================================
budget:food || 0 $-50.00 $-50.00
budget:housing || $-600.00 $-600.00 $-600.00
budget:misc || 0 $-15.00 $-16.60
>>>2
>>>=0
# Rewrite rules can chain one another according to order of definition
../../bin/hledger-budget reg -f -
<<<
; unfortunately date override in posting comment doesn't work
= liabilities:credit amt:<0 date:2016/12
liabilities:credit *-1 ; [2017/1/1]
assets:bank *1 ; [2017/1/1]
= liabilities:credit amt:<0 date:2017/1
liabilities:credit *-1 ; [2017/2/1]
assets:bank *1 ; [2017/2/1]
= liabilities:credit amt:<0 date:2017/2
liabilities:credit *-1 ; [2017/3/1]
assets:bank *1 ; [2017/3/1]
= assets:bank date:2017/2 amt:<0
assets:bank *0.008
expenses:fee *-0.008 ; :salary-card: cash withdraw fee
= expenses:fee tag:salary-card date:2017-2017/12/26
income:compensate *-0.5
assets:bank *0.5 ; compensation from employer
2016/12/31
expenses:housing $600
liabilities:credit
2017/1/1
expenses:food $20
expenses:leisure $15
expenses:grocery $30
liabilities:credit
2017/1/2
assets:cash $200.00
liabilities:credit
2017/2/1
assets:cash $100.00
liabilities:credit
>>>
2016/12/31 expenses:housing $600.00 $600.00
liabilities:credit $-600.00 0
liabilities:credit $600.00 $600.00
assets:bank $-600.00 0
2017/01/01 expenses:food $20.00 $20.00
expenses:leisure $15.00 $35.00
expenses:grocery $30.00 $65.00
liabilities:credit $-65.00 0
liabilities:credit $65.00 $65.00
assets:bank $-65.00 0
2017/01/02 assets:cash $200.00 $200.00
liabilities:credit $-200.00 0
liabilities:credit $200.00 $200.00
assets:bank $-200.00 0
2017/02/01 assets:cash $100.00 $100.00
liabilities:credit $-100.00 0
liabilities:credit $100.00 $100.00
assets:bank $-100.00 0
assets:bank $-0.80 $-0.80
expenses:fee $0.80 0
income:compensate $-0.40 $-0.40
assets:bank $0.40 0
>>>2
>>>=0
# Periodical transactions within journal being applied with inverted sign in amounts
# As well, accounts from periodic transaction being used for bucketing
../../bin/hledger-budget bal -f - --no-total -DH expenses
<<<
~ daily from 2016/12/31
expenses:food $8
assets
~ weekly
expenses:leisure $20
expenses:grocery $50
expenses:housing $250
expenses:fee $10
assets
= ^assets:bank$ date:2017/1 amt:<0
assets:bank *0.008
expenses:fee *-0.008 ; cash withdraw fee
2016/12/31
expenses:housing:rent $600
assets:cash
2017/1/1
expenses:food $20
expenses:leisure $15
expenses:grocery $30
assets:cash
2017/1/2
assets:cash $200.00
assets:bank
2017/1/4
assets:cash $100.00
assets:bank
>>>
Ending balances (historical) in 2016/12/26-2017/01/04:
|| 2016/12/26 2016/12/27 2016/12/28 2016/12/29 2016/12/30 2016/12/31 2017/01/01 2017/01/02 2017/01/03 2017/01/04
==================++========================================================================================================================
expenses:fee || $-10 $-10 $-10 $-10 $-10 $-10 $-10 $-18.40 $-18.40 $-17.60
expenses:food || 0 0 0 0 0 $-8 $4.00 $-4.00 $-12.00 $-20.00
expenses:grocery || $-50 $-50 $-50 $-50 $-50 $-50 $-20.00 $-70.00 $-70.00 $-70.00
expenses:housing || $-250 $-250 $-250 $-250 $-250 $350.00 $350.00 $100.00 $100.00 $100.00
expenses:leisure || $-20 $-20 $-20 $-20 $-20 $-20 $-5.00 $-25.00 $-25.00 $-25.00
>>>2
>>>=0
# We still can disable bucketing keeping rewrites and budget offset
../../bin/hledger-budget bal -f - --no-total --no-buckets -DH expenses
<<<
~ daily from 2016/12/31
expenses:food $8
assets
= ^assets:bank$ date:2017/1 amt:<0
assets:bank *0.008
expenses:fee *-0.008 ; cash withdraw fee
2016/12/31
expenses:housing:rent $600
assets:bank
2017/1/1
expenses:food $20
expenses:leisure $15
expenses:grocery $30
assets:bank
>>>
Ending balances (historical) in 2016/12/31-2017/01/01:
|| 2016/12/31 2017/01/01
=======================++========================
expenses:fee || 0 $1
expenses:food || $-8 $4
expenses:grocery || 0 $30
expenses:housing:rent || $600 $600
expenses:leisure || 0 $15
>>>2
>>>=0
# We can disable offset keeping rewrites and bucketing
# Note that original account names used for query
../../bin/hledger-budget bal -f - --no-total --no-offset -DH expenses
<<<
~ daily from 2016/12/31
expenses:food $8
assets
= ^assets:bank$ date:2017/1 amt:<0
assets:bank *0.008
expenses:fee *-0.008 ; cash withdraw fee
2016/12/31
expenses:housing:rent $600
assets:bank
2017/1/1
expenses:food $20
expenses:leisure $15
expenses:grocery $30
assets:bank
>>>
Ending balances (historical) in 2016/12/31-2017/01/01:
|| 2016/12/31 2017/01/01
===============++========================
<unbucketed> || $600 $646
expenses:food || 0 $20
>>>2
>>>=0
# We can keep just rewrites
../../bin/hledger-budget bal -f - --no-total --no-buckets --no-offset -DH expenses
<<<
~ daily from 2016/12/31
expenses:food $8
assets
= ^assets:bank$ date:2017/1 amt:<0
assets:bank *0.008
expenses:fee *-0.008 ; cash withdraw fee
2016/12/31
expenses:housing:rent $600
assets:bank
2017/1/1
expenses:food $20
expenses:leisure $15
expenses:grocery $30
assets:bank
>>>
Ending balances (historical) in 2016/12/31-2017/01/01:
|| 2016/12/31 2017/01/01
=======================++========================
expenses:fee || 0 $1
expenses:food || 0 $20
expenses:grocery || 0 $30
expenses:housing:rent || $600 $600
expenses:leisure || 0 $15
>>>2
>>>=0