journal: consolidate amount/commodity func tests
This commit is contained in:
parent
31b72f0415
commit
5516622472
114
tests/journal/amounts-and-commodities.test
Normal file
114
tests/journal/amounts-and-commodities.test
Normal file
@ -0,0 +1,114 @@
|
||||
# Amounts, commodity symbols, commodity directives, amount styles..
|
||||
|
||||
# 1. decimal point/digit grouping chars are autodetected,
|
||||
# separately for each commodity, which can be surprising. TODO
|
||||
# So hledger parses 1 XAU at 1000 USD here:
|
||||
<
|
||||
1/1
|
||||
assets:gold 1,000 XAU @ 1,000.00 USD
|
||||
equity
|
||||
$ hledger -f - bal --flat --no-total -B
|
||||
1,000.00 USD assets:gold
|
||||
-1,000.00 USD equity
|
||||
|
||||
# while ledger parses 1000 XAU at 1000 USD each:
|
||||
# $ ledger bal --flat --no-total -B
|
||||
# USD1000000 assets:gold
|
||||
# USD-1000000 equity)
|
||||
|
||||
# a commodity may contain/end with numbers, if double quoted
|
||||
# 2. without quotes, fail. XXX parse error should be clearer here
|
||||
<
|
||||
2010-04-05 x
|
||||
a 10 DE0002635307
|
||||
b
|
||||
$ hledger -f- print
|
||||
>2 /unexpected/
|
||||
>= 1
|
||||
|
||||
# 3. with quotes, ok; quotes appear in print output
|
||||
<
|
||||
2010-04-05 x
|
||||
a 10 "DE 0002 635307"
|
||||
b
|
||||
$ hledger -f- print --explicit
|
||||
2010/04/05 x
|
||||
a 10 "DE 0002 635307"
|
||||
b -10 "DE 0002 635307"
|
||||
|
||||
>=
|
||||
|
||||
# 4. and in other reports too, I guess
|
||||
$ hledger -f- balance
|
||||
10 "DE 0002 635307" a
|
||||
-10 "DE 0002 635307" b
|
||||
--------------------
|
||||
0
|
||||
|
||||
# 5. autobalance with prices
|
||||
<
|
||||
2016/1/1
|
||||
saving-card $-105
|
||||
snacks 95 EUR @@ $100
|
||||
Equity:Unbalanced
|
||||
|
||||
$ hledger -f- print -x
|
||||
2016/01/01
|
||||
saving-card $-105
|
||||
snacks 95 EUR @@ $100
|
||||
Equity:Unbalanced $5
|
||||
|
||||
>=
|
||||
|
||||
# 6. The four decimal places of the market price should not alter the
|
||||
# canonical style of two decimal places in a's converted-to-B balance
|
||||
# (#295), but it turns out they do with -V. This can be fixed with a
|
||||
# commodity directive.
|
||||
<
|
||||
; use a commodity directive to ensure B is displayed with two decimal
|
||||
; places, or the price directive plus -V would make it four
|
||||
commodity 1.00 B
|
||||
|
||||
P 2015/1/1 A 1.0001 B
|
||||
|
||||
2015/1/1
|
||||
(a) 1.00 A
|
||||
(b) 1.00 B
|
||||
$ hledger -f- bal -V -N
|
||||
1.00 B a
|
||||
1.00 B b
|
||||
|
||||
# 7. A multi-line commodity directive also works.
|
||||
<
|
||||
commodity B
|
||||
format 1.00 B
|
||||
|
||||
P 2015/1/1 A 1.0001 B
|
||||
|
||||
2015/1/1
|
||||
(a) 1.00 A
|
||||
(b) 1.00 B
|
||||
|
||||
$ hledger -f- bal -V -N
|
||||
1.00 B a
|
||||
1.00 B b
|
||||
|
||||
# 8. This should choose the 1,000.00 format (the first amount sets
|
||||
# decimal point to period, the second sets digit group size to 3 and
|
||||
# digit group separator to comma).
|
||||
# hledger -f- print
|
||||
# <<<
|
||||
# 2015/1/1
|
||||
# (a) 1000.00 A
|
||||
|
||||
# 2015/1/1
|
||||
# (a) 1,000 A
|
||||
# >>>
|
||||
# 2015/01/01
|
||||
# (a) 1,000.00 A
|
||||
|
||||
# 2015/01/01
|
||||
# (a) 1,000.00 A
|
||||
|
||||
# >>>=0
|
||||
|
||||
@ -1,17 +0,0 @@
|
||||
# 1. decimal point/digit grouping chars are autodetected,
|
||||
# separately for each commodity, which can be surprising. TODO
|
||||
# So hledger parses 1 XAU at 1000 USD here:
|
||||
hledger -f - bal --flat --no-total -B
|
||||
<<<
|
||||
1/1
|
||||
assets:gold 1,000 XAU @ 1,000.00 USD
|
||||
equity
|
||||
>>>
|
||||
1,000.00 USD assets:gold
|
||||
-1,000.00 USD equity
|
||||
>>>2
|
||||
>>>= 0
|
||||
# while ledger parses 1000 XAU at 1000 USD each:
|
||||
# $ ledger bal --flat --no-total -B
|
||||
# USD1000000 assets:gold
|
||||
# USD-1000000 equity)
|
||||
@ -1,49 +0,0 @@
|
||||
# a commodity may contain/end with numbers, if double quoted
|
||||
# 1. without quotes, fail. XXX parse error should be clearer here
|
||||
hledger -f- print
|
||||
<<<
|
||||
2010-04-05 x
|
||||
a 10 DE0002635307
|
||||
b
|
||||
>>>2 /unexpected/
|
||||
>>>= 1
|
||||
# 2. with quotes, ok; quotes appear in print output
|
||||
hledger -f- print --explicit
|
||||
<<<
|
||||
2010-04-05 x
|
||||
a 10 "DE 0002 635307"
|
||||
b
|
||||
>>>
|
||||
2010/04/05 x
|
||||
a 10 "DE 0002 635307"
|
||||
b -10 "DE 0002 635307"
|
||||
|
||||
>>>=0
|
||||
|
||||
# 3. and in other reports too, I guess
|
||||
hledger -f- balance
|
||||
<<<
|
||||
2010-04-05 x
|
||||
a 10 "DE0002635307"
|
||||
b
|
||||
>>>
|
||||
10 "DE0002635307" a
|
||||
-10 "DE0002635307" b
|
||||
--------------------
|
||||
0
|
||||
>>>=0
|
||||
|
||||
# 4. autobalance with prices, using short form of --explicit this time
|
||||
hledger -f- print -x
|
||||
<<<
|
||||
2016/1/1
|
||||
saving-card $-105
|
||||
snacks 95 EUR @@ $100
|
||||
Equity:Unbalanced
|
||||
>>>
|
||||
2016/01/01
|
||||
saving-card $-105
|
||||
snacks 95 EUR @@ $100
|
||||
Equity:Unbalanced $5
|
||||
|
||||
>>>=0
|
||||
@ -1,55 +0,0 @@
|
||||
# 1. The four decimal places of the market price should not alter the
|
||||
# canonical style of two decimal places in a's converted-to-B balance
|
||||
# (#295), but it turns out they do with -V. This can be fixed with a
|
||||
# commodity directive.
|
||||
hledger -f- bal -V -N
|
||||
<<<
|
||||
; use a commodity directive to ensure B is displayed with two decimal
|
||||
; places, or the price directive plus -V would make it four
|
||||
commodity 1.00 B
|
||||
|
||||
P 2015/1/1 A 1.0001 B
|
||||
|
||||
2015/1/1
|
||||
(a) 1.00 A
|
||||
(b) 1.00 B
|
||||
>>>
|
||||
1.00 B a
|
||||
1.00 B b
|
||||
>>>=0
|
||||
|
||||
# 2. A multi-line commodity directive also works.
|
||||
hledger -f- bal -V -N
|
||||
<<<
|
||||
commodity B
|
||||
format 1.00 B
|
||||
|
||||
P 2015/1/1 A 1.0001 B
|
||||
|
||||
2015/1/1
|
||||
(a) 1.00 A
|
||||
(b) 1.00 B
|
||||
>>>
|
||||
1.00 B a
|
||||
1.00 B b
|
||||
>>>=0
|
||||
|
||||
# 3. This should choose the 1,000.00 format (the first amount sets
|
||||
# decimal point to period, the second sets digit group size to 3 and
|
||||
# digit group separator to comma).
|
||||
# hledger -f- print
|
||||
# <<<
|
||||
# 2015/1/1
|
||||
# (a) 1000.00 A
|
||||
|
||||
# 2015/1/1
|
||||
# (a) 1,000 A
|
||||
# >>>
|
||||
# 2015/01/01
|
||||
# (a) 1,000.00 A
|
||||
|
||||
# 2015/01/01
|
||||
# (a) 1,000.00 A
|
||||
|
||||
# >>>=0
|
||||
|
||||
Loading…
Reference in New Issue
Block a user