hledger/tests/journal/default-commodity.test
Simon Michael c31710d942 look harder for decimal point & digit groups (fixes #196)
Amount display styles have been reworked a bit; they are now calculated
after journal parsing, not during it. This allows the fix for #196:
we now search through the amounts until a decimal point is detected,
instead of just looking at the first one; likewise for digit groups.
Digit groups are now implemented with a better type.

Digit group size detection has been improved a little:
1000,000 now gives group sizes [3,4,4,...], not [3,3,...], and
10,000 gives groups sizes [3,3,...] not [3,2,2,..].
(To get [3,2,2,...] you'd use eg 00,00,000.)

There are still some old (or new ?) issues; I don't think we handle
inconsistent decimal points & digit groups too well. But for now all
tests pass.
2014-07-02 23:26:16 -07:00

75 lines
1.3 KiB
Plaintext

# a default commodity defined with the D directive will be used for any
# subsequent commodity-less posting amounts. The sample amount's display style
# is also applied, and the resulting amount may end up setting the canonical
# display style for the commodity.
# 1. no default commodity
hledgerdev -f- print
<<<
2010/1/1
a 1000
b
>>>
2010/01/01
a 1000
b -1000
>>>=0
# 2. pound, two decimal places, no digit group separator
hledgerdev -f- print
<<<
D £1000.00
2010/1/1
a 1000
b
>>>
2010/01/01
a £1000.00
b £-1000.00
>>>=0
# 3. dollar, comma decimal point, three decimal places, no digit group separator
hledgerdev -f- print
<<<
D $1,000
2010/1/1
a 1000
b
>>>
2010/01/01
a $1000,000
b $-1000,000
>>>=0
# 4. dollar, three digit group separator, one decimal place
hledgerdev -f- print
<<<
D $1,000.0
2010/1/1
(a) 1000000
>>>
2010/01/01
(a) $1,000,000.0
>>>=0
# 5. commodity and display style applied to the second posting amount..
# which ends up setting the digit group style, since it's the first amount
# with digit groups. The great precision is used.
hledgerdev -f- print
<<<
D $1,000.0
2010/1/1
(a) $1000000.00
(b) 1000000
>>>
2010/01/01
(a) $1,000,000.00
(b) $1,000,000.00
>>>=0