hledger/tests/balance/budget-sorting.test
Stephen Morgan 162a936360 lib: BudgetReport uses new renderTable inteface, now has more compact output.
This changes showMixedAmountElided so that the width to elide to is
given as an argument, rather than fixed at 22 characters. This
actually uses the new renderTable interface. Mostly this is just an
internal change, but since we have more information about the widths
of things, we can actually get rid of some superfluous spaces in the
budget report output, previously there to make sure it stayed aligned
with the largest reasonable contents.
2020-11-04 14:25:20 +11:00

240 lines
9.2 KiB
Plaintext

#* budget report sorting
# These tests below aren't very thorough, could use more varied amounts
# and pathological cases.
#** Default sort without account declarations
# already tested in budget.test, but for completeness:
<
~ daily from 2016/1/1
expenses:food $10
expenses:leisure $15
assets:cash
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
$ hledger -f- bal --budget -DTN
Budget performance in 2016-12-01..2016-12-03:
|| 2016-12-01 2016-12-02 2016-12-03 Total
==================++===================================================================================
assets:cash || $-10 [ 40% of $-25] $-14 [56% of $-25] $-51 [204% of $-25] $-75 [100% of $-75]
expenses || $10 [ 40% of $25] $14 [56% of $25] $51 [204% of $25] $75 [100% of $75]
expenses:food || $10 [100% of $10] $9 [90% of $10] $11 [110% of $10] $30 [100% of $30]
expenses:leisure || 0 [ 0% of $15] $5 [33% of $15] 0 [ 0% of $15] $5 [ 11% of $45]
#** Default sort with account declarations
<
account expenses
account expenses:leisure
~ daily from 2016/1/1
expenses:food $10
expenses:leisure $15
assets:cash
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
$ hledger -f- bal --budget -DTN
Budget performance in 2016-12-01..2016-12-03:
|| 2016-12-01 2016-12-02 2016-12-03 Total
==================++===================================================================================
expenses || $10 [ 40% of $25] $14 [56% of $25] $51 [204% of $25] $75 [100% of $75]
expenses:leisure || 0 [ 0% of $15] $5 [33% of $15] 0 [ 0% of $15] $5 [ 11% of $45]
expenses:food || $10 [100% of $10] $9 [90% of $10] $11 [110% of $10] $30 [100% of $30]
assets:cash || $-10 [ 40% of $-25] $-14 [56% of $-25] $-51 [204% of $-25] $-75 [100% of $-75]
# # 2. -E
# $ hledger bal -D -b 2016-12-01 -e 2016-12-04 -f - --budget -E
# Budget performance in 2016-12-01..2016-12-03:
# || 2016-12-01 2016-12-02 2016-12-03
# ==============================++==============================================================================
# <unbudgeted>:expenses:cab || 0 0 $15
# <unbudgeted>:expenses:movies || 0 0 $25
# 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] 0 [ 0] 0 [ 0]
# # 3. Test that budget works with mix of commodities
# <
# 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
# $ hledger bal -D -b 2016-12-01 -e 2016-12-04 -f - --budget
# Budget performance in 2016-12-01..2016-12-03:
# || 2016-12-01 2016-12-02 2016-12-03
# ==================++=====================================================================================
# <unbudgeted> || 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] $-21, 20 CAD [ 0] 0 [ 0]
#** Sort by actual amount, flat mode.
$ hledger -f- bal --budget -DTNS
Budget performance in 2016-12-01..2016-12-03:
|| 2016-12-01 2016-12-02 2016-12-03 Total
==================++===================================================================================
expenses || $10 [ 40% of $25] $14 [56% of $25] $51 [204% of $25] $75 [100% of $75]
expenses:food || $10 [100% of $10] $9 [90% of $10] $11 [110% of $10] $30 [100% of $30]
expenses:leisure || 0 [ 0% of $15] $5 [33% of $15] 0 [ 0% of $15] $5 [ 11% of $45]
assets:cash || $-10 [ 40% of $-25] $-14 [56% of $-25] $-51 [204% of $-25] $-75 [100% of $-75]
#** Sort by actual amount, tree mode.
$ hledger -f- bal --budget -DTNS --tree
Budget performance in 2016-12-01..2016-12-03:
|| 2016-12-01 2016-12-02 2016-12-03 Total
=============++===================================================================================
expenses || $10 [ 40% of $25] $14 [56% of $25] $51 [204% of $25] $75 [100% of $75]
food || $10 [100% of $10] $9 [90% of $10] $11 [110% of $10] $30 [100% of $30]
leisure || 0 [ 0% of $15] $5 [33% of $15] 0 [ 0% of $15] $5 [ 11% of $45]
assets:cash || $-10 [ 40% of $-25] $-14 [56% of $-25] $-51 [204% of $-25] $-75 [100% of $-75]
#** other ?
# with -E
# $ hledger bal -D -b 2016-12-01 -e 2016-12-04 -f - --budget -E
# Budget performance in 2016/12/01-2016/12/03:
# || 2016/12/01 2016/12/02 2016/12/03
# ==============================++==============================================================================
# <unbudgeted>:expenses:cab || 0 0 $15
# <unbudgeted>:expenses:movies || 0 0 $25
# 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] 0 [ 0] 0 [ 0]
# with multiple commodities
# <
# 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
# $ hledger bal -D -b 2016-12-01 -e 2016-12-04 -f - --budget
# Budget performance in 2016/12/01-2016/12/03:
# || 2016/12/01 2016/12/02 2016/12/03
# ==================++=====================================================================================
# <unbudgeted> || 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] $-21, 20 CAD [ 0] 0 [ 0]