# 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