mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-28 12:54:07 +03:00
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:
parent
092e9479f0
commit
65e10aebd2
@ -2,9 +2,7 @@
|
||||
# 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
|
||||
@ -15,7 +13,9 @@ hledger bal -M -b 2016-11 -e 2017-02 -f - --forecast
|
||||
expenses:leisure $15
|
||||
expenses:grocery $30
|
||||
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:
|
||||
|
||||
|| 2016-11 2016-12 2017-01
|
||||
@ -28,24 +28,22 @@ Balance changes in 2016-11-01..2017-01-31:
|
||||
income || 0 0 $-1000
|
||||
------------------++---------------------------
|
||||
|| 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
|
||||
expenses:housing $600
|
||||
assets:cash
|
||||
|
||||
~ monthly from 2016/1 * marked cleared, and with a description
|
||||
~ monthly from 2016/1 * marked cleared, and with a description
|
||||
income $-1000
|
||||
expenses:food $20
|
||||
expenses:leisure $15
|
||||
expenses:grocery $30
|
||||
assets:cash
|
||||
>>>
|
||||
|
||||
# 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
|
||||
@ -58,13 +56,9 @@ hledger print -b 2016-11 -e 2017-02 -f - --forecast
|
||||
expenses:grocery $30
|
||||
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
|
||||
expenses:housing $600
|
||||
assets:cash
|
||||
@ -75,18 +69,17 @@ hledger register -b 2016-11 -e 2017-02 -f - --forecast tag:a
|
||||
expenses:leisure $15
|
||||
expenses:grocery $30
|
||||
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
|
||||
expenses:food $20 $-980
|
||||
expenses:leisure $15 $-965
|
||||
expenses:grocery $30 $-935
|
||||
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
|
||||
expenses:fun $10 ; more fireworks
|
||||
assets:cash
|
||||
@ -98,17 +91,15 @@ hledger register -b 2015-12 -e 2017-02 -f - assets:cash --forecast
|
||||
~ yearly from 2016
|
||||
income $-10000 ; bonus
|
||||
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-12-02 assets:cash $-600 $-610
|
||||
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
|
||||
|
||||
~ 2/1 forecast
|
||||
@ -116,16 +107,15 @@ Y 2000
|
||||
; a real transaction to set the start of the forecast window
|
||||
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
|
||||
; 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
|
||||
|
||||
~ 15 forecast
|
||||
@ -133,16 +123,14 @@ Y 2000
|
||||
; a real transaction to set the start of the forecast window
|
||||
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
|
||||
; 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
|
||||
|
||||
~ next month forecast
|
||||
@ -150,17 +138,15 @@ Y 2000
|
||||
; a real transaction to set the start of the forecast window
|
||||
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
|
||||
; 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
|
||||
expenses:housing $600
|
||||
assets:cash
|
||||
@ -168,7 +154,9 @@ hledger bal -M -b 2016-10 -e 2017-02 -f - --forecast=20160801-
|
||||
~ monthly from 2016/1 salary
|
||||
income $-1000
|
||||
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:
|
||||
|
||||
|| 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
|
||||
------------------++------------------------------------
|
||||
|| 0 0 0 0
|
||||
>>>2
|
||||
>>>=0
|
||||
>=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 bal -M -b 2016-10 -e 2017-02 -f - --forecast=20160801-foobar
|
||||
>
|
||||
>2
|
||||
hledger: could not parse forecast period : 1:10:
|
||||
|
|
||||
1 | 20160801-foobar
|
||||
@ -200,11 +179,9 @@ hledger: could not parse forecast period : 1:10:
|
||||
unexpected 'f'
|
||||
expecting end of input
|
||||
(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
|
||||
|
||||
2020-01-01
|
||||
@ -213,32 +190,28 @@ commodity 1,000.00 USD
|
||||
~ every 28th day
|
||||
(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-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
|
||||
(a) 1000
|
||||
|
||||
~ daily
|
||||
(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-02 (a) 1 1001
|
||||
2021-01-03 (a) 1 1002
|
||||
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
|
||||
Checking = -60
|
||||
Costs
|
||||
@ -251,7 +224,8 @@ hledger -f - print -x --forecast -e 2021-11
|
||||
Checking = -120
|
||||
Costs
|
||||
|
||||
>>>
|
||||
# 12. Forecast transactions work with balance assignments
|
||||
$ hledger -f - print -x --forecast -e 2021-11
|
||||
2021-09-01 Normal Balance Assertion Works
|
||||
Checking -60 = -60
|
||||
Costs 60
|
||||
@ -266,19 +240,18 @@ hledger -f - print -x --forecast -e 2021-11
|
||||
Checking -20 = -120
|
||||
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
|
||||
(a) 0
|
||||
|
||||
~ every weekday
|
||||
income:client1 -10 USD
|
||||
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
|
||||
assets:receivables:contractor1 10 USD 0
|
||||
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
|
||||
2021-09-14 income:client1 -10 USD -10 USD
|
||||
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
|
||||
(a) 0
|
||||
|
||||
~ every weekendday
|
||||
income:client1 -10 USD
|
||||
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
|
||||
assets:receivables:contractor1 10 USD 0
|
||||
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
|
||||
2021-09-12 income:client1 -10 USD -10 USD
|
||||
assets:receivables:contractor1 10 USD 0
|
||||
>>>2
|
||||
>>>=0
|
||||
>=0
|
||||
|
Loading…
Reference in New Issue
Block a user