mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-28 12:54:07 +03:00
5c09553481
Related to #563, when rendering a transaction, we reserve two more chars of width so that amounts remain aligned when there are posting flags. Affects hledger-ui's transaction screen, print, hledger-rewrite etc.
163 lines
4.0 KiB
Plaintext
163 lines
4.0 KiB
Plaintext
# http://code.google.com/p/hledger/issues/detail?id=23
|
|
#
|
|
# 1. original test case, this should balance since price precisions do
|
|
# not affect the canonical display precisions used for display and balancing
|
|
hledger -f - print
|
|
<<<
|
|
2010/1/1 x
|
|
A 55.3653 C @ 30.92189512 D
|
|
A -1712 D
|
|
>>>
|
|
2010/01/01 x
|
|
A 55.3653 C @ 30.92189512 D
|
|
A -1712 D
|
|
|
|
>>>=0
|
|
|
|
## 1b. here $'s canonical display precision should be 2 not 4
|
|
## XXX no, because the inferred amount $1.0049 is observed
|
|
# hledger -f - print --cost
|
|
# <<<
|
|
# 2010/1/1
|
|
# a $0.00
|
|
# a 1C @ $1.0049
|
|
# a
|
|
# >>>
|
|
# 2010/01/01
|
|
# a 0
|
|
# a $1.00
|
|
# a $-1.00
|
|
#
|
|
# >>>=0
|
|
|
|
# 2. and here the price should be printed with its original precision, not
|
|
# the canonical display precision
|
|
hledger -f - print --explicit
|
|
<<<
|
|
2010/1/1
|
|
a $0.00
|
|
a 1C @ $1.0049
|
|
a
|
|
>>>
|
|
2010/01/01
|
|
a 0
|
|
a 1C @ $1.0049
|
|
a $-1.0049
|
|
|
|
>>>=0
|
|
|
|
# 3. with $'s display precision at 3 or more, this txn should not balance.
|
|
# The error message shows the difference with full precision.
|
|
hledger -f - balance --no-total --cost --empty
|
|
<<<
|
|
2010/1/1
|
|
a 1C @ $1.0049
|
|
a $-1.000
|
|
>>>2 /off by \$0.0049/
|
|
>>>= 1
|
|
|
|
# 4. with $'s display precision at 2 or less, this txn should balance
|
|
hledger -f - balance --no-total --cost --empty
|
|
<<<
|
|
2010/1/1
|
|
a 1C @ $1.0049
|
|
a $-1.00
|
|
>>>
|
|
0 a
|
|
>>>=0
|
|
|
|
# 5. avamk's 2011/1/19 example
|
|
hledger -f - balance --cost
|
|
<<<
|
|
2001/01/01 * ACME fund
|
|
assets:investment:ACME 203.890 ACME @ $16.02
|
|
equity:opening balances
|
|
>>>
|
|
$3266.32 assets:investment:ACME
|
|
$-3266.32 equity:opening balances
|
|
--------------------
|
|
0
|
|
>>>=0
|
|
|
|
# hledger 0.14pre: precision=2, presumably from price
|
|
# $3266.32 assets:investment:ACME
|
|
# $-3266.32 equity:opening balances
|
|
#--------------------
|
|
# $0.00
|
|
#
|
|
# ledger "2.6.0.90" with -s: full precision, ignores price
|
|
# $3266.3178 assets:investment:ACME
|
|
# $-3266.3178 equity:opening balances
|
|
#
|
|
# ledger 3: precision=0, uses default, ignores price
|
|
# $3266 assets:investment:ACME
|
|
# $-3266 equity:opening balances
|
|
#--------------------
|
|
# 0
|
|
|
|
## 6. with a default commodity.. XXX should observe it
|
|
hledger -f - balance --cost
|
|
<<<
|
|
D $1000.0
|
|
2001/01/01 * ACME fund
|
|
assets:investment:ACME 203.890 ACME @ $16.02
|
|
equity:opening balances
|
|
>>>
|
|
$3266.32 assets:investment:ACME
|
|
$-3266.32 equity:opening balances
|
|
--------------------
|
|
0
|
|
>>>=0
|
|
### hledger 0.14pre: precision=2, presumably from price, ignores D
|
|
### $3266.32 assets:investment:ACME
|
|
### $-3266.32 equity:opening balances
|
|
###--------------------
|
|
### $0.00
|
|
###
|
|
### ledger "2.6.0.90" with -s: full precision, ignores price and D
|
|
### $3266.3178 assets:investment:ACME
|
|
### $-3266.3178 equity:opening balances
|
|
###
|
|
### ledger 3: precision=1, ignores price, observes D
|
|
### $3266.3 assets:investment:ACME
|
|
### $-3266.3 equity:opening balances
|
|
###--------------------
|
|
### 0
|
|
|
|
#
|
|
# 7. when there are multiple postings in the commodity being priced,
|
|
# show the averaged unit price, with precision equal to the sum of
|
|
# the max precisions of the commodities being converted (#262).
|
|
# Here the (irrational) price should be displayed with just precision 4
|
|
# (C's precision 2 + D's precision 2).
|
|
hledger -f- print --explicit
|
|
<<<
|
|
2015/1/1
|
|
c C 10.00
|
|
c C 11.00
|
|
d D -320.00
|
|
>>>
|
|
2015/01/01
|
|
c C 10.00 @ D 15.2381
|
|
c C 11.00 @ D 15.2381
|
|
d D -320.00
|
|
|
|
>>>=0
|
|
|
|
|
|
## 8. Here the price should be displayed with precision 7
|
|
# (E's precision 4 + F's precision 3).
|
|
hledger -f- print --explicit
|
|
<<<
|
|
2015/1/1
|
|
e E 10.0000
|
|
e E 11
|
|
f F -320.000
|
|
>>>
|
|
2015/01/01
|
|
e E 10.0000 @ F 15.2380952
|
|
e E 11.0000 @ F 15.2380952
|
|
f F -320.000
|
|
|
|
>>>=0
|