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.
		
			
				
	
	
		
			240 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			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] 
 | |
| 
 |