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