hledger/tests/budget/budget.test

265 lines
8.7 KiB
Plaintext
Raw Normal View History

2018-03-29 17:56:09 +03:00
# balance --budget tests
2016/12/01
expenses:food $10
assets:cash
2016/12/02
expenses:food $9
assets:cash
2016/12/03
expenses:food $11
assets:cash
2016/12/02
expenses:leisure $5
assets:cash
2016/12/03
expenses:movies $25
assets:cash
2016/12/03
expenses:cab $15
assets:cash
~ daily from 2016/1/1
expenses:food $10
expenses:leisure $15
assets:cash
2018-03-29 17:56:09 +03:00
# 1. Test --budget switch
$ hledger bal -D -b 2016-12-01 -e 2016-12-04 -f - --budget
Balance changes in 2016/12/01-2016/12/03:
2018-03-29 17:20:46 +03:00
|| 2016/12/01 2016/12/02 2016/12/03
=======================++==============================================================================
<unbudgeted>:expenses || 0 0 $40
assets:cash || $-10 [ 40% of $-25] $-14 [ 56% of $-25] $-51 [ 204% of $-25]
expenses:food || $10 [ 100% of $10] $9 [ 90% of $10] $11 [ 110% of $10]
expenses:leisure || 0 [ 0% of $15] $5 [ 33% of $15] 0 [ 0% of $15]
-----------------------++------------------------------------------------------------------------------
|| 0 [ 0% of 0] 0 [ 0% of 0] 0 [ 0% of 0]
2018-03-29 17:20:46 +03:00
# 2. --show-unbudgeted
2018-03-29 17:56:09 +03:00
$ hledger bal -D -b 2016-12-01 -e 2016-12-04 -f - --budget --show-unbudgeted
Balance changes in 2016/12/01-2016/12/03:
2018-03-29 17:20:46 +03:00
|| 2016/12/01 2016/12/02 2016/12/03
==================++==============================================================================
assets:cash || $-10 [ 40% of $-25] $-14 [ 56% of $-25] $-51 [ 204% of $-25]
expenses:cab || 0 0 $15
expenses:food || $10 [ 100% of $10] $9 [ 90% of $10] $11 [ 110% of $10]
expenses:leisure || 0 [ 0% of $15] $5 [ 33% of $15] 0 [ 0% of $15]
expenses:movies || 0 0 $25
------------------++------------------------------------------------------------------------------
|| 0 [ 0% of 0] 0 [ 0% of 0] 0 [ 0% of 0]
2018-03-29 17:20:46 +03:00
# 3. Test that budget works with mix of commodities
2018-03-29 17:56:09 +03:00
<
2016/12/01
expenses:food £10 @@ $15
assets:cash
2016/12/02
expenses:food 10 CAD @ $1
assets:cash
2016/12/02
expenses:food 10 CAD @ $1.1
assets:cash
2016/12/03
expenses:food $11
assets:cash
2016/12/02
expenses:leisure $5
assets:cash
2016/12/03
expenses:movies $25
assets:cash
2016/12/03
expenses:cab $15
assets:cash
~ daily from 2016/1/1
expenses:food $10
expenses:leisure $15
assets:cash
2018-03-29 17:56:09 +03:00
$ hledger bal -D -b 2016-12-01 -e 2016-12-04 -f - --budget
Balance changes in 2016/12/01-2016/12/03:
|| 2016/12/01 2016/12/02 2016/12/03
=======================++=====================================================================================
<unbudgeted>:expenses || 0 0 $40
assets:cash || $-15 [ 60% of $-25] $-26 [ 104% of $-25] $-51 [ 204% of $-25]
expenses:food || £10 [ 150% of $10] 20 CAD [ 210% of $10] $11 [ 110% of $10]
expenses:leisure || 0 [ 0% of $15] $5 [ 33% of $15] 0 [ 0% of $15]
-----------------------++-------------------------------------------------------------------------------------
|| $-15, £10 [ 0% of 0] $-21, 20 CAD [ 0% of 0] 0 [ 0% of 0]
# TODO zero totals ^
2018-03-29 18:36:31 +03:00
<
~ daily
(a) 10
~weekly
(b) 100
~weekly
(c) 1000
2018/1/1
(a) 1
(b) 1
(c) 1
2018/1/3
(a) 1
(b) 1
(c) 1
# 4. --budget uses only periodic transactions of the specified interval.
# No interval - same as a regular balance report.
$ hledger -f- bal --budget
2 a
2 b
2 c
--------------------
6
# 5. With -D it selects the daily budget.
# The budget is unbounded, so extends through the report period.
$ hledger -f- bal --budget -D
Balance changes in 2018/01/01-2018/01/03:
|| 2018/01/01 2018/01/02 2018/01/03
===++==============================================================================
a || 1 [ 10% of 10] 0 [ 0% of 10] 1 [ 10% of 10]
b || 1 0 1
c || 1 0 1
---++------------------------------------------------------------------------------
|| 3 [ 30% of 10] 0 [ 0% of 10] 3 [ 30% of 10]
# TODO misleading totals ? ^
2018-03-29 18:36:31 +03:00
# 6. And with -W it selects the weekly budget, defined by all weekly periodic transactions.
$ hledger -f- bal --budget -W
Balance changes in 2018/01/01w01:
|| 2018/01/01w01
===++==========================
a || 2
b || 2 [ 2% of 100]
c || 2 [ 0% of 1000]
---++--------------------------
|| 6 [ 1% of 1100]
2018-03-29 18:36:31 +03:00
# 7. A bounded two day budget. The end date is exclusive as usual.
<
~ daily from 2018/1/2 to 2018/1/4
(a) 1
2018/1/1
(a) 1
(b) 1
2018/1/2
(a) 1
(b) 1
2018/1/3
(a) 1
(b) 1
2018/1/4
(a) 1
(b) 1
$ hledger -f- bal --budget -D
Balance changes in 2018/01/01-2018/01/04:
|| 2018/01/01 2018/01/02 2018/01/03 2018/01/04
================++========================================================================================================
<unbudgeted>:b || 1 1 1 1
a || 1 1 [ 100% of 1] 1 [ 100% of 1] 1
----------------++--------------------------------------------------------------------------------------------------------
|| 2 2 [ 200% of 1] 2 [ 200% of 1] 2
2018-03-29 18:36:31 +03:00
# 8. Multiple bounded budgets.
<
~ daily from 2018/1/1 to 2018/1/3
(a) 1
~ daily from 2018/1/3 to 2018/1/5
(a) 10
2018/1/1
(a) 1
2018/1/2
(a) 1
2018/1/3
(a) 1
2018/1/4
(a) 1
$ hledger -f- bal --budget -D
Balance changes in 2018/01/01-2018/01/04:
|| 2018/01/01 2018/01/02 2018/01/03 2018/01/04
===++========================================================================================================
a || 1 [ 100% of 1] 1 [ 100% of 1] 1 [ 10% of 10] 1 [ 10% of 10]
---++--------------------------------------------------------------------------------------------------------
|| 1 [ 100% of 1] 1 [ 100% of 1] 1 [ 10% of 10] 1 [ 10% of 10]
2018-03-29 18:36:31 +03:00
# 9. A "from A to B" budget should not be included in a report beginning on B.
$ hledger -f- bal --budget -D -b 2018/1/3
Balance changes in 2018/01/03-2018/01/04:
|| 2018/01/03 2018/01/04
===++====================================================
a || 1 [ 10% of 10] 1 [ 10% of 10]
---++----------------------------------------------------
|| 1 [ 10% of 10] 1 [ 10% of 10]
<
~ daily
(a) 1
2018/1/2
(a) 2
2018/1/2
(a) -2
# 10. accounts with non-zero budget should be shown by default
# even if there are no actual transactions in the period,
# or if the actual amount is zero.
# $ hledger -f- bal --budget -D date:2018/1/1-2018/1/3
# Balance changes in 2018/01/01-2018/01/02:
# || 2018/01/01 2018/01/02
# ===++====================================================
# a || [ 1] [ 1]
# ---++----------------------------------------------------
# || [ 1] [ 1]
# 11. With -E, zeroes are shown
$ hledger -f- bal --budget -D date:2018/1/1-2018/1/3 -E
Balance changes in 2018/01/01-2018/01/02:
|| 2018/01/01 2018/01/02
===++====================================================
a || 0 [ 0% of 1] 0 [ 0% of 1]
---++----------------------------------------------------
|| 0 [ 0% of 1] 0 [ 0% of 1]
2018-03-29 18:36:31 +03:00