dev: test: Convert forecast.test to shelltestrunner format 3

We'll soon implement some tests that have the same input, so this will
reduce duplication.
This commit is contained in:
Stephen Morgan 2021-08-23 12:26:35 +10:00 committed by Simon Michael
parent 092e9479f0
commit 65e10aebd2

View File

@ -2,9 +2,7 @@
# Note periodic transaction tests should include a regular transaction # Note periodic transaction tests should include a regular transaction
# to pin the start date of forecasted transactions. # 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 2016/12/31
expenses:housing $600 expenses:housing $600
assets:cash assets:cash
@ -15,7 +13,9 @@ hledger bal -M -b 2016-11 -e 2017-02 -f - --forecast
expenses:leisure $15 expenses:leisure $15
expenses:grocery $30 expenses:grocery $30
assets:cash assets:cash
>>>
# 1. A balance report with forecasted transactions.
$ hledger bal -M -b 2016-11 -e 2017-02 -f - --forecast
Balance changes in 2016-11-01..2017-01-31: Balance changes in 2016-11-01..2017-01-31:
|| 2016-11 2016-12 2017-01 || 2016-11 2016-12 2017-01
@ -28,24 +28,22 @@ Balance changes in 2016-11-01..2017-01-31:
income || 0 0 $-1000 income || 0 0 $-1000
------------------++--------------------------- ------------------++---------------------------
|| 0 0 0 || 0 0 0
>>>2 >=0
>>>=0
<
# 2. print forecasted transactions, with status and description.
hledger print -b 2016-11 -e 2017-02 -f - --forecast
<<<
2016/12/31 2016/12/31
expenses:housing $600 expenses:housing $600
assets:cash assets:cash
~ monthly from 2016/1 * marked cleared, and with a description ~ monthly from 2016/1 * marked cleared, and with a description
income $-1000 income $-1000
expenses:food $20 expenses:food $20
expenses:leisure $15 expenses:leisure $15
expenses:grocery $30 expenses:grocery $30
assets:cash assets:cash
>>>
# 2. print forecasted transactions, with status and description.
$ hledger print -b 2016-11 -e 2017-02 -f - --forecast
2016-12-31 2016-12-31
expenses:housing $600 expenses:housing $600
assets:cash assets:cash
@ -58,13 +56,9 @@ hledger print -b 2016-11 -e 2017-02 -f - --forecast
expenses:grocery $30 expenses:grocery $30
assets:cash assets:cash
>>>2 >=0
>>>=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 2016/12/31
expenses:housing $600 expenses:housing $600
assets:cash assets:cash
@ -75,18 +69,17 @@ hledger register -b 2016-11 -e 2017-02 -f - --forecast tag:a
expenses:leisure $15 expenses:leisure $15
expenses:grocery $30 expenses:grocery $30
assets:cash assets:cash
>>>
# 3. A register with forecasted transactions, with a comment and tag.
$ hledger register -b 2016-11 -e 2017-02 -f - --forecast tag:a
2017-01-01 income $-1000 $-1000 2017-01-01 income $-1000 $-1000
expenses:food $20 $-980 expenses:food $20 $-980
expenses:leisure $15 $-965 expenses:leisure $15 $-965
expenses:grocery $30 $-935 expenses:grocery $30 $-935
assets:cash $935 0 assets:cash $935 0
>>>2 >=0
>>>=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 2016/01/01
expenses:fun $10 ; more fireworks expenses:fun $10 ; more fireworks
assets:cash assets:cash
@ -98,17 +91,15 @@ hledger register -b 2015-12 -e 2017-02 -f - assets:cash --forecast
~ yearly from 2016 ~ yearly from 2016
income $-10000 ; bonus income $-10000 ; bonus
assets:cash assets:cash
>>>
# 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 assets:cash $-10 $-10 2016-01-01 assets:cash $-10 $-10
2016-12-02 assets:cash $-600 $-610 2016-12-02 assets:cash $-600 $-610
2017-01-01 assets:cash $10000 $9390 2017-01-01 assets:cash $10000 $9390
>>>2 >=0
>>>=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 Y 2000
~ 2/1 forecast ~ 2/1 forecast
@ -116,16 +107,15 @@ Y 2000
; a real transaction to set the start of the forecast window ; a real transaction to set the start of the forecast window
2000/1/1 real 2000/1/1 real
>>> # 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
2000-02-01 forecast 2000-02-01 forecast
; generated-transaction: ~ 2/1 ; generated-transaction: ~ 2/1
>>>2 >=0
>>>=0
# 6. Y also sets the month to 1, affecting D dates: <
hledger -f - print --forecast desc:forecast
<<<
Y 2000 Y 2000
~ 15 forecast ~ 15 forecast
@ -133,16 +123,14 @@ Y 2000
; a real transaction to set the start of the forecast window ; a real transaction to set the start of the forecast window
2000/1/1 real 2000/1/1 real
>>> # 6. Y also sets the month to 1, affecting D dates:
$ hledger -f - print --forecast desc:forecast
2000-01-15 forecast 2000-01-15 forecast
; generated-transaction: ~ 15 ; generated-transaction: ~ 15
>>>2 >=0
>>>=0
# 7. Y also sets the day to 1, affecting relative dates: <
hledger -f - print --forecast desc:forecast
<<<
Y 2000 Y 2000
~ next month forecast ~ next month forecast
@ -150,17 +138,15 @@ Y 2000
; a real transaction to set the start of the forecast window ; a real transaction to set the start of the forecast window
2000/1/1 real 2000/1/1 real
>>> # 7. Y also sets the day to 1, affecting relative dates:
$ hledger -f - print --forecast desc:forecast
2000-02-01 forecast 2000-02-01 forecast
; generated-transaction: ~ next month ; generated-transaction: ~ next month
>>>2 >=0
>>>=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 2016/12/31
expenses:housing $600 expenses:housing $600
assets:cash assets:cash
@ -168,7 +154,9 @@ hledger bal -M -b 2016-10 -e 2017-02 -f - --forecast=20160801-
~ monthly from 2016/1 salary ~ monthly from 2016/1 salary
income $-1000 income $-1000
assets:cash assets:cash
>>>
# 8. A balance report with forecast-begin enabling transaction before report end
$ hledger bal -M -b 2016-10 -e 2017-02 -f - --forecast=20160801-
Balance changes in 2016-10-01..2017-01-31: Balance changes in 2016-10-01..2017-01-31:
|| 2016-10 2016-11 2016-12 2017-01 || 2016-10 2016-11 2016-12 2017-01
@ -178,21 +166,12 @@ Balance changes in 2016-10-01..2017-01-31:
income || $-1000 $-1000 $-1000 $-1000 income || $-1000 $-1000 $-1000 $-1000
------------------++------------------------------------ ------------------++------------------------------------
|| 0 0 0 0 || 0 0 0 0
>>>2 >=0
>>>=0
# 9. Parse error in malformed forecast period expression # 9. Parse error in malformed forecast period expression
hledger bal -M -b 2016-10 -e 2017-02 -f - --forecast=20160801-foobar $ hledger bal -M -b 2016-10 -e 2017-02 -f - --forecast=20160801-foobar
<<< >
2016/12/31 >2
expenses:housing $600
assets:cash
~ monthly from 2016/1 salary
income $-1000
assets:cash
>>>
>>>2
hledger: could not parse forecast period : 1:10: hledger: could not parse forecast period : 1:10:
| |
1 | 20160801-foobar 1 | 20160801-foobar
@ -200,11 +179,9 @@ hledger: could not parse forecast period : 1:10:
unexpected 'f' unexpected 'f'
expecting end of input expecting end of input
(use -h to see usage) (use -h to see usage)
>>>=1 >=1
# 10. Amount display style is applied to forecasted transactions. <
hledger -f - reg --forecast date:202001
<<<
commodity 1,000.00 USD commodity 1,000.00 USD
2020-01-01 2020-01-01
@ -213,32 +190,28 @@ commodity 1,000.00 USD
~ every 28th day ~ every 28th day
(a) 1000.00 USD (a) 1000.00 USD
>>> # 10. Amount display style is applied to forecasted transactions.
$ hledger -f - reg --forecast date:202001
2020-01-01 (a) 1,000.00 USD 1,000.00 USD 2020-01-01 (a) 1,000.00 USD 1,000.00 USD
2020-01-28 (a) 1,000.00 USD 2,000.00 USD 2020-01-28 (a) 1,000.00 USD 2,000.00 USD
>>>2 >=0
>>>=0
# 11. Forecast transactions are generated up to the day before the requested end date <
hledger -f - reg -b 2021-01-01 -e 2021-01-05 --forecast
<<<
2021-01-01 2021-01-01
(a) 1000 (a) 1000
~ daily ~ daily
(a) 1 (a) 1
>>> # 11. Forecast transactions are generated up to the day before the requested end date
$ hledger -f - reg -b 2021-01-01 -e 2021-01-05 --forecast
2021-01-01 (a) 1000 1000 2021-01-01 (a) 1000 1000
2021-01-02 (a) 1 1001 2021-01-02 (a) 1 1001
2021-01-03 (a) 1 1002 2021-01-03 (a) 1 1002
2021-01-04 (a) 1 1003 2021-01-04 (a) 1 1003
>>>2 >=0
>>>=0
# 12. Forecast transactions work with balance assignments <
hledger -f - print -x --forecast -e 2021-11
<<<
2021-09-01 Normal Balance Assertion Works 2021-09-01 Normal Balance Assertion Works
Checking = -60 Checking = -60
Costs Costs
@ -251,7 +224,8 @@ hledger -f - print -x --forecast -e 2021-11
Checking = -120 Checking = -120
Costs Costs
>>> # 12. Forecast transactions work with balance assignments
$ hledger -f - print -x --forecast -e 2021-11
2021-09-01 Normal Balance Assertion Works 2021-09-01 Normal Balance Assertion Works
Checking -60 = -60 Checking -60 = -60
Costs 60 Costs 60
@ -266,19 +240,18 @@ hledger -f - print -x --forecast -e 2021-11
Checking -20 = -120 Checking -20 = -120
Costs 20 Costs 20
>>>2 >=0
>>>=0
# 13. Generated forecast for weekday transactions <
hledger -f - reg --forecast -b "2021-09-01" -e "2021-09-15" --forecast -w 100
<<<
2021-08-01 2021-08-01
(a) 0 (a) 0
~ every weekday ~ every weekday
income:client1 -10 USD income:client1 -10 USD
assets:receivables:contractor1 assets:receivables:contractor1
>>>
# 13. Generated forecast for weekday transactions
$ hledger -f - reg --forecast -b "2021-09-01" -e "2021-09-15" --forecast -w 100
2021-09-01 income:client1 -10 USD -10 USD 2021-09-01 income:client1 -10 USD -10 USD
assets:receivables:contractor1 10 USD 0 assets:receivables:contractor1 10 USD 0
2021-09-02 income:client1 -10 USD -10 USD 2021-09-02 income:client1 -10 USD -10 USD
@ -299,19 +272,18 @@ hledger -f - reg --forecast -b "2021-09-01" -e "2021-09-15" --forecast -w 100
assets:receivables:contractor1 10 USD 0 assets:receivables:contractor1 10 USD 0
2021-09-14 income:client1 -10 USD -10 USD 2021-09-14 income:client1 -10 USD -10 USD
assets:receivables:contractor1 10 USD 0 assets:receivables:contractor1 10 USD 0
>>>2 >=0
>>>=0
# 14. Generated forecast for weekend transactions <
hledger -f - reg --forecast -b "2021-09-01" -e "2021-09-15" --forecast -w 100
<<<
2021-08-01 2021-08-01
(a) 0 (a) 0
~ every weekendday ~ every weekendday
income:client1 -10 USD income:client1 -10 USD
assets:receivables:contractor1 assets:receivables:contractor1
>>>
# 14. Generated forecast for weekend transactions
$ hledger -f - reg --forecast -b "2021-09-01" -e "2021-09-15" --forecast -w 100
2021-09-04 income:client1 -10 USD -10 USD 2021-09-04 income:client1 -10 USD -10 USD
assets:receivables:contractor1 10 USD 0 assets:receivables:contractor1 10 USD 0
2021-09-05 income:client1 -10 USD -10 USD 2021-09-05 income:client1 -10 USD -10 USD
@ -320,5 +292,4 @@ hledger -f - reg --forecast -b "2021-09-01" -e "2021-09-15" --forecast -w 100
assets:receivables:contractor1 10 USD 0 assets:receivables:contractor1 10 USD 0
2021-09-12 income:client1 -10 USD -10 USD 2021-09-12 income:client1 -10 USD -10 USD
assets:receivables:contractor1 10 USD 0 assets:receivables:contractor1 10 USD 0
>>>2 >=0
>>>=0