hledger/tests/journal/default-commodity.test
Simon Michael e4a0bdff8d journal: default commodity (D) limits display precision too (#1187)
D directives are now fully equivalent to commodity directives for
setting a commodity's display style. (Previously it was equivalent to
a posting amount, so it couldn't limit the number of decimal places.)
When both kinds of directive exist, commodity directives take precedence.
When there are multiple D directives in the journal, only the last one
affects display style.
2020-02-11 09:47:26 -08:00

90 lines
1.4 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
<
2010/1/1
a 1000
b
$ hledger -f- print
2010-01-01
a 1000
b
>=0
# 2. pound, two decimal places, no digit group separator
<
D £1000.00
2010/1/1
a 1000
b
$ hledger -f- print
2010-01-01
a £1000.00
b
>=0
# 3. dollar, comma decimal point, three decimal places, no digit group separator
<
D $1,000
2010/1/1
a 1000
b
$ hledger -f- print
2010-01-01
a $1000,000
b
>=0
# 4. dollar, three digit group separator, one decimal place
<
D $1,000.0
2010/1/1
(a) 1000000
$ hledger -f- print
2010-01-01
(a) $1,000,000.0
>=0
# 5. A D directive affects all aspects of display style,
# including limiting the display precision, like a commodity directive (#1187).
<
D 1,000.0 A
1/1
(a) 1000.123
$ hledger -f- print
2020-01-01
(a) 1,000.1 A
>=0
# 6. A default commodity should not affect parsing of
# automated posting multiplier amounts.
<
D $1000.
= a
(b) *2
2018/1/1
(a) €1
$ hledger -f- print --auto
2018-01-01 ; modified:
(a) €1
(b) €2 ; generated-posting: = a
>=0