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
 |