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
 |