204 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			204 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Test generation of periodic transactions with --forecast.
 | |
| # Note periodic transaction tests should include a regular transaction
 | |
| # to pin the start date of forecasted transactions.
 | |
| 
 | |
| # 1. A balance report with forecasted transactions.
 | |
| hledger bal -M -b 2016-11 -e 2017-02 -f - --forecast
 | |
| <<<
 | |
| 2016/12/31
 | |
|     expenses:housing  $600
 | |
|     assets:cash
 | |
| 
 | |
| ~ monthly from 2016/1
 | |
|     income  $-1000
 | |
|     expenses:food     $20
 | |
|     expenses:leisure  $15
 | |
|     expenses:grocery  $30
 | |
|     assets:cash
 | |
| >>>
 | |
| Balance changes in 2016-12-01..2017-01-31:
 | |
| 
 | |
|                   ||   Dec     Jan 
 | |
| ==================++===============
 | |
|  assets:cash      || $-600    $935 
 | |
|  expenses:food    ||     0     $20 
 | |
|  expenses:grocery ||     0     $30 
 | |
|  expenses:housing ||  $600       0 
 | |
|  expenses:leisure ||     0     $15 
 | |
|  income           ||     0  $-1000 
 | |
| ------------------++---------------
 | |
|                   ||     0       0 
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| 
 | |
| # 2. print forecasted transactions, with status and description.
 | |
| hledger print -b 2016-11 -e 2017-02 -f - --forecast
 | |
| <<<
 | |
| 2016/12/31
 | |
|     expenses:housing  $600
 | |
|     assets:cash
 | |
| 
 | |
| ~ monthly from 2016/1  * marked cleared, and with a description 
 | |
|     income  $-1000
 | |
|     expenses:food     $20
 | |
|     expenses:leisure  $15
 | |
|     expenses:grocery  $30
 | |
|     assets:cash
 | |
| >>>
 | |
| 2016-12-31
 | |
|     expenses:housing            $600
 | |
|     assets:cash
 | |
| 
 | |
| 2017-01-01 * marked cleared, and with a description
 | |
|     ; generated-transaction: ~ monthly from 2016/1
 | |
|     income                    $-1000
 | |
|     expenses:food                $20
 | |
|     expenses:leisure             $15
 | |
|     expenses:grocery             $30
 | |
|     assets:cash
 | |
| 
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| 
 | |
| # 3. A register with forecasted transactions, with a comment and tag.
 | |
| hledger register -b 2016-11 -e 2017-02 -f - --forecast  tag:a
 | |
| <<<
 | |
| 2016/12/31
 | |
|     expenses:housing  $600
 | |
|     assets:cash
 | |
| 
 | |
| ~ monthly from 2016/1  ; or a comment, maybe with a:tag
 | |
|     income  $-1000
 | |
|     expenses:food     $20
 | |
|     expenses:leisure  $15
 | |
|     expenses:grocery  $30
 | |
|     assets:cash
 | |
| >>>
 | |
| 2017-01-01                      income                      $-1000        $-1000
 | |
|                                 expenses:food                  $20         $-980
 | |
|                                 expenses:leisure               $15         $-965
 | |
|                                 expenses:grocery               $30         $-935
 | |
|                                 assets:cash                   $935             0
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # 4. Check that --forecast generates transactions only after last transaction date in journal.
 | |
| hledger register -b 2015-12 -e 2017-02 -f - assets:cash --forecast
 | |
| <<<
 | |
| 2016/01/01
 | |
|     expenses:fun  $10 ; more fireworks
 | |
|     assets:cash
 | |
| 
 | |
| 2016/12/02
 | |
|     expenses:housing  $600
 | |
|     assets:cash
 | |
| 
 | |
| ~ yearly from 2016
 | |
|     income  $-10000 ; bonus
 | |
|     assets:cash
 | |
| >>>
 | |
| 2016-01-01                      assets:cash                   $-10          $-10
 | |
| 2016-12-02                      assets:cash                  $-600         $-610
 | |
| 2017-01-01                      assets:cash                 $10000         $9390
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # 5. Y affects M/D partial dates in periodic transactions.
 | |
| # The recur tag shows the original period expression and is not modified.
 | |
| hledger -f - print --forecast desc:forecast
 | |
| <<<
 | |
| Y 2000
 | |
| 
 | |
| ~ 2/1  forecast
 | |
| 
 | |
| ; a real transaction to set the start of the forecast window
 | |
| 2000/1/1 real
 | |
| 
 | |
| >>>
 | |
| 2000-02-01 forecast
 | |
|     ; generated-transaction: ~ 2/1
 | |
| 
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # 6. Y also sets the month to 1, affecting D dates:
 | |
| hledger -f - print --forecast desc:forecast
 | |
| <<<
 | |
| Y 2000
 | |
| 
 | |
| ~ 15  forecast
 | |
| 
 | |
| ; a real transaction to set the start of the forecast window
 | |
| 2000/1/1 real
 | |
| 
 | |
| >>>
 | |
| 2000-01-15 forecast
 | |
|     ; generated-transaction: ~ 15
 | |
| 
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # 7. Y also sets the day to 1, affecting relative dates:
 | |
| hledger -f - print --forecast desc:forecast
 | |
| <<<
 | |
| Y 2000
 | |
| 
 | |
| ~ next month  forecast
 | |
| 
 | |
| ; a real transaction to set the start of the forecast window
 | |
| 2000/1/1 real
 | |
| 
 | |
| >>>
 | |
| 2000-02-01 forecast
 | |
|     ; generated-transaction: ~ next month
 | |
| 
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| 
 | |
| # 8. A balance report with forecast-begin enabling transaction before report end
 | |
| hledger bal -M -b 2016-10 -e 2017-02 -f - --forecast=20160801-
 | |
| <<<
 | |
| 2016/12/31
 | |
|     expenses:housing  $600
 | |
|     assets:cash
 | |
| 
 | |
| ~ monthly from 2016/1  salary
 | |
|     income  $-1000
 | |
|     assets:cash
 | |
| >>>
 | |
| Balance changes in 2016-10-01..2017-01-31:
 | |
| 
 | |
|                   ||    Oct     Nov     Dec     Jan 
 | |
| ==================++================================
 | |
|  assets:cash      ||  $1000   $1000    $400   $1000 
 | |
|  expenses:housing ||      0       0    $600       0 
 | |
|  income           || $-1000  $-1000  $-1000  $-1000 
 | |
| ------------------++--------------------------------
 | |
|                   ||      0       0       0       0 
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # 9. Parse error in malformed forecast period expression
 | |
| hledger bal -M -b 2016-10 -e 2017-02 -f - --forecast=20160801-foobar
 | |
| <<<
 | |
| 2016/12/31
 | |
|     expenses:housing  $600
 | |
|     assets:cash
 | |
| 
 | |
| ~ monthly from 2016/1  salary
 | |
|     income  $-1000
 | |
|     assets:cash
 | |
| >>>
 | |
| >>>2
 | |
| hledger: could not parse forecast period : 1:10:
 | |
|   |
 | |
| 1 | 20160801-foobar
 | |
|   |          ^
 | |
| unexpected 'f'
 | |
| expecting end of input
 | |
|  (use -h to see usage)
 | |
| >>>=1
 |