;convert balance assertion/assignment tests to new format

And update a seemingly obsolete test description.

[ci skip]
This commit is contained in:
Simon Michael 2020-03-05 11:13:35 -08:00
parent f18c74fff7
commit 41bb7865f3

View File

@ -2,8 +2,7 @@
# balance assertion & balance assignment tests # balance assertion & balance assignment tests
# 1. test some balance assertions # 1. test some balance assertions
hledger -f - stats <
<<<
2013/1/1 2013/1/1
a $1 =$1 a $1 =$1
b =-$1 b =-$1
@ -17,13 +16,12 @@ hledger -f - stats
b $-1 = $-3 b $-1 = $-3
(b) $1 = $-2 (b) $1 = $-2
>>> /Transactions/ $ hledger -f - stats
>>>2 > /Transactions/
>>>=0 >=0
# 2. same entries as 1 but different parse order, assertion should still pass based on date # 2. same entries as 1 but different parse order, assertion should still pass based on date
hledger -f - stats <
<<<
2013/1/1 2013/1/1
a $1 =$1 a $1 =$1
b =-$1 b =-$1
@ -37,14 +35,13 @@ hledger -f - stats
a $1 =$2 a $1 =$2
b $-1 =$-2 b $-1 =$-2
>>> /Transactions/ $ hledger -f - stats
>>>2 > /Transactions/
>>>=0 >=0
# 3. like 1 but switch order of postings in last entry, # 3. like 1 but switch order of postings in last entry,
# assertion should fail and exit code should be non zero # assertion should fail and exit code should be non zero
hledger -f - stats <
<<<
2013/1/1 2013/1/1
a $1 =$1 a $1 =$1
b =-$1 b =-$1
@ -58,23 +55,21 @@ hledger -f - stats
(b) $1 = $-2 (b) $1 = $-2
b $-1 = $-3 b $-1 = $-3
>>> $ hledger -f - stats
>>>2 /balance assertion.*line 11, column 12/ >2 /balance assertion.*line 11, column 12/
>>>=1 >=1
# 4. should also work without commodity symbols # 4. should also work without commodity symbols
hledger -f - stats <
<<<
2013/1/1 2013/1/1
(a) 1 =1 (a) 1 =1
>>> /Transactions/ $ hledger -f - stats
>>>2 > /Transactions/
>>>=0 >=0
# 5. should work for fractional amount with trailing zeros # 5. should work for fractional amount with trailing zeros
hledger -f - stats <
<<<
2013/1/1 2013/1/1
a $1.20 =$1.20 a $1.20 =$1.20
b =-$1.20 b =-$1.20
@ -87,41 +82,40 @@ hledger -f - stats
a $0.7 =$2 a $0.7 =$2
b =-$2 b =-$2
>>> /Transactions/ $ hledger -f - stats
>>>2 > /Transactions/
>>>=0 >=0
# 6. assertions currently check only a single commodity's balance, like Ledger # 6. assertions currently check only a single commodity's balance, like Ledger
hledger -f - stats <
<<<
1/2 1/2
(a) A1 (a) A1
(a) B1 = A1 (a) B1 = A1
(a) 0 = A1 (a) 0 = A1
(a) C0 = D0 (a) C0 = D0
>>> /Transactions/
>>>2 $ hledger -f - stats
>>>=0 > /Transactions/
>=0
# 7. balances should accumulate (#195) # 7. balances should accumulate (#195)
hledger -f - stats <
<<<
1/1 1/1
(a) 1F = 1F (a) 1F = 1F
(a) 2G = 2G (a) 2G = 2G
1/2 1/2
(a) 3F = 4F (a) 3F = 4F
>>> !/assertion failed/
>>>2 $ hledger -f - stats
>>>=0 > !/assertion failed/
>=0
# 8. what should happen here ? Currently, # 8. what should happen here ? Currently,
# in a, 3.4 EUR @@ $5.6 and -3.4 EUR cancel out (wrong ?) # in a, 3.4 EUR @@ $5.6 and -3.4 EUR cancel out (wrong ?)
# in b, # in b,
# #
# hledger -f - stats # <
# <<<
# 2013/1/1 # 2013/1/1
# a $1.20 # a $1.20
# a 3.4 EUR @@ $5.6 # a 3.4 EUR @@ $5.6
@ -135,13 +129,12 @@ hledger -f - stats
# a $0.1 =$1.30 # a $0.1 =$1.30
# b =-$1.30 # b =-$1.30
# >>> /Transactions/ # $ hledger -f - stats
# >>>2 # > /Transactions/
# >>>=0 # >=0
# 8. Using balance assignment to set balances. # 8. Using balance assignment to set balances.
hledger -f - stats <
<<<
2013/1/1 2013/1/1
a $1.20 a $1.20
b b
@ -154,14 +147,13 @@ hledger -f - stats
a $10 =$11.3 a $10 =$11.3
b =$-11.3 b =$-11.3
>>> /Transactions/ $ hledger -f - stats
>>>2 > /Transactions/
>>>=0 >=0
# 9. Multiple assertions for an account in the same transaction. # 9. Multiple assertions for an account in the same transaction.
hledger -f - stats <
<<<
2013/1/1 2013/1/1
a $1 =$1 a $1 =$1
b =-$1 b =-$1
@ -175,13 +167,12 @@ hledger -f - stats
b $-1 = $-3 b $-1 = $-3
b $-1 = $-4 b $-1 = $-4
>>> /Transactions/ $ hledger -f - stats
>>>2 > /Transactions/
>>>=0 >=0
# 10. Multiple assertions and assignments for an account in the same transaction. # 10. Multiple assertions and assignments for an account in the same transaction.
hledger -f - stats <
<<<
2013/1/1 2013/1/1
a $1 =$1 a $1 =$1
b =-$1 b =-$1
@ -199,13 +190,12 @@ hledger -f - stats
a $0 = $7 a $0 = $7
b $0 = $-7 b $0 = $-7
>>> /Transactions/ $ hledger -f - stats
>>>2 > /Transactions/
>>>=0 >=0
# 11. Assignments and virtual postings # 11. Assignments and virtual postings
hledger -f - stats <
<<<
2013/1/1 2013/1/1
b b
[a] 1$ [a] 1$
@ -218,25 +208,21 @@ hledger -f - stats
[a] = $5 [a] = $5
b = $9 b = $9
$ hledger -f - stats
> /Transactions/
>=0
>>> /Transactions/
>>>2
>>>=0
# 12. Having both assignments and posting dates is not supported. # 12. Having both assignments and posting dates is not supported.
hledger -f - stats <
<<<
2013/1/1 2013/1/1
a $1 =$1 a $1 =$1
b =$-1 ; date:2012/1/1 b =$-1 ; date:2012/1/1
>>>2 /balance assignments may not have a custom date/ $ hledger -f - stats
>>>=1 >2 /balance assignments may not have a custom date/
>=1
# 13. Posting Date # 13. Posting Date
hledger -f - stats <
<<<
2011/5/5 2011/5/5
[a] = -10 [a] = -10
@ -255,13 +241,12 @@ hledger -f - stats
[d] 10 [d] 10
>>> /Transactions/ $ hledger -f - stats
>>>2 > /Transactions/
>>>=0 >=0
# 14. Mix different commodities # 14. Mix different commodities
hledger -f - stats <
<<<
2016/1/1 2016/1/1
a $1 a $1
b -1 zorkmids b -1 zorkmids
@ -269,13 +254,13 @@ hledger -f - stats
2016/1/2 2016/1/2
a $-1 = $0 a $-1 = $0
b b
>>> /Transactions/
>>>2 $ hledger -f - stats
>>>=0 > /Transactions/
>=0
# 15. Mix different commodities and assignments # 15. Mix different commodities and assignments
hledger -f - stats <
<<<
2016/1/1 2016/1/1
a $1 a $1
b -1 zorkmids b -1 zorkmids
@ -290,26 +275,26 @@ hledger -f - stats
2016/1/2 2016/1/2
a a
b = 0 zorkmids b = 0 zorkmids
>>> /Transactions/
>>>2 $ hledger -f - stats
>>>=0 > /Transactions/
>=0
# 16. Total assertions (==) parse correctly # 16. Total assertions (==) parse correctly
hledger -f - stats <
<<<
2016/1/1 2016/1/1
a $1 a $1
b b
2016/1/2 2016/1/2
a == $1 a == $1
>>> /Transactions/
>>>2 $ hledger -f - stats
>>>=0 > /Transactions/
>=0
# 17. Total assertions consider entire multicommodity amount # 17. Total assertions consider entire multicommodity amount
hledger -f - stats <
<<<
2016/1/1 2016/1/1
a $1 a $1
b b
@ -320,12 +305,13 @@ hledger -f - stats
2016/1/3 2016/1/3
a 0 == $1 a 0 == $1
>>>2 /balance assertion.*line 10, column 15/
>>>=1 $ hledger -f - stats
>2 /balance assertion.*line 10, column 15/
>=1
# 18. Mix different commodities and total assignments # 18. Mix different commodities and total assignments
hledger -f - stats <
<<<
2016/1/1 2016/1/1
a $1 a $1
a -1 zorkmids a -1 zorkmids
@ -338,36 +324,37 @@ hledger -f - stats
2016/1/3 2016/1/3
b 0 = $-1 b 0 = $-1
b 0 = 0 zorkmids b 0 = 0 zorkmids
>>> /Transactions/
>>>2 $ hledger -f - stats
>>>=0 > /Transactions/
>=0
# 19. Balance assertions may have a price, but it's ignored # 19. Balance assertions may have a price, but it's ignored
hledger -f- print <
<<<
2019/01/01 2019/01/01
(a) 1A @ 1B = 1A @ 2B (a) 1A @ 1B = 1A @ 2B
>>>
$ hledger -f- print
>
2019-01-01 2019-01-01
(a) 1A @ 1B = 1A @ 2B (a) 1A @ 1B = 1A @ 2B
>>>=0 >=0
# 20. Balance assignments may have a price, and it's used for the posting amount. # 20. Balance assignments may have a price, and it's used for the posting amount.
# But not shown as part of the balance assertion in the resulting posting. <
hledger -f- print --explicit
<<<
2019/01/01 2019/01/01
(a) = 1A @ 2B (a) = 1A @ 2B
>>>
$ hledger -f- print --explicit
>
2019-01-01 2019-01-01
(a) 1A @ 2B = 1A @ 2B (a) 1A @ 2B = 1A @ 2B
>>>=0 >=0
# 21. The exact amounts are compared; display precision does not affect assertions. # 21. The exact amounts are compared; display precision does not affect assertions.
hledger -f- print <
<<<
commodity $1000.00 commodity $1000.00
2019/01/01 2019/01/01
@ -376,13 +363,12 @@ commodity $1000.00
2019/01/02 2019/01/02
(a) $1.00 = $1.006 (a) $1.00 = $1.006
>>> /2019/ $ hledger -f- print
>>>2 > /2019/
>>>=0 >=0
# 22. This fails # 22. This fails
hledger -f- print <
<<<
commodity $1000.00 commodity $1000.00
2019/01/01 2019/01/01
@ -391,12 +377,12 @@ commodity $1000.00
2019/01/02 2019/01/02
(a) $1.00 = $1.01 (a) $1.00 = $1.01
>>>2 /difference: 0\.004/ $ hledger -f- print
>>>=1 >2 /difference: 0\.004/
>=1
# 23. This fails # 23. This fails
hledger -f- print <
<<<
commodity $1000.00 commodity $1000.00
2019/01/01 2019/01/01
@ -405,12 +391,12 @@ commodity $1000.00
2019/01/02 2019/01/02
(a) $1.00 = $1.0061 (a) $1.00 = $1.0061
>>>2 /difference: 0\.0001/ $ hledger -f- print
>>>=1 >2 /difference: 0\.0001/
>=1
# 24. Inclusive assertions include balances from subaccounts. # 24. Inclusive assertions include balances from subaccounts.
hledger -f- print <
<<<
2019/1/1 2019/1/1
(a) X1 (a) X1
(a) Y3 (a) Y3
@ -419,7 +405,9 @@ hledger -f- print
(a) 0 =* Y10 (a) 0 =* Y10
(a:b) 0 =* Y7 (a:b) 0 =* Y7
(a:b) 0 ==* Y7 (a:b) 0 ==* Y7
>>>
$ hledger -f- print
>
2019-01-01 2019-01-01
(a) X1 (a) X1
(a) Y3 (a) Y3
@ -429,24 +417,22 @@ hledger -f- print
(a:b) 0 =* Y7 (a:b) 0 =* Y7
(a:b) 0 ==* Y7 (a:b) 0 ==* Y7
>>>2 >=0
>>>=0
## 25. Inclusive balance assignments also work (#1207). ## 25. Inclusive balance assignments also work (#1207).
#hledger -f- print -x #<
#<<<
#2020-01-25 #2020-01-25
# (a:aa) 1 # (a:aa) 1
# #
#2020-01-31 #2020-01-31
# (a) ==* 1 # (a) ==* 1
# #
#>>> #$ hledger -f- print -x
#>
#2020-01-25 #2020-01-25
# (a:aa) 1 # (a:aa) 1
# #
#2020-01-31 #2020-01-31
# (a) 0 ==* 1 # (a) 0 ==* 1
# #
#>>>2 #>=0
#>>>=0